Пример #1
0
    IEnumerator freezeDuration()
    {
        //sfx, vfx
        audioz.freezeSFX.Play();

        movementSpd.x       *= 0.7f;
        dirAttkChargeSpd[0] *= 0.7f;
        yield return(new WaitForSeconds(3));

        movementSpd.x       /= 0.7f;
        dirAttkChargeSpd[0] /= 0.7f;

        debuff = Enemy.BuffMode.none; //cancels after duration
    }
Пример #2
0
    public void triggerBuff(Enemy.BuffMode b)
    {
        if (currBuffProcess != null)
        {
            StopCoroutine(currBuffProcess);
        }
        debuff = b; GameObject explosionPrefab;
        bool parentToOther = false;

        switch (b)
        {
        case Enemy.BuffMode.burn:
            explosionPrefab = prefabHolder.palletExplosionRed;
            parentToOther   = true;

            currBuffProcess = burnDuration();
            StartCoroutine(currBuffProcess);
            break;

        case Enemy.BuffMode.freeze:
            explosionPrefab = prefabHolder.palletExplosionBlue;
            parentToOther   = true;

            currBuffProcess = freezeDuration();
            StartCoroutine(currBuffProcess);
            break;

        default:
            Debug.Log("buff case not recognized");
            explosionPrefab = null;
            break;
        }

        GameObject effect = (explosionPrefab != null) ? Instantiate(explosionPrefab, transform.position, transform.rotation) : null;

        if (parentToOther)
        {
            effect.transform.parent = transform;
        }
    }