Продолжаем наше погружение в ООП-битву ⚔️
В прошлом посте мы рассмотрели основу — базовый класс Hero.
Теперь самое интересное — классы персонажей, каждый со своим характером и механикой.
👍 Маг (Wizard)
Маг — самый «умный» герой. Он не просто атакует, он ещё кастует защиту, которая уменьшает входящий урон.
Уникальное в классе:
1️⃣Атака — обычная, без бонусов
2️⃣Защита — случайная: либо 0, либо число от -2 до 5
3️⃣Если защита отрицательная — урон только возрастает
4️⃣Метод speak говорит магическую реплику
Маг — сбалансированный герой: всегда бьёт одинаково, но защищается непредсказуемо.
🧝 Эльф (Elf)
Эльф — герой точности. Он может нанести критический урон, если ему «повезёт».
Уникальное:
1️⃣шанс получить бонус +1…+5 к атаке
2️⃣если бонус не выпал — обычный удар
3️⃣защита обычная (просто вычитает урон)
4️⃣реплики также тематические
Эльф — герой про «когда повезёт — больно».
🪓 Гном (Dwarf)
Гном — настоящий танк. Он может… получить дополнительный урон.
Да-да, у гнома пассивка работает против гнома.
Passive ≠ buff
Passive = иногда усиливает входящий урон
Но иногда именно этот «каменный рандом» делает игру интересной.
😭 Человек (Human)
Человек — самый простой и честный герой. Но у него есть козырь: уклонение.
1️⃣шанс увернуться — 30%
2️⃣если увернулся — урон не проходит
3️⃣если нет — получает полный урон
4️⃣Атака у него стандартная.
😡 Орк (Orc)
Орк живёт ради ярости.
У него есть шанс получить +2…+10 к своей атаке.
Если ярость не прокнула — обычный удар.
Орк — герой про минимальную стабильность и максимальный риск.
💻 Что даёт такая структура?
Очень важный навык ООП-разработчика — уметь создавать дерево наследования, где каждый класс — самостоятельный персонаж с поведением.
Здесь:
☀️минимальный повтор кода
☀️читаемая структура
☀️гибкость: можно добавить новых рас и механик
☀️легко тестировать и расширять функционал
В скором будущем мы разберём как работает игровой цикл, система атак, выживание, удаление павших и подключение анимаций из файла animation_battle.py.
Продолжение очень скоро ⚔️🔥
ОСНОВНОЙ КОД ИГРЫ 👈
#КейсыPython #ООП #CodeShadow
