Esempio n. 1
0
 static public bool CheckEquitation(Mobile m, EquitationType type)
 {
     return(CheckEquitation(m, type, 0));
 }
Esempio n. 2
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);
        }
Esempio n. 3
0
 public virtual void CheckEquitation(Mobile m, EquitationType type)
 {
     Equitation.Equitation.CheckEquitation(m, type);
 }