Refactor battle & fix name for avatar_manager

This commit is contained in:
Naruse
2025-04-16 16:25:31 +08:00
parent ec8972d5d6
commit f0e41e3258
11 changed files with 127 additions and 82 deletions

View File

@@ -3,6 +3,7 @@ from database.player.player_data import PlayerData,players_collection
from database.avatar.avatar_data import AvatarData,get_all_avatars_by_uid,avatars_collection
from database.lineup.lineup_data import LineupData,get_all_lineup_by_uid,lineups_collection
from database.inventory.inventory_data import InventoryData,get_all_items_by_uid,items_collection
from game_server.game.battle.battle_manager import BattleManager
from game_server.game.scene.scene_manager import SceneManager
from typing import Optional
from rail_proto.lib import (
@@ -14,11 +15,17 @@ from utils.logger import Error
class PlayerManager(BaseModel):
class Config:
arbitrary_types_allowed = True
data : PlayerData = PlayerData()
avatar_mananger: dict[int,AvatarData] = {}
avatar_manager: dict[int,AvatarData] = {}
lineup_manager: dict[int,LineupData] = {}
inventory_manager: dict[int,InventoryData] = {}
scene_manager: SceneManager = None
battle_manager: BattleManager = None
next_battle_id: int = 0
def init_default(self):
self.add_all_avatars()
@@ -41,10 +48,10 @@ class PlayerManager(BaseModel):
uid=self.data.uid,
avatar_id=self.data.cur_basic_type
).add_avatar()
self.avatar_mananger[self.data.cur_basic_type] = avatar
self.avatar_manager[self.data.cur_basic_type] = avatar
for avatar in avatars:
self.avatar_mananger[avatar.avatar_id] = avatar
self.avatar_manager[avatar.avatar_id] = avatar
def add_all_lineups(self):
lineups = get_all_lineup_by_uid(uid=self.data.uid)
@@ -65,7 +72,7 @@ class PlayerManager(BaseModel):
self.inventory_manager[item.unique_id] = item
def add_avatar(self,avatar_id:int) -> Optional[AvatarData]:
avatar = self.avatar_mananger.get(avatar_id)
avatar = self.avatar_manager.get(avatar_id)
if avatar:
return None
@@ -106,7 +113,7 @@ class PlayerManager(BaseModel):
def PlayerSyncProto(self) -> PlayerSyncScNotify:
avatars = []
for avatar_id,avatar in self.avatar_mananger.items():
for avatar_id,avatar in self.avatar_manager.items():
avatars.append(avatar.ToProto())
lightcones = []
@@ -139,7 +146,7 @@ class PlayerManager(BaseModel):
def save_all_avatars_bulk(self):
operations = []
for avatar in self.avatar_mananger.values():
for avatar in self.avatar_manager.values():
avatar_data = avatar.model_dump()
avatar_data["uid"] = avatar.uid
query = {"uid": avatar.uid, "avatar_id": avatar.avatar_id}