Exemple #1
0
    protected override void StateChanged()
    {
        switch ((EntityState)prevState)
        {
        case EntityState.Normal:
            mEffinStuff.holder.gameObject.SetActive(false);

            StopCoroutine(attackRoutine);

            ToPhase(Phase.None);
            break;
        }

        base.StateChanged();

        switch ((EntityState)state)
        {
        case EntityState.Normal:
            wpAnimDat.Play("default");

            mEffinStuff.holder.gameObject.SetActive(true);

            anim.Play(clipNormal);

            mCurStuffState = StuffState.Start;
            ToPhase(Phase.StuffContract);

            StartCoroutine(attackRoutine);
            break;

        case EntityState.Dead:
            anim.Play(clipDefeat);
            mAnimDat.Play(takeDefeat);

            ToPhase(Phase.Dead);
            break;

        case EntityState.Invalid:
            ToPhase(Phase.None);
            break;
        }
    }
Exemple #2
0
    IEnumerator DoStuff()
    {
        yield return(new WaitForSeconds(stuffDelay));

        //mEffinStuff.Shuffle();

        WaitForFixedUpdate wait = new WaitForFixedUpdate();

        for (int i = 0, max = mEffinStuff.data.Length; i < max; i += 2)
        {
            float lastT = Time.fixedTime;
            EnemyBossEffinStuff.Data dat  = mEffinStuff.data[i];
            EnemyBossEffinStuff.Data dat2 = mEffinStuff.data[i + 1];

            float ofsY = dat.mover.offset.y, ofsY2 = dat2.mover.offset.y;

            float endY = 0, endY2 = 0;
            switch (mCurPhase)
            {
            case Phase.StuffContract:
                endY = dat.originOfsY; endY2 = dat2.originOfsY;
                break;

            case Phase.StuffExpand:
                endY = dat.expandOfsY; endY2 = dat2.expandOfsY;
                break;

            case Phase.StuffExpandStart:
                endY = dat.startOfsY; endY2 = dat2.startOfsY;
                break;
            }

            bool done = false, done2 = false;

            while (!(done || done2))
            {
                if (!done)
                {
                    done = _DoStuffMoveOfsY(dat.mover, ofsY, endY, Time.fixedTime - lastT);
                }

                if (!done2)
                {
                    done2 = _DoStuffMoveOfsY(dat2.mover, ofsY2, endY2, Time.fixedTime - lastT);
                }

                yield return(wait);
            }
        }

        switch (mCurPhase)
        {
        case Phase.StuffContract:
            mCurStuffState = StuffState.Contracted;
            break;

        case Phase.StuffExpand:
            mCurStuffState = StuffState.Expanded;
            break;

        case Phase.StuffExpandStart:
            mCurStuffState = StuffState.Start;
            break;
        }

        mLastEffinStuffTime = Time.fixedTime;

        ToPhase(Phase.MoveToWP);
    }