Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Debug.Log("exit");
            Application.Quit();
        }
        if (unlockUpdate)
        {
            foreach (GameObject go in activ_list)
            {
                ActivityObject ao = go.GetComponent <ActivityObject>();

                if (ao.getNeed() == activities.social)
                {
                    go.gameObject.transform.position = ao.getLocation();
                    //go.gameObject.transform.Translate( ao.getLocation(),Space.World);

                    NPCObject npc_temp = go.GetComponent <NPCObject>();

                    dict[go].material.SetColor("_Color", npc_temp.getStatusColor());
                    if (npc_temp.getCurrentIdleStats() == idle.searching)
                    {
                        ao.invokeStatusMassage("(" + ao.getX() + "," + ao.getY() + ")");
                    }
                    else
                    {
                        ao.invokeStatusMassage(npc_temp.getOccupiedActivity() + "");
                    }
                }
                else
                {
                    if (ao.getStatus())
                    {
                        ao.invokeStatusMassage("Occupied");
                        dict[go].material.SetColor("_Color", Color.red);
                    }
                    else
                    {
                        ao.invokeStatusMassage("avilable");
                        dict[go].material.SetColor("_Color", Color.green);
                    }
                }
            }
            unlockUpdate = false;
        }
    }
Пример #2
0
    private void initTheActivities()
    {
        activ_list = new ArrayList();

        int i, j;

        foreach (GameObject go in GameObject.FindGameObjectsWithTag("fun"))
        {
            Debug.Log("fun");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.fun);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall)
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            ob.setUpdateable();

            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }
        //set the entrences objects



        foreach (GameObject go in GameObject.FindGameObjectsWithTag("bladder"))
        {
            Debug.Log("bladder");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.bladder);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall
                   )
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            ob.setUpdateable();
            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }

        foreach (GameObject go in GameObject.FindGameObjectsWithTag("hunger"))
        {
            Debug.Log("hunger");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.hunger);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall)
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            ob.setUpdateable();
            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }

        foreach (GameObject go in GameObject.FindGameObjectsWithTag("hygiene"))
        {
            Debug.Log("hygiene");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.hygiene);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall)
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            ob.setUpdateable();
            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }

        foreach (GameObject go in GameObject.FindGameObjectsWithTag("energy"))
        {
            Debug.Log("energy");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.energy);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall)
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            ob.setUpdateable();
            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }

        foreach (GameObject go in GameObject.FindGameObjectsWithTag("social"))
        {
            Debug.Log("social");
            ActivityObject ob = go.GetComponent <ActivityObject>();
            ob.setNeed(activities.social);
            i = Random.Range(2, layout.getSize() - 2);
            j = Random.Range(2, layout.getSize() - 2);
            while (physicalMap.getpathMapValue(i, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i + 1, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j + 1) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j) is house.wall ||
                   physicalMap.getpathMapValue(i - 1, j - 1) is house.wall ||
                   physicalMap.getpathMapValue(i, j - 1) is house.wall)
            {
                i = Random.Range(2, layout.getSize() - 2);
                j = Random.Range(2, layout.getSize() - 2);
            }
            worldMap[i, j] = house.unavailable_floor;
            ob.setMapLocation(i, j, size);

            NPCObject npc = go.GetComponent <NPCObject>();



            ob.setUpdateable();


            go.gameObject.transform.position = ob.getLocation();
            dict.Add(go, go.GetComponentInChildren <Renderer>());
            activ_list.Add(go);
        }

        Debug.Log("all activities" + activ_list.Count);
    }