56 lines
1.5 KiB
Haskell
56 lines
1.5 KiB
Haskell
module Dodge.Default.Item (
|
|
defaultHeldItem,
|
|
-- singleAmmo,
|
|
defaultBulletWeapon,
|
|
-- defaultLeftItem,
|
|
defaultCraftItem,
|
|
module Dodge.Default.Item.Use,
|
|
) where
|
|
|
|
import Control.Lens
|
|
--import qualified Data.IntMap.Strict as IM
|
|
import Dodge.Data.Item
|
|
import Dodge.Default.Item.Use
|
|
--import Geometry.Data
|
|
|
|
defaultHeldItem :: Item
|
|
defaultHeldItem =
|
|
Item
|
|
{ _itType = HELD PISTOL
|
|
, _itConsumables = NoConsumables
|
|
, _itEffect = defaultItEffect
|
|
, _itID = 0 -- should this return an error ? const $ error "itID not correctly initialised" ?
|
|
, _itTargeting = NoItTargeting
|
|
-- , _itAmmoSlots = mempty
|
|
, _itLocation = InVoid
|
|
, _itUse = UseHeld
|
|
, _itParams = NoParams
|
|
, _itUseCondition = UseableWhenAimed
|
|
, _itScroll = NoItemScroll
|
|
, _itTimeLastUsed = 0
|
|
}
|
|
|
|
--defaultLeftItem :: Item
|
|
--defaultLeftItem = defaultHeldItem & itUse .~ defaultLeftUse
|
|
|
|
defaultCraftItem :: Item
|
|
defaultCraftItem = defaultHeldItem & itUse .~ UseNothing
|
|
|
|
--singleAmmo :: a -> IM.IntMap a
|
|
--singleAmmo x = IM.insert 0 x mempty
|
|
|
|
defaultBulletWeapon :: Item
|
|
defaultBulletWeapon =
|
|
defaultHeldItem
|
|
-- & itAmmoSlots .~ singleAmmo BulletAmmo
|
|
-- & itUse . heldMuzzles .~
|
|
-- [Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0]
|
|
|
|
defaultItEffect :: ItEffect
|
|
defaultItEffect =
|
|
ItEffect
|
|
{ _ieInv = NoInvEffect
|
|
, _ieOnInsert = NoInvEffect
|
|
, _ieOnDrop = NoInvEffect
|
|
}
|