SHADE_Y3/Assets/Scripts/Gameplay/SC_GameManager.cs

90 lines
2.0 KiB
C#
Raw Normal View History

using SHADE;
using System;
using System.Collections.Generic;
public class GameManager : Script
{
public enum GameState
{
START,
WIN,
LOSE
}
public uint winScene = 92009475;
public uint loseScene = 91685359;
[NonSerialized]
public GameState currGameState;
[NonSerialized]
public int totalItemCount;
[NonSerialized]
public int Score;
[NonSerialized]
public float timer;
2022-11-23 20:26:53 +08:00
public GameObject scoreText;
public GameObject timeText;
public static GameManager Instance { get; private set; }
2022-11-23 20:26:53 +08:00
protected override void awake()
{
if (Instance != null && Instance != this)
RemoveScript<GameManager>();
else
Instance = this;
2022-11-23 20:26:53 +08:00
Audio.PlayBGMOnce2D("event:/Music/player_undetected");
Audio.PlayBGMOnce2D("event:/Ambience/roomtone_kitchen");
totalItemCount = 0;
Score = 0;
currGameState = GameState.START;
}
protected override void update()
{
Cheats();
2022-11-23 20:26:53 +08:00
if (currGameState == GameState.START)
{
timer -= Time.DeltaTimeF;
2022-11-23 20:26:53 +08:00
if(scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"Score: {Score}";
if(timeText)
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0.00")}";
if ((timer > 0 && totalItemCount < 0) || Input.GetKeyDown(Input.KeyCode.F1))
{
currGameState = GameState.WIN;
Audio.StopAllSounds();
SceneManager.ChangeScene(winScene);
Audio.PlaySFXOnce2D("event:/Music/stingers/game_win");
}
else if(timer < 0 || Input.GetKeyDown(Input.KeyCode.F2))
2022-11-23 20:26:53 +08:00
{
currGameState = GameState.LOSE;
Audio.StopAllSounds();
2022-11-23 20:26:53 +08:00
SceneManager.ChangeScene(loseScene);
Audio.PlaySFXOnce2D("event:/Music/stingers/game_lose");
2022-11-23 20:26:53 +08:00
}
}
}
protected override void onDestroy()
{
if (Instance == this)
Instance = null;
}
private void Cheats()
{
if (Input.GetKeyDown(Input.KeyCode.Escape))
{
Audio.StopAllSounds();
SceneManager.ChangeScene(97158628);
}
}
}