This commit is contained in:
2022-07-27 12:49:23 +01:00
parent 6554d219dc
commit 8d17ce66e9
106 changed files with 2911 additions and 2678 deletions
+27 -27
View File
@@ -1,32 +1,32 @@
module Dodge.Default.Item
( defaultItem
) where
import Dodge.Data
import Picture
module Dodge.Default.Item (
defaultItem,
) where
import Dodge.Data.Item
import Geometry.Data
--import Shape
import Picture
defaultItem :: Item
defaultItem = Item
{ _itCurseStatus = Uncursed
, _itType = defaultItemType
-- , _itEquipPict = \_ _ -> (,) emptySH blank
, _itEffect = NoItEffect
, _itID = Nothing
, _itIsHeld = False
, _itInvColor = yellow
, _itInvSize = 1
, _itPos = VoidItm
, _itDimension = ItemDimension 2 0 (V3 10 (-5) 3)
, _itConsumption = NoConsumption
, _itUse = NoUse
, _itAttachment = NoItAttachment
, _itParams = NoParams
, _itTweaks = NoTweaks
, _itScope = NoScope
, _itTargeting = NoTargeting
, _itValue = ItemValue 0 MundaneItem
}
defaultItem =
Item
{ _itCurseStatus = Uncursed
, _itType = defaultItemType
, -- , _itEquipPict = \_ _ -> (,) emptySH blank
_itEffect = NoItEffect
, _itID = Nothing
, _itIsHeld = False
, _itInvColor = yellow
, _itInvSize = 1
, _itPos = VoidItm
, _itDimension = ItemDimension 2 0 (V3 10 (-5) 3)
, _itUse = CraftUse (ItAmount 1)
, _itParams = NoParams
, _itTweaks = NoTweaks
, _itScope = NoScope
, _itTargeting = NoTargeting
, _itValue = ItemValue 0 MundaneItem
, _itAttachment = NoItAttachment
}
defaultItemType :: ItemType
defaultItemType = ItemType NOTDEFINED mempty NoStack
defaultItemType = ItemType (error "defaultItemType not initialized") mempty NoStack
+97 -78
View File
@@ -1,104 +1,123 @@
module Dodge.Default.Weapon
where
import Dodge.Data
import Dodge.Reloading.Action
import Dodge.Item.Weapon.Bullet
import Dodge.Default.Item
module Dodge.Default.Weapon where
import Control.Lens
import qualified Data.Map.Strict as M
import Dodge.Data.Ammo
import Dodge.Data.Hammer
import Dodge.Data.Item
import Dodge.Default.AimParams
--import Dodge.Item.Draw
import Dodge.Default.Item
import Dodge.Item.Weapon.Bullet
import Dodge.Reloading.Action
import Picture
import qualified Data.Map.Strict as M
import Control.Lens
defaultLeftLoadable :: ItemConsumption
defaultLeftLoadable :: LeftConsumption
defaultLeftLoadable = AutoRecharging 10 10 100 100
defaultLoadable :: ItemConsumption
defaultLoadable = LoadableAmmo
{ _laAmmoType = GenericAmmo
, _laMax = 15
, _laLoaded = 0
, _laPrimed = True
, _laCycle = [loadEject 10, loadInsert 10, loadPrime 10]
, _laProgress = Nothing
}
defaultBulletLoadable :: ItemConsumption
defaultLoadable :: HeldConsumption
defaultLoadable =
LoadableAmmo
{ _laAmmoType = GenericAmmo
, _laMax = 15
, _laLoaded = 0
, _laPrimed = True
, _laCycle = [loadEject 10, loadInsert 10, loadPrime 10]
, _laProgress = Nothing
}
defaultBulletLoadable :: HeldConsumption
defaultBulletLoadable = defaultLoadable & laAmmoType .~ basicBullet
defaultChargeable :: ItemConsumption
defaultChargeable :: LeftConsumption
defaultChargeable = ChargeableAmmo 100 100
defaultrUse :: ItemUse
defaultrUse = RightUse
{ _rUse = HeldDoNothing
, _useDelay = FixedRate {_rateMax = 8, _rateTime = 0}
, _useMods = HeldModNothing
, _useHammer = HammerUp
, _useAim = defaultAimParams
, _heldScroll = HeldScrollDoNothing
}
defaultrUse =
RightUse
{ _rUse = HeldDoNothing
, _useDelay = FixedRate{_rateMax = 8, _rateTime = 0}
, _useMods = HeldModNothing
, _useHammer = HammerUp
, _useAim = defaultAimParams
, _heldScroll = HeldScrollDoNothing
, _heldConsumption = defaultLoadable
}
defaultlUse :: ItemUse
defaultlUse = LeftUse
{ _lUse = LDoNothing
, _useDelay = FixedRate {_rateMax = 8, _rateTime = 0}
, _useHammer = HammerUp
, _eqEq = defaultEquip
}
defaultlUse =
LeftUse
{ _lUse = LDoNothing
, _useDelay = FixedRate{_rateMax = 8, _rateTime = 0}
, _useHammer = HammerUp
, _eqEq = defaultEquip
, _leftConsumption = defaultLeftLoadable
}
defaultEquip :: Equipment
defaultEquip = Equipment
{ _eqSite = GoesOnSpecial
, _eqUse = EDoNothing
, _eqOnEquip = EDoNothing
, _eqOnRemove = EDoNothing
, _eqParams = NoEquipParams
, _eqViewDist = Nothing
}
defaultEquip =
Equipment
{ _eqSite = GoesOnSpecial
, _eqUse = EDoNothing
, _eqOnEquip = EDoNothing
, _eqOnRemove = EDoNothing
, _eqParams = NoEquipParams
, _eqViewDist = Nothing
}
luseInstantNoH :: Luse -> ItemUse
luseInstantNoH f = defaultlUse
& lUse .~ f
& useDelay .~ NoDelay
luseInstantNoH f =
defaultlUse
& lUse .~ f
& useDelay .~ NoDelay
-- TODO change this
defaultLeftItem :: Item
defaultLeftItem = defaultWeapon
& itConsumption .~ defaultLeftLoadable
defaultLeftItem =
defaultWeapon
& itUse .~ defaultlUse
defaultWeapon :: Item
defaultWeapon = defaultItem
& itConsumption .~ defaultLoadable
& itUse .~ defaultrUse
& itInvColor .~ white
& itType . iyModules .~ M.fromList
[(ModTarget, EMPTYMODULE)
,(ModTeleport, EMPTYMODULE)
]
defaultWeapon =
defaultItem
& itUse .~ defaultrUse
& itInvColor .~ white
& itType . iyModules
.~ M.fromList
[ (ModTarget, EMPTYMODULE)
, (ModTeleport, EMPTYMODULE)
]
defaultBulletWeapon :: Item
defaultBulletWeapon = defaultWeapon
& itConsumption .~ defaultBulletLoadable
& itUse . rUse .~ HeldUseAmmoParams -- useAmmoParams
& itType . iyModules . at ModBullet ?~ EMPTYMODULE
& itType . iyModules . at ModBulletSpawn ?~ EMPTYMODULE
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
defaultBulletWeapon =
defaultWeapon
& itUse . heldConsumption .~ defaultBulletLoadable
& itUse . rUse .~ HeldUseAmmoParams -- useAmmoParams
& itType . iyModules . at ModBullet ?~ EMPTYMODULE
& itType . iyModules . at ModBulletSpawn ?~ EMPTYMODULE
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
defaultItemValue :: ItemValue
defaultItemValue = ItemValue 10 MundaneItem
defaultCraftable :: Item
defaultCraftable = defaultItem
{ _itInvColor = green
}
defaultCraftable =
defaultItem
{ _itInvColor = green
}
defBulletShooter :: ItemParams
defBulletShooter = BulletShooter
{ _muzVel = 1
, _rifling = 0.8
, _bore = 2
, _gunBarrels = SingleBarrel 0
, _recoil = 0
, _torqueAfter = 0
, _randomOffset = 0
}
defBulletShooter =
BulletShooter
{ _muzVel = 1
, _rifling = 0.8
, _bore = 2
, _gunBarrels = SingleBarrel 0
, _recoil = 0
, _torqueAfter = 0
, _randomOffset = 0
}
defaultAutoGun :: Item
defaultAutoGun = defaultBulletWeapon
& itUse . useAim . aimStance .~ TwoHandTwist
defaultAutoGun =
defaultBulletWeapon
& itUse . useAim . aimStance .~ TwoHandTwist