using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using Random = UnityEngine.Random;

public class Npc001 : MonoBehaviour
{
    public Rigidbody2D npc;
    public Transform[] posicoesSpawn;
    public GameObject[] itens;
    public int iteninstanciado;
    public GameObject itenAtual;
    public Canvas faladoperso;
    public Text textododialogo;
    public Text textoTimer;
    public string nomedoiten;
    public GameObject okBotao;
    public bool inMisson;
    public bool missionConplete;
    public bool tocPlayer;
    public bool termAFase;
    public int contagemMissao;
    public int maxMissao;
    public float seg;
    public float min;
    public float contagem;
    public bool começacontar;
    // Start is called before the first frame update
    void Start()
    {
        termAFase = false;
        começacontar = false;
        min = 0f;
        seg = 0f;
    }

    // Update is called once per frame
    void Update()
    {
        if (começacontar)
        {
            Timer();
            textoTimer.text = min.ToString("#")+":"+ seg.ToString("#");
        }
        else
        {
            PlayerPrefs.SetFloat("Minutos", min);
            PlayerPrefs.SetFloat("Segundos", seg);
        }
        if (contagemMissao == maxMissao)
        {
            termAFase = true;
            começacontar = false;
        }
        if (FindObjectOfType<ItemBehaviour>())
        {
            nomedoiten = FindObjectOfType<ItemBehaviour>().nomeItem;
        }
        if (!tocPlayer)
        {
            faladoperso.enabled = false;
        }
        else
        {
            if (Input.GetButtonDown("Fire1"))
            {
                ControleFalas();
            }
            faladoperso.enabled = true;
            if (inMisson)
            {
                if (!missionConplete)
                {
                    switch (contagemMissao)
                    {
                        case 5:
                            textododialogo.text = "Parabéns Voce conpletou os 5 itens";
                            break;
                        case 4:
                            textododialogo.text = "Falta 1 item agora procure:" + nomedoiten;
                            break;
                        case 3:
                            textododialogo.text = "Faltam 2 itens agora procure: " + nomedoiten;
                            break;
                        case 2:
                            textododialogo.text = "Faltam 3 itens agora procure: " + nomedoiten;
                            break;
                        case 1:
                            textododialogo.text = "Faltam 4 itens agora procure: " + nomedoiten;
                            break;
                        case 0:
                            textododialogo.text = "Me traga 5 itens no menor tempo começe com: " + nomedoiten;
                            break;
                    }
                }
                else
                {
                    textododialogo.text = "Obrigado você trouxe o item correto";
                }
            }


        }
    }
    void Timer()
    {
        if (seg >= 59f)
        {
            min += 1;
            seg = 0f;
        }
        else
        {
            seg += 1 * Time.deltaTime;
        }
    }
    void ControleFalas()
    {
        if (!inMisson)
        {
            inMisson = true;
            começacontar = true;
            RandomizeItens();
        }
        else
        {
            if (inMisson && missionConplete)
            {
                inMisson = false;
                missionConplete = false;
                contagemMissao += 1;
                FindObjectOfType<PlayerBahaviour>().concluido = false;
            }
        }
    }
    void RandomizeItens()
    {
        int i = Random.Range(0, itens.Length);
        itenAtual = itens[i];
        Instantiate(itenAtual,posicoesSpawn[Random.Range(0, posicoesSpawn.Length)]);


    }
    void OnTriggerEnter2D(Collider2D other) 
    {
        if(other.tag == "Player"){
            tocPlayer = true;
        }
    }
    void OnTriggerExit2D(Collider2D other)
    {
        if(other.tag == "Player")
        {
            tocPlayer = false;
        }
    }
}
