少年修仙传客户端代码仓库
7785 子 【2.0.200】【开发】灵根升品显示特效 / 【2.0.200】【前端】灵根升品显示特效
4个文件已修改
62 ■■■■■ 已修改文件
Core/GameEngine/Model/Player/PlayerDatas.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Player.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -533,6 +533,7 @@
                if (hero != null)
                {
                    hero.SwitchSuit();
                    hero.ReqLingGenEffect((int)(baseData.equipShowSwitch / 1000 % 1000));
                }
                break;
            case PlayerDataType.LuckValue:
Fight/GameActor/GA_Hero.cs
@@ -242,6 +242,13 @@
        m_CalculAutoFightTime = Time.realtimeSinceStartup;
        m_LastSyncTickTime = Time.realtimeSinceStartup;
        ModelCenter.Instance.GetModel<ReikiRootModel>().onReikiRootEffectRefresh += OnReikiEffectRefresh;
    }
    private void OnReikiEffectRefresh()
    {
        ReqLingGenEffect((int)(PlayerDatas.Instance.baseData.equipShowSwitch / 1000 % 1000));
    }
    private List<SFXController> m_SuitEffectList = new List<SFXController>();
@@ -316,7 +323,7 @@
    protected sealed override void OnUnit()
    {
        Object.Destroy(m_BhvFindEnemy);
        UnityEngine.Object.Destroy(m_BhvFindEnemy);
        m_BhvFindEnemy = null;
        RlsSuitEffect();
        OnPathFinding -= MapTransferUtility.Instance.OnHeroPathFinding;
@@ -559,6 +566,8 @@
        UpdateAutoStartFight();
    }
    protected sealed override void OnPutonClothes(uint clothesItemID, GameObject clothed)
    {
        clothed.layer = LayerUtility.Hero;
@@ -571,6 +580,8 @@
        StopRush();
        Behaviour.StopKillUntilDieAI();
        ReqLingGenEffect((int)(PlayerDatas.Instance.baseData.equipShowSwitch / 1000 % 1000));
    }
    protected sealed override void OnPutonSecondary(uint secondaryItemID, GameObject secondary)
@@ -850,7 +861,7 @@
        ReleaseLight();
        if (PlayerDatas.Instance.baseData.MapID == 31160)
        {
            m_Light = Object.Instantiate(BuiltInLoader.LoadPrefab("Zhujiao_Pointlight"));
            m_Light = UnityEngine.Object.Instantiate(BuiltInLoader.LoadPrefab("Zhujiao_Pointlight"));
            m_Light.transform.SetParent(MP_Name);
            m_Light.transform.localPosition = Vector3.zero;
            m_Light.transform.localScale = Vector3.one;
@@ -862,7 +873,7 @@
    {
        if (m_Light)
        {
            Object.Destroy(m_Light);
            UnityEngine.Object.Destroy(m_Light);
            m_Light = null;
        }
    }
@@ -1242,7 +1253,7 @@
            if (m_ArrowEffect)
            {
                FaceTargetXZ _f = m_ArrowEffect.GetComponent<FaceTargetXZ>();
                Object.Destroy(_f);
                UnityEngine.Object.Destroy(_f);
                SFXPlayUtility.Instance.Release(m_ArrowEffect);
                m_ArrowEffect = null;
            }
Fight/GameActor/GA_Player.cs
@@ -450,7 +450,7 @@
        {
            case PlayerDataType.EquipShowSwitch:
                m_H0434.EquipShowSwitch = data.Value;
                ReqLingGenEffect((int)(m_H0434.EquipShowSwitch / 1000 % 1000));
                break;
        }
    }
@@ -462,6 +462,9 @@
        SkinnedMeshRenderer _renderer = clothed.GetComponentInChildren<SkinnedMeshRenderer>();
        _renderer.gameObject.SetLayer(LayerUtility.Player, false);
        MaterialUtility.SwitchXrayShader(m_Material, false);
        ReqLingGenEffect((int)(m_H0434.EquipShowSwitch / 1000 % 1000));
        SyncSuitEffect((m_H0434.EquipShowSwitch % 10) > 0);
    }
    protected sealed override void OnPutonSecondary(uint secondaryItemID, GameObject secondary)
Fight/GameActor/GActorPlayerBase.cs
@@ -488,6 +488,11 @@
    protected override void OnLateUpdate()
    {
        UpdateRush();
        if (LingGenNode)
        {
            LingGenNode.transform.position = Root.transform.position;
        }
    }
    public void CheckAncientHeadUp()
@@ -2968,4 +2973,36 @@
            }
        }
    }
    private List<SFXController> lingGenEffectList = new List<SFXController>();
    private GameObject LingGenNode;
    private void RlsLingGenEffect()
    {
        if (lingGenEffectList.Count > 0)
        {
            for (int i = 0; i < lingGenEffectList.Count; ++i)
            {
                SFXPlayUtility.Instance.Release(lingGenEffectList[i]);
            }
        }
        lingGenEffectList.Clear();
        UnityEngine.Object.Destroy(LingGenNode);
        LingGenNode = null;
    }
    public void ReqLingGenEffect(int id)
    {
        RlsLingGenEffect();
        if (!LingGenNode)
        {
            LingGenNode = new GameObject();
            GameObject.DontDestroyOnLoad(LingGenNode);
        }
        var _config = ReikiRootEffectConfig.Get(id);
        var _sfx = SFXPlayUtility.Instance.PlayBattleEffect(_config.effect, LingGenNode.transform, 1);
        lingGenEffectList.Add(_sfx);
    }
}