Fix defibs resetting rot timer + slimes not having perishable (#23340)
* Fix defibs resetting rot timer + slimes not having perishable * fix the sound too (cherry picked from commit 8d9a76c95d25e5bc26c897e61ec9702141afed7a)
This commit is contained in:
parent
eadbf3daa1
commit
6e8c4009b4
|
|
@ -214,6 +214,7 @@ public sealed class DefibrillatorSystem : EntitySystem
|
|||
|
||||
ICommonSession? session = null;
|
||||
|
||||
var dead = true;
|
||||
if (_rotting.IsRotten(target))
|
||||
{
|
||||
_chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-rotten"),
|
||||
|
|
@ -223,9 +224,16 @@ public sealed class DefibrillatorSystem : EntitySystem
|
|||
{
|
||||
if (_mobState.IsDead(target, mob))
|
||||
_damageable.TryChangeDamage(target, component.ZapHeal, true, origin: uid);
|
||||
_mobState.ChangeMobState(target, MobState.Critical, mob, uid);
|
||||
|
||||
if (_mind.TryGetMind(target, out var mindId, out var mind) &&
|
||||
if (_mobThreshold.TryGetThresholdForState(target, MobState.Dead, out var threshold) &&
|
||||
TryComp<DamageableComponent>(target, out var damageableComponent) &&
|
||||
damageableComponent.TotalDamage < threshold)
|
||||
{
|
||||
_mobState.ChangeMobState(target, MobState.Critical, mob, uid);
|
||||
dead = false;
|
||||
}
|
||||
|
||||
if (_mind.TryGetMind(target, out _, out var mind) &&
|
||||
mind.Session is { } playerSession)
|
||||
{
|
||||
session = playerSession;
|
||||
|
|
@ -242,7 +250,7 @@ public sealed class DefibrillatorSystem : EntitySystem
|
|||
}
|
||||
}
|
||||
|
||||
var sound = _mobState.IsDead(target, mob) || session == null
|
||||
var sound = dead || session == null
|
||||
? component.FailureSound
|
||||
: component.SuccessSound;
|
||||
_audio.PlayPvs(sound, uid);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
- FootstepSound
|
||||
- DoorBumpOpener
|
||||
- SpiderCraft
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -287,6 +287,7 @@
|
|||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike # TODO human.
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
Brute:
|
||||
sprite: Mobs/Effects/brute_damage.rsi
|
||||
color: "#75b1f0"
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
- type: Body
|
||||
prototype: Dwarf
|
||||
requiredLegs: 2
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
state: full
|
||||
- type: Thirst
|
||||
- type: Carriable # Carrying system from nyanotrasen.
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
speechVerb: Moth
|
||||
- type: TypingIndicator
|
||||
proto: moth
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
- type: Body
|
||||
prototype: Reptilian
|
||||
requiredLegs: 2
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@
|
|||
- type: Inventory
|
||||
speciesId: vox
|
||||
- type: InventorySlots
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
|
|
|||
Loading…
Reference in New Issue