From cbcc7e4fd6c7957ead54e13ce220a117f946b9c3 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 1 Sep 2025 20:24:52 +0100 Subject: [PATCH] Fix autorifle muzzle flash --- src/Dodge/Debug/Terminal.hs | 2 +- src/Dodge/HeldUse.hs | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Dodge/Debug/Terminal.hs b/src/Dodge/Debug/Terminal.hs index 87e097e76..a4e3451aa 100644 --- a/src/Dodge/Debug/Terminal.hs +++ b/src/Dodge/Debug/Terminal.hs @@ -70,7 +70,7 @@ parseItem (x : xs) = <|> (readMaybe ("HELD {_ibtHeld=(" ++ x ++ " {_xNum=" ++ show (parseNum xs) ++ "})}") <&> (,1)) <|> (readMaybe ("ATTACH (" ++ x ++ ")") <&> (,parseNum xs)) <|> (readMaybe ("CONSUMABLE {_ibtConsumable=" ++ x ++ "}") <&> (,parseNum xs)) - <|> (readMaybe ("AMMO {_ibtAmmo=" ++ x ++ "}") <&> (,parseNum xs)) + <|> (readMaybe ("AMMOMAG {_ibtAmmoMag=" ++ x ++ "}") <&> (,parseNum xs)) <|> parseItem (xs & ix 0 .++~ (x ++ " ")) parseItem [] = Nothing diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 3dbbfb27f..f3bdb9c79 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -160,14 +160,7 @@ locMuzzles loc itemMuzzles :: Item -> [Muzzle] itemMuzzles itm = case itm ^. itType of - HELD ALTERIFLE -> - dbwMuzzles & ix 0 . mzPos .~ V2 25 0 - & ix 0 . mzAmmoSlot .~ MagBelow (_alteRifleSwitch (_itParams itm)) (UseExactly 1) - HELD (VOLLEYGUN i) -> fromMaybe [] $ do - j <- itm ^? itParams . unfiredBarrels . ix 0 - x <- vgunMuzzles i ^? ix j - return [x] - HELD hit -> heldItemMuzzles hit + HELD hit -> heldItemMuzzles itm hit DETECTOR{} -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector & ix 0 . mzAmmoSlot . aps .~ UseExactly 100 @@ -179,8 +172,15 @@ itemMuzzles itm = case itm ^. itType of & ix 0 . mzEffect .~ MuzzleLaser _ -> [] -heldItemMuzzles :: HeldItemType -> [Muzzle] -heldItemMuzzles = \case +heldItemMuzzles :: Item -> HeldItemType -> [Muzzle] +heldItemMuzzles itm = \case + ALTERIFLE -> + dbwMuzzles & ix 0 . mzPos .~ V2 25 0 + & ix 0 . mzAmmoSlot .~ MagBelow (_alteRifleSwitch (_itParams itm)) (UseExactly 1) + (VOLLEYGUN i) -> fromMaybe [] $ do + j <- itm ^? itParams . unfiredBarrels . ix 0 + x <- vgunMuzzles i ^? ix j + return [x] BANGSTICK i -> [ Muzzle (V2 10 0) @@ -201,6 +201,7 @@ heldItemMuzzles = \case AUTOPISTOL -> [Muzzle (V2 10 0) 0 0 maguse1 BasicFlare MuzzleShootBullet 0] SMG -> [Muzzle (V2 20 0) 0 0.05 maguse1 BasicFlare MuzzleShootBullet 0] RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 + AUTORIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzInaccuracy .~ 0.05 MINIGUNX i -> replicate @@ -235,7 +236,6 @@ heldItemMuzzles = \case BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 magupto15 BasicFlare MuzzleShootBullet 12] GRAPECANNON i -> [Muzzle (V2 30 0) 0 0.5 magupto15 BasicFlare MuzzleShootBullet (12 + 4 * fromIntegral i)] TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0 - VOLLEYGUN{} -> error "should get volleygun muzzles earlier" FLAMETHROWER -> flameMuzzles FLAMESPITTER -> flameMuzzles & ix 0 . mzEffect . nzPressure .~ UniRandFloat 3 4 RLAUNCHER ->