コード例 #1
0
        public void Start()
        {
            if (Game.Ctx.UserOperator && !Game.Ctx.isTutorial)
            {
                CardList = Game.Ctx.UserOperator.GetCardData();
            }
            else
            {
                // keep cardList the same as in inspector
            }

            pileDeck    = transform.Find("DeckPile").GetComponent <Pile>();
            pileHand    = transform.Find("HandPile").GetComponent <HandPile>();
            pileDiscard = transform.Find("DiscardPile").GetComponent <Pile>();
            pilePlay    = transform.Find("PlayPile").GetComponent <PlayPile>();

            pileDeck.Clear();

            foreach (CardData cardData in CardList)
            {
                GameObject newCardObj = Instantiate(cardPrefab, transform);
                Card       newCard    = newCardObj.GetComponent <Card>();

                newCard.Initialize(cardData);

                pileDeck.Add(newCard, false);
            }

            onTopChange.AddListener(EvaluateAvailability);
        }
コード例 #2
0
ファイル: TestGameBoard.cs プロジェクト: litsungyi/Hanabi
        public void TestPlayPile_Success()
        {
            GameSettings settings = new GameSettings(DifficultLevel.Middle);
            PlayPile     played   = new PlayPile(settings);
            Card         card     = new Card(new CardIdType(0), new CardIndexType(0), CardColorType.Blue, CardValueType.Value1);

            Debug.Assert(played.Play(card));
        }
コード例 #3
0
ファイル: TestGameBoard.cs プロジェクト: litsungyi/Hanabi
        public void TestPlayPile_FailNumberUnknown()
        {
            GameSettings settings = new GameSettings(DifficultLevel.Middle);
            PlayPile     played   = new PlayPile(settings);
            Card         card     = new Card(new CardIdType(0), new CardIndexType(0), CardColorType.Blue, CardValueType.Unknown);

            Debug.Assert(!played.Play(card));
        }
コード例 #4
0
ファイル: TestGameBoard.cs プロジェクト: litsungyi/Hanabi
        public void TestPlayPile_FailNotContinueNumber()
        {
            GameSettings settings = new GameSettings(DifficultLevel.Middle);
            PlayPile     played   = new PlayPile(settings);
            Card         card1    = new Card(new CardIdType(0), new CardIndexType(0), CardColorType.Blue, CardValueType.Value1);
            Card         card2    = new Card(new CardIdType(1), new CardIndexType(1), CardColorType.Blue, CardValueType.Value3);

            Debug.Assert(played.Play(card1));
            Debug.Assert(!played.Play(card2));
        }
コード例 #5
0
ファイル: GameBoard.cs プロジェクト: litsungyi/Hanabi
        public GameBoard(List <IHanabiPlayer> playerList)
        {
            Setting = new GameSettings();

            DrawPool       = new DrawPile(Setting);
            DiscardedCards = new DiscardPile();
            PlayedCards    = new PlayPile(Setting);
            Tokens         = new GameTokens(Setting);
            Players        = new Dictionary <NicknameType, IHanabiPlayer>();

            int maxHand = Setting.GetMaxHandCards(Players.Count);

            foreach (var player in playerList)
            {
                this.Players.Add(player.Nickname, player);
                List <Card> handCard = new List <Card>();
                for (int count = 0; count < maxHand; ++count)
                {
                    player.DrawCard(this.Draw());
                }
            }
        }