Files
KianaBH3/game_server/packet/handlers/GetChallengeStepCompensationInfoReq.py
2024-11-07 23:25:15 +08:00

38 lines
1.4 KiB
Python

import betterproto
from game_server.net.session import Session
from game_server.resource import ResourceManager
from game_server.resource.configdb.step_mission_compensation import StepMissionCompensationData
from lib.proto import (
GetChallengeStepCompensationInfoReq,
GetChallengeStepCompensationInfoRsp,
ChallengeStepCompensation,
StepCompensation
)
async def handle(session: Session, msg: GetChallengeStepCompensationInfoReq) -> betterproto.Message:
return GetChallengeStepCompensationInfoRsp(
retcode=0,
compensation_list=[
ChallengeStepCompensation(
compensation_id=challenge.CompensationID,
is_take_compensation=True,
new_challenge_step_compensation_list=[
StepCompensation(
step_id=id
) for id in challenge.NewChallengeStepIDList
],
old_challenge_step_compensation_list=[
StepCompensation(
step_id=id
) for id in challenge.OldChallengeStepIDList
],
mainline_step_compensation_list=[
StepCompensation(
step_id=id
) for id in challenge.MainLineStepIDList
]
)
for challenge in ResourceManager.instance().values(StepMissionCompensationData)
]
)