Esempio n. 1
0
        private void UpdateSession(bool notifySetupChange = true)
        {
            Session = new TriadGameSession();

            // create new instances of modifiers, required for things like roulette
            foreach (var rule in Rules)
            {
                TriadGameModifier modCopy = (TriadGameModifier)Activator.CreateInstance(rule.GetType());
                modCopy.OnMatchInit();

                Session.modifiers.Add(modCopy);
            }

            if (!isTournament)
            {
                foreach (var rule in Npc.Rules)
                {
                    TriadGameModifier modCopy = (TriadGameModifier)Activator.CreateInstance(rule.GetType());
                    modCopy.OnMatchInit();

                    Session.modifiers.Add(modCopy);
                }
            }

            Session.UpdateSpecialRules();
            GameReset();

            if (notifySetupChange)
            {
                OnSetupChanged?.Invoke(this);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 public void GameRouletteApplied()
 {
     Logger.WriteLine("Game.Roulette applied");
     Session.UpdateSpecialRules();
     OnSetupChanged?.Invoke(this);
 }