/// <summary>
 ///
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public int CompareTo(IFightObstacle obj)
 {
     return(Priority.CompareTo(obj.Priority));
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="obstacle"></param>
        /// <returns></returns>
        public FightActionResultEnum RemoveObject(IFightObstacle obstacle)
        {
            FightObjects.Remove(obstacle);

            return FightActionResultEnum.RESULT_NOTHING;
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public int CompareTo(IFightObstacle obj)
 {
     return Priority.CompareTo(obj.Priority);
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="fightObject"></param>
        /// <returns></returns>
        public FightActionResultEnum AddObject(IFightObstacle fightObject)
        {
            FightObjects.Add(fightObject);

            if (fightObject.ObstacleType == FightObstacleTypeEnum.TYPE_FIGHTER)
            {
                var fighter = (AbstractFighter)fightObject;

                for (int i = FightObjects.Count - 1; i > -1; i--)
                {
                    var activableObject = FightObjects[i] as AbstractActivableObject;
                    if (activableObject != null)
                    {
                        if (activableObject.ActivationType == ActiveType.ACTIVE_ENDMOVE)
                        {
                            if (!fighter.IsFighterDead)
                            {
                                activableObject.LoadTargets(fighter);
                                activableObject.Activate(fighter);
                            }
                        }
                    }
                }
            }

            return FightActionResultEnum.RESULT_NOTHING;
        }