summaryrefslogtreecommitdiff
path: root/Thronefall_1_0/Decompile/LocalGamestate.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_1_0/Decompile/LocalGamestate.cs')
-rw-r--r--Thronefall_1_0/Decompile/LocalGamestate.cs131
1 files changed, 0 insertions, 131 deletions
diff --git a/Thronefall_1_0/Decompile/LocalGamestate.cs b/Thronefall_1_0/Decompile/LocalGamestate.cs
deleted file mode 100644
index 655c7a2..0000000
--- a/Thronefall_1_0/Decompile/LocalGamestate.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class LocalGamestate : MonoBehaviour
-{
- public enum State
- {
- PreMatch,
- InMatch,
- AfterMatchVictory,
- AfterMatchDefeat
- }
-
- [SerializeField]
- private bool autoStartMatch = true;
-
- [SerializeField]
- private State currentState;
-
- [SerializeField]
- private List<Hp> objectsThatTriggerLoseWhenDestroyed = new List<Hp>();
-
- [HideInInspector]
- public UnityEvent OnGameStateChange = new UnityEvent();
-
- private static LocalGamestate instance;
-
- private bool playerFrozen;
-
- public State CurrentState => currentState;
-
- public static LocalGamestate Instance => instance;
-
- public bool PlayerFrozen => playerFrozen;
-
- private void Awake()
- {
- if (instance != null)
- {
- Debug.LogWarning("Multiple LocalGamestate Objects detected. Please make sure there is only on LocalGamestate in the scene. Old instance got destroyed.");
- Object.Destroy(instance.gameObject);
- }
- instance = this;
- }
-
- private void Start()
- {
- LevelProgressManager.instance.GetLevelDataForActiveScene()?.SaveScoreAndStatsToBestIfBest(_endOfMatch: false);
- if (autoStartMatch)
- {
- SetState(State.InMatch);
- }
- foreach (Hp item in objectsThatTriggerLoseWhenDestroyed)
- {
- if ((bool)item && item.OnKillOrKnockout != null)
- {
- item.OnKillOrKnockout.AddListener(OnVitalObjectKill);
- }
- }
- }
-
- public void SetState(State nextState, bool forceTransition = false, bool immediate = false)
- {
- if (currentState == State.AfterMatchVictory || currentState == State.AfterMatchDefeat || (nextState == currentState && !forceTransition))
- {
- return;
- }
- currentState = nextState;
- OnGameStateChange.Invoke();
- if (currentState == State.AfterMatchVictory)
- {
- LevelData levelDataForActiveScene = LevelProgressManager.instance.GetLevelDataForActiveScene();
- if (levelDataForActiveScene != null)
- {
- levelDataForActiveScene.beaten = true;
- }
- }
- else
- {
- LevelData levelDataForActiveScene2 = LevelProgressManager.instance.GetLevelDataForActiveScene();
- if (levelDataForActiveScene2 != null)
- {
- levelDataForActiveScene2.beaten = false;
- }
- }
- if (CurrentState == State.AfterMatchDefeat)
- {
- MusicManager.instance.PlayMusic(null, 3f);
- }
- if (currentState == State.AfterMatchVictory || currentState == State.AfterMatchDefeat)
- {
- StartCoroutine(WaitThenTriggerEndOfMatchScreen(immediate));
- }
- }
-
- private IEnumerator WaitThenTriggerEndOfMatchScreen(bool immediate = false)
- {
- if (immediate)
- {
- yield return null;
- }
- else
- {
- yield return new WaitForSeconds(1f);
- }
- if (currentState == State.AfterMatchVictory)
- {
- SceneTransitionManager.instance.TransitionFromGameplayToEndScreen(ScoreManager.Instance.CurrentScore, ScoreManager.Instance.VictoryGoldBonus, ScoreManager.Instance.VictoryMutatorBonus);
- }
- else
- {
- SceneTransitionManager.instance.TransitionFromGameplayToEndScreen(ScoreManager.Instance.CurrentScore, 0, 0);
- }
- yield return null;
- }
-
- private void OnVitalObjectKill()
- {
- if (currentState == State.InMatch)
- {
- SetState(State.AfterMatchDefeat);
- }
- }
-
- public void SetPlayerFreezeState(bool frozen)
- {
- playerFrozen = frozen;
- }
-}