/// <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); } }
/// <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; } }
/// <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--; } }
/// <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.重置剩余攻击次数(); } } }