少年修仙传客户端代码仓库
client_linchunjie
2018-11-23 2a4d4237c1f4693333eeda6498d34cc6f895892e
4709 【1.3】【前端】魔族法宝副本修改(新增多个小关卡)
2个文件已修改
90 ■■■■■ 已修改文件
System/Treasure/TreasureComponent.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureDemonBehaviour.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureComponent.cs
@@ -31,6 +31,7 @@
        private Transform bottom;
        private Transform name;
        private TextMesh condition;
        private TextMesh treasureLabel;
        #region 红点
        private Transform potentialRed;
@@ -54,6 +55,7 @@
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_BottomPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool> m_StatePoolDict = new Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_ConditionPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_LabelPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Vector3 m_CacheBottomScale = Vector3.zero;
        TreasureModel m_Model;
@@ -93,6 +95,7 @@
                RecycleCollectingSfx();
                RecycleRedpoint();
                RecycleCondition();
                RecycleTreasureLabel();
                RecycleHighestEffect();
                RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            }
@@ -318,18 +321,21 @@
                    RequestTreasureEffect();
                    RecycleLockEffect();
                    RecycleCondition();
                    RequestTreasureLabel();
                    break;
                case TreasureState.Collecting:
                    RequestTreasureEffect();
                    RequestCollectingSfx();
                    RecycleLockEffect();
                    RecycleCondition();
                    RequestTreasureLabel();
                    break;
                case TreasureState.Locked:
                    RecycleCollectingSfx();
                    RecycleTreasureEffect();
                    RequestLockEffect();
                    RequestCondition();
                    RecycleTreasureLabel();
                    break;
            }
            if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id)
@@ -690,6 +696,75 @@
            }
        }
        void RequestTreasureLabel()
        {
            RecycleTreasureLabel();
            if (category != TreasureCategory.Demon)
            {
                return;
            }
            string displayStr = string.Empty;
            switch (category)
            {
                case TreasureCategory.Demon:
                    Treasure _treasure;
                    if (model.TryGetTreasure(treasureId, out _treasure))
                    {
                        switch (_treasure.state)
                        {
                            case TreasureState.Collected:
                                displayStr = Language.Get("DemonTreasureHighest");
                                break;
                            case TreasureState.Collecting:
                                TreasureDungeon treasureDungeon;
                                if (model.TryGetTreasureDungeon(treasureId, out treasureDungeon))
                                {
                                    displayStr = UIHelper.ReplaceNewLine(Language.Get("DemonTreasureChallenge",
                                        treasureDungeon.currentLevel, treasureDungeon.maxLevel));
                                }
                                break;
                            case TreasureState.Locked:
                                return;
                        }
                    }
                    break;
            }
            if (string.IsNullOrEmpty(displayStr))
            {
                return;
            }
            GameObjectPoolManager.GameObjectPool pool;
            if (m_LabelPoolDict.TryGetValue(category, out pool) == false)
            {
                var _prefab = UILoader.LoadPrefab(StringUtility.Contact(category, "TreasureLabel"));
                pool = GameObjectPoolManager.Instance.RequestPool(_prefab);
                m_LabelPoolDict.Add(category, pool);
            }
            treasureLabel = pool.Request().GetComponent<TextMesh>();
            treasureLabel.gameObject.SetActive(true);
            treasureLabel.transform.SetParent(root);
            treasureLabel.transform.localPosition = Vector3.zero;
            treasureLabel.transform.LookAt(UI3DTreasureSelectStage.Instance.center);
            treasureLabel.transform.localPosition = new Vector3(0, -1.48f, 0f);
            treasureLabel.transform.localScale = new Vector3(-1, 1, 1);
            treasureLabel.text = displayStr;
            LayerUtility.SetLayer(treasureLabel.gameObject, LayerUtility.UILayer, true);
        }
        void RecycleTreasureLabel()
        {
            if (m_LabelPoolDict.ContainsKey(category) && treasureLabel != null)
            {
                var pool = m_LabelPoolDict[category];
                pool.Release(treasureLabel.gameObject);
                treasureLabel = null;
            }
        }
        public Vector3 GetAdaptiveDistance(Vector3 _distance)
        {
            var normal = Constants.DESIGN_RESOLUTION.x / Constants.DESIGN_RESOLUTION.y;
@@ -757,6 +832,7 @@
            RecycleLockEffect();
            RecycleRedpoint();
            RecycleCondition();
            RecycleTreasureLabel();
            RecycleHighestEffect();
            RequestSpecialEffect();
@@ -796,6 +872,7 @@
        {
            RecycleLockEffect();
            RecycleCondition();
            RecycleTreasureLabel();
            try
            {
                var _effect = SFXPlayUtility.Instance.Play(category == TreasureCategory.Demon ? 5157 : 5132, treasureRoot);
System/Treasure/TreasureDemonBehaviour.cs
@@ -95,7 +95,18 @@
                m_SkillName.text = skillConfig.SkillName;
                m_SkillDescrition.text = skillConfig.Description;
                m_SkillEffect.text = skillConfig.HurtType == 1 ? "PVP" : skillConfig.HurtType == 2 ? "PVE" : string.Empty;
                m_FightPower.text = skillConfig.FightPower.ToString();
                var fightPower = 0;
                TreasureDungeon treasureDungeon;
                if (model.TryGetTreasureDungeon(_id, out treasureDungeon))
                {
                    var dungeonInfo = treasureDungeon.Get(treasureDungeon.maxLevel);
                    if (!dungeonInfo.Equals(default(TreasureDungeonInfo)))
                    {
                        fightPower += UIHelper.GetFightPower(dungeonInfo.propertyDict);
                    }
                }
                fightPower += skillConfig.FightPower;
                m_FightPower.text = fightPower.ToString();
            }
            else
            {