public void HandleAreaEffectDestroyed(AreaEffectEntityData areaEffect) { Log.Write($"HandleAreaEffectDestroyed({areaEffect.Blueprint.name})"); var caster = areaEffect.Context.MaybeCaster; if (caster?.IsPlayerFaction == true && DismissAreaEffectLogic.GetCasterAreaEffects(caster).All(a => a == areaEffect)) { caster.Descriptor.RemoveFact(dismiss); } }
public void HandleAreaEffectSpawned(AreaEffectEntityData areaEffect) { Log.Write($"HandleAreaEffectSpawned({areaEffect.Blueprint.name})"); var caster = areaEffect.Context.MaybeCaster; if (caster?.IsPlayerFaction == true && DismissAreaEffectLogic.IsAreaEffectSpell(areaEffect) && !caster.Descriptor.HasFact(dismiss)) { caster.Descriptor.AddFact(dismiss); } }
public override void RunAction() { var context = Context.SourceAbilityContext; if (context == null) { return; } DismissAreaEffectLogic.EndTargetAreaEffect(context.Caster, Target); }