Modify damage logging. (#5579)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
using System;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Damage.Components;
|
||||
using Content.Server.Stunnable;
|
||||
using Content.Server.Stunnable.Components;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Audio;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Stunnable;
|
||||
@@ -23,6 +25,7 @@ namespace Content.Server.Damage.Systems
|
||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
|
||||
[Dependency] private readonly StunSystem _stunSystem = default!;
|
||||
[Dependency] private readonly AdminLogSystem _logSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -50,7 +53,11 @@ namespace Content.Server.Damage.Systems
|
||||
_stunSystem.TryStun(uid, TimeSpan.FromSeconds(component.StunSeconds));
|
||||
|
||||
var damageScale = (speed / component.MinimumSpeed) * component.Factor;
|
||||
_damageableSystem.TryChangeDamage(uid, component.Damage * damageScale);
|
||||
|
||||
var dmg = _damageableSystem.TryChangeDamage(uid, component.Damage * damageScale);
|
||||
|
||||
if (dmg != null)
|
||||
_logSystem.Add(LogType.Damaged, $"{component.Owner} took {dmg.Total} damage from a high speed collision");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Damage.Components;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Throwing;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -9,6 +11,7 @@ namespace Content.Server.Damage.Systems
|
||||
public sealed class DamageOnLandSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
|
||||
[Dependency] private readonly AdminLogSystem _logSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -18,7 +21,11 @@ namespace Content.Server.Damage.Systems
|
||||
|
||||
private void DamageOnLand(EntityUid uid, DamageOnLandComponent component, LandEvent args)
|
||||
{
|
||||
_damageableSystem.TryChangeDamage(uid, component.Damage, component.IgnoreResistances);
|
||||
var dmg = _damageableSystem.TryChangeDamage(uid, component.Damage, component.IgnoreResistances);
|
||||
if (dmg == null)
|
||||
return;
|
||||
|
||||
_logSystem.Add(LogType.Landed, $"{component.Owner} received {dmg.Total} damage from landing");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Damage.Components;
|
||||
using Content.Server.Tools.Components;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Interaction;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -10,6 +12,7 @@ namespace Content.Server.Damage.Systems
|
||||
public class DamageOnToolInteractSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
|
||||
[Dependency] private readonly AdminLogSystem _logSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -27,18 +30,25 @@ namespace Content.Server.Damage.Systems
|
||||
&& args.Used.TryGetComponent<WelderComponent>(out var welder)
|
||||
&& welder.Lit)
|
||||
{
|
||||
_damageableSystem.TryChangeDamage(args.Target.Uid, weldingDamage);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
var dmg = _damageableSystem.TryChangeDamage(args.Target.Uid, weldingDamage);
|
||||
|
||||
if (component.DefaultDamage is {} damage
|
||||
if (dmg != null)
|
||||
_logSystem.Add(LogType.Damaged,
|
||||
$"{args.User} used {args.Used} as a welder to deal {dmg.Total} damage to {args.Target}");
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
else if (component.DefaultDamage is {} damage
|
||||
&& args.Used.TryGetComponent<ToolComponent>(out var tool)
|
||||
&& tool.Qualities.ContainsAny(component.Tools))
|
||||
{
|
||||
_damageableSystem.TryChangeDamage(args.Target.Uid, damage);
|
||||
var dmg = _damageableSystem.TryChangeDamage(args.Target.Uid, damage);
|
||||
|
||||
if (dmg != null)
|
||||
_logSystem.Add(LogType.Damaged,
|
||||
$"{args.User} used {args.Used} as a tool to deal {dmg.Total} damage to {args.Target}");
|
||||
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Damage.Components;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Throwing;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -9,7 +11,8 @@ namespace Content.Server.Damage.Systems
|
||||
public class DamageOtherOnHitSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
|
||||
|
||||
[Dependency] private readonly AdminLogSystem _logSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<DamageOtherOnHitComponent, ThrowDoHitEvent>(OnDoHit);
|
||||
@@ -17,7 +20,9 @@ namespace Content.Server.Damage.Systems
|
||||
|
||||
private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args)
|
||||
{
|
||||
_damageableSystem.TryChangeDamage(args.Target.Uid, component.Damage, component.IgnoreResistances);
|
||||
var dmg = _damageableSystem.TryChangeDamage(args.Target.Uid, component.Damage, component.IgnoreResistances);
|
||||
if (dmg != null)
|
||||
_logSystem.Add(LogType.ThrowHit, $"{args.Target} received {dmg.Total} damage from collision");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user