20 lines
808 B
Python
20 lines
808 B
Python
import betterproto
|
|
from game_server.net.session import PlayerSession
|
|
from game_server.game.battle.battle_manager import BattleManager
|
|
from rail_proto.lib import (
|
|
SceneCastSkillCsReq,
|
|
SceneCastSkillScRsp,
|
|
)
|
|
|
|
|
|
async def handle(session: PlayerSession, msg: SceneCastSkillCsReq) -> betterproto.Message:
|
|
targets = [id for id in msg.assist_monster_entity_id_list if id > 20000 or id < 10]
|
|
for monster in msg.assist_monster_entity_info:
|
|
targets.extend(
|
|
id for id in monster.entity_id_list
|
|
if id not in targets and (id > 20000 or id < 10)
|
|
)
|
|
session.player.battle_manager = BattleManager(session.player)
|
|
if msg.skill_index == 0 and targets:
|
|
return session.player.battle_manager.EnterBattle(msg,targets)
|
|
return SceneCastSkillScRsp(retcode=0) |