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++; } }
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"); }
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"); }
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); } }