45 lines
975 B
Python
45 lines
975 B
Python
from dataclasses import dataclass
|
|
|
|
from src.utils.df import game_configs
|
|
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 _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.iterrows():
|
|
item = Item(
|
|
id=int(row["id"]),
|
|
name=str(row["name"]),
|
|
desc=str(row["desc"]),
|
|
realm=Realm.from_id(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()
|
|
|
|
|
|
|