public virtual bool CheckFizzle() { double minSkill, maxSkill; GetCastSkills(out minSkill, out maxSkill); if (Caster.Mounted) { if (!Equitation.CheckEquitation(Caster, EquitationType.Cast)) { return(false); } } if (EtouffementSpell.m_Table.Contains(Caster)) { if (Utility.Random(100) <= (int)EtouffementSpell.m_Table[Caster]) { Caster.SendMessage("Vous vous étouffez en lancant votre sort !"); return(false); } } return(Caster.CheckSkill(m_Info.skillForCasting, minSkill, maxSkill)); }
public virtual bool CheckSequence() { int mana = ManaCost; PlayerMobile pm = Caster as PlayerMobile; if (Caster.AccessLevel != AccessLevel.Player) { return(true); } else { if (Caster.Deleted || !Caster.Alive || Caster.Spell != this || State != SpellState.Sequencing) { DoFizzle(); } else if (m_Scroll != null && !(m_Scroll is Runebook) && (m_Scroll.Amount <= 0 || m_Scroll.Deleted || m_Scroll.RootParent != Caster)) { DoFizzle(); } else if (!ConsumeReagents() && Caster.AccessLevel < AccessLevel.Batisseur) { Caster.LocalOverheadMessage(MessageType.Regular, 0x22, 502630); // More reagents are needed for this spell. } else if (Caster.Mana < mana) { Caster.LocalOverheadMessage(MessageType.Regular, 0x22, 502625); // Insufficient mana for this spell. } else if (pm != null && !Equitation.CheckEquitation(pm, EquitationType.Attacking)) { DoFizzle(); } else if (CheckFizzle()) { SpellManaCost(mana); if (m_Scroll is SpellScroll) { m_Scroll.Consume(); } if (ClearHandsOnCast) { Caster.ClearHands(); } return(true); } else { DoFizzle(); } } return(false); }