Beispiel #1
0
    protected override void Update()
    {
        if (mnStage == 0)
        {
            return;
        }
        if (mnStage == 1)        //榛戝睆aa
        {
            if (m_fTime <= float.Epsilon)
            {
                mnStage = 2;
                m_fTime = bornAnimTime;
            }
            else
            {
                if (m_fTime > enterTime)
                {
                    mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f);
                }
                else
                {
                    mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / enterTime / enterTime);
                }
                m_fTime -= Time.deltaTime;
            }
        }
        else if (mnStage == 2) //鎾?斁鍑虹敓鍔ㄤ綔aa
        {
            if (m_fTime < float.Epsilon)
            {
                if (bPlayShowAnimation && gameMonster != null)//boss鎾?斁灞曠ず鍔ㄧ敾aa
                {
                    AnimationState aniState = gameMonster.AnimController[mbornAnimNext];
                    if (aniState != null)
                    {
                        aniState.wrapMode = WrapMode.Once;
                        aniState.layer    = 10;
                        gameMonster.AnimController.CrossFade(mbornAnimNext, 0.15f);
                    }
                    if (mbornAudio != null && mbornAudio.Length > 0)
                    {
                        gameMonster.PlayAudio(mbornAudio);
                    }
                    bPlayShowAnimation = false;
                }
                m_fTime = stayTime;
                mnStage = 3;
            }
            else
            {
                m_fTime -= Time.deltaTime;
            }
        }
        else if (mnStage == 3)
        {
            if (m_fTime <= float.Epsilon)
            {
                //mBoss.transform.rotation = bossSaveRotate;
                //m_fTime = 1.25f*leaveTime;
                m_fTime = 0.0f;
                mnStage = 4;
            }
            else
            {
                m_fTime -= Time.deltaTime;
            }
        }
        else if (mnStage == 4)//榛戝睆娣″叆aa
        {
            if (m_fTime > afterStayTime)
            {
                mBoss.transform.rotation = bossSaveRotate;
                m_fTime = leaveTime;
                mnStage = 5;
            }
            else
            {
                m_fTime   += Time.deltaTime;
                mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / afterStayTime / afterStayTime);
            }
        }
        else if (mnStage == 5)//榛戝睆娣″嚭aa
        {
            if (m_fTime <= float.Epsilon)
            {
                if (bossDialogue != null)
                {
                    bossDialogue.SetActive(false);
                }
                SetTargetEffectVisible(true);
                sdUICharacter.Instance.bBossMovie = false;
                GameObject fightUI = sdUICharacter.Instance.GetFightUi();
                if (fightUI != null)
                {
                    sdFightUi fight = fightUI.GetComponent <sdFightUi>();
                    if (fight != null)
                    {
                        fight.AddComboTime(System.DateTime.Now.Ticks / 10000000L - m_StartTime);
                    }
                }
                mnStage = 0;
            }
            else
            {
                mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / leaveTime / leaveTime);
                if (bReSetCamera)
                {
                    bReSetCamera = false;
                    mMainCamera.transform.position = cameraSavePos;
                    mMainCamera.transform.rotation = cameraSaveRotate;
                    HeaderProto.ECreatureActionState[] state = new HeaderProto.ECreatureActionState[2];
                    state[0] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_IDLE;
                    state[1] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_LIMIT_SKILL;
                    levelArea.SetMonsterStatus(state, false);
                    sdActorInterface activePet = sdGameLevel.instance.mainChar.Retainer;
                    for (int i = 0; i < state.Length; i++)
                    {
                        if (activePet != null)
                        {
                            activePet.RemoveDebuffState(state[i]);
                        }
                        sdGameLevel.instance.mainChar.RemoveDebuffState(state[i]);
                    }
                    sdGameLevel.instance.mainCamera.MainCharFollow = true;
                    sdGameLevel.instance.SetFingerObjectActive(true);
                    if (activePet != null && activePet.actorType == ActorType.AT_Pet)
                    {
                        ((sdGameMonster)activePet).ActiveHPUI();
                    }
                    sdUICharacter.Instance.ShowFightUi();
                }

                m_fTime -= Time.deltaTime;
            }
        }
    }