You are on page 1of 4

from enum import Enum

class AttacksRanks(Enum):
Elementary = 0
Intermediate = 1
Advanced = 2
Saint = 3
King = 4
Imperial = 5

class Style:
def __init__(self):
self.attacks = []

def registerAttack(self, attack):


self.attacks.append(attack)

class Attack:
def __init__(self, name: str):
self.to_protecting = {}
self.to_attacker = {}
self.name = name
self.style = None
self.rank = AttacksRanks.Elementary
self.damage = 0
self.cost = 0
self.damage_over_time = None

def set_style(self, style: Style):


self.style = style
return self

def set_rank(self, rank: AttacksRanks):


self.rank = rank
return self

def set_damage(self, damage: int):


self.damage = damage
return self

def set_cost(self, cost: int):


self.cost = cost
return self

def set_damage_over_time(self, damage_over_time: list):


self.damage_over_time = damage_over_time
return self

def toAttacker(self, to_attacker):


self.to_attacker = to_attacker
return self

def toProtecting(self, to_protecting):


self.to_protecting = to_protecting
return self
def register(self):
self.style.registerAttack(self)

all_styles = {}
for xxxx in ["огонь", "земля", "вода", "ветер", "бога меча", "бога севера", "бога
воды"]:
all_styles[xxxx] = Style()

#ОГОНЬ
Attack("огненный шар") \
.set_style(all_styles["огонь"]) \
.set_damage(14)\
.set_rank(AttacksRanks.Elementary) \
.set_damage_over_time([2, 2]) \
.set_cost(6)\
.register()
Attack("взрыв") \
.set_style(all_styles["огонь"]) \
.set_damage(29)\
.set_rank(AttacksRanks.Intermediate) \
.set_damage_over_time([4, 2]) \
.set_cost(16)\
.register()
Attack("Экс-флейм") \
.set_style(all_styles["огонь"]) \
.set_damage(34)\
.set_rank(AttacksRanks.Intermediate) \
.set_damage_over_time([4, 3]) \
.set_cost(22)\
.register()
Attack("Вспышка конца") \
.set_style(all_styles["огонь"]) \
.set_damage(67)\
.set_rank(AttacksRanks.Saint) \
.set_damage_over_time([7, 4]) \
.set_cost(48)\
.register()

#ЗЕМЛЯ
Attack("Каменная пуля")\
.set_style(all_styles["земля"]) \
.set_damage(16)\
.set_rank(AttacksRanks.Elementary)\
.toProtecting({"dexterity": [2, -4]})\
.set_cost(7)\
.register()
Attack("Столп земли")\
.set_style(all_styles["земля"]) \
.set_damage(31)\
.set_rank(AttacksRanks.Intermediate)\
.toProtecting({"dexterity": [2, -9]})\
.set_cost(20)\
.register()
Attack("Земляной еж")\
.set_style(all_styles["земля"]) \
.set_damage(37)\
.set_rank(AttacksRanks.Intermediate)\
.toProtecting({"dexterity": [2, -17]})\
.set_cost(23)\
.register()
Attack("Песчаная буря")\
.set_style(all_styles["земля"]) \
.set_damage(46)\
.set_rank(AttacksRanks.Saint)\
.toProtecting({"stan": [2]})\
.set_cost(33)\
.register()

#ВЕТЕР
Attack("Звуковой удар")\
.set_style(all_styles["ветер"]) \
.set_damage(21)\
.set_rank(AttacksRanks.Elementary)\
.set_cost(9)\
.register()
Attack("Срез ветра")\
.set_style(all_styles["ветер"]) \
.set_damage(37)\
.set_rank(AttacksRanks.Intermediate)\
.set_cost(17)\
.register()
Attack("Удар торнадо")\
.set_style(all_styles["ветер"]) \
.set_damage(49)\
.set_rank(AttacksRanks.Advanced)\
.set_cost(25)\
.register()
Attack("Сильный шторм")\
.set_style(all_styles["ветер"]) \
.set_damage(74)\
.set_rank(AttacksRanks.Saint)\
.set_cost(37)\
.register()

#ВОДА
Attack("Водный шар")\
.set_style(all_styles["вода"]) \
.set_damage(10)\
.set_rank(AttacksRanks.Elementary)\
.toAttacker({"dexterity": "4"})\
.set_cost(5)\
.register()
Attack("Водомет")\
.set_style(all_styles["вода"]) \
.set_damage(24)\
.set_rank(AttacksRanks.Intermediate)\
.toAttacker({"dexterity": 9})\
.set_cost(17)\
.register()
Attack("Ледяной столп")\
.set_style(all_styles["вода"]) \
.set_damage(32)\
.set_rank(AttacksRanks.Intermediate)\
.toAttacker({"dexterity": 17})\
.set_cost(20)\
.register()
Attack("Кумулонимбус")\
.set_style(all_styles["вода"]) \
.set_damage(40)\
.set_rank(AttacksRanks.Saint)\
.toAttacker({"dexterity": 23})\
.set_cost(27)\
.register()
Attack("Молния")\
.set_style(all_styles["вода"]) \
.set_damage(60)\
.set_rank(AttacksRanks.King)\
.toAttacker({"dexterity": 33})\
.set_cost(40)\
.register()

You might also like