Ejemplo n.º 1
0
    ////////////////////////////////////////////////////////////////

    public void NewSong()
    {
        audioSource.clip = music[Random.Range(0, music.Count)];
        length           = audioSource.clip.length;
        audioSource.Play();

        DebugManager.GetInstance().Print(this.ToString(), "Playing new song: " + audioSource.clip.name + " Length: " + audioSource.clip.length);
    }
Ejemplo n.º 2
0
 //change room
 public void ChangeRoom(GameObject newDoor)
 {
     room++;
     DebugManager.GetInstance().Print(this.ToString(), "Info: Walked into room " + room);
     proceedText.GetComponent <Text>().text = " ";
     //fix error for first room
     if (currentDoor != null)
     {
         currentDoor.SetActive(true);
     }
     currentDoor = newDoor;
 }
Ejemplo n.º 3
0
 //check if win or proceed
 public override void Cleared()
 {
     if (room >= length)
     {
         Win();
         DebugManager.GetInstance().Print(this.ToString(), "Info: Player win");
     }
     else
     {
         proceedText.text = "PROCEED TO NEXT ROOM";
         DebugManager.GetInstance().Print(this.ToString(), "Info: Cleared room " + room);
     }
 }
Ejemplo n.º 4
0
 private void Start()
 {
     _drawPathToggle.onValueChanged.AddListener(delegate { DebugManager.GetInstance().OnDrawPathToggleChanged(_drawPathToggle.isOn); });
     _drawRegionsToggle.onValueChanged.AddListener(delegate { DebugManager.GetInstance().OnDrawRegionsToggleChanged(_drawRegionsToggle.isOn); });
 }
Ejemplo n.º 5
0
    void Input_FirstPerson()
    {
        //basic movement
        if (Input.GetKey(KeyCode.W))
        {
            transform.position += transform.forward * movementSpeed * Time.deltaTime;
            moving              = true;
        }
        else if (Input.GetKey(KeyCode.S))
        {
            transform.position -= transform.forward * movementSpeed * Time.deltaTime;
            moving              = true;
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.position += transform.right * movementSpeed * Time.deltaTime;
            moving              = true;
        }
        else if (Input.GetKey(KeyCode.A))
        {
            transform.position -= transform.right * movementSpeed * Time.deltaTime;
            moving              = true;
        }

        //jump
        //must be near to ground (near, not on)
        if (Input.GetKeyDown(KeyCode.Space) &&
            Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), jumpLimit))
        {
            rb.AddForce(Vector3.up * jumpHeight, ForceMode.Impulse);
        }
        if (rb.velocity.y < -2)
        {
            rb.velocity += Vector3.down * fallSpeed;
        }

        flying = true;
        if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), jumpLimit))
        {
            flying = false;
        }

        if (Input.GetKey(KeyCode.Space) && flying)
        {
            if (flyingFill > 0)
            {
                rb.AddForce(Vector3.up * flyingPower, ForceMode.Force);
                flyingFill        -= Time.deltaTime * flyingUseRate;
                flyingSlider.value = flyingFill;
            }
        }

        if (flyingFill < flyingFillMax)
        {
            flyingFill        += Time.deltaTime * flyingRecovoryRate;
            flyingSlider.value = flyingFill;
        }

        //crouch mode
        //will move slower
        //shorter boxcollider
        //player will have to move to make room for new collider
        if (Input.GetKeyDown(KeyCode.LeftControl) && crouching == false)
        {
            boxCol.size        = new Vector3(1, 1, 1);
            transform.position = new Vector3(transform.position.x, transform.position.y - 0.3f, transform.position.z);
            crouching          = !crouching;
            movementSpeed     -= 5;
        }
        else if (Input.GetKeyUp(KeyCode.LeftControl) && crouching == true || Input.GetKeyDown(KeyCode.Space) && crouching == true)
        {
            boxCol.size        = new Vector3(1, 2, 1);
            transform.position = new Vector3(transform.position.x, transform.position.y + 0.3f, transform.position.z);
            crouching          = !crouching;
            movementSpeed     += 5;
        }

        //make player y rotation same as camera
        transform.rotation = Quaternion.Euler(0, playerPerspectiveCamera.transform.eulerAngles.y, 0);

        if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.S) || Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.A))
        {
            StartCoroutine(notMoving());
        }

        if (Input.GetKeyUp(KeyCode.P))
        {
            DebugManager.GetInstance().ChangeConsoleState();
        }
    }
Ejemplo n.º 6
0
    ////////////////////////////////////////////////////////////////

    public void Initialize()
    {
        ////////////////////////////////////////////////////////////////

        foreach (Transform trans in GameObject.Find("PlaceholderBullets").transform)
        {
            prefabBullets.Add(trans.name, trans.gameObject);
        }

        ////////////////////////////////////////////////////////////////

        int[]         mostUsed    = new int[toMake.Keys.Count];
        List <string> bulletTypes = new List <string>(prefabBullets.Keys);

        foreach (string room in rooms)
        {
            for (int i = 0; i < prefabBullets.Keys.Count; i++)
            {
                if (users[room].ContainsKey(bulletTypes[i]))
                {
                    if (users[room][bulletTypes[i]] > mostUsed[i])
                    {
                        mostUsed[i] = users[room][bulletTypes[i]];
                    }
                }
            }
        }

        ////////////////////////////////////////////////////////////////

        List <string> keys = new List <string>(toMake.Keys);

        for (int i = 0; i < keys.Count; i++)
        {
            toMake[keys[i]]  = Mathf.RoundToInt(toMake[keys[i]] * mostUsed[i]);
            toMake[keys[i]] += 200;
            if (toMake[keys[i]] > 2000)
            {
                toMake[keys[i]] = 2000;
            }

            DebugManager.GetInstance().Print(this.ToString(), "To make: " + keys[i] + " " + toMake[keys[i]]);
            inventory.Add(keys[i], 0);
            created.Add(keys[i], 0);

            ////////////////////////////////////////////////////////////////

            //get correct bullet in scene
            GameObject bullet = new GameObject();
            foreach (GameObject b in prefabBullets.Values)
            {
                if (b.name == keys[i])
                {
                    bullet = b;
                    break;
                }
            }

            //make bullets
            if (transform.Find(keys[i] + "list") == false)
            {
                GameObject list = new GameObject();
                list.name             = keys[i] + "list";
                list.transform.parent = transform;
                Instantiate(bullet, list.transform);
            }
        }

        ////////////////////////////////////////////////////////////////

        DebugManager.GetInstance().Print(this.ToString(), "Info: Set bullet limits");
    }
Ejemplo n.º 7
0
    public void CreateRoomLevel(int length)
    {
        ////////////////////////////////////////////////////////////////

        GameObject        map          = GameObject.Find("Map");
        List <Vector3>    vectorList   = new List <Vector3>();    //positions for rooms
        List <GameObject> rooms        = new List <GameObject>(); //room objects
        List <GameObject> specialRooms = new List <GameObject>(); //rooms with special placement

        ////////////////////////////////////////////////////////////////
        // ADD ROOM POSITIONS
        ////////////////////////////////////////////////////////////////

        for (int i = 0; i < length; i++)
        {
            vectorList.Add(new Vector3(0, 0, i * roomSize));
        }

        ////////////////////////////////////////////////////////////////
        // GET AVAILABLE ROOMS
        ////////////////////////////////////////////////////////////////

        foreach (Transform t in map.transform)
        {
            if (t.GetComponent <Room>().startRoom || t.GetComponent <Room>().endRoom)
            {
                specialRooms.Add(t.gameObject);
            }
            else
            {
                rooms.Add(t.gameObject);
            }
        }

        ////////////////////////////////////////////////////////////////
        // DESTROY AND RECREATE MAP
        ////////////////////////////////////////////////////////////////

        Destroy(map);
        map      = new GameObject();
        map.name = "Map";
        //navmeshsurface to rebuild navmesh
        map.AddComponent <NavMeshSurface>();

        ////////////////////////////////////////////////////////////////
        // PLACE THE ROOMS
        ////////////////////////////////////////////////////////////////

        int counter = 1;

        foreach (Vector3 vec in vectorList)
        {
            bool special = false;
            foreach (GameObject go in specialRooms)
            {
                if (go.GetComponent <Room>().GetPosY() == vec.z / roomSize)
                {
                    GameObject room = Instantiate(go, vec, Quaternion.identity);
                    room.transform.parent = map.transform;
                    room.name            += counter;
                    special = true;
                }
            }

            if (special == false)
            {
                GameObject room = Instantiate(rooms[Random.Range(0, rooms.Count)], vec, Quaternion.identity);
                room.transform.parent = map.transform;
                room.name            += counter;
            }
            counter++;
        }

        map.GetComponent <NavMeshSurface>().BuildNavMesh();

        DebugManager.GetInstance().Print(this.ToString(), "Info: Built map");

        ////////////////////////////////////////////////////////////////
        // INITIALIZE ENEMIES
        ////////////////////////////////////////////////////////////////

        Enemy[] enemies = FindObjectsOfType <Enemy>();
        foreach (Enemy enemy in enemies)
        {
            enemy.Initialize();
        }

        AnimatedObstacle[] obstacles = FindObjectsOfType <AnimatedObstacle>();
        foreach (AnimatedObstacle obstacle in obstacles)
        {
            obstacle.Initialize();
        }

        ////////////////////////////////////////////////////////////////

        DebugManager.GetInstance().Print(this.ToString(), "Info: Initialized Enemies");
    }