TigerProject/Assets/Scripts/System/GameManager.cs

63 lines
1.3 KiB
C#
Raw Normal View History

using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager instance;
private Player _player;
private int comboCount = 0;
[SerializeField] private float maxTimeScale = 1.3f;
[SerializeField] private int comboForMaxSpeed = 30;
private void Awake()
{
if(instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
return;
}
GameObject playerObj = GameObject.FindGameObjectWithTag("Player");
if (playerObj != null)
{
_player = playerObj.GetComponent<Player>();
}
}
private void OnEnable()
{
Entity.OnEnemyDeathEvent += OnEnemyKilled;
}
private void OnDisable()
{
Entity.OnEnemyDeathEvent -= OnEnemyKilled;
}
private void OnEnemyKilled(int reward)
{
AddCombo();
_player.Heal(reward);
}
private void AddCombo()
{
comboCount++;
float speedRatio = (float)comboCount / comboForMaxSpeed;
Time.timeScale = 1 + ((maxTimeScale - 1) * speedRatio);
if (Time.timeScale > maxTimeScale) Time.timeScale = maxTimeScale;
}
public void ResetCombo()
{
comboCount = 0;
Time.timeScale = 1f;
}
}