void Start()
    {
        CheckNpcRigidbody();
        if (NpcJiFen == NpcJiFenEnum.Boss)
        {
            if (XKBossXueTiaoCtrl.GetInstance() != null)
            {
                XKBossXueTiaoCtrl.GetInstance().SetBloodBossAmount(-1f, this);
            }
        }

        gameObject.layer = LayerMask.NameToLayer(XkGameCtrl.NpcLayerInfo);
        BoxColCom        = GetComponent <BoxCollider>();
        NpcDamageCom     = GetComponent <XKNpcDamageCtrl>();
        if (MaxPuTongAmmo.Length < 4)
        {
            MaxPuTongAmmo = new int[4];
        }

        Invoke("CheckDisGameCamera", 2f);
        NpcScript = GetComponentInParent <XKNpcMoveCtrl>();
        if (NpcScript != null && NpcJiFen == NpcJiFenEnum.Boss)
        {
            NpcScript.SetIsBossNpc(true);
        }
    }
예제 #2
0
    public void SetNpcMoveScript(XKNpcMoveCtrl script)
    {
        IsSpawnObj = true;
        NpcScript  = script;
        if (NpcScript != null && NpcJiFen == NpcJiFenEnum.Boss)
        {
            NpcScript.SetIsBossNpc(true);
        }
        NpcNameInfo = script.name;
        ResetNpcHealthInfo();

        if (m_CaiPiaoNpcUI != null)
        {
            if (NpcScript != null)
            {
                if (NpcScript.IsCaiPiaoZhanChe == true)
                {
                    if (NpcScript.GetIsBossNpc() == true)
                    {
                        m_CaiPiaoNpcUI.ShowNumUI(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.JPBoss, this);
                    }
                    else
                    {
                        m_CaiPiaoNpcUI.ShowNumUI(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.ZhanChe, this);
                    }
                }
                NpcScript.m_CaiPiaoNpcUI = m_CaiPiaoNpcUI;
            }
        }
        TimeLastVal = Time.time;
    }
 public void SetNpcMoveScript(XKNpcMoveCtrl script)
 {
     IsSpawnObj = true;
     NpcScript  = script;
     if (NpcScript != null && NpcJiFen == NpcJiFenEnum.Boss)
     {
         NpcScript.SetIsBossNpc(true);
     }
     NpcNameInfo = script.name;
     ResetNpcHealthInfo();
 }
    public void SetNpcMoveScript(XKNpcMoveCtrl script)
    {
        IsSpawnObj = true;
        NpcScript  = script;
        if (NpcScript != null && NpcJiFen == NpcJiFenEnum.Boss)
        {
            NpcScript.SetIsBossNpc(true);
        }
        NpcNameInfo = script.name;
        ResetNpcHealthInfo();

        if (m_CaiPiaoNpcUI != null)
        {
            if (NpcScript != null)
            {
                if (NpcScript.IsCaiPiaoZhanChe == true)
                {
                    if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null && IsGetTotalHealthData == false)
                    {
                        IsGetTotalHealthData = true;
                        //获取获取JPBoss和战车Npc的血值数据.
                        if (NpcScript.IsJPBossNpc == true)
                        {
                            //JPBoss战车.
                            XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.GetTotalHealthData(SSCaiPiaoDataManage.GameCaiPiaoData.DaiJinQuanState.JPBossDaiJinQuan);
                        }
                        else
                        {
                            //战车01或02.
                            XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.GetTotalHealthData(NpcScript.m_DaiJinQuanState);
                        }
                        //保存代金券npc的血条脚本.
                        XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.SaveDaiJinQuanHealth(this);
                    }

                    SetRecordMaxPuTongAmmo();
                    if (XkGameCtrl.GetInstance().m_GamePlayerAiData.IsActiveAiPlayer == true)
                    {
                        //没有玩家激活游戏,使用游戏记录的血值数据.
                        MaxPuTongAmmo = MaxPuTongAmmoCache;
                    }
                    else
                    {
                        //有玩家正在进行游戏,使用游戏配置的血值数据.
                        if (NpcScript.GetIsBossNpc() == true)
                        {
                            if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null)
                            {
                                //跟新JPBoss的血值数据.
                                MaxPuTongAmmo = XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.m_CurrentTotalHealthDt.JPBossHealth.MaxPuTongAmmo;
                                //SSDebug.Log("*********************************************************3333333333333333333333333333333");
                            }
                        }
                        else
                        {
                            if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null)
                            {
                                //跟新战车Npc的血值数据.
                                MaxPuTongAmmo = XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.m_CurrentTotalHealthDt.ZhanCheHealth.MaxPuTongAmmo;
                            }
                        }
                    }

                    if (NpcScript.GetIsBossNpc() == true)
                    {
                        m_CaiPiaoNpcUI.ShowNumUI(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.JPBoss, this);
                    }
                    else
                    {
                        m_CaiPiaoNpcUI.ShowNumUI(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.ZhanChe, this);
                    }

                    //创建代金券npc的血条信息.
                    float perVal = 0.5f;
                    if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null)
                    {
                        perVal = XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.m_CurrentTotalHealthDt.UIHealthPer;
                    }
                    SSUIRoot.GetInstance().m_GameUIManage.CreatDaiJinQuanNpcXueTiaoUI(perVal);
                }
                NpcScript.m_CaiPiaoNpcUI = m_CaiPiaoNpcUI;
            }
        }
        TimeLastVal = Time.time;
    }