Fix defibs resetting rot timer + slimes not having perishable (#23340)
* Fix defibs resetting rot timer + slimes not having perishable * fix the sound too
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
- FootstepSound
|
||||
- DoorBumpOpener
|
||||
- SpiderCraft
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -284,6 +284,7 @@
|
||||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike # TODO human.
|
||||
spawned:
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
Brute:
|
||||
sprite: Mobs/Effects/brute_damage.rsi
|
||||
color: "#75b1f0"
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
- type: Body
|
||||
prototype: Dwarf
|
||||
requiredLegs: 2
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: full
|
||||
- type: Thirst
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
speechVerb: Moth
|
||||
- type: TypingIndicator
|
||||
proto: moth
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -21,7 +21,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:
|
||||
|
||||
Reference in New Issue
Block a user