Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (!isDead)
        {
            CheckDeath();
            StopAttack();
            CheckAttack();

            if (Input.GetKeyDown("space") && hasFeather && isGrounded())
            { // jumping
                this.gameObject.GetComponent <Rigidbody>().velocity = new Vector3(0, 5, 0);
                animator.SetBool("Jumping", true);
            }

            // move character
            float   moveStrafe  = Input.GetAxis("Horizontal");
            float   moveForward = Input.GetAxis("Vertical");
            Vector3 movement    = new Vector3(moveStrafe, 0, moveForward);
            transform.Translate(movement * Time.deltaTime * moveSpeed);
            transform.Rotate(0, Input.GetAxis("Mouse X") * turnSpeed, 0);

            // animate the movement
            animator.SetFloat("Forward", moveForward);
            animator.SetFloat("Turn", currentTurn);
            animator.SetFloat("Strafe", moveStrafe);

            cameraAttachment.transform.Rotate(-Input.GetAxis("Mouse Y"), 0, 0);
            // Nudge the camera back in bounds
            float cameraAngle = cameraAttachment.transform.localEulerAngles.x;
            if (cameraAngle >= 180)
            {
                cameraAngle -= 360;
            }
            if (cameraAngle < cameraMinAngle || cameraAngle > cameraMaxAngle)
            {
                float delta = defaultCameraAngle - cameraAngle;
                cameraAttachment.transform.Rotate(Time.deltaTime * delta, 0, 0);
            }
        }
        else if (attackTimer > 0)
        {
            attackTimer -= Time.deltaTime;
        }
        else
        {
            deathTimer -= Time.deltaTime;
            if (deathTimer <= 0)
            {
                DestroyOtherwisePersistentObjects();
                MainMenuController.DisplayMenu(Menu.Lose);
            }
        }
    }
Esempio n. 2
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Enemy 1"))
        {
            takeBlockableDamageFromEnemy(damage);
        }

        if (other.gameObject.CompareTag("Enemy 2"))
        {
            takeBlockableDamageFromEnemy(damage * 2);
        }

        if (other.gameObject.CompareTag("Boss"))
        {
            takeBlockableDamageFromEnemy(damage * 5);
        }

        if (other.gameObject.CompareTag("Key Chest"))
        {
            GameObject.FindGameObjectWithTag("Floor Door").GetComponent <MeshRenderer>().enabled = false;
            other.GetComponent <Animation>().Play("Chest Opening");
            hasKey = true;
        }

        if (other.gameObject.CompareTag("Floor Door") && hasKey)
        {
            audioSource.PlayOneShot(secretSounds[Random.Range(0, secretSounds.Length)]);
            other.gameObject.GetComponent <Collider>().enabled = false;
        }

        if (other.gameObject.CompareTag("Stairs"))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
        }

        if (other.gameObject.CompareTag("Wind Switch"))
        {
            audioSource.PlayOneShot(secretSounds[Random.Range(0, secretSounds.Length)]);
            GameObject.FindGameObjectWithTag("Wind Wall").SetActive(false);
        }

        if (other.gameObject.CompareTag("Death"))
        {
            health = 0;
        }

        if (other.gameObject.CompareTag("Finish"))
        {
            transform.position = new Vector3(-15, 4, 33);
            transform.rotation = new Quaternion(0f, 180f, 0f, 0f);
            timesTricked++;
            indicator.Tricked(timesTricked);
        }

        if (other.gameObject.CompareTag("Next Level"))
        {
            if (gameMode == 1)
            {
                Destroy(this.levelBuilder.gameObject);
                SceneManager.LoadScene("Boss");
                spawner = new Vector3(52.05f, 0.1f, 13);
            }
            else
            {
                levelsCleared++;
                transform.position         = new Vector3(-15, 20, 30);
                transform.rotation         = new Quaternion(0f, 180f, 0f, 0f);
                levelBuilder.levelFinished = true;
                timesTricked = 0;
                indicator.LevelCleared(levelsCleared);
            }
        }

        if (other.gameObject.CompareTag("Spawner"))
        {
            spawner = other.transform.position;
        }

        if (other.gameObject.CompareTag("Fall"))
        {
            transform.position = spawner;
            health            -= 3;
        }

        if (other.gameObject.CompareTag("Win Game"))
        {
            transform.position = new Vector3(2, .3f, 5);
            transform.rotation = new Quaternion(0, 90, 0, 0);
            SceneManager.LoadScene("Win");
            MainMenuController.DisplayMenu(Menu.Win);
        }
    }
Esempio n. 3
0
 public void QuitClicked()
 {
     Time.timeScale = 1;
     player.DestroyOtherwisePersistentObjects();
     MainMenuController.DisplayMenu(Menu.Start);
 }