using UnityEngine; using System; using System.Collections; using System.Collections.Generic; public class TurnManagerScript : MonoBehaviour { public int turnNum = 0; public int playerNum = 2; public int iaNum = 0; public bool inTurn = true; //public List > charList; public List terrain; public List charMap; public Vector2 mapSize; private int actualPlayer; private int actualNumChars; private int actualNumFinishedChars; public GameObject cursor; private float accTime; private float timeStep; private float timeExp; private float timeExpStep; private float timeExpLimit; // Use this for initialization void Start () { //Estamos en turno inTurn = true; actualPlayer = 0; actualNumChars = 1;//charList [actualPlayer].Count; // Characters that have finished its actions actualNumFinishedChars = 0; timeStep = 0.4f; timeExp = 0.0f; timeExpStep = 0.04f; timeExpLimit = 0.3f; cursor = Instantiate (cursor, new Vector3 (1.0f, 1.5f, 1.0f), Quaternion.identity) as GameObject; cursor.transform.Rotate (new Vector3(90, 0, 0)); } // Update is called once per frame void Update () { accTime += Time.deltaTime; if (Input.GetKey (KeyCode.A) && accTime > (timeStep-timeExp)) { accTime -= (timeStep - timeExp); if (timeExp < timeExpLimit) timeExp += timeExpStep; cursor.transform.Translate (-1f, 0, 0); } else if (Input.GetKeyUp (KeyCode.LeftArrow)) { timeExp = 0.0f; } if (Input.GetKey (KeyCode.D) && accTime > (timeStep-timeExp)) { accTime -= (timeStep - timeExp); if (timeExp < timeExpLimit) timeExp += timeExpStep; cursor.transform.Translate (1f, 0, 0); } else if (Input.GetKeyUp (KeyCode.D)) { timeExp = 0.0f; } if (Input.GetKey (KeyCode.W) && accTime > (timeStep-timeExp)) { accTime -= (timeStep - timeExp); if (timeExp < timeExpLimit) timeExp += timeExpStep; cursor.transform.Translate (0, 1f, 0); } else if (Input.GetKeyUp (KeyCode.W)) { timeExp = 0.0f; } if (Input.GetKey (KeyCode.S) && accTime > (timeStep-timeExp)) { accTime -= (timeStep - timeExp); if (timeExp < timeExpLimit) timeExp += timeExpStep; cursor.transform.Translate (0, -1f, 0); } else if (Input.GetKeyUp (KeyCode.S)) { timeExp = 0.0f; } if (Input.GetKeyUp (KeyCode.Space)) { Vector2 tilePosition = cursor.transform.position; //Obtener GameObject de la matriz luego extraer sus funciones //Mostrar opciones y elegir una //Ejecutar acción //Profit } if (actualNumFinishedChars == actualNumChars) { changeTeam ((actualPlayer + 1) % playerNum); } } // Attack position (i,j) -> row i, column j void execute(Action act, int i, int j) { GameObject c = charMap [i * (int) mapSize.x + j]; act (c); } void attack(int i, int j, params int[] altParams ) { } void attackRange (int i, int j, int k, int l, params int[] altParams ) { } void changeTeam (int newTeam) { actualPlayer = newTeam; //actualNumChars = charList [actualPlayer].Count; actualNumFinishedChars = 0; } }