public void ReloadWeapon() { if (GunStats.MagAmmo < GunStats.MaxMagAmmo) { Player_Controller.CombatState = Player_Controller.CombatStates.Reloading; GunStats.Reload(); } }
// Metodo de atirar do player private void HandleFire() { // Pega a referencia da arma selecionada if (selectedWeapon != weaponChange.selectedWeapon) { activeWeapon.cancelReload(); // cancela um reload se estiver acontecendo cancelMeleeAttack(); // cancela um ataque melee selectedWeapon = weaponChange.selectedWeapon; // pega o numero referencia da arma selecionada activeWeapon = weaponChange.selectedWeaponReference; // pega a referencia da arma selecionada UpdateAmmoUI(); } // Se pode atirar if (Input.GetMouseButtonDown(0) && activeWeapon.canShoot && !activeWeapon.isAutomatic) //left button { if (Time.time > lastShootTime + activeWeapon.fireRate) { FindObjectOfType <AudioManager>().Play("PistolFire"); lastShootTime = Time.time; activeWeapon.cancelReload(); // cancela um reload se estiver acontecendo cancelMeleeAttack(); // cancela um ataque melee activeWeapon.SpendAmmo(); // gasta municao Instantiate(Bullet, firePosition.position, firePosition.rotation); // instancia um objeto bullet playerAnimation.Play("Base Layer.Fire"); // executa animacao de tiro do player } } if (Input.GetMouseButton(0) && activeWeapon.canShoot && activeWeapon.isAutomatic) //left button { if (Time.time > lastShootTime + activeWeapon.fireRate) { FindObjectOfType <AudioManager>().Play("RifleFire"); lastShootTime = Time.time; activeWeapon.cancelReload(); // cancela um reload se estiver acontecendo cancelMeleeAttack(); // cancela um ataque melee activeWeapon.SpendAmmo(); // gasta municao Instantiate(Bullet, firePosition.position, firePosition.rotation); // instancia um objeto bullet playerAnimation.Play("Base Layer.Fire"); // executa animacao de tiro do player } } else if (Input.GetMouseButtonDown(0) && activeWeapon.canReload && !activeWeapon.IsLoaded()) { // Sem municao. Da o reload ao tentar atirar activeWeapon.Reload(); } }