public void InitializeRules(int seed) { if (_ruleGenerator == null) { _ruleGenerator = _getInstance.Invoke(null, new object[] { _ruleGeneratorType }); _seed = seed; _initRNG.Invoke(_ruleGenerator, new object[] { _seed, null }); _createRules.Invoke(_ruleGenerator, null); RuleSeedModifierProperties.AddSupportedModule(GetModuleType()); } else if (_seed != seed) { _seed = seed; _initRNG.Invoke(_ruleGenerator, new object[] { _seed, null }); _createRules.Invoke(_ruleGenerator, null); } }
private void Start() { _started = true; DebugLog("Service prefab Instantiated."); ApplyBugFixes(); //DestroyImmediate(GetComponent<KMService>()); //Hide from Mod Selector _modSettings = new Settings(GetComponent <KMModSettings>()); if (!Initialize()) { DebugLog("Failed to initialize the reflection component of Vanilla Rule Modifier. Aborting load"); return; } if (!_modSettings.ReadSettings()) { DebugLog("Failed to initialize Mod settings. Aborting load"); return; } GameObject infoObject = new GameObject("VanillaRuleModifierProperties"); infoObject.transform.parent = gameObject.transform; PublicProperties[0] = infoObject.AddComponent <RuleSeedModifierProperties>(); PublicProperties[0].VanillaRuleModifer = this; GameObject infoObject2 = new GameObject("RuleSeedModifierProperties"); infoObject2.transform.parent = gameObject.transform; PublicProperties[1] = infoObject2.AddComponent <RuleSeedModifierProperties>(); PublicProperties[1].VanillaRuleModifer = this; foreach (string mod in ModsThatSupportRuleSeedModifier) { RuleSeedModifierProperties.AddSupportedModule(mod); } _gameInfo = GetComponent <KMGameInfo>(); LoadMod(); DebugLog("Service started"); }