private void EnableSuperMode() { _equippedWeapons[0].FireCooldown = 0.5f; _equippedWeapons[1].FireCooldown = 0.75f; _equippedWeapons[1].gameObject.SetActive(true); _healthDisplay.AddHealth(); _healthDisplay.AddHealth(); _pyre.AddFuel(false); var enemies = ActorChoreographer.Instance.Enemies.ToArray(); Enemy closestEnemy = null; var minDistance = Mathf.Infinity; enemies.ForEach( x => { if (!x.enabled) { return; } var impactDir = x.transform.position - transform.position; x.DoImpact(impactDir.normalized * 20f); x.TakeDamage(RandomProvider.Instance.Random.Next(0, 2)); var distance = Vector2.Distance(x.transform.position, transform.position); if (minDistance > distance) { closestEnemy = x; minDistance = distance; } }); if (closestEnemy != null) { ScoreDisplay.Instance.AddScore(100, enemies.Length, "- SLAYER", closestEnemy.transform.position); } _superEffects.gameObject.SetActive(true); _acceleration = 80f; _maxVelocity = 5f; AudioPlayer.Instance.PlayOneShot(AudioPlayer.Instance.Powerup, 0.10f); Invoke(nameof(DisableSuperMode), 8.5f); }
public void HealthUp() { if (health < 3) { healthDisplay.AddHealth(); health++; agent.AddReward(0.1f); healthSound.Play(); } }