Example #1
0
        protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback)
        {
            // 角色卡的DefineID
            int[] charactersDID = witness.getVar <int[]>("masterCardsDID");
            // 角色卡的RuntimeID
            int[] charactersRID = witness.getVar <int[]>("masterCardsRID");
            // 玩家卡组
            int[] userCards = witness.getVar <int[]>("deck");
            // 玩家顺序
            int[] playerOrder = witness.getVar <int[]>("sortedPlayersIndex");
            // 初始手牌DefineID
            int[] initHandCard = witness.getVar <int[]>("initCardsDID");
            // 初始手牌RuntimeID
            int[][] initCardsRID = witness.getVar <int[][]>("initCardsRID");

            DebugUtils.NullCheck(charactersDID, "charactersDID");
            DebugUtils.NullCheck(charactersRID, "charactersRID");
            DebugUtils.NullCheck(userCards, "userCards");
            DebugUtils.NullCheck(playerOrder, "playerOrder");
            DebugUtils.NullCheck(initHandCard, "initHandCard");
            DebugUtils.NullCheck(initCardsRID, "initCardsRID");

            if (charactersDID.Length != charactersRID.Length)
            {
                throw new LengthNotMatchException(charactersDID.Length, charactersRID.Length);
            }

            deck.SetPlayer(playerOrder, CardID.ToCardIDs(charactersDID, charactersRID));
            deck.SetInitHandcard(initHandCard, initCardsRID);

            // 先抽卡再设置deck,防止deck中的被抽走(
            deck.SelfBoard.SetDeck(userCards);

            return(false);
        }
        protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback)
        {
            int player = witness.getVar <int>("playerIndex");

            int[] originalRID = witness.getVar <int[]>("originCardsRID");
            int[] cardsRID    = witness.getVar <int[]>("replacedCardsRID");
            int[] cardsDID    = witness.getVar <int[]>("replacedCardsDID", false);

            DebugUtils.NullCheck(cardsRID, "replacedCardsRID");
            DebugUtils.NullCheck(originalRID, "originCardsRID");
            if (cardsDID == null)
            {
                cardsDID = new int[cardsRID.Length];
            }

            deck.GetUserBoard(player).ThrowCardsWithReplace(CardID.ToCardIDs(originalRID), CardID.ToCardIDs(cardsDID, cardsRID), callback);

            return(true);
        }