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

Python — диаблоид — Этап 12 — инвентарь и экипировка (основа)

Фрагмент из «Python — диаблоид»: Этап 12 — инвентарь и экипировка (основа).

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 k, v in bonuses.items():
            self._bonuses[k] = self._bonuses.get(k, 0) + v

    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 k, v in bonuses.items():
            self._bonuses[k] = self._bonuses.get(k, 0) + v

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