/// <summary> /// 校验战斗 /// </summary> /// <returns>战斗结果</returns> internal TeamCalcResponse Verify() { var atkFightObjs = GetAtkQueue(); // 攻击方数据 var defFightObjs = GetDefQueue(); // 防御方参战对象 // 组装战斗对象 var teamCalcReq = new TeamCalcRequest { FullName = this.GetType().FullName, IsSaveHP = true, AtkQueueList = atkFightObjs, DefQueueList = defFightObjs, }; var calcRes = TeamVerifyFight(teamCalcReq, "TeamFight");// 战斗校验 if (calcRes.ErrorCode == ErrorCode.Success) { // 事件触发等操作 } return(calcRes); }
/// <summary> /// 战斗校验 /// </summary> /// <param name="cr"></param> /// <returns></returns> protected TeamCalcResponse TeamVerifyFight(TeamCalcRequest cr, String tag) { var verifyResult = new TeamCalcResponse(); try { var heards = new Dictionary <String, String> { { "Tag", tag } }; verifyResult = Verify <TeamCalcResponse>(cr, heards); if (verifyResult.ErrorCode != ErrorCode.Success)// todo 要善于记录日志,方便查看报错来源 { LogUtil.Write($"FightBase.TeamVerifyFight:调用战斗服务器报错ErrorCode={verifyResult.ErrorCode},ErrorMsg={verifyResult.ErrorMsg},{Environment.NewLine},ReqStr={JsonUtil.Serialize(cr)}", LogType.Error); } } catch (Exception ex) { LogUtil.Write($"FightBase.TeamVerifyFight:调用战斗服务器报错ErrorMsg={ex.Message + Environment.NewLine + ex.StackTrace}", LogType.Error); } return(verifyResult); }