// Start is called before the first frame update
 protected override void setEffect(Structure s)
 {
     if (s is ResidencBulding)
     {
         ResidencBulding rb = ((ResidencBulding)s);
         rb.addHappines(Strenth);
     }
 }
    public void addPopulation()
    {
        List <Structure>       r  = GridManager.Instance.getTypeOfObject <ResidencBulding>();
        List <ResidencBulding> rr = new List <ResidencBulding>();
        int maxAddedPopulation    = 0;

        for (int i = 0; i < r.Count; i++)
        {
            ResidencBulding a = (ResidencBulding)r[i];
            maxAddedPopulation += a.maxPopulation - a.population;
            rr.Add(a);
        }
        int populationAdded = (int)(((GlobalVariables.population / 10f) + 10) * (residentDemand / 100));

        if (populationAdded > maxAddedPopulation)
        {
            populationAdded = maxAddedPopulation;
        }
        while (true)
        {
            foreach (ResidencBulding rb in rr)
            {
                if (rb.population < rb.maxPopulation)
                {
                    rb.population++;
                    populationAdded--;
                }
                if (populationAdded <= 0)
                {
                    break;
                }
            }
            if (populationAdded <= 0)
            {
                break;
            }
        }
    }