public void NewTurn() { foreach (SelectableFloor selectableFloor in selectableFloors) { selectableFloor.blocked = false; if (teamMemberTurn > -1) { if (attackMode) { if (selectableFloor.transform.position.x <= squadMembers[teamMemberTurn].transform.position.x + squadMembers[teamMemberTurn].attackRange && selectableFloor.transform.position.x >= squadMembers[teamMemberTurn].transform.position.x - squadMembers[teamMemberTurn].attackRange && selectableFloor.transform.position.z <= squadMembers[teamMemberTurn].transform.position.z + squadMembers[teamMemberTurn].attackRange && selectableFloor.transform.position.z >= squadMembers[teamMemberTurn].transform.position.z - squadMembers[teamMemberTurn].attackRange && Tools.YZero(selectableFloor.transform.position) != Tools.YZero(squadMembers[teamMemberTurn].transform.position)) { selectableFloor.canAttack = true; } else { selectableFloor.canAttack = false; } selectableFloor.canMove = false; } else { if (selectableFloor.transform.position.x <= squadMembers[teamMemberTurn].transform.position.x + squadMembers[teamMemberTurn].moveSpeed && selectableFloor.transform.position.x >= squadMembers[teamMemberTurn].transform.position.x - squadMembers[teamMemberTurn].moveSpeed && selectableFloor.transform.position.z <= squadMembers[teamMemberTurn].transform.position.z + squadMembers[teamMemberTurn].moveSpeed && selectableFloor.transform.position.z >= squadMembers[teamMemberTurn].transform.position.z - squadMembers[teamMemberTurn].moveSpeed && Tools.YZero(selectableFloor.transform.position) != Tools.YZero(squadMembers[teamMemberTurn].transform.position)) { selectableFloor.canMove = true; } else { selectableFloor.canMove = false; } selectableFloor.canAttack = false; } } else { selectableFloor.canAttack = false; selectableFloor.canMove = false; } } foreach (SquadMember squadMember in squadMembers) { SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(squadMember.transform.position)); under.canMove = false; under.blocked = true; } foreach (SquadMember squadMember in squadMembers) { squadMember.GetComponent <SpriteRenderer>().color = Color.white; } squadMembers[teamMemberTurn].GetComponent <SpriteRenderer>().color = Color.blue; }
// Update is called once per frame void Update() { foreach (Arbre obstacle in obstacles) { SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(obstacle.transform.position)); under.canMove = false; under.blocked = true; } }
private void Start() { SelectableFloor[] selectableFloors = GameObject.Find("Team").GetComponent <SquadControl>().selectableFloors; SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(this.transform.position)); under.canMove = false; under.blocked = true; under.enemy = this; }
void EndMove() { foreach (var enemy in enemies) { foreach (SelectableFloor selectable in selectableFloors) { SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position)); under.enemy = enemy; } } }
// Start is called before the first frame update void Start() { GameObject u = GameObject.Find("Team"); squadMembers = u.GetComponent <SquadControl>().squadMembers; selectableFloors = u.GetComponent <SquadControl>().selectableFloors; enemies = this.gameObject.GetComponentsInChildren <Enemy>(); foreach (Enemy enemy in enemies) { SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position)); under.canMove = false; under.blocked = true; } }
void MoveEnemy(int dist, Vector3 dir, Enemy enemy) { dir.y = .9f; dir.x += (int)UnityEngine.Random.Range(-1, 2); dir.z += (int)UnityEngine.Random.Range(-1, 2); dir.x = Mathf.Clamp(dir.x, 0, GameObject.Find("Map").GetComponent <MapCreator>().mapSize.x - 1); dir.z = Mathf.Clamp(dir.z, 0, GameObject.Find("Map").GetComponent <MapCreator>().mapSize.y - 1); foreach (SelectableFloor selectable in selectableFloors) { SelectableFloor under = Array.Find(selectableFloors, p => Tools.YZero(p.transform.position) == Tools.YZero(enemy.transform.position)); under.enemy = null; } enemies[enemyturn].transform.DOMove(dir, .4f, false); }