Ejemplo n.º 1
0
    public void SpellcastPhase2(int sID, SpellCaster player)
    {
        this.player = player;
        // cast spell for free if Umbra's Eclipse is active
        if (SpellTracker.instance.CheckUmbra())
        {
            if (sID != player.spellcasterID)
            {
                NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);
            }
            else
            {
                if (SpellTracker.instance.lastSpellCasted == null)
                {
                    PanelHolder.instance.displayNotify("No Spell was Cast", "Player has not cast any spells yet!", "OK");
                }
                else
                {
                    Spell newSpell = SpellTracker.instance.lastSpellCasted;
                    player.CollectMana(newSpell.iManaCost);
                    newSpell.SpellCast(player);
                }
            }

            player.numSpellsCastThisTurn++;
        }
        else if (player.iMana < iManaCost)
        {
            PanelHolder.instance.displayNotify("Not enough Mana!", "You don't have enough mana to cast this spell.", "OK");
        }
        else
        {
            // subtract mana
            player.iMana -= iManaCost;
            if (sID != player.spellcasterID)
            {
                NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);
            }
            else
            {
                if (SpellTracker.instance.lastSpellCasted == null)
                {
                    PanelHolder.instance.displayNotify("No Spell was Cast", "Player has not cast any spells yet!", "OK");
                }
                else
                {
                    Spell newSpell = SpellTracker.instance.lastSpellCasted;
                    player.CollectMana(newSpell.iManaCost);
                    newSpell.SpellCast(player);
                }
            }

            player.numSpellsCastThisTurn++;
        }
    }
Ejemplo n.º 2
0
    public override void UseItem(SpellCaster player)
    {
        SoundManager.instance.PlaySingle(SoundManager.glimmeringCabochon);
        player.RemoveFromInventory(this);

        List <Spell> spells = new List <Spell>();

        // only include spell if it's non-combat
        foreach (Spell s in player.chapter.spellsCollected)
        {
            if (!s.combatSpell)
            {
                if (!s.sSpellName.Equals("Deja Vu"))     // don't allow cabochon to cast Deja vu (too complicated)
                {
                    spells.Add(s);
                }
            }
        }

        Spell spell = spells[Random.Range(0, spells.Count)];

        if (spell is IAllyCastable)
        {
            IAllyCastable spellToCast = (IAllyCastable)spell;

            // cast the spell
            spellToCast.RecieveCastFromAlly(player);
        }
        else
        {
            player.CollectMana(spell.iManaCost);
            spell.SpellCast(player);
        }
    }
    /* This region assumes spellCaster is not null
     * These functions are also private.*/
    //
    //
    #region generic_events_for_any_town
    private void eventAddMana()
    {
        Debug.Log("AddMana");
        int manaCount = (int)Random.Range(100, 1000);

        spellCaster.CollectMana(manaCount);
        PanelHolder.instance.displayNotify("Mana Find", "You found " + manaCount.ToString() + " mana!", "OK");
    }
Ejemplo n.º 4
0
    public override void UseItem(SpellCaster player)
    {
        SoundManager.instance.PlaySingle(SoundManager.opalAmmonite);
        player.RemoveFromInventory(this);

        int randMana = Random.Range(800, 2600);

        player.CollectMana(randMana);

        PanelHolder.instance.displayNotify("Opal Ammonite", "The Opal Ammonite granted you " + randMana + " mana!", "InventoryScene");
    }
Ejemplo n.º 5
0
 public void RecieveCastFromAlly(SpellCaster player)
 {
     if (SpellTracker.instance.lastSpellCasted == null)
     {
         PanelHolder.instance.displayNotify("No Spell was Cast", "Player has not cast any spells yet!", "OK");
     }
     else
     {
         Spell newSpell = SpellTracker.instance.lastSpellCasted;
         player.CollectMana(newSpell.iManaCost);
         newSpell.SpellCast(player);
     }
 }