/// <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); //создаем астеройды } } } } } } }
/// <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(); //корабль взорван } }
} //ХП public bool lowPower(int damage) // Наносим урон с силой "damage". { Power -= damage; if (Power <= 0) //Если ХП меньше или равно 0, создаем новый объект. { GetInfoLog.getLogFrom($"{Game.date} Враг уничтожен +30 очков"); getRndPos(); return(true); } return(false); }
} //ХП /// <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); }
/// <summary> /// Лечение корабля /// </summary> public static void getHeal() // Получение энергии для корабля. { Game._ship.EnergyGet(10); // фиксировано по 10 энергии получаем. GetInfoLog.getLogFrom($"{Game.date} объект {Game._ship} получил {10} энергии,"); //логирование. Game._heal.getRndPos(); // Как только получили лечение, генерируем новые координаты для хила. }