From d41604fcde82a220b5cb7b12a7a9cff606358548 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 20 Jun 2024 22:58:52 +0100 Subject: [PATCH] Mid implementation of external ammo sources --- ghcidOutput | 13 +- graph/itemCombinations.gv | 334 ++++++++++++++------------- shader/lighting/texture.frag | 1 + src/Dodge/Combine/Combinations.hs | 8 + src/Dodge/Data/Item/Combine.hs | 5 +- src/Dodge/Data/Item/HeldUse.hs | 1 + src/Dodge/Data/Item/Use.hs | 2 +- src/Dodge/HeldUse.hs | 11 + src/Dodge/Item/Ammo.hs | 11 +- src/Dodge/Item/Draw/SPic.hs | 9 + src/Dodge/Item/Held.hs | 1 + src/Dodge/Item/Held/Cane.hs | 14 ++ src/Dodge/Item/Held/Stick.hs | 3 +- src/Dodge/Item/Module.hs | 2 +- src/Dodge/Item/Weapon/TriggerType.hs | 25 +- tags | 127 +++++----- 16 files changed, 313 insertions(+), 254 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index 3fab0f08d..e25cf0d26 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,4 +1,4 @@ -/home/justin/Haskell/loop/src/Dodge/Base/You.hs:45:19: warning: [-Wunused-matches] +/home/justin/Haskell/loop/src/Dodge/Base/You.hs:45:19-20: warning: [-Wunused-matches] Defined but not used: ‘cr’ | 45 | upDownAttachments cr i j s = s @@ -13,12 +13,9 @@ | 45 | upDownAttachments cr i j s = s | ^ -/home/justin/Haskell/loop/src/Dodge/Item.hs:29:25: warning: [-Wincomplete-patterns] +/home/justin/Haskell/loop/src/Dodge/Item/Info.hs:(62,16)-(109,62): warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive - In a case alternative: - Patterns not matched: - BULPAYLOADATTACH - BULTRAJECTORYATTACH + In a case alternative: Patterns not matched: MULTIGUN _ | -29 | itemFromAttachType at = case at of - | ^^^^^^^^^^... +62 | heldInfo hit = case hit of + | ^^^^^^^^^^^... diff --git a/graph/itemCombinations.gv b/graph/itemCombinations.gv index 069444201..75c2006d4 100644 --- a/graph/itemCombinations.gv +++ b/graph/itemCombinations.gv @@ -22,92 +22,94 @@ digraph { 28 [shape=box ,label="EQUIP {_ibtEquip = TARGETINGHAT TargetCursor}"]; 31 [shape=box - ,label="HELD {_ibtHeld = BANGSTICK {_xNum = 1}}"]; + ,label="ATTACH {_ibtAttach = AMMOATTACH TINMAG}"]; 35 [shape=box + ,label="HELD {_ibtHeld = BANGSTICK {_xNum = 1}}"]; + 39 [shape=box ,label="HELD {_ibtHeld = PISTOL}"]; - 38 [shape=box - ,label="HELD {_ibtHeld = AUTOPISTOL}"]; 41 [shape=box + ,label="HELD {_ibtHeld = AUTOPISTOL}"]; + 43 [shape=box ,label="HELD {_ibtHeld = SMG}"]; - 44 [shape=box - ,label="HELD {_ibtHeld = MACHINEPISTOL}"]; 46 [shape=box + ,label="HELD {_ibtHeld = MACHINEPISTOL}"]; + 48 [shape=box ,label="HELD {_ibtHeld = REVOLVER}"]; - 49 [shape=box - ,label="HELD {_ibtHeld = REVOLVERX {_xNum = 1}}"]; 51 [shape=box - ,label="HELD {_ibtHeld = BANGCONE}"]; + ,label="HELD {_ibtHeld = REVOLVERX {_xNum = 1}}"]; 53 [shape=box - ,label="HELD {_ibtHeld = BLUNDERBUSS}"]; + ,label="HELD {_ibtHeld = BANGCONE}"]; 55 [shape=box - ,label="HELD {_ibtHeld = GRAPECANNON {_xNum = 1}}"]; + ,label="HELD {_ibtHeld = BLUNDERBUSS}"]; 57 [shape=box - ,label="HELD {_ibtHeld = RIFLE}"]; + ,label="HELD {_ibtHeld = GRAPECANNON {_xNum = 1}}"]; 59 [shape=box - ,label="HELD {_ibtHeld = VOLLEYGUN {_xNum = 3}}"]; + ,label="HELD {_ibtHeld = RIFLE}"]; 61 [shape=box - ,label="HELD {_ibtHeld = REPEATER}"]; + ,label="HELD {_ibtHeld = VOLLEYGUN {_xNum = 3}}"]; 63 [shape=box - ,label="HELD {_ibtHeld = AUTORIFLE}"]; + ,label="HELD {_ibtHeld = REPEATER}"]; 65 [shape=box - ,label="HELD {_ibtHeld = BURSTRIFLE}"]; + ,label="HELD {_ibtHeld = AUTORIFLE}"]; 67 [shape=box + ,label="HELD {_ibtHeld = BURSTRIFLE}"]; + 69 [shape=box ,label="HELD {_ibtHeld = MINIGUNX {_xNum = 3}}"]; - 70 [shape=box + 72 [shape=box ,label="HELD {_ibtHeld = SNIPERRIFLE}"]; - 71 [shape=box + 73 [shape=box ,label="HELD {_ibtHeld = AMR}"]; - 74 [shape=box - ,label="HELD {_ibtHeld = AUTOAMR}"]; 76 [shape=box - ,label="HELD {_ibtHeld = MACHINEGUN}"]; + ,label="HELD {_ibtHeld = AUTOAMR}"]; 78 [shape=box + ,label="HELD {_ibtHeld = MACHINEGUN}"]; + 80 [shape=box ,label="HELD {_ibtHeld = LAUNCHER}"]; - 81 [shape=box + 83 [shape=box ,label="HELD {_ibtHeld = LAUNCHERX {_xNum = 2}}"]; - 85 [shape=box + 87 [shape=box ,label="HELD {_ibtHeld = FLAMESPITTER}"]; - 89 [shape=box - ,label="HELD {_ibtHeld = BLOWTORCH}"]; 91 [shape=box - ,label="HELD {_ibtHeld = FLAMETHROWER}"]; + ,label="HELD {_ibtHeld = BLOWTORCH}"]; 93 [shape=box - ,label="HELD {_ibtHeld = FLAMEWALL}"]; + ,label="HELD {_ibtHeld = FLAMETHROWER}"]; 95 [shape=box - ,label="HELD {_ibtHeld = FLAMETORRENT}"]; + ,label="HELD {_ibtHeld = FLAMEWALL}"]; 97 [shape=box + ,label="HELD {_ibtHeld = FLAMETORRENT}"]; + 99 [shape=box ,label="HELD {_ibtHeld = LASGUN}"]; - 101 [shape=box - ,label="HELD {_ibtHeld = DUALBEAM}"]; 103 [shape=box - ,label="HELD {_ibtHeld = LASWIDE {_xNum = 2}}"]; + ,label="HELD {_ibtHeld = DUALBEAM}"]; 105 [shape=box - ,label="HELD {_ibtHeld = LASCIRCLE}"]; + ,label="HELD {_ibtHeld = LASWIDE {_xNum = 2}}"]; 107 [shape=box - ,label="HELD {_ibtHeld = SPARKGUN}"]; + ,label="HELD {_ibtHeld = LASCIRCLE}"]; 109 [shape=box - ,label="HELD {_ibtHeld = TESLAGUN}"]; + ,label="HELD {_ibtHeld = SPARKGUN}"]; 111 [shape=box + ,label="HELD {_ibtHeld = TESLAGUN}"]; + 113 [shape=box ,label="LEFT {_ibtLeft = BLINKER}"]; - 114 [shape=box - ,label="LEFT {_ibtLeft = BLINKERUNSAFE}"]; 116 [shape=box + ,label="LEFT {_ibtLeft = BLINKERUNSAFE}"]; + 118 [shape=box ,label="EQUIP {_ibtEquip = MAGSHIELD}"]; - 119 [shape=box + 121 [shape=box ,label="EQUIP {_ibtEquip = POWERLEGS}"]; - 125 [shape=box + 127 [shape=box ,label="HELD {_ibtHeld = FLATSHIELD}"]; - 135 [shape=box + 137 [shape=box ,label="EQUIP {_ibtEquip = AUTODETECTOR ITEMDETECTOR}"]; - 138 [shape=box - ,label="EQUIP {_ibtEquip = AUTODETECTOR WALLDETECTOR}"]; 140 [shape=box - ,label="EQUIP {_ibtEquip = AUTODETECTOR CREATUREDETECTOR}"]; + ,label="EQUIP {_ibtEquip = AUTODETECTOR WALLDETECTOR}"]; 142 [shape=box + ,label="EQUIP {_ibtEquip = AUTODETECTOR CREATUREDETECTOR}"]; + 144 [shape=box ,label="HELD {_ibtHeld = TORCH}"]; - 146 [shape=box + 148 [shape=box ,label="EQUIP {_ibtEquip = HEADLAMP}"]; - 154 [shape=box + 156 [shape=box ,label="HELD {_ibtHeld = BANGSTICK {_xNum = 2}}"]; } subgraph 2 { @@ -122,11 +124,11 @@ digraph { 27 [shape=point]; 30 [shape=point]; 34 [shape=point]; - 37 [shape=point]; + 38 [shape=point]; 40 [shape=point]; - 43 [shape=point]; + 42 [shape=point]; 45 [shape=point]; - 48 [shape=point]; + 47 [shape=point]; 50 [shape=point]; 52 [shape=point]; 54 [shape=point]; @@ -136,40 +138,40 @@ digraph { 62 [shape=point]; 64 [shape=point]; 66 [shape=point]; - 69 [shape=point]; - 72 [shape=point]; - 73 [shape=point]; + 68 [shape=point]; + 71 [shape=point]; + 74 [shape=point]; 75 [shape=point]; 77 [shape=point]; - 80 [shape=point]; + 79 [shape=point]; 82 [shape=point]; 84 [shape=point]; - 88 [shape=point]; + 86 [shape=point]; 90 [shape=point]; 92 [shape=point]; 94 [shape=point]; 96 [shape=point]; - 100 [shape=point]; + 98 [shape=point]; 102 [shape=point]; 104 [shape=point]; 106 [shape=point]; 108 [shape=point]; 110 [shape=point]; - 113 [shape=point]; + 112 [shape=point]; 115 [shape=point]; - 118 [shape=point]; - 121 [shape=point]; - 122 [shape=point]; + 117 [shape=point]; + 120 [shape=point]; 123 [shape=point]; 124 [shape=point]; + 125 [shape=point]; 126 [shape=point]; 128 [shape=point]; - 131 [shape=point]; - 134 [shape=point]; - 137 [shape=point]; + 130 [shape=point]; + 133 [shape=point]; + 136 [shape=point]; 139 [shape=point]; 141 [shape=point]; - 145 [shape=point]; + 143 [shape=point]; 147 [shape=point]; 149 [shape=point]; 151 [shape=point]; @@ -179,6 +181,7 @@ digraph { 159 [shape=point]; 161 [shape=point]; 163 [shape=point]; + 165 [shape=point]; } 0 -> 1 [xlabel="",tailport=e]; 2 -> 0 [xlabel=1 @@ -206,7 +209,7 @@ digraph { 16 -> 27 [xlabel=1 ,arrowhead=onone ,headport=w]; - 16 -> 145 [xlabel=1 + 16 -> 147 [xlabel=1 ,arrowhead=onone ,headport=w]; 18 -> 19 [xlabel="",tailport=e]; @@ -214,195 +217,196 @@ digraph { 24 -> 25 [xlabel="",tailport=e]; 27 -> 28 [xlabel="",tailport=e]; 30 -> 31 [xlabel="",tailport=e]; - 31 -> 34 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 45 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 56 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 58 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 58 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 58 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 153 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 159 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 31 -> 161 [xlabel=1 - ,arrowhead=onone - ,headport=w]; 34 -> 35 [xlabel="",tailport=e]; - 35 -> 37 [xlabel=1 + 35 -> 38 [xlabel=1 ,arrowhead=onone ,headport=w]; - 37 -> 38 [xlabel="",tailport=e]; - 38 -> 40 [xlabel=1 + 35 -> 47 [xlabel=1 ,arrowhead=onone ,headport=w]; - 38 -> 43 [xlabel=1 + 35 -> 58 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 60 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 60 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 60 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 155 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 161 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 35 -> 163 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 38 -> 39 [xlabel="",tailport=e]; + 39 -> 40 [xlabel=1 ,arrowhead=onone ,headport=w]; 40 -> 41 [xlabel="",tailport=e]; - 43 -> 44 [xlabel="",tailport=e]; - 45 -> 46 [xlabel="",tailport=e]; - 46 -> 48 [xlabel=1 + 41 -> 42 [xlabel=1 ,arrowhead=onone ,headport=w]; - 48 -> 49 [xlabel="",tailport=e]; - 49 -> 157 [xlabel=1 + 41 -> 45 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 42 -> 43 [xlabel="",tailport=e]; + 45 -> 46 [xlabel="",tailport=e]; + 47 -> 48 [xlabel="",tailport=e]; + 48 -> 50 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 50 -> 51 [xlabel="",tailport=e]; + 51 -> 159 [xlabel=1 ,arrowhead=onone ,headport=w]; - 50 -> 51 [xlabel="",tailport=e]; - 51 -> 52 [xlabel=1 - ,arrowhead=onone - ,headport=w]; 52 -> 53 [xlabel="",tailport=e]; 53 -> 54 [xlabel=1 ,arrowhead=onone ,headport=w]; 54 -> 55 [xlabel="",tailport=e]; - 55 -> 163 [xlabel=1 - ,arrowhead=onone - ,headport=w]; + 55 -> 56 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 56 -> 57 [xlabel="",tailport=e]; - 57 -> 60 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 57 -> 72 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 58 -> 59 [xlabel="",tailport=e]; - 59 -> 66 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 59 -> 159 [xlabel=1 + 57 -> 165 [xlabel=1 ,arrowhead=onone ,headport=w]; + 58 -> 59 [xlabel="",tailport=e]; + 59 -> 62 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 59 -> 74 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 60 -> 61 [xlabel="",tailport=e]; - 61 -> 62 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 61 -> 64 [xlabel=1 + 61 -> 68 [xlabel=1 ,arrowhead=onone ,headport=w]; + 61 -> 161 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 62 -> 63 [xlabel="",tailport=e]; + 63 -> 64 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 63 -> 66 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 64 -> 65 [xlabel="",tailport=e]; 66 -> 67 [xlabel="",tailport=e]; - 67 -> 161 [xlabel=1 + 68 -> 69 [xlabel="",tailport=e]; + 69 -> 163 [xlabel=1 ,arrowhead=onone ,headport=w]; - 69 -> 70 [xlabel="",tailport=e]; - 71 -> 69 [xlabel=1 + 71 -> 72 [xlabel="",tailport=e]; + 73 -> 71 [xlabel=1 ,arrowhead=onone ,headport=w]; - 71 -> 73 [xlabel=1 + 73 -> 75 [xlabel=1 ,arrowhead=onone ,headport=w]; - 71 -> 75 [xlabel=1 + 73 -> 77 [xlabel=1 ,arrowhead=onone ,headport=w]; - 72 -> 71 [xlabel="",tailport=e]; - 73 -> 74 [xlabel="",tailport=e]; + 74 -> 73 [xlabel="",tailport=e]; 75 -> 76 [xlabel="",tailport=e]; 77 -> 78 [xlabel="",tailport=e]; - 78 -> 80 [xlabel=1 + 79 -> 80 [xlabel="",tailport=e]; + 80 -> 82 [xlabel=1 ,arrowhead=onone ,headport=w]; - 80 -> 81 [xlabel="",tailport=e]; - 81 -> 82 [xlabel=1 + 82 -> 83 [xlabel="",tailport=e]; + 83 -> 84 [xlabel=1 ,arrowhead=onone ,headport=w]; - 84 -> 85 [xlabel="",tailport=e]; - 85 -> 88 [xlabel=1 + 86 -> 87 [xlabel="",tailport=e]; + 87 -> 90 [xlabel=1 ,arrowhead=onone ,headport=w]; - 85 -> 90 [xlabel=1 + 87 -> 92 [xlabel=1 ,arrowhead=onone ,headport=w]; - 88 -> 89 [xlabel="",tailport=e]; 90 -> 91 [xlabel="",tailport=e]; - 91 -> 92 [xlabel=1 - ,arrowhead=onone - ,headport=w]; - 91 -> 94 [xlabel=1 - ,arrowhead=onone - ,headport=w]; 92 -> 93 [xlabel="",tailport=e]; + 93 -> 94 [xlabel=1 + ,arrowhead=onone + ,headport=w]; + 93 -> 96 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 94 -> 95 [xlabel="",tailport=e]; 96 -> 97 [xlabel="",tailport=e]; - 97 -> 100 [xlabel=1 + 98 -> 99 [xlabel="",tailport=e]; + 99 -> 102 [xlabel=1 ,arrowhead=onone ,headport=w]; - 97 -> 100 [xlabel=1 + 99 -> 102 [xlabel=1 ,arrowhead=onone ,headport=w]; - 97 -> 102 [xlabel=1 + 99 -> 104 [xlabel=1 ,arrowhead=onone ,headport=w]; - 97 -> 104 [xlabel=1 + 99 -> 106 [xlabel=1 ,arrowhead=onone ,headport=w]; - 97 -> 104 [xlabel=1 + 99 -> 106 [xlabel=1 ,arrowhead=onone ,headport=w]; - 97 -> 104 [xlabel=1 + 99 -> 106 [xlabel=1 ,arrowhead=onone ,headport=w]; - 100 -> 101 [xlabel="" - ,tailport=e]; 102 -> 103 [xlabel="" ,tailport=e]; - 103 -> 151 [xlabel=1 - ,arrowhead=onone - ,headport=w]; 104 -> 105 [xlabel="" ,tailport=e]; + 105 -> 153 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 106 -> 107 [xlabel="" ,tailport=e]; - 107 -> 108 [xlabel=1 - ,arrowhead=onone - ,headport=w]; 108 -> 109 [xlabel="" ,tailport=e]; - 110 -> 111 [xlabel="" - ,tailport=e]; - 111 -> 113 [xlabel=1 + 109 -> 110 [xlabel=1 ,arrowhead=onone ,headport=w]; - 113 -> 114 [xlabel="" + 110 -> 111 [xlabel="" ,tailport=e]; + 112 -> 113 [xlabel="" + ,tailport=e]; + 113 -> 115 [xlabel=1 + ,arrowhead=onone + ,headport=w]; 115 -> 116 [xlabel="" ,tailport=e]; - 118 -> 119 [xlabel="" + 117 -> 118 [xlabel="" ,tailport=e]; - 124 -> 125 [xlabel="" + 120 -> 121 [xlabel="" ,tailport=e]; - 134 -> 135 [xlabel="" + 126 -> 127 [xlabel="" ,tailport=e]; - 137 -> 138 [xlabel="" + 136 -> 137 [xlabel="" ,tailport=e]; 139 -> 140 [xlabel="" ,tailport=e]; 141 -> 142 [xlabel="" ,tailport=e]; - 142 -> 145 [xlabel=1 + 143 -> 144 [xlabel="" + ,tailport=e]; + 144 -> 147 [xlabel=1 ,arrowhead=onone ,headport=w]; - 145 -> 146 [xlabel="" + 147 -> 148 [xlabel="" ,tailport=e]; - 153 -> 154 [xlabel="" + 155 -> 156 [xlabel="" ,tailport=e]; - 154 -> 155 [xlabel=1 + 156 -> 157 [xlabel=1 ,arrowhead=onone ,headport=w]; } \ No newline at end of file diff --git a/shader/lighting/texture.frag b/shader/lighting/texture.frag index bf5be53ed..46aaeee05 100644 --- a/shader/lighting/texture.frag +++ b/shader/lighting/texture.frag @@ -24,6 +24,7 @@ void main() { float y = y2; //float x = 1 - dist / rad; float x = 1 - (pow(dist / rad,4)); + //float x = 1 ; //float x = 1; //float x = 1 - max(0, ((dist + 10000) - rad) * 0.0001) ; //vec3 c = y* (x * x * x) * lumRad.rgb; diff --git a/src/Dodge/Combine/Combinations.hs b/src/Dodge/Combine/Combinations.hs index 6fba25a07..e8c276db0 100644 --- a/src/Dodge/Combine/Combinations.hs +++ b/src/Dodge/Combine/Combinations.hs @@ -5,6 +5,7 @@ module Dodge.Combine.Combinations , bulletWeapons ) where +import Dodge.Item.Ammo import Dodge.Data.Item import Dodge.Item import LensHelp @@ -35,12 +36,19 @@ hatCombinations = po xs it = (map o xs, it) o = (1,) +magazineCombinations :: [([(ItAmount,ItemBaseType)],Item)] +magazineCombinations = + [ po [CRAFT TIN, CRAFT SPRING] tinMag ] + where + po xs it = (map o xs, it) + o = (1,) itemCombinations :: [([(ItAmount, ItemBaseType)], Item)] itemCombinations = watchCombinations ++ backpackCombinations ++ hatCombinations ++ + magazineCombinations ++ [ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1) , po [HELD (BANGSTICK 1), CRAFT TIN] pistol , po [HELD PISTOL, CRAFT SPRING] autoPistol diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index 67092a064..13241db78 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -98,8 +98,8 @@ data AttachType = SCROLLATTACH ScrollAttachType | AMMOATTACH AmmoAttachType | TARGETATTACH {_ibtAttachTarget :: TargetType} - | BULPAYLOADATTACH - | BULTRAJECTORYATTACH +-- | BULPAYLOADATTACH +-- | BULTRAJECTORYATTACH deriving (Eq, Ord, Show, Read) data ScrollAttachType @@ -167,6 +167,7 @@ data HeldItemType | GRAPECANNON {_xNum :: Int} | MINIGUNX {_xNum :: Int} | VOLLEYGUN {_xNum :: Int} + | MULTIGUN {_xNum :: Int} | RIFLE | REPEATER | AUTORIFLE diff --git a/src/Dodge/Data/Item/HeldUse.hs b/src/Dodge/Data/Item/HeldUse.hs index 350c3d0cb..ab5b577d4 100644 --- a/src/Dodge/Data/Item/HeldUse.hs +++ b/src/Dodge/Data/Item/HeldUse.hs @@ -84,6 +84,7 @@ data HeldMod | AmmoHammerTimeUseOneMod | BangCaneMod | VolleyGunMod + | MultiGunMod | AutoRifleMod | BangRodMod | ElephantGunMod diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index c45e87d77..0711e557e 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -58,7 +58,7 @@ data ItemUse data AttachParams = ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams} - | AmmoAttachParams + | AmmoAttachParams {_ammoAttachParams :: InternalAmmo} | TargetAttachParams data ScrollAttachParams diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 748576fbc..803003a9d 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -153,6 +153,17 @@ useMod hm = case hm of , ammoCheckI , blCheck ] + MultiGunMod -> + [ withRecoil + , withFlare + , duplicateLoadedBarrels + , withTorqueAfter + , useAllAmmo + , withSoundItemChoiceStart caneStickSoundChoice + , useTimeCheck + , ammoCheckI + , blCheck + ] AutoRifleMod -> -- note this is the same as BangCanemMod with the first changed [ withFlare diff --git a/src/Dodge/Item/Ammo.hs b/src/Dodge/Item/Ammo.hs index a7ec9ac2a..e8012aa4e 100644 --- a/src/Dodge/Item/Ammo.hs +++ b/src/Dodge/Item/Ammo.hs @@ -6,10 +6,19 @@ import Dodge.Default.Item tinMag :: Item tinMag = defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG) - & itUse .~ AttachUse AmmoAttachParams + & itUse .~ AttachUse {_attachParams = AmmoAttachParams {_ammoAttachParams = InternalAmmo + { _iaMax = 15 + , _iaLoaded = 15 + , _iaPrimed = True + , _iaCycle = [] + , _iaProgress = Nothing + } + } + } drumMag :: Item drumMag = tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG) + & itUse . attachParams . ammoAttachParams . iaMax .~ 30 beltMag :: Item beltMag = tinMag & itType . iyBase .~ ATTACH (AMMOATTACH BULLETBELT) diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index f011c0825..47a2ebd9e 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -81,6 +81,7 @@ ammoPosition itm hit = case hit of GRAPECANNON _ -> NoAmmoPosition MINIGUNX _ -> NoAmmoPosition VOLLEYGUN i -> volleygunAmmoPos i + MULTIGUN i -> multigunAmmoPos i RIFLE -> Bullets [(V3 5 0 3, Q.axisAngle (V3 1 0 0) 0)] REPEATER -> Magazine (V3 10 (-2) 0) rhs AUTORIFLE -> Magazine (V3 10 (-2) 0) rhs @@ -129,6 +130,13 @@ volleygunAmmoPos i = where f n = fromIntegral n * 5 - ((fromIntegral i - 1) * 2.5) +multigunAmmoPos :: Int -> AmmoPosition +multigunAmmoPos i = + Bullets + [(V3 5 (f n) 3, Q.axisAngle (V3 1 0 0) 0) | n <- [0 .. i -1]] + where + f n = fromIntegral n * 5 - ((fromIntegral i - 1) * 2.5) + revolverAmmoPos :: AmmoPosition revolverAmmoPos = Bullets @@ -154,6 +162,7 @@ heldItemSPic ht it = case ht of GRAPECANNON _ -> noPic $ bangConeShape 20 MINIGUNX i -> miniGunXPictItem i it VOLLEYGUN i -> noPic $ volleyGunShape i <> addBullets it + MULTIGUN i -> noPic $ volleyGunShape i <> addBullets it RIFLE -> noPic $ baseRifleShape <> addBullets it REPEATER -> noPic $ baseRifleShape <> addTinClip it AUTORIFLE -> noPic $ baseRifleShape <> addTinClip it diff --git a/src/Dodge/Item/Held.hs b/src/Dodge/Item/Held.hs index 634972b3e..c65637d0a 100644 --- a/src/Dodge/Item/Held.hs +++ b/src/Dodge/Item/Held.hs @@ -39,6 +39,7 @@ itemFromHeldType ht = case ht of GRAPECANNON i -> grapeCannon i MINIGUNX i -> miniGunX i VOLLEYGUN i -> volleyGun i + MULTIGUN i -> multiGun i RIFLE -> rifle REPEATER -> repeater AUTORIFLE -> autoRifle diff --git a/src/Dodge/Item/Held/Cane.hs b/src/Dodge/Item/Held/Cane.hs index ab7fc5afd..59143631c 100644 --- a/src/Dodge/Item/Held/Cane.hs +++ b/src/Dodge/Item/Held/Cane.hs @@ -1,5 +1,6 @@ module Dodge.Item.Held.Cane ( volleyGun, + multiGun, repeater, rifle, autoRifle, @@ -49,6 +50,19 @@ volleyGun i = & itParams . torqueAfter .~ 0.15 + 0.05 * fromIntegral i & itType . iyBase .~ HELD (VOLLEYGUN i) +multiGun :: Int -> Item +multiGun i = + defaultBangCane + & itUse . heldMods .~ MultiGunMod + & itUse . heldAim . aimWeight .~ 6 + & itUse . heldAim . aimRange .~ 1 + & itUse . heldAim . aimStance .~ TwoHandFlat + & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} + & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 3] + & itUse . heldConsumption . laSource . _InternalSource . iaMax .~ i + & itParams . torqueAfter .~ 0.15 + 0.05 * fromIntegral i + & itType . iyBase .~ HELD (MULTIGUN i) + rifle :: Item rifle = defaultBangCane diff --git a/src/Dodge/Item/Held/Stick.hs b/src/Dodge/Item/Held/Stick.hs index ab8780629..e65f8d259 100644 --- a/src/Dodge/Item/Held/Stick.hs +++ b/src/Dodge/Item/Held/Stick.hs @@ -55,8 +55,7 @@ pistol = bangStick 1 & itUse . heldConsumption .~ ( defaultBulletLoadable - & laSource . _InternalSource . iaMax .~ 15 - & laSource . _InternalSource . iaCycle .~ [loadEject 5, loadInsert 5, loadPrime 5] + & laSource .~ BelowSource ) & itUse . heldDelay . rateMax .~ 6 & itUse . heldMods .~ PistolMod diff --git a/src/Dodge/Item/Module.hs b/src/Dodge/Item/Module.hs index 8624b1da8..d6155d4b0 100644 --- a/src/Dodge/Item/Module.hs +++ b/src/Dodge/Item/Module.hs @@ -24,7 +24,6 @@ itBounds ibt = case ibt of HELD hit -> heldBounds hit _ -> V3 0 0 0 - heldBounds :: HeldItemType -> Point3 heldBounds hit = case hit of BANGSTICK _ -> V3 0 0 0 @@ -39,6 +38,7 @@ heldBounds hit = case hit of GRAPECANNON _ -> bbs MINIGUNX _ -> minis VOLLEYGUN _ -> undefined + MULTIGUN _ -> undefined RIFLE -> rs REPEATER -> rs AUTORIFLE -> rs diff --git a/src/Dodge/Item/Weapon/TriggerType.hs b/src/Dodge/Item/Weapon/TriggerType.hs index 08090c7a5..56063941e 100644 --- a/src/Dodge/Item/Weapon/TriggerType.hs +++ b/src/Dodge/Item/Weapon/TriggerType.hs @@ -150,6 +150,12 @@ ammoCheckI eff itm cr w = case itm ^? itUse . heldConsumption . laSource of x <- cr ^? crInv . ix (invid - 1) . itUse . equipEffect . eeUse . euseAmmoAmount return $ x <= 0 -> failsound w + Just BelowSource + | fromMaybe True $ do + invid <- itm ^? itLocation . ipInvID + x <- cr ^? crInv . ix (invid + 1) . itUse . attachParams . ammoAttachParams . iaLoaded + return $ x <= 0 -> + failsound w _ -> eff itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading where failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of @@ -342,20 +348,19 @@ withSidePushAfterI maxSide eff item cr w = (pushAmount, g) = randomR (- maxSide, maxSide) $ _randGen w useAllAmmo :: ChainEffect -useAllAmmo eff item cr = - eff item cr - . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itUse . heldConsumption . laSource . _InternalSource . iaLoaded .~ 0) - where - itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change +useAllAmmo eff item cr = fromMaybe id $ do + invid <- item ^? itLocation . ipInvID + return $ eff item cr + . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) + . itUse . heldConsumption . laSource . _InternalSource . iaLoaded .~ 0) useAmmoUpTo :: Int -> ChainEffect -useAmmoUpTo amAmount eff item cr = - eff item cr - . ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itUse . heldConsumption . laSource . _InternalSource . iaLoaded +useAmmoUpTo amAmount eff itm cr = fromMaybe id $ do + invid <- itm ^? itLocation . ipInvID + return $ eff itm cr + . ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (invid + 1) . itUse . attachParams . ammoAttachParams . iaLoaded %~ (max 0 . subtract amAmount) ) - where - itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change useAmmoAmount :: Int -> ChainEffect useAmmoAmount amAmount eff item cr = diff --git a/tags b/tags index c79e14f92..33b643979 100644 --- a/tags +++ b/tags @@ -198,9 +198,7 @@ BULLETBELT src/Dodge/Data/Item/Combine.hs 112;" C BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 139;" C BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 138;" C BULPAY src/Dodge/Data/Item/Combine.hs 208;" C -BULPAYLOADATTACH src/Dodge/Data/Item/Combine.hs 101;" C BULTRAJ src/Dodge/Data/Item/Combine.hs 210;" C -BULTRAJECTORYATTACH src/Dodge/Data/Item/Combine.hs 102;" C BURSTRIFLE src/Dodge/Combine/Data.hs 152;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 173;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C @@ -2992,6 +2990,7 @@ _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" f _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" f _amString src/Dodge/Data/Item/Use/Consumption/Ammo.hs 56;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f +_ammoAttachParams src/Dodge/Data/Item/Use.hs 61;" f _amposDir src/Dodge/Item/AmmoPosition.hs 9;" f _amposPos src/Dodge/Item/AmmoPosition.hs 9;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f @@ -4396,7 +4395,7 @@ advanceScrollAmount src/Dodge/Update.hs 297;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 293;" f +afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 299;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f aimStanceInfo src/Dodge/Item/Info.hs 231;" f aimTurn src/Dodge/Creature/YourControl.hs 188;" f @@ -4493,7 +4492,7 @@ attachList' src/Dodge/Tree/Compose.hs 80;" f attachOnward src/Dodge/Tree/Compose.hs 95;" f attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f -attachmentTree src/Dodge/Base/You.hs 40;" f +attachmentTree src/Dodge/Base/You.hs 39;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 67;" f attribSize src/Shader/Compile.hs 352;" f autoAmr src/Dodge/Item/Held/Rod.hs 59;" f @@ -4574,12 +4573,12 @@ batteryGuns src/Dodge/Combine/Combinations.hs 220;" f batteryModules src/Dodge/Item/Held/BatteryGuns.hs 122;" f batteryPack src/Dodge/Item/Equipment.hs 58;" f belowNumX src/Dodge/Combine/Graph.hs 78;" f -beltMag src/Dodge/Item/Ammo.hs 14;" f +beltMag src/Dodge/Item/Ammo.hs 23;" f bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f bfsNodePoints src/Dodge/Path.hs 58;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f bindFBO src/Render.hs 244;" f -blCheck src/Dodge/Item/Weapon/TriggerType.hs 397;" f +blCheck src/Dodge/Item/Weapon/TriggerType.hs 403;" f black src/Color.hs 27;" f blank src/Picture/Base.hs 59;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f @@ -5400,17 +5399,17 @@ dropByState src/Dodge/Creature/State.hs 155;" f dropExcept src/Dodge/Creature/Action.hs 178;" f dropItem src/Dodge/Creature/Action.hs 183;" f dropItemKey src/Dodge/Config/KeyConfig.hs 24;" f -drumMag src/Dodge/Item/Ammo.hs 11;" f +drumMag src/Dodge/Item/Ammo.hs 19;" f dualBeam src/Dodge/Item/Held/BatteryGuns.hs 148;" f dualBeamPic src/Dodge/Item/Draw/SPic.hs 451;" f dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f dummyMenuOption src/Dodge/Menu/Option.hs 81;" f -duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 718;" f -duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 674;" f -duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 694;" f -duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 680;" f -duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 699;" f -duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 723;" f +duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 724;" f +duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 680;" f +duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 700;" f +duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 686;" f +duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 705;" f +duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 729;" f ebFlicker src/Dodge/EnergyBall.hs 94;" f edgeFormatting src/Dodge/Combine/Graph.hs 120;" f edgeToPic src/Dodge/Debug/Picture.hs 392;" f @@ -5686,7 +5685,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f haltSound src/Dodge/SoundLogic.hs 37;" f -hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 405;" f +hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 411;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f @@ -5879,8 +5878,8 @@ itBounds src/Dodge/Item/Module.hs 22;" f itSlotsTaken src/Dodge/Inventory/ItemSpace.hs 9;" f itSlotsTaken src/Dodge/Item/SlotsTaken.hs 9;" f itStackAmount src/Dodge/Item/Amount.hs 7;" f -itUseAmmo src/Dodge/Item/Weapon/TriggerType.hs 162;" f -itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 159;" f +itUseAmmo src/Dodge/Item/Weapon/TriggerType.hs 168;" f +itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 165;" f itemBaseName src/Dodge/Item/Display.hs 75;" f itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f itemBlips src/Dodge/RadarSweep.hs 74;" f @@ -6252,7 +6251,7 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f mntLight src/Dodge/Placements/LightSource.hs 89;" f mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f -modClock src/Dodge/Item/Weapon/TriggerType.hs 464;" f +modClock src/Dodge/Item/Weapon/TriggerType.hs 470;" f modTo src/Geometry/Zone.hs 10;" f modifierKey src/Dodge/Config/KeyConfig.hs 34;" f moduleAttachPosition src/Dodge/Item/Module.hs 6;" f @@ -6783,7 +6782,7 @@ randsOnCirc src/RandomHelp.hs 118;" f randsSpread src/Dodge/RandomHelp.hs 100;" f randsSpread src/RandomHelp.hs 111;" f ratIntersectLineLine src/Geometry/Intersect.hs 195;" f -rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 169;" f +rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 175;" f readSaveSlot src/Dodge/Save.hs 45;" f rectNESW src/Geometry/Polygon.hs 13;" f rectNSWE src/Geometry/Polygon.hs 19;" f @@ -6834,7 +6833,7 @@ renderLayer src/Render.hs 233;" f renderLightingNoShadows src/Render.hs 48;" f renderListAt src/Dodge/Render/List.hs 160;" f renderShadows src/Render.hs 117;" f -repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 662;" f +repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 668;" f repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 93;" f repeater src/Dodge/Item/Held/Cane.hs 66;" f repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f @@ -6939,8 +6938,8 @@ rotateV src/Geometry/Vector.hs 105;" f rotateVAround src/Geometry/Vector.hs 112;" f rotateXY src/Polyhedra.hs 30;" f roundPoint2 src/Geometry/Intersect.hs 216;" f -roundTank src/Dodge/Placement/Instance/Tank.hs 41;" f -roundTankCross src/Dodge/Placement/Instance/Tank.hs 47;" f +roundTank src/Dodge/Placement/Instance/Tank.hs 25;" f +roundTankCross src/Dodge/Placement/Instance/Tank.hs 31;" f rpIsOffPath src/Dodge/PlacementSpot.hs 80;" f rpIsOnPath src/Dodge/PlacementSpot.hs 75;" f rpOffPathFromEdge src/Dodge/PlacementSpot.hs 85;" f @@ -7140,7 +7139,7 @@ shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f -shootL src/Dodge/Item/Weapon/TriggerType.hs 419;" f +shootL src/Dodge/Item/Weapon/TriggerType.hs 425;" f shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 127;" f shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f @@ -7190,7 +7189,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/Dodge/RandomHelp.hs 50;" f shuffleTail src/RandomHelp.hs 55;" f -sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 642;" f +sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 648;" f sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f sigmoid src/Dodge/Base.hs 129;" f simpleCrSprings src/Dodge/Update.hs 639;" f @@ -7504,10 +7503,10 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f torch src/Dodge/Item/Held/Utility.hs 26;" f torchShape src/Dodge/Item/Draw/SPic.hs 189;" f -torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 572;" f -torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 595;" f +torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 578;" f +torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 601;" f torqueCr src/Dodge/WorldEffect.hs 64;" f -torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 650;" f +torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 656;" f torso src/Dodge/Creature/Picture.hs 132;" f tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f @@ -7639,7 +7638,7 @@ unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 122;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f upCT src/Dodge/Targeting.hs 34;" f -upDownAttachments src/Dodge/Base/You.hs 45;" f +upDownAttachments src/Dodge/Base/You.hs 44;" f upHammer src/Dodge/Default.hs 77;" f upProjectile src/Dodge/Projectile/Update.hs 56;" f updateAllNodes src/TreeHelp.hs 85;" f @@ -7777,12 +7776,12 @@ upperPrismPolySU src/Shape.hs 112;" f upperPrismPolyTS src/Shape.hs 118;" f upperRounded src/Shape.hs 181;" f upsProjectile src/Dodge/Projectile/Update.hs 53;" f -useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 344;" f -useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 360;" f -useAmmoAmount' src/Dodge/Item/Weapon/TriggerType.hs 367;" f +useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 350;" f +useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 366;" f +useAmmoAmount' src/Dodge/Item/Weapon/TriggerType.hs 373;" f useAmmoParams src/Dodge/Bullet.hs 59;" f useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f -useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 351;" f +useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 357;" f useC src/Dodge/Cuse.hs 6;" f useE src/Dodge/Euse.hs 24;" f useEquipment src/Dodge/Creature/State.hs 219;" f @@ -7809,7 +7808,7 @@ useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useShrinkGun src/Dodge/Luse.hs 59;" f useStopWatch src/Dodge/Luse.hs 24;" f useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f -useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 386;" f +useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 392;" f useTimeScrollGun src/Dodge/Luse.hs 32;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUpdate src/Dodge/Creature/State.hs 211;" f @@ -7907,35 +7906,35 @@ windowxsize src/LoadConfig.hs 12;" f windowysize src/LoadConfig.hs 13;" f withAlpha src/Color.hs 10;" f withByteString src/Shader/Compile.hs 370;" f -withCrPos src/Dodge/Item/Weapon/TriggerType.hs 502;" f -withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 505;" f -withFlare src/Dodge/Item/Weapon/TriggerType.hs 469;" f -withItem src/Dodge/Item/Weapon/TriggerType.hs 442;" f -withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 451;" f -withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 446;" f -withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 481;" f -withOldDir src/Dodge/Item/Weapon/TriggerType.hs 519;" f -withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 554;" f -withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 538;" f -withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 545;" f -withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 511;" f -withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 533;" f -withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 526;" f -withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 564;" f -withRecoil src/Dodge/Item/Weapon/TriggerType.hs 302;" f -withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 331;" f -withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 312;" f +withCrPos src/Dodge/Item/Weapon/TriggerType.hs 508;" f +withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 511;" f +withFlare src/Dodge/Item/Weapon/TriggerType.hs 475;" f +withItem src/Dodge/Item/Weapon/TriggerType.hs 448;" f +withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 457;" f +withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 452;" f +withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 487;" f +withOldDir src/Dodge/Item/Weapon/TriggerType.hs 525;" f +withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 560;" f +withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 544;" f +withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 551;" f +withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 517;" f +withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 539;" f +withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 532;" f +withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 570;" f +withRecoil src/Dodge/Item/Weapon/TriggerType.hs 308;" f +withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 337;" f +withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 318;" f withSmoke src/Dodge/Item/Weapon/TriggerType.hs 113;" f -withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 255;" f -withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 268;" f -withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 281;" f -withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 226;" f -withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 242;" f -withTempLight src/Dodge/Item/Weapon/TriggerType.hs 456;" f +withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 261;" f +withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 274;" f +withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 287;" f +withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 232;" f +withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 248;" f +withTempLight src/Dodge/Item/Weapon/TriggerType.hs 462;" f withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 131;" f withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 122;" f -withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 621;" f -withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 206;" f +withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 627;" f +withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 212;" f wlDustAt src/Dodge/Wall/Dust.hs 10;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f @@ -7974,20 +7973,20 @@ xyzV4 src/Geometry/Vector.hs 207;" f yIntercepts' src/Dodge/Zoning/Base.hs 74;" f yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f -you src/Dodge/Base/You.hs 12;" f +you src/Dodge/Base/You.hs 11;" f youBox' src/Dodge/Creature/ShadowBox.hs 8;" f youDropItem src/Dodge/Creature/Action.hs 192;" f youSil src/Dodge/Creature/ShadowBox.hs 15;" f -youc src/Dodge/Base/You.hs 15;" f +youc src/Dodge/Base/You.hs 14;" f yourAugmentedItem src/Dodge/Render/HUD.hs 118;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f yourInfo src/Dodge/Creature/Info.hs 8;" f -yourInv src/Dodge/Base/You.hs 37;" f -yourItem src/Dodge/Base/You.hs 18;" f -yourScopeInvID src/Dodge/Base/You.hs 31;" f -yourScrollAttachment src/Dodge/Base/You.hs 23;" f +yourInv src/Dodge/Base/You.hs 36;" f +yourItem src/Dodge/Base/You.hs 17;" f +yourScopeInvID src/Dodge/Base/You.hs 30;" f +yourScrollAttachment src/Dodge/Base/You.hs 22;" f yourStatsInfo src/Dodge/Creature/Info.hs 25;" f zConnect src/Dodge/Render/Connectors.hs 9;" f zConnectCol src/Dodge/Render/Connectors.hs 16;" f