// Use this for initialization private void Start() { if (isLocalPlayer) { m_CharacterController = GetComponent <CharacterController>(); m_Camera = Camera.main; m_OriginalCameraPosition = m_Camera.transform.localPosition; m_FovKick.Setup(m_Camera); m_HeadBob.Setup(m_Camera, m_StepInterval); m_StepCycle = 0f; m_NextStep = m_StepCycle / 2f; m_Jumping = false; m_MouseLook.Init(transform, m_Camera.transform); currentPower = PowerUp.NONE; health = gameObject.GetComponent <Health>(); inventory = gameObject.GetComponent <Inventory>(); powerActive = false; doubleDamageVar = false; pistol.SetActive(true); SMG.SetActive(false); chatUp = false; //Attaches the gun to the camera foreach (Transform child in transform) { if (child.CompareTag("Rifle")) { child.SetParent(Camera.main.transform, false); Vector3 newPos = child.position; newPos.y -= 0.5f; newPos.z -= 0.05f; child.position = newPos; break; } } powerUpTimerText = GameObject.FindGameObjectWithTag("Timer").GetComponent <Text>(); powerUpTimerText.text = ""; powerEffect.Add(PowerUp.DOUBLE_DAMAGE, doubleDamage); powerEffect.Add(PowerUp.FAST_FIRE, fastFire); powerEffect.Add(PowerUp.FAST_MOVE, fastWalk); powerEffect.Add(PowerUp.JUMP_HIGH, jumpHigh); powerEffect.Add(PowerUp.INVINCIBLE, invincible); } }
// Update is called once per frame private void Update() { if (!isLocalPlayer) { return; } Cursor.lockState = CursorLockMode.None; Cursor.lockState = CursorLockMode.Confined; Cursor.visible = true; Camera.main.transform.position = transform.position + transform.up * 0.5f; Camera.main.transform.parent = transform; if (Input.GetKeyDown(KeyCode.Escape)) { chatUp = !chatUp; } if (!chatUp) { //equip smg if (Input.GetKeyDown(KeyCode.O)) { Debug.Log("SMG equipped"); smgE = true; pistolE = false; pistol.SetActive(false); SMG.SetActive(true); //equip pistol } else if (Input.GetKeyDown(KeyCode.P)) { Debug.Log("Pistol equipped"); smgE = false; pistolE = true; pistol.SetActive(true); SMG.SetActive(false); } //for activating power ups //testing purposes ONLY /*if (Input.GetKeyDown(KeyCode.I)) { * inventory.AddPowerUp(PowerUp.FAST_MOVE); * } * else if (Input.GetKeyDown(KeyCode.G)) { * inventory.AddPowerUp(PowerUp.DOUBLE_DAMAGE); * } * else if (Input.GetKeyDown(KeyCode.F)) { * inventory.AddPowerUp(PowerUp.FAST_FIRE); * } * else if (Input.GetKeyDown(KeyCode.B)) { * inventory.AddPowerUp(PowerUp.INVINCIBLE); * } * else if (Input.GetKeyDown(KeyCode.J)) { * inventory.AddPowerUp(PowerUp.JUMP_HIGH); * }*/ //Check if the player wishes to use a power up if (!powerActive) { if (Input.GetButtonDown("Inventory1")) { currentPower = inventory.getPowerUp(1); if (currentPower != PowerUp.NONE) { inventory.RemovePowerUp(1); powerEffect[currentPower](); powerActive = true; } } else if (Input.GetButtonDown("Inventory2")) { currentPower = inventory.getPowerUp(2); if (currentPower != PowerUp.NONE) { inventory.RemovePowerUp(2); powerEffect[currentPower](); powerActive = true; } } else if (Input.GetButtonDown("Inventory3")) { currentPower = inventory.getPowerUp(3); if (currentPower != PowerUp.NONE) { inventory.RemovePowerUp(3); powerEffect[currentPower](); powerActive = true; } } else if (Input.GetButtonDown("Inventory4")) { currentPower = inventory.getPowerUp(4); if (currentPower != PowerUp.NONE) { inventory.RemovePowerUp(4); powerEffect[currentPower](); powerActive = true; } } else if (Input.GetButtonDown("Inventory5")) { currentPower = inventory.getPowerUp(5); if (currentPower != PowerUp.NONE) { inventory.RemovePowerUp(5); powerEffect[currentPower](); powerActive = true; } } } else { powerUpTimer -= Time.deltaTime; int g = (int)powerUpTimer; powerUpTimerText.text = g.ToString(); } if (powerUpTimer <= 0.0f) { Debug.Log("Power up over"); if (currentPower == PowerUp.INVINCIBLE) { health.SwitchInvincibility(); } powerUpTimerText.text = ""; m_WalkSpeed = 8; m_JumpSpeed = 6; nextFireP = 0.7f; nextFireS = 0.1f; powerUpTimer = 10.0f; currentPower = PowerUp.NONE; doubleDamageVar = false; powerActive = false; } //countdown timer to allow the player to shoot again its just always subtracting and resets when the player shoots nextFireP -= Time.deltaTime; nextFireS -= Time.deltaTime; //used to fire the guns if (Input.GetButton("Fire1")) { if (smgE && nextFireS <= 0.0f) { CmdfireBullet(); //timer until can shoot again if (currentPower == PowerUp.FAST_FIRE) { nextFireS = 0.05f; } else { nextFireS = 0.1f; } } else if (pistolE && nextFireP <= 0.0f) { CmdfireBullet(); //timer until can shoot again if (currentPower == PowerUp.FAST_FIRE) { nextFireP = 0.35f; } else { nextFireP = 0.7f; } } } RotateView(); // the jump state needs to read here to make sure it is not missed if (!m_Jump) { m_Jump = CrossPlatformInputManager.GetButtonDown("Jump"); } if (!m_PreviouslyGrounded && m_CharacterController.isGrounded) { StartCoroutine(m_JumpBob.DoBobCycle()); m_MoveDir.y = 0f; m_Jumping = false; } if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded) { m_MoveDir.y = 0f; } m_PreviouslyGrounded = m_CharacterController.isGrounded; } }