reagentArgs.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, quantity * multiplier, flammable);
if (reagentArgs.Reagent != null)
reagentArgs.Source?.RemoveReagent(reagentArgs.Reagent.ID, reagentArgs.Quantity);
- } else
+ }
+ else
{
args.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, multiplier, flammable);
}
+using Content.Server.Atmos.Components;
using Content.Server.Atmos.EntitySystems;
using Content.Shared.Database;
using Content.Shared.EntityEffects;
public override void Effect(EntityEffectBaseArgs args)
{
+ if (!args.EntityManager.TryGetComponent(args.TargetEntity, out FlammableComponent? flammable))
+ return;
+
var flamSys = args.EntityManager.System<FlammableSystem>();
if (args is EntityEffectReagentArgs reagentArgs)
{
- flamSys.Ignite(reagentArgs.TargetEntity, reagentArgs.OrganEntity ?? reagentArgs.TargetEntity);
- } else
+ flamSys.Ignite(reagentArgs.TargetEntity, reagentArgs.OrganEntity ?? reagentArgs.TargetEntity, flammable: flammable);
+ }
+ else
{
- flamSys.Ignite(args.TargetEntity, args.TargetEntity);
+ flamSys.Ignite(args.TargetEntity, args.TargetEntity, flammable: flammable);
}
}
}
private void OnTileStepTriggered(Entity<TileEntityEffectComponent> ent, ref StepTriggeredOffEvent args)
{
var otherUid = args.Tripper;
+ var effectArgs = new EntityEffectBaseArgs(otherUid, EntityManager);
foreach (var effect in ent.Comp.Effects)
{
- effect.Effect(new EntityEffectBaseArgs(otherUid, EntityManager));
+ effect.Effect(effectArgs);
}
}
}