Example #1
0
    public override void OnTriggerHitted(GameObject obj, int[] param)
    {
        base.OnTriggerHitted(obj, param);

        if (param[3] < 0)
        {
            return;
        }

        currentActiveId = param[3];

        if (fightUi == null)
        {
            GameObject ui = UnityEngine.GameObject.Find("FightUi");
            if (ui != null)
            {
                fightUi = ui.GetComponent <sdFightUi>();
            }
        }

        if (fightUi != null && currentActiveId < monsters.Length && monsters[currentActiveId] != null)
        {
            if (monsters[currentActiveId].GetAbility() >= HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss)
            {
                sdTuiTuLogic ttLogic = sdGameLevel.instance.tuiTuLogic;
                //ttLogic.cameraShaker.AddRandomCameraShake(0.5f,0.5f,80.0f,1.0f);

                // 小BOSS和大BOSS的血条样式不同aa
                int iMonsterHPType = 0;
                if (monsters[currentActiveId].GetAbility() == HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss_large)
                {
                    iMonsterHPType = 1;
                }
                // 呼出血条,血条初始化..
                int iHpBarNum = monsters[currentActiveId].GetHPBarNum();
                int iMaxHP    = monsters[currentActiveId].GetMaxHP();
                sdUICharacter.Instance.SetMonsterMaxHp(iMonsterHPType, iMaxHP, iHpBarNum);
                fightUi.ShowMonsterHp();
                //深渊boss需要再设置一下当前血量,因为Boss有残血的可能..
                if (monsters[currentActiveId].isLapBoss)
                {
                    Hashtable uiValueDesc = new Hashtable();
                    uiValueDesc["value"] = monsters[currentActiveId].GetCurrentHP();
                    uiValueDesc["des"]   = "";
                    sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc);
                }
                //设置boss名字..
                fightUi.SetBossName(monsters[currentActiveId].GetName());
            }
        }
    }
Example #2
0
 void Update()
 {
     if (m_eCountDownType == eCountDownType.eCDT_None)
     {
         return;
     }
     m_fCountDown -= Time.deltaTime;
     if (m_fCountDown < 0.0f && m_eCountDownType == eCountDownType.eCDT_pvpReady)
     {
         m_fCountDown     = ms_pkTime;
         m_eCountDownType = eCountDownType.eCDT_pvp;
         sdUICharacter.Instance.ShowCountDownTime2(false);
         sdUICharacter.Instance.ShowCountDownTime(true, eCountDownType.eCDT_pvp);
     }
     if (m_eCountDownType == eCountDownType.eCDT_pvp && m_fCountDown < 0.0f)
     {
         m_eCountDownType = eCountDownType.eCDT_None;
         PKStop();
         sdPVPMsg.Send_CSID_PVP_RETULT_REQ(1, 1);
     }
     if (m_Fightui == null)
     {
         //初始化血条aaa
         GameObject ui = GameObject.Find("FightUi");
         if (ui != null && m_pvpRival != null)
         {
             int iMonsterHPType = 0;
             int iHpBarNum      = 1;
             int iMaxHp         = m_pvpRival.GetMaxHP();
             sdUICharacter.Instance.SetMonsterMaxHp(iMonsterHPType, iMaxHp, iHpBarNum);
             m_Fightui = ui.GetComponent <sdFightUi>();
             m_Fightui.ShowMonsterHp();
             m_Fightui.SetBossName(m_pvpRival.Name);
         }
     }
     else
     {
         //血条更新
         if (m_pvpRival != null)
         {
             Hashtable uiValueDesc = new Hashtable();
             uiValueDesc["value"] = m_pvpRival.GetCurrentHP();
             uiValueDesc["des"]   = "";
             sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc);
             if (m_pvpRival.GetCurrentHP() <= 0)
             {
                 m_Fightui.HideMonsterHp();
             }
         }
     }
 }
Example #3
0
    public void AddAttack()
    {
        m_nAttack++;
        GameObject fightUI = sdUICharacter.Instance.GetFightUi();

        if (fightUI != null)
        {
            sdFightUi fight = fightUI.GetComponent <sdFightUi>();
            if (fight != null)
            {
                fight.SetPT(m_nAttack);
            }
        }
    }
Example #4
0
    void Update()
    {
        if (currentActiveId >= 0 && currentActiveId < monsters.Length && monsters[currentActiveId] != null)
        {
            if (fightUi == null)
            {
                GameObject ui = UnityEngine.GameObject.Find("FightUi");
                if (ui != null)
                {
                    fightUi = ui.GetComponent <sdFightUi>();
                }
            }

            if (fightUi != null)
            {
                if (monsters[currentActiveId].GetAbility() >= HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss)
                {
                    Hashtable uiValueDesc = new Hashtable();
                    uiValueDesc["value"] = monsters[currentActiveId].GetCurrentHP();
                    uiValueDesc["des"]   = "";
                    sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc);
                    sdActGameMgr.Instance.m_uuLapBossNowBlood = monsters[currentActiveId].GetCurrentHP();

                    //结算之后,需要重新刷BOSS的血量..
                    if (sdActGameMsg.bNeedResetWorldBossHP)
                    {
                        monsters[currentActiveId].SetCurrentHP(sdActGameMgr.Instance.m_uuWorldBossNowBlood);
                        sdActGameMsg.bNeedResetWorldBossHP = false;
                    }
                    else
                    {
                        sdActGameMgr.Instance.m_uuWorldBossNowBlood = monsters[currentActiveId].GetCurrentHP();
                    }

                    if (monsters[currentActiveId].GetCurrentHP() <= 0)
                    {
                        fightUi.HideMonsterHp();
                    }
                }
            }
        }
    }
Example #5
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;
            }
        }
    }