Files
neonsr/game_server/resource/configdb/avatar_config.py
2025-04-16 21:31:18 +08:00

40 lines
1.3 KiB
Python

from dataclasses import dataclass
from game_server.resource.base_resource import BaseResource, T
from game_server.resource.decorators import GameResource
from game_server.resource.configdb.avatar_skill_tree_config import AvatarSkillTreeConfig
from game_server.resource.configdb.maze_buff_config import MazeBuffConfig
@dataclass
@GameResource("resources/ExcelOutput/AvatarConfig.json")
class AvatarConfig(BaseResource):
AvatarID: int
AvatarSkills: dict[int, int]
MazeBuffs: dict[int,int] # ID and LvMax
def on_load(self: T) -> bool:
from game_server.resource import ResourceManager
self.AvatarSkills = {}
self.MazeBuffs = {}
skill_tree_config = ResourceManager.instance().find_all_by_index(
AvatarSkillTreeConfig, self.AvatarID
)
for data in ResourceManager.instance().values(MazeBuffConfig):
if str(data.ID).startswith(str(self.AvatarID)):
self.MazeBuffs[data.ID] = data.LvMax
for skill in skill_tree_config:
skill_id = skill.PointID
skill_level = skill.MaxLevel
skill = self.AvatarSkills.get(skill_id)
if not skill:
self.AvatarSkills[skill_id] = skill_level
return True
def get_index(self) -> str:
return str(self.AvatarID)