Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }