private void HandleEffectTasks() { EffectTask[] tasks = _mailbox.GetSubscribedTasksForType <EffectTask>(this); for (int i = 0; i < tasks.Length; i++) { EffectTask task = tasks[i]; task.IsFinished = true; _mailbox.RemoveTask(task); switch (task.Type) { case EffectType.Death: _effectsManager.CreateDeathEffect(task.Position); break; case EffectType.Portal: _effectsManager.CreatePortalEffect(task.Position); break; case EffectType.Spawn: _effectsManager.CreateSpawnEffect(task.Position); break; case EffectType.Attack: _effectsManager.CreateAttackEffect(task.Position); break; } } }
public void AddTask(float delay, System.Action<object> callback, object param = null) { EffectTask task = new EffectTask(); task.Delay = delay; task.Callback = callback; task.Param = param; taskList.Add(task); }