75 lines
2.0 KiB
Haskell
75 lines
2.0 KiB
Haskell
module Dodge.Default.Item (
|
|
module Dodge.Default.Item,
|
|
module Dodge.Default.Item.Use,
|
|
module Dodge.Default.Item.Effect,
|
|
) where
|
|
|
|
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
|
|
|
|
defaultItemDimension :: ItemDimension
|
|
defaultItemDimension = ItemDimension
|
|
{ _dimRad = 2
|
|
, _dimCenter = 0
|
|
, _dimAttachPos = V3 10 (-5) 3
|
|
}
|
|
|
|
defaultItem :: Item
|
|
defaultItem =
|
|
Item
|
|
{ _itCurseStatus = Uncursed
|
|
, _itType = defaultItemType
|
|
, _itEffect = defaultItEffect
|
|
, _itID = 0
|
|
, _itIsHeld = False
|
|
-- , _itInvColor = yellow
|
|
, _itInvSize = 1
|
|
, _itLocation = InVoid
|
|
, _itDimension = defaultItemDimension
|
|
, _itUse = CraftUse (ItAmount 1)
|
|
, _itParams = NoParams
|
|
, _itTweaks = NoTweaks
|
|
, _itScope = NoScope
|
|
, _itAttachments = mempty
|
|
-- , _itValue = ItemValue 0 MundaneItem
|
|
}
|
|
|
|
defaultLeftItem :: Item
|
|
defaultLeftItem = defaultItem & itUse .~ defaultLeftUse
|
|
|
|
defaultHeldItem :: Item
|
|
defaultHeldItem = defaultItem & itUse .~ defaultHeldUse
|
|
|
|
defaultCraftItem :: Item
|
|
defaultCraftItem = defaultItem & itUse .~ CraftUse 1
|
|
|
|
defaultItemType :: ItemType
|
|
defaultItemType = ItemType NoItemType mempty
|
|
|
|
defaultBulletWeapon :: Item
|
|
defaultBulletWeapon =
|
|
defaultWeapon
|
|
& itUse . heldConsumption .~ defaultBulletLoadable
|
|
& itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
|
|
& itType . iyModules . at ModBulletCollision ?~ EMPTYMODULE
|
|
& itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE
|
|
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
|
|
|
defaultWeapon :: Item
|
|
defaultWeapon =
|
|
defaultHeldItem
|
|
& itUse .~ defaultHeldUse
|
|
& itType . iyModules
|
|
.~ M.fromList
|
|
[ (ModTarget, EMPTYMODULE)
|
|
, (ModTeleport, EMPTYMODULE)
|
|
]
|
|
|
|
defaultConsumable :: Item
|
|
defaultConsumable = defaultItem & itUse .~ ConsumeUse CDoNothing 1
|
|
|