using UnityEngine;
using System.Collections;

public class Movimentacao : MonoBehaviour {
	public float velocidade;
	public GameObject camera_;
	public bool ativo = false;
	public Direcao direcaoPersonagem;
	public Sprite[] sprites;



	// Use this for initialization
	void Awake () {
		camera_ = transform.GetChild(0).gameObject;
	}
	
	// Update is called once per frame
	void Update () {
		if (!ativo) return;

		if (Input.GetKey (KeyCode.UpArrow)) {
			transform.Translate (0, 0, velocidade * Time.deltaTime);
		} else if (Input.GetKey (KeyCode.DownArrow)) {
			transform.Translate (0, 0, velocidade * -Time.deltaTime);
		} else if (Input.GetKey (KeyCode.LeftArrow)) {
			transform.Translate (velocidade * -Time.deltaTime, 0, 0);
		} else if (Input.GetKey (KeyCode.RightArrow)) {
			transform.Translate (velocidade * Time.deltaTime, 0, 0);
		}

		Militar m = this.GetComponent<Militar> ();
		Direcao anterior = direcaoPersonagem;
		if (m == null || !m.escudoAtivo) {
			if (Input.GetKey (KeyCode.UpArrow)) {
				direcaoPersonagem = Direcao.CIMA;
			} else if (Input.GetKey (KeyCode.DownArrow)) {
				direcaoPersonagem = Direcao.BAIXO;
			} else if (Input.GetKey (KeyCode.LeftArrow)) {
				direcaoPersonagem = Direcao.ESQUERDA;
			} else if (Input.GetKey (KeyCode.RightArrow)) {
				direcaoPersonagem = Direcao.DIREITA;
			}
		} else
			this.direcaoPersonagem = m.direcaoEscudo;
		if (anterior != direcaoPersonagem) 
						GetComponentInChildren<Animator> ().SetInteger ("direcao", (int)direcaoPersonagem);

	}

	public void Desativa() {
		ativo = false;
		camera_.SetActive (false);
	}

	public void Ativa() {
		ativo = true;
		camera_.SetActive (true);
	}

	void OnCollisionEnter(Collision c) {
		if (c.gameObject.tag == "buraco") {
			this.collider.enabled = false;
			Invoke("Reativa", 1f);
		}
	}

	void Reativa() {
		this.collider.enabled = true;
	}
}
