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()