private void RemoveStatusEffect(TimedStatus status, int index) { Debug.Log("Removing Status Effect"); debuffs.RemoveAt(index); debuffModifiers.RemoveAt(index); debuffTimers.RemoveAt(index); if (status == Burning) { isBurning = false; burningParticles.SetActive(false); } if (status == Iced) { Debug.Log("Removing Yelo"); isSlowed = false; agent.speed = speed; } }
void FixedUpdate() { if (isDead) { deactivateTimer -= Time.deltaTime; if (deactivateTimer <= 0) { for (int i = 0; i < deactivateOnDeath.Length; i++) { deactivateOnDeath[i].SetActive(false); } } return; } if (GameManager.Instance.enemiesArePaused) { return; } if (GameManager.Instance.IsPaused) { return; } rigidbody.velocity = Vector3.zero; if (isAgressive) { if (atkTimer > 0) { atkTimer -= Time.fixedDeltaTime; } else { canAttackPlayer = true; } } if (isDebuffed) { for (int i = 0; i < debuffs.Count; i++) { TimedStatus statusEffect = debuffs[i]; float debuffModifier = debuffModifiers[i]; float debuffTimer = debuffTimers[i]; if (debuffTimer > 0) { debuffTimers[i] -= Time.fixedDeltaTime; statusEffect(debuffModifier); } else { RemoveStatusEffect(statusEffect, i); if (AllDebuffsFinished()) { isDebuffed = false; ResetDebuffs(); } } } } }