public Dictionary <GridElement, int> getAffected() { Dictionary <GridElement, int> res = new Dictionary <GridElement, int>(); if (unitBase == null) { return(res); } if (unitBase.transform == null) { return(res); } if (unitBase.transform.parent == null) { return(res); } if (unitBase.transform.parent.GetComponent <GridElement>() == null) { return(res); } GridElement gridElement = unitBase.transform.parent.GetComponent <GridElement>(); for (int x = 0; x < Zone.size; x++) { for (int z = 0; z < Zone.size; z++) { GameObject myGridElementObject = gridElement.getByXZ(x - (Zone.size - 1) / 2, z - (Zone.size - 1) / 2); if (myGridElementObject != null && zone.zoneValues[z, x] != 0) { res.Add(myGridElementObject.GetComponent <GridElement>(), zone.zoneValues[z, x]); } } } return(res); }
protected override void computeOne(GridElement gridElement, int value) { //UnityEngine.Debug.Log("move: try"); if (value != 1) { return; } //UnityEngine.Debug.Log("move: compute"); Debug.Log("move compute one"); GameObject temp = gridElement.getAbsoluteXZ(0, 5); GridElement goalPos = isGridElement(temp); goalPos = setGoal(goalPos); Debug.Log("Goalpos (" + goalPos.x + "," + goalPos.z + ")"); int x; int z; if (goalPos != null) { var move = Astar(gridElement, goalPos); x = move[0]; z = move[1]; Debug.Log("x: " + x); Debug.Log("z: " + z); } else { x = 0; z = 0; } // TODO A* for x,z GameObject gridElementObject = gridElement.getByXZ(x, z);//Względne if (gridElementObject != null && gridElementObject.GetComponent <GridElement>().unit == null) { GridElement oldGridElement = unitBase.transform.parent.gameObject.GetComponent <GridElement>(); unitBase.transform.SetParent(gridElementObject.transform); gridElementObject.GetComponent <GridElement>().unit = unitBase.gameObject; unitBase.transform.position = new Vector3(gridElementObject.transform.position.x, gridElementObject.transform.position.y - 0.5f, gridElementObject.transform.position.z); oldGridElement.unit = null; // TODO animation goes brrrrrr } else { //UnityEngine.Debug.Log("dupa"); } }
public virtual void perform() { GridElement gridElement = unitBase.transform.parent.GetComponent <GridElement>(); for (int x = 0; x < Zone.size; x++) { for (int z = 0; z < Zone.size; z++) { GameObject myGridElementObject = gridElement.getByXZ(x - (Zone.size - 1) / 2, z - (Zone.size - 1) / 2); if (myGridElementObject != null && zone.zoneValues[z, x] != 0) { performOne(myGridElementObject.GetComponent <GridElement>(), zone.zoneValues[z, x]); } } } }