This commit is contained in:
2025-06-05 10:34:02 +01:00
parent f3c56a6b5f
commit 289bbcc8a9
3 changed files with 135 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.BaseTriggerType (
baseTriggerType,
module Dodge.Data.TriggerType,
) where
import Control.Lens
import Dodge.Data.Item
import Dodge.Data.TriggerType
baseTriggerType :: Item -> TriggerType
baseTriggerType itm = case itm ^. itType of
HELD hit -> heldTriggerType hit
_ -> NoTrigger
heldTriggerType :: HeldItemType -> TriggerType
heldTriggerType = \case
BANGSTICK{} -> HammerTrigger
REWINDER -> HammerTrigger
TIMESTOPPER -> HammerTrigger
TIMESCROLLER -> HammerTrigger
PISTOL -> HammerTrigger
MACHINEPISTOL -> AutoTrigger
AUTOPISTOL -> AutoTrigger
SMG -> AutoTrigger
BANGCONE -> HammerTrigger
BLUNDERBUSS -> HammerTrigger
GRAPECANNON{} -> HammerTrigger
MINIGUNX{} -> AutoTrigger
VOLLEYGUN i -> BurstTrigger [1 .. i-1]
RIFLE -> HammerTrigger
ALTERIFLE -> HammerTrigger
AUTORIFLE -> AutoTrigger
BURSTRIFLE -> BurstTrigger [3,6]
BANGROD -> HammerTrigger
ELEPHANTGUN -> HammerTrigger
AMR -> HammerTrigger
AUTOAMR -> AutoTrigger
SNIPERRIFLE -> HammerTrigger
FLAMESPITTER -> BurstTrigger [1..9]
FLAMETHROWER -> AutoTrigger
FLAMETORRENT -> AutoTrigger
FLAMEWALL -> AutoTrigger
BLOWTORCH -> AutoTrigger
SPARKGUN -> AutoTrigger
TESLAGUN -> AutoTrigger
LASER -> AutoTrigger
TRACTORGUN -> AutoTrigger
RLAUNCHER -> HammerTrigger
RLAUNCHERX{} -> HammerTrigger
GLAUNCHER -> HammerTrigger
POISONSPRAYER -> AutoTrigger
SHATTERGUN -> HammerTrigger
TORCH -> AutoTrigger
FLATSHIELD -> NoTrigger
KEYCARD{} -> NoTrigger
BLINKER -> AlwaysSingleTrigger
BLINKERUNSAFE -> AlwaysSingleTrigger