private IEnumerator ExecuteInterval(float interval, ModifierContext context) { while (true) { ExecuteCommands(context); yield return(new WaitForLogicSeconds(interval)); } }
public override void Execute(ModifierContext context) { foreach (var modifier in modifiers) { modifier.Execute(context); } if (m_Duration > 0) { m_AutoKill = AutoKill(); Game.Instance.coroutineManager.StartLogic(m_AutoKill); } }
protected void ExecuteCommands(ModifierContext context) { if (m_Commands != null) { var ctx = new AbilityCommandContext { caster = context.caster, target = context.owner }; foreach (var cmd in m_Commands) { cmd.Execute(ctx); } } }
public abstract void Execute(ModifierContext context);
public override void Execute(ModifierContext context) { m_Context = context; }
public override void Execute(ModifierContext context) { ExecuteCommands(context); }
public override void Execute(ModifierContext context) { m_IntervalEnumrator = ExecuteInterval(m_Interval, context); Game.Instance.coroutineManager.StartLogic(m_IntervalEnumrator); }