Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        public NpcModelProxy(TriadNpc triadNpc)
        {
            npcOb = triadNpc;

            UpdateCachedText();
        }
Beispiel #5
0
 public NpcModelProxy GetNpcProxy(TriadNpc npcOb)
 {
     return(Npcs.Find(x => x.npcOb == npcOb));
 }