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); }
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); } }
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); } } }
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)); }
public static bool ToggleFavorite(PossibleCard newFavorite) { bool newValue = theInstance.ToggleFavorite(newFavorite); SaveData(); return(newValue); }
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); } }
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(); }
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(); }
public void PlaceLargeCard(PossibleCard ownedCard, GameObject page) { PlaceCard(ownedCard, ImageType.Large, page); }
public void PlaceSmallCard(PossibleCard ownedCard, GameObject page) { PlaceCard(ownedCard, ImageType.Small, page); }