Files
loop/src/Dodge/Default/Item.hs
T

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
}