Improve item use hammer, improve wide laser

This commit is contained in:
2022-07-07 10:58:18 +01:00
parent 3759434d92
commit 68cb191063
26 changed files with 328 additions and 301 deletions
+30 -28
View File
@@ -1,6 +1,7 @@
module Dodge.Default.Weapon
where
import Dodge.Data
import Dodge.Item.Weapon.AmmoParams
import Dodge.Reloading.Action
import Dodge.Item.Weapon.Bullet
import Dodge.Default.Item
@@ -32,41 +33,41 @@ defaultBulletLoadable = defaultLoadable & laAmmoType .~ basicBullet
defaultChargeable :: ItemConsumption
defaultChargeable = ChargeableAmmo 100 100
ruseRate :: Int
-> (Item -> Creature -> World -> World)
-> [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
-> ItemUse
ruseRate i f usemods = RightUse
{ _rUse = f
, _useDelay = FixedRate
{ _rateMax = i
, _rateTime = 0
}
, _useMods = usemods
, _useHammer' = HammerUp
, _useAim = defaultAimParams
, _heldScroll = \_ _ -> id
}
--ruseRate :: Int
-- -> (Item -> Creature -> World -> World)
-- -> [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
-- -> ItemUse
--ruseRate i f usemods = RightUse
-- { _rUse = f
-- , _useDelay = FixedRate
-- { _rateMax = i
-- , _rateTime = 0
-- }
-- , _useMods = usemods
-- , _useHammer = HammerUp
-- , _useAim = defaultAimParams
-- , _heldScroll = \_ _ -> id
-- }
ruseInstant
:: (Item -> Creature -> World -> World)
-> [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
-> ItemUse
ruseInstant f usemods = RightUse
{ _rUse = f
, _useDelay = NoDelay
, _useMods = usemods
, _useHammer' = HammerUp
, _useAim = defaultAimParams
, _heldScroll = \_ _ -> id
}
--ruseInstant
-- :: (Item -> Creature -> World -> World)
-- -> [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
-- -> ItemUse
--ruseInstant f usemods = RightUse
-- { _rUse = f
-- , _useDelay = NoDelay
-- , _useMods = usemods
-- , _useHammer = HammerUp
-- , _useAim = defaultAimParams
-- , _heldScroll = \_ _ -> id
-- }
defaultrUse :: ItemUse
defaultrUse = RightUse
{ _rUse = \_ _ -> id
, _useDelay = FixedRate {_rateMax = 8, _rateTime = 0}
, _useMods = []
, _useHammer' = HammerUp
, _useHammer = HammerUp
, _useAim = defaultAimParams
, _heldScroll = \_ _ -> id
}
@@ -120,6 +121,7 @@ defaultWeapon = defaultItem
defaultBulletWeapon :: Item
defaultBulletWeapon = defaultWeapon & itConsumption .~ defaultBulletLoadable
& itUse .~ ruseAmmoParams
defaultItemValue :: ItemValue
defaultItemValue = ItemValue 10 MundaneItem