void Start() { OnDeath.AddListener(Death); if (enemySettings.mobType == MobType.Patroller) { agent.destination = patrolPoints[0]; agent.SearchPath(); } }
protected override void Start() { base.Start(); // Add turn aggressive listeners TurnAggressive.AddListener(() => { TurnAggressiveWrapper(false); }); TurnAggressiveHyperseed.AddListener(() => { TurnAggressiveWrapper(true); }); // Aggro enemies when damage is taken & play damaged SFX OnTakeDamage.AddListener(() => { // If enemy damaged sound is playing, don't repeat if (EnemySoundSingleton.instance.DamageTakenSoundActive == false) { EnemySoundSingleton.instance.DamageTakenSoundActive = true; _enemyFX.DamageTaken.Invoke(); } // Aggro group GetComponentInParent <EnemyGroup>()?.OnEnemyDamage.Invoke(); }); // Death Event OnDeath.AddListener(() => { if (currentBehavior != null) { StopCoroutine(currentBehavior); } currentBehavior = StartCoroutine(Die()); }); spawnPosition = transform.position; // Start behavior if (currentState == EnemyState.Aggressive) { currentBehavior = StartCoroutine(Idle()); TurnAggressive.Invoke(); } else { currentBehavior = StartCoroutine(Idle()); } StartCoroutine(CheckBehavior()); StartCoroutine(EnemyModifications()); }
void Start() { OnDamageTaken.AddListener(FlashRed); OnDamageTaken.AddListener((health) => GameManager.LevelingSystem.AddXP(20)); OnDeath.AddListener(() => GameManager.LevelingSystem.AddXP(100)); }