Improve click detectors

Introduce "gadgets" as a structural function, for items that can be used
when held and when not held. Click detectors are such an item. Make
click detectors correctly attach and use up batteries when used.
This commit is contained in:
2024-12-18 13:34:05 +00:00
parent 4d6d255893
commit c4e8046332
17 changed files with 119 additions and 79 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -117,7 +117,7 @@ inventoryX :: Char -> [Item]
inventoryX c = case c of
'A' ->
[ clickDetector x | x <- [minBound .. maxBound]
] <> [pulseChecker] <> fold
] <> [pulseChecker,battery] <> fold
[ makeTypeCraftNum 1 TRANSFORMER
, makeTypeCraftNum 2 CAN
, makeTypeCraftNum 2 PIPE
+4
View File
@@ -32,6 +32,10 @@ useRootItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMaybe w
return $
heldEffect (bimap _iatType fst3 itmtree) cr w
& pointerToItem itm . itUse . heldHammer .~ HammerDown
GadgetPlatformSF ->
return $
heldEffect (bimap _iatType fst3 itmtree) cr w
& pointerToItem itm . itUse . heldHammer .~ HammerDown
EquipmentPlatformSF -> do
guard (_crHammerPosition cr == HammerUp)
invid <- itm ^? itLocation . ilInvID
+2
View File
@@ -14,6 +14,7 @@ import Linear.Quaternion (Quaternion (..))
data ComposeLinkType
= AmmoInLink Int AmmoType
| TriggerLink
| AmmoModLink
| AmmoTargetingLink
| AmmoPayloadLink
@@ -31,6 +32,7 @@ data ItemStructuralFunction
| GadgetPlatformSF
| WeaponScopeSF
| WeaponTargetingSF
| TriggerSF
| AugmentedHUDSF
| AmmoMagSF AmmoType
| RemoteScreenSF
+8
View File
@@ -153,6 +153,11 @@ data MuzzleEffect
| MuzzleDetector
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data AmmoPerShot
= UseExactly {_useExactly :: Int}
| UseUpTo {_useUpTo :: Int}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Muzzle = Muzzle
{ _mzPos :: V2 Float
, _mzRot :: Float
@@ -160,6 +165,7 @@ data Muzzle = Muzzle
, _mzAmmoSlot :: Int
, _mzFlareType :: FlareType
, _mzEffect :: MuzzleEffect
, _mzAmmoPerShot :: AmmoPerShot
-- , _mzChargeRequirement :: Maybe Int
-- , _mzRecoil :: Float
-- , _mzTorque :: Float
@@ -194,11 +200,13 @@ makeLenses ''HeldParams
makeLenses ''AttachParams
makeLenses ''AmmoParams
makeLenses ''MuzzleEffect
makeLenses ''AmmoPerShot
deriveJSON defaultOptions ''MuzzleEffect
deriveJSON defaultOptions ''FlareType
deriveJSON defaultOptions ''TriggerType
deriveJSON defaultOptions ''AmmoParams
deriveJSON defaultOptions ''HeldParams
deriveJSON defaultOptions ''AmmoPerShot
deriveJSON defaultOptions ''Muzzle
deriveJSON defaultOptions ''AimStance
+1 -1
View File
@@ -38,7 +38,7 @@ singleAmmo x = IM.insert 0 x mempty
defaultBulletWeapon :: Item
defaultBulletWeapon = defaultHeldItem
& itAmmoSlots .~ singleAmmo BulletAmmo
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 0) 0 0.01 0 PistolFlare MuzzleShootBullet]
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 15 0) 0 0.01 0 PistolFlare MuzzleShootBullet (UseExactly 1)]
defaultConsumable :: Item
defaultConsumable = defaultHeldItem & itUse .~ UseConsume CDoNothing
+1
View File
@@ -23,6 +23,7 @@ defaultAimParams =
, _mzAmmoSlot = 0
, _mzFlareType = DefaultFlareType
, _mzEffect = MuzzleShootBullet
, _mzAmmoPerShot = UseExactly 1
}
]
}
+13 -4
View File
@@ -44,7 +44,7 @@ hammerCheck f it cr w = case it ^? ldtValue . itUse . heldTriggerType of
heldEffectMuzzles :: LabelDoubleTree ComposeLinkType Item -> Creature -> World -> World
heldEffectMuzzles t cr w =
uncurry (applyCME (_ldtValue t) cr) cmew
& cWorld . lWorld . lTestString .~ map (show . _mzAmmoSlot) muzzles
-- & cWorld . lWorld . lTestString .~ map (show . _mzAmmoSlot) muzzles
& doWeaponRepetitions upitm cr
where
muzzles = t ^. ldtValue . itUse . heldAim . aimMuzzles
@@ -63,7 +63,12 @@ doWeaponRepetitions itm cr = case itm ^? ldtValue . itUse . heldParams . weaponR
applyCME :: Item -> Creature -> CumulativeMuzzleEffect -> World -> World
applyCME itm cr cme
| _cmeSound cme = applyInvLock itm cr . applySoundCME itm cr . applySidePush spush cr . applyTorqueCME itm cr . applyRecoil itm cr
| _cmeSound cme =
applyInvLock itm cr
. applySoundCME itm cr
. applySidePush spush cr
. applyTorqueCME itm cr
. applyRecoil itm cr
| otherwise = failsound
where
spush = fromMaybe 0 $ itm ^? itUse . heldParams . sidePush
@@ -131,10 +136,14 @@ loadMuzzle ::
(LabelDoubleTree ComposeLinkType Item, Maybe (Muzzle, Int, LabelDoubleTree ComposeLinkType Item))
loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
let as = _mzAmmoSlot mz
amamount = 1
amamount = _mzAmmoPerShot mz
(i, (_, mag)) <- findWithIx (isAmmoIntLink as . fst) l
availableammo <- mag ^? ldtValue . itUse . amagLoadStatus . iaLoaded
let usedammo = min amamount availableammo
let usedammo = case amamount of
UseUpTo x -> min x availableammo
UseExactly x
| x <= availableammo -> x
| otherwise -> 0
guard $ usedammo > 0
return
( t & ldtLeft . ix i . _2 . ldtValue . itUse . amagLoadStatus . iaLoaded -~ usedammo
+6
View File
@@ -57,6 +57,10 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
( getAmmoLinks itm
, [(WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)]
)
(_, GadgetPlatformSF) ->
( getAmmoLinks itm
, [(TriggerSF,TriggerLink),(WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)]
)
(_, AmmoMagSF{}) -> fromMaybe ([], []) $ do
atype <- itm ^? itUse . amagType
return
@@ -82,6 +86,7 @@ getAmmoLinks itm =
itemToFunction :: Item -> ItemStructuralFunction
itemToFunction itm = case itm ^. itType of
HELD DETECTOR{} -> GadgetPlatformSF
HELD LASER -> WeaponTargetingSF
HELD{} -> HeldPlatformSF
AMMOMAG{} -> maybe UncomposableIsolateSF AmmoMagSF $ itm ^? itUse . amagType
@@ -95,6 +100,7 @@ itemToFunction itm = case itm ^. itType of
BULLETMOD BulletModEffect{} -> AmmoEffectSF BulletAmmo
TARGETING{} -> WeaponTargetingSF
LEFT{} -> EquipmentPlatformSF
EQUIP WRIST_ECG -> TriggerSF
EQUIP{} -> EquipmentPlatformSF
_ -> UncomposableIsolateSF
+3 -1
View File
@@ -40,6 +40,7 @@ volleyGun i =
<*> ZipList [0..i-1]
<*> pure PistolFlare
<*> pure MuzzleShootBullet
<*> pure (UseExactly 1)
)
& itUse . heldParams . torqueAfter .~ 0.15 + 0.05 * fromIntegral i
& itUse . heldParams . recoil .~ 20 + 10 * fromIntegral i
@@ -88,7 +89,8 @@ miniGunX i =
& itUse . heldParams . bulGunSound ?~ (mini1S,2)
& itUse . heldAim . aimTurnSpeed .~ 0.5
& itUse . heldAim . aimMuzzles
.~ replicate i (Muzzle (V2 30 0) 0 0.05 0 MiniGunFlare MuzzleShootBullet)
.~ replicate i
(Muzzle (V2 30 0) 0 0.05 0 MiniGunFlare MuzzleShootBullet (UseExactly 1))
& itUse . heldParams . recoil .~ 10 * fromIntegral i
& itUse . heldParams . torqueAfter .~ 0.04 + 0.02 * fromIntegral i
& itUse . heldParams . sidePush .~ 10 * fromIntegral i
+2 -1
View File
@@ -13,7 +13,8 @@ bangCone =
defaultBulletWeapon
& itUse . heldDelay . rateMax .~ 20
& itUse . heldAim . aimMuzzles
.~ replicate 15 (Muzzle (V2 15 0) 0 0.5 0 DefaultFlareType MuzzleShootBullet)
.~ replicate 15
(Muzzle (V2 15 0) 0 0.5 0 DefaultFlareType MuzzleShootBullet (UseExactly 1))
& itUse . heldParams . muzVel .~ UniRandFloat 0.5 0.8
& itUse . heldParams . rifling .~ UniRandFloat 0.3 0.8
& itUse . heldParams . recoil .~ 150
+1
View File
@@ -35,6 +35,7 @@ launcherX i =
<*> ZipList [0..]
<*> pure DefaultFlareType
<*> pure MuzzleLauncher
<*> pure (UseExactly 1)
)
& itAmmoSlots .~ IM.fromList [(j,LauncherAmmo) | j <- [0..i-1]]
where
+1
View File
@@ -84,6 +84,7 @@ flameThrower =
, _nzWalkSpeed = 0.01
, _nzCurrentWalkAngle = 0
}
(UseExactly 1)
]
& itAmmoSlots .~ singleAmmo GasAmmo
& itType .~ HELD FLAMETHROWER
+2 -1
View File
@@ -22,7 +22,8 @@ bangStick i =
& itType .~ HELD (BANGSTICK i)
& itUse . heldDelay . rateMax .~ 8
& itUse . heldAim . aimMuzzles
.~ [Muzzle (V2 10 0) a 0.01 0 DefaultFlareType MuzzleShootBullet | a <- spreadAroundCenter i baseStickSpread]
.~ [Muzzle (V2 10 0) a 0.01 0 DefaultFlareType MuzzleShootBullet (UseExactly 1)
| a <- spreadAroundCenter i baseStickSpread]
baseStickSpread :: Float
baseStickSpread = 0.2
+3
View File
@@ -38,5 +38,8 @@ clickDetector dt =
& itUse . heldDelay . rateMax .~ 20
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1}
& itAmmoSlots .~ singleAmmo ElectricalAmmo
& itUse . heldParams .~ DefaultHeldParams
& itType .~ HELD (DETECTOR dt)
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleDetector
& itUse . heldAim . aimMuzzles . ix 0 . mzAmmoPerShot .~ UseExactly 100
+2 -1
View File
@@ -12,7 +12,8 @@ itemInvColor :: ComposedItem -> Color
itemInvColor ci = case ci ^. _2 of
HeldPlatformSF -> white
EquipmentPlatformSF -> yellow
GadgetPlatformSF -> blue
GadgetPlatformSF -> white
TriggerSF -> yellow
WeaponScopeSF -> chartreuse
WeaponTargetingSF -> green
AugmentedHUDSF -> rose
+68 -68
View File
@@ -57,17 +57,17 @@ Ambush src/Dodge/Data/ActionPlan.hs 178;" C
Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 6;" m
Ammo src/Dodge/Item/Ammo.hs 1;" m
AmmoEffectLink src/Dodge/Data/ComposedItem.hs 20;" C
AmmoEffectSF src/Dodge/Data/ComposedItem.hs 40;" C
AmmoEffectSF src/Dodge/Data/ComposedItem.hs 41;" C
AmmoInLink src/Dodge/Data/ComposedItem.hs 16;" C
AmmoMagSF src/Dodge/Data/ComposedItem.hs 34;" C
AmmoMagSF src/Dodge/Data/ComposedItem.hs 35;" C
AmmoMagType src/Dodge/Data/Item/Combine.hs 86;" t
AmmoModLink src/Dodge/Data/ComposedItem.hs 17;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 37;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 38;" C
AmmoParams src/Dodge/Data/Item/Use.hs 114;" t
AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 19;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 39;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 40;" C
AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 18;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 38;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 39;" C
AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t
AnRoom src/Dodge/Annotation/Data.hs 18;" C
AnTree src/Dodge/Annotation/Data.hs 19;" C
@@ -99,7 +99,7 @@ Attention src/Dodge/Data/Creature/Perception.hs 60;" t
AttentiveTo src/Dodge/Data/Creature/Perception.hs 61;" C
Audition src/Dodge/Data/Creature/Perception.hs 47;" t
AugmentedHUDLink src/Dodge/Data/ComposedItem.hs 24;" C
AugmentedHUDSF src/Dodge/Data/ComposedItem.hs 33;" C
AugmentedHUDSF src/Dodge/Data/ComposedItem.hs 34;" C
AutoAI src/Dodge/Data/Creature/Misc.hs 56;" C
AutoCrit src/Dodge/Creature/AutoCrit.hs 1;" m
AutoDoorObstacle src/Dodge/Data/PathGraph.hs 51;" C
@@ -340,7 +340,7 @@ Common src/Dodge/Zoning/Common.hs 1;" m
Compile src/Shader/Compile.hs 1;" m
Compose src/Dodge/Tree/Compose.hs 4;" m
ComposeLinkType src/Dodge/Data/ComposedItem.hs 15;" t
ComposedItem src/Dodge/Data/ComposedItem.hs 44;" t
ComposedItem src/Dodge/Data/ComposedItem.hs 45;" t
ComposedItem src/Dodge/Data/ComposedItem.hs 6;" m
Composite src/Picture/Composite.hs 1;" m
ComsSS src/Dodge/Data/Scenario.hs 98;" C
@@ -437,6 +437,7 @@ CursorDisplay src/Dodge/Data/SelectionList.hs 19;" t
Cuse src/Dodge/Data/Item/HeldUse.hs 15;" t
Cuse src/Dodge/Cuse.hs 1;" m
Cylinder src/Shape/Data.hs 19;" C
DETECTOR src/Dodge/Data/Item/Combine.hs 166;" C
DPoint2 src/Geometry/Data.hs 34;" t
DRONELAUNCHER src/Dodge/Data/Item/Combine.hs 161;" C
DRUMMAG src/Dodge/Data/Item/Combine.hs 88;" C
@@ -673,7 +674,7 @@ FLAMETORRENT src/Dodge/Data/Item/Combine.hs 151;" C
FLAMEWALL src/Dodge/Data/Item/Combine.hs 152;" C
FLAMING src/Dodge/Data/Damage/Type.hs 18;" C
FLASHMODULE src/Dodge/Data/Item/Combine.hs 68;" C
FLATSHIELD src/Dodge/Data/Item/Combine.hs 165;" C
FLATSHIELD src/Dodge/Data/Item/Combine.hs 164;" C
FRAGCRAFT src/Dodge/Data/Item/Combine.hs 71;" C
FRAGMODULE src/Dodge/Data/Item/Combine.hs 67;" C
FRONTARMOUR src/Dodge/Data/Item/Combine.hs 103;" C
@@ -744,7 +745,7 @@ FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 31;" C
FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C
FunctionChangeLink src/Dodge/Data/ComposedItem.hs 25;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 41;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 42;" C
GASINJECTOR src/Dodge/Data/Item/Combine.hs 69;" C
GEqC src/SameConstr.hs 20;" c
GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C
@@ -752,6 +753,7 @@ GLHelp src/GLHelp.hs 1;" m
GRAPECANNON src/Dodge/Data/Item/Combine.hs 138;" C
GRAVITYMODULE src/Dodge/Data/Item/Combine.hs 75;" C
GREEN src/Color/Data.hs 16;" C
GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 31;" C
GameOverOptions src/Dodge/Data/Universe.hs 68;" C
GameRoom src/Dodge/GameRoom.hs 15;" t
GameRoom src/Dodge/GameRoom.hs 8;" m
@@ -806,7 +808,6 @@ HAT src/Dodge/Data/Item/Combine.hs 107;" C
HEADLAMP src/Dodge/Data/Item/Combine.hs 108;" C
HEATSENSOR src/Dodge/Data/Item/Combine.hs 60;" C
HELD src/Dodge/Data/Item/Combine.hs 16;" C
HELDDETECTOR src/Dodge/Data/Item/Combine.hs 163;" C
HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C
HOSE src/Dodge/Data/Item/Combine.hs 32;" C
HUD src/Dodge/Data/HUD.hs 45;" t
@@ -831,6 +832,7 @@ HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m
HeldItemType src/Dodge/Data/Item/Combine.hs 130;" t
HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m
HeldParams src/Dodge/Data/Item/Use.hs 81;" t
HeldPlatformSF src/Dodge/Data/ComposedItem.hs 29;" C
HeldScroll src/Dodge/HeldScroll.hs 1;" m
HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m
HeldUse src/Dodge/HeldUse.hs 4;" m
@@ -857,7 +859,7 @@ Huge src/Shape/Data.hs 28;" C
Humanoid src/Dodge/Data/Creature/Misc.hs 76;" C
Humanoid src/Dodge/Humanoid.hs 1;" m
HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t
ILink src/Dodge/Data/ComposedItem.hs 46;" C
ILink src/Dodge/Data/ComposedItem.hs 47;" C
IMSS src/Dodge/Data/SelectionList.hs 36;" t
INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C
IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C
@@ -940,7 +942,7 @@ Item src/Dodge/Default/Item.hs 1;" m
Item src/Dodge/Item.hs 3;" m
ItemClust src/Dodge/Combine/Graph.hs 20;" C
ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t
ItemLink src/Dodge/Data/ComposedItem.hs 46;" t
ItemLink src/Dodge/Data/ComposedItem.hs 47;" t
ItemLocation src/Dodge/Data/Item/Location.hs 27;" t
ItemParams src/Dodge/Data/Item/Params.hs 13;" t
ItemParams src/Dodge/Tesla/ItemParams.hs 1;" m
@@ -956,7 +958,7 @@ JoinClust src/Dodge/Combine/Graph.hs 21;" C
Just' src/MaybeHelp.hs 13;" C
JustStartedPlaying src/Sound/Data.hs 25;" C
Justify src/Justify.hs 1;" m
KEYCARD src/Dodge/Data/Item/Combine.hs 166;" C
KEYCARD src/Dodge/Data/Item/Combine.hs 165;" C
Kill src/Dodge/Data/ActionPlan.hs 198;" C
LASER src/Dodge/Data/Item/Combine.hs 156;" C
LASERING src/Dodge/Data/Damage/Type.hs 19;" C
@@ -980,11 +982,11 @@ LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 58;" C
LRewind src/Dodge/Data/Item/HeldUse.hs 40;" C
LS src/Dodge/Data/LightSource.hs 23;" C
LSParam src/Dodge/Data/LightSource.hs 16;" t
LTest src/Dodge/Data/ComposedItem.hs 51;" C
LTest src/Dodge/Data/ComposedItem.hs 52;" C
LTimePause src/Dodge/Data/Item/HeldUse.hs 41;" C
LTimeScroll src/Dodge/Data/Item/HeldUse.hs 42;" C
LUnsafeBlink src/Dodge/Data/Item/HeldUse.hs 44;" C
LUpdate src/Dodge/Data/ComposedItem.hs 56;" C
LUpdate src/Dodge/Data/ComposedItem.hs 57;" C
LWorld src/Dodge/Data/LWorld.hs 96;" t
LWorld src/Dodge/Data/LWorld.hs 6;" m
LabLink src/Dodge/Data/Room.hs 45;" C
@@ -1042,8 +1044,8 @@ LimitedWater src/Dodge/Data/Scenario.hs 40;" C
LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t
LinearShockwave src/Dodge/Data/LinearShockwave.hs 6;" m
Link src/Dodge/Room/Link.hs 6;" m
LinkTest src/Dodge/Data/ComposedItem.hs 51;" t
LinkUpdate src/Dodge/Data/ComposedItem.hs 56;" t
LinkTest src/Dodge/Data/ComposedItem.hs 52;" t
LinkUpdate src/Dodge/Data/ComposedItem.hs 57;" t
List src/Dodge/Combine/List.hs 1;" m
List src/Dodge/Render/List.hs 3;" m
ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t
@@ -1576,7 +1578,7 @@ Reload src/Dodge/Data/ActionPlan.hs 190;" C
ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t
RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C
RemoteScreenLink src/Dodge/Data/ComposedItem.hs 23;" C
RemoteScreenSF src/Dodge/Data/ComposedItem.hs 35;" C
RemoteScreenSF src/Dodge/Data/ComposedItem.hs 36;" C
RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C
RemoveShieldWall src/Dodge/Data/Item/Effect.hs 26;" C
Remove_LOS src/Dodge/Data/Config.hs 77;" C
@@ -1840,7 +1842,7 @@ TIMEMODULE src/Dodge/Data/Item/Combine.hs 73;" C
TIN src/Dodge/Data/Item/Combine.hs 35;" C
TINMAG src/Dodge/Data/Item/Combine.hs 87;" C
TO src/Shader/Data.hs 59;" t
TORCH src/Dodge/Data/Item/Combine.hs 164;" C
TORCH src/Dodge/Data/Item/Combine.hs 163;" C
TRACTORGUN src/Dodge/Data/Item/Combine.hs 157;" C
TRANSFORMER src/Dodge/Data/Item/Combine.hs 42;" C
TRANSMITTER src/Dodge/Data/Item/Combine.hs 48;" C
@@ -1983,7 +1985,7 @@ TwoHandUnder src/Dodge/Data/Item/Use.hs 176;" C
Type src/Dodge/Data/Damage/Type.hs 6;" m
Type src/Dodge/Terminal/Type.hs 1;" m
Typical src/Shape/Data.hs 36;" C
UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 36;" C
UncomposableIsolateSF src/Dodge/Data/ComposedItem.hs 37;" C
UnderGround src/Dodge/Data/Scenario.hs 78;" C
UnderRoof src/Dodge/Data/Scenario.hs 79;" C
UnderSea src/Dodge/Data/Scenario.hs 77;" C
@@ -2110,11 +2112,10 @@ WdWdFromItCrixWdWd src/Dodge/Data/WorldEffect.hs 33;" C
WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 32;" C
WdYouPos src/Dodge/Data/WorldEffect.hs 40;" C
Weapon src/Dodge/Item/Weapon.hs 2;" m
WeaponPlatformSF src/Dodge/Data/ComposedItem.hs 29;" C
WeaponScopeLink src/Dodge/Data/ComposedItem.hs 21;" C
WeaponScopeSF src/Dodge/Data/ComposedItem.hs 31;" C
WeaponScopeSF src/Dodge/Data/ComposedItem.hs 32;" C
WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 22;" C
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 32;" C
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 33;" C
Weapons src/Dodge/Item/Held/Weapons.hs 1;" m
West src/Dodge/Data/CardinalPoint.hs 7;" C
West8 src/Dodge/Data/CardinalPoint.hs 17;" C
@@ -2584,8 +2585,8 @@ _hudElement src/Dodge/Data/HUD.hs 46;" f
_humanoidAI src/Dodge/Data/Creature/Misc.hs 80;" f
_iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f
_iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f
_iatOrient src/Dodge/Data/ComposedItem.hs 48;" f
_iatType src/Dodge/Data/ComposedItem.hs 47;" f
_iatOrient src/Dodge/Data/ComposedItem.hs 49;" f
_iatType src/Dodge/Data/ComposedItem.hs 48;" f
_ibtAmmoMag src/Dodge/Data/Item/Combine.hs 22;" f
_ibtAttach src/Dodge/Data/Item/Combine.hs 21;" f
_ibtBulletMod src/Dodge/Data/Item/Combine.hs 24;" f
@@ -2684,9 +2685,9 @@ _lsID src/Dodge/Data/LightSource.hs 24;" f
_lsParam src/Dodge/Data/LightSource.hs 25;" f
_lsPos src/Dodge/Data/LightSource.hs 17;" f
_lsRad src/Dodge/Data/LightSource.hs 18;" f
_luChildUpdate src/Dodge/Data/ComposedItem.hs 59;" f
_luLinkType src/Dodge/Data/ComposedItem.hs 57;" f
_luParentUpdate src/Dodge/Data/ComposedItem.hs 58;" f
_luChildUpdate src/Dodge/Data/ComposedItem.hs 60;" f
_luLinkType src/Dodge/Data/ComposedItem.hs 58;" f
_luParentUpdate src/Dodge/Data/ComposedItem.hs 59;" f
_lwID src/Dodge/Data/LinearShockwave.hs 15;" f
_lwPoints src/Dodge/Data/LinearShockwave.hs 16;" f
_lwPos src/Dodge/Data/LinearShockwave.hs 14;" f
@@ -3156,8 +3157,8 @@ _tractorBeams src/Dodge/Data/LWorld.hs 118;" f
_trieChildren src/SimpleTrie.hs 11;" f
_trieMVal src/SimpleTrie.hs 10;" f
_triggers src/Dodge/Data/LWorld.hs 127;" f
_tryLeftLink src/Dodge/Data/ComposedItem.hs 52;" f
_tryRightLink src/Dodge/Data/ComposedItem.hs 53;" f
_tryLeftLink src/Dodge/Data/ComposedItem.hs 53;" f
_tryRightLink src/Dodge/Data/ComposedItem.hs 54;" f
_ttDeathEffect src/Dodge/Data/Terminal.hs 84;" f
_ttTriggerID src/Dodge/Data/Terminal.hs 83;" f
_tuDir src/Dodge/Data/Machine.hs 61;" f
@@ -3359,17 +3360,17 @@ applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
applyEventIO src/Loop.hs 89;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f
applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 74;" f
applyInvLock src/Dodge/HeldUse.hs 79;" f
applyMagnetsToBul src/Dodge/Bullet.hs 36;" f
applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 132;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 110;" f
applyRecoil src/Dodge/HeldUse.hs 93;" f
applyRecoil src/Dodge/HeldUse.hs 98;" f
applyResFactor src/Dodge/Data/Config.hs 108;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 79;" f
applySidePush src/Dodge/HeldUse.hs 100;" f
applySoundCME src/Dodge/HeldUse.hs 84;" f
applySidePush src/Dodge/HeldUse.hs 105;" f
applySoundCME src/Dodge/HeldUse.hs 89;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 40;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f
@@ -3377,7 +3378,7 @@ applyToNode src/TreeHelp.hs 64;" f
applyToRandomNode src/TreeHelp.hs 150;" f
applyToSubforest src/TreeHelp.hs 77;" f
applyToSubtree src/TreeHelp.hs 70;" f
applyTorqueCME src/Dodge/HeldUse.hs 111;" f
applyTorqueCME src/Dodge/HeldUse.hs 116;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f
arc src/Picture/Base.hs 287;" f
@@ -3421,7 +3422,6 @@ autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f
autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f
autoPistol src/Dodge/Item/Held/Stick.hs 46;" f
autoRifle src/Dodge/Item/Held/Cane.hs 65;" f
autoSonarEffect src/Dodge/Item/Weapon/ExtraEffect.hs 43;" f
awakeLevelPerception src/Dodge/Creature/Perception.hs 162;" f
axisInt src/Geometry/Intersect.hs 227;" f
azure src/Color.hs 22;" f
@@ -3460,7 +3460,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 34;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 205;" f
basicMuzFlare src/Dodge/HeldUse.hs 210;" f
basicTerminal src/Dodge/Terminal.hs 35;" f
battery src/Dodge/Item/Ammo.hs 96;" f
batteryPack src/Dodge/Item/Equipment.hs 57;" f
@@ -3727,7 +3727,7 @@ createItemYou src/Dodge/Inventory/Add.hs 94;" f
createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 76;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 509;" f
createProjectile src/Dodge/HeldUse.hs 514;" f
createShell src/Dodge/Projectile/Create.hs 19;" f
createShieldWall src/Dodge/Euse.hs 133;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -3930,7 +3930,7 @@ detV src/Geometry/Vector.hs 93;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 393;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 192;" f
determineProjectileTracking src/Dodge/HeldUse.hs 498;" f
determineProjectileTracking src/Dodge/HeldUse.hs 503;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 53;" f
diffAngles src/Geometry.hs 196;" f
@@ -3985,7 +3985,7 @@ doDrag src/Dodge/Update/Input/InGame.hs 98;" f
doDrawing src/Dodge/Render.hs 35;" f
doDrawing' src/Dodge/Render.hs 46;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 453;" f
doGenFloat src/Dodge/HeldUse.hs 458;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 26;" f
@@ -4272,7 +4272,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 330;" f
flareCircleAt src/Dodge/HeldUse.hs 186;" f
flareCircleAt src/Dodge/HeldUse.hs 191;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 49;" f
flatLookupItems src/Dodge/Combine.hs 38;" f
flatShield src/Dodge/Item/Held/Utility.hs 9;" f
@@ -4339,7 +4339,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 131;" f
gameplayMenuOptions src/Dodge/Menu.hs 134;" f
gasCreate src/Dodge/HeldUse.hs 450;" f
gasCreate src/Dodge/HeldUse.hs 455;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4354,8 +4354,8 @@ getAmmoLinks src/Dodge/Item/Grammar.hs 77;" f
getArguments src/Dodge/Update/Scroll.hs 152;" f
getArguments' src/Dodge/Update/Scroll.hs 140;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulletTrajectory src/Dodge/HeldUse.hs 355;" f
getBulletType src/Dodge/HeldUse.hs 329;" f
getBulletTrajectory src/Dodge/HeldUse.hs 360;" f
getBulletType src/Dodge/HeldUse.hs 334;" f
getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f
getCrDexterity src/Dodge/Creature/Statistics.hs 13;" f
@@ -4364,9 +4364,9 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 16;" f
getDamageCoding src/Dodge/Terminal.hs 177;" f
getDistortions src/Dodge/Render.hs 383;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getLaserColor src/Dodge/HeldUse.hs 202;" f
getLaserDamage src/Dodge/HeldUse.hs 199;" f
getLaserPhaseV src/Dodge/HeldUse.hs 196;" f
getLaserColor src/Dodge/HeldUse.hs 207;" f
getLaserDamage src/Dodge/HeldUse.hs 204;" f
getLaserPhaseV src/Dodge/HeldUse.hs 201;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 367;" f
@@ -4577,7 +4577,7 @@ invertIntMap src/Multiset.hs 67;" f
invertInventoryToMap src/Dodge/Combine.hs 56;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 25;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 213;" f
isAmmoIntLink src/Dodge/HeldUse.hs 218;" f
isAnimate src/Dodge/Creature/Test.hs 136;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 90;" f
@@ -4612,7 +4612,7 @@ itemBaseName src/Dodge/Item/Display.hs 45;" f
itemBlips src/Dodge/RadarSweep.hs 75;" f
itemCombinations src/Dodge/Combine/Combinations.hs 54;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f
itemDetectorEffect src/Dodge/HeldUse.hs 238;" f
itemDetectorEffect src/Dodge/HeldUse.hs 243;" f
itemDisplay src/Dodge/Item/Display.hs 16;" f
itemDisplayPad src/Dodge/Item/Display.hs 29;" f
itemEquipPict src/Dodge/Item/Draw.hs 17;" f
@@ -4669,7 +4669,7 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 353;" f
lasRayAt src/Dodge/HeldUse.hs 306;" f
lasRayAt src/Dodge/HeldUse.hs 311;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f
lasTunnel src/Dodge/Room/LasTurret.hs 124;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
@@ -4734,7 +4734,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 380;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f
loadMuzzle src/Dodge/HeldUse.hs 128;" f
loadMuzzle src/Dodge/HeldUse.hs 133;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4789,7 +4789,7 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 51;" f
makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 388;" f
makeBullet src/Dodge/HeldUse.hs 393;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f
@@ -4815,7 +4815,7 @@ makeFragBullets src/Dodge/Bullet.hs 107;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f
makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 33;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 144;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 149;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4870,10 +4870,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f
mcSPic src/Dodge/Render/ShapePicture.hs 132;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f
mcShootLaser src/Dodge/HeldUse.hs 477;" f
mcShootLaser src/Dodge/HeldUse.hs 482;" f
mcTriggerVal src/Dodge/Machine/Update.hs 93;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f
mcUseHeld src/Dodge/HeldUse.hs 414;" f
mcUseHeld src/Dodge/HeldUse.hs 419;" f
mcUseItem src/Dodge/Machine/Update.hs 79;" f
medkit src/Dodge/Item/Consumable.hs 8;" f
megaBattery src/Dodge/Item/Ammo.hs 84;" f
@@ -4966,7 +4966,7 @@ multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 34;" f
multiLookupTrieI src/SimpleTrie.hs 43;" f
muout src/Dodge/RoomLink.hs 129;" f
muzFlareAt src/Dodge/HeldUse.hs 172;" f
muzFlareAt src/Dodge/HeldUse.hs 177;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f
@@ -5373,7 +5373,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteScreen src/Dodge/Item/Scope.hs 50;" f
remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 316;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 321;" f
removeDot src/ShortShow.hs 30;" f
removeHotkey src/Dodge/Hotkey.hs 41;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
@@ -5652,15 +5652,15 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 282;" f
shineTorch src/Dodge/Creature/State.hs 324;" f
shootBullet src/Dodge/HeldUse.hs 375;" f
shootBullet src/Dodge/HeldUse.hs 380;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 165;" f
shootLaser src/Dodge/HeldUse.hs 286;" f
shootLaser src/Dodge/HeldUse.hs 291;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 486;" f
shootTeslaArc src/Dodge/HeldUse.hs 491;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 265;" f
shootTractorBeam src/Dodge/HeldUse.hs 270;" f
shootersRoom src/Dodge/Room/Room.hs 315;" f
shootersRoom' src/Dodge/Room/Room.hs 280;" f
shootersRoom1 src/Dodge/Room/Room.hs 305;" f
@@ -5928,7 +5928,7 @@ toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f
toggleCommand src/Dodge/Terminal.hs 196;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 43;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 47;" f
toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 547;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 560;" f
@@ -5946,7 +5946,7 @@ torqueCr src/Dodge/WorldEffect.hs 63;" f
torso src/Dodge/Creature/Picture.hs 102;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 275;" f
tractorBeamAt src/Dodge/HeldUse.hs 280;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 377;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -6187,13 +6187,13 @@ useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f
useE src/Dodge/Euse.hs 23;" f
useEquipment src/Dodge/Creature/State.hs 148;" f
useGasParams src/Dodge/HeldUse.hs 425;" f
useGasParams src/Dodge/HeldUse.hs 430;" f
useHotKey src/Dodge/Creature/YourControl.hs 47;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 112;" f
useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 88;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 116;" f
useItemLeftClick src/Dodge/Creature/Impulse/UseItem.hs 92;" f
useL src/Dodge/Luse.hs 11;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 217;" f
useLoadedAmmo src/Dodge/HeldUse.hs 222;" f
useMagShield src/Dodge/Euse.hs 68;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f
@@ -6237,7 +6237,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f
volleyGun src/Dodge/Item/Held/Cane.hs 30;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 291;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 243;" f
walkNozzle src/Dodge/HeldUse.hs 248;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 80;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 50;" f