from abc import ABC from typing import Optional from models.weapon.abstract_weapon import AbstractWeapon class AbstractBodyPart(ABC): """ Abstract body part """ name: type[str] = "Пятая конечность" description: type[str] = "Непонятно откуда, но она у тебя есть" hardness: type[int] = 0 health: type[int] = 0 def punch( self, weapon: AbstractWeapon, ): if weapon.get_hit_chance(self, weapon=weapon): if self.material.hardness <= 0: print( f"Вы ударились {weapon.name} об {self.name} и почуствовали ощутимую боль." ) else: print( f"Вы ударились {weapon.name} обо что-то мягкое, этим оказалось {self.name} ." ) else: print("Вы промахнулись.")