Пример #1
0
 /// <summary>
 /// 抽牌【对方】
 /// </summary>
 /// <param name="game"></param>
 /// <param name="Result"></param>
 private void DrawMyCard(ActionStatus game, List <string> Result)
 {
     if (string.IsNullOrEmpty(指定卡牌编号) || 指定卡牌编号 == CardUtility.strIgnore)
     {
         List <string> drawCards;
         if (SystemManager.游戏类型 == SystemManager.GameType.HTML版)
         {
             drawCards = GameServer.DrawCard(game.GameId, game.IsHost, 1);
         }
         else
         {
             drawCards = ClientRequest.DrawCard(game.GameId.ToString(GameServer.GameIdFormat), game.IsHost, 1);
         }
         if (drawCards.Count == 1)
         {
             game.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(drawCards[0]));
             game.AllRole.MyPublicInfo.HandCardCount++;
             game.AllRole.MyPublicInfo.RemainCardDeckCount--;
             Result.Add(ActionCode.strCard + CardUtility.strSplitMark + CardUtility.strMe);
         }
     }
     else
     {
         game.AllRole.MyPrivateInfo.handCards.Add((CardUtility.GetCardInfoBySN(指定卡牌编号)));
         game.AllRole.MyPublicInfo.HandCardCount++;
         Result.Add(ActionCode.strCard + CardUtility.strSplitMark + CardUtility.strMe);
     }
 }
Пример #2
0
        /// <summary>
        /// 初始化手牌(CS)
        /// </summary>
        /// <param name="IsHost"></param>
        public void InitHandCard()
        {
            int DrawCardCnt = IsFirst ? PublicInfo.BasicHandCardCount : (PublicInfo.BasicHandCardCount + 1);

            foreach (var card in ClientRequest.DrawCard(GameId.ToString(GameServer.GameIdFormat), IsHost, DrawCardCnt))
            {
                actionStatus.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(card));
            }
            if (IsFirst)
            {
                actionStatus.AllRole.MyPublicInfo.RemainCardDeckCount   = CardDeck.MaxCards - 3;
                actionStatus.AllRole.YourPublicInfo.RemainCardDeckCount = CardDeck.MaxCards - 4;
                actionStatus.AllRole.MyPublicInfo.HandCardCount         = PublicInfo.BasicHandCardCount;
                actionStatus.AllRole.YourPublicInfo.HandCardCount       = PublicInfo.BasicHandCardCount + 1 + 1;
            }
            else
            {
                actionStatus.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(SpellCard.SN幸运币));
                actionStatus.AllRole.MyPublicInfo.RemainCardDeckCount   = CardDeck.MaxCards - 4;
                actionStatus.AllRole.YourPublicInfo.RemainCardDeckCount = CardDeck.MaxCards - 3;
                actionStatus.AllRole.MyPublicInfo.HandCardCount         = PublicInfo.BasicHandCardCount + 1 + 1;
                actionStatus.AllRole.YourPublicInfo.HandCardCount       = PublicInfo.BasicHandCardCount;
            }
        }
Пример #3
0
 /// <summary>
 /// 对方复原操作
 /// </summary>
 /// <param name="game"></param>
 /// <param name="actField"></param>
 public static void ReRunEffect(int GameId, ActionStatus game, string[] actField)
 {
     if (actField[1] == CardUtility.strYou)
     {
         if (actField.Length == 3)
         {
             //如果有第三参数,则获得指定手牌
             game.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(actField[2]));
             game.AllRole.MyPublicInfo.HandCardCount++;
         }
         else
         {
             var drawCards = ClientRequest.DrawCard(GameId.ToString(GameServer.GameIdFormat), game.IsHost, 1);
             game.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(drawCards[0]));
             game.AllRole.MyPublicInfo.HandCardCount++;
             game.AllRole.MyPublicInfo.RemainCardDeckCount--;
         }
     }
     else
     {
         game.AllRole.YourPublicInfo.HandCardCount++;
         game.AllRole.YourPublicInfo.RemainCardDeckCount--;
     }
 }
Пример #4
0
        /// <summary>
        /// 新的回合
        /// </summary>
        public void TurnStart(bool IsMyTurn)
        {
            PublicInfo PlayInfo = IsMyTurn ? actionStatus.AllRole.MyPublicInfo : actionStatus.AllRole.YourPublicInfo;

            if (IsMyTurn)
            {
                actionStatus.AllRole.MyPrivateInfo.handCards.Add(CardUtility.GetCardInfoBySN(ClientRequest.DrawCard(GameId.ToString(GameServer.GameIdFormat), IsHost, 1)[0]));
            }
            //过载的清算
            if (PlayInfo.OverloadPoint != 0)
            {
                PlayInfo.crystal.ReduceCurrentPoint(PlayInfo.OverloadPoint);
                PlayInfo.OverloadPoint = 0;
            }
            //连击的重置
            PlayInfo.连击状态 = false;
            //魔法水晶的增加
            PlayInfo.crystal.NewTurn();
            PlayInfo.Hero.RemainAttackTimes = 1;
            PlayInfo.Hero.IsUsedHeroAbility = false;
            PlayInfo.BattleField.FreezeStatus();
            //重置攻击次数,必须放在状态变化之后!
            //原因是剩余攻击回数和状态有关!
            foreach (var minion in PlayInfo.BattleField.BattleMinions)
            {
                if (minion != null)
                {
                    minion.重置剩余攻击次数();
                }
            }
        }