Exemplo n.º 1
0
    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();
        }
    }
Exemplo n.º 2
0
    public void CastBySlotIndex(int index, Tile target, CastFinishedDelegate finishedCallback = null)
    {
        SpellData spell = GetSpellBySlotIndex(index);

        Cast(spell, target, finishedCallback);
    }
Exemplo n.º 3
0
 public void Cast(SpellData spell, Tile target, CastFinishedDelegate finishedCallback = null)
 {
     StartCoroutine(ProcessCast(spell, target, finishedCallback));
 }
Exemplo n.º 4
0
    public void Cast(int spellId, Tile target, CastFinishedDelegate finishedCallback = null)
    {
        SpellData spell = GetSpell(spellId);

        Cast(spell, target, finishedCallback);
    }
Exemplo n.º 5
0
 public void Cast(SpellData spell, Tile target, CastFinishedDelegate finishedCallback = null)
 {
     spellBox.Cast(spell, target, finishedCallback);
 }