/
puma
/
ppa
Обзор
Документация
Войти
/
puma
/
ppa
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Models/Units/Wizard.cs
41 строка
2 KB
Margarita
lalalala
28 май 2026, 21:26
28 май 2026, 21:26
b0e45cf
Код
Авторство
О чём код?
/// <summary> /// Волшебник - юнит с способностью клонирования /// Может атаковать как обычный юнит и клонировать пехоту/лучников /// </summary> public class Wizard : UnitBase { public Wizard() : base("Wizard", GenerateAttack(), GenerateDefense(), GenerateHealth(), GenerateCost(), new CloneAbility(GenerateRange(), GenerateCloneProbability())) { } /// <summary> /// Конструктор для создания копии с заданными параметрами /// </summary> public Wizard(int attack, int defense, int health, int cost, int range, int cloneProbability) : base("Wizard", attack, defense, health, cost, new CloneAbility(range, cloneProbability)) { } public override IUnit Clone() { var a = (CloneAbility)SpecialAbility!; var clone = new Wizard(Attack, Defense, MaxHealth, Cost, a.Range, a.CloneProbability); clone.SetCurrentHealth(CurrentHealth); clone.MarkAsClone(); return clone; } public override IUnit Duplicate() { var a = (CloneAbility)SpecialAbility!; return new Wizard(Attack, Defense, MaxHealth, Cost, a.Range, a.CloneProbability); } private static int GenerateAttack() => Random.Shared.Next(15, 22); private static int GenerateDefense() => Random.Shared.Next(4, 9); private static int GenerateHealth() => Random.Shared.Next(20, 28); private static int GenerateCost() => Random.Shared.Next(50, 70); private static int GenerateRange() => Random.Shared.Next(1, 3); private static int GenerateCloneProbability() => Random.Shared.Next(30, 45); // 30-45% вероятность успеха }