From 3f403bf12f2e6b9bfdcaaf7c494fa430fff2ac66 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期四, 06 十二月 2018 18:04:52 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/FindPrecious/RebornRightNowBossInfoQuery.cs                                              |   54 +++++++
 System/FindPrecious/RebornRightNowBossInfoQuery.cs.meta                                         |   12 +
 Lua/Gen/Resources.meta                                                                          |    9 +
 Core/NetworkPackage/DTCFile/ClientPack.meta                                                     |    9 +
 System/Tip/PromoteDetailsWin.cs                                                                 |   24 +++
 System/KnapSack/Logic/ItemTipsModel.cs                                                          |   35 ----
 System/Tip/ChestDetailBehaviour.cs                                                              |   15 ++
 System/FindPrecious/DemonJarAutoChallenge.cs                                                    |   11 +
 UI/HUD/HeadUpName.cs                                                                            |   12 +
 Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs.meta |   12 +
 System/Rune/RuneBreakWin.cs                                                                     |   16 +-
 System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs                                       |    2 
 Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs      |   23 +++
 System/RolePromote/RolePromoteModel.cs                                                          |   18 -
 System/Dungeon/DungeonBossBriefInfoContainer.cs                                                 |    1 
 System/BlastFurnace/GetItemPathWin.cs                                                           |   18 +-
 System/Dungeon/DungeonBossBriefInfoBehaviour.cs                                                 |    3 
 System/KnapSack/Logic/BoxInfoWin.cs                                                             |   15 ++
 System/FindPrecious/FindPreciousModel.cs                                                        |    8 +
 System/KnapSack/Logic/ItemInfoWin.cs                                                            |   33 +---
 System/MainInterfacePanel/TaskListTip.cs                                                        |    2 
 System/Store/Logic/BuyItemInfoWin.cs                                                            |   33 +---
 System/KnapSack/Logic/SelectBoxItemCell.cs                                                      |    6 
 System/Rune/RuneModel.cs                                                                        |   33 ++++
 24 files changed, 284 insertions(+), 120 deletions(-)

diff --git a/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs b/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs
new file mode 100644
index 0000000..acc92f6
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs
@@ -0,0 +1,23 @@
+锘縰sing UnityEngine;
+using System.Collections;
+
+// A9 04 鏌ヨboss淇℃伅 #tagCGQueryBossInfo
+
+public class CA904_tagCGQueryBossInfo : GameNetPackBasic
+{
+    public byte Count;    //鏁伴噺
+    public uint[] BossIDList;    //boosid
+
+    public CA904_tagCGQueryBossInfo()
+    {
+        combineCmd = (ushort)0x1801;
+        _cmd = (ushort)0xA904;
+    }
+
+    public override void WriteToBytes()
+    {
+        WriteBytes(Count, NetDataType.BYTE);
+        WriteBytes(BossIDList, NetDataType.DWORD, Count);
+    }
+
+}
\ No newline at end of file
diff --git a/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs.meta b/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs.meta
new file mode 100644
index 0000000..bcb151e
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToGameServer/CA9_Function/CA904_tagCGQueryBossInfo.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e8252f9152b018e4596b3d11fc2e9e12
+timeCreated: 1544085662
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/DTCFile/ClientPack.meta b/Core/NetworkPackage/DTCFile/ClientPack.meta
new file mode 100644
index 0000000..a5a6f03
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ClientPack.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 722e5e3d30096674e811f5bd191246a0
+folderAsset: yes
+timeCreated: 1539228128
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Lua/Gen/Resources.meta b/Lua/Gen/Resources.meta
new file mode 100644
index 0000000..5b26f40
--- /dev/null
+++ b/Lua/Gen/Resources.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a545fb3dcf719304fa74180c10219375
+folderAsset: yes
+timeCreated: 1542357825
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/BlastFurnace/GetItemPathWin.cs b/System/BlastFurnace/GetItemPathWin.cs
index 13eed69..a9b5a89 100644
--- a/System/BlastFurnace/GetItemPathWin.cs
+++ b/System/BlastFurnace/GetItemPathWin.cs
@@ -305,16 +305,20 @@
         private void SetMidUI()
         {
             _describeText.alignment = TextAnchor.UpperLeft;
-            if (itemPathModel.chinItemModel.Effect1 != 215)
-            {
-                _describeText.text = itemPathModel.GetAllInfoDes();
-            }
-            else
+            string infoDes = itemPathModel.GetAllInfoDes();
+            if (infoDes.Contains("{Exp}"))
             {
                 ulong expValue = itemTipsModel.GetAddExpValue(itemPathModel.chinItemModel.EffectValueA1, itemPathModel.chinItemModel.EffectValueB1);
-                _describeText.text = itemPathModel.GetAllInfoDes().Replace("{0}", UIHelper.ReplaceLargeNum(expValue));
+                infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
             }
-          
+            if (infoDes.Contains("{FightPower}"))
+            {
+                int fightPower = 0;
+                itemTipsModel.TryGetFightPowerByItemId(itemPathModel.chinItemModel.ID, out fightPower);
+                infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
+            }
+
+            _describeText.text = infoDes;
         }
 
         #region 鐐瑰嚮浜嬩欢
diff --git a/System/Dungeon/DungeonBossBriefInfoBehaviour.cs b/System/Dungeon/DungeonBossBriefInfoBehaviour.cs
index be3a296..4e8c730 100644
--- a/System/Dungeon/DungeonBossBriefInfoBehaviour.cs
+++ b/System/Dungeon/DungeonBossBriefInfoBehaviour.cs
@@ -18,6 +18,7 @@
         [SerializeField] TimerBehaviour m_RebornTime;
         [SerializeField] Text m_Alive;
         [SerializeField] Text m_RebornAtOnce;
+        [SerializeField] RebornRightNowBossInfoQuery m_BossInfoQuery;
 
         int bossId = 0;
         FindPreciousModel model { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -31,7 +32,9 @@
             var config = Config.Instance.Get<NPCConfig>(bossId);
             m_Level.text = Language.Get("Z1024", config.NPCLV);
 
+            m_BossInfoQuery.bossId = bossId;
             OnBossInfoUpdate(bossId);
+            model.bossInfoUpdateEvent -= OnBossInfoUpdate;
             model.bossInfoUpdateEvent += OnBossInfoUpdate;
 
             m_MoveTo.RemoveAllListeners();
diff --git a/System/Dungeon/DungeonBossBriefInfoContainer.cs b/System/Dungeon/DungeonBossBriefInfoContainer.cs
index ea40499..266f7c0 100644
--- a/System/Dungeon/DungeonBossBriefInfoContainer.cs
+++ b/System/Dungeon/DungeonBossBriefInfoContainer.cs
@@ -92,6 +92,7 @@
                 var behaviour = behaviours[i];
                 if (i < bosses.Count)
                 {
+                    behaviour.Dispose();
                     behaviour.Display(bosses[i], OnMoveToBoss);
                     behaviour.gameObject.SetActive(true);
                 }
diff --git a/System/FindPrecious/DemonJarAutoChallenge.cs b/System/FindPrecious/DemonJarAutoChallenge.cs
index 66df507..39e477e 100644
--- a/System/FindPrecious/DemonJarAutoChallenge.cs
+++ b/System/FindPrecious/DemonJarAutoChallenge.cs
@@ -63,12 +63,15 @@
         for (var i = 0; i < bossIds.Count; i++)
         {
             var bossId = bossIds[i];
-            if (Config.Instance.ContainKey<DemonJarConfig>(bossId))
+            if (findPreciousModel.IsBossSubscribed(bossId))
             {
-                var alive = findPreciousModel.IsBossAlive(bossId);
-                if (alive)
+                if (Config.Instance.ContainKey<DemonJarConfig>(bossId))
                 {
-                    findPreciousModel.AutoGotoSkillDemonJarBoss(new FindPreciousModel.BossNotify(bossId, true));
+                    var alive = findPreciousModel.IsBossAlive(bossId);
+                    if (alive)
+                    {
+                        findPreciousModel.AutoGotoSkillDemonJarBoss(new FindPreciousModel.BossNotify(bossId, true));
+                    }
                 }
             }
         }
diff --git a/System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs b/System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
index 3decfaa..e570714 100644
--- a/System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
+++ b/System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
@@ -71,6 +71,8 @@
             base.Display(_data);
             bossId = (int)_data;
 
+            var bossInfoQuery = this.AddMissingComponent<RebornRightNowBossInfoQuery>();
+            bossInfoQuery.bossId = bossId;
             findPreciousModel.bossSubscribeChangeEvent -= OnSubscribe;
             findPreciousModel.bossSubscribeChangeEvent += OnSubscribe;
             findPreciousModel.bossInfoUpdateEvent -= OnBossInfoUpdate;
diff --git a/System/FindPrecious/FindPreciousModel.cs b/System/FindPrecious/FindPreciousModel.cs
index b2ac86c..7f20411 100644
--- a/System/FindPrecious/FindPreciousModel.cs
+++ b/System/FindPrecious/FindPreciousModel.cs
@@ -113,6 +113,14 @@
             GameNetSystem.Instance.SendInfo(sendInfo);
         }
 
+        public void RequestQueryBossInfo(int bossId)
+        {
+            var sendInfo = new CA904_tagCGQueryBossInfo();
+            sendInfo.Count = 1;
+            sendInfo.BossIDList = new uint[] { (uint)bossId };
+            GameNetSystem.Instance.SendInfo(sendInfo);
+        }
+
         public void OnPreciousDropRecordUpdate(HA003_tagUniversalGameRecInfo _serverInfo)
         {
             if (_serverInfo.Type != 25)
diff --git a/System/FindPrecious/RebornRightNowBossInfoQuery.cs b/System/FindPrecious/RebornRightNowBossInfoQuery.cs
new file mode 100644
index 0000000..49b89f8
--- /dev/null
+++ b/System/FindPrecious/RebornRightNowBossInfoQuery.cs
@@ -0,0 +1,54 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Thursday, December 06, 2018
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+
+    public class RebornRightNowBossInfoQuery : MonoBehaviour
+    {
+        public int bossId { get; set; }
+
+        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
+        bool isRebornRightNow {
+            get {
+                FindPreciousModel.BossInfo bossInfo = null;
+                if (findPreciousModel.TryGetBossInfo(bossId, out bossInfo))
+                {
+                    return !findPreciousModel.IsBossAlive(bossId) && TimeUtility.ServerNow > bossInfo.refreshTime;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+
+        float rebornRightNowBossQueryTime = 0f;
+        private void OnEnable()
+        {
+            rebornRightNowBossQueryTime = 0f;
+        }
+
+        private void LateUpdate()
+        {
+            if (Time.realtimeSinceStartup > rebornRightNowBossQueryTime)
+            {
+                if (isRebornRightNow)
+                {
+                    rebornRightNowBossQueryTime = Time.realtimeSinceStartup + 5f;
+                    findPreciousModel.RequestQueryBossInfo(bossId);
+                }
+            }
+        }
+
+    }
+
+}
+
+
+
diff --git a/System/FindPrecious/RebornRightNowBossInfoQuery.cs.meta b/System/FindPrecious/RebornRightNowBossInfoQuery.cs.meta
new file mode 100644
index 0000000..0ed09e8
--- /dev/null
+++ b/System/FindPrecious/RebornRightNowBossInfoQuery.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f4bfabd35e5383641b417cc69d91d52f
+timeCreated: 1544086386
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/KnapSack/Logic/BoxInfoWin.cs b/System/KnapSack/Logic/BoxInfoWin.cs
index 352f939..c6c2c0a 100644
--- a/System/KnapSack/Logic/BoxInfoWin.cs
+++ b/System/KnapSack/Logic/BoxInfoWin.cs
@@ -163,7 +163,20 @@
                 CheckUselimit();
             }
 
-            itemDesText.text = itemTipsModel.curAttrData.GetAllInfoDes();
+            string infoDes = itemTipsModel.curAttrData.GetAllInfoDes();
+            if (infoDes.Contains("{Exp}"))
+            {
+                ulong expValue = itemTipsModel.GetAddExpValue(itemTipsModel.curAttrData.itemConfig.EffectValueA1, itemTipsModel.curAttrData.itemConfig.EffectValueB1);
+                infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
+            }
+            if (infoDes.Contains("{FightPower}"))
+            {
+                int fightPower = 0;
+                itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
+                infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
+            }
+
+            itemDesText.text = infoDes;
             operateBtn.SetActive(false);
 
             CreateFuncBtn();
diff --git a/System/KnapSack/Logic/ItemInfoWin.cs b/System/KnapSack/Logic/ItemInfoWin.cs
index 93aa5eb..7b5c6de 100644
--- a/System/KnapSack/Logic/ItemInfoWin.cs
+++ b/System/KnapSack/Logic/ItemInfoWin.cs
@@ -144,32 +144,21 @@
             itemCell.Init(cellModel);
 
             CheckUselimit();
-            if(itemTipsModel.curAttrData.itemConfig.Effect1 != 215)
-            {
-                int type = 0;
-                bool isContain = itemTipsModel.TryGetContainsParamsType(itemTipsModel.curAttrData.itemId,out type);
-                if(isContain)
-                {
-                    switch(type)
-                    {
-                        case 1:
-                            int fightPower = 0;
-                            itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
-                            itemDesText.text = itemTipsModel.curAttrData.GetAllInfoDes().Replace("{0}",fightPower.ToString());
-                            break;
-                    }
-                }
-                else
-                {
-                    itemDesText.text = itemTipsModel.curAttrData.GetAllInfoDes();
-                }
-            }
-            else
+
+            string infoDes = itemTipsModel.curAttrData.GetAllInfoDes();
+            if(infoDes.Contains("{Exp}"))
             {
                 ulong expValue = itemTipsModel.GetAddExpValue(itemTipsModel.curAttrData.itemConfig.EffectValueA1, itemTipsModel.curAttrData.itemConfig.EffectValueB1);
-                itemDesText.text = itemTipsModel.curAttrData.GetAllInfoDes().Replace("{0}", UIHelper.ReplaceLargeNum(expValue));
+                infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
+            }
+             if(infoDes.Contains("{FightPower}"))
+            {
+                int fightPower = 0;
+                itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
+                infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
             }
 
+            itemDesText.text = infoDes;
             operateBtn.SetActive(false);
 
             CreateFuncBtn();
diff --git a/System/KnapSack/Logic/ItemTipsModel.cs b/System/KnapSack/Logic/ItemTipsModel.cs
index 6c37937..435b1a7 100644
--- a/System/KnapSack/Logic/ItemTipsModel.cs
+++ b/System/KnapSack/Logic/ItemTipsModel.cs
@@ -95,24 +95,6 @@
             FuncConfigConfig EquipOutWordID = Config.Instance.Get<FuncConfigConfig>("EquipOutWordID");
             PeerlessEquipIds = ConfigParse.GetMultipleStr<int>(EquipOutWordID.Numerical1);
 
-            FuncConfigConfig ItemTipsNum = Config.Instance.Get<FuncConfigConfig>("ItemTipsNum");
-            JsonData itemParamsData = JsonMapper.ToObject(ItemTipsNum.Numerical1);
-            itemParamsDict = new Dictionary<int, List<int>>();
-            foreach (var type in itemParamsData.Keys)
-            {
-                List<int> list = new List<int>();
-                itemParamsDict.Add(int.Parse(type),list);
-                if(itemParamsData[type].IsArray)
-                {
-                    for (int i = 0; i < itemParamsData[type].Count; i++)
-                    {
-                        int num = 0;
-                        int.TryParse(itemParamsData[type][i].ToString(),out num);
-                        list.Add(num);
-                    }
-                }
-            }
-
             FuncConfigConfig legendAttrColor = Config.Instance.Get<FuncConfigConfig>("LegendAttrColor");
             equipLegendAttrTypeDict = new Dictionary<int, List<int>>();
             wingsLegendAttrColorDict = new Dictionary<int, Dictionary<int, string>>();
@@ -688,21 +670,6 @@
 
         private StringBuilder attrSB = new StringBuilder();
         private PlayerPropertyConfig playerProModel;
-
-        public bool TryGetContainsParamsType(int param,out int _type)
-        {
-            _type = 0;
-            foreach(var type in itemParamsDict.Keys)
-            {
-                var list = itemParamsDict[type];
-                if(list.Contains(param))
-                {
-                    _type = type;
-                    return true;
-                }
-            }
-            return false;
-        }
 
         #region 璁剧疆瑁呭鍩虹淇℃伅
         /// <summary>
@@ -2595,7 +2562,7 @@
 
             if (itemTipsModel.randomRuneIds.Contains(itemConfig.ID))
             {
-                return string.Format(itemConfig.Description, GetExtraInfos());
+                return  itemConfig.Description.Replace("{Rune}", GetExtraInfos());
             }
             else
             {
diff --git a/System/KnapSack/Logic/SelectBoxItemCell.cs b/System/KnapSack/Logic/SelectBoxItemCell.cs
index 91bb210..acb5cac 100644
--- a/System/KnapSack/Logic/SelectBoxItemCell.cs
+++ b/System/KnapSack/Logic/SelectBoxItemCell.cs
@@ -35,7 +35,11 @@
             nameText.text = itemConfig.ItemName;
             ItemCellModel cellModel = new ItemCellModel(id, false, (ulong)BoxModel.selectDict[id]);
             itemBaisc.Init(cellModel);
-            int haveCnt = playerPack.GetItemCountByID(PackType.rptItem, id);
+            if (itemConfig.Effect1 == 220)
+            {
+                id = itemConfig.EffectValueA1;
+            }
+            int haveCnt = playerPack.GetItemCountByID(PackType.rptItem,id);
             if(haveCnt <= 0)
             {
                 haveCnt = ModelCenter.Instance.GetModel<RuneModel>().GetRuneCountById(id);
diff --git a/System/MainInterfacePanel/TaskListTip.cs b/System/MainInterfacePanel/TaskListTip.cs
index 59585a5..edd2890 100644
--- a/System/MainInterfacePanel/TaskListTip.cs
+++ b/System/MainInterfacePanel/TaskListTip.cs
@@ -251,7 +251,7 @@
 
         IEnumerator WaitAddTask(int MissionID, int MissionState)
         {
-            yield return WaitingForSecondConst.WaitMS800;//缂撳啿涓�绉掑啀杩涜
+            yield return WaitingForSecondConst.WaitMS300;//缂撳啿0.3绉掑啀杩涜
             var inDungeon = IsDungeon();
             TaskScheduling();
             if (WindowCenter.Instance.IsOpen<MainInterfaceWin>() && !inDungeon)
diff --git a/System/RolePromote/RolePromoteModel.cs b/System/RolePromote/RolePromoteModel.cs
index 4273d2b..44eed3a 100644
--- a/System/RolePromote/RolePromoteModel.cs
+++ b/System/RolePromote/RolePromoteModel.cs
@@ -585,20 +585,14 @@
                 case PromoteDetailType.GodWeapon:
                     return magicianModel.magicianRedpoint.state == RedPointState.Simple;
                 case PromoteDetailType.TreasurePotential:
-                    for (int k = 1; k < (int)TreasureCategory.Zerg; k++)
+                    var list = treasureModel.GetTreasureCategory(TreasureCategory.Human);
+                    for (int j = 0; j < list.Count; j++)
                     {
-                        var list = treasureModel.GetTreasureCategory((TreasureCategory)k);
-                        if (list != null)
+                        Treasure treasure;
+                        if (treasureModel.TryGetTreasure(list[j], out treasure) && treasure.state == TreasureState.Collected
+                            && treasure.skillLevelUpRedpoint != null && treasure.skillLevelUpRedpoint.state == RedPointState.Simple)
                         {
-                            for (int j = 0; j < list.Count; j++)
-                            {
-                                Treasure treasure;
-                                if (treasureModel.TryGetTreasure(list[j], out treasure) && treasure.state == TreasureState.Collected
-                                    && treasure.skillLevelUpRedpoint != null && treasure.skillLevelUpRedpoint.state == RedPointState.Simple)
-                                {
-                                    return true;
-                                }
-                            }
+                            return true;
                         }
                     }
                     break;
diff --git a/System/Rune/RuneBreakWin.cs b/System/Rune/RuneBreakWin.cs
index 5ad5a3c..429798a 100644
--- a/System/Rune/RuneBreakWin.cs
+++ b/System/Rune/RuneBreakWin.cs
@@ -27,7 +27,6 @@
         [SerializeField] RectTransform m_ContainerRuneSoul;
         [SerializeField] Text m_RuneSoulAdd;
 
-        private List<bool> m_Checks = new List<bool>();
         private List<ushort> m_BreakRunes = new List<ushort>();
         private bool m_PlayerBreakEffect = false;
 
@@ -99,13 +98,13 @@
         }
         private void OnClickCheck(int type)
         {
-            bool check = m_Checks[type - 1];
+            bool check = model.IsQualityMark(type);
             OnCheck(type, !check);
         }
         private void OnCheck(int type, bool check)
         {
-            m_Checks[type - 1] = check;
-            m_CheckMarks[type - 1].gameObject.SetActive(m_Checks[type - 1]);
+            model.SetQualityMark(type, check);
+            m_CheckMarks[type - 1].gameObject.SetActive(model.IsQualityMark(type));
             for (int i = 0; i < model.runeBreakList.Count; i++)
             {
                 RuneData _data = model.runeBreakList[i];
@@ -173,10 +172,10 @@
                     }
                 }
             }
-            OnCheck(1, m_Checks[0]);
-            OnCheck(2, m_Checks[1]);
-            OnCheck(3, m_Checks[2]);
-            OnCheck(4, m_Checks[3]);
+            OnCheck(1, model.IsQualityMark(1));
+            OnCheck(2, model.IsQualityMark(2));
+            OnCheck(3, model.IsQualityMark(3));
+            OnCheck(4, model.IsQualityMark(4));
         }
 
         IEnumerator Co_PlayEffect(float _t)
@@ -265,7 +264,6 @@
                 {
                     OnClickCheck(_type);
                 });
-                m_Checks.Add(i == 0);
             }
             m_JumpBtn0.onClick.AddListener(OnJumpRuneTower);
             m_JumpBtn1.onClick.AddListener(OnJumpRuneTower);
diff --git a/System/Rune/RuneModel.cs b/System/Rune/RuneModel.cs
index 767e86e..0c1b317 100644
--- a/System/Rune/RuneModel.cs
+++ b/System/Rune/RuneModel.cs
@@ -30,6 +30,7 @@
 
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
             PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
+            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
         }
 
         private void OnFuncStateChangeEvent(int func)
@@ -49,6 +50,14 @@
         {
             ClearRuneData();
             serverInited = false;
+        }
+
+        private void OnStageLoadFinish()
+        {
+            if (!(StageManager.Instance.CurrentStage is DungeonStage))
+            {
+                specialItemColorMark = false;
+            }
         }
 
         public void OnPlayerLoginOk()
@@ -1139,6 +1148,30 @@
             }
         }
 
+        #region 绗﹀嵃鍒嗚В閫夋嫨鍝佽川璁板綍
+        bool specialItemColorMark = false;
+        public bool IsQualityMark(int itemColor)
+        {
+            if (itemColor == 4)
+            {
+                return specialItemColorMark;
+            }
+            var playerId = PlayerDatas.Instance.baseData.PlayerID;
+            return LocalSave.GetBool(StringUtility.Contact("RuneBreakSelect_", playerId, "_", itemColor), itemColor == 1);
+        }
+
+        public void SetQualityMark(int itemColor, bool mark)
+        {
+            if (itemColor == 4)
+            {
+                specialItemColorMark = mark;
+                return;
+            }
+            var playerId = PlayerDatas.Instance.baseData.PlayerID;
+            LocalSave.SetBool(StringUtility.Contact("RuneBreakSelect_", playerId, "_", itemColor), mark);
+        }
+        #endregion
+
         #region 绗﹀嵃鍚堟垚
         public int GetMaxLevelRuneCnt(int _id, out RuneData _runeData)
         {
diff --git a/System/Store/Logic/BuyItemInfoWin.cs b/System/Store/Logic/BuyItemInfoWin.cs
index 079914f..afe18e2 100644
--- a/System/Store/Logic/BuyItemInfoWin.cs
+++ b/System/Store/Logic/BuyItemInfoWin.cs
@@ -156,32 +156,19 @@
 
             CheckUselimit();
 
-            if (itemTipsModel.curAttrData.itemConfig.Effect1 != 215)
-            {
-                int type = 0;
-                bool isContain = itemTipsModel.TryGetContainsParamsType(itemTipsModel.curAttrData.itemId, out type);
-                if (isContain)
-                {
-                    switch (type)
-                    {
-                        case 1:
-                            int fightPower = 0;
-                            itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
-                            itemDesText.text = itemTipsModel.curAttrData.itemConfig.Description.Replace("{0}",fightPower.ToString());
-                            break;
-                    }
-                }
-                else
-                {
-                    itemDesText.text = itemTipsModel.curAttrData.itemConfig.Description;
-                }
-              
-            }
-            else
+            string infoDes = itemTipsModel.curAttrData.GetAllInfoDes();
+            if (infoDes.Contains("{Exp}"))
             {
                 ulong expValue = itemTipsModel.GetAddExpValue(itemTipsModel.curAttrData.itemConfig.EffectValueA1, itemTipsModel.curAttrData.itemConfig.EffectValueB1);
-                itemDesText.text = itemTipsModel.curAttrData.itemConfig.Description.Replace("{0}", UIHelper.ReplaceLargeNum(expValue));
+                infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
             }
+            if (infoDes.Contains("{FightPower}"))
+            {
+                int fightPower = 0;
+                itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
+                infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
+            }
+            itemDesText.text = infoDes;
 
             if (itemTipsModel.curAttrData.itemConfig.ExpireTime > 0)
             {
diff --git a/System/Tip/ChestDetailBehaviour.cs b/System/Tip/ChestDetailBehaviour.cs
index 1f20b23..d1a151d 100644
--- a/System/Tip/ChestDetailBehaviour.cs
+++ b/System/Tip/ChestDetailBehaviour.cs
@@ -97,7 +97,20 @@
                 DisplayUseLimit(itemConfig);
             }
 
-            m_Description.text = itemTipsModel.curAttrData.GetAllInfoDes();
+            string infoDes = itemTipsModel.curAttrData.GetAllInfoDes();
+            if (infoDes.Contains("{Exp}"))
+            {
+                ulong expValue = itemTipsModel.GetAddExpValue(itemTipsModel.curAttrData.itemConfig.EffectValueA1, itemTipsModel.curAttrData.itemConfig.EffectValueB1);
+                infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
+            }
+            if (infoDes.Contains("{FightPower}"))
+            {
+                int fightPower = 0;
+                itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
+                infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
+            }
+
+            m_Description.text = infoDes;
 
             int useCnt = BoxModel.GetUseCntByID(itemTipsModel.curAttrData.itemId);
             m_UseTimes.gameObject.SetActive(itemConfig.MaxSkillCnt > 0);
diff --git a/System/Tip/PromoteDetailsWin.cs b/System/Tip/PromoteDetailsWin.cs
index d379d95..e482f3a 100644
--- a/System/Tip/PromoteDetailsWin.cs
+++ b/System/Tip/PromoteDetailsWin.cs
@@ -26,6 +26,11 @@
             }
         }
 
+        TreasureModel treasureModel
+        {
+            get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
+        }
+
         #region Built-in
         protected override void BindController()
         {
@@ -91,7 +96,24 @@
                     WindowCenter.Instance.Open<RolePanel>(false, 3);
                     break;
                 case RolePromoteModel.PromoteDetailType.TreasurePotential:
-                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.Treasure);
+                    treasureModel.currentCategory = TreasureCategory.Human;
+                    var list = treasureModel.GetTreasureCategory(TreasureCategory.Human);
+                    var gotoId = list[0];
+                    for (int i = 0; i < list.Count; i++)
+                    {
+                        Treasure treasure;
+                        if (treasureModel.TryGetTreasure(list[i], out treasure))
+                        {
+                            if (treasure.state == TreasureState.Collected && treasure.skillLevelUpRedpoint != null &&
+                                treasure.skillLevelUpRedpoint.state == RedPointState.Simple)
+                            {
+                                gotoId = list[i];
+                                break;
+                            }
+                        }
+                    }
+                    treasureModel.selectedTreasure = gotoId;
+                    WindowCenter.Instance.Open<TreasureBaseWin>();
                     break;
                 case RolePromoteModel.PromoteDetailType.RolePromote:
                     WindowCenter.Instance.Open<RolePromoteWin>();
diff --git a/UI/HUD/HeadUpName.cs b/UI/HUD/HeadUpName.cs
index 738d971..9333d91 100644
--- a/UI/HUD/HeadUpName.cs
+++ b/UI/HUD/HeadUpName.cs
@@ -35,6 +35,7 @@
         [SerializeField] TimerBehaviour m_TimeBehaviour;
         [SerializeField] Text m_RebornTime;
         [SerializeField] Text m_NpcAppearTxt;
+        [SerializeField] RebornRightNowBossInfoQuery m_BossInfoQuery;
         [SerializeField] Text m_FuncTxt;
 
         bool secondTextInited = false;
@@ -298,20 +299,23 @@
             {
                 return;
             }
+
+            m_BossInfoQuery.bossId = npcId;
             FindPreciousModel.BossInfo _bossInfo;
             if (findPreciousModel.TryGetBossInfo(npcId, out _bossInfo))
             {
                 m_RebornTime.gameObject.SetActive(true);
                 (m_TimeBehaviour as TimerToChsBehaviour).addtionInfo = Language.Get("BossReborn_RefreshTime");
-                m_TimeBehaviour.Begin( (int)(_bossInfo.refreshTime - TimeUtility.ServerNow).TotalSeconds, () =>
-                 {
-                     m_NpcAppearTxt.gameObject.SetActive(true);
-                 });
+                m_TimeBehaviour.Begin((int)(_bossInfo.refreshTime - TimeUtility.ServerNow).TotalSeconds, () =>
+                {
+                    m_NpcAppearTxt.gameObject.SetActive(true);
+                });
             }
             else
             {
                 m_RebornTime.gameObject.SetActive(false);
             }
+
             m_NpcAppearTxt.gameObject.SetActive(!m_RebornTime.gameObject.activeSelf);
         }
 

--
Gitblit v1.8.0