Make Ignite tryget flammablecomp (#34970)
The flammable effect does it but we don't do it here for reasons. Sometimes this heisentests.
This commit is contained in:
@@ -38,7 +38,8 @@ namespace Content.Server.EntityEffects.Effects
|
|||||||
reagentArgs.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, quantity * multiplier, flammable);
|
reagentArgs.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, quantity * multiplier, flammable);
|
||||||
if (reagentArgs.Reagent != null)
|
if (reagentArgs.Reagent != null)
|
||||||
reagentArgs.Source?.RemoveReagent(reagentArgs.Reagent.ID, reagentArgs.Quantity);
|
reagentArgs.Source?.RemoveReagent(reagentArgs.Reagent.ID, reagentArgs.Quantity);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
args.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, multiplier, flammable);
|
args.EntityManager.System<FlammableSystem>().AdjustFireStacks(args.TargetEntity, multiplier, flammable);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Server.Atmos.Components;
|
||||||
using Content.Server.Atmos.EntitySystems;
|
using Content.Server.Atmos.EntitySystems;
|
||||||
using Content.Shared.Database;
|
using Content.Shared.Database;
|
||||||
using Content.Shared.EntityEffects;
|
using Content.Shared.EntityEffects;
|
||||||
@@ -19,13 +20,17 @@ public sealed partial class Ignite : EntityEffect
|
|||||||
|
|
||||||
public override void Effect(EntityEffectBaseArgs args)
|
public override void Effect(EntityEffectBaseArgs args)
|
||||||
{
|
{
|
||||||
|
if (!args.EntityManager.TryGetComponent(args.TargetEntity, out FlammableComponent? flammable))
|
||||||
|
return;
|
||||||
|
|
||||||
var flamSys = args.EntityManager.System<FlammableSystem>();
|
var flamSys = args.EntityManager.System<FlammableSystem>();
|
||||||
if (args is EntityEffectReagentArgs reagentArgs)
|
if (args is EntityEffectReagentArgs reagentArgs)
|
||||||
{
|
{
|
||||||
flamSys.Ignite(reagentArgs.TargetEntity, reagentArgs.OrganEntity ?? reagentArgs.TargetEntity);
|
flamSys.Ignite(reagentArgs.TargetEntity, reagentArgs.OrganEntity ?? reagentArgs.TargetEntity, flammable: flammable);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
flamSys.Ignite(args.TargetEntity, args.TargetEntity);
|
flamSys.Ignite(args.TargetEntity, args.TargetEntity, flammable: flammable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,11 @@ public sealed class TileEntityEffectSystem : EntitySystem
|
|||||||
private void OnTileStepTriggered(Entity<TileEntityEffectComponent> ent, ref StepTriggeredOffEvent args)
|
private void OnTileStepTriggered(Entity<TileEntityEffectComponent> ent, ref StepTriggeredOffEvent args)
|
||||||
{
|
{
|
||||||
var otherUid = args.Tripper;
|
var otherUid = args.Tripper;
|
||||||
|
var effectArgs = new EntityEffectBaseArgs(otherUid, EntityManager);
|
||||||
|
|
||||||
foreach (var effect in ent.Comp.Effects)
|
foreach (var effect in ent.Comp.Effects)
|
||||||
{
|
{
|
||||||
effect.Effect(new EntityEffectBaseArgs(otherUid, EntityManager));
|
effect.Effect(effectArgs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user