Esempio n. 1
0
    /**
     * 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);
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
    /**
     * 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;
    }
Esempio n. 4
0
 public void init(DiseaseColour colour, int maxCubes)
 {
     this.colour       = colour;
     this.maxCubes     = maxCubes;
     this.cubesOnBoard = 0;
     this.cured        = false;
     this.eradicated   = false;
 }
Esempio n. 5
0
    /**
     * 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);
                }
            }
        }
    }
Esempio n. 6
0
    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();
    }
Esempio n. 7
0
 // METHODS
 public void incrementCubeCount(DiseaseColour colour)
 {
     // TODO: CHECK FOR OUTBREAK (>3)
     this.cubeCount[(int)colour]++;
 }
Esempio n. 8
0
 public void setCubeCount(DiseaseColour colour, int count)
 {
     this.cubeCount[(int)colour] = count;
 }
Esempio n. 9
0
 public int getCubeCount(DiseaseColour colour)
 {
     return(this.cubeCount[(int)colour]);
 }
Esempio n. 10
0
 public Location(string name, DiseaseColour colour)
 {
     this.Name   = name;
     this.Colour = colour;
 }