コード例 #1
0
        /// <summary> 判定先后手 </summary>
        /// <param name="oneself">己方</param>
        /// <param name="rival">敌方</param>
        private void FirstAfter(PlayMatrix oneself, PlayMatrix rival)
        {
            switch (RivalFightType)
            {
            case (int)FightType.SIEGE:
            case (int)FightType.BUILDING:
            {
                GiveFirstAfter(oneself, true);          //活动始终玩家先手
                GiveFirstAfter(rival, false);
                FirstUserId = oneself.user_id;
                break;
            }

            default:
            {
                var attack      = GetAattackAndGiveAllRoles(oneself);
                var rivalAttack = GetAattackAndGiveAllRoles(rival);
                if (attack >= rivalAttack)
                {
                    GiveFirstAfter(oneself, true);         //攻击值验证  判定先后手
                    GiveFirstAfter(rival, false);
                    FirstUserId = oneself.user_id;
                }
                else
                {
                    GiveFirstAfter(oneself, false);         //攻击值验证  判定先后手
                    GiveFirstAfter(rival, true);
                    FirstUserId = rival.user_id;
                }
                break;
            }
            }
            FirstYinVo = oneself.yin == null ? null : EntityToVo.ToFightYinVo(oneself.yin);
            AfterYinVo = rival.yin == null ? null : EntityToVo.ToFightYinVo(rival.yin);
        }
コード例 #2
0
        /// <summary> 获取雇佣武将 </summary>
        private PlayMatrix GetHireRole(PlayMatrix model)
        {
            bool flag = false;

            if (model.r1 == null)
            {
                model.r1 = GetHireRole(model.user_id); flag = true;
            }
            if (model.r2 == null && !flag)
            {
                model.r2 = GetHireRole(model.user_id); flag = true;
            }
            if (model.r3 == null && !flag)
            {
                model.r3 = GetHireRole(model.user_id); flag = true;
            }
            if (model.r4 == null && !flag)
            {
                model.r4 = GetHireRole(model.user_id); flag = true;
            }
            if (model.r5 == null && !flag)
            {
                model.r5 = GetHireRole(model.user_id);
            }
            return(model);
        }
コード例 #3
0
        /// <summary>构建NPC个人战数据</summary>
        private PlayMatrix GetRivalMatrix(String matrix)
        {
            var model      = new PlayMatrix();
            var matrix_rid = matrix.Split(',');

            switch (RivalFightType)
            {
            case (int)FightType.NPC_MONSTER: { matrix_rid = GetMatrixRids(matrix_rid); break; }
            }

            for (var i = 0; i < matrix_rid.Length; i++)
            {
                switch (i)
                {
                case 0:
                    model.r1 = ConvertRole(Variable.BASE_NPCROLE.FirstOrDefault(m => m.id == Convert.ToInt32(matrix_rid[0])), -1); break;

                case 1:
                    model.r2 = ConvertRole(Variable.BASE_NPCROLE.FirstOrDefault(m => m.id == Convert.ToInt32(matrix_rid[1])), -2); break;

                case 2:
                    model.r3 = ConvertRole(Variable.BASE_NPCROLE.FirstOrDefault(m => m.id == Convert.ToInt32(matrix_rid[2])), -3); break;

                case 3:
                    model.r4 = ConvertRole(Variable.BASE_NPCROLE.FirstOrDefault(m => m.id == Convert.ToInt32(matrix_rid[3])), -4); break;

                case 4:
                    model.r5 = ConvertRole(Variable.BASE_NPCROLE.FirstOrDefault(m => m.id == Convert.ToInt32(matrix_rid[4])), -5); break;
                }
            }
            return(model);
        }
コード例 #4
0
 /// <summary> 给全局前后手赋值 </summary>
 /// <param name="model"></param>
 /// <param name="flag">是否先手</param>
 private void GiveFirstAfter(PlayMatrix model, bool flag)
 {
     if (model.r1 != null)
     {
         if (flag)
         {
             FirstRoles.Add(1, model.r1.id);
         }
         else
         {
             AfterRoles.Add(1, model.r1.id);
         }
     }
     if (model.r2 != null)
     {
         if (flag)
         {
             FirstRoles.Add(2, model.r2.id);
         }
         else
         {
             AfterRoles.Add(2, model.r2.id);
         }
     }
     if (model.r3 != null)
     {
         if (flag)
         {
             FirstRoles.Add(3, model.r3.id);
         }
         else
         {
             AfterRoles.Add(3, model.r3.id);
         }
     }
     if (model.r4 != null)
     {
         if (flag)
         {
             FirstRoles.Add(4, model.r4.id);
         }
         else
         {
             AfterRoles.Add(4, model.r4.id);
         }
     }
     if (model.r5 != null)
     {
         if (flag)
         {
             FirstRoles.Add(5, model.r5.id);
         }
         else
         {
             AfterRoles.Add(5, model.r5.id);
         }
     }
 }
コード例 #5
0
        /// <summary> 修改血量 </summary>
        /// <param name="oneself"></param>
        /// <param name="rival"></param>
        /// <param name="roleid"></param>
        /// <param name="hp"></param>
        /// <param name="rovalhp"></param>
        private void UpdateHp(PlayMatrix oneself, PlayMatrix rival, Int64 roleid, Int64 hp, Int64 rovalhp)
        {
            switch (RivalFightType)
            {
            case (int)FightType.SIEGE:
            case (int)FightType.BUILDING: { if (rival.r1 != null)
                                            {
                                                rival.r1.hp = rovalhp;
                                            }
                                            return; }

            case (int)FightType.DUPLICATE_SHARP: { UpdateLeadRoleHp(oneself, roleid, hp); break; }

            default: { return; }
            }
        }
コード例 #6
0
        /// <summary> 获取总攻击力给全局AllRoles赋值 </summary>
        private double GetAattackAndGiveAllRoles(PlayMatrix model)
        {
            double attack = 0;
            var    dic    = new Dictionary <Int64, Role>();

            if (model.r1 != null)
            {
                dic.Add(model.r1.id, model.r1);
                attack += model.r1.attack <= 0 ? 0 : model.r1.attack;
            }
            if (model.r2 != null)
            {
                dic.Add(model.r2.id, model.r2);
                attack += model.r2.attack <= 0 ? 0 : model.r2.attack;
            }
            if (model.r3 != null)
            {
                dic.Add(model.r3.id, model.r3);
                attack += model.r3.attack <= 0 ? 0 : model.r3.attack;
            }
            if (model.r4 != null)
            {
                dic.Add(model.r4.id, model.r4);
                attack += model.r4.attack <= 0 ? 0 : model.r4.attack;
            }
            if (model.r5 != null)
            {
                dic.Add(model.r5.id, model.r5);
                attack += model.r5.attack <= 0 ? 0 : model.r5.attack;
            }

            foreach (var item in dic)
            {
                AllRoles.Add(item.Key, item.Value);
                AllRolesHp.Add(item.Key, item.Value);
            }

            return(attack);
        }
コード例 #7
0
 /// <summary> 修改主角血量 </summary>
 /// <param name="model"></param>
 /// <param name="roleid"></param>
 /// <param name="hp"></param>
 private void UpdateLeadRoleHp(PlayMatrix model, Int64 roleid, Int64 hp)
 {
     if (model.r1 != null)
     {
         if (model.r1.id == roleid)
         {
             model.r1.hp = hp; return;
         }
     }
     if (model.r2 != null)
     {
         if (model.r2.id == roleid)
         {
             model.r2.hp = hp; return;
         }
     }
     if (model.r3 != null)
     {
         if (model.r3.id == roleid)
         {
             model.r3.hp = hp; return;
         }
     }
     if (model.r4 != null)
     {
         if (model.r4.id == roleid)
         {
             model.r4.hp = hp; return;
         }
     }
     if (model.r5 != null)
     {
         if (model.r5.id == roleid)
         {
             model.r5.hp = hp;
         }
     }
 }