Esempio n. 1
0
    private Citizen AddCitizen(ResidentialCityBlock home)
    {
        GameObject go      = Instantiate(citizenPrefab, citizenContainer.transform);
        Citizen    citizen = go.GetComponent <Citizen>();

        citizen.SetHome(home);
        citizen.SetPathPlanner(this);

        Coordinate workCoord;

        // If no work buildings exist or 25% chance
        if (occupiedIndustrialBlocks.Count == 0 || Random.Range(0, 100) < 25)
        {
            // Occupy new work building
            int r = Random.Range(0, unoccupiedIndustrialBlocks.Count - 1);
            workCoord = unoccupiedIndustrialBlocks[r];

            unoccupiedIndustrialBlocks.RemoveAt(r);
            occupiedIndustrialBlocks.Add(workCoord);
        }
        else
        {
            // Occupy existing work building
            int r = Random.Range(0, occupiedIndustrialBlocks.Count - 1);
            workCoord = occupiedIndustrialBlocks[r];
        }

        IndustrialCityBlock workBlock = GetBlock(workCoord).GetComponent <IndustrialCityBlock>();

        citizen.SetWork(workBlock);

        return(citizen);
    }
Esempio n. 2
0
 public void SetWork(IndustrialCityBlock work)
 {
     this.work = work;
 }