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); } }
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(); }
public RuleModelProxy(TriadGameModifier triadMod) { modOb = triadMod; }