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 TriadGameModel() { TriadNpc npcOb = TriadNpcDB.Get().npcs.Find(x => x?.Id == PlayerSettingsDB.Get().lastNpcId); if (npcOb == null) { npcOb = TriadNpcDB.Get().Find("Triple Triad master"); } SetNpc(npcOb); }
public void SetNpc(TriadNpc npc) { if (npc == Npc) { return; } Logger.WriteLine("Game.SetNpc: {0}:{1}", npc?.Id, npc?.Name.GetCodeName()); Npc = npc; OnNpcChanged?.Invoke(npc); var useDeck = FindDeckToUseFor(npc); SetPlayerDeck(useDeck, notifySetupChange: false); UpdateSession(); PlayerSettingsDB.Get().lastNpcId = npc.Id; }
public NpcModelProxy(TriadNpc triadNpc) { npcOb = triadNpc; UpdateCachedText(); }
public NpcModelProxy GetNpcProxy(TriadNpc npcOb) { return(Npcs.Find(x => x.npcOb == npcOb)); }