Beispiel #1
0
        private IEnumerator WaitForLoad()
        {
            while (!loaded)
            {
                resultsViewController = Resources.FindObjectsOfTypeAll <ResultsViewController>().FirstOrDefault();
                fireworksController   = ReflectionUtil.GetPrivateField <FireworksController>(resultsViewController, "_fireworksController");

                if (resultsViewController == null)
                {
                    Plugin.Log("resultsViewController is null!", Plugin.LogLevel.DebugOnly);
                    yield return(new WaitForSeconds(0.01f));
                }
                else if (fireworksController == null)
                {
                    Plugin.Log("fireworksController is null!", Plugin.LogLevel.DebugOnly);
                    yield return(new WaitForSeconds(0.01f));
                }
                else
                {
                    Plugin.Log("Found FireworksController!", Plugin.LogLevel.DebugOnly);
                    loaded = true;
                }
            }
            Init();
        }
Beispiel #2
0
 public void Update()
 {
     //Plugin.Log("resultsViewController.enabled: " + resultsViewController.enabled, Plugin.LogLevel.DebugOnly);
     if (fireworksController == null && loaded)
     {
         if (resultsViewController == null)
         {
             resultsViewController = Resources.FindObjectsOfTypeAll <ResultsViewController>().FirstOrDefault();
         }
         else
         {
             fireworksController = Resources.FindObjectsOfTypeAll <FireworksController>().FirstOrDefault();
         }
     }
     else if (resultsViewController.enabled && leftGameCoreScene && fireworksController.enabled)
     {
         if (!isEnabled)
         {
             fireworksController.enabled = false;
             // Delete any fireworks that were generated before it could be disabled
             var fireworkItemController = Resources.FindObjectsOfTypeAll <FireworkItemController>().FirstOrDefault();
             GameObject.Destroy(fireworkItemController);
         }
     }
 }
Beispiel #3
0
 internal static bool Prefix(ref FireworksController ____fireworksController)
 {
     ____fireworksController.SetField("_minSpawnInterval", PluginConfig.Instance.MinSpawnInterval);
     ____fireworksController.SetField("_maxSpawnInterval", PluginConfig.Instance.MaxSpawnInterval);
     ____fireworksController.SetField("_spawnSize", PluginConfig.Instance.SpawnSize);
     ____fireworksController.SetField("_lightsIntensity", PluginConfig.Instance.LightIntensityMultiplier);
     return(true);
 }
Beispiel #4
0
        public void Update()
        {
            Plugin.Log("Updating fireworks tweaks!", Plugin.LogLevel.DebugOnly);
            if (!loaded)
            {
                return;
            }

            if (resultsViewController == null)
            {
                Plugin.Log("resultsViewController is null!", Plugin.LogLevel.DebugOnly);
                resultsViewController = Resources.FindObjectsOfTypeAll <ResultsViewController>().FirstOrDefault();
            }
            else if (fireworksController == null)
            {
                Plugin.Log("fireworksController is null!", Plugin.LogLevel.DebugOnly);
                fireworksController = Resources.FindObjectsOfTypeAll <FireworksController>().FirstOrDefault();
            }
            else if (resultsViewController.enabled && fireworksController.enabled)
            {
                Plugin.Log("fireworksController.enabled", Plugin.LogLevel.DebugOnly);
                if (!isEnabled)
                {
                    Plugin.Log("isEnabled is false", Plugin.LogLevel.DebugOnly);
                    fireworksController.enabled = false;

                    // Delete any fireworks that were generated before it could be disabled
                    var fireworkItemController = Resources.FindObjectsOfTypeAll <FireworkItemController>().FirstOrDefault();
                    GameObject.Destroy(fireworkItemController);
                }
                else
                {
                    Plugin.Log("isEnabled is true", Plugin.LogLevel.DebugOnly);
                }
            }
        }
Beispiel #5
0
    private IEnumerator PostGame(bool passed)
    {
        gameState = GameState.PostGame;
        int endReason = EndReason.lose;

        //Determine why the level ended
        if (passed == true && objectives.AllObjectiveCompleted())
        {
            endReason = EndReason.winner;
        }
        else if (passed == true && objectives.AnyObjectiveCompleted())
        {
            endReason = EndReason.passed;
        }
        else if (exploded == true)
        {
            endReason = EndReason.explode;
        }
        else if (splash == true)
        {
            endReason = EndReason.drowned;
        }

        LevelEndInfo end = new LevelEndInfo(passed, endReason);

        end.level      = LevelHandler.CurrentLevel;
        end.itemsSaved = getSavedCrates();
        end.maxItems   = getCrateAmount();
        end.Reward     = reward;
        end.levelTime  = levelTimer;

        RubyScript ruby = GameObject.FindObjectOfType <RubyScript>();

        if (ruby == null)
        {
            Debug.LogError("Ruby not found");
        }
        else
        {
            end.rubyFound     = ruby.found;
            end.sapphireFound = ruby.found && ruby.IsSapphire;
        }

        if (objectives == null)
        {
            Debug.LogError("Objectives not found");
        }
        else if (passed == true)
        {
            end.obj1Passed = objectives.LevelObjective1();
            end.obj2Passed = objectives.LevelObjective2();
            end.obj3Passed = objectives.LevelObjective3();
        }

        if (passed == true)
        {
            LevelHandler.CompleteLevel(end.level);
            FireworksController fw = GameObject.FindObjectOfType <FireworksController>();
            if (!cheerOnce)
            {
                endCheer.PlaySound();
                cheerOnce = true;
            }
            if (fw != null)
            {
                //fw.transform.position = GameObject.FindObjectOfType<Copter>().transform.position + Vector3.up * 3;
                fw.Launch();
            }
        }

        if (!passed)
        {
            setResetButton(true);
        }
        float timer     = resetCountdown;
        float deltaTime = Time.time;

        while (timer > 0)
        {
            timer    -= (Time.time - deltaTime);
            deltaTime = Time.time;
            yield return(null);
        }

        if (SceneManager.GetActiveScene().name == "Tutorial00" && !passed)
        {
            GameManager.LoadLevel("IntroScreen");
        }
        else
        {
            gameManager.loadMainMenu(true, end, 2);
        }
    }