using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    
    public static GameManager Instance;
    private float PowerDrainModifier;
    public  NightManager nightManager;

    

    private void Awake()
    {
        // Makes Cursor Visible to player
        Cursor.visible = true;
    }



    private void Start() {
        // Makes sure only one version of GameManager Exists
        PowerDrainModifier = nightManager.BasePowerDrainModifier;
        if (Instance == null) {
            Instance = this;
        }
        
        StartCoroutine(nightManager.RunGame());

        
    }
    
    private void FixedUpdate() {
        nightManager.Power -= Time.fixedDeltaTime * PowerDrainModifier;
    }

    void OnEnable() {
        nightManager.HourChange += OnHourChange;
        nightManager.PowerChange += OnPowerChange;
        nightManager.GameLose += OnGameLoss;
        nightManager.GameWin += OnGameWin;
    }



    private void OnDisable() {
        nightManager.HourChange -= OnHourChange;
        nightManager.PowerChange -= OnPowerChange;
        nightManager.GameLose -= OnGameLoss;
        nightManager.GameWin -= OnGameWin;
    }

    private void OnHourChange(int currentHour) {
        Debug.Log("time changed! It's now " + currentHour);
        if(currentHour == nightManager.TotalHours) {
            ;
        }
    }

    private void OnPowerChange(float Power) {
        Debug.Log("Current Power: " + Power);
    }

    private void OnGameWin() {
        Debug.Log("GAME WIN");
        StopCoroutine(nightManager.RunGame());
    }

    private void OnGameLoss() {
        // Start timer before Jumpscare
        Debug.Log("GAME OVER");
        StopCoroutine(nightManager.RunGame());
    }
}