Пример #1
0
 private void OnStateChange(KMGameInfo.State state)
 {
     DebugLog("Transitioning from {1} to {0}", state, CurrentState);
     if ((_prevState == KMGameInfo.State.Setup || _prevState == KMGameInfo.State.PostGame) && CurrentState == KMGameInfo.State.Transitioning && state == KMGameInfo.State.Transitioning)
     {
         _modSettings.ReadSettings();
         var seed = _modSettings.Settings.RuleSeed;
         DebugLog("Generating Rules based on Seed {0}", seed);
         GenerateRules(seed);
         ManualGenerator.Instance.WriteManual(seed);
     }
     _prevState   = CurrentState;
     CurrentState = state;
 }
Пример #2
0
    private void OnStateChange(KMGameInfo.State state)
    {
        if (AddWidget != null)
        {
            StopCoroutine(AddWidget);
            AddWidget = null;
        }

        if (FixMorseCode != null)
        {
            StopCoroutine(FixMorseCode);
            FixMorseCode = null;
        }

        //DebugLog("Transitioning from {1} to {0}", state, CurrentState);
        //if((_prevState == KMGameInfo.State.Setup || _prevState == KMGameInfo.State.PostGame) && CurrentState == KMGameInfo.State.Transitioning && state == KMGameInfo.State.Transitioning)
        if (CurrentState == KMGameInfo.State.Setup && state == KMGameInfo.State.Transitioning)
        {
            _modSettings.ReadSettings();
            var seed = _modSettings.Settings.RuleSeed;

            if (_modSettings.Settings.RandomRuleSeed)
            {
                seed = new System.Random().Next(_modSettings.Settings.MaxRandomSeed < 0 ? int.MaxValue : _modSettings.Settings.MaxRandomSeed);
            }

            _currentSeed       = seed;
            _currentRandomSeed = _modSettings.Settings.RandomRuleSeed;

            DebugLog("Generating Rules based on Seed {0}", seed);
            GenerateRules(seed);
            ManualGenerator.Instance.WriteManual(seed);
        }
        else if ((_prevState == KMGameInfo.State.Setup || _prevState == KMGameInfo.State.PostGame) && CurrentState == KMGameInfo.State.Transitioning && state == KMGameInfo.State.Transitioning)
        {
            AddWidget = StartCoroutine(AddWidgetToBomb(RuleSeedWidget));
        }
        else if (state == KMGameInfo.State.Gameplay)
        {
            FixMorseCode = StartCoroutine(FixMorseCodeModule());
        }

        _prevState   = CurrentState;
        CurrentState = state;
    }
Пример #3
0
    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");
    }
    private void OnStateChange(KMGameInfo.State state)
    {
        if (AddWidget != null)
        {
            StopCoroutine(AddWidget);
            AddWidget = null;
        }

        DebugLog("Transitioning from {1} to {0}", state, CurrentState);
        if ((_prevState == KMGameInfo.State.Setup || _prevState == KMGameInfo.State.PostGame) && CurrentState == KMGameInfo.State.Transitioning && state == KMGameInfo.State.Transitioning)
        {
            _modSettings.ReadSettings();
            var seed = _modSettings.Settings.RuleSeed;
            DebugLog("Generating Rules based on Seed {0}", seed);
            GenerateRules(seed);
            ManualGenerator.Instance.WriteManual(seed);
            if (seed != 1)
            {
                AddWidget = StartCoroutine(AddWidgetToBomb(RuleSeedWidget));
            }
        }
        _prevState   = CurrentState;
        CurrentState = state;
    }