void Update() { if (Input.GetKeyDown(KeyCode.Tab) && _isHomingMissileActive == true) { int weaponType = _homingMissilePrefab.GetWeaponType(); GameObject missile = OnGetWeapon?.Invoke(weaponType); if (missile != null) { missile.transform.position = _spawnPoints[0].position; missile.SetActive(true); _currentMissiles--; if (_currentMissiles < 1) { _currentMissiles = 0; _isHomingMissileActive = false; } OnUpdateMissiles?.Invoke(_currentMissiles, _numberOfMissiles); } } if (Input.GetKey(KeyCode.Space) && Time.time > _canFire && _currentAmmo > 0) { FireLaser(); } CalculateMovement(); }
void Init() { transform.position = Vector2.zero; _baseSpeed = _speed; _currentAmmo = _maxAmmo; _lives = _maxLives; _tripleShotDuration = _powerUpDuration; _speedBoostDuration = _powerUpDuration; _omniShotDuration = _powerUpDuration; _negativeEffectDuration = _powerUpDuration; _shieldRenderer = _shieldVisual.GetComponent <SpriteRenderer>(); _fullShieldColor = _shieldRenderer.color; _shieldVisual.SetActive(false); for (int i = 0; i < _engineFires.Length; i++) { _engineFires[i].SetActive(false); } OnUpdateLives?.Invoke(_lives); OnUpdateThuster?.Invoke(_elapsedTime, _thrusterBurnLength); OnUpdateAmmo?.Invoke(_currentAmmo, _maxAmmo); OnUpdateMissiles?.Invoke(_currentMissiles, _numberOfMissiles); }
public void ActivateHomingMissiles() { _isHomingMissileActive = true; _currentMissiles = _numberOfMissiles; OnUpdateMissiles?.Invoke(_currentMissiles, _numberOfMissiles); }