private static GameObject CreateCard(int generation, Pack pack, Transform normalCardsHolder, string rarity)
        {
            string           cardResourceName = ("gen" + generation + "-" + rarity).Replace(" ", "").ToLower();
            PossibleCardList pcl    = cardSets[cardResourceName];
            int          index      = UnityEngine.Random.Range(0, pcl.possibleCard.Length);
            PossibleCard chosenCard = pcl.possibleCard[index];

            pack.cardInThisPack.Add(chosenCard);
            GameObject cardInstance = GameObject.Instantiate(cardPrefab);
            Card       card         = cardInstance.GetComponent <Card>();

            card.CreatedFrom = chosenCard; // this will start downloading the image maybe set unknown rounded/square to front before starting the download
                                           //cardInstance.SetActive(false);
            cardInstance.transform.SetParent(normalCardsHolder);
            cardInstance.transform.localScale = new Vector3(1f, 1f, 1f);
            Match matcher = Regex.Match(chosenCard.setCode, SQUARE_SETS, RegexOptions.IgnoreCase);

            if (matcher.Success)
            {
                card.back = squareBack;
            }
            else
            {
                card.back = roundedBack;
            }

            return(cardInstance);
        }
Exemple #2
0
 public void OnPointerClick(PossibleCard ownedCard, Image image)
 {
     if (singleNPNPageHolder.activeSelf)
     {
         // from NPN to singleCard
         PlayerStats.SetTutorialStepCompleted(TutorialStep.ZoomCard);
         tutorialZoomCardPanel.SetActive(false);
         singleCardImage.sprite = image.sprite;
         currentSingle = ownedCard;
         SetFavoriteButtonColor(ownedCard.id.Equals(PlayerStats.GetFavorite(ownedCard.nationalPokedexNumber)));
         favoriteButton.SetActive(true);
         tutorialMakeFavoritePanel.SetActive(PlayerStats.GetShowTutorialStep(TutorialStep.MakeFavorite));
         singleNPNPageHolder.SetActive(false);
         npnProgressText.gameObject.SetActive(false);
         singleCard.SetActive(true);
     }
     else
     {
         // for people clicking before swiping
         PlayerStats.SetTutorialStepCompleted(TutorialStep.SwipeCollection);
         tutorialSwipeCollectionPanel.SetActive(false);
         // for people with the 8 in 15000 chance AND clicking before swiping
         tutorialTurnInDoublesPanel.SetActive(false);
         // from generation to NPN
         SingleNPNStart(ownedCard.nationalPokedexNumber);
     }
 }
Exemple #3
0
    private void FillPage(int pageNumber, GameObject page)
    {
        for (int i = 0; i < pageSize; i++)
        {
            int nationalPokedexNumber = CardFactory.startNPNOfGeneration[GameManager.SelectedGeneration] + i + pageNumber * pageSize;
            if (nationalPokedexNumber < CardFactory.startNPNOfGeneration[GameManager.SelectedGeneration] + CardFactory.numberOfNPNsInGeneration[GameManager.SelectedGeneration])
            {
                if (generation.cards.ContainsKey(nationalPokedexNumber))
                { // we own cards of this NationalPokedexNumber
                    Dictionary<string, PossibleCard> cardsOfNumber = generation.cards[nationalPokedexNumber];
                    string favorite = PlayerStats.GetFavorite(nationalPokedexNumber);
                    PossibleCard lastFoundOrFavorite = null;
                    if (favorite != null)
                    {
                        lastFoundOrFavorite = cardsOfNumber[favorite];
                    }
                    if (lastFoundOrFavorite == null)
                    {
                        lastFoundOrFavorite = cardsOfNumber.Values.OrderBy(p => p.foundOn).Last();
                    }
                    PlaceSmallCard(lastFoundOrFavorite, page);
                }
                else if (CardFactory.GetNumberOfAvailableCards(GameManager.SelectedGeneration, nationalPokedexNumber) > 0)
                { // leave empty placeholder? show greyed-out back?
                    PlaceEmptyPanel(nationalPokedexNumber, page);
                } else
                {
                    PlaceUnavailablePanel(nationalPokedexNumber, page);
                }

                LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)page.transform);
            }
        }
    }
Exemple #4
0
    public void PlaceCard(PossibleCard ownedCard, ImageType imageType, GameObject page)
    {
        GameObject panel = GameObject.Instantiate(unknownCardPrefab);
        panel.name = ownedCard.id;

        Image image = panel.GetComponent<Image>();
        if (imageType == ImageType.Small)
        {
            smallImages[ownedCard.nationalPokedexNumber] = image;
        }
        Color color = image.color;
        color.a = 1.0f;
        image.color = color;

        panel.transform.SetParent(page.transform);
        panel.transform.localScale = new Vector3(1f, 1f, 1f);

        Button button = panel.AddComponent<Button>();
        button.image = panel.GetComponent<Image>();
        button.onClick.AddListener(() => { OnPointerClick(ownedCard, button.image); });
        string url = null;
        switch (imageType)
        {
            case ImageType.Small:
                url = ownedCard.imageUrlSmall;
                break;
            case ImageType.Large:
                url = ownedCard.imageUrlLarge;
                break;
        }
        StartCoroutine(CardFactory.FillImage(imageType, url, button.image));
    }
Exemple #5
0
        public static bool ToggleFavorite(PossibleCard newFavorite)
        {
            bool newValue = theInstance.ToggleFavorite(newFavorite);

            SaveData();
            return(newValue);
        }
Exemple #6
0
    public PossibleCard Clone()
    {
        PossibleCard ret = new PossibleCard();

        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                ret.possible_[i][j] = possible_[i][j];
            }
        }
        ret.stale_knowledge_ = true;
        return(ret);
    }
 public bool ToggleFavorite(PossibleCard newFavorite)
 {
     favorites.TryGetValue(newFavorite.nationalPokedexNumber, out string favoriteId);
     if (newFavorite.id == favoriteId) // un-favorite
     {
         favorites.Remove(newFavorite.nationalPokedexNumber);
         return(false);
     }
     else
     {
         favorites[newFavorite.nationalPokedexNumber] = newFavorite.id;
         return(true);
     }
 }
Exemple #8
0
        public static void AddCardToCollection(PossibleCard nowOwnedCard)
        {
            Generation generation = theInstance.generations[nowOwnedCard.generation];

            // anything for this nationalPokedexNumber yet?
            if (!generation.cards.ContainsKey(nowOwnedCard.nationalPokedexNumber))
            {
                generation.cards.Add(nowOwnedCard.nationalPokedexNumber, new Dictionary <string, PossibleCard>());
            }

            // do we have this card already?
            if (!generation.cards[nowOwnedCard.nationalPokedexNumber].ContainsKey(nowOwnedCard.id))
            {
                generation.cards[nowOwnedCard.nationalPokedexNumber].Add(nowOwnedCard.id, nowOwnedCard);
            }
            generation.cards[nowOwnedCard.nationalPokedexNumber][nowOwnedCard.id].numberOwned += 1;
            //SaveData();
        }
Exemple #9
0
 void MakeDeductionsFromKnowledge()
 {
     /*
      * if (view_.ActualPlayerId == 2)
      * {
      *  for (int i = 0; i < hand_knowledge_[3].Count; i++)
      *  {
      *      if (view_.GetHand(3)[i] == new Card(3, 5))
      *      {
      *          view_.Log("I think the card {0} in slot {1} might be {2}", view_.GetHand(3)[i], i, hand_knowledge_[3][i]);
      *      }
      *  }
      * }
      */
     DEBUG_ValidatePossibilities();
     PossibleCard.MakeDeductionsForSet(hand_knowledge_[0], CardsPlayerCanSee(0), Enumerable.Empty <PossibleCard>());
     for (int i = 1; i < view_.NumPlayers; i++)
     {
         PossibleCard.MakeDeductionsForSet(hand_knowledge_[i], CardsPlayerCanSee(i), hand_knowledge_[0]);
     }
     DEBUG_ValidatePossibilities();
 }
Exemple #10
0
 public void PlaceLargeCard(PossibleCard ownedCard, GameObject page)
 {
     PlaceCard(ownedCard, ImageType.Large, page);
 }
Exemple #11
0
 public void PlaceSmallCard(PossibleCard ownedCard, GameObject page)
 {
     PlaceCard(ownedCard, ImageType.Small, page);
 }