Move toward data-ifying item SPics

This commit is contained in:
2022-07-11 11:32:25 +01:00
parent 3447b9b0bb
commit 33d94bd05a
23 changed files with 332 additions and 331 deletions
+37 -39
View File
@@ -17,59 +17,57 @@ import LensHelp
itemCombinations :: [([(IcAmount,ItemBaseType)],Item)]
itemCombinations =
[ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1)
, po [BANGSTICK 1, CRAFT TIN] pistol
, po [PISTOL, CRAFT SPRING] autoPistol
, po [AUTOPISTOL, cr PLANK] smg
, po [AUTOPISTOL, cr SPRING] machinePistol
, po [BANGSTICK 1,cr CAN] revolver
, po [REVOLVER, cr SPRING] $ revolverX 1
, po [HELD (BANGSTICK 1), CRAFT TIN] pistol
, po [HELD PISTOL, CRAFT SPRING] autoPistol
, po [HELD AUTOPISTOL, cr PLANK] smg
, po [HELD AUTOPISTOL, cr SPRING] machinePistol
, po [HELD (BANGSTICK 1),cr CAN] revolver
, po [HELD REVOLVER, cr SPRING] $ revolverX 1
, po [cr CAN,cr HARDWARE] bangCone
, po [BANGCONE,cr PLANK] blunderbuss
, po [BLUNDERBUSS,cr DRUM] (grapeCannon 1)
, po [HELD BANGCONE,cr PLANK] blunderbuss
, po [HELD BLUNDERBUSS,cr DRUM] (grapeCannon 1)
-- , po [BANGCONE,PUMP,HARDWARE] $ grenadeLauncher 1
-- , po [GRENADELAUNCHER 1,MOTOR,DRUM] $ grenadeLauncher 2
-- , po [cr PIPE, cr HARDWARE] (volleyGun 1)
, po [BANGSTICK 1,cr PLANK] rifle
, po [BANGSTICK 1,BANGSTICK 1,BANGSTICK 1] (volleyGun 3)
, po [RIFLE,cr TIN] repeater
, po [REPEATER,cr SPRING] autoRifle
, po [REPEATER,cr CAN] burstRifle
, po [HELD (BANGSTICK 1),cr PLANK] rifle
, po [HELD (BANGSTICK 1),HELD (BANGSTICK 1),HELD (BANGSTICK 1)] (volleyGun 3)
, po [HELD RIFLE,cr TIN] repeater
, po [HELD REPEATER,cr SPRING] autoRifle
, po [HELD REPEATER,cr CAN] burstRifle
-- , po [BURSTRIFLE,cr SPRING,cr HARDWARE] fastBurstRifle
-- , po [FASTBURSTRIFLE,cr SPRING,cr HARDWARE] completeBurstRifle
, po [cr MOTOR,VOLLEYGUN 3] $ miniGunX 3
, po [cr MOTOR,VOLLEYGUN 4] $ miniGunX 4
, po [cr MOTOR,VOLLEYGUN 5] $ miniGunX 5
, po [cr MOTOR,VOLLEYGUN 6] $ miniGunX 6
]
++ [ po [cr MOTOR,HELD (VOLLEYGUN i)] $ miniGunX i | i <- [3..10]
] ++
-- , po [BANGSTICK 1,cr TUBE] elephantGun
, po [AMR,cr PIPE] sniperRifle
, po [RIFLE,cr PIPE] amr
, po [AMR,cr SPRING] autoAmr
, po [AMR,cr MOTOR] machineGun
[ po [HELD AMR,cr PIPE] sniperRifle
, po [HELD RIFLE,cr PIPE] amr
, po [HELD AMR,cr SPRING] autoAmr
, po [HELD AMR,cr MOTOR] machineGun
, p [p 2 $ cr TUBE,o $ cr HARDWARE] launcher
, p [p 2 $ cr TUBE,o LAUNCHER] (launcherX 2)
] ++ [ p [p 2 $ cr TUBE,o $ LAUNCHERX i] (launcherX (i+1)) | i <- [2..9]]
, p [p 2 $ cr TUBE,o $ HELD LAUNCHER] (launcherX 2)
] ++ [ p [p 2 $ cr TUBE,o $ HELD (LAUNCHERX i)] (launcherX (i+1)) | i <- [2..9]]
++
[ po [cr LIGHTER,cr PUMP,cr CAN] flameSpitter
, po [FLAMESPITTER,cr CAN,cr PUMP] blowTorch
, po [FLAMESPITTER,cr DRUM] flameThrower
, po [FLAMETHROWER,cr DRUM] flameWall
, po [FLAMETHROWER,cr PUMP] flameTorrent
, po [HELD FLAMESPITTER,cr CAN,cr PUMP] blowTorch
, po [HELD FLAMESPITTER,cr DRUM] flameThrower
, po [HELD FLAMETHROWER,cr DRUM] flameWall
, po [HELD FLAMETHROWER,cr PUMP] flameTorrent
, p [o $ cr PRISM,o $ cr TRANSFORMER,o $ cr PIPE] lasGun
-- , p [o LASGUN,o $ cr PRISM] lasSway
-- , p [o LASGUN,o $ cr HARDWARE] lasSwing
-- , p [o LASGUN,o PIPE] lasGunPulse
, po [LASGUN,LASGUN,cr HARDWARE] dualBeam
, po [HELD LASGUN,HELD LASGUN,cr HARDWARE] dualBeam
-- , p [o LASGUN,o $ cr PIPE, o $ cr PRISM] lasWidePulse
, po [LASGUN, cr TRANSFORMER] (lasWide 2)
, po [LASGUN,LASGUN,LASGUN,cr HARDWARE] lasCircle
, po [HELD LASGUN, cr TRANSFORMER] (lasWide 2)
, po [HELD LASGUN,HELD LASGUN,HELD LASGUN,cr HARDWARE] lasCircle
, p [o $ cr TRANSFORMER,p 2 $ cr CAN] sparkGun
, p [o SPARKGUN,p 2 $ cr PIPE] teslaGun
, p [o (HELD SPARKGUN),p 2 $ cr PIPE] teslaGun
, p [o $ cr TELEPORTMODULE,p 2 $ cr MICROCHIP] blinkGun
, p [o BLINKER, p 2 $ cr MICROCHIP] unsafeBlinkGun
@@ -84,13 +82,13 @@ itemCombinations =
, p [p 2 $ cr PLATE] flatShield
]
++ map (\i -> po [LASWIDE i,cr TRANSFORMER] $ lasWide (i+1)) [2..9]
++ map (\i -> po [HELD (LASWIDE i),cr TRANSFORMER] $ lasWide (i+1)) [2..9]
-- ++ map (\i -> po [LASGUNWIDE i,cr HARDWARE] $ lasFocus i) [2..10]
++ map (\i -> po [cr PIPE,BANGSTICK i] $ bangStick (i+1)) [1..8]
++ map (\i -> po [REVOLVERX i,cr CAN] $ revolverX (i+1)) [1..5]
++ map (\i -> po [VOLLEYGUN i,BANGSTICK 1] $ volleyGun (i+1)) [3..5]
++ map (\i -> po [MINIGUNX i,BANGSTICK 1] $ miniGunX (i+1)) [3..15]
++ map (\i -> po [GRAPECANNON i,cr DRUM] $ grapeCannon (i+1)) [1,2,3]
++ map (\i -> po [cr PIPE,HELD (BANGSTICK i)] $ bangStick (i+1)) [1..8]
++ map (\i -> po [HELD (REVOLVERX i),cr CAN] $ revolverX (i+1)) [1..5]
++ map (\i -> po [HELD (VOLLEYGUN i),HELD (BANGSTICK 1)] $ volleyGun (i+1)) [3..5]
++ map (\i -> po [HELD (MINIGUNX i),HELD (BANGSTICK 1)] $ miniGunX (i+1)) [3..15]
++ map (\i -> po [HELD (GRAPECANNON i),cr DRUM] $ grapeCannon (i+1)) [1,2,3]
++ [ po (_iyBase (_itType it):mtype) $ it & itType . iyModules . ix modtype .~ m
| (modtype,is,ms) <- moduleCombinations
@@ -181,7 +179,7 @@ batteryGuns =
, sparkGun
, lasGun
-- , lasSway
, lasSwing
-- , lasSwing
] ++
[ lasWide i | i <- [2..10]
]
+39 -34
View File
@@ -72,7 +72,42 @@ data ItemBaseType
| EFFGUN String
| AUTOEFFGUN String
-- Weapons
| BANGSTICK {_xNum :: Int}
| HELD {_ibtHeld :: HeldItemType}
-- | GRENADE
-- | REMOTEBOMB
-- Utility items
| BOOSTER
| REWINDER
| BLINKER
| BLINKERUNSAFE
| SHRINKER
| SPAWNER
-- Equipment
| CLICKDETECTOR Detector
| AUTODETECTOR Detector
| MAGSHIELD
| FLAMESHIELD
| FRONTARMOUR
| WRISTARMOUR
| INVISIBILITYEQUIPMENT EquipSite
| BRAINHAT
| HEADLAMP
| HEADLAMP1
| POWERLEGS
| SPEEDLEGS
| JUMPLEGS
| FLATSHIELD
| JETPACK
--
| KEYCARD Int
--
| MEDKIT Int
| CRAFT CraftType
--
deriving (Eq,Ord,Show,Read)
data HeldItemType
= BANGSTICK {_xNum :: Int}
| PISTOL
| REVOLVER
| REVOLVERX {_xNum :: Int}
@@ -109,9 +144,9 @@ data ItemBaseType
| TESLAGUN
| LASGUN
| LASCIRCLE
| LASPULSE
-- | LASPULSE
| DUALBEAM
| LASGUNSWING
-- | LASGUNSWING
-- | LASGUNSWAY
-- | LASGUNWIDEPULSE
| LASWIDE {_xNum :: Int}
@@ -126,38 +161,8 @@ data ItemBaseType
| DRONELAUNCHER
| SHATTERGUN
-- | GRENADE
-- | REMOTEBOMB
-- Utility items
| BOOSTER
| REWINDER
| BLINKER
| BLINKERUNSAFE
| FORCEFIELDGUN
| SHRINKER
| SPAWNER
-- Equipment
| CLICKDETECTOR Detector
| AUTODETECTOR Detector
| MAGSHIELD
| FLAMESHIELD
| FRONTARMOUR
| WRISTARMOUR
| INVISIBILITYEQUIPMENT EquipSite
| BRAINHAT
| HEADLAMP
| HEADLAMP1
| POWERLEGS
| SPEEDLEGS
| JUMPLEGS
| FLATSHIELD
| JETPACK
--
| KEYCARD Int
--
| MEDKIT Int
| CRAFT CraftType
--
deriving (Eq,Ord,Show,Read)
data ItemModuleType
+9 -9
View File
@@ -43,13 +43,13 @@ bulletCombinations = filter
maxShowX :: ItemBaseType -> Maybe Int
maxShowX bt = case bt of
BANGSTICK _ -> Just 2
REVOLVERX _ -> Just 1
VOLLEYGUN _ -> Just 3
MINIGUNX _ -> Just 3
GRAPECANNON _ -> Just 1
LAUNCHERX _ -> Just 2
LASWIDE _ -> Just 2
HELD (BANGSTICK _) -> Just 2
HELD (REVOLVERX _) -> Just 1
HELD (VOLLEYGUN _) -> Just 3
HELD (MINIGUNX _) -> Just 3
HELD (GRAPECANNON _) -> Just 1
HELD (LAUNCHERX _) -> Just 2
HELD (LASWIDE _) -> Just 2
-- LASGUNFOCUS _ -> Just 2
_ -> Nothing
@@ -73,12 +73,12 @@ combinationsGraph = FGL.labnfilter (f . _unCombNode . snd)
f (Left (CRAFT _)) = False
f (Left bt) = case maxShowX bt of
Nothing -> True
Just i -> _xNum bt <= i
Just i -> _xNum (_ibtHeld bt) <= i
belowNumX :: ItemBaseType -> Bool
belowNumX bt = case maxShowX bt of
Nothing -> True
Just i -> _xNum bt <= i
Just i -> _xNum (_ibtHeld bt) <= i
toCombNodeLabel :: CombNode -> String
toCombNodeLabel (CombNode (Left ibt)) = show ibt