예제 #1
0
파일: Mage.cs 프로젝트: Ileksa/StackFight
        public ActionResult DoSpecialAction(int position, IArmy myArmy, IArmy enemyArmy, Random random = null)
        {
            if (random == null)
            {
                random = new Random();
            }

            double probability = random.NextDouble();

            //для лечения сгенерированная вероятность должна принадлежать промежутку [0, HealingProbability)
            if (probability >= MagicProbability)
            {
                return(ActionResult.Empty);
            }

            List <ICanBeCloned> availibleForCloning = GetAvailibleForCloning(position, myArmy);

            if (availibleForCloning.Count == 0)
            {
                return(ActionResult.Empty);
            }

            IUnit unitForCloning = (IUnit)availibleForCloning[random.Next(0, availibleForCloning.Count)];

            myArmy.AddUnit(unitForCloning, position + 1);

            return(new ActionResult(this, unitForCloning, ActionResultType.Cloning));
        }