Compare commits
6 Commits
1d85ee6330
...
8ae58823f8
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ae58823f8 | |||
| a9e80809e8 | |||
| af8f803404 | |||
| 38eef8fd54 | |||
| e608664f11 | |||
| ed86d310d5 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -39,7 +39,7 @@ basicCrShape cr
|
||||
| otherwise =
|
||||
scaleSH (V3 crsize crsize crsize) $
|
||||
mconcat
|
||||
[ colorSH (_skinHead cskin) $ scalp cr
|
||||
[ colorSH (_skinHead cskin) . overPosSH (translateToES cr OnHead) $ scalp
|
||||
, colorSH (_skinUpper cskin) $ upperBody cr
|
||||
, rotmdir $ colorSH (_skinLower cskin) $ feet cr
|
||||
]
|
||||
@@ -79,7 +79,9 @@ arms cr =
|
||||
aHand = noPic $ translateSHz (-4) . upperPrismPolyHalfST 4 $ polyCirc 3 4
|
||||
|
||||
deadScalp :: Creature -> Shape
|
||||
deadScalp cr = deadRot cr . translateSHz 10 . scalp $ cr
|
||||
--deadScalp cr = deadRot cr . translateSHz 5 . scalp $ cr
|
||||
--deadScalp cr = deadRot cr . translateSHz (-5) . scalp $ cr
|
||||
deadScalp _ = translateSH (V3 (-13) 0 0) scalp
|
||||
|
||||
deadRot :: Creature -> Shape -> Shape
|
||||
deadRot cr = overPosSH (Q.rotateToZ d)
|
||||
@@ -90,14 +92,9 @@ deadRot cr = overPosSH (Q.rotateToZ d)
|
||||
(addZ 0 . unitVectorAtAngle . subtract (_crDir cr + pi))
|
||||
(damageDirection $ _crDamage cr)
|
||||
|
||||
scalp :: Creature -> Shape
|
||||
scalp :: Shape
|
||||
{-# INLINE scalp #-}
|
||||
scalp cr = overPosSH (translateToES cr OnHead) fhead
|
||||
-- | twists cr = translateSHxy 0 5 . rotateSH (-1) $ translateSHxy (negate 2.5) 0.25 fhead
|
||||
-- | oneH cr = rotateSH 0.5 $ translateSHxy 2.5 0 fhead
|
||||
-- | otherwise = translateSHxy 2.5 0 fhead
|
||||
where
|
||||
fhead = (colorSH (greyN 0.9) . upperPrismPolyHalfST 5 $ polyCirc 3 5)
|
||||
scalp = (colorSH (greyN 0.9) . upperPrismPolyHalfST 5 $ polyCirc 3 5)
|
||||
& each . sfShadowImportance .~ Unimportant
|
||||
|
||||
torso :: Creature -> Shape
|
||||
|
||||
@@ -1,22 +1,17 @@
|
||||
module Dodge.Creature.Update (updateCreature) where
|
||||
|
||||
import Dodge.Update.Camera.Rotate
|
||||
import SDL (MouseButton (..))
|
||||
import Dodge.Creature.Vocalization
|
||||
import RandomHelp
|
||||
import Data.Maybe
|
||||
import Linear
|
||||
import NewInt
|
||||
import Color
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.List as List
|
||||
import Data.Maybe
|
||||
import Dodge.Barreloid
|
||||
--import Dodge.Base.NewID
|
||||
-- import Dodge.Base.NewID
|
||||
import Dodge.Corpse.Make
|
||||
import Dodge.Creature.Action
|
||||
import Dodge.Creature.Radius
|
||||
import Dodge.Creature.State
|
||||
import Dodge.Creature.State.WalkCycle
|
||||
import Dodge.Creature.Vocalization
|
||||
import Dodge.Creature.YourControl
|
||||
import Dodge.Damage
|
||||
import Dodge.Data.Damage.Type
|
||||
@@ -26,9 +21,14 @@ import Dodge.Inventory
|
||||
import Dodge.Lampoid
|
||||
import Dodge.Prop.Gib
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.Update.Camera.Rotate
|
||||
import FoldableHelp
|
||||
import Geometry
|
||||
import LensHelp
|
||||
import Linear
|
||||
import NewInt
|
||||
import RandomHelp
|
||||
import SDL (MouseButton (..))
|
||||
import Shape
|
||||
import ShapePicture.Data
|
||||
|
||||
@@ -36,24 +36,27 @@ import ShapePicture.Data
|
||||
-- allow for knockbacks etc to be determined as well as intended movements
|
||||
updateCreature :: Creature -> World -> World
|
||||
updateCreature cr
|
||||
| null (cr ^? crHP . _HP) = id
|
||||
| cr ^. crPos . _z < negate 100 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr
|
||||
| CrIsCorpse _ <- cr ^. crHP = chasmTestCorpse cr
|
||||
| null (cr ^? crHP . _HP) = id
|
||||
| cr ^. crPos . _z < 0 = (tocr . crZVel -~ 0.5) . (tocr . crPos . _z +~ _crZVel cr)
|
||||
| otherwise = updateCreature' cr
|
||||
| otherwise = updateLivingCreature cr
|
||||
where
|
||||
tocr = cWorld . lWorld . creatures . ix (_crID cr)
|
||||
|
||||
updateCreature' :: Creature -> World -> World
|
||||
updateCreature' cr =
|
||||
chasmTest cr . case _crType cr of
|
||||
updateLivingCreature :: Creature -> World -> World
|
||||
updateLivingCreature cr =
|
||||
chasmTestLiving cr . case _crType cr of
|
||||
Avatar{} ->
|
||||
(cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse)
|
||||
. crUpdate cid . yourControl cr
|
||||
. crUpdate cid
|
||||
. yourControl cr
|
||||
LampCrit{} -> updateLampoid cr
|
||||
BarrelCrit bt -> updateBarreloid bt cr
|
||||
AvatarDead -> id
|
||||
ChaseCrit {} -> \w -> crUpdate cid . performActions cid
|
||||
$ over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w
|
||||
ChaseCrit{} -> \w ->
|
||||
crUpdate cid . performActions cid $
|
||||
over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w
|
||||
_ -> crUpdate cid
|
||||
where
|
||||
cid = cr ^. crID
|
||||
@@ -70,7 +73,7 @@ crUpdate cid =
|
||||
checkDeath cid
|
||||
. doDamage cid
|
||||
. invItemEffs cid
|
||||
. updateWalkCycle cid
|
||||
. updateWalkCycle cid -- stride appears to be updated elsewhere as well
|
||||
|
||||
checkDeath :: Int -> World -> World
|
||||
checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix cid) w
|
||||
@@ -78,10 +81,12 @@ checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix c
|
||||
checkDeath' :: Creature -> World -> World
|
||||
checkDeath' cr w = case cr ^. crHP of
|
||||
HP x | x > 0 -> w & tocr . crDamage .~ []
|
||||
HP x | x > -200 && _crDeathTimer cr < 5 -> w
|
||||
HP x | x > -200 && _crDeathTimer cr > 0 ->
|
||||
w
|
||||
& tocr . crDamage .~ []
|
||||
& tocr . crDeathTimer +~ 1
|
||||
HP _ -> w
|
||||
& tocr . crDeathTimer -~ 1
|
||||
HP _ ->
|
||||
w
|
||||
& dropAll cr -- the order of these is possibly important
|
||||
& stopSoundFrom (CrWeaponSound (_crID cr) 0)
|
||||
& corpseOrGib cr
|
||||
@@ -92,21 +97,28 @@ checkDeath' cr w = case cr ^. crHP of
|
||||
-- could look at the amount of damage here (given by maxDamage) too
|
||||
corpseOrGib :: Creature -> World -> World
|
||||
corpseOrGib cr = case cr ^? crDamage . to maxDamageType . _Just . _1 of
|
||||
Just CookingDamage -> sethp (CrIsCorpse $ scorchSPic thecorpse)
|
||||
Just CookingDamage ->
|
||||
sethp (CrIsCorpse $ scorchSPic thecorpse)
|
||||
. dodeathsound CookDeath
|
||||
Just PoisonDamage -> sethp (CrIsCorpse $ poisonSPic thecorpse)
|
||||
Just PoisonDamage ->
|
||||
sethp (CrIsCorpse $ poisonSPic thecorpse)
|
||||
. dodeathsound PoisonDeath
|
||||
Just PhysicalDamage | _crPain cr > 200
|
||||
-> addCrGibs cr . sethp CrIsGibs
|
||||
Just PhysicalDamage
|
||||
| _crPain cr > 200 ->
|
||||
addCrGibs cr
|
||||
. sethp CrIsGibs
|
||||
. dodeathsound GibsDeath
|
||||
_ -> sethp (CrIsCorpse thecorpse)
|
||||
_ ->
|
||||
sethp (CrIsCorpse thecorpse)
|
||||
. dodeathsound PlainDeath
|
||||
where
|
||||
dodeathsound dt = f dt . stopSoundFrom (CrMouth cid)
|
||||
f dt w = fromMaybe w $ do
|
||||
let (msid, g) = runState (maybeTakeOne (crDeathSounds cr dt)) (_randGen w)
|
||||
sid <- msid
|
||||
return $ w & soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing
|
||||
return $
|
||||
w
|
||||
& soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing
|
||||
& randGen .~ g
|
||||
cid = cr ^. crID
|
||||
sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x
|
||||
@@ -122,12 +134,14 @@ poisonSPic = _1 %~ overColSH (mixColors 0.5 0.5 green . normalizeColor)
|
||||
dropAll :: Creature -> World -> World
|
||||
dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys . _unNIntMap $ _crInv cr
|
||||
|
||||
chasmTest :: Creature -> World -> World
|
||||
chasmTest cr w
|
||||
| _crZVel cr < 0 = w & tocr . crZVel -~ 0.5
|
||||
chasmTestLiving :: Creature -> World -> World
|
||||
chasmTestLiving cr w
|
||||
| _crZVel cr < 0 =
|
||||
w
|
||||
& tocr . crZVel -~ 0.5
|
||||
& tocr . crPos . _z +~ _crZVel cr
|
||||
-- | Just (x, y) <- List.find g (foldMap loopPairs $ w ^. cWorld . chasms') = w
|
||||
| Just (x, y) <- List.find g (w ^. cWorld . cliffs) = w
|
||||
| Just (x, y) <- List.find g (w ^. cWorld . cliffs) =
|
||||
w
|
||||
& soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100)
|
||||
& tocr . crPos . _xy -~ normalizeV (vNormal (x - y))
|
||||
& chasmRotate cr (x - y)
|
||||
@@ -138,12 +152,30 @@ chasmTest cr w
|
||||
g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType)
|
||||
f = circInPolygon (cr ^. crPos . _xy) (crRad $ cr ^. crType)
|
||||
|
||||
chasmTestCorpse :: Creature -> World -> World
|
||||
chasmTestCorpse cr w
|
||||
| _crZVel cr < 0 =
|
||||
w
|
||||
& tocr . crZVel -~ 0.5
|
||||
& tocr . crPos . _z +~ _crZVel cr
|
||||
| Just (x, y) <- List.find g (w ^. cWorld . cliffs) =
|
||||
w
|
||||
& soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100)
|
||||
& tocr . crPos . _xy +~ normalizeV (vNormal (x - y))
|
||||
& chasmRotate cr (x - y)
|
||||
| any f (w ^. cWorld . chasms) = w & tocr . crZVel -~ 0.5
|
||||
| otherwise = w
|
||||
where
|
||||
tocr = cWorld . lWorld . creatures . ix (_crID cr)
|
||||
g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType)
|
||||
f = circInPolygon (cr ^. crPos . _xy) (crRad $ cr ^. crType)
|
||||
|
||||
chasmRotate :: Creature -> Point2 -> World -> World
|
||||
chasmRotate cr v w
|
||||
| t = rotateTo8 (argV v) w
|
||||
| otherwise = w
|
||||
where
|
||||
t = cr ^. crID == 0 && isNothing (w ^? input . mouseButtons . ix SDL.ButtonRight)
|
||||
t = cr ^. crID == 0 && null (w ^? input . mouseButtons . ix SDL.ButtonRight)
|
||||
|
||||
updatePulse :: Pulse -> Pulse
|
||||
updatePulse p
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
module Dodge.Creature.Vocalization (
|
||||
crWarningSounds,
|
||||
crDeathSounds,
|
||||
@@ -56,7 +57,7 @@ defaultDeathSounds = \case
|
||||
CookDeath -> mempty
|
||||
PoisonDeath -> mempty
|
||||
PlainDeath -> mempty
|
||||
GibsDeath -> mempty
|
||||
GibsDeath -> [gut1S, gut2S, gut3S, gut4S, gut5S, gut6S]
|
||||
|
||||
vocalizationTest :: Creature -> Maybe SoundID
|
||||
vocalizationTest cr = case cr ^? crVocalization . vcCoolDown of
|
||||
|
||||
@@ -44,7 +44,7 @@ data MachineType
|
||||
| McTerminal
|
||||
| McDamSensor DamageSensor
|
||||
| McProxSensor ProximitySensor
|
||||
| McTurret {_mctTurret :: Turret}
|
||||
| McTurret {_mctTurret :: Turret, _mctTurretStun :: Int}
|
||||
| McStorage {_mcsType :: AmmoType, _mcsAmount :: Int}
|
||||
| McDistributer {_mcdStorageMachine :: Maybe Int}
|
||||
| McTrigger {_mcTriggerID :: Int}
|
||||
|
||||
@@ -53,7 +53,8 @@ defaultCreature =
|
||||
-- , _crHammerPosition = HammerUp
|
||||
, _crName = "DEFAULTCRNAME"
|
||||
-- , _crStatistics = CreatureStatistics 50 50 50
|
||||
, _crDeathTimer = 0
|
||||
, _crDeathTimer = 5 -- how long a creature remains standing
|
||||
-- after a killing blow has been dealt
|
||||
}
|
||||
|
||||
--defaultCreatureSkin :: CreatureType
|
||||
|
||||
@@ -5,7 +5,6 @@ module Dodge.Floor (
|
||||
) where
|
||||
|
||||
import Dodge.Data.MTRS
|
||||
import Data.Maybe
|
||||
import Dodge.Room.Tutorial
|
||||
import Data.List (intersperse)
|
||||
import Dodge.Cleat
|
||||
@@ -117,18 +116,3 @@ intAnno f = do
|
||||
anRoom :: State StdGen Room -> State LayoutVars MTRS
|
||||
anRoom t = zoom lyGen (tToBTree "anRoom" . return . cleatOnward <$> t)
|
||||
|
||||
passthroughLockKeyLists ::
|
||||
[(Int -> State LayoutVars (MetaTree Room String), State LayoutVars ItemType)]
|
||||
-> [(ItemType, State LayoutVars (MetaTree Room String))]
|
||||
-> State LayoutVars (MetaTree Room String)
|
||||
passthroughLockKeyLists ls ks = do
|
||||
i <- nextLayoutInt
|
||||
(functionlockroom, randomitemidentity) <- takeOne ls
|
||||
lr <- functionlockroom i
|
||||
ii <- randomitemidentity
|
||||
keyroom <- fromJust $ lookup ii ks
|
||||
return $
|
||||
MTree
|
||||
("PassthroughLockKeyLists-" ++ show ii)
|
||||
(NodeMTree $ MTree "RassThroughLockKeyLists" (NodeMTree lr) [MBranch (toLabel i) keyroom])
|
||||
[]
|
||||
|
||||
@@ -1159,7 +1159,7 @@ mcShootLaser _ mc =
|
||||
shootLaser (MachinePrimarySound (_mcID mc)) (DamageLaser 11) 1 pos dir yellow
|
||||
where
|
||||
pos = _mcPos mc +.+ 20 *.* unitVectorAtAngle dir
|
||||
dir = mc ^?! mcType . _McTurret . tuDir
|
||||
dir = mc ^?! mcType . mctTurret . tuDir
|
||||
|
||||
mcShootAuto :: Item -> Machine -> World -> World
|
||||
mcShootAuto itm mc w
|
||||
|
||||
@@ -21,7 +21,7 @@ destroyMachine mc =
|
||||
|
||||
destroyMcType :: MachineType -> Machine -> World -> World
|
||||
destroyMcType mt mc w = case mt of
|
||||
McTurret tu -> fromMaybe w $ do
|
||||
McTurret tu _ -> fromMaybe w $ do
|
||||
itm <- w ^? cWorld . lWorld . items . ix (tu ^. tuWeapon)
|
||||
return $ copyItemToFloor (_mcPos mc) itm w
|
||||
McTrigger i -> w & cWorld . lWorld . triggers . ix i %~ not
|
||||
|
||||
@@ -18,7 +18,7 @@ drawMachine :: CWorld -> Machine -> SPic
|
||||
drawMachine cw mc = case _mcType mc of
|
||||
McStatic -> mempty
|
||||
McTerminal -> terminalSPic lw mc
|
||||
McTurret tu -> drawBaseMachine 20 mc <> drawTurret lw tu mc
|
||||
McTurret tu _ -> drawBaseMachine 20 mc <> drawTurret lw tu mc
|
||||
McDamSensor se -> drawBaseMachine 25 mc <> drawDamSensor gp se
|
||||
McProxSensor{} -> drawBaseMachine 25 mc
|
||||
McStorage{} -> noPic $ colorSH (mcColor mc) storageShape
|
||||
|
||||
+33
-33
@@ -5,14 +5,13 @@ module Dodge.Machine.Update (updateMachine) where
|
||||
import Control.Monad
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.IntSet as IS
|
||||
import Data.List (partition)
|
||||
--import Data.List (partition)
|
||||
import Data.Maybe
|
||||
import Dodge.Base.Collide
|
||||
import Dodge.Base.You
|
||||
import Dodge.Data.World
|
||||
import Dodge.HeldUse
|
||||
import Dodge.Item.Display
|
||||
import Dodge.Machine.Destroy
|
||||
import Dodge.Movement.Turn
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.Terminal
|
||||
@@ -23,18 +22,18 @@ import Linear
|
||||
import Sound.Data
|
||||
|
||||
updateMachine :: Machine -> World -> World
|
||||
updateMachine mc
|
||||
| _mcHP mc < 1 = destroyMachine mc
|
||||
| otherwise =
|
||||
mcApplyDamage (_mcDamage mc) mc
|
||||
. mcPlaySound mc
|
||||
. mcTypeUpdate mc (_mcType mc)
|
||||
updateMachine mc = mcPlaySound mc . mcTypeUpdate mc (_mcType mc)
|
||||
-- | _mcHP mc < 1 = destroyMachine mc
|
||||
-- | otherwise =
|
||||
-- mcApplyDamage (_mcDamage mc) mc
|
||||
-- . mcPlaySound mc
|
||||
-- . mcTypeUpdate mc (_mcType mc)
|
||||
|
||||
mcTypeUpdate :: Machine -> MachineType -> World -> World
|
||||
mcTypeUpdate mc = \case
|
||||
McStatic -> id
|
||||
McTerminal -> terminalScreenGlow mc
|
||||
McTurret tu -> updateTurret (_tuTurnSpeed tu) mc
|
||||
McTurret tu _ -> updateTurret (_tuTurnSpeed tu) mc
|
||||
McDamSensor se -> mcDamSensorTriggerUpdate se mc . mcDamSensorUpdate se mc
|
||||
McProxSensor se -> mcProxSensorTriggerUpdate se mc . mcProxSensorUpdate se mc
|
||||
McStorage{} -> id
|
||||
@@ -56,28 +55,36 @@ terminalScreenGlow mc w = fromMaybe w $ do
|
||||
updateTurret :: Float -> Machine -> World -> World
|
||||
updateTurret rotSpeed mc w =
|
||||
w
|
||||
& dodamage
|
||||
& decreasestun
|
||||
-- & dodamage
|
||||
& mcUseItem mc
|
||||
& elecDamBranch
|
||||
where
|
||||
dodamage =
|
||||
decreasestun =
|
||||
cWorld
|
||||
. lWorld
|
||||
. machines
|
||||
. ix mcid
|
||||
%~ ( (mcDamage .~ [Electrical (min 2500 $ max 0 (elecDam - 10))])
|
||||
. (mcHP -~ dam)
|
||||
)
|
||||
. mcType
|
||||
. mctTurretStun %~ (max 0 . subtract 1)
|
||||
-- dodamage =
|
||||
-- cWorld
|
||||
-- . lWorld
|
||||
-- . machines
|
||||
-- . ix mcid
|
||||
-- %~ ( (mcDamage .~ [Electrical (min 2500 $ max 0 (elecDam - 10))])
|
||||
-- . (mcHP -~ dam)
|
||||
-- )
|
||||
elecDamBranch
|
||||
| elecDam < 10 = updateFiringStatus . doTurn
|
||||
| mc ^?! mcType . mctTurretStun < 1 = updateFiringStatus . doTurn
|
||||
| otherwise = id
|
||||
mcid = _mcID mc
|
||||
ypos = you w ^. crPos . _xy
|
||||
mcpos = _mcPos mc
|
||||
seesYou = hasLOSIndirect mcpos ypos w
|
||||
(elecDams, dams) = partition isElectrical $ _mcDamage mc
|
||||
dam = sum $ map _dmAmount dams
|
||||
elecDam = sum $ map _dmAmount elecDams
|
||||
-- (elecDams, dams) = partition isElectrical $ _mcDamage mc
|
||||
-- dam = sum $ map _dmAmount dams
|
||||
-- elecDam = sum $ map _dmAmount elecDams
|
||||
doTurn
|
||||
| seesYou =
|
||||
cWorld
|
||||
@@ -85,32 +92,32 @@ updateTurret rotSpeed mc w =
|
||||
. machines
|
||||
. ix mcid
|
||||
. mcType
|
||||
. _McTurret
|
||||
. mctTurret
|
||||
. tuDir
|
||||
%~ turnTo rotSpeed mcpos ypos
|
||||
| otherwise = id
|
||||
closeFireAngle = seesYou -- && angleVV (ypos -.- mcpos) (unitVectorAtAngle mcdir) < 1
|
||||
updateFiringStatus
|
||||
| closeFireAngle =
|
||||
cWorld . lWorld . machines . ix mcid . mcType . _McTurret . tuFireTime .~ 20
|
||||
cWorld . lWorld . machines . ix mcid . mcType . mctTurret . tuFireTime .~ 20
|
||||
| otherwise =
|
||||
cWorld
|
||||
. lWorld
|
||||
. machines
|
||||
. ix mcid
|
||||
. mcType
|
||||
. _McTurret
|
||||
. mctTurret
|
||||
. tuFireTime
|
||||
%~ (max 0 . subtract 1)
|
||||
|
||||
isElectrical :: Damage -> Bool
|
||||
isElectrical dm = case dm of
|
||||
Electrical{} -> True
|
||||
_ -> False
|
||||
--isElectrical :: Damage -> Bool
|
||||
--isElectrical dm = case dm of
|
||||
-- Electrical{} -> True
|
||||
-- _ -> False
|
||||
|
||||
mcUseItem :: Machine -> World -> World
|
||||
mcUseItem mc w = fromMaybe w $ do
|
||||
tu <- mc ^? mcType . _McTurret
|
||||
tu <- mc ^? mcType . mctTurret
|
||||
let i = tu ^. tuWeapon
|
||||
it <- w ^? cWorld . lWorld . items . ix i
|
||||
hit <- it ^? itType
|
||||
@@ -164,13 +171,6 @@ mcBackgroundSound mc = case mc ^. mcType of
|
||||
McDistributer{} -> Just (lowWhirS,1)
|
||||
McTrigger{} -> Just (throb1S,0.5)
|
||||
|
||||
mcApplyDamage :: [Damage] -> Machine -> World -> World
|
||||
mcApplyDamage ds mc = case mc ^? mcType . _McDamSensor of
|
||||
Nothing -> mcpointer %~ ((mcDamage .~ []) . (mcHP -~ sum (map _dmAmount ds)))
|
||||
_ -> mcpointer . mcDamage .~ []
|
||||
where
|
||||
mcpointer = cWorld . lWorld . machines . ix (_mcID mc)
|
||||
|
||||
mcDamSensorUpdate :: DamageSensor -> Machine -> World -> World
|
||||
mcDamSensorUpdate se = senseDamage (damageTypeThreshold (se ^. sensType)) (se ^. sensType)
|
||||
|
||||
|
||||
@@ -27,16 +27,17 @@ putLasTurret rotSpeed =
|
||||
(reverse $ square 10)
|
||||
( defaultMachine
|
||||
-- & mcColor .~ blue
|
||||
& mcType .~ (lasTurret & _McTurret . tuTurnSpeed .~ rotSpeed)
|
||||
& mcType .~ (lasTurret & mctTurret . tuTurnSpeed .~ rotSpeed)
|
||||
& mcHP .~ 50000
|
||||
)
|
||||
(Just laser)
|
||||
|
||||
lasTurret :: MachineType
|
||||
lasTurret = McTurret $
|
||||
lasTurret = McTurret
|
||||
Turret
|
||||
{ _tuWeapon = 0
|
||||
, _tuTurnSpeed = 0.1
|
||||
, _tuFireTime = 0
|
||||
, _tuDir = 0
|
||||
}
|
||||
0
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||
module Dodge.Room.Tutorial where
|
||||
|
||||
import Data.Maybe
|
||||
import Dodge.LockAndKey
|
||||
import Dodge.Room.SensorDoor
|
||||
import Dodge.Room.Room
|
||||
import Dodge.Data.AmmoType
|
||||
import Dodge.Room.Path
|
||||
@@ -51,6 +54,14 @@ tutAnoTree = do
|
||||
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
|
||||
, corDoor
|
||||
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
|
||||
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
|
||||
, passthroughLockKeyLists
|
||||
[(sensorRoomRunPast ElectricSensor, takeOne
|
||||
[-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
|
||||
HELD SPARKGUN])]
|
||||
itemRooms
|
||||
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
|
||||
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
|
||||
, tToBTree "sdr" . return . cleatOnward <$>
|
||||
(shuffleLinks =<< distributerRoom BulletAmmo 100000)
|
||||
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
@@ -505,3 +516,18 @@ tutorialMessage1 i =
|
||||
-- , makeTermLine " AND NEARBY OBJECTS WILL BE DISPLAYED"
|
||||
-- , makeTermLine "--------------------------------------------"
|
||||
-- ]
|
||||
passthroughLockKeyLists ::
|
||||
[(Int -> State LayoutVars (MetaTree Room String), State LayoutVars ItemType)]
|
||||
-> [(ItemType, State LayoutVars (MetaTree Room String))]
|
||||
-> State LayoutVars (MetaTree Room String)
|
||||
passthroughLockKeyLists ls ks = do
|
||||
i <- nextLayoutInt
|
||||
(functionlockroom, randomitemidentity) <- takeOne ls
|
||||
lr <- functionlockroom i
|
||||
ii <- randomitemidentity
|
||||
keyroom <- fromJust $ lookup ii ks
|
||||
return $
|
||||
MTree
|
||||
("PassthroughLockKeyLists-" ++ show ii)
|
||||
(NodeMTree $ MTree "RassThroughLockKeyLists" (NodeMTree lr) [MBranch (toLabel i) keyroom])
|
||||
[]
|
||||
|
||||
@@ -25,14 +25,17 @@ import Dodge.Zoning.Pathing
|
||||
import Geometry.Data
|
||||
import LensHelp
|
||||
import Linear
|
||||
import qualified Data.IntSet as IS
|
||||
import Dodge.Machine.Destroy
|
||||
|
||||
damageWall :: Int -> Damage -> World -> (S.Set Int2, World)
|
||||
damageWall wlid dt w = fromMaybe (mempty,w) $ do
|
||||
wl <- w ^? cWorld . lWorld . walls . ix wlid
|
||||
let (dmam, w') = damMatSideEffect dt (_wlMaterial wl) (Right wl) w
|
||||
return $ case wl ^. wlStructure of
|
||||
MachinePart mcid -> (,) mempty
|
||||
$ w' & cWorld . lWorld . machines . ix mcid . mcDamage .:~ dt
|
||||
MachinePart mcid -> -- (,) mempty
|
||||
-- $ w' & cWorld . lWorld . machines . ix mcid . mcDamage .:~ dt
|
||||
w' & damageMachine dt dmam mcid
|
||||
BlockPart blid ->
|
||||
w' & damageBlock (wl ^. wlMaterial) dmam blid
|
||||
DoorPart drid _ ->
|
||||
@@ -40,6 +43,79 @@ damageWall wlid dt w = fromMaybe (mempty,w) $ do
|
||||
& maybeDestroyDoor drid
|
||||
_ -> (mempty, w')
|
||||
|
||||
damageMachine :: Damage -> Int -> Int -> World -> (S.Set Int2, World)
|
||||
damageMachine dam x mcid w = case w ^? cWorld . lWorld . machines . ix mcid of
|
||||
Just mc | Just se <- mc ^? mcType . _McDamSensor
|
||||
, sensorTypeDamages (se ^. sensType) dam
|
||||
-> (mempty,mcDamSensorUpdate' (_dmAmount dam) se mc w)
|
||||
Just mc | McTurret{} <- mc ^. mcType
|
||||
, Electrical edam <- dam
|
||||
-> (mempty, w & cWorld . lWorld . machines . ix mcid . mcType . mctTurretStun %~ (min 100 . (+ edam)))
|
||||
Just mc | _mcHP mc < x -> destroyMachine' mc w
|
||||
_ -> (mempty, w & cWorld . lWorld . machines . ix mcid . mcHP -~ x)
|
||||
|
||||
mcDamSensorUpdate' :: Int -> DamageSensor -> Machine -> World -> World
|
||||
mcDamSensorUpdate' x se = senseDamage' x (damageTypeThreshold' (se ^. sensType))
|
||||
|
||||
senseDamage' :: Int -> Int -> Machine -> World -> World
|
||||
senseDamage' x threshold mc =
|
||||
(cWorld . lWorld . machines . ix mcid %~ upmc)
|
||||
. updatels
|
||||
where
|
||||
upmc =
|
||||
mcType
|
||||
. _McDamSensor
|
||||
. sensAmount
|
||||
%~ min (100 * threshold)
|
||||
. max 0
|
||||
. (+ newsense)
|
||||
mcid = _mcID mc
|
||||
newsense
|
||||
| x > 0 = x
|
||||
| otherwise = -5
|
||||
-- where
|
||||
-- f = sensorTypeDamages dt
|
||||
-- x = sum . map _dmAmount $ filter f (_mcDamage mc)
|
||||
ni = fromIntegral (mc ^?! mcType . _McDamSensor . sensAmount) / fromIntegral threshold
|
||||
updatels = fromMaybe id $ do
|
||||
lsid <- mc ^? mcMounts . ix OTLightSource
|
||||
return $ cWorld . lWorld . lightSources . ix lsid . lsParam . lsCol .~ V3 ni ni ni
|
||||
|
||||
damageTypeThreshold' :: SensorType -> Int
|
||||
damageTypeThreshold' = \case
|
||||
LaserSensor -> 1000
|
||||
ElectricSensor -> 500
|
||||
ThermalSensor -> 1000
|
||||
PhysicalSensor -> 1000
|
||||
|
||||
sensorTypeDamages :: SensorType -> Damage -> Bool
|
||||
sensorTypeDamages = \case
|
||||
LaserSensor -> \case
|
||||
Lasering{} -> True
|
||||
_ -> False
|
||||
ElectricSensor -> \case
|
||||
Electrical{} -> True
|
||||
_ -> False
|
||||
ThermalSensor -> \case
|
||||
Flaming{} -> True
|
||||
Sparking{} -> True
|
||||
Explosive{} -> True
|
||||
_ -> False
|
||||
PhysicalSensor -> \case
|
||||
Piercing{} -> True
|
||||
Blunt{} -> True
|
||||
Crushing{} -> True
|
||||
Explosive{} -> True
|
||||
_ -> False
|
||||
|
||||
destroyMachine' :: Machine -> World -> (S.Set Int2, World)
|
||||
destroyMachine' mc w = (js, destroyMachine mc w)
|
||||
where
|
||||
wlids = IS.toList $ mc ^. mcWallIDs
|
||||
f wlid = w ^?! cWorld . lWorld . walls . ix wlid . wlLine
|
||||
js = foldMap (S.fromList . uncurry (zoneOfSeg peZoneSize) . f) wlids
|
||||
|
||||
|
||||
-- block destruction is convoluted...
|
||||
damageBlock :: Material -> Int -> Int -> World -> (S.Set Int2, World)
|
||||
damageBlock = \case
|
||||
|
||||
@@ -185,6 +185,3 @@ isWalkable :: Point2 -> Point2 -> World -> Bool
|
||||
isWalkable p1 p2 w = isFlyable p1 p2 w && not (any f (w ^. cWorld . cliffs))
|
||||
where
|
||||
f = isJust . uncurry (intersectSegSeg p1 p2)
|
||||
--isWalkable p1 p2 w = isFlyable p1 p2 w && not (getAny $ foldMap f (w ^. cWorld . chasms))
|
||||
-- where
|
||||
-- f = foldMap (Any . isJust . uncurry (intersectSegSeg p1 p2)) . loopPairs
|
||||
|
||||
@@ -2680,7 +2680,7 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f
|
||||
baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f
|
||||
baseRodShape src/Dodge/Item/Draw/SPic.hs 405;" f
|
||||
baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f
|
||||
baseShoulder src/Dodge/Creature/Picture.hs 117;" f
|
||||
baseShoulder src/Dodge/Creature/Picture.hs 114;" f
|
||||
baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f
|
||||
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f
|
||||
baseStickSpread src/Dodge/HeldUse.hs 322;" f
|
||||
@@ -2800,15 +2800,16 @@ chaseCritInternal src/Dodge/Humanoid.hs 8;" f
|
||||
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f
|
||||
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f
|
||||
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f
|
||||
chasmRotate src/Dodge/Creature/Update.hs 140;" f
|
||||
chasmRotate src/Dodge/Creature/Update.hs 173;" f
|
||||
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 294;" f
|
||||
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 265;" f
|
||||
chasmTest src/Dodge/Creature/Update.hs 124;" f
|
||||
chasmTestCorpse src/Dodge/Creature/Update.hs 155;" f
|
||||
chasmTestLiving src/Dodge/Creature/Update.hs 137;" f
|
||||
chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f
|
||||
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
|
||||
checkConnection src/Dodge/Inventory/Swap.hs 66;" f
|
||||
checkDeath src/Dodge/Creature/Update.hs 74;" f
|
||||
checkDeath' src/Dodge/Creature/Update.hs 77;" f
|
||||
checkDeath src/Dodge/Creature/Update.hs 78;" f
|
||||
checkDeath' src/Dodge/Creature/Update.hs 81;" f
|
||||
checkEndGame src/Dodge/Update.hs 807;" f
|
||||
checkErrorGL src/Shader/Compile.hs 86;" f
|
||||
checkFBO src/Framebuffer/Check.hs 6;" f
|
||||
@@ -2854,7 +2855,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f
|
||||
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f
|
||||
clicker src/Dodge/Item/Scope.hs 88;" f
|
||||
clipV src/Geometry/Vector.hs 48;" f
|
||||
clipZoom src/Dodge/Update/Camera.hs 239;" f
|
||||
clipZoom src/Dodge/Update/Camera.hs 240;" f
|
||||
clockCycle src/Dodge/Clock.hs 7;" f
|
||||
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f
|
||||
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f
|
||||
@@ -2927,7 +2928,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 131;" f
|
||||
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
|
||||
corDoor src/Dodge/Room/Room.hs 398;" f
|
||||
cornerList src/Preload/Render.hs 236;" f
|
||||
corpseOrGib src/Dodge/Creature/Update.hs 92;" f
|
||||
corpseOrGib src/Dodge/Creature/Update.hs 98;" f
|
||||
corridor src/Dodge/Room/Corridor.hs 17;" f
|
||||
corridorBoss src/Dodge/LockAndKey.hs 133;" f
|
||||
corridorN src/Dodge/Room/Corridor.hs 57;" f
|
||||
@@ -2939,7 +2940,7 @@ crCamouflage src/Dodge/Creature/Picture.hs 33;" f
|
||||
crCanSeeCr src/Dodge/Creature/Test.hs 52;" f
|
||||
crCrSpring src/Dodge/Update.hs 919;" f
|
||||
crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f
|
||||
crDeathSounds src/Dodge/Creature/Vocalization.hs 44;" f
|
||||
crDeathSounds src/Dodge/Creature/Vocalization.hs 45;" f
|
||||
crDexterity src/Dodge/Creature/Statistics.hs 19;" f
|
||||
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f
|
||||
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f
|
||||
@@ -2972,11 +2973,11 @@ crShape src/Dodge/Creature/Shape.hs 8;" f
|
||||
crSpring src/Dodge/Update.hs 914;" f
|
||||
crStratConMatches src/Dodge/Creature/Test.hs 80;" f
|
||||
crStrength src/Dodge/Creature/Statistics.hs 29;" f
|
||||
crUpdate src/Dodge/Creature/Update.hs 67;" f
|
||||
crUpdate src/Dodge/Creature/Update.hs 71;" f
|
||||
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
|
||||
crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f
|
||||
crVocalizationSound src/Dodge/Creature/Vocalization.hs 15;" f
|
||||
crWarningSounds src/Dodge/Creature/Vocalization.hs 25;" f
|
||||
crVocalizationSound src/Dodge/Creature/Vocalization.hs 16;" f
|
||||
crWarningSounds src/Dodge/Creature/Vocalization.hs 26;" f
|
||||
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f
|
||||
crZoneSize src/Dodge/Zoning/Creature.hs 43;" f
|
||||
craftInfo src/Dodge/Item/Info.hs 169;" f
|
||||
@@ -3041,7 +3042,7 @@ dShadCol src/Dodge/Render/List.hs 208;" f
|
||||
damMatSideEffect src/Dodge/Material/Damage.hs 20;" f
|
||||
damThingHitWith src/Dodge/Damage.hs 72;" f
|
||||
damToExpBarrel src/Dodge/Barreloid.hs 53;" f
|
||||
damageBlock src/Dodge/Wall/Damage.hs 44;" f
|
||||
damageBlock src/Dodge/Wall/Damage.hs 59;" f
|
||||
damageCodeCommand src/Dodge/Terminal.hs 67;" f
|
||||
damageCrWl src/Dodge/Damage.hs 29;" f
|
||||
damageCrWlID src/Dodge/Damage.hs 23;" f
|
||||
@@ -3050,15 +3051,16 @@ damageDirection src/Dodge/Damage.hs 35;" f
|
||||
damageDirt src/Dodge/Material/Damage.hs 130;" f
|
||||
damageFlesh src/Dodge/Material/Damage.hs 97;" f
|
||||
damageGlass src/Dodge/Material/Damage.hs 156;" f
|
||||
damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f
|
||||
damageGlassBlock src/Dodge/Wall/Damage.hs 64;" f
|
||||
damageHP src/Dodge/Creature/Damage.hs 37;" f
|
||||
damageInCircle src/Dodge/Damage.hs 61;" f
|
||||
damageMachine src/Dodge/Wall/Damage.hs 45;" f
|
||||
damageMetal src/Dodge/Material/Damage.hs 65;" f
|
||||
damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f
|
||||
damageStone src/Dodge/Material/Damage.hs 33;" f
|
||||
damageThingHit src/Dodge/Bullet.hs 180;" f
|
||||
damageTypeThreshold src/Dodge/Machine/Update.hs 132;" f
|
||||
damageWall src/Dodge/Wall/Damage.hs 29;" f
|
||||
damageWall src/Dodge/Wall/Damage.hs 30;" f
|
||||
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
|
||||
dark src/Color.hs 135;" f
|
||||
darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f
|
||||
@@ -3069,9 +3071,9 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f
|
||||
deZoneWall src/Dodge/Zoning/Wall.hs 70;" f
|
||||
deadEndRoom src/Dodge/Room/Room.hs 259;" f
|
||||
deadFeet src/Dodge/Creature/Picture.hs 68;" f
|
||||
deadRot src/Dodge/Creature/Picture.hs 84;" f
|
||||
deadRot src/Dodge/Creature/Picture.hs 86;" f
|
||||
deadScalp src/Dodge/Creature/Picture.hs 81;" f
|
||||
deadUpperBody src/Dodge/Creature/Picture.hs 114;" f
|
||||
deadUpperBody src/Dodge/Creature/Picture.hs 111;" f
|
||||
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f
|
||||
debrisSPic src/Dodge/Prop/Draw.hs 16;" f
|
||||
debrisSize src/Dodge/Block/Debris.hs 83;" f
|
||||
@@ -3107,8 +3109,8 @@ defHeldItem src/Dodge/Default/Item.hs 9;" f
|
||||
defLSPic src/Dodge/LightSource/Draw.hs 10;" f
|
||||
defSPic src/Dodge/Item/Draw/SPic.hs 310;" f
|
||||
defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f
|
||||
defaultAimingCrit src/Dodge/Default/Creature.hs 107;" f
|
||||
defaultAudition src/Dodge/Default/Creature.hs 92;" f
|
||||
defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f
|
||||
defaultAudition src/Dodge/Default/Creature.hs 93;" f
|
||||
defaultAutoWall src/Dodge/Default/Wall.hs 32;" f
|
||||
defaultBlock src/Dodge/Default/Block.hs 5;" f
|
||||
defaultBounds src/Dodge/Data/Bounds.hs 18;" f
|
||||
@@ -3121,9 +3123,9 @@ defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f
|
||||
defaultClusterStatus src/Dodge/Default/Room.hs 37;" f
|
||||
defaultConfig src/Dodge/Data/Config.hs 151;" f
|
||||
defaultCreature src/Dodge/Default/Creature.hs 12;" f
|
||||
defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f
|
||||
defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" f
|
||||
defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f
|
||||
defaultDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f
|
||||
defaultDeathSounds src/Dodge/Creature/Vocalization.hs 55;" f
|
||||
defaultDirtBlock src/Dodge/Default/Block.hs 17;" f
|
||||
defaultDirtWall src/Dodge/Default/Wall.hs 47;" f
|
||||
defaultDoor src/Dodge/Default/Door.hs 5;" f
|
||||
@@ -3132,19 +3134,19 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
|
||||
defaultFlIt src/Dodge/Default.hs 27;" f
|
||||
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
|
||||
defaultHUD src/Dodge/Default/World.hs 170;" f
|
||||
defaultInanimate src/Dodge/Default/Creature.hs 62;" f
|
||||
defaultInanimate src/Dodge/Default/Creature.hs 63;" f
|
||||
defaultInput src/Dodge/Default/World.hs 12;" f
|
||||
defaultIntention src/Dodge/Default/Creature.hs 98;" f
|
||||
defaultInvSize src/Dodge/Default/Creature.hs 72;" f
|
||||
defaultIntention src/Dodge/Default/Creature.hs 99;" f
|
||||
defaultInvSize src/Dodge/Default/Creature.hs 73;" f
|
||||
defaultLDP src/Dodge/ListDisplayParams.hs 19;" f
|
||||
defaultLWorld src/Dodge/Default/World.hs 105;" f
|
||||
defaultMachine src/Dodge/Default.hs 30;" f
|
||||
defaultMachineWall src/Dodge/Default/Wall.hs 38;" f
|
||||
defaultPerceptionState src/Dodge/Default/Creature.hs 75;" f
|
||||
defaultPerceptionState src/Dodge/Default/Creature.hs 76;" f
|
||||
defaultProximitySensor src/Dodge/Default.hs 52;" f
|
||||
defaultRoom src/Dodge/Default/Room.hs 9;" f
|
||||
defaultTerminal src/Dodge/Default/Terminal.hs 8;" f
|
||||
defaultVision src/Dodge/Default/Creature.hs 85;" f
|
||||
defaultVision src/Dodge/Default/Creature.hs 86;" f
|
||||
defaultWall src/Dodge/Default/Wall.hs 15;" f
|
||||
defaultWindow src/Dodge/Default/Wall.hs 54;" f
|
||||
defaultWorld src/Dodge/Default/World.hs 32;" f
|
||||
@@ -3156,15 +3158,16 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f
|
||||
denormalEdges src/Polyhedra.hs 128;" f
|
||||
destroyAllInvItems src/Dodge/Inventory.hs 53;" f
|
||||
destroyBlock src/Dodge/Block.hs 17;" f
|
||||
destroyDoor src/Dodge/Wall/Damage.hs 69;" f
|
||||
destroyDoor src/Dodge/Wall/Damage.hs 84;" f
|
||||
destroyInvItem src/Dodge/Inventory.hs 40;" f
|
||||
destroyItem src/Dodge/Inventory.hs 62;" f
|
||||
destroyLSFlashAt src/Dodge/LightSource.hs 44;" f
|
||||
destroyMachine src/Dodge/Machine/Destroy.hs 13;" f
|
||||
destroyMachine' src/Dodge/Wall/Damage.hs 50;" f
|
||||
destroyMatS src/Dodge/Material/Sound.hs 7;" f
|
||||
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
|
||||
destroyMount src/Dodge/Wall/Damage.hs 90;" f
|
||||
destroyMounts src/Dodge/Wall/Damage.hs 87;" f
|
||||
destroyMount src/Dodge/Wall/Damage.hs 105;" f
|
||||
destroyMounts src/Dodge/Wall/Damage.hs 102;" f
|
||||
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
|
||||
detV src/Geometry/Vector.hs 94;" f
|
||||
detector src/Dodge/Item/Held/Utility.hs 27;" f
|
||||
@@ -3260,7 +3263,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
|
||||
doThrust src/Dodge/Projectile/Update.hs 132;" f
|
||||
doTimeScroll src/Dodge/Update.hs 212;" f
|
||||
doTmWdWd src/Dodge/WorldEffect.hs 104;" f
|
||||
doWallRotate src/Dodge/Update/Camera.hs 228;" f
|
||||
doWallRotate src/Dodge/Update/Camera.hs 229;" f
|
||||
doWdBl src/Dodge/WorldBool.hs 10;" f
|
||||
doWdCrBl src/Dodge/CreatureEffect.hs 18;" f
|
||||
doWdP2f src/Dodge/WdP2f.hs 10;" f
|
||||
@@ -3316,7 +3319,7 @@ drawDragSelected src/Dodge/Render/HUD.hs 144;" f
|
||||
drawDragSelecting src/Dodge/Render/HUD.hs 162;" f
|
||||
drawEmptySet src/Dodge/Render/Picture.hs 151;" f
|
||||
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
|
||||
drawEquipment src/Dodge/Creature/Picture.hs 128;" f
|
||||
drawEquipment src/Dodge/Creature/Picture.hs 125;" f
|
||||
drawExamineInventory src/Dodge/Render/HUD.hs 199;" f
|
||||
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
|
||||
drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f
|
||||
@@ -3403,7 +3406,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f
|
||||
drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f
|
||||
drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
|
||||
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f
|
||||
dropAll src/Dodge/Creature/Update.hs 121;" f
|
||||
dropAll src/Dodge/Creature/Update.hs 134;" f
|
||||
dropInventoryPath src/Dodge/HeldUse.hs 1346;" f
|
||||
dropItem src/Dodge/Creature/Action.hs 155;" f
|
||||
dropper src/Dodge/Item/Scope.hs 82;" f
|
||||
@@ -3491,13 +3494,13 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f
|
||||
extractRoomPos src/Dodge/RoomPos.hs 6;" f
|
||||
faceEdges src/Polyhedra.hs 62;" f
|
||||
facesToVF src/Polyhedra/Geodesic.hs 70;" f
|
||||
farWallDistDirection src/Dodge/Update/Camera.hs 250;" f
|
||||
farWallDistDirection src/Dodge/Update/Camera.hs 251;" f
|
||||
fdiv src/ShortShow.hs 41;" f
|
||||
feet src/Dodge/Creature/Picture.hs 51;" f
|
||||
filter3 src/FoldableHelp.hs 76;" f
|
||||
filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f
|
||||
findBlips src/Dodge/RadarSweep.hs 63;" f
|
||||
findBoundDists src/Dodge/Update/Camera.hs 257;" f
|
||||
findBoundDists src/Dodge/Update/Camera.hs 258;" f
|
||||
findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f
|
||||
findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f
|
||||
findIndex src/IntMapHelp.hs 86;" f
|
||||
@@ -3593,7 +3596,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
|
||||
geometryTests test/Spec.hs 17;" f
|
||||
geometryUnitTests test/Spec.hs 22;" f
|
||||
geqConstr src/SameConstr.hs 21;" f
|
||||
getAimZoom src/Dodge/Update/Camera.hs 150;" f
|
||||
getAimZoom src/Dodge/Update/Camera.hs 151;" f
|
||||
getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f
|
||||
getAttachedSFLink src/Dodge/HeldUse.hs 786;" f
|
||||
getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
|
||||
@@ -3711,7 +3714,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 90;" f
|
||||
healthTest src/Dodge/Room/LasTurret.hs 111;" f
|
||||
heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f
|
||||
heldAimStance src/Dodge/Item/AimStance.hs 24;" f
|
||||
heldAimZoom src/Dodge/Update/Camera.hs 156;" f
|
||||
heldAimZoom src/Dodge/Update/Camera.hs 157;" f
|
||||
heldEffect src/Dodge/HeldUse.hs 62;" f
|
||||
heldEffectMuzzles src/Dodge/HeldUse.hs 133;" f
|
||||
heldHandlePos src/Dodge/Item/HeldOffset.hs 84;" f
|
||||
@@ -4128,8 +4131,8 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f
|
||||
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
|
||||
maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
|
||||
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
|
||||
maybeDestroyBlock src/Dodge/Wall/Damage.hs 59;" f
|
||||
maybeDestroyDoor src/Dodge/Wall/Damage.hs 64;" f
|
||||
maybeDestroyBlock src/Dodge/Wall/Damage.hs 74;" f
|
||||
maybeDestroyDoor src/Dodge/Wall/Damage.hs 79;" f
|
||||
maybeExitCombine src/Dodge/Update/Input/InGame.hs 568;" f
|
||||
maybeOpenConsole src/Dodge/Update.hs 134;" f
|
||||
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
|
||||
@@ -4234,7 +4237,7 @@ moveToSideNthOutLink src/Dodge/Room/Warning.hs 102;" f
|
||||
moveWall src/Dodge/Wall/Move.hs 23;" f
|
||||
moveWallID src/Dodge/Wall/Move.hs 18;" f
|
||||
moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f
|
||||
moveZoomCamera src/Dodge/Update/Camera.hs 92;" f
|
||||
moveZoomCamera src/Dodge/Update/Camera.hs 93;" f
|
||||
mtTopLabels src/Dodge/Tree/Compose.hs 51;" f
|
||||
mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f
|
||||
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
|
||||
@@ -4424,7 +4427,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f
|
||||
pointerYourRootItem src/Dodge/Item/Location.hs 33;" f
|
||||
pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f
|
||||
pointsToPoly src/Geometry/ConvexPoly.hs 35;" f
|
||||
poisonSPic src/Dodge/Creature/Update.hs 117;" f
|
||||
poisonSPic src/Dodge/Creature/Update.hs 130;" f
|
||||
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
|
||||
poke34 src/Shader/Poke.hs 509;" f
|
||||
pokeArrayOff src/Shader/Poke.hs 521;" f
|
||||
@@ -4663,7 +4666,7 @@ renderListAt src/Dodge/Render/List.hs 177;" f
|
||||
renderShadows src/Render.hs 116;" f
|
||||
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f
|
||||
replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f
|
||||
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 66;" f
|
||||
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 67;" f
|
||||
resetPLUse src/Dodge/PlacementSpot.hs 94;" f
|
||||
resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f
|
||||
resetTerminal src/Dodge/WorldEffect.hs 160;" f
|
||||
@@ -4739,15 +4742,15 @@ rotate3 src/Geometry/Vector3D.hs 48;" f
|
||||
rotate3x src/Geometry/Vector3D.hs 60;" f
|
||||
rotate3y src/Geometry/Vector3D.hs 66;" f
|
||||
rotate3z src/Geometry/Vector3D.hs 54;" f
|
||||
rotateCamera src/Dodge/Update/Camera.hs 204;" f
|
||||
rotateCamera src/Dodge/Update/Camera.hs 205;" f
|
||||
rotateList src/Padding.hs 49;" f
|
||||
rotateSH src/Shape.hs 254;" f
|
||||
rotateSHq src/Shape.hs 163;" f
|
||||
rotateSHx src/Shape.hs 262;" f
|
||||
rotateSP src/ShapePicture.hs 57;" f
|
||||
rotateTo src/Polyhedra/Geodesic.hs 65;" f
|
||||
rotateTo8 src/Dodge/Update/Camera/Rotate.hs 5;" f
|
||||
rotateToOverlappingWall src/Dodge/Update/Camera.hs 216;" f
|
||||
rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f
|
||||
rotateToOverlappingWall src/Dodge/Update/Camera.hs 217;" f
|
||||
rotateToZ src/Quaternion.hs 35;" f
|
||||
rotateV src/Geometry/Vector.hs 106;" f
|
||||
rotateVAround src/Geometry/Vector.hs 113;" f
|
||||
@@ -4789,10 +4792,10 @@ scale3 src/Picture/Base.hs 137;" f
|
||||
scaleMat src/MatrixHelper.hs 71;" f
|
||||
scaleMatrix src/MatrixHelper.hs 68;" f
|
||||
scaleSH src/Shape.hs 266;" f
|
||||
scalp src/Dodge/Creature/Picture.hs 93;" f
|
||||
scalp src/Dodge/Creature/Picture.hs 95;" f
|
||||
scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f
|
||||
scodeToChar src/Dodge/ScodeToChar.hs 6;" f
|
||||
scorchSPic src/Dodge/Creature/Update.hs 114;" f
|
||||
scorchSPic src/Dodge/Creature/Update.hs 127;" f
|
||||
screenBox src/Dodge/Base/Window.hs 54;" f
|
||||
screenPolygon src/Dodge/Base/Window.hs 18;" f
|
||||
screenPolygonBord src/Dodge/Base/Window.hs 28;" f
|
||||
@@ -4871,7 +4874,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f
|
||||
setTile src/Dodge/Layout.hs 70;" f
|
||||
setTiles src/Dodge/Layout.hs 67;" f
|
||||
setTreeInts src/Dodge/Room/Tutorial.hs 93;" f
|
||||
setViewDistance src/Dodge/Update/Camera.hs 245;" f
|
||||
setViewDistance src/Dodge/Update/Camera.hs 246;" f
|
||||
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
|
||||
setViewport src/Dodge/Render.hs 448;" f
|
||||
setVol src/Dodge/Config.hs 47;" f
|
||||
@@ -4939,7 +4942,7 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f
|
||||
shortShow src/ShortShow.hs 7;" f
|
||||
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f
|
||||
shoulderHeight src/Dodge/Item/HeldOffset.hs 63;" f
|
||||
shoulderSH src/Dodge/Creature/Picture.hs 125;" f
|
||||
shoulderSH src/Dodge/Creature/Picture.hs 122;" f
|
||||
showAttachItem src/Dodge/Item/Display.hs 92;" f
|
||||
showEquipItem src/Dodge/Item/Display.hs 107;" f
|
||||
showInt src/Dodge/Item/Info.hs 75;" f
|
||||
@@ -5096,7 +5099,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f
|
||||
stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f
|
||||
stopAllSounds src/Sound.hs 127;" f
|
||||
stopBulletAt src/Dodge/Bullet.hs 200;" f
|
||||
stopPushing src/Dodge/Wall/Damage.hs 95;" f
|
||||
stopPushing src/Dodge/Wall/Damage.hs 110;" f
|
||||
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
|
||||
storageShape src/Dodge/Machine/Draw.hs 31;" f
|
||||
strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f
|
||||
@@ -5247,7 +5250,7 @@ topTestPart src/Dodge/TestString.hs 50;" f
|
||||
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
|
||||
torqueAmount src/Dodge/HeldUse.hs 584;" f
|
||||
torqueCr src/Dodge/WorldEffect.hs 87;" f
|
||||
torso src/Dodge/Creature/Picture.hs 103;" f
|
||||
torso src/Dodge/Creature/Picture.hs 100;" f
|
||||
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
|
||||
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
|
||||
tractorBeamAt src/Dodge/HeldUse.hs 831;" f
|
||||
@@ -5260,8 +5263,8 @@ transMat src/MatrixHelper.hs 87;" f
|
||||
transToHandle src/Dodge/Item/HeldOffset.hs 27;" f
|
||||
translate src/Picture/Base.hs 108;" f
|
||||
translate3 src/Picture/Base.hs 112;" f
|
||||
translateFloatingCamera src/Dodge/Update/Camera.hs 48;" f
|
||||
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 66;" f
|
||||
translateFloatingCamera src/Dodge/Update/Camera.hs 49;" f
|
||||
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 67;" f
|
||||
translateH src/Picture/Base.hs 104;" f
|
||||
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f
|
||||
translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f
|
||||
@@ -5360,18 +5363,17 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 484;" f
|
||||
updateBarrel src/Dodge/Barreloid.hs 44;" f
|
||||
updateBarreloid src/Dodge/Barreloid.hs 16;" f
|
||||
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
|
||||
updateBounds src/Dodge/Update/Camera.hs 267;" f
|
||||
updateBounds src/Dodge/Update/Camera.hs 268;" f
|
||||
updateBulVel src/Dodge/Bullet.hs 57;" f
|
||||
updateBullet src/Dodge/Bullet.hs 22;" f
|
||||
updateBullets src/Dodge/Update.hs 601;" f
|
||||
updateCamera src/Dodge/Update/Camera.hs 31;" f
|
||||
updateCamera src/Dodge/Update/Camera.hs 32;" f
|
||||
updateCloseObjects src/Dodge/Inventory.hs 115;" f
|
||||
updateCloud src/Dodge/Update.hs 836;" f
|
||||
updateClouds src/Dodge/Update.hs 705;" f
|
||||
updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f
|
||||
updateCombineSections src/Dodge/DisplayInventory.hs 47;" f
|
||||
updateCreature src/Dodge/Creature/Update.hs 36;" f
|
||||
updateCreature' src/Dodge/Creature/Update.hs 45;" f
|
||||
updateCreature src/Dodge/Creature/Update.hs 37;" f
|
||||
updateCreatureGroups src/Dodge/Update.hs 573;" f
|
||||
updateCreatureSoundPositions src/Dodge/Update.hs 552;" f
|
||||
updateCreatureStride src/Dodge/Update.hs 347;" f
|
||||
@@ -5397,7 +5399,7 @@ updateEnterRegex src/Dodge/Update/Input/InGame.hs 511;" f
|
||||
updateExpBarrel src/Dodge/Barreloid.hs 21;" f
|
||||
updateFlame src/Dodge/Flame.hs 19;" f
|
||||
updateFlames src/Dodge/Update.hs 693;" f
|
||||
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f
|
||||
updateFloatingCamera src/Dodge/Update/Camera.hs 37;" f
|
||||
updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f
|
||||
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f
|
||||
updateGas src/Dodge/Update.hs 858;" f
|
||||
@@ -5405,7 +5407,7 @@ updateGasses src/Dodge/Update.hs 708;" f
|
||||
updateGusts src/Dodge/Update.hs 820;" f
|
||||
updateIMl src/Dodge/Update.hs 567;" f
|
||||
updateIMl' src/Dodge/Update.hs 570;" f
|
||||
updateInGameCamera src/Dodge/Update/Camera.hs 84;" f
|
||||
updateInGameCamera src/Dodge/Update/Camera.hs 85;" f
|
||||
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 434;" f
|
||||
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
|
||||
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
|
||||
@@ -5420,6 +5422,7 @@ updateLaser src/Dodge/Laser/Update.hs 11;" f
|
||||
updateLasers src/Dodge/Update.hs 470;" f
|
||||
updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f
|
||||
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
|
||||
updateLivingCreature src/Dodge/Creature/Update.hs 47;" f
|
||||
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 447;" f
|
||||
updateMachine src/Dodge/Machine/Update.hs 25;" f
|
||||
updateMagnets src/Dodge/Update.hs 361;" f
|
||||
@@ -5434,7 +5437,7 @@ updateObjMapMaybe src/Dodge/Update.hs 578;" f
|
||||
updatePastWorlds src/Dodge/Update.hs 459;" f
|
||||
updatePreload src/Preload/Update.hs 21;" f
|
||||
updateProjectile src/Dodge/Projectile/Update.hs 26;" f
|
||||
updatePulse src/Dodge/Creature/Update.hs 147;" f
|
||||
updatePulse src/Dodge/Creature/Update.hs 180;" f
|
||||
updatePulseBall src/Dodge/Update.hs 484;" f
|
||||
updatePulseLaser src/Dodge/Update.hs 648;" f
|
||||
updatePulseLasers src/Dodge/Update.hs 479;" f
|
||||
@@ -5476,7 +5479,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f
|
||||
updateWheelEvents src/Dodge/Update.hs 449;" f
|
||||
updateWorldEventFlag src/Dodge/Update.hs 128;" f
|
||||
updateWorldEventFlags src/Dodge/Update.hs 116;" f
|
||||
upperBody src/Dodge/Creature/Picture.hs 121;" f
|
||||
upperBody src/Dodge/Creature/Picture.hs 118;" f
|
||||
upperBox src/Shape.hs 153;" f
|
||||
upperBoxHalf src/Shape.hs 219;" f
|
||||
upperBoxMT src/Shape.hs 144;" f
|
||||
@@ -5534,12 +5537,12 @@ verticalWire src/Dodge/Wire.hs 23;" f
|
||||
vgunMuzzles src/Dodge/HeldUse.hs 344;" f
|
||||
viewBoundaries src/Dodge/Debug/Picture.hs 332;" f
|
||||
viewClipBounds src/Dodge/Debug/Picture.hs 341;" f
|
||||
viewDistanceFromItems src/Dodge/Update/Camera.hs 201;" f
|
||||
viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f
|
||||
viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f
|
||||
violet src/Color.hs 48;" f
|
||||
visibleWalls src/Dodge/Base/Collide.hs 216;" f
|
||||
visionCheck src/Dodge/Creature/Perception.hs 152;" f
|
||||
vocalizationTest src/Dodge/Creature/Vocalization.hs 61;" f
|
||||
vocalizationTest src/Dodge/Creature/Vocalization.hs 62;" f
|
||||
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
|
||||
volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f
|
||||
walkNozzle src/Dodge/HeldUse.hs 807;" f
|
||||
@@ -5634,7 +5637,7 @@ you src/Dodge/Base/You.hs 13;" f
|
||||
youDropItem src/Dodge/Creature/Action.hs 177;" f
|
||||
yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f
|
||||
yourControl src/Dodge/Creature/YourControl.hs 28;" f
|
||||
yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f
|
||||
yourDefaultStrideLength src/Dodge/Default/Creature.hs 111;" f
|
||||
yourInfo src/Dodge/Creature/Info.hs 10;" f
|
||||
yourInv src/Dodge/Base/You.hs 28;" f
|
||||
yourRootItem src/Dodge/Base/You.hs 22;" f
|
||||
@@ -5674,7 +5677,7 @@ zonePn src/Dodge/Zoning/Pathing.hs 32;" f
|
||||
zoneWall src/Dodge/Zoning/Wall.hs 65;" f
|
||||
zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f
|
||||
zonesExtract src/Dodge/Zoning/Base.hs 62;" f
|
||||
zoomFloatingCamera src/Dodge/Update/Camera.hs 76;" f
|
||||
zoomFloatingCamera src/Dodge/Update/Camera.hs 77;" f
|
||||
zoomInLongGun src/Dodge/Update/Scroll.hs 101;" f
|
||||
zoomOutLongGun src/Dodge/Update/Scroll.hs 109;" f
|
||||
zoomScope src/Dodge/Item/Scope.hs 32;" f
|
||||
|
||||
Reference in New Issue
Block a user