Код IT
← Каталог

Python — диаблоид — `player/equipment.py`

Фрагмент из «Python — диаблоид»: `player/equipment.py`.

python spinoffencyclopedia9-04-razrabotka-igr-praktikum-razrabotki-igr-6 embed URL статья в энциклопедии
Python main.py
from dataclasses import dataclass, field


@dataclass
class Equipment:
    weapon: str | None = None
    chest: str | None = None
    _bonuses: dict[str, float] = field(default_factory=dict)

    def equip(self, item_id: str, slot: str, bonuses: dict[str, float]) -> None:
        setattr(self, slot, item_id)
        for key, value in bonuses.items():
            self._bonuses[key] = self._bonuses.get(key, 0.0) + value

    def bonus(self, name: str) -> float:
        return self._bonuses.get(name, 0.0)
from dataclasses import dataclass, field


@dataclass
class Equipment:
    weapon: str | None = None
    chest: str | None = None
    _bonuses: dict[str, float] = field(default_factory=dict)

    def equip(self, item_id: str, slot: str, bonuses: dict[str, float]) -> None:
        setattr(self, slot, item_id)
        for key, value in bonuses.items():
            self._bonuses[key] = self._bonuses.get(key, 0.0) + value

    def bonus(self, name: str) -> float:
        return self._bonuses.get(name, 0.0)