using System; namespace ET { [FriendClass(typeof(Battle))] public class C2M_EnterBattleHandler: AMActorLocationRpcHandler { protected async override ETTask Run(Unit unit, C2M_EnterBattle request, M2C_EnterBattle response, Action reply) { try { Battle battle = null; if (request.BattleType == ConstBattleType.BATTLE_PVP) { battle=await BattleOperate.EnterBattle(unit, request.EnemyId); } else if(request.BattleType == ConstBattleType.BATTLE_PVE) { battle = BattleOperate.EnterPveBattle(unit,request.EnemyId); } if (battle == null) { response.Error = ErrorCode.ERR_CanNotFoundEnemy; reply(); return; } foreach (var v in battle.FighterDic) { response.FighterList.Add(v.Value.ToMessage()); } foreach (var v in battle.EnemyDic) { response.EnemyList.Add(v.Value.ToMessage()); } response.BattleId = battle.Id; response.Error = ErrorCode.ERR_Success; reply(); battle.BattleAtk(); } catch (Exception e) { response.Message = e.ToString(); reply(); } await ETTask.CompletedTask; } } }