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 SetGameRules(TriadGameModifier mod1, TriadGameModifier mod2, bool isTournament = false)
        {
            this.isTournament = isTournament;
            Logger.WriteLine("Game.SetRules: '{0}' + '{1}'{2}",
                             mod1?.GetCodeName(), mod2?.GetCodeName(),
                             isTournament ? " (tournament mode)" : "");

            Rules.Clear();
            Rules.Add(mod1);
            Rules.Add(mod2);

            UpdateSession();
        }
Esempio n. 3
0
 public RuleModelProxy(TriadGameModifier triadMod)
 {
     modOb = triadMod;
 }