protected GameObject GetLaser() { int weaponID = _laserPrefab.GetWeaponType(); GameObject laser = OnGetLaser?.Invoke(weaponID); if (laser != null) { return(laser); } return(null); }
void FireLaser() { GameObject weapon; if (_isNegativeEffectActive == true || _isOmniShotActive == true) { _canFire = Time.time + _fireRate + _fireDelayIncrease; } else { _canFire = Time.time + _fireRate; } PlayClip(_laserClip); if (_isTripleShotActive == true) { int weaponType = _laserPrefab.GetWeaponType(); for (int i = 0; i < _spawnPoints.Length; i++) { weapon = OnGetLaser?.Invoke(weaponType); if (weapon != null) { weapon.transform.position = _spawnPoints[i].position; weapon.SetActive(true); } } } else if (_isOmniShotActive == true) { int weaponType = _omniShotPrefab.GetWeaponType(); weapon = OnGetWeapon?.Invoke(weaponType); if (weapon != null) { weapon.transform.position = transform.position; weapon.SetActive(true); } } else { int weaponType = _laserPrefab.GetWeaponType(); weapon = OnGetLaser?.Invoke(weaponType); if (weapon != null) { weapon.transform.position = _spawnPoints[0].position; weapon.SetActive(true); _currentAmmo--; OnUpdateAmmo?.Invoke(_currentAmmo, _maxAmmo); } } }
protected virtual void FireLaser() { float fireRate = Random.Range(_minFireDelay, _maxFireDelay); _canFire = Time.time + fireRate; PlayClip(_laserClip); GameObject enemyLaser; for (int i = 0; i < _laserSpawns.Length; i++) { int weaponType = _laserPrefab.GetWeaponType(); enemyLaser = OnGetLaser?.Invoke(weaponType); if (enemyLaser != null) { enemyLaser.GetComponent <Laser>().AssignEnemyLaser(); enemyLaser.transform.position = _laserSpawns[i].position; enemyLaser.SetActive(true); } } }