static public bool CheckEquitation(Mobile m, EquitationType type) { return(CheckEquitation(m, type, 0)); }
static public bool CheckEquitation(Mobile m, EquitationType type, double malus) { if (m.AccessLevel >= AccessLevel.Batisseur) { return(true); } if (!m.Mounted) { return(true); } // Si on veut tester le running mais que le personnage ne courre pas. if (type == EquitationType.Running && (m.Direction & Direction.Running) == 0) { return(true); } if (m.Map == null) { return(true); } int equitation = ((int)m.Skills.Equitation.Value / 10); if (equitation < 0) { equitation = 0; } double chance = 0; switch (type) { case EquitationType.Attacking: chance = m_AttackingTable[equitation]; break; case EquitationType.Running: chance = m_RunningTable[equitation]; break; case EquitationType.BeingAttacked: chance = m_BeingAttackedTable[equitation]; break; case EquitationType.Cast: chance = m_CastingTable[equitation]; break; case EquitationType.Ranged: chance = m_RangedAttackTable[equitation]; break; } chance += malus; // Si le personnage rate son jet. if (chance >= Utility.RandomDouble()) { TileType tile = Deplacement.GetTileType((Mobile)m); // Si on ne veut pas tester la course, plante. if (type != EquitationType.Running) { Fall(m, (BaseMount)m.Mount); return(false); } // Si on veut tester la course, on vérifie la case, puis plante si ce n'est pas quelque chose de normal. else if (tile != TileType.Other && tile != TileType.Dirt) { Fall(m, (BaseMount)m.Mount); return(false); } } return(true); }
public virtual void CheckEquitation(Mobile m, EquitationType type) { Equitation.Equitation.CheckEquitation(m, type); }