示例#1
0
        public void GetLeverStatus(LeverLocation LeverLocation)
        {
            switch (LeverLocation)
            {
            case LeverLocation.Left:
                _playback.EnqueueQueue(ref _acLeft, AudioType.VoiceOver);
                break;

            case LeverLocation.Middle:
                _playback.EnqueueQueue(ref _acMiddle, AudioType.VoiceOver);
                break;

            case LeverLocation.Right:
                _playback.EnqueueQueue(ref _acRight, AudioType.VoiceOver);
                break;
            }


            switch (_levers[(int)LeverLocation])
            {
            case LeverPosition.low:
                _playback.EnqueueQueue(ref _acLow, AudioType.VoiceOver);
                break;

            case LeverPosition.mid:
                _playback.EnqueueQueue(ref _acMid, AudioType.VoiceOver);
                break;

            case LeverPosition.high:
                _playback.EnqueueQueue(ref _acHigh, AudioType.VoiceOver);
                break;
            }

            _playback.PlayAudioQueue(AudioType.VoiceOver);
        }
示例#2
0
        public void Create()
        {
            Vector3 pos = Vector3.up * -y * generator.roomHeight + Vector3.right * -x * generator.roomWidth;

            GameObject prefab;

            if (isEggRoom)
            {
                GameStateManager gsManager = GameObject.Find("GameState").GetComponent <GameStateManager> ();
                GameObject       eggRoom   = generator.eggRoomPrefab[generator.rand.Next(generator.eggRoomPrefab.Count)];
                prefab = Instantiate(eggRoom, pos, Quaternion.identity) as GameObject;
                // get the position of the egg
                EggDummy eggID  = prefab.GetComponentInChildren <EggDummy>();
                Vector3  eggPos = eggID.transform.position;
                Destroy(eggID.gameObject);
                gsManager.SpawnEgg(eggPos);
                for (int i = 0; i < 4; i++)
                {
                    if (!connectedRooms [i])
                    {
                        GameObject wall = Instantiate(generator.sealingWallNSEWPrefabs [i], pos, Quaternion.identity) as GameObject;
                        wall.transform.parent = prefab.transform;
                    }
                }
                prefab.transform.parent = generator.gameObject.transform;
                return;
            }

            if (isTrapRoom)
            {
                GameStateManager gsManager = GameObject.Find("GameState").GetComponent <GameStateManager> ();
                GameObject       trapRoom  = generator.trapRoomPrefab;
                prefab = Instantiate(trapRoom, pos, Quaternion.identity) as GameObject;
                // get the position of the egg
                TrapLocation  trapLoc  = prefab.GetComponentInChildren <TrapLocation>();
                Vector3       trapPos  = trapLoc.transform.position;
                LeverLocation leverLoc = prefab.GetComponentInChildren <LeverLocation>();
                Vector3       leverPos = leverLoc.transform.position;
                Destroy(trapLoc.gameObject);
                Destroy(leverLoc.gameObject);

                for (int i = 0; i < 4; i++)
                {
                    if (!connectedRooms [i])
                    {
                        GameObject wall = Instantiate(generator.sealingWallNSEWPrefabs [i], pos, Quaternion.identity) as GameObject;
                        wall.transform.parent = prefab.transform;
                    }
                }
                prefab.transform.parent = generator.gameObject.transform;

                SafariManager safariManager = GameObject.Find("GameState").GetComponent <SafariManager> ();
                safariManager.Spawn(trapPos, leverPos);

                return;
            }

            if (this.dist == 0)
            {
                Debug.Log("Room " + x + ", " + y + " has dist 0");
                prefab = Instantiate(generator.startRoomPrefab, pos, Quaternion.identity) as GameObject;
                for (int i = 0; i < 4; i++)
                {
                    if (!connectedRooms [i])
                    {
                        GameObject wall = Instantiate(generator.sealingWallNSEWPrefabs [i], pos, Quaternion.identity) as GameObject;
                        wall.transform.parent = prefab.transform;
                    }
                }
                prefab.transform.parent = generator.gameObject.transform;
                prefab.GetComponentInChildren <LevelTypeDescription> ().description = generator.levelDescription;
                return;
            }

            if (hasTreasure)
            {
                Debug.Log("Adding treasure to Room " + x + ", " + y);
                prefab = Instantiate(generator.treasureRoomPrefab, pos, Quaternion.identity) as GameObject;
                for (int i = 0; i < 4; i++)
                {
                    if (!connectedRooms [i])
                    {
                        GameObject wall = Instantiate(generator.sealingWallNSEWPrefabs [i], pos, Quaternion.identity) as GameObject;
                        wall.transform.parent = prefab.transform;
                    }
                }
                prefab.transform.parent = generator.gameObject.transform;
                return;
            }

            if (connectedRooms[(int)Direction.NORTH] && connectedRooms[(int)Direction.SOUTH] && connectedRooms[(int)Direction.EAST] && connectedRooms[(int)Direction.WEST])
            {
                prefab = generator.omniPrefabs[generator.rand.Next(generator.omniPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.EAST] && connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.northEastWestPrefabs[generator.rand.Next(generator.northEastWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.EAST] && connectedRooms [(int)Direction.SOUTH])
            {
                prefab = generator.northEastSouthPrefabs[generator.rand.Next(generator.northEastSouthPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.SOUTH] && connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.northSouthWestPrefabs[generator.rand.Next(generator.northSouthWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.SOUTH] && connectedRooms [(int)Direction.EAST] && connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.southEastWestPrefabs[generator.rand.Next(generator.southEastWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.EAST])
            {
                prefab = generator.northEastPrefabs[generator.rand.Next(generator.northEastPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.northWestPrefabs[generator.rand.Next(generator.northWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH] && connectedRooms [(int)Direction.SOUTH])
            {
                prefab = generator.northSouthPrefabs[generator.rand.Next(generator.northSouthPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.SOUTH] && connectedRooms [(int)Direction.EAST])
            {
                prefab = generator.southEastPrefabs[generator.rand.Next(generator.southEastPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.SOUTH] && connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.southWestPrefabs[generator.rand.Next(generator.southWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.WEST] && connectedRooms [(int)Direction.EAST])
            {
                prefab = generator.eastWestPrefabs[generator.rand.Next(generator.eastWestPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.NORTH])
            {
                prefab = generator.northPrefabs[generator.rand.Next(generator.northPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.EAST])
            {
                prefab = generator.eastPrefabs[generator.rand.Next(generator.eastPrefabs.Count)];
            }
            else if (connectedRooms [(int)Direction.WEST])
            {
                prefab = generator.westPrefabs[generator.rand.Next(generator.westPrefabs.Count)];
            }
            else
            {
                prefab = generator.southPrefabs[generator.rand.Next(generator.southPrefabs.Count)];
            }

            GameObject tile = Instantiate(prefab, pos, Quaternion.identity) as GameObject;

            tile.transform.parent = generator.gameObject.transform;
        }