Refactor, try to limit dependencies
This commit is contained in:
+56
-15
@@ -1,19 +1,23 @@
|
||||
module Dodge.Default.Item (
|
||||
defaultItem,
|
||||
defaultItEffect,
|
||||
module Dodge.Default.Item,
|
||||
module Dodge.Default.Item.Use,
|
||||
module Dodge.Default.Item.Effect,
|
||||
) where
|
||||
|
||||
import Color
|
||||
import Control.Lens
|
||||
import qualified Data.Map.Strict as M
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Default.Item.Effect
|
||||
import Dodge.Default.Item.Use
|
||||
import Geometry.Data
|
||||
import Picture
|
||||
|
||||
defaultItem :: Item
|
||||
defaultItem =
|
||||
Item
|
||||
{ _itCurseStatus = Uncursed
|
||||
, _itType = defaultItemType
|
||||
, -- , _itEquipPict = \_ _ -> (,) emptySH blank
|
||||
_itEffect = defaultItEffect
|
||||
, _itEffect = defaultItEffect
|
||||
, _itID = Nothing
|
||||
, _itIsHeld = False
|
||||
, _itInvColor = yellow
|
||||
@@ -28,15 +32,52 @@ defaultItem =
|
||||
, _itValue = ItemValue 0 MundaneItem
|
||||
}
|
||||
|
||||
defaultItEffect :: ItEffect
|
||||
defaultItEffect =
|
||||
ItEffect
|
||||
{ _ieInv = NoInvEffect
|
||||
, _ieOnInsert = NoInvEffect
|
||||
, _ieOnDrop = NoInvEffect
|
||||
, _ieOnHeld = NoInvEffect
|
||||
, _ieOnStash = NoInvEffect
|
||||
}
|
||||
defaultLeftItem :: Item
|
||||
defaultLeftItem =
|
||||
defaultItem
|
||||
& itUse .~ defaultLeftUse
|
||||
& itInvColor .~ cyan
|
||||
|
||||
defaultHeldItem :: Item
|
||||
defaultHeldItem =
|
||||
defaultItem
|
||||
& itInvColor .~ white
|
||||
& itUse .~ defaultHeldUse
|
||||
|
||||
defaultCraftItem :: Item
|
||||
defaultCraftItem =
|
||||
defaultItem
|
||||
& itUse .~ CraftUse 1
|
||||
& itInvColor .~ green
|
||||
|
||||
defaultItemType :: ItemType
|
||||
defaultItemType = ItemType (error "defaultItemType not initialized") mempty NoStack
|
||||
defaultItemType = ItemType NoItemType mempty NoStack
|
||||
|
||||
defaultBulletWeapon :: Item
|
||||
defaultBulletWeapon =
|
||||
defaultWeapon
|
||||
& itUse . heldConsumption .~ defaultBulletLoadable
|
||||
& itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
|
||||
& itType . iyModules . at ModBullet ?~ EMPTYMODULE
|
||||
& itType . iyModules . at ModBulletSpawn ?~ EMPTYMODULE
|
||||
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
||||
|
||||
defaultWeapon :: Item
|
||||
defaultWeapon =
|
||||
defaultHeldItem
|
||||
& itUse .~ defaultHeldUse
|
||||
& itInvColor .~ white
|
||||
& itType . iyModules
|
||||
.~ M.fromList
|
||||
[ (ModTarget, EMPTYMODULE)
|
||||
, (ModTeleport, EMPTYMODULE)
|
||||
]
|
||||
|
||||
defaultConsumable :: Item
|
||||
defaultConsumable =
|
||||
defaultItem
|
||||
& itUse .~ ConsumeUse CDoNothing 1
|
||||
& itInvColor .~ blue
|
||||
|
||||
defaultItZoom :: ItZoom
|
||||
defaultItZoom = ItZoom 20 0.2 1
|
||||
|
||||
Reference in New Issue
Block a user