Beispiel #1
0
 private void Start()
 {
     sr = GetComponent <SpriteRenderer>();
     ef = GetComponent <EffectsAnimator>();
     StartCoroutine(AnimateIdle());
 }
    public void StartAnimation(int number, EffectsAnimator opponent)
    {
        bool doEnemyOverlay = false, doEnemyUnderlay = false, doEnemyColour = false;

        switch (number)
        {
        case 0:
            currentOverlayFrames      = baseOverlayFrames; currentUnderlayFrames = baseUnderlayFrames; currentColourOverlay = baseColourOverlay;
            currentColourOverlayDelay = bColourOverlayDelaySeconds; currentBigEffect = bBigEffectToPlay;
            doEnemyOverlay            = bo_toEnemy; doEnemyUnderlay = bu_toEnemy; doEnemyColour = bc_toEnemy;
            break;

        case 1:
            currentOverlayFrames      = specialOverlayFrames; currentUnderlayFrames = specialUnderlayFrames; currentColourOverlay = specialColourOverlay;
            currentColourOverlayDelay = sColourOverlayDelaySeconds; currentBigEffect = sBigEffectToPlay;
            doEnemyOverlay            = so_toEnemy; doEnemyUnderlay = su_toEnemy; doEnemyColour = sc_toEnemy;
            break;

        case 2:
            currentOverlayFrames      = ultimateOverlayFrames; currentUnderlayFrames = ultimateUnderlayFrames; currentColourOverlay = ultimateColourOverlay;
            currentColourOverlayDelay = uColourOverlayDelaySeconds; currentBigEffect = uBigEffectToPlay;
            doEnemyOverlay            = uo_toEnemy; doEnemyUnderlay = uu_toEnemy; doEnemyColour = uc_toEnemy;
            break;

        default:
            currentOverlayFrames = baseOverlayFrames; currentUnderlayFrames = baseUnderlayFrames; currentColourOverlay = Color.white; currentColourOverlayDelay = bColourOverlayDelaySeconds;
            break;
        }

        if (currentColourOverlay != Color.white && opponent)
        {
            if (doEnemyColour)
            {
                StartCoroutine(opponent.AnimateColour(currentColourOverlay, currentColourOverlayDelay));
            }
            else
            {
                StartCoroutine(AnimateColour(currentColourOverlay, currentColourOverlayDelay));
            }
        }

        if (currentBigEffect != null)
        {
            bigEffectAnimation.clip = currentBigEffect; bigEffectAnimation.Play();
        }

        print(number + " " + ultimateUnderlayFrames.Length + " " + currentUnderlayFrames.Length);
        if (currentOverlayFrames.Length > 0 && !doEnemyOverlay)
        {
            StartCoroutine(AnimateOverlay(currentOverlayFrames));
        }
        if (opponent && currentOverlayFrames.Length > 0 && doEnemyOverlay)
        {
            StartCoroutine(opponent.AnimateOverlay(currentOverlayFrames));
        }

        if (currentUnderlayFrames.Length > 0 && !doEnemyUnderlay)
        {
            StartCoroutine(AnimateUnderlay(currentUnderlayFrames));
        }
        if (opponent && currentUnderlayFrames.Length > 0 && doEnemyUnderlay)
        {
            StartCoroutine(opponent.AnimateUnderlay(currentUnderlayFrames));
        }
    }