Log a lot less reagent effects (#5572)

This commit is contained in:
mirrorcult
2021-11-27 00:31:56 -07:00
committed by GitHub
parent bf30f82ff5
commit f697bf413c
9 changed files with 58 additions and 20 deletions

View File

@@ -160,12 +160,15 @@ namespace Content.Server.Body.Systems
if (!effect.ShouldApply(args, _random)) if (!effect.ShouldApply(args, _random))
continue; continue;
if (effect.ShouldLog)
{
var entity = EntityManager.GetEntity(args.SolutionEntity); var entity = EntityManager.GetEntity(args.SolutionEntity);
_logSystem.Add(LogType.ReagentEffect, LogImpact.Low, _logSystem.Add(LogType.ReagentEffect, effect.LogImpact,
$"Metabolism effect {effect.GetType().Name} of reagent {args.Reagent.Name:reagent} applied on entity {entity} at {entity.Transform.Coordinates}"); $"Metabolism effect {effect.GetType().Name} of reagent {args.Reagent.Name:reagent} applied on entity {entity} at {entity.Transform.Coordinates}");
effect.Effect(args); effect.Effect(args);
} }
} }
}
// remove a certain amount of reagent // remove a certain amount of reagent
if (mostToRemove > FixedPoint2.Zero) if (mostToRemove > FixedPoint2.Zero)

View File

@@ -2,6 +2,7 @@
using Content.Server.Chemistry.Components; using Content.Server.Chemistry.Components;
using Content.Server.Chemistry.EntitySystems; using Content.Server.Chemistry.EntitySystems;
using Content.Server.Coordinates.Helpers; using Content.Server.Coordinates.Helpers;
using Content.Shared.Administration.Logs;
using Content.Shared.Audio; using Content.Shared.Audio;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reaction;
@@ -78,6 +79,9 @@ namespace Content.Server.Chemistry.ReactionEffects
/// </summary> /// </summary>
[DataField("sound", required: true)] private SoundSpecifier _sound = default!; [DataField("sound", required: true)] private SoundSpecifier _sound = default!;
public override bool ShouldLog => true;
public override LogImpact LogImpact => LogImpact.High;
void ISerializationHooks.AfterDeserialization() void ISerializationHooks.AfterDeserialization()
{ {
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);

View File

@@ -1,6 +1,7 @@
using System; using System;
using Content.Server.Chemistry.Components.SolutionManager; using Content.Server.Chemistry.Components.SolutionManager;
using Content.Server.Explosion.EntitySystems; using Content.Server.Explosion.EntitySystems;
using Content.Shared.Administration.Logs;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Serialization.Manager.Attributes;
@@ -26,6 +27,9 @@ namespace Content.Server.Chemistry.ReactionEffects
/// </summary> /// </summary>
[DataField("maxScale")] private float _maxScale = 1; [DataField("maxScale")] private float _maxScale = 1;
public override bool ShouldLog => true;
public override LogImpact LogImpact => LogImpact.High;
public override void Effect(ReagentEffectArgs args) public override void Effect(ReagentEffectArgs args)
{ {
var floatIntensity = (float) args.Quantity; var floatIntensity = (float) args.Quantity;

View File

@@ -15,6 +15,8 @@ public class Electrocute : ReagentEffect
[DataField("electrocuteDamageScale")] public int ElectrocuteDamageScale = 5; [DataField("electrocuteDamageScale")] public int ElectrocuteDamageScale = 5;
public override bool ShouldLog => true;
public override void Effect(ReagentEffectArgs args) public override void Effect(ReagentEffectArgs args)
{ {
EntitySystem.Get<ElectrocutionSystem>().TryDoElectrocution(args.SolutionEntity, null, EntitySystem.Get<ElectrocutionSystem>().TryDoElectrocution(args.SolutionEntity, null,

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Server.Atmos.Components; using Content.Server.Atmos.Components;
using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.EntitySystems;
using Content.Shared.Administration.Logs;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
@@ -14,6 +15,9 @@ namespace Content.Server.Chemistry.ReagentEffects
[UsedImplicitly] [UsedImplicitly]
public class FlammableReaction : ReagentEffect public class FlammableReaction : ReagentEffect
{ {
public override bool ShouldLog => true;
public override LogImpact LogImpact => LogImpact.Medium;
public override void Effect(ReagentEffectArgs args) public override void Effect(ReagentEffectArgs args)
{ {
if (!args.EntityManager.TryGetComponent(args.SolutionEntity, out FlammableComponent? flammable)) return; if (!args.EntityManager.TryGetComponent(args.SolutionEntity, out FlammableComponent? flammable)) return;

View File

@@ -114,12 +114,15 @@ namespace Content.Shared.Chemistry.Reaction
if (!effect.ShouldApply(args)) if (!effect.ShouldApply(args))
continue; continue;
if (effect.ShouldLog)
{
var entity = EntityManager.GetEntity(args.SolutionEntity); var entity = EntityManager.GetEntity(args.SolutionEntity);
_logSystem.Add(LogType.ReagentEffect, LogImpact.Low, _logSystem.Add(LogType.ReagentEffect, effect.LogImpact,
$"Reaction effect {effect.GetType().Name} of reaction ${reaction.ID:reaction} applied on entity {entity} at {entity.Transform.Coordinates}"); $"Reaction effect {effect.GetType().Name} of reaction ${reaction.ID:reaction} applied on entity {entity} at {entity.Transform.Coordinates}");
effect.Effect(args); effect.Effect(args);
} }
} }
}
/// <summary> /// <summary>
/// Performs all chemical reactions that can be run on a solution. /// Performs all chemical reactions that can be run on a solution.

View File

@@ -61,13 +61,16 @@ namespace Content.Shared.Chemistry
if (!effect.ShouldApply(args, _robustRandom)) if (!effect.ShouldApply(args, _robustRandom))
continue; continue;
if (effect.ShouldLog)
{
var entity = EntityManager.GetEntity(args.SolutionEntity); var entity = EntityManager.GetEntity(args.SolutionEntity);
_logSystem.Add(LogType.ReagentEffect, LogImpact.Medium, _logSystem.Add(LogType.ReagentEffect, effect.LogImpact,
$"Reactive effect {effect.GetType().Name} of reagent {reagent.ID:reagent} with method {method} applied on entity {entity} at {entity.Transform.Coordinates}"); $"Reactive effect {effect.GetType().Name} of reagent {reagent.ID:reagent} with method {method} applied on entity {entity} at {entity.Transform.Coordinates}");
effect.Effect(args); effect.Effect(args);
} }
} }
} }
}
// Then, check if the prototype has any effects it can apply as well. // Then, check if the prototype has any effects it can apply as well.
if (reactive.Reactions != null) if (reactive.Reactions != null)
@@ -85,8 +88,10 @@ namespace Content.Shared.Chemistry
if (!effect.ShouldApply(args, _robustRandom)) if (!effect.ShouldApply(args, _robustRandom))
continue; continue;
if (effect.ShouldLog)
{
var entity = EntityManager.GetEntity(args.SolutionEntity); var entity = EntityManager.GetEntity(args.SolutionEntity);
_logSystem.Add(LogType.ReagentEffect, LogImpact.Low, _logSystem.Add(LogType.ReagentEffect, effect.LogImpact,
$"Reactive effect {effect.GetType().Name} of {entity} using reagent {reagent.ID} with method {method} at {entity.Transform.Coordinates}"); $"Reactive effect {effect.GetType().Name} of {entity} using reagent {reagent.ID} with method {method} at {entity.Transform.Coordinates}");
effect.Effect(args); effect.Effect(args);
} }
@@ -94,4 +99,5 @@ namespace Content.Shared.Chemistry
} }
} }
} }
}
} }

View File

@@ -31,6 +31,15 @@ namespace Content.Shared.Chemistry.Reagent
[DataField("probability")] [DataField("probability")]
public float Probability = 1.0f; public float Probability = 1.0f;
[DataField("logImpact")]
public virtual LogImpact LogImpact { get; } = LogImpact.Low;
/// <summary>
/// Should this reagent effect log at all?
/// </summary>
[DataField("shouldLog")]
public virtual bool ShouldLog { get; } = false;
public abstract void Effect(ReagentEffectArgs args); public abstract void Effect(ReagentEffectArgs args);
} }

View File

@@ -120,13 +120,16 @@ namespace Content.Shared.Chemistry.Reagent
if (!plantMetabolizable.ShouldApply(args, random)) if (!plantMetabolizable.ShouldApply(args, random))
continue; continue;
if (plantMetabolizable.ShouldLog)
{
var entity = entMan.GetEntity(args.SolutionEntity); var entity = entMan.GetEntity(args.SolutionEntity);
EntitySystem.Get<SharedAdminLogSystem>().Add(LogType.ReagentEffect, LogImpact.Low, EntitySystem.Get<SharedAdminLogSystem>().Add(LogType.ReagentEffect, plantMetabolizable.LogImpact,
$"Plant metabolism effect {plantMetabolizable.GetType().Name:effect} of reagent {ID} applied on entity {entity} at {entity.Transform.Coordinates}"); $"Plant metabolism effect {plantMetabolizable.GetType().Name:effect} of reagent {ID} applied on entity {entity} at {entity.Transform.Coordinates}");
plantMetabolizable.Effect(args); plantMetabolizable.Effect(args);
} }
} }
} }
}
[DataDefinition] [DataDefinition]
public class ReagentEffectsEntry public class ReagentEffectsEntry