Files
neonsr/game_server/handlers/TakeOffRelicCsReq.py
2025-04-18 09:13:19 +08:00

20 lines
795 B
Python

import betterproto
from game_server.net.session import PlayerSession
from rail_proto.lib import (
TakeOffRelicCsReq,
TakeOffRelicScRsp
)
async def handle(session: PlayerSession, msg: TakeOffRelicCsReq) -> betterproto.Message | None:
avatar_data = session.player.avatar_manager.get(msg.avatar_id)
if not avatar_data: return None
for type in msg.relic_type_list:
relic_type = str(type)
relic_id = avatar_data.relic_ids.get(relic_type)
if not relic_id or relic_id == 0: continue
item_data = session.player.inventory_manager.get(relic_id)
if not item_data: continue
avatar_data.relic_ids.pop(relic_type)
item_data.equip_avatar = 0
session.pending_notify(session.player.PlayerSyncProto())
return TakeOffRelicScRsp()