Make some damage sources not cancel do afters (#24635)

- poison chemicals (HealthChange effect)
- being on fire
- guardians transferring damage to owner
This commit is contained in:
Pieter-Jan Briers
2024-01-28 00:51:54 +01:00
committed by GitHub
parent dfa10be890
commit 3e3cb10a96
3 changed files with 11 additions and 3 deletions

View File

@@ -402,7 +402,7 @@ namespace Content.Server.Atmos.EntitySystems
if (TryComp(uid, out TemperatureComponent? temp)) if (TryComp(uid, out TemperatureComponent? temp))
_temperatureSystem.ChangeHeat(uid, 12500 * damageScale, false, temp); _temperatureSystem.ChangeHeat(uid, 12500 * damageScale, false, temp);
_damageableSystem.TryChangeDamage(uid, flammable.Damage * damageScale); _damageableSystem.TryChangeDamage(uid, flammable.Damage * damageScale, interruptsDoAfters: false);
AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable); AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable);
} }

View File

@@ -115,7 +115,11 @@ namespace Content.Server.Chemistry.ReagentEffects
var scale = ScaleByQuantity ? args.Quantity : FixedPoint2.New(1); var scale = ScaleByQuantity ? args.Quantity : FixedPoint2.New(1);
scale *= args.Scale; scale *= args.Scale;
args.EntityManager.System<DamageableSystem>().TryChangeDamage(args.SolutionEntity, Damage * scale, IgnoreResistances); args.EntityManager.System<DamageableSystem>().TryChangeDamage(
args.SolutionEntity,
Damage * scale,
IgnoreResistances,
interruptsDoAfters: false);
} }
} }
} }

View File

@@ -262,7 +262,11 @@ namespace Content.Server.Guardian
if (args.DamageDelta == null || component.Host == null || component.DamageShare > 0) if (args.DamageDelta == null || component.Host == null || component.DamageShare > 0)
return; return;
_damageSystem.TryChangeDamage(component.Host, args.DamageDelta * component.DamageShare, origin: args.Origin); _damageSystem.TryChangeDamage(
component.Host,
args.DamageDelta * component.DamageShare,
origin: args.Origin,
interruptsDoAfters: false);
_popupSystem.PopupEntity(Loc.GetString("guardian-entity-taking-damage"), component.Host.Value, component.Host.Value); _popupSystem.PopupEntity(Loc.GetString("guardian-entity-taking-damage"), component.Host.Value, component.Host.Value);
} }