Esempio n. 1
0
    private void Update()
    {
        CheckZStopped();
        if (Input.GetKeyDown(inputController.Resurrect))
        {
            res.Resurrect();
        }
        if (Input.GetKeyDown(inputController.Heal))
        {
            res.AbsorbHealth();
        }
        if (Input.GetKeyDown(inputController.SwapWeapon))
        {
            gameObject.GetComponent <WeaponController>().SwapWeapon();
        }
        if (Input.GetKeyDown(inputController.Interact))
        {
            if (atDoor)
            {
                GameObject.FindGameObjectWithTag("FadeWall").GetComponent <SceneChanger>().ChooseLevelAndFade();
                GameObject[] exits = GameObject.FindGameObjectsWithTag("Exit");
                foreach (GameObject exit in exits)
                {
                    exit.SetActive(false);
                }
                GameObject.Find("Environment").GetComponent <AudioSource>().PlayOneShot(FindObjectOfType <LevelScript>().GetOpenDoor());
            }
            if (atLoot)
            {
                foreach (GameObject go in GameObject.FindGameObjectsWithTag("Loot"))
                {
                    Destroy(go);
                }
                FindObjectOfType <LootManager>().ChooseLootAndDisplay();
            }
        }
        if (weaponAnim)
        {
            //not loaded, yet reloading, and key pressed
            if (!pc.GetIsLoaded() && (Input.GetKey(inputController.ShootLeft) || Input.GetKey(inputController.ShootRight)) && !pc.GetIsReloading())
            {
                SetShootingBools("Right", false);
                SetShootingBools("Left", false);
                pc.SetIsReloading(true);
                if (Input.GetKey(inputController.ShootRight))
                {
                    torsoAnim.SetBool("isShootingRight", true);
                    weaponAnim.SetBool("isReloadingRight", true);
                }
                else if (Input.GetKey(inputController.ShootLeft))
                {
                    torsoAnim.SetBool("isShootingLeft", true);
                    weaponAnim.SetBool("isReloadingRight", true);
                }
                StartCoroutine(pc.Reload());
            }
            if (pc.GetIsLoaded() && weaponScript.GetNeedsReload())
            {
                weaponAnim.SetBool("isReloadingRight", false);
                weaponAnim.SetBool("isReloadingLeft", false);
            }
            //loaded and not reloading (ready)
            if (pc.GetIsLoaded() && !pc.GetIsReloading())
            {
                torsoAnim.SetBool("isShootingRight", false);
                torsoAnim.SetBool("isShootingLeft", false);

                if (Input.GetKey(inputController.ShootLeft))
                {
                    float origProjXOffset = pc.GetPosOffsetX();
                    float origProjYOffset = pc.GetPosOffsetY();
                    pc.SetPosOffsetX(weaponScript.GetLeftProjXOffset());
                    pc.SetPosOffsetY(weaponScript.GetLeftProjYOffset());
                    pc.FireProjectile(isFiringRight: false);
                    SetShootingBools("Left", true);
                    pc.SetPosOffsetX(origProjXOffset);
                    pc.SetPosOffsetY(origProjYOffset);
                }
                if (Input.GetKey(inputController.ShootRight))
                {
                    pc.FireProjectile(isFiringRight: true);
                    SetShootingBools("Right", true);
                }
            }
            else
            {
                SetShootingBools("Left", false);
                SetShootingBools("Right", false);
            }
            if (!weaponScript.GetNeedsReload() && !(Input.GetKey(inputController.ShootLeft) || Input.GetKey(inputController.ShootRight)))
            {
                SetShootingBools("Left", false);
                SetShootingBools("Right", false);
            }
        }
    }