public void moveTo(Vector2 spot) { // rxl244: prevent unit from moving twice if(alreadyMoved){ return; }else{ alreadyMoved = true; } terrain = ground.grid[(int)location.y, (int)location.x].GetComponent<TerrainScript>(); terrain.SendMessage("switchOccupied"); ground.grid[(int)location.y, (int)location.x].renderer.material.color = Color.white; terrain = ground.grid[(int)spot.y, (int)spot.x].GetComponent<TerrainScript>(); terrain.SendMessage("switchOccupied"); Vector3 destination = ground.grid[(int)spot.y, (int)spot.x].transform.localPosition; destination.y += 5; location = spot; gameObject.transform.localPosition = destination; // rxl244: so the player can win (AI does this in the AI Master script if(unitType == "radioChild" && team == 1){ foreach(Vector2 goalLocation in ground.goalLocations){ if(location.x == goalLocation.x && location.y == goalLocation.y){ ground.grid[(int)goalLocation.y,(int)goalLocation.x].GetComponent<TerrainScript>().SendMessage("setTaken",1); } } } }
void OnMouseDown() { storeColor = gameObject.renderer.material.color; gameObject.renderer.material.color = Color.white; // rxl244: added if statement to prevent this unit from looking like it can move when it may not be able to if(!alreadyMoved){ terrain = ground.grid[(int)location.y, (int)location.x].GetComponent<TerrainScript>(); terrain.SendMessage("UnitSelected", gameObject); interaction.SendMessage("NewUnitSelected", gameObject); } // rxl244: update interface when unit is clicked on gameMaster.SendMessage("updateUnitInfo",new float[]{this.hp,this.atkPower,this.moveSpeed,this.team}); gameMaster.SendMessage("updateName",this.unitType); }
void team1Make() { // Debug.Log ("Team1"); Vector2[] start = ground.player1StartLocations; Vector3 location = Vector3.zero; team1 = new GameObject[teamSize]; int[] unitTypes = {radioChild, rogue, bomber, brain, brute}; int loopMax = start.Length; if(teamSize < start.Length) loopMax = teamSize; for(int i = (loopMax - 1); i >= 0 ; i--){ terrain = ground.grid[(int)start[i].y, (int)start[i].x].GetComponent<TerrainScript>(); terrain.SendMessage("switchOccupied"); location = ground.grid[(int)start[i].y, (int)start[i].x].transform.localPosition; location.y += 5; UnitScript u; if(unitTypes[0] > 0){ team1[i] = Instantiate(RadioChild) as GameObject; team1[i].transform.localPosition = location; u = team1[i].AddComponent("UnitScript") as UnitScript; setUnit(team1[i], "radioChild"); unitTypes[0]--; }else if(unitTypes[1] > 0){ team1[i] = Instantiate(Rogue) as GameObject; team1[i].transform.localPosition = location; u = team1[i].AddComponent("UnitScript") as UnitScript; setUnit(team1[i], "rogue"); unitTypes[1]--; }else if(unitTypes[2] > 0){ team1[i] = Instantiate(Bomber) as GameObject; team1[i].transform.localPosition = location; u = team1[i].AddComponent("UnitScript") as UnitScript; setUnit(team1[i], "bomber"); unitTypes[2]--; }else if(unitTypes[3] > 0){ team1[i] = Instantiate(Brain) as GameObject; team1[i].transform.localPosition = location; u = team1[i].AddComponent("UnitScript") as UnitScript; setUnit(team1[i], "brain"); unitTypes[3]--; }else { team1[i] = Instantiate(Brute) as GameObject; team1[i].transform.localPosition = location; u = team1[i].AddComponent("UnitScript") as UnitScript; setUnit(team1[i], "brute"); } u.location = start[i]; setTeam (team1[i], 1); // team1[i].renderer.material.color = Color.blue; } // Debug.Log("Team1Complete"); }