diff --git a/data/sound/gut1.QWLPH.200.wav b/data/sound/gut1.QWLPH.200.wav index b7a5de5ea..79c891c7e 100644 Binary files a/data/sound/gut1.QWLPH.200.wav and b/data/sound/gut1.QWLPH.200.wav differ diff --git a/data/sound/gut2.CRNCH.200.wav b/data/sound/gut2.CRNCH.200.wav index bd9f22da7..75f8aef74 100644 Binary files a/data/sound/gut2.CRNCH.200.wav and b/data/sound/gut2.CRNCH.200.wav differ diff --git a/data/sound/gut3.SQWCH.200.wav b/data/sound/gut3.SQWCH.200.wav index 7d92f2024..48ea7d66d 100644 Binary files a/data/sound/gut3.SQWCH.200.wav and b/data/sound/gut3.SQWCH.200.wav differ diff --git a/data/sound/gut4.SKREL.200.wav b/data/sound/gut4.SKREL.200.wav index 9f041bc01..730e14806 100644 Binary files a/data/sound/gut4.SKREL.200.wav and b/data/sound/gut4.SKREL.200.wav differ diff --git a/data/sound/gut5.SQWLTCH.200.wav b/data/sound/gut5.SQWLTCH.200.wav index 386c9e621..56b959839 100644 Binary files a/data/sound/gut5.SQWLTCH.200.wav and b/data/sound/gut5.SQWLTCH.200.wav differ diff --git a/data/sound/gut6.CRSKRL.200.wav b/data/sound/gut6.CRSKRL.200.wav index 320549758..7627479d5 100644 Binary files a/data/sound/gut6.CRSKRL.200.wav and b/data/sound/gut6.CRSKRL.200.wav differ diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index a6a79c2f6..fd3f51558 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -81,11 +81,10 @@ 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 -> + HP x | x > -200 && _crDeathTimer cr > 0 -> w & tocr . crDamage .~ [] - & tocr . crDeathTimer +~ 1 + & tocr . crDeathTimer -~ 1 HP _ -> w & dropAll cr -- the order of these is possibly important @@ -120,8 +119,7 @@ corpseOrGib cr = case cr ^? crDamage . to maxDamageType . _Just . _1 of return $ w & soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing - & randGen - .~ g + & randGen .~ g cid = cr ^. crID sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x thecorpse = makeCorpse cr diff --git a/src/Dodge/Creature/Vocalization.hs b/src/Dodge/Creature/Vocalization.hs index 3811cc05b..bf65fe1bd 100644 --- a/src/Dodge/Creature/Vocalization.hs +++ b/src/Dodge/Creature/Vocalization.hs @@ -56,7 +56,14 @@ 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 diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index bc7efb7cb..54f3e9f74 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -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 diff --git a/tags b/tags index 94dedcd9d..8e36e2cdf 100644 --- a/tags +++ b/tags @@ -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 161;" f +chasmRotate src/Dodge/Creature/Update.hs 177;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 294;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 265;" f -chasmTest src/Dodge/Creature/Update.hs 142;" f +chasmTestCorpse src/Dodge/Creature/Update.hs 158;" f +chasmTestLiving src/Dodge/Creature/Update.hs 139;" 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 77;" f -checkDeath' src/Dodge/Creature/Update.hs 80;" 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 @@ -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 102;" f +corpseOrGib src/Dodge/Creature/Update.hs 99;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 57;" f @@ -2972,7 +2973,7 @@ 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 70;" 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 @@ -3403,7 +3404,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 139;" f +dropAll src/Dodge/Creature/Update.hs 136;" f dropInventoryPath src/Dodge/HeldUse.hs 1346;" f dropItem src/Dodge/Creature/Action.hs 155;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -4424,7 +4425,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 135;" f +poisonSPic src/Dodge/Creature/Update.hs 132;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 509;" f pokeArrayOff src/Shader/Poke.hs 521;" f @@ -4792,7 +4793,7 @@ scaleSH src/Shape.hs 266;" f scalp src/Dodge/Creature/Picture.hs 93;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 132;" f +scorchSPic src/Dodge/Creature/Update.hs 129;" 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 @@ -5371,7 +5372,6 @@ 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 37;" f -updateCreature' src/Dodge/Creature/Update.hs 46;" f updateCreatureGroups src/Dodge/Update.hs 573;" f updateCreatureSoundPositions src/Dodge/Update.hs 552;" f updateCreatureStride src/Dodge/Update.hs 347;" f @@ -5420,6 +5420,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 +5435,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 168;" f +updatePulse src/Dodge/Creature/Update.hs 184;" f updatePulseBall src/Dodge/Update.hs 484;" f updatePulseLaser src/Dodge/Update.hs 648;" f updatePulseLasers src/Dodge/Update.hs 479;" f