Files
cultivation-world-simulator/src/classes/item.py
2025-11-22 15:07:09 +08:00

56 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from dataclasses import dataclass
from src.utils.df import game_configs, get_str, get_int
from src.classes.cultivation import Realm
@dataclass
class Item:
"""
物品
"""
id: int
name: str
desc: str
realm: Realm
def __hash__(self) -> int:
return hash(self.id)
def __str__(self) -> str:
return self.name
def get_info(self) -> str:
return f"{self.name} -{self.realm.value}"
def get_detailed_info(self) -> str:
return f"{self.name} - {self.desc}{self.realm.value}"
def get_structured_info(self) -> dict:
return {
"name": self.name,
"desc": self.desc,
"grade": self.realm.value,
"effect_desc": "" # 物品暂时没有效果字段
}
def _load_items() -> tuple[dict[int, Item], dict[str, Item]]:
"""从配表加载item数据"""
items_by_id: dict[int, Item] = {}
items_by_name: dict[str, Item] = {}
item_df = game_configs["item"]
for row in item_df:
item = Item(
id=get_int(row, "id"),
name=get_str(row, "name"),
desc=get_str(row, "desc"),
realm=Realm.from_id(get_int(row, "stage_id"))
)
items_by_id[item.id] = item
items_by_name[item.name] = item
return items_by_id, items_by_name
# 从配表加载item数据
items_by_id, items_by_name = _load_items()