using UnityEngine;
using System.Collections;

public class Militar : Inventario {
	float ultimoTiro;
	public float cooldown;
	public Transform spawnpoint;
	public GameObject bullet;

	public bool escudoAtivo = false;
	public Direcao direcaoEscudo;

	public Texture retrato;
	public Texture fuzil, escudo;
	private Texture display;
	public Texture[] vidas;
	public int hp = 3;
	public int maxHp = 3;

	void Start () {
		this.adicionaOpcao ("Fuzil");
		this.adicionaOpcao ("Escudo");
		ultimoTiro = Time.time;
		this.setContinuo (true);
		this.setInformative (this.gameObject);
		display = fuzil;
	}
	
	public override void Acao() {
		string s = this.getAtual ();
		switch (s) {
		case "Fuzil":
			if(ultimoTiro + cooldown < Time.time) {
				ultimoTiro = Time.time;
				Direcao d = GameObject.Find("Militar").GetComponent<Movimentacao>().direcaoPersonagem;


				if(d == Direcao.DIREITA) d = (Direcao) 1;
				if(d == Direcao.ESQUERDA) d = (Direcao) 3;
				Debug.LogWarning(d.ToString());
				Instantiate(bullet, spawnpoint.position, Quaternion.Euler(0, (int) d * 90, 0));
				audio.Play();
			}
			break;
		/*case "Escudo":
			if(!escudoAtivo) {
				direcaoEscudo = this.GetComponent<Movimentacao>().direcaoPersonagem;
				escudoAtivo = true;
			}
			else escudoAtivo = false;
			break;*/
		default:
			break;
		}
	}

	void OnCollisionEnter(Collision c) {
		base.OnCollisionEnter (c);
		if (c.gameObject.tag == "inimigo") {
			this.hp--;
			if(hp < 0) this.gameObject.SetActive(false);
		}
	}

	void Vodka() {
		hp += (2 * maxHp) / 3;
		if (hp > maxHp)
			hp = maxHp;
	}

	void Inventario(string s) {
		if (s == "Fuzil")
						display = fuzil;
				else
						display = escudo;
		Debug.Log (s);
	}

	void OnGUI() {
		GUI.Label (new Rect (10, 60+10, 50, 50), retrato);
		GUI.Label(new Rect(19, 60+55, 30,19), display);
		GUI.Label (new Rect (16, 60+46, 32, 70), vidas [hp]);
	}
}
