예제 #1
0
        /// <summary>
        /// Получение урона от пули
        /// </summary>
        /// <param name="ast">Астеройд</param>
        /// <param name="bul">Тип пули</param>
        /// <param name="damage">Урон от типа пули</param>
        public static void getDamageFromBul()
        {
            for (int j = 0; j < Game._bullet.Count; j++)//проверка всех пуль и астеройдов
            {
                for (int i = 0; i < Game._asteroids.Count; i++)
                {
                    if (Game._bullet[j] != null && Game._bullet[j].Collision(Game._asteroids[i]) && Game._asteroids[i] != null)    // Проверка на столкновение пули и астеройда.
                    {
                        int damage = damageValue(Game._bullet[j]);                                                                 //узнаем урон по типу пули
                        Game._bullet[j] = null;                                                                                    //при столкновении уничтоженаем пулю.
                        GetInfoLog.getLogFrom($"{Game.date} объект {Game._bullet[j]} нанес {damage} урона, {Game._asteroids[i]}"); //логирование.
                        if (Game._asteroids[i].lowPower(damage))
                        {
                            Game._ship.getPoint();                                                             // Если вернулся "true", значит астеройд уничтожен и записываем очки для корабля.
                            Game._asteroids.Remove(Game._asteroids[i]);                                        //удаляем этот астеройд из списка

                            GetInfoLog.getLogFrom($"{Game.date} Осталось {Game._asteroids.Count} астеройдов"); //логирование.
                            if (Game._asteroids.Count == 0)                                                    //если астеройдов осталось 0
                            {
                                GetInfoLog.getLogFrom($"{Game.date} инициализация");                           //логирование.
                                Game.Listpos++;                                                                //увеличиваем коллекцию на 1
                                Game._asteroids = new List <Asteroid>(Game.Listpos);                           //создаем новую коллекцию.
                                Game.Count++;
                                for (int e = 0; e < Game.Listpos; e++)
                                {
                                    GetInfoLog.getLogFrom($"{Game.date} создан объект {e}"); //логирование.
                                    Game.createAsteroids(ref e);                             //создаем астеройды
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
 /// <summary>
 /// получение урона от астеройда
 /// </summary>
 /// <param name="ast">Астеройд</param>
 public static void getDamageFrom(Asteroid ast)
 {
     r = rnd.Next(1, 10);                                                              //Урон динамический
     GetInfoLog.getLogFrom($"{Game.date} объект {ast} нанес {r} урона, {Game._ship}"); //логирование.
     Game._ship?.EnergyLow(r);                                                         //Наносим урон в кол-ве "r".
     if (Game._ship.Energy <= 0)                                                       // если энергии нет, игра окончена.
     {
         GetInfoLog.getLogFrom($"{Game.date} игра окончена");                          // логирование
         Game._ship?.Die();                                                            //корабль взорван
     }
 }
예제 #3
0
        }                                //ХП

        public bool lowPower(int damage) // Наносим урон с силой "damage".
        {
            Power -= damage;
            if (Power <= 0) //Если ХП меньше или равно 0, создаем новый объект.
            {
                GetInfoLog.getLogFrom($"{Game.date} Враг уничтожен +30 очков");
                getRndPos();
                return(true);
            }

            return(false);
        }
예제 #4
0
        }                              //ХП

        /// <summary>
        /// Наносим урон астеройду с силой "damage".
        /// </summary>
        /// <param name="damage">сила урона</param>
        /// <returns></returns>
        public bool lowPower(int damage) // Наносим урон астеройды с силой "damage".
        {
            Power -= damage;
            if (Power <= 0)                                                         //Если ХП астеройда меньше или равно 0, создаем новый астеройд.
            {
                GetInfoLog.getLogFrom($"{Game.date} Астеройд уничтожен +10 очков"); // Логирование
                getRndPos();                                                        //Перенос по координатам и изменение размеров
                return(true);
            }

            return(false);
        }
예제 #5
0
 /// <summary>
 /// Лечение корабля
 /// </summary>
 public static void getHeal()                                                         // Получение энергии для корабля.
 {
     Game._ship.EnergyGet(10);                                                        // фиксировано по 10 энергии получаем.
     GetInfoLog.getLogFrom($"{Game.date} объект {Game._ship} получил {10} энергии,"); //логирование.
     Game._heal.getRndPos();                                                          // Как только получили лечение, генерируем новые координаты для хила.
 }