using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using static CommunicationEvents;

public class WaitingForLocalMMT : MonoBehaviour
{
    private void OnEnable()
    {
        StartCoroutine(ServerRoutine());
    }

    private void OnDisable()
    {
        StopCoroutine(ServerRoutine());
    }

    void PrepareGame()
    {
        //This condition should always be true if PrepareGame gets called, but it never hurts to make sure.
        if (CommunicationEvents.ServerRunning)
        {
            CommunicationEvents.ServerAdress = "http://" + CommunicationEvents.ServerAddressLocal; //ServerAddress needs the "http://"
            //UnityEngine.Debug.Log("StartMainMenu");
            SceneManager.LoadScene("MainMenu");
        }
    }

    IEnumerator ServerRoutine()
    {
        while (true)
        {
            yield return ServerSlots[ServerSlot.localServer].UpdateServerStatus(skipIfAlreadyChecked: false);

            // The address of the localServer currently cannot change, so it is never empty/illegal
            // If this can happen in the future, this condition may not suffice
            if (ServerSlots[ServerSlot.localServer].currentStatus == ServerStatus.online)
            {
                CommunicationEvents.ServerRunning = true;
                PrepareGame();
            }

            //Wait for 2 seconds
            yield return new WaitForSecondsRealtime(2f);
            print("waiting");
        }


    }

    public UnityWebRequest pingL()
    {
        //UnityWebRequest request = UnityWebRequest.Get("http://" + NetwAddress + "/scroll/list");
        //using UnityWebRequest request = UnityWebRequest.Get(CommunicationEvents.ServerAddressLocal + "/scroll/list");
        UnityWebRequest request = UnityWebRequest.Get("http://" + CommunicationEvents.ServerAddressLocal + "/fact/list");
        return request;
    }
}