private TriadDeck FindDeckToUseFor(TriadNpc npc) { PlayerSettingsDB settingsDB = PlayerSettingsDB.Get(); TriadCard[] cardsCopy = null; if (settingsDB.lastDeck.ContainsKey(npc)) { TriadDeck savedDeck = PlayerSettingsDB.Get().lastDeck[npc]; if (savedDeck != null && savedDeck.knownCards.Count == 5) { cardsCopy = savedDeck.knownCards.ToArray(); } } if (cardsCopy == null) { cardsCopy = new TriadCard[5]; if (PlayerDeck == null) { Array.Copy(settingsDB.starterCards, cardsCopy, cardsCopy.Length); } else { Array.Copy(PlayerDeck.knownCards.ToArray(), cardsCopy, cardsCopy.Length); } } return(new TriadDeck(cardsCopy)); }
public void SetPlayerDeck(TriadDeck deck, bool notifySetupChange = true) { Logger.WriteLine("Game.SetPlayerDeck: {0}", deck); PlayerDeck = deck; if (Npc != null && deck != null) { PlayerSettingsDB.Get().UpdatePlayerDeckForNpc(Npc, deck); } OnDeckChanged?.Invoke(deck); if (notifySetupChange) { OnSetupChanged?.Invoke(this); } }