private IEnumerator ProcessCast(SpellData spell, Tile target, CastFinishedDelegate finishedCallback = null) { for (int i = 0, il = spell.spellEffects.Count; i < il; i++) { bool effectFinished = false; SpellEffect effect = spell.spellEffects[i]; effect.Activate(caster, target, () => effectFinished = true); while (!effectFinished) { yield return(null); } } if (finishedCallback != null) { finishedCallback(); } }
public void CastBySlotIndex(int index, Tile target, CastFinishedDelegate finishedCallback = null) { SpellData spell = GetSpellBySlotIndex(index); Cast(spell, target, finishedCallback); }
public void Cast(SpellData spell, Tile target, CastFinishedDelegate finishedCallback = null) { StartCoroutine(ProcessCast(spell, target, finishedCallback)); }
public void Cast(int spellId, Tile target, CastFinishedDelegate finishedCallback = null) { SpellData spell = GetSpell(spellId); Cast(spell, target, finishedCallback); }
public void Cast(SpellData spell, Tile target, CastFinishedDelegate finishedCallback = null) { spellBox.Cast(spell, target, finishedCallback); }