/** * Sets the number of cubes of a certain disease to 0. * Returns the number of cubes removed. */ public int removeAllCubes(DiseaseColour colour) { int numRemoved = this.cubeCount [(int)colour]; this.cubeCount [(int)colour] = 0; return(numRemoved); }
public int totalCubes(DiseaseColour disease) { //sum up the cubes of the given disease var count = _boardLocations.SelectMany(loc => loc.Value.Where(dis => dis.Key == disease).Select(dis => dis.Value)).Sum(); return(count); }
/** * Remove 1 disease cube of a given colour, minimum of 0. */ public void decrementCubeCount(DiseaseColour colour) { int currCount = this.cubeCount [(int)colour]; int newCount = Mathf.Max(currCount - 1, 0); this.cubeCount [(int)colour] = newCount; }
public void init(DiseaseColour colour, int maxCubes) { this.colour = colour; this.maxCubes = maxCubes; this.cubesOnBoard = 0; this.cured = false; this.eradicated = false; }
/** * Remove all disease cubes of cured disease in a given city. * Use this helper method for movement actions (Medic power). */ private void treatDiseasesByMedicMovement(GameObject city) { CityScript cityScript = city.GetComponent <CityScript> (); GameObject[] diseaseList = GameObject.FindGameObjectsWithTag("Disease"); foreach (GameObject disease in diseaseList) { DiseaseScript diseaseScript = disease.GetComponent <DiseaseScript> (); DiseaseColour colour = diseaseScript.getColour(); if (diseaseScript.getCured()) { int numCubesRemoved = cityScript.removeAllCubes(colour); diseaseScript.removeCubes(numCubesRemoved); // check for eradication if (diseaseScript.getCubesOnBoard() == 0) { diseaseScript.setEradicated(true); } } } }
public void RpcTreatDisease(GameObject player, GameObject disease) { PlayerScript playerScript = player.GetComponent <PlayerScript> (); Role role = playerScript.getRole().getRoleName(); CityScript cityScript = playerScript.getCurrentCity().GetComponent <CityScript> (); DiseaseScript diseaseScript = disease.GetComponent <DiseaseScript> (); DiseaseColour colour = diseaseScript.getColour(); if (diseaseScript.getCured()) { // remove all cubes of the chosen disease int numCubesRemoved = cityScript.removeAllCubes(colour); diseaseScript.removeCubes(numCubesRemoved); // check for eradication if (diseaseScript.getCubesOnBoard() == 0) { diseaseScript.setEradicated(true); } } else if (role == Role.Medic) { // remove all cubes of the chosen disease int numCubesRemoved = cityScript.removeAllCubes(colour); diseaseScript.removeCubes(numCubesRemoved); } else { cityScript.decrementCubeCount(colour); diseaseScript.removeCubes(1); } playerScript.decrementActionsLeft(); }
// METHODS public void incrementCubeCount(DiseaseColour colour) { // TODO: CHECK FOR OUTBREAK (>3) this.cubeCount[(int)colour]++; }
public void setCubeCount(DiseaseColour colour, int count) { this.cubeCount[(int)colour] = count; }
public int getCubeCount(DiseaseColour colour) { return(this.cubeCount[(int)colour]); }
public Location(string name, DiseaseColour colour) { this.Name = name; this.Colour = colour; }