using System; namespace ACE.Server.Entity.Actions { public class LoopAction : ActionEventBase { public Func Condition { get; } public ActionChain Body { get; } public LoopAction(IActor conditionActor, Func condition, ActionChain body) { Body = body; Condition = condition; body.AddAction(conditionActor, this); } public override Tuple Act() { if (Condition()) return new Tuple(Body.FirstElement.Actor, Body.FirstElement.Action); return base.Act(); } } }