using UnityEngine;
using TMPro;
using System.Data.Common;
using System.Collections;

public class movement : MonoBehaviour
{
    public float speed = 3;
    private Rigidbody2D rb;

    static public bool isrifle;
    static public bool isshotgun;
    static public bool issniper;
    public GameObject F;
    private bool canpick;
    public GameObject bullets;
    public Transform firepoint;
    public float riflerate;


    private string currentwerapon;

    public TextMeshProUGUI wpntext;

    private bool sniper;
    private bool shotgun;
    private bool rifle;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        currentwerapon = "none";
    }

    void Update()
    {

        firepoint.rotation = transform.rotation;

        wpntext.text = "current weapon : " + currentwerapon;

        float movex = Input.GetAxis("Horizontal");
        float movey = Input.GetAxis("Vertical");

        rb.linearVelocity = new Vector2(movex * speed, movey * speed);

        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        mousePos.z = 0f;

        transform.up = mousePos - transform.position;

        if (issniper || isshotgun || isrifle)
        {
            F.SetActive(true);
            canpick = true;
        }
        else
        {
            F.SetActive(false);
            canpick = false;
        }

        if (canpick == true && issniper && Input.GetKeyDown(KeyCode.F))
        {
            sniper = true;
            shotgun = false;
            rifle = false;

            currentwerapon = "sniper";
        }
        if (canpick == true && isshotgun && Input.GetKeyDown(KeyCode.F))
        {
            sniper = false;
            shotgun = true;
            rifle = false;

            currentwerapon = "shotgun";
        }
        if (canpick == true && isrifle && Input.GetKeyDown(KeyCode.F))
        {
            sniper = false;
            shotgun = false;
            rifle = true;

            currentwerapon = "rifle";
        }

        if (rifle && Input.GetKeyDown(KeyCode.Space))
        {
            StartCoroutine(RifleShoot());
        }

    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("rifle"))
        {
           isrifle= true;
        }
        if (collision.gameObject.CompareTag("shotgun"))
        {
           isshotgun= true;
        }
        if (collision.gameObject.CompareTag("sniper"))
        {
           issniper= true;
        }
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("rifle"))
        {
           isrifle= false;
        }
        if (collision.gameObject.CompareTag("shotgun"))
        {
           isshotgun= false;
        }
        if (collision.gameObject.CompareTag("sniper"))
        {
           issniper= false;
        }
    }

    IEnumerator RifleShoot()
    {
        Instantiate(bullets, firepoint.position , firepoint.rotation);
        yield return new WaitForSeconds(riflerate);
    }
}