Inheritance: MonoBehaviour
示例#1
0
    // this REQUIRES that the memos are placed in such a way that players can NEVER pick them up from inside the trigger zone
    IEnumerator roomSwitch()
    {
        // close door
        doorClosing = true;
        Door.Instance.TryCloseDoor();
        yield return(new WaitWhile(() => Door.Instance.Open));

        doorClosing = false;

        // switch rooms
        currentRoom.Despawn();
        if (destroyCurrentRoomOnSwitch)
        {
            destroyCurrentRoomOnSwitch = false;
            Destroy(currentRoom.gameObject);             // ... onSwitch
        }

        currentRoom    = waitingRoom;
        currentRoomDir = currentRoomDir.Flipped();

        if (pooledRooms.Count > 0)
        {
            nextRoomIndex = (int)Mathf.Repeat(nextRoomIndex + 1, pooledRooms.Count);
            var nextPrefab = pooledRooms[nextRoomIndex];
            waitingRoom = nextPrefab.Respawn(currentRoomDir.Flipped());
        }

        nextIsBedroom = false;

        currentRoomTrigger = currentRoomDir.IsPositive() ? FrontTrigger : BackTrigger;
        waitingRoomTrigger = currentRoomDir.IsNegative() ? FrontTrigger : BackTrigger;
    }
示例#2
0
    void updateNetworkRoom(string r, string n, float rnd)
    {
        GameObject  obj = GameObject.Find(n);
        RoomTrigger tag = obj.GetComponentInChildren <RoomTrigger>() as RoomTrigger;

        tag.room.fromString(r);
        tag.fillRoom(rnd);
        tag.instantiateRoom(tag.room.toString());
        tag.built = true;
    }
示例#3
0
    //Health system


    //--------------------------------------------------------------//
    //  ----------------Used for initialization---------------------//
    //--------------------------------------------------------------//
    void Start()
    {
        enemyState = state.idle;
        //pulling rooms value of entry or exit
        player       = GameObject.FindGameObjectWithTag("Player");
        trigger      = GameObject.FindGameObjectWithTag("Room").GetComponent <RoomTrigger>();
        playerScript = player.GetComponent <PlayerController2D>();
        // grabbing players rigidbody
        playerRigidBody = player.GetComponent <Rigidbody2D>();
        em = GetComponent <Rigidbody2D>();

        //Declares where to return to when not present
        startpos = new Vector3(em.position.x, em.position.y);
        Debug.Log(playerScript.getHealth());
    }
示例#4
0
    void Awake()
    {
        /* locate our different zones for this room */
        RoomTrigger[] temp = GetComponentsInChildren<RoomTrigger>();
        foreach(RoomTrigger zone in temp)
        {
            if(zone.name == "deep")
                deep = zone;
            else if (zone.name == "within")
                within = zone;
        }

        //TODO: change this to search only the local object...
        door = GameObject.Find ("Door");
        door.SetActive(false);
    }
示例#5
0
    void Start()
    {
        Memo.MemoPickedUp += onMemoPickedUp;

        pooledRooms = new List <Room>(RoomPrefabs.Count);
        for (int i = 0; i < RoomPrefabs.Count; i++)
        {
            pooledRooms.Add(Instantiate(RoomPrefabs[i]));
            pooledRooms[i].Despawn();
        }
        Bedroom = Room.Initialize(Bedroom, currentRoomDir);

        currentRoom = Bedroom;
        waitingRoom = pooledRooms[nextRoomIndex].Respawn(currentRoomDir.Flipped());

        currentRoomTrigger = BackTrigger;
        waitingRoomTrigger = FrontTrigger;
    }
 public void OnRoomExit(RoomTrigger room)
 {
     //Debug.Log("OnRoomExit");
     this.inRooms.Remove(room);
     //Debug.Log($"In Rooms {inRooms.Count}");
 }
 public void OnRoomEnter(RoomTrigger room)
 {
     //Debug.Log("OnRoomEnter");
     this.inRooms.Add(room);
     //Debug.Log($"In Rooms {inRooms.Count}");
 }
示例#8
0
 private void Awake()
 {
     roomTrigger = GetComponent <RoomTrigger>();
 }
    private void loadMap(string s, int i)
    {
        int  x    = i;
        Room room = ScriptableObject.CreateInstance("Room") as Room;

        room.fromString(s);
        if (room.getState() == "active" || room.getState() == "treasure" || room.getState() == "boss" || room.getState() == "start")
        {
            GameObject temp = null;
            rooms.Add(tileSet[10]);
            rooms[x].name = "Room: " + x.ToString();
            if (room.getX() == 0 && room.getY() == 0)
            {
                room.setBeaten(true);
                //GameObject camera = GameObject.FindGameObjectWithTag ("MainCamera") as GameObject;
                MouseOrbit orbit = Camera.main.GetComponent <MouseOrbit>();
                orbit.setTarget(rooms[x].gameObject.transform);
            }
            else
            {
                room.setBeaten(false);
            }
            rooms[x] = Instantiate(rooms[x], new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
            temp     = Instantiate(tileSet[0], new Vector3(room.getX() * 50, -15f, room.getY() * 50), Quaternion.identity) as GameObject;
            temp.transform.parent = rooms[x].transform;
            temp = Instantiate(tileSet[7], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject;
            temp.transform.parent = rooms[x].transform;
            temp        = tileSet[5];
            roomTrigger = temp.GetComponent("RoomTrigger") as RoomTrigger;
            roomTrigger.setRoom(room);

            temp = Instantiate(temp, new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject;
            temp.transform.parent = rooms[x].transform;

            //if(room.ge != null){
            if ((room.getLeft() == "null"))
            {
                temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 270f, 0f)) as GameObject;

                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50 - 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            else
            {
                temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 270f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50 - 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            //}

            //if(room.getRoom ("right") != null){
            if ((room.getRight() == "null"))
            {
                temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            else
            {
                temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            //}
            //if(room.getRoom ("up") != null){
            if ((room.getUp() == "null"))
            {
                temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 180f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50 - 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            else
            {
                temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 180f, 0f)) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50 - 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }

            //}
            //if(room.getRoom ("down") != null){
            if ((room.getDown() == "null"))
            {
                temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            else
            {
                temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
                temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject;
                temp.transform.parent = rooms[x].transform;
            }
            //}
            //rooms[x].transform.parent = level.transform;
            if (!room.getBeaten())
            {
                foreach (MeshRenderer r in rooms[x].GetComponentsInChildren <MeshRenderer>())
                {
                    if (r.gameObject.name != "MapRoom")
                    {
                        r.enabled = false;
                    }
                }
            }
            x++;
        }
    }