Continue record refactor
This commit is contained in:
+92
-2
@@ -1,5 +1,6 @@
|
||||
{-# OPTIONS -Wno-incomplete-uni-patterns #-}
|
||||
--{-# LANGUAGE TupleSections #-}
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
module Dodge.HeldUse (
|
||||
heldEffect,
|
||||
@@ -670,13 +671,102 @@ makeBullet thebullet itm bulpos dir w =
|
||||
)
|
||||
where
|
||||
g = _randGen w
|
||||
(drag, g') = case _rifling (_heldParams $ _itUse itm) of
|
||||
(drag, g') = case heldItemRifling (_ibtHeld $ _itType itm) of --unsafe
|
||||
ConstFloat x -> (x, g)
|
||||
UniRandFloat x y -> randomR (x, y) g
|
||||
(muzvel, g'') = case _muzVel $ _heldParams $ _itUse itm of
|
||||
(muzvel, g'') = case heldItemMuzVel $ _ibtHeld $ _itType itm of
|
||||
ConstFloat x -> (x, g')
|
||||
UniRandFloat x y -> randomR (x, y) g'
|
||||
|
||||
heldItemMuzVel :: HeldItemType -> GenFloat
|
||||
heldItemMuzVel = \case
|
||||
BANGSTICK{} -> ConstFloat 0.8
|
||||
REWINDER -> ConstFloat 0.8
|
||||
TIMESTOPPER -> ConstFloat 0.8
|
||||
TIMESCROLLER -> ConstFloat 0.8
|
||||
PISTOL -> ConstFloat 0.8
|
||||
MACHINEPISTOL -> ConstFloat 0.8
|
||||
AUTOPISTOL -> ConstFloat 0.8
|
||||
SMG -> ConstFloat 0.8
|
||||
BANGCONE -> UniRandFloat 0.5 0.8
|
||||
BLUNDERBUSS -> UniRandFloat 0.5 0.8
|
||||
GRAPECANNON{} -> UniRandFloat 0.5 0.8
|
||||
MINIGUNX{} -> ConstFloat 0.8
|
||||
VOLLEYGUN{} -> ConstFloat 0.8
|
||||
RIFLE -> ConstFloat 0.8
|
||||
ALTERIFLE -> ConstFloat 0.8
|
||||
AUTORIFLE -> ConstFloat 0.8
|
||||
BURSTRIFLE -> ConstFloat 0.8
|
||||
BANGROD -> ConstFloat 0.8
|
||||
ELEPHANTGUN -> ConstFloat 0.8
|
||||
AMR -> ConstFloat 0.8
|
||||
AUTOAMR -> ConstFloat 0.8
|
||||
SNIPERRIFLE -> ConstFloat 0.8
|
||||
FLAMESPITTER -> ConstFloat 0.8
|
||||
FLAMETHROWER -> ConstFloat 0.8
|
||||
FLAMETORRENT -> ConstFloat 0.8
|
||||
FLAMEWALL -> ConstFloat 0.8
|
||||
BLOWTORCH -> ConstFloat 0.8
|
||||
SPARKGUN -> ConstFloat 0.8
|
||||
TESLAGUN -> ConstFloat 0.8
|
||||
LASER -> ConstFloat 0.8
|
||||
TRACTORGUN -> ConstFloat 0.8
|
||||
RLAUNCHER -> ConstFloat 0
|
||||
RLAUNCHERX{} -> ConstFloat 0
|
||||
GLAUNCHER -> ConstFloat 0
|
||||
POISONSPRAYER -> ConstFloat 0.8
|
||||
SHATTERGUN -> ConstFloat 0.8
|
||||
TORCH -> ConstFloat 0.8
|
||||
FLATSHIELD -> ConstFloat 0
|
||||
KEYCARD{} -> ConstFloat 0.8
|
||||
BLINKER -> ConstFloat 0.8
|
||||
BLINKERUNSAFE -> ConstFloat 0.8
|
||||
|
||||
heldItemRifling :: HeldItemType -> GenFloat
|
||||
heldItemRifling = \case
|
||||
BANGSTICK{} -> ConstFloat 0.8
|
||||
REWINDER -> ConstFloat 0.8
|
||||
TIMESTOPPER -> ConstFloat 0.8
|
||||
TIMESCROLLER -> ConstFloat 0.8
|
||||
PISTOL -> ConstFloat 0.8
|
||||
MACHINEPISTOL -> ConstFloat 0.8
|
||||
AUTOPISTOL -> ConstFloat 0.8
|
||||
SMG -> ConstFloat 0.8
|
||||
BANGCONE -> UniRandFloat 0.3 0.8
|
||||
BLUNDERBUSS -> UniRandFloat 0.3 0.8
|
||||
GRAPECANNON{} -> UniRandFloat 0.3 0.8
|
||||
MINIGUNX{} -> UniRandFloat 0.8 0.9
|
||||
VOLLEYGUN{} -> ConstFloat 0.9
|
||||
RIFLE -> ConstFloat 0.9
|
||||
ALTERIFLE -> ConstFloat 0.9
|
||||
AUTORIFLE -> ConstFloat 0.9
|
||||
BURSTRIFLE -> ConstFloat 0.9
|
||||
BANGROD -> ConstFloat 1
|
||||
ELEPHANTGUN -> ConstFloat 1
|
||||
AMR -> ConstFloat 1
|
||||
AUTOAMR -> ConstFloat 1
|
||||
SNIPERRIFLE -> ConstFloat 1
|
||||
FLAMESPITTER -> ConstFloat 0.8
|
||||
FLAMETHROWER -> ConstFloat 0.8
|
||||
FLAMETORRENT -> ConstFloat 0.8
|
||||
FLAMEWALL -> ConstFloat 0.8
|
||||
BLOWTORCH -> ConstFloat 0.8
|
||||
SPARKGUN -> ConstFloat 0.8
|
||||
TESLAGUN -> ConstFloat 0.8
|
||||
LASER -> ConstFloat 0.8
|
||||
TRACTORGUN -> ConstFloat 0.8
|
||||
RLAUNCHER -> ConstFloat 0
|
||||
RLAUNCHERX{} -> ConstFloat 0
|
||||
GLAUNCHER -> ConstFloat 0
|
||||
POISONSPRAYER -> ConstFloat 0.8
|
||||
SHATTERGUN -> ConstFloat 0.8
|
||||
TORCH -> ConstFloat 0.8
|
||||
FLATSHIELD -> ConstFloat 0.8
|
||||
KEYCARD{} -> ConstFloat 0.8
|
||||
BLINKER -> ConstFloat 0.8
|
||||
BLINKERUNSAFE -> ConstFloat 0.8
|
||||
|
||||
|
||||
mcUseHeld :: HeldItemType -> Item -> Machine -> World -> World
|
||||
mcUseHeld hit = case hit of
|
||||
LASER -> mcShootLaser
|
||||
|
||||
Reference in New Issue
Block a user