private void CleanCache() { int num = this.m_cardCache.Count - 60; if (num > 0) { CollectionDeck currentlyOpenDeck = null; if (CollectionManager.Get() != null) { currentlyOpenDeck = CollectionManager.Get().GetTaggedDeck(CollectionManager.DeckTag.Editing); } List <string> deckHelperCardChoices = (DeckHelper.Get() != null) ? DeckHelper.Get().GetCardIDChoices() : null; List <string> names = new List <string>(); int index = 0; while (index < this.m_cardCache.Count) { CardCacheItem item = this.m_cardCache[index]; if (!this.CanClearItem(item, currentlyOpenDeck, deckHelperCardChoices)) { index++; } else { names.Add(item.m_cardId); this.m_cardCache.RemoveAt(index); DefLoader.Get().ClearCardDef(item.m_cardId); if (names.Count == num) { break; } } } AssetCache.ClearCardPrefabs(names); } }
public void ChooseThisCard() { KeywordHelpPanelManager.Get().HideKeywordHelp(); this.m_chosen = true; this.m_actor.GetSpell(SpellType.DEATHREVERSE).ActivateState(SpellStateType.BIRTH); CollectionDeckTray.Get().AddCard(this.m_actor.GetEntityDef(), this.m_actor.GetCardFlair(), null, false, this.m_actor); DeckHelper.Get().UpdateChoices(); }
public bool AddCard(EntityDef cardEntityDef, CardFlair cardFlair, DeckTrayDeckTileVisual deckTileToRemove, bool playSound, Actor animateFromActor = null) { if (!base.IsModeActive()) { return(false); } if (cardEntityDef == null) { UnityEngine.Debug.LogError("Trying to add card EntityDef that is null."); return(false); } string cardId = cardEntityDef.GetCardId(); CollectionDeck taggedDeck = CollectionManager.Get().GetTaggedDeck(this.m_deckType); if (taggedDeck == null) { return(false); } if (playSound) { SoundManager.Get().LoadAndPlay("collection_manager_place_card_in_deck", base.gameObject); } if (taggedDeck.GetTotalCardCount() == 30) { if (deckTileToRemove == null) { UnityEngine.Debug.LogWarning(string.Format("CollectionDeckTray.AddCard(): Cannot add card {0} (flair {1}) without removing one first.", cardEntityDef.GetCardId(), cardFlair)); return(false); } string cardID = deckTileToRemove.GetCardID(); CardFlair flair = deckTileToRemove.GetCardFlair(); if (!taggedDeck.RemoveCard(cardID, flair.Premium, deckTileToRemove.IsOwnedSlot())) { object[] args = new object[] { cardId, cardFlair, cardID, flair }; UnityEngine.Debug.LogWarning(string.Format("CollectionDeckTray.AddCard({0},{1}): Tried to remove card {2} with flair {3}, but it failed!", args)); return(false); } } if (!taggedDeck.AddCard(cardEntityDef, cardFlair.Premium)) { UnityEngine.Debug.LogWarning(string.Format("CollectionDeckTray.AddCard({0},{1}): deck.AddCard failed!", cardId, cardFlair)); return(false); } if (taggedDeck.GetTotalOwnedCardCount() == 30) { DeckHelper.Get().Hide(); } this.UpdateCardList(cardEntityDef, true, animateFromActor); CollectionManagerDisplay.Get().UpdateCurrentPageCardLocks(true); if ((!Options.Get().GetBool(Option.HAS_ADDED_CARDS_TO_DECK, false) && (taggedDeck.GetTotalCardCount() >= 2)) && (!DeckHelper.Get().IsActive() && (taggedDeck.GetTotalCardCount() < 15))) { NotificationManager.Get().CreateInnkeeperQuote(GameStrings.Get("VO_INNKEEPER_CM_PAGEFLIP_28"), "VO_INNKEEPER_CM_PAGEFLIP_28", 0f, null); Options.Get().SetBool(Option.HAS_ADDED_CARDS_TO_DECK, true); } return(true); }
/// <summary> /// Constructor /// </summary> /// <param name="goBackToMainMenu"></param> public CardGameScreen(Action goBackToMainMenu) { GoBackToMainMenu = goBackToMainMenu; DeckHelper = new DeckHelper(); DbContext = new DbContext(); // Get complete deck of cards DeckHelper.Get(); Players = new List <CardPlayer <RestaurantReviewer> >(); // Game places Places = new Hashtable { { 0, "1st" }, { 1, "2nd" }, { 2, "3rd" }, { 3, "4th" } }; }
/// <summary> /// Print Game Results /// </summary> private void PrintResult() { DeckHelper.Get(); Console.Clear(); var scoreChecker = 0; // sort winners IEnumerable <CardPlayer <RestaurantReviewer> > sortedResults = Players.OrderByDescending(p => p.CardValueSummary()); // print place + player's name + cards + score for (int i = 0; i < sortedResults.Count(); i++) { // get player var player = sortedResults.ElementAt(i); Console.Write($"{Places[i]} Place: Player {player.Id} - {player.GetPlayerName.PadRight(20, ' ')}"); ConsoleColor resetForeground = Console.ForegroundColor; ConsoleColor resetBackground = Console.BackgroundColor; Console.BackgroundColor = ConsoleColor.White; // print given cards with format foreach (var card in player.Cards) { Console.ForegroundColor = card.Color; Console.Write(card); Console.BackgroundColor = resetBackground; Console.ForegroundColor = resetForeground; Console.Write(" "); Console.BackgroundColor = ConsoleColor.White; } Console.ForegroundColor = resetForeground; Console.BackgroundColor = resetBackground; // print score Console.WriteLine($" Score: {player.CardValueSummary().ToString().PadLeft(3, ' ')}"); scoreChecker += player.CardValueSummary(); Console.Write(Environment.NewLine); } Console.WriteLine($"Score Checker: {scoreChecker}"); }