Make items recoverable from base type
This commit is contained in:
@@ -16,81 +16,81 @@ import LensHelp
|
||||
|
||||
itemCombinations :: [([(IcAmount,ItemBaseType)],Item)]
|
||||
itemCombinations =
|
||||
[ po [PIPE, HARDWARE] (bangStick 1)
|
||||
, po [BANGSTICK 1, TIN] pistol
|
||||
, po [PISTOL, SPRING, HARDWARE] autoPistol
|
||||
, po [AUTOPISTOL, PLANK, HARDWARE] smg
|
||||
, po [AUTOPISTOL, HARDWARE] machinePistol
|
||||
, po [BANGSTICK 1,CAN] revolver
|
||||
, po [REVOLVER, SPRING, HARDWARE] $ revolverX 1
|
||||
[ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1)
|
||||
, po [BANGSTICK 1, CRAFT TIN] pistol
|
||||
, po [PISTOL, CRAFT SPRING, cr HARDWARE] autoPistol
|
||||
, po [AUTOPISTOL, cr PLANK, cr HARDWARE] smg
|
||||
, po [AUTOPISTOL, cr HARDWARE] machinePistol
|
||||
, po [BANGSTICK 1,cr CAN] revolver
|
||||
, po [REVOLVER, cr SPRING, cr HARDWARE] $ revolverX 1
|
||||
|
||||
, po [TUBE,HARDWARE] bangCone
|
||||
, po [BANGCONE,PLANK] blunderbuss
|
||||
, po [BLUNDERBUSS,TUBE] bigBlunderbuss
|
||||
, po [BIGBLUNDERBUSS,TUBE] biggerBlunderbuss
|
||||
, po [BIGGERBLUNDERBUSS,TUBE] biggestBlunderbuss
|
||||
, po [BANGCONE,PUMP,HARDWARE] $ grenadeLauncher 1
|
||||
, po [GRENADELAUNCHER 1,MOTOR,DRUM] $ grenadeLauncher 2
|
||||
, po [cr TUBE,cr HARDWARE] bangCone
|
||||
, po [BANGCONE,cr PLANK] blunderbuss
|
||||
, po [BLUNDERBUSS,cr TUBE] bigBlunderbuss
|
||||
, po [BIGBLUNDERBUSS,cr TUBE] biggerBlunderbuss
|
||||
, po [BIGGERBLUNDERBUSS,cr TUBE] biggestBlunderbuss
|
||||
-- , po [BANGCONE,PUMP,HARDWARE] $ grenadeLauncher 1
|
||||
-- , po [GRENADELAUNCHER 1,MOTOR,DRUM] $ grenadeLauncher 2
|
||||
|
||||
, p [p 2 PIPE,o HARDWARE] bangCane
|
||||
, p [p 2 PIPE,o BANGCANE] (bangCaneX 2)
|
||||
, po [BANGCANE,TIN] rifle
|
||||
, po [RIFLE,PLANK] repeater
|
||||
, po [REPEATER,SPRING,HARDWARE] autoRifle
|
||||
, po [REPEATER,SPRING,CAN] burstRifle
|
||||
, po [BURSTRIFLE,SPRING,HARDWARE] fastBurstRifle
|
||||
, po [FASTBURSTRIFLE,SPRING,HARDWARE] completeBurstRifle
|
||||
, po [MOTOR,BANGCANEX 3] $ miniGunX 3
|
||||
, po [MOTOR,BANGCANEX 4] $ miniGunX 4
|
||||
, po [MOTOR,BANGCANEX 5] $ miniGunX 5
|
||||
, po [MOTOR,BANGCANEX 6] $ miniGunX 6
|
||||
, p [p 2 $ cr PIPE,o $ cr HARDWARE] bangCane
|
||||
, p [p 2 $ cr PIPE,o BANGCANE] (bangCaneX 2)
|
||||
, po [BANGCANE,cr TIN] rifle
|
||||
, po [RIFLE,cr PLANK] repeater
|
||||
, po [REPEATER,cr SPRING,cr HARDWARE] autoRifle
|
||||
, po [REPEATER,cr SPRING,cr CAN] burstRifle
|
||||
, po [BURSTRIFLE,cr SPRING,cr HARDWARE] fastBurstRifle
|
||||
, po [FASTBURSTRIFLE,cr SPRING,cr HARDWARE] completeBurstRifle
|
||||
, po [cr MOTOR,BANGCANEX 3] $ miniGunX 3
|
||||
, po [cr MOTOR,BANGCANEX 4] $ miniGunX 4
|
||||
, po [cr MOTOR,BANGCANEX 5] $ miniGunX 5
|
||||
, po [cr MOTOR,BANGCANEX 6] $ miniGunX 6
|
||||
|
||||
, p [p 3 PIPE,o HARDWARE] bangRod
|
||||
, po [BANGROD,PLANK,HARDWARE] elephantGun
|
||||
, po [ELEPHANTGUN,HARDWARE,PRISM] sniperRifle
|
||||
, po [ELEPHANTGUN,HARDWARE,TIN] amr
|
||||
, po [AMR,HARDWARE,SPRING] autoAmr
|
||||
, po [BANGROD,PLATE,DRUM,MOTOR] machineGun
|
||||
, p [p 3 $ cr PIPE,o $ cr HARDWARE] bangRod
|
||||
, po [BANGROD,cr PLANK,cr HARDWARE] elephantGun
|
||||
, po [ELEPHANTGUN,cr HARDWARE,cr PRISM] sniperRifle
|
||||
, po [ELEPHANTGUN,cr HARDWARE,cr TIN] amr
|
||||
, po [AMR,cr HARDWARE,cr SPRING] autoAmr
|
||||
, po [BANGROD,cr PLATE,cr DRUM,cr MOTOR] machineGun
|
||||
|
||||
, p [p 2 TUBE,o HARDWARE] launcher
|
||||
, p [p 2 TUBE,o LAUNCHER] (launcherX 2)
|
||||
] ++ [ p [p 2 TUBE,o $ LAUNCHERX i] (launcherX (i+1)) | i <- [2..9]]
|
||||
, 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]]
|
||||
++
|
||||
[ po [LIGHTER,PUMP,CAN] flameSpitter
|
||||
, po [FLAMESPITTER,CAN,PUMP] blowTorch
|
||||
, po [FLAMESPITTER,DRUM] flameThrower
|
||||
, po [FLAMETHROWER,DRUM] flameWall
|
||||
, po [FLAMETHROWER,PUMP] flameTorrent
|
||||
[ 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
|
||||
|
||||
, p [o PRISM,o TRANSFORMER,o PIPE] lasGun
|
||||
, p [o LASGUN,o PRISM] lasGunSway
|
||||
, p [o LASGUN,o HARDWARE] lasGunSwing
|
||||
, 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
|
||||
, p [o LASGUN,p 2 PIPE] lasGunDual
|
||||
, p [o LASGUN,o PIPE, o PRISM] lasGunWidePulse
|
||||
, p [o LASGUN,o TRANSFORMER,o PRISM] (lasGunWide 2)
|
||||
, p [o LASGUN,p 2 $ cr PIPE] lasDual
|
||||
, p [o LASGUN,o $ cr PIPE, o $ cr PRISM] lasWidePulse
|
||||
, p [o LASGUN,o $ cr TRANSFORMER,o $ cr PRISM] (lasWide 2)
|
||||
|
||||
, p [o TRANSFORMER,p 2 CAN] sparkGun
|
||||
, p [o SPARKGUN,p 2 PIPE] teslaGun
|
||||
, p [o $ cr TRANSFORMER,p 2 $ cr CAN] sparkGun
|
||||
, p [o SPARKGUN,p 2 $ cr PIPE] teslaGun
|
||||
|
||||
, p [o TELEPORTMODULE,p 2 MICROCHIP] blinkGun
|
||||
, p [o BLINKER, p 2 MICROCHIP] unsafeBlinkGun
|
||||
, p [o $ cr TELEPORTMODULE,p 2 $ cr MICROCHIP] blinkGun
|
||||
, p [o BLINKER, p 2 $ cr MICROCHIP] unsafeBlinkGun
|
||||
|
||||
, po [MAGNET,TIN] magShield
|
||||
, po [cr MAGNET,cr TIN] magShield
|
||||
|
||||
, p [p 2 PIPE,o PLATE,o MOTOR] powerLegs
|
||||
, p [p 2 $ cr PIPE,o $ cr PLATE,o $ cr MOTOR] powerLegs
|
||||
|
||||
, p [p 4 CAN] plateCraft
|
||||
, p [p 3 TIN] plateCraft
|
||||
, p [p 2 DRUM] plateCraft
|
||||
, p [p 4 $ cr CAN] plateCraft
|
||||
, p [p 3 $ cr TIN] plateCraft
|
||||
, p [p 2 $ cr DRUM] plateCraft
|
||||
|
||||
, p [p 2 PLATE] flatShield
|
||||
, p [p 2 $ cr PLATE] flatShield
|
||||
]
|
||||
++ map (\i -> po [LASGUNWIDE i,TRANSFORMER,PRISM] $ lasGunWide (i+1)) [1..9]
|
||||
++ map (\i -> po [LASGUNWIDE i,HARDWARE] $ lasGunFocus i) [1..10]
|
||||
++ map (\i -> po [PIPE,BANGSTICK i] $ bangStick (i+1)) [1..8]
|
||||
++ map (\i -> po [REVOLVERX i,CAN] $ revolverX (i+1)) [1..5]
|
||||
++ map (\i -> p [o (BANGCANEX i),p 2 PIPE] $ bangCaneX (i+1)) [1..5]
|
||||
++ map (\i -> po [LASGUNWIDE i,cr TRANSFORMER,cr PRISM] $ lasWide (i+1)) [1..9]
|
||||
++ map (\i -> po [LASGUNWIDE i,cr HARDWARE] $ lasFocus i) [1..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 -> p [o (BANGCANEX i),p 2 $ cr PIPE] $ bangCaneX (i+1)) [1..5]
|
||||
++ map (\i -> po [MINIGUNX i,BANGCANE] $ miniGunX (i+1)) [3..15]
|
||||
|
||||
++ [ po (_iyBase (_itType it):mtype) $ it & itType . iyModules . ix modtype .~ m
|
||||
@@ -102,6 +102,7 @@ itemCombinations =
|
||||
p = (,)
|
||||
po xs it = (map o xs,it)
|
||||
o = (1,)
|
||||
cr = CRAFT
|
||||
|
||||
moduleCombinations :: [( ModuleSlot, [Item], [([ItemBaseType],ItemModuleType)] )]
|
||||
moduleCombinations =
|
||||
@@ -111,8 +112,8 @@ moduleCombinations =
|
||||
,burstRifle
|
||||
,fastBurstRifle
|
||||
]
|
||||
, [amod [DRUM,HARDWARE] DRUMMAG
|
||||
,amod [MOTOR,HARDWARE] BELTMAG
|
||||
, [amod [cr DRUM,cr HARDWARE] DRUMMAG
|
||||
,amod [cr MOTOR,cr HARDWARE] BELTMAG
|
||||
]
|
||||
)
|
||||
, ( ModAutoMag
|
||||
@@ -120,56 +121,57 @@ moduleCombinations =
|
||||
,autoPistol
|
||||
,smg
|
||||
]
|
||||
, [amod [MAGNET,HARDWARE] MAGNETMAG
|
||||
, [amod [cr MAGNET,cr HARDWARE] MAGNETMAG
|
||||
]
|
||||
)
|
||||
, ( ModBullet
|
||||
, bulletWeapons
|
||||
, [amod [INCENDIARYMODULE] INCENDBUL
|
||||
,amod [BOUNCEMODULE] BOUNCEBUL
|
||||
,amod [STATICMODULE] STATICBUL
|
||||
,amod [CONCUSSMODULE] CONCUSBUL
|
||||
, [amod [cr INCENDIARYMODULE] INCENDBUL
|
||||
,amod [cr BOUNCEMODULE] BOUNCEBUL
|
||||
,amod [cr STATICMODULE] STATICBUL
|
||||
,amod [cr CONCUSSMODULE] CONCUSBUL
|
||||
]
|
||||
)
|
||||
, ( ModTarget
|
||||
, homingLaunchers ++ bulletWeapons
|
||||
, [amod [MICROCHIP,CREATURESENSOR] TARGCR
|
||||
,amod [MICROCHIP,PRISM] TARGLAS
|
||||
,amod [MICROCHIP,TIN] TARGPOS
|
||||
, [amod [cr MICROCHIP,cr CREATURESENSOR] TARGCR
|
||||
,amod [cr MICROCHIP,cr PRISM] TARGLAS
|
||||
,amod [cr MICROCHIP,cr TIN] TARGPOS
|
||||
]
|
||||
)
|
||||
, ( ModBulletTrajectory
|
||||
, bulletWeapons
|
||||
, [amod [MAGNET,MICROCHIP,HARDWARE] MAGNETTRAJ
|
||||
,amod [MICROCHIP,HARDWARE] FLECHETRAJ
|
||||
,amod [ANTIMATTER,HARDWARE] BEZIERTRAJ
|
||||
, [amod [cr MAGNET, cr MICROCHIP,cr HARDWARE] MAGNETTRAJ
|
||||
,amod [cr MICROCHIP, cr HARDWARE] FLECHETRAJ
|
||||
,amod [cr ANTIMATTER,cr HARDWARE] BEZIERTRAJ
|
||||
]
|
||||
)
|
||||
, ( ModDualBeam
|
||||
, [lasGunDual]
|
||||
, [amod [INCENDIARYMODULE] INCENDLAS
|
||||
,amod [TRANSFORMER] SPLITLAS
|
||||
,amod [STATICMODULE] STATICLAS
|
||||
, [lasDual]
|
||||
, [amod [cr INCENDIARYMODULE] INCENDLAS
|
||||
,amod [cr TRANSFORMER] SPLITLAS
|
||||
,amod [cr STATICMODULE] STATICLAS
|
||||
]
|
||||
)
|
||||
, ( ModTeleport
|
||||
, teleportableWeapons
|
||||
, [amod [TELEPORTMODULE,MICROCHIP] WEPTELE
|
||||
, [amod [cr TELEPORTMODULE,cr MICROCHIP] WEPTELE
|
||||
]
|
||||
)
|
||||
, ( ModLauncherHoming
|
||||
, homingLaunchers
|
||||
, [ amod [MICROCHIP,TRANSMITTER] LAUNCHHOME
|
||||
, [ amod [cr MICROCHIP,cr TRANSMITTER] LAUNCHHOME
|
||||
]
|
||||
)
|
||||
, ( ModBattery
|
||||
, batteryGuns
|
||||
, [amod [BATTERY] EXTRABATTERY
|
||||
, [amod [cr BATTERY] EXTRABATTERY
|
||||
]
|
||||
)
|
||||
]
|
||||
where
|
||||
amod = (,)
|
||||
cr = CRAFT
|
||||
|
||||
homingLaunchers :: [Item]
|
||||
homingLaunchers = launcher : [launcherX i | i <- [2..10]]
|
||||
@@ -179,12 +181,12 @@ batteryGuns =
|
||||
[ teslaGun
|
||||
, sparkGun
|
||||
, lasGun
|
||||
, lasGunSway
|
||||
, lasGunSwing
|
||||
, lasSway
|
||||
, lasSwing
|
||||
] ++
|
||||
[ lasGunWide i | i <- [1..10]
|
||||
[ lasWide i | i <- [1..10]
|
||||
] ++
|
||||
[ lasGunFocus i | i <- [1..10]]
|
||||
[ lasFocus i | i <- [1..10]]
|
||||
|
||||
teleportableWeapons :: [Item]
|
||||
teleportableWeapons = bulletWeapons ++ batteryGuns ++ homingLaunchers
|
||||
|
||||
+101
-96
@@ -2,110 +2,23 @@
|
||||
module Dodge.Combine.Data
|
||||
where
|
||||
import Dodge.Equipment.Data
|
||||
import Dodge.Data.ItemAmount
|
||||
import Control.Lens
|
||||
import qualified Data.Map.Strict as M
|
||||
|
||||
-- this should probably store loaded ammo
|
||||
data ItemType = ItemType
|
||||
{_iyBase :: ItemBaseType
|
||||
{_iyBase :: ItemBaseType
|
||||
,_iyModules :: M.Map ModuleSlot ItemModuleType
|
||||
,_iyStack :: Stack
|
||||
}
|
||||
deriving (Eq,Ord,Show)
|
||||
|
||||
-- TODO make this an enum somehow...?
|
||||
data ItemBaseType
|
||||
= NOTDEFINED
|
||||
| EFFGUN String
|
||||
| AUTOEFFGUN String
|
||||
-- Weapons
|
||||
| BANGSTICK Int
|
||||
| PISTOL
|
||||
| REVOLVER
|
||||
| REVOLVERX Int
|
||||
| HVAUTOGUN
|
||||
| LTAUTOGUN
|
||||
| MACHINEPISTOL
|
||||
| AUTOPISTOL
|
||||
| SMG
|
||||
| BANGCONE
|
||||
| BLUNDERBUSS
|
||||
| BIGBLUNDERBUSS
|
||||
| BIGGERBLUNDERBUSS
|
||||
| BIGGESTBLUNDERBUSS
|
||||
| GRAPESHOTCANNON
|
||||
| GRENADELAUNCHER Int -- number of chambers that can be reloaded
|
||||
-- | MORTARCONE / HANDMORTAR
|
||||
| BANGCANE
|
||||
| MINIGUN
|
||||
| MINIGUNX Int
|
||||
| BANGCANEX Int
|
||||
| RIFLE
|
||||
| REPEATER
|
||||
| AUTORIFLE
|
||||
| BURSTRIFLE
|
||||
| FASTBURSTRIFLE
|
||||
| COMPLETEBURSTRIFLE
|
||||
| BANGROD
|
||||
| ELEPHANTGUN
|
||||
| AMR
|
||||
| AUTOAMR
|
||||
| SNIPERRIFLE
|
||||
| MACHINEGUN
|
||||
| FLAMESPITTER
|
||||
| FLAMETHROWER
|
||||
| FLAMETORRENT
|
||||
| FLAMEWALL
|
||||
| BLOWTORCH
|
||||
| AUTOGUN
|
||||
| SPREADGUN
|
||||
| MULTGUN
|
||||
| LONGGUN
|
||||
| SPARKGUN
|
||||
| TESLAGUN
|
||||
| LASGUN
|
||||
| LASPULSE
|
||||
| LASGUNDUAL
|
||||
| LASGUNSWING
|
||||
| LASGUNSWAY
|
||||
| LASGUNWIDEPULSE
|
||||
| LASGUNWIDE Int
|
||||
| LASGUNFOCUS Int
|
||||
| SONICGUN
|
||||
| TRACTORGUN
|
||||
| LAUNCHER
|
||||
| LAUNCHERX Int
|
||||
-- | TRACKINGLAUNCHER
|
||||
| REMOTELAUNCHER
|
||||
| POISONSPRAYER
|
||||
| DRONELAUNCHER
|
||||
| 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
|
||||
-- Crafting
|
||||
| PIPE
|
||||
data Stack = NoStack | Stack IcAmount
|
||||
deriving (Eq,Ord,Show)
|
||||
|
||||
data CraftType
|
||||
= PIPE
|
||||
| TUBE
|
||||
| HARDWARE
|
||||
| SPRING
|
||||
@@ -151,12 +64,104 @@ data ItemBaseType
|
||||
| TIMEMODULE
|
||||
| SIZEMODULE
|
||||
| GRAVITYMODULE
|
||||
deriving (Eq,Ord,Show,Enum)
|
||||
|
||||
-- TODO make this an enum somehow...?
|
||||
data ItemBaseType
|
||||
= NOTDEFINED
|
||||
| EFFGUN String
|
||||
| AUTOEFFGUN String
|
||||
-- Weapons
|
||||
| BANGSTICK Int
|
||||
| PISTOL
|
||||
| REVOLVER
|
||||
| REVOLVERX Int
|
||||
| MACHINEPISTOL
|
||||
| AUTOPISTOL
|
||||
| SMG
|
||||
| BANGCONE
|
||||
| BLUNDERBUSS
|
||||
| BIGBLUNDERBUSS
|
||||
| BIGGERBLUNDERBUSS
|
||||
| BIGGESTBLUNDERBUSS
|
||||
-- | GRAPESHOTCANNON
|
||||
-- | GRENADELAUNCHER Int -- number of chambers that can be reloaded
|
||||
-- | MORTARCONE / HANDMORTAR
|
||||
| BANGCANE
|
||||
-- | MINIGUN
|
||||
| MINIGUNX Int
|
||||
| BANGCANEX Int
|
||||
| RIFLE
|
||||
| REPEATER
|
||||
| AUTORIFLE
|
||||
| BURSTRIFLE
|
||||
| FASTBURSTRIFLE
|
||||
| COMPLETEBURSTRIFLE
|
||||
| BANGROD
|
||||
| ELEPHANTGUN
|
||||
| AMR
|
||||
| AUTOAMR
|
||||
| SNIPERRIFLE
|
||||
| MACHINEGUN
|
||||
| FLAMESPITTER
|
||||
| FLAMETHROWER
|
||||
| FLAMETORRENT
|
||||
| FLAMEWALL
|
||||
| BLOWTORCH
|
||||
| AUTOGUN
|
||||
-- | SPREADGUN
|
||||
-- | MULTGUN
|
||||
| LONGGUN
|
||||
| SPARKGUN
|
||||
| TESLAGUN
|
||||
| LASGUN
|
||||
| LASPULSE
|
||||
| LASGUNDUAL
|
||||
| LASGUNSWING
|
||||
| LASGUNSWAY
|
||||
| LASGUNWIDEPULSE
|
||||
| LASGUNWIDE Int
|
||||
| LASGUNFOCUS Int
|
||||
| SONICGUN
|
||||
| TRACTORGUN
|
||||
| LAUNCHER
|
||||
| LAUNCHERX Int
|
||||
-- | TRACKINGLAUNCHER
|
||||
| REMOTELAUNCHER
|
||||
| POISONSPRAYER
|
||||
| DRONELAUNCHER
|
||||
-- | 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
|
||||
--
|
||||
| NoCombineType
|
||||
deriving (Eq,Ord,Show)
|
||||
|
||||
data ItemModuleType
|
||||
|
||||
@@ -13,7 +13,7 @@ import Dodge.Creature.State.Data
|
||||
import Dodge.Creature.Update
|
||||
import Dodge.Prop.Gib
|
||||
--import Dodge.Item.Weapon.Grenade
|
||||
import Dodge.Item.Weapon.Booster
|
||||
import Dodge.Item.Equipment.Booster
|
||||
import Dodge.Item.Weapon.Utility
|
||||
import Dodge.Item.Weapon.Drone
|
||||
import Dodge.Item.Craftable
|
||||
@@ -253,9 +253,9 @@ testInventory = IM.fromList $ zip [0..]
|
||||
, flatShield
|
||||
, sniperRifle
|
||||
, makeTypeCraftNum 1 MOTOR
|
||||
, makeModule INCENDIARYMODULE
|
||||
, makeModule STATICMODULE
|
||||
, makeModule CONCUSSMODULE
|
||||
, makeTypeCraft INCENDIARYMODULE
|
||||
, makeTypeCraft STATICMODULE
|
||||
, makeTypeCraft CONCUSSMODULE
|
||||
-- , bounceModule
|
||||
-- , medkit 50 & itConsumption . itAmount .~ 3
|
||||
, teleportModule
|
||||
@@ -302,7 +302,7 @@ stackedInventory = IM.fromList $ zip [0..]
|
||||
,flameThrower
|
||||
,poisonSprayer
|
||||
,launcher
|
||||
,lasDrones
|
||||
,droneLauncher
|
||||
--,lasGun
|
||||
--,grenade
|
||||
--,ltAutoGun,flamer,multGun,spreadGun,remoteLauncher
|
||||
|
||||
@@ -85,5 +85,5 @@ maybeWarmupStatus it = case it ^? itUse . useDelay . warmMax of
|
||||
in Just $ Prelude.take (5 - Prelude.length n) "*WARM" ++ n
|
||||
|
||||
defaultItemType :: ItemType
|
||||
defaultItemType = ItemType NOTDEFINED mempty
|
||||
defaultItemType = ItemType NOTDEFINED mempty NoStack
|
||||
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ initialAnoTree = OnwardList
|
||||
, AnRoom pistolerRoom
|
||||
, AnRoom doubleCorridorBarrels
|
||||
, IntAnno $ PassthroughLockKeyLists
|
||||
[(sensorRoomRunPast ELECTRICAL, takeOne [STATICMODULE,SPARKGUN] )] itemRooms
|
||||
[(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT STATICMODULE,SPARKGUN] )] itemRooms
|
||||
, IntAnno $ PassthroughLockKeyLists keyCardRunPastRand itemRooms
|
||||
, IntAnno $ AnTree . warningRooms
|
||||
, AnTree $ rToOnward "chaseCrit+armourChaseCrit rectRoom"
|
||||
|
||||
+247
-1
@@ -1,9 +1,255 @@
|
||||
module Dodge.Item
|
||||
( module Dodge.Item.Weapon
|
||||
, module Dodge.Item.Consumable
|
||||
, module Dodge.Item.Equipment
|
||||
, module Dodge.Item.PassKey
|
||||
, module Dodge.Item.Craftable
|
||||
, itemFromBase
|
||||
, baseToFamily
|
||||
) where
|
||||
--import Dodge.Data
|
||||
import Dodge.Data
|
||||
import Dodge.Item.Weapon
|
||||
import Dodge.Item.Equipment
|
||||
import Dodge.Item.Consumable
|
||||
import Dodge.Item.PassKey
|
||||
import Dodge.Item.Family
|
||||
import Dodge.Item.Craftable
|
||||
|
||||
-- this is not ideal, should fold the itemtype into a stackable/unstackable type
|
||||
itemFromBase :: ItemBaseType -> Item
|
||||
itemFromBase ibt = case ibt of
|
||||
NOTDEFINED -> error "cannot create undefined item"
|
||||
EFFGUN _ -> undefined
|
||||
AUTOEFFGUN _ -> undefined
|
||||
-- Weapons
|
||||
BANGSTICK i -> bangStick i
|
||||
PISTOL -> pistol
|
||||
REVOLVER -> revolver
|
||||
REVOLVERX i -> revolverX i
|
||||
MACHINEPISTOL -> machinePistol
|
||||
AUTOPISTOL -> autoPistol
|
||||
SMG -> smg
|
||||
BANGCONE -> bangCone
|
||||
BLUNDERBUSS -> blunderbuss
|
||||
BIGBLUNDERBUSS -> bigBlunderbuss
|
||||
BIGGERBLUNDERBUSS -> biggerBlunderbuss
|
||||
BIGGESTBLUNDERBUSS -> biggestBlunderbuss
|
||||
-- GRAPESHOTCANNON -> grapeShotCannon
|
||||
--GRENADELAUNCHER Int -- number of chambers that can be reloaded
|
||||
-- --| MORTARCONE / HANDMORTAR
|
||||
BANGCANE -> bangCane
|
||||
MINIGUNX i -> miniGunX i
|
||||
BANGCANEX i -> bangCaneX i
|
||||
RIFLE -> rifle
|
||||
REPEATER -> repeater
|
||||
AUTORIFLE -> autoRifle
|
||||
BURSTRIFLE -> burstRifle
|
||||
FASTBURSTRIFLE -> fastBurstRifle
|
||||
COMPLETEBURSTRIFLE -> completeBurstRifle
|
||||
BANGROD -> bangRod
|
||||
ELEPHANTGUN -> elephantGun
|
||||
AMR -> amr
|
||||
AUTOAMR -> autoAmr
|
||||
SNIPERRIFLE -> sniperRifle
|
||||
MACHINEGUN -> machineGun
|
||||
FLAMESPITTER -> flameSpitter
|
||||
FLAMETHROWER -> flameThrower
|
||||
FLAMETORRENT -> flameTorrent
|
||||
FLAMEWALL -> flameWall
|
||||
BLOWTORCH -> blowTorch
|
||||
AUTOGUN -> autoGun
|
||||
-- SPREADGUN -> spreadGun
|
||||
-- MULTGUN -> multGun
|
||||
LONGGUN -> longGun
|
||||
SPARKGUN -> sparkGun
|
||||
TESLAGUN -> teslaGun
|
||||
LASGUN -> lasGun
|
||||
LASPULSE -> lasPulse
|
||||
LASGUNDUAL -> lasDual
|
||||
LASGUNSWING -> lasSwing
|
||||
LASGUNSWAY -> lasSway
|
||||
LASGUNWIDEPULSE -> lasWidePulse
|
||||
LASGUNWIDE i -> lasWide i
|
||||
LASGUNFOCUS i -> lasFocus i
|
||||
SONICGUN -> sonicGun
|
||||
TRACTORGUN -> tractorGun
|
||||
LAUNCHER -> launcher
|
||||
LAUNCHERX i -> launcherX i
|
||||
-- --| TRACKINGLAUNCHER
|
||||
REMOTELAUNCHER -> remoteLauncher
|
||||
POISONSPRAYER -> poisonSprayer
|
||||
DRONELAUNCHER -> droneLauncher
|
||||
--GRENADE
|
||||
--REMOTEBOMB
|
||||
-- Utility items
|
||||
BOOSTER -> boosterGun
|
||||
REWINDER -> rewindGun
|
||||
BLINKER -> blinkGun
|
||||
BLINKERUNSAFE -> unsafeBlinkGun
|
||||
FORCEFIELDGUN -> forceFieldGun
|
||||
SHRINKER -> shrinkGun
|
||||
SPAWNER -> error "need to datify creatures first"
|
||||
-- Equipment
|
||||
CLICKDETECTOR d -> clickDetector d
|
||||
AUTODETECTOR d -> autoDetector d
|
||||
MAGSHIELD -> magShield
|
||||
FLAMESHIELD -> flameShield
|
||||
FRONTARMOUR -> frontArmour
|
||||
WRISTARMOUR -> wristArmour
|
||||
INVISIBILITYEQUIPMENT GoesOnWrist -> wristInvisibility
|
||||
INVISIBILITYEQUIPMENT _ -> error "need to define invisibility for more than wrist"
|
||||
BRAINHAT -> brainHat
|
||||
HEADLAMP -> headLamp
|
||||
HEADLAMP1 -> headLamp1
|
||||
POWERLEGS -> powerLegs
|
||||
SPEEDLEGS -> speedLegs
|
||||
JUMPLEGS -> jumpLegs
|
||||
FLATSHIELD -> flatShield
|
||||
JETPACK -> jetPack
|
||||
CRAFT cr -> makeTypeCraft cr
|
||||
KEYCARD i -> keyCard i
|
||||
MEDKIT i -> medkit i
|
||||
--
|
||||
-- Crafting
|
||||
--PIPE
|
||||
--TUBE
|
||||
--HARDWARE
|
||||
--SPRING
|
||||
--CAN
|
||||
--TIN
|
||||
--DRUM
|
||||
--PLANK
|
||||
--SHARDGLASS
|
||||
--PUMP
|
||||
--MOTOR
|
||||
--TRANSFORMER
|
||||
--PRISM
|
||||
--LIGHTER
|
||||
--MAGNET
|
||||
--ANTIMATTER
|
||||
--PLATE
|
||||
--TRANSMITTER
|
||||
--MICROCHIP
|
||||
--AIUNIT
|
||||
--CAMERA
|
||||
--MINIDISPLAY -- visual display unit
|
||||
--LED
|
||||
--NAILBOX
|
||||
--IRONBAR
|
||||
--LIGHTSENSOR
|
||||
--SOUNDSENSOR
|
||||
--HEATSENSOR
|
||||
--CREATURESENSOR
|
||||
--WIRE
|
||||
--BATTERY
|
||||
--FUELCELL
|
||||
--PORTABLEFUSION
|
||||
-- Modules
|
||||
-- bullet
|
||||
--INCENDIARYMODULE
|
||||
--STATICMODULE
|
||||
--CONCUSSMODULE
|
||||
--FRAGMODULE
|
||||
--FLASHMODULE
|
||||
--BOUNCEMODULE
|
||||
--
|
||||
--TELEPORTMODULE
|
||||
--TIMEMODULE
|
||||
--SIZEMODULE
|
||||
--GRAVITYMODULE
|
||||
--
|
||||
--
|
||||
--NoCombineType
|
||||
--
|
||||
baseToFamily :: ItemBaseType -> ItemFamily
|
||||
baseToFamily ibt = case ibt of
|
||||
NOTDEFINED -> undefined
|
||||
EFFGUN _ -> HeldFamily
|
||||
AUTOEFFGUN _ -> HeldFamily
|
||||
BANGSTICK _ -> HeldFamily
|
||||
PISTOL -> HeldFamily
|
||||
REVOLVER -> HeldFamily
|
||||
REVOLVERX _ -> HeldFamily
|
||||
MACHINEPISTOL -> HeldFamily
|
||||
AUTOPISTOL -> HeldFamily
|
||||
SMG -> HeldFamily
|
||||
BANGCONE -> HeldFamily
|
||||
BLUNDERBUSS -> HeldFamily
|
||||
BIGBLUNDERBUSS -> HeldFamily
|
||||
BIGGERBLUNDERBUSS -> HeldFamily
|
||||
BIGGESTBLUNDERBUSS -> HeldFamily
|
||||
-- | GRAPESHOTCANNON -> HeldFamily
|
||||
-- | GRENADELAUNCHER In-> HeldFamilyt -- number of chambers that can be reloaded
|
||||
-- | MORTARCONE / HANDM-> HeldFamilyORTAR
|
||||
BANGCANE -> HeldFamily
|
||||
-- | MINIGUN -> HeldFamily
|
||||
MINIGUNX _ -> HeldFamily
|
||||
BANGCANEX _ -> HeldFamily
|
||||
RIFLE -> HeldFamily
|
||||
REPEATER -> HeldFamily
|
||||
AUTORIFLE -> HeldFamily
|
||||
BURSTRIFLE -> HeldFamily
|
||||
FASTBURSTRIFLE -> HeldFamily
|
||||
COMPLETEBURSTRIFLE -> HeldFamily
|
||||
BANGROD -> HeldFamily
|
||||
ELEPHANTGUN -> HeldFamily
|
||||
AMR -> HeldFamily
|
||||
AUTOAMR -> HeldFamily
|
||||
SNIPERRIFLE -> HeldFamily
|
||||
MACHINEGUN -> HeldFamily
|
||||
FLAMESPITTER -> HeldFamily
|
||||
FLAMETHROWER -> HeldFamily
|
||||
FLAMETORRENT -> HeldFamily
|
||||
FLAMEWALL -> HeldFamily
|
||||
BLOWTORCH -> HeldFamily
|
||||
AUTOGUN -> HeldFamily
|
||||
-- | SPREADGUN -> HeldFamily
|
||||
-- | MULTGUN -> HeldFamily
|
||||
LONGGUN -> HeldFamily
|
||||
SPARKGUN -> HeldFamily
|
||||
TESLAGUN -> HeldFamily
|
||||
LASGUN -> HeldFamily
|
||||
LASPULSE -> HeldFamily
|
||||
LASGUNDUAL -> HeldFamily
|
||||
LASGUNSWING -> HeldFamily
|
||||
LASGUNSWAY -> HeldFamily
|
||||
LASGUNWIDEPULSE -> HeldFamily
|
||||
LASGUNWIDE _ -> HeldFamily
|
||||
LASGUNFOCUS _ -> HeldFamily
|
||||
SONICGUN -> HeldFamily
|
||||
TRACTORGUN -> HeldFamily
|
||||
LAUNCHER -> HeldFamily
|
||||
LAUNCHERX _ -> HeldFamily
|
||||
-- | TRACKINGLAUNCHER -> HeldFamily
|
||||
REMOTELAUNCHER -> HeldFamily
|
||||
POISONSPRAYER -> HeldFamily
|
||||
DRONELAUNCHER -> HeldFamily
|
||||
-- | GRENADE
|
||||
-- | REMOTEBOMB
|
||||
BOOSTER -> LeftClickFamily
|
||||
REWINDER -> LeftClickFamily
|
||||
BLINKER -> LeftClickFamily
|
||||
BLINKERUNSAFE -> LeftClickFamily
|
||||
FORCEFIELDGUN -> LeftClickFamily
|
||||
SHRINKER -> LeftClickFamily
|
||||
SPAWNER -> LeftClickFamily
|
||||
CLICKDETECTOR _ -> HeldFamily
|
||||
AUTODETECTOR _ -> LeftClickFamily
|
||||
MAGSHIELD -> EquipmentFamily
|
||||
FLAMESHIELD -> EquipmentFamily
|
||||
FRONTARMOUR -> EquipmentFamily
|
||||
WRISTARMOUR -> EquipmentFamily
|
||||
INVISIBILITYEQUIPMENT _ -> EquipmentFamily
|
||||
BRAINHAT -> EquipmentFamily
|
||||
HEADLAMP -> EquipmentFamily
|
||||
HEADLAMP1 -> EquipmentFamily
|
||||
POWERLEGS -> EquipmentFamily
|
||||
SPEEDLEGS -> EquipmentFamily
|
||||
JUMPLEGS -> EquipmentFamily
|
||||
FLATSHIELD -> EquipmentFamily
|
||||
JETPACK -> EquipmentFamily
|
||||
CRAFT _ -> CraftingFamily
|
||||
|
||||
KEYCARD _ -> HeldFamily
|
||||
|
||||
MEDKIT _ -> ConsumableFamily
|
||||
|
||||
@@ -9,22 +9,17 @@ import Color
|
||||
--import Geometry
|
||||
import Control.Lens
|
||||
|
||||
makeTypeCraftNum :: Int -> ItemBaseType -> Item
|
||||
makeTypeCraftNum :: Int -> CraftType -> Item
|
||||
makeTypeCraftNum i ct = defaultCraftable
|
||||
{ _itInvSize = 0.5
|
||||
, _itCurseStatus = Uncursed
|
||||
, _itConsumption = ItemItselfConsumable $ IcAmount i
|
||||
}
|
||||
& itType . iyBase .~ ct
|
||||
& itType . iyBase .~ CRAFT ct
|
||||
|
||||
makeTypeCraft :: ItemBaseType -> Item
|
||||
makeTypeCraft :: CraftType -> Item
|
||||
makeTypeCraft = makeTypeCraftNum 1
|
||||
|
||||
makeModule :: ItemBaseType -> Item
|
||||
makeModule ct = makeTypeCraft ct
|
||||
& itInvSize .~ 1
|
||||
& itInvColor .~ chartreuse
|
||||
|
||||
incendiaryModule :: Item
|
||||
incendiaryModule = makeTypeCraft INCENDIARYMODULE
|
||||
& itInvSize .~ 1
|
||||
|
||||
+17
-12
@@ -1,7 +1,23 @@
|
||||
module Dodge.Item.Equipment where
|
||||
module Dodge.Item.Equipment
|
||||
( module Dodge.Item.Equipment.Booster
|
||||
, magShield
|
||||
, powerLegs
|
||||
, flatShield
|
||||
, wristInvisibility
|
||||
, wristArmour
|
||||
, brainHat
|
||||
, frontArmour
|
||||
, headLamp
|
||||
, headLamp1
|
||||
, jetPack
|
||||
, speedLegs
|
||||
, jumpLegs
|
||||
, flameShield
|
||||
) where
|
||||
import Dodge.Data
|
||||
import Dodge.Item.Draw
|
||||
import Dodge.Item.Equipment.Shape
|
||||
import Dodge.Item.Equipment.Booster
|
||||
import Dodge.LightSource
|
||||
import Dodge.Default
|
||||
import Dodge.Default.Wall
|
||||
@@ -134,17 +150,6 @@ flatShieldEquipSPic _ =
|
||||
( colorSH yellow $ upperPrismPoly 10 (rectWH 2 10)
|
||||
, mempty
|
||||
)
|
||||
effectOnEquip :: (Creature -> Item -> World -> World) -> ItEffect
|
||||
effectOnEquip f = ItInvEffectID
|
||||
{ _ieInv = g f
|
||||
, _ieMID = Nothing
|
||||
}
|
||||
where
|
||||
g f' itm cr w
|
||||
| _crInvSel cr == invid = f' cr (_crInv (_creatures w IM.! _crID cr) IM.! invid) w
|
||||
| otherwise = w
|
||||
where
|
||||
invid = fromJust $ _itInvPos itm
|
||||
|
||||
shieldWall :: Int -> Wall
|
||||
shieldWall crid = defaultWall
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module Dodge.Item.Weapon.Booster
|
||||
module Dodge.Item.Equipment.Booster
|
||||
( boosterGun
|
||||
) where
|
||||
import Dodge.Data
|
||||
@@ -0,0 +1,7 @@
|
||||
module Dodge.Item.Family where
|
||||
|
||||
data ItemFamily = HeldFamily
|
||||
| CraftingFamily
|
||||
| EquipmentFamily
|
||||
| LeftClickFamily
|
||||
| ConsumableFamily
|
||||
@@ -13,8 +13,11 @@ module Dodge.Item.Weapon
|
||||
, module Dodge.Item.Weapon.SprayGuns
|
||||
, module Dodge.Item.Weapon.BatteryGuns
|
||||
, module Dodge.Item.Weapon.Launcher
|
||||
, module Dodge.Item.Weapon.Drone
|
||||
) where
|
||||
import Dodge.Item.Weapon.Utility
|
||||
import Dodge.Item.Weapon.BulletGuns
|
||||
import Dodge.Item.Weapon.Drone
|
||||
import Dodge.Item.Weapon.TriggerType
|
||||
import Dodge.Item.Weapon.SonicGuns
|
||||
import Dodge.Item.Weapon.ExtraEffect
|
||||
@@ -22,7 +25,6 @@ import Dodge.Item.Weapon.UseEffect
|
||||
import Dodge.Item.Weapon.Remote
|
||||
import Dodge.Item.Weapon.Grenade
|
||||
import Dodge.Item.Weapon.Spawn
|
||||
import Dodge.Item.Weapon.Utility
|
||||
import Dodge.Item.Weapon.Radar
|
||||
import Dodge.Item.Weapon.SprayGuns
|
||||
import Dodge.Item.Weapon.BatteryGuns
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
module Dodge.Item.Weapon.BatteryGuns
|
||||
( lasGun
|
||||
, lasGunDual
|
||||
, lasGunWide
|
||||
, lasGunWidePulse
|
||||
, lasGunSway
|
||||
, lasGunSwing
|
||||
, lasGunFocus
|
||||
, lasGunPulse
|
||||
, lasDual
|
||||
, lasWide
|
||||
, lasWidePulse
|
||||
, lasSway
|
||||
, lasSwing
|
||||
, lasFocus
|
||||
, lasPulse
|
||||
, sparkGun
|
||||
, teslaGun
|
||||
, teslaParams
|
||||
@@ -104,8 +104,8 @@ teslaGunPic _ = noPic $ colorSH blue $
|
||||
where
|
||||
xa = 1
|
||||
xb = 9
|
||||
lasGunPulse :: Item
|
||||
lasGunPulse = lasGun
|
||||
lasPulse :: Item
|
||||
lasPulse = lasGun
|
||||
& itType . iyBase .~ LASPULSE
|
||||
& itUse . useMods .~
|
||||
[ ammoCheckI
|
||||
@@ -123,8 +123,8 @@ lasGunPulse = lasGun
|
||||
frac it = 0.5 * (1 + sin (pi * fromIntegral (_lasCycle $ _itParams it) * 0.1))
|
||||
|
||||
|
||||
lasGunWide :: Int -> Item
|
||||
lasGunWide n = lasGun
|
||||
lasWide :: Int -> Item
|
||||
lasWide n = lasGun
|
||||
& itType . iyBase .~ LASGUNWIDE n
|
||||
& itParams . lasColor .~ orange
|
||||
& itParams . lasDamage .~ 2
|
||||
@@ -143,8 +143,8 @@ lasGunWide n = lasGun
|
||||
where
|
||||
n' = 9 * n
|
||||
xs = [ 0.25 * (fromIntegral x - fromIntegral (n'-1) /2) | x <- [0..n'-1] ]
|
||||
lasGunWidePulse :: Item
|
||||
lasGunWidePulse = lasGun
|
||||
lasWidePulse :: Item
|
||||
lasWidePulse = lasGun
|
||||
& itType . iyBase .~ LASGUNWIDEPULSE
|
||||
& itParams . lasColor .~ orange
|
||||
& itParams . lasDamage .~ 2
|
||||
@@ -170,8 +170,8 @@ lasGunWidePulse = lasGun
|
||||
xs it = [ 0.25 * (fromIntegral x - fromIntegral (n'-1) /2) | x <- [0..n'-1] ]
|
||||
where
|
||||
n' = (ceiling $ (150 :: Float) * frac it) :: Int
|
||||
lasGunSway :: Item
|
||||
lasGunSway = lasGun
|
||||
lasSway :: Item
|
||||
lasSway = lasGun
|
||||
& itType . iyBase .~ LASGUNSWAY
|
||||
& itParams . lasColor .~ orange
|
||||
& itParams . lasDamage .~ 11
|
||||
@@ -192,8 +192,8 @@ lasGunSway = lasGun
|
||||
x it = [ 15 * sin (pi * fromIntegral x' * 0.05) ]
|
||||
where
|
||||
x' = _lasCycle $ _itParams it
|
||||
lasGunFocus :: Int -> Item
|
||||
lasGunFocus n = lasGunWide n
|
||||
lasFocus :: Int -> Item
|
||||
lasFocus n = lasWide n
|
||||
& itType . iyBase .~ LASGUNFOCUS n
|
||||
& itParams . lasColor .~ red
|
||||
& itUse . useMods .~
|
||||
@@ -208,8 +208,8 @@ lasGunFocus n = lasGunWide n
|
||||
n' = 9 * n
|
||||
xs = [ 0.25 * (fromIntegral x - fromIntegral (n'-1) /2) | x <- [0..n'-1] ]
|
||||
|
||||
lasGunDual :: Item
|
||||
lasGunDual = lasGun
|
||||
lasDual :: Item
|
||||
lasDual = lasGun
|
||||
& itType . iyBase .~ LASGUNDUAL
|
||||
& itParams .~ DualBeam
|
||||
{ _phaseV = 1
|
||||
@@ -233,8 +233,8 @@ lasGunDual = lasGun
|
||||
& useAim . aimStance .~ TwoHandTwist
|
||||
)
|
||||
& itType . iyModules . at ModDualBeam ?~ EMPTYMODULE
|
||||
lasGunSwing :: Item
|
||||
lasGunSwing = lasGun
|
||||
lasSwing :: Item
|
||||
lasSwing = lasGun
|
||||
& itType . iyBase .~ LASGUNSWING
|
||||
& itParams . lasColor .~ orange
|
||||
& itUse . useMods .~
|
||||
|
||||
@@ -18,8 +18,8 @@ import Control.Lens
|
||||
--import Control.Monad.State
|
||||
--import System.Random
|
||||
|
||||
lasDrones :: Item
|
||||
lasDrones = defaultGun
|
||||
droneLauncher :: Item
|
||||
droneLauncher = defaultGun
|
||||
{ _itConsumption = defaultAmmo
|
||||
{ _laType = DroneAmmo { _amString = "LASDRONE" }
|
||||
, _laMax = 2
|
||||
|
||||
@@ -28,10 +28,10 @@ lockRoomMultiItems =
|
||||
lockRoomKeyItems :: RandomGen g => [ (Int -> State g (MetaTree Room String) , State g ItemBaseType ) ]
|
||||
lockRoomKeyItems =
|
||||
[(lasCenSensEdge, takeOne [LAUNCHER,LASGUN,SPARKGUN,FLATSHIELD,FORCEFIELDGUN] )
|
||||
,(sensorRoomRunPast ELECTRICAL, takeOne [STATICMODULE,SPARKGUN] )
|
||||
,(sensorRoomRunPast FLAMING, takeOne [FLAMESPITTER, INCENDIARYMODULE] )
|
||||
,(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT STATICMODULE,SPARKGUN] )
|
||||
,(sensorRoomRunPast FLAMING, takeOne [FLAMESPITTER, CRAFT INCENDIARYMODULE] )
|
||||
,(sensorRoomRunPast LASERING, return LASGUN )
|
||||
,(const slowDoorRoomRunPast, return MINIGUN)
|
||||
,(const slowDoorRoomRunPast, return $ MINIGUNX 3)
|
||||
,(const longRoomRunPast, takeOne [SNIPERRIFLE,FLATSHIELD])
|
||||
,(const glassLessonRunPast, takeOne [LASGUN])
|
||||
,(const $ lasTunnelRunPast 400, takeOne [FLATSHIELD,FORCEFIELDGUN])
|
||||
@@ -47,7 +47,7 @@ itemRooms =
|
||||
, rc $ map makeTypeCraft [TUBE,TUBE,HARDWARE]
|
||||
]
|
||||
)
|
||||
, (MINIGUN , join $ takeOne
|
||||
, (MINIGUNX 3 , join $ takeOne
|
||||
[roomMiniIntro
|
||||
, rc $ map makeTypeCraft ([MOTOR,HARDWARE] ++ replicate 6 PIPE)
|
||||
] )
|
||||
@@ -80,12 +80,12 @@ itemRooms =
|
||||
[rc [keyCard 0]
|
||||
]
|
||||
)
|
||||
, (INCENDIARYMODULE , join $ takeOne
|
||||
, (CRAFT INCENDIARYMODULE , join $ takeOne
|
||||
[rc [incendiaryModule]
|
||||
]
|
||||
)
|
||||
, (STATICMODULE , join $ takeOne
|
||||
[rc [makeModule STATICMODULE]
|
||||
, (CRAFT STATICMODULE , join $ takeOne
|
||||
[rc [makeTypeCraft STATICMODULE]
|
||||
]
|
||||
)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
module Dodge.Room.Breather where
|
||||
--import Dodge.Cleat
|
||||
import Dodge.Combine.Data
|
||||
import Dodge.Data
|
||||
--import Dodge.PlacementSpot
|
||||
--import Dodge.RoomLink
|
||||
--import Dodge.Default.Room
|
||||
import Dodge.Item
|
||||
--import Dodge.Creature
|
||||
--import Dodge.Room.Pillar
|
||||
--import Dodge.Room.Girder
|
||||
--import Dodge.Room.Modify.Girder
|
||||
--import Dodge.LevelGen.Data
|
||||
import RandomHelp
|
||||
import Dodge.Tree
|
||||
--import Dodge.Placement.Instance
|
||||
--import Dodge.LevelGen.Data
|
||||
--import Dodge.Room.Procedural
|
||||
--import Dodge.Room.Corridor
|
||||
--import Dodge.Room.Tanks
|
||||
--import Dodge.Room.Link
|
||||
--import Dodge.Room.Door
|
||||
--import Dodge.Room.Airlock
|
||||
import Dodge.Room.Containing
|
||||
--import Geometry
|
||||
--import MonadHelp
|
||||
--import LensHelp
|
||||
|
||||
--import qualified Data.Set as S
|
||||
|
||||
firstBreather :: State StdGen (MetaTree Room String)
|
||||
firstBreather = do
|
||||
itms <- takeOne [[],[itemFromBase $ CRAFT TUBE]]
|
||||
roomsContaining [] itms
|
||||
Reference in New Issue
Block a user