Пример #1
0
    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;
        }
    }
Пример #2
0
    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();
                    }
                }
            }
        }
    }