This commit is contained in:
2022-07-26 11:51:53 +01:00
parent 5c8e786dfa
commit c2707719fb
12 changed files with 740 additions and 718 deletions
+170 -176
View File
@@ -1,125 +1,110 @@
module Dodge.Creature
( module Dodge.Creature
, module Dodge.Creature.ChaseCrit
, module Dodge.Creature.Inanimate
, launcherCrit
, pistolCrit
, ltAutoCrit
, spreadGunCrit
, autoCrit
, armourChaseCrit
) where
import Dodge.Creature.State.Data
import Dodge.Item.Equipment.Booster
import Dodge.Item.Weapon.Utility
--import Dodge.Item.Weapon.Drone
import Dodge.Item.Craftable
import Dodge.Creature.LauncherCrit
import Dodge.Creature.PistolCrit
import Dodge.Creature.LtAutoCrit
import Dodge.Creature.SpreadGunCrit
module Dodge.Creature (
module Dodge.Creature,
module Dodge.Creature.ChaseCrit,
module Dodge.Creature.Inanimate,
launcherCrit,
pistolCrit,
ltAutoCrit,
spreadGunCrit,
autoCrit,
armourChaseCrit,
) where
import Control.Lens
import Dodge.Creature.ArmourChase
import Dodge.Creature.AutoCrit
import Dodge.Creature.ChaseCrit
import Dodge.Creature.ArmourChase
import Dodge.Creature.Inanimate
import Dodge.Creature.LauncherCrit
import Dodge.Creature.LtAutoCrit
import Dodge.Creature.PistolCrit
import Dodge.Creature.SpreadGunCrit
import Dodge.Data
import Dodge.Default
import Dodge.Item.Weapon
import Dodge.Item.Equipment
import Dodge.Item.Consumable
import Dodge.Creature.Inanimate
import Picture
import Dodge.Item.Craftable
import Dodge.Item.Equipment
import Dodge.Item.Weapon
import Geometry.Data
import qualified IntMapHelp as IM
--import Data.List
--import Data.Char
--import Data.Maybe
--import Data.Function
import Control.Lens
--import System.Random
--import qualified Data.Set as S
--import qualified Data.Map as M
import Picture
spawnerCrit :: Creature
spawnerCrit = defaultCreature
{ --_crUpdate = stateUpdate $ spawnerAI chaseCrit
_crHP = 300
, _crInv = IM.empty -- IM.fromList [(0,frontArmour)]
}
& crType . skinUpper .~ light4 blue
spawnerCrit =
defaultCreature
& crHP .~ 300
& crInv .~ IM.empty
& crType . skinUpper .~ light4 blue
miniGunCrit :: Creature
miniGunCrit = defaultCreature
{ _crInv = IM.fromList [(0,miniGunX 3)]
, _crRad = 10
, _crState = defaultState
, _crHP = 500
, _crMvType = defaultAimMvType
}
& crType . skinUpper .~ light4 red
& crType . humanoidAI .~ MiniGunAI
miniGunCrit =
defaultCreature
& crInv .~ IM.fromList [(0, miniGunX 3)]
& crType . skinUpper .~ light4 red
& crType . humanoidAI .~ MiniGunAI
longCrit :: Creature
longCrit = defaultCreature
{ _crActionPlan = ActionPlan
{ _apImpulse = []
, _apAction = []
, _apStrategy = StrategyActions WatchAndWait [StartSentinelPost]
, _apGoal = []
}
, _crInv = IM.fromList [(0,sniperRifle),(1,medkit 100)]
, _crRad = 10
, _crHP = 150
}
& crType . humanoidAI .~ LongAI
& crType . skinUpper .~ light4 red
longCrit =
defaultCreature
& crActionPlan .~
ActionPlan
{ _apImpulse = []
, _apAction = []
, _apStrategy = StrategyActions WatchAndWait [StartSentinelPost]
, _apGoal = []
}
& crInv .~ IM.fromList [(0, sniperRifle), (1, medkit 100)]
& crType . humanoidAI .~ LongAI
& crType . skinUpper .~ light4 red
multGunCrit :: Creature
multGunCrit = defaultCreature
{ _crInv = IM.fromList [(0,volleyGun 4),(1,medkit 100)]
, _crRad = 10
, _crHP = 300
}
& crType . skinUpper .~ light4 red
& crType . humanoidAI .~ MultGunAI
multGunCrit =
defaultCreature
& crInv .~ IM.fromList [(0, volleyGun 4), (1, medkit 100)]
& crType . skinUpper .~ light4 red
& crType . humanoidAI .~ MultGunAI
addArmour :: Creature -> Creature
addArmour = over crInv insarmour
where
where
insarmour xs = IM.insert (IM.newKey xs) frontArmour xs
{- | The creature you control.
ID 0. -}
ID 0.
-}
startCr :: Creature
startCr = defaultCreature
{ _crPos = V2 20 0
, _crOldPos = V2 20 0
, _crDir = pi/2
, _crMvDir = pi/2
, _crID = 0
, _crRad = 10
, _crMass = 10
, _crHP = 1000
, _crMaxHP = 1500
, _crInv = startInventory
, _crCorpse = MakeDefaultCorpse
, _crFaction = PlayerFaction
, _crMvType = MvWalking yourDefaultSpeed
}
& crType . skinUpper .~ light4 black
& crType . humanoidAI .~ YourAI
{- | Items you start with. -}
startCr =
defaultCreature
& crPos .~ V2 20 0
& crOldPos .~ V2 20 0
& crDir .~ pi / 2
& crMvDir .~ pi / 2
& crID .~ 0
& crHP .~ 1000
& crMaxHP .~ 1500
& crInv .~ startInventory
& crCorpse .~ MakeDefaultCorpse
& crFaction .~ PlayerFaction
& crMvType .~ MvWalking yourDefaultSpeed
& crType . skinUpper .~ light4 black
& crType . humanoidAI .~ YourAI
-- | Items you start with.
startInvList :: [Item]
startInvList = [ ]
startInvList = []
startInventory :: IM.IntMap Item
startInventory = IM.fromList $ zip [0..] startInvList
startInventory = IM.fromList $ zip [0 ..] startInvList
inventoryX :: Char -> [Item]
inventoryX c = case c of
'A' ->
'A' ->
[ clickDetector ITEMDETECTOR
, makeTypeCraftNum 1 TRANSFORMER
, makeTypeCraftNum 2 CAN
, makeTypeCraftNum 2 PIPE
]
'B' ->
'B' ->
[ forceFieldGun
, wristArmour
, wristArmour
@@ -143,7 +128,7 @@ inventoryX c = case c of
[ blinkGun
, unsafeBlinkGun
, autoDetector WALLDETECTOR
-- , effectGun "GIBBER" addCrGibs
-- , effectGun "GIBBER" addCrGibs
]
'E' ->
[ makeTypeCraftNum 3 PIPE
@@ -182,17 +167,19 @@ inventoryX c = case c of
, makeTypeCraftNum 5 CONCUSSMODULE
, makeTypeCraftNum 5 STATICMODULE
]
'H' -> [ shatterGun ]
'I' -> [ makeTypeCraft TELEPORTMODULE
, makeTypeCraftNum 2 MICROCHIP
]
'J' -> [ lasGun
, lasGun
, dualBeam
-- , lasWidePulse
, makeTypeCraftNum 10 TRANSFORMER
]
'K' ->
'H' -> [shatterGun]
'I' ->
[ makeTypeCraft TELEPORTMODULE
, makeTypeCraftNum 2 MICROCHIP
]
'J' ->
[ lasGun
, lasGun
, dualBeam
, -- , lasWidePulse
makeTypeCraftNum 10 TRANSFORMER
]
'K' ->
[ autoRifle
, makeTypeCraftNum 7 MICROCHIP
, makeTypeCraftNum 4 HARDWARE
@@ -211,77 +198,84 @@ inventoryX c = case c of
_ -> []
testInventory :: IM.IntMap Item
testInventory = IM.fromList $ zip [0..]
[ makeTypeCraftNum 9 PIPE
, autoAmr
, brainHat
, headLamp
, autoDetector WALLDETECTOR
, magShield
, frontArmour
, wristArmour
, flatShield
, sniperRifle
, makeTypeCraftNum 1 MOTOR
, makeTypeCraft INCENDIARYMODULE
, makeTypeCraft STATICMODULE
, makeTypeCraft CONCUSSMODULE
-- , bounceModule
-- , medkit 50 & itConsumption . itAmount .~ 3
, teleportModule
-- , makeTypeCraftNum 1 LIGHTER
-- , makeTypeCraftNum 15 TUBE
-- , makeTypeCraftNum 9 TRANSFORMER
-- , makeTypeCraftNum 5 CREATURESENSOR
-- , makeTypeCraftNum 9 PRISM
-- , makeTypeCraftNum 3 DRUM
-- , makeTypeCraftNum 3 PUMP
-- , makeTypeCraftNum 3 BATTERY
-- , makeTypeCraftNum 1 MAGNET
-- , makeTypeCraftNum 1 TRANSMITTER
, makeTypeCraftNum 10 HARDWARE
, makeTypeCraftNum 3 SPRING
, makeTypeCraftNum 10 CAN
-- , makeTypeCraftNum 3 TIN
, makeTypeCraftNum 3 PLANK
-- , makeTypeCraftNum 1 MOTOR
-- , makeTypeCraftNum 5 MICROCHIP
-- , makeTypeCraftNum 5 AIUNIT
]
testInventory =
IM.fromList $
zip
[0 ..]
[ makeTypeCraftNum 9 PIPE
, autoAmr
, brainHat
, headLamp
, autoDetector WALLDETECTOR
, magShield
, frontArmour
, wristArmour
, flatShield
, sniperRifle
, makeTypeCraftNum 1 MOTOR
, makeTypeCraft INCENDIARYMODULE
, makeTypeCraft STATICMODULE
, makeTypeCraft CONCUSSMODULE
, -- , bounceModule
-- , medkit 50 & itConsumption . itAmount .~ 3
teleportModule
, -- , makeTypeCraftNum 1 LIGHTER
-- , makeTypeCraftNum 15 TUBE
-- , makeTypeCraftNum 9 TRANSFORMER
-- , makeTypeCraftNum 5 CREATURESENSOR
-- , makeTypeCraftNum 9 PRISM
-- , makeTypeCraftNum 3 DRUM
-- , makeTypeCraftNum 3 PUMP
-- , makeTypeCraftNum 3 BATTERY
-- , makeTypeCraftNum 1 MAGNET
-- , makeTypeCraftNum 1 TRANSMITTER
makeTypeCraftNum 10 HARDWARE
, makeTypeCraftNum 3 SPRING
, makeTypeCraftNum 10 CAN
, -- , makeTypeCraftNum 3 TIN
makeTypeCraftNum 3 PLANK
-- , makeTypeCraftNum 1 MOTOR
-- , makeTypeCraftNum 5 MICROCHIP
-- , makeTypeCraftNum 5 AIUNIT
]
stackedInventory :: IM.IntMap Item
stackedInventory = IM.fromList $ zip [0..]
[--sonicGun
burstRifle
, pipe
,rewindGun
,tractorGun
,autoPistol
,pistol
,teslaGun
,blinkGun
,miniGunX 3
-- ,multGun
,boosterGun
,remoteLauncher
,flatShield
-- ,grenade
,spawnGun (lamp 5)
,lasGun
,flameThrower
,poisonSprayer
,launcher
-- ,droneLauncher
--,lasGun
--,grenade
--,ltAutoGun,flamer,multGun,spreadGun,remoteLauncher
--,longGun
--,hvAutoGun
--,teslaGun
--,latchkey 0
--,miniGun
--,medkit 50
--,bezierGun
]
stackedInventory =
IM.fromList $
zip
[0 ..]
[ --sonicGun
burstRifle
, pipe
, rewindGun
, tractorGun
, autoPistol
, pistol
, teslaGun
, blinkGun
, miniGunX 3
, -- ,multGun
boosterGun
, remoteLauncher
, flatShield
, -- ,grenade
spawnGun (lamp 5)
, lasGun
, flameThrower
, poisonSprayer
, launcher
-- ,droneLauncher
--,lasGun
--,grenade
--,ltAutoGun,flamer,multGun,spreadGun,remoteLauncher
--,longGun
--,hvAutoGun
--,teslaGun
--,latchkey 0
--,miniGun
--,medkit 50
--,bezierGun
]
--smokeGenGun :: Item
--smokeGenGun = effectGun "smoke" $ const spawnSmokeAtCursor