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); } } }