예제 #1
0
 void Start()
 {
     _instance = this;
 }
예제 #2
0
    private void EnterPhase(GamePhase phase, bool onlyLog = false)
    {
        this.phase = phase;
        switch (phase)
        {
        case GamePhase.LearnActions:
            PlayerPrefs.SetInt("level", 0);
            MessageController.AddMessage("Your farm is not doing well", true, onlyLog: onlyLog);
            MessageController.AddMessage("Water the plants and feed them to your chickens", onlyLog: onlyLog);
            MessageController.AddMessage("Eating will keep your energy up", onlyLog: onlyLog);
            goalText.text = @"* Feed yourself
* feed your <color='green'>grass</color> and <color='green'>carrots</color> <color='#33f'>water</color>
* feed your <color='#f33'>chickens</color> <color='green'>plants</color>";
            //messagePanel.anchorMin = new Vector2(1, 0.5f);
            //messagePanel.anchorMax = new Vector2(1, 0.5f);
            //messagePanel.pivot = new Vector2(1, 0.5f);
            snapshots[0].TransitionTo(1);
            PerspectiveShifter.ShiftToOrtho(0);
            break;

        case GamePhase.FeedWater:
            PlayerPrefs.SetInt("level", 1);
            mrBiscuits1.SetActive(true);
            MessageController.AddMessage("Look at it", true, onlyLog: onlyLog);
            MessageController.AddMessage("It's so thirsty", onlyLog: onlyLog);
            MessageController.AddMessage("Maybe you can help", onlyLog: onlyLog);
            MessageController.AddMessage("find it some water", onlyLog: onlyLog);
            goalText.text = @"* Feed yourself
* feed your <color='green'>grass</color> and <color='green'>carrots</color> <color='#33f'>water</color>
* feed your <color='#f33'>chickens</color> <color='green'>plants</color>
* feed mr. biscuits some <color='#33f'>water</color>";
            snapshots[1].TransitionTo(1);
            if (!onlyLog)
            {
                CinematicShot.MoveToTarget(cineTargets[0], 0.5f, 3);
            }

            break;

        case GamePhase.FeedVeggies:
            PlayerPrefs.SetInt("level", 2);
            cachedMrBiscuits2 = Instantiate(mrBiscuits2, mrBiscuits1.transform.position, Quaternion.identity);
            Utility.PhysicalDestroy(mrBiscuits1);
            MessageController.AddMessage("It's getting bigger and stronger", true, onlyLog: onlyLog);
            MessageController.AddMessage("It wants some veggies too", onlyLog: onlyLog);
            goalText.text = @"* Feed yourself
* feed your <color='green'>grass</color> and <color='green'>carrots</color> <color='#33f'>water</color>
* feed your <color='#f33'>chickens</color> <color='green'>plants</color>
* feed mr. biscuits <color='green'>plants</color>";
            snapshots[2].TransitionTo(1);
            if (!onlyLog)
            {
                CinematicShot.MoveToTarget(cineTargets[1], 0.5f, 3);
            }

            break;

        case GamePhase.HelloBats:
            PlayerPrefs.SetInt("level", 3);
            MessageController.AddMessage("You must protect Mr. Biscuits!", true, onlyLog: onlyLog);
            MessageController.AddMessage("They are hungry, bring meat to their lair", onlyLog: onlyLog);
            batSpawner.SetActive(true);
            goalText.text = @"* Feed yourself
* feed your <color='green'>grass</color> and <color='green'>carrots</color> <color='#33f'>water</color>
* feed your <color='#f33'>chickens</color> <color='green'>plants</color>
* feed mr. biscuits <color='green'>plants</color>
* feed the <color='purple'>bat lair</color> <color='#f33'>eggs</color> or <color='#f33'>chickens</color>";
            snapshots[3].TransitionTo(1);
            if (!onlyLog)
            {
                CinematicShot.MoveToTarget(cineTargets[2], 0.5f, 3);
            }

            break;

        case GamePhase.FeedMeats:
            PlayerPrefs.SetInt("level", 4);
            cachedMrBiscuits3 = Instantiate(mrBiscuits3, cachedMrBiscuits2.transform.position, Quaternion.identity);
            Utility.PhysicalDestroy(cachedMrBiscuits2);
            MessageController.AddMessage("Mr. Biscuits needs protein", true, onlyLog: onlyLog);
            MessageController.AddMessage("Eggs will do", onlyLog: onlyLog);
            MessageController.AddMessage("Or chickens...", onlyLog: onlyLog);
            goalText.text = @"* Feed yourself
* feed your <color='green'>grass</color> and <color='green'>carrots</color> <color='#33f'>water</color>
* feed your <color='#f33'>chickens</color> <color='green'>plants</color>
* feed the <color='purple'>bat lair</color> <color='#f33'>eggs</color> or <color='#f33'>chickens</color>
* feed mr. biscuits <color='green'>plants</color> and <color='#f33'>protein</color>";
            snapshots[4].TransitionTo(1);
            StartCoroutine(TransitionToMb3bSnapshot());
            if (!onlyLog)
            {
                CinematicShot.MoveToTarget(cineTargets[3], 0.5f, 3);
                StartCoroutine(TransitionToPerspective());
            }
            break;

        case GamePhase.Run:
            goalIndicator.StartFlashing();
            PlayerPrefs.SetInt("level", 5);
            cachedMrBiscuits4 = Instantiate(mrBiscuits4, cachedMrBiscuits3.transform.position, Quaternion.AngleAxis(180, Vector3.up));
            Utility.PhysicalDestroy(cachedMrBiscuits3);
            MessageController.AddMessage("run run run run run run run run", true);
            MessageController.AddMessage("run run run run run run run run");
            MessageController.AddMessage("run run run run run run run run");
            goalText.text          = @"* Feed yourself
* <color='red'>run</color>";
            messagePanel.anchorMin = new Vector2(1, 0f);
            messagePanel.anchorMax = new Vector2(1, 0f);
            messagePanel.pivot     = new Vector2(1, 0f);
            snapshots[6].TransitionTo(1);
            if (!onlyLog)
            {
                CinematicShot.MoveToTarget(cineTargets[4], 0.5f, 3, false);
            }
            PerspectiveShifter.ShiftToPerspective(1f);
            break;

        case GamePhase.Win:
            goalIndicator.StopFlashing();
            PlayerPrefs.SetInt("level", 0);
            MessageController.AddMessage("You escaped!", true);
            MessageController.AddMessage("but Mr. Biscuits has been unleashed upon this world");
            MessageController.AddMessage("-.. --- --- -- ... --- ...");
            MessageController.AddMessage("This was an entry in the Ludum Dare 41 compo");
            MessageController.AddMessage("By Zak Reynolds");
            MessageController.AddMessage("Thanks for playing!");
            snapshots[0].TransitionTo(5);
            break;
        }
    }