/// <summary>
        ///     Finds all fighters with the same tag as <paramref name="leaderBattleDriver"/>
        ///     and adds the ones not participating to <seealso cref="DeactivatableGameObjects"/>
        /// </summary>
        /// <param name="leaderBattleDriver">The leader of the bunch</param>
        /// <returns>A list of <seealso cref="BaseBattleDriver"/>s</returns>
        private List <BaseBattleDriver> FindFighters(BaseBattleDriver leaderBattleDriver)
        {
            // Find all GameObjects with the same tag as the leader
            GameObject[] allFighters = GameObject.FindGameObjectsWithTag(leaderBattleDriver.tag);

            List <BaseBattleDriver> listOfFighters = new List <BaseBattleDriver>();

            BaseDriver leaderDriver = leaderBattleDriver.GetComponent <BaseDriver>();

            // Check each of them
            foreach (GameObject fighter in allFighters)
            {
                BaseDriver driver = fighter.GetComponent <BaseDriver>();

                if (driver != null && (driver.Leader == leaderDriver || driver == leaderDriver))
                {
                    // Required component; should never be missing
                    listOfFighters.Add(fighter.GetComponent <BaseBattleDriver>());
                }
                else
                {
                    fighter.SetActive(false);
                    this.DeactivatableGameObjects.Add(fighter);
                }
            }

            // Sort them
            List <BaseBattleDriver> listOfFightersSorted = new List <BaseBattleDriver>(listOfFighters.Count);

            for (int i = 0; i < listOfFighters.Count; i++)
            {
                foreach (BaseBattleDriver battleDriver in listOfFighters)
                {
                    BaseDriver driver = battleDriver.entityDriver;
                    int        number = 0;
                    while (driver.Following != null)
                    {
                        driver = driver.Following;
                        ++number;

                        if (number > listOfFighters.Count)
                        {
                            throw new RPGException(RPGException.Cause.DriverLoopingFollowing);
                        }
                    }

                    if (number == i)
                    {
                        listOfFightersSorted.Add(battleDriver);
                    }
                }
            }

            return(listOfFightersSorted);
        }
 /// <summary>
 ///     Does a small jump.
 /// </summary>
 /// <param name="battleDriver">The entity that needs to jump</param>
 protected static void DoSmallJump(BaseBattleDriver battleDriver)
 {
     battleDriver.GetComponent <Rigidbody>().velocity = new Vector3(0.0f, 0.5f, 0.0f);
 }