Пример #1
0
        private void MainPageResponses(int responseID)
        {
            var        response   = GetResponseByID("MainPage", responseID);
            NWItem     collection = GetPC().GetLocalObject("ACTIVE_COLLECTION");
            List <int> sideboard  = (List <int>)GetResponseByID("MainPage", responseID).CustomData;

            if (response.Text == "Swap card from sideboard to deck")
            {
                GetPC().SetLocalInt("PAZAAK_ACTION", 1);
                ChangePage("SelectCardPage");
            }
            else if (response.Text == "Remove card from collection")
            {
                GetPC().SetLocalInt("PAZAAK_ACTION", 2);
                ChangePage("SelectCardPage");
            }

            // Build the responses for the select card page.
            ClearPageResponses("SelectCardPage");

            foreach (int card in sideboard)
            {
                AddResponseToPage("SelectCardPage", PazaakService.Display(PazaakService.GetCardInCollection(card, collection)), true, card);
            }
        }
Пример #2
0
        private void LoadMainPage()
        {
            NWItem collection = GetPC().GetLocalObject("ACTIVE_COLLECTION");
            Dictionary <int, int> collectedCards = new Dictionary <int, int>();
            Dictionary <int, int> deckCards      = new Dictionary <int, int>();

            string mainHeader = "Cards in your deck:";

            ClearPageResponses("MainPage");
            ClearPageResponses("SelectDeckSlotPage");

            // allow up to 100 cards in a collection.  That should be plenty, right?
            for (int ii = 1; ii <= 100; ii++)
            {
                int card = PazaakService.GetCardInCollection(ii, collection);

                if (card != 0)
                {
                    collectedCards.Add(ii, card);
                }
            }

            for (int jj = 1; jj <= 10; jj++)
            {
                int deckCard = PazaakService.GetCardInDeck(jj, collection);
                deckCards.Add(jj, collectedCards[deckCard]);
                mainHeader += " " + PazaakService.Display(collectedCards[deckCard]) + " ";
                AddResponseToPage("SelectDeckSlotPage", "Slot " + jj + " (" + PazaakService.Display(collectedCards[deckCard]) + ")", true, jj);
                collectedCards.Remove(deckCard);
            }

            mainHeader += "\n\nCards in your sideboard:";

            List <int> sideboard = collectedCards.Keys.ToList();

            foreach (int card in sideboard)
            {
                mainHeader += " " + PazaakService.Display(collectedCards[card]) + " ";
            }

            if (sideboard.Count == 0)
            {
                mainHeader += "\n\nFind more cards and add them to your collection for to be able to customise your deck.";
            }

            SetPageHeader("MainPage", mainHeader);

            // If we have a sideboard, allow the user to swap cards or remove cards.  Pass the sideboard
            AddResponseToPage("MainPage", "Swap card from sideboard to deck", sideboard.Count > 0, sideboard);
            AddResponseToPage("MainPage", "Remove card from collection", sideboard.Count > 0, sideboard);
        }
Пример #3
0
        private void BuildSideDeck(NWObject player)
        {
            NWItem     collection  = player.GetLocalObject("ACTIVE_COLLECTION");
            List <int> deckToBuild = new List <int>(4);
            List <int> playerDeck  = new List <int>(10);

            int random;

            if (collection.IsValid)
            {
                // We have a player with a real deck.  Build the list and select 4 random cards from it.
                for (int ii = 1; ii <= 10; ii++)
                {
                    playerDeck.Add(PazaakService.GetCardInCollection(PazaakService.GetCardInDeck(ii, collection), collection));
                }
            }
            else
            {
                // This is an NPC.  Give them a deck with 6 random + cards, 3-4 random - cards and 0-1 random wild card.
                // See PazaakCard.cs for values.
                if (RandomService.D6(1) == 6)
                {
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));

                    playerDeck.Add(RandomService.D6(1) * -1);
                    playerDeck.Add(RandomService.D6(1) * -1);
                    playerDeck.Add(RandomService.D6(1) * -1);

                    playerDeck.Add(RandomService.D6(1) + 100);
                }
                else
                {
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));
                    playerDeck.Add(RandomService.D6(1));

                    playerDeck.Add(RandomService.D6(1) * -1);
                    playerDeck.Add(RandomService.D6(1) * -1);
                    playerDeck.Add(RandomService.D6(1) * -1);
                    playerDeck.Add(RandomService.D6(1) * -1);
                }
            }

            random = RandomService.Random(10);
            deckToBuild.Add(playerDeck[random]);
            playerDeck.Remove(random);

            random = RandomService.Random(9);
            deckToBuild.Add(playerDeck[random]);
            playerDeck.Remove(random);

            random = RandomService.Random(8);
            deckToBuild.Add(playerDeck[random]);
            playerDeck.Remove(random);

            random = RandomService.Random(7);
            deckToBuild.Add(playerDeck[random]);
            playerDeck.Remove(random);

            if (player1 == player)
            {
                player1SideDeck = deckToBuild;
            }
            else
            {
                player2SideDeck = deckToBuild;
            }
        }