Files
KianaBH3/game_server/packet/handlers/SelectNewStigmataRuneReq.py
2024-11-18 13:06:18 +08:00

39 lines
1.3 KiB
Python

import betterproto
from game_server.net.session import Session
from game_server.game.inventory.inventory_manager import RuneList
from game_server.game.enum.data_type import DataType
from database import mongo
from lib.proto import (
SelectNewStigmataRuneReq,
SelectNewStigmataRuneRsp,
GetEquipmentDataReq
)
async def handle(session: Session, msg: SelectNewStigmataRuneReq) -> betterproto.Message:
stigmata_data = session.player.inventory.stigmata_items.get(msg.unique_id)
if msg.select_unique_id > 0 and msg.is_select:
affix_data = [affix for affix in stigmata_data.wait_select_rune_group_list if msg.select_unique_id == affix.unique_id][0]
stigmata_data.rune_list = []
stigmata_data.rune_list.extend(
[
RuneList(
rune_id=rune.rune_id,
strength_percent=rune.strength_percent
)
for rune in affix_data.rune_list
]
)
mongo.save(session,DataType.STIGMATA,[msg.unique_id])
stigmata_data.wait_select_rune_group_list = []
await session.process_packet(session.create_packet(GetEquipmentDataReq()))
return SelectNewStigmataRuneRsp(
retcode=0,
select_unique_id=msg.select_unique_id,
is_select=msg.is_select
)