From 577aa28e09e08d1ee12df16d36643b80c192d7bf Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 05 七月 2019 23:49:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/KnapSack/Logic/EquipDevourWin.cs    |    8 +
 Lua/Gen/SnxxzUIEquipFightPowerWrap.cs.meta |   12 ++
 System/Alchemy/AlchemyStoveBehaviour.cs    |   26 +++++
 System/Alchemy/AlchemyUseDrugWin.cs        |    6 
 Lua/Gen/EnumWrap.cs                        |    8 +
 System/FairyAu/ExchangeActiveTokenModel.cs |   58 ++++++-----
 System/Alchemy/AlchemyUseDrugCell.cs       |    4 
 Lua/Gen/link.xml                           |    1 
 Lua/Gen/XLuaGenAutoRegister.cs             |   33 +++---
 System/KnapSack/New/EquipPlaceCell.cs      |   16 --
 Lua/Gen/SnxxzUIPackModelWrap.cs.meta       |    2 
 Lua/Gen/SnxxzUIPackModelWrap.cs            |   12 -
 System/Alchemy/AlchemyModel.cs             |    3 
 System/KnapSack/Logic/PackModel.cs         |   60 ++++++-----
 System/Alchemy/AlchemyBasicDrugWin.cs      |   13 ++
 System/Alchemy/AlchemyNormalUseDrugWin.cs  |   30 ++++++
 16 files changed, 195 insertions(+), 97 deletions(-)

diff --git a/Lua/Gen/EnumWrap.cs b/Lua/Gen/EnumWrap.cs
index 3bb303d..62b78a5 100644
--- a/Lua/Gen/EnumWrap.cs
+++ b/Lua/Gen/EnumWrap.cs
@@ -7290,7 +7290,7 @@
 		    Utils.BeginObjectRegister(typeof(E_ModelResType), L, translator, 0, 0, 0, 0);
 			Utils.EndObjectRegister(typeof(E_ModelResType), L, translator, null, null, null, null, null);
 			
-			Utils.BeginClassRegister(typeof(E_ModelResType), L, null, 8, 0, 0);
+			Utils.BeginClassRegister(typeof(E_ModelResType), L, null, 9, 0, 0);
             
             Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Weapon", E_ModelResType.Weapon);
             
@@ -7305,6 +7305,8 @@
             Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Secondary", E_ModelResType.Secondary);
             
             Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hand", E_ModelResType.Hand);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Spirit", E_ModelResType.Spirit);
             
 			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
             
@@ -7351,6 +7353,10 @@
                 {
                     translator.PushE_ModelResType(L, E_ModelResType.Hand);
                 }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Spirit"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Spirit);
+                }
 				else
                 {
                     return LuaAPI.luaL_error(L, "invalid string for E_ModelResType!");
diff --git a/Lua/Gen/SnxxzUIEquipFightPowerWrap.cs.meta b/Lua/Gen/SnxxzUIEquipFightPowerWrap.cs.meta
new file mode 100644
index 0000000..55960a4
--- /dev/null
+++ b/Lua/Gen/SnxxzUIEquipFightPowerWrap.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: be7e2426fca728c4eaf7165f51ea3a9f
+timeCreated: 1562331274
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Lua/Gen/SnxxzUIPackModelWrap.cs b/Lua/Gen/SnxxzUIPackModelWrap.cs
index 87c26f5..e82a647 100644
--- a/Lua/Gen/SnxxzUIPackModelWrap.cs
+++ b/Lua/Gen/SnxxzUIPackModelWrap.cs
@@ -104,7 +104,7 @@
 			
 			Utils.RegisterFunc(L, Utils.GETTER_IDX, "makeDruglist", _g_get_makeDruglist);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "isPlayBetterEquipEffect", _g_get_isPlayBetterEquipEffect);
-            Utils.RegisterFunc(L, Utils.GETTER_IDX, "guardGetPathId", _g_get_guardGetPathId);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "spiritWeaponPathIds", _g_get_spiritWeaponPathIds);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "wingsGetPathIdDict", _g_get_wingsGetPathIdDict);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "dungeonUseDict", _g_get_dungeonUseDict);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "lookLineIndex", _g_get_lookLineIndex);
@@ -635,12 +635,6 @@
             
                 
                 {
-                    int _equipPlace = LuaAPI.xlua_tointeger(L, 2);
-                    
-                        bool gen_ret = gen_to_be_invoked.IsShowAddEquipByPlace( _equipPlace );
-                        LuaAPI.lua_pushboolean(L, gen_ret);
-                    
-                    
                     
                     return 1;
                 }
@@ -2073,13 +2067,13 @@
         }
         
         [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
-        static int _g_get_guardGetPathId(RealStatePtr L)
+        static int _g_get_spiritWeaponPathIds(RealStatePtr L)
         {
 		    try {
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.PackModel gen_to_be_invoked = (Snxxz.UI.PackModel)translator.FastGetCSObj(L, 1);
-                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.guardGetPathId);
+                translator.Push(L, gen_to_be_invoked.spiritWeaponPathIds);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIPackModelWrap.cs.meta b/Lua/Gen/SnxxzUIPackModelWrap.cs.meta
index f36d3ff..d0e3f5b 100644
--- a/Lua/Gen/SnxxzUIPackModelWrap.cs.meta
+++ b/Lua/Gen/SnxxzUIPackModelWrap.cs.meta
@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: 44a79d6b36594754c8a1d7745278949d
-timeCreated: 1562249796
+timeCreated: 1562338101
 licenseType: Pro
 MonoImporter:
   serializedVersion: 2
diff --git a/Lua/Gen/XLuaGenAutoRegister.cs b/Lua/Gen/XLuaGenAutoRegister.cs
index 5a1100c..d88bc6d 100644
--- a/Lua/Gen/XLuaGenAutoRegister.cs
+++ b/Lua/Gen/XLuaGenAutoRegister.cs
@@ -1075,6 +1075,9 @@
             translator.DelayWrapLoader(typeof(Snxxz.UI.TrialDungeonModel), SnxxzUITrialDungeonModelWrap.__Register);
         
         
+            translator.DelayWrapLoader(typeof(Snxxz.UI.EquipFightPower), SnxxzUIEquipFightPowerWrap.__Register);
+        
+        
             translator.DelayWrapLoader(typeof(Snxxz.UI.EquipModel), SnxxzUIEquipModelWrap.__Register);
         
         
@@ -1113,13 +1116,13 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.FairylandCeremonyModel), SnxxzUIFairylandCeremonyModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(FakeDungeonUtility), FakeDungeonUtilityWrap.__Register);
-        
         }
         
         static void wrapInit7(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(FakeDungeonUtility), FakeDungeonUtilityWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.FashionDecomposeModel), SnxxzUIFashionDecomposeModelWrap.__Register);
         
@@ -1270,13 +1273,13 @@
         
             translator.DelayWrapLoader(typeof(CoinTaskTipModel), CoinTaskTipModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(FeatureNoticeModel), FeatureNoticeModelWrap.__Register);
-        
         }
         
         static void wrapInit8(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(FeatureNoticeModel), FeatureNoticeModelWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.MainRedDot), SnxxzUIMainRedDotWrap.__Register);
         
@@ -1427,13 +1430,13 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.ExpertSkillSelectWin), SnxxzUIExpertSkillSelectWinWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(QuickSetting), QuickSettingWrap.__Register);
-        
         }
         
         static void wrapInit9(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(QuickSetting), QuickSettingWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.SkillModel), SnxxzUISkillModelWrap.__Register);
         
@@ -1584,13 +1587,13 @@
         
             translator.DelayWrapLoader(typeof(JumpUIType), JumpUITypeWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(Snxxz.UI.MapModel), SnxxzUIMapModelWrap.__Register);
-        
         }
         
         static void wrapInit10(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(Snxxz.UI.MapModel), SnxxzUIMapModelWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(WorldMapSkip), WorldMapSkipWrap.__Register);
         
@@ -1741,14 +1744,14 @@
         
             translator.DelayWrapLoader(typeof(RedPointState), RedPointStateWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(TeamInviteType), TeamInviteTypeWrap.__Register);
-        
         }
         
         static void wrapInit11(LuaEnv luaenv, ObjectTranslator translator)
         {
         
+            translator.DelayWrapLoader(typeof(TeamInviteType), TeamInviteTypeWrap.__Register);
+        
+        
             translator.DelayWrapLoader(typeof(TeammatePrepareState), TeammatePrepareStateWrap.__Register);
         
         
diff --git a/Lua/Gen/link.xml b/Lua/Gen/link.xml
index 3879d8b..16283d6 100644
--- a/Lua/Gen/link.xml
+++ b/Lua/Gen/link.xml
@@ -322,6 +322,7 @@
 		<type fullname="Snxxz.UI.DungeonUseBuffModel" preserve="all"/>
 		<type fullname="IceLodeStarAwardClass" preserve="all"/>
 		<type fullname="Snxxz.UI.TrialDungeonModel" preserve="all"/>
+		<type fullname="Snxxz.UI.EquipFightPower" preserve="all"/>
 		<type fullname="Snxxz.UI.EquipModel" preserve="all"/>
 		<type fullname="Snxxz.UI.EquipGemModel" preserve="all"/>
 		<type fullname="Snxxz.UI.EquipStrengthModel" preserve="all"/>
diff --git a/System/Alchemy/AlchemyBasicDrugWin.cs b/System/Alchemy/AlchemyBasicDrugWin.cs
index 1df2f61..ff0c2ed 100644
--- a/System/Alchemy/AlchemyBasicDrugWin.cs
+++ b/System/Alchemy/AlchemyBasicDrugWin.cs
@@ -15,6 +15,19 @@
 
     public class AlchemyBasicDrugWin : AlchemyDrugWin
     {
+
+        protected override void OnPreClose()
+        {
+            base.OnPreClose();
+            if (FunctionalGuideCenter.Instance.ExistUnderwayGuide(131))
+            {
+                FunctionalGuideCenter.Instance.RemoveGuide(131);
+            }
+            if (FunctionalGuideCenter.Instance.ExistUnderwayGuide(132))
+            {
+                FunctionalGuideCenter.Instance.RemoveGuide(132);
+            }
+        }
     }
 }
 
diff --git a/System/Alchemy/AlchemyModel.cs b/System/Alchemy/AlchemyModel.cs
index 67871a9..a3263a2 100644
--- a/System/Alchemy/AlchemyModel.cs
+++ b/System/Alchemy/AlchemyModel.cs
@@ -59,6 +59,8 @@
         public int normalBatchAlchemyLevel { get; private set; }
         Dictionary<int, int> alchemyRedpointLevelLimits;
 
+        public int autoFunctionGuideLevel { get; private set; }
+
         public bool isServerPrepare { get; private set; }
 
         public event Action selectAlchemyRefresh;
@@ -181,6 +183,7 @@
                 funcConfig = FuncConfigConfig.Get("AlchemyRedPoint");
                 normalBatchAlchemyLevel = int.Parse(funcConfig.Numerical2);
                 alchemyRedpointLevelLimits = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
+                autoFunctionGuideLevel = int.Parse(funcConfig.Numerical4);
             }
 
             {
diff --git a/System/Alchemy/AlchemyNormalUseDrugWin.cs b/System/Alchemy/AlchemyNormalUseDrugWin.cs
index 044432b..74463cc 100644
--- a/System/Alchemy/AlchemyNormalUseDrugWin.cs
+++ b/System/Alchemy/AlchemyNormalUseDrugWin.cs
@@ -14,7 +14,37 @@
 
     public class AlchemyNormalUseDrugWin : AlchemyUseDrugWin
     {
+        protected override void OnAfterOpen()
+        {
+            base.OnAfterOpen();
 
+            if (PlayerDatas.Instance.baseData.LV < model.autoFunctionGuideLevel
+                && !FunctionalGuideCenter.Instance.ExistAnyUnderwayGuide()
+                && model.alchemyDrugRedpoint3.state == RedPointState.Simple)
+            {
+                m_Controller.JumpIndex(0);
+                NewBieCenter.Instance.ResetGuide(133);
+                StartCoroutine(Co_StartGuied(133));
+            }
+        }
+
+        protected override void OnPreClose()
+        {
+            base.OnPreClose();
+
+            if (FunctionalGuideCenter.Instance.ExistUnderwayGuide(133))
+            {
+                FunctionalGuideCenter.Instance.RemoveGuide(133);
+            }
+
+            StopAllCoroutines();
+        }
+
+        IEnumerator Co_StartGuied(int guide)
+        {
+            yield return null;
+            FunctionalGuideCenter.Instance.StartGuide(guide);
+        }
     }
 
 }
diff --git a/System/Alchemy/AlchemyStoveBehaviour.cs b/System/Alchemy/AlchemyStoveBehaviour.cs
index 94a6c8e..e027de4 100644
--- a/System/Alchemy/AlchemyStoveBehaviour.cs
+++ b/System/Alchemy/AlchemyStoveBehaviour.cs
@@ -144,8 +144,23 @@
                     DisplayAlchemyTime();
                     break;
                 case 2:
+                    if (model.selectAlchemyType == AlchemyType.Normal && PlayerDatas.Instance.baseData.LV < model.autoFunctionGuideLevel &&
+                        !FunctionalGuideCenter.Instance.ExistAnyUnderwayGuide())
+                    {
+                        NewBieCenter.Instance.ResetGuide(131);
+                        StartCoroutine(Co_StartGuied(131));
+                    }
                     m_AlchemyCompleteEffect.Play();
                     break;
+            }
+
+            if (model.selectAlchemyType == AlchemyType.Normal && PlayerDatas.Instance.baseData.LV < model.autoFunctionGuideLevel
+                && !FunctionalGuideCenter.Instance.ExistAnyUnderwayGuide()
+                && model.alchemyDrugRedpoint3.state == RedPointState.Simple
+                && state != 2)
+            {
+                NewBieCenter.Instance.ResetGuide(132);
+                StartCoroutine(Co_StartGuied(132));
             }
 
             DisplayViewLength();
@@ -171,6 +186,12 @@
                         break;
                 }
             }
+        }
+
+        IEnumerator Co_StartGuied(int guide)
+        {
+            yield return null;
+            FunctionalGuideCenter.Instance.StartGuide(guide);
         }
 
         void DisplayReikiPoint()
@@ -458,6 +479,11 @@
                     break;
                 case 2:
                     pak.DoType = 3;
+
+                    if (FunctionalGuideCenter.Instance.ExistUnderwayGuide(131))
+                    {
+                        FunctionalGuideCenter.Instance.RemoveGuide(131);
+                    }
                     break;
             }
             GameNetSystem.Instance.SendInfo(pak);
diff --git a/System/Alchemy/AlchemyUseDrugCell.cs b/System/Alchemy/AlchemyUseDrugCell.cs
index 8c359a7..70343dc 100644
--- a/System/Alchemy/AlchemyUseDrugCell.cs
+++ b/System/Alchemy/AlchemyUseDrugCell.cs
@@ -21,8 +21,10 @@
 
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
-        public void Display(int itemId)
+        public void Display(int itemId, int displayIndex)
         {
+            this.gameObject.name = "AlchemyUseDrugCell_" + displayIndex;
+
             var count = packModel.GetItemCountByID(PackType.Item, itemId);
             var itemModel = new ItemCellModel(itemId, true, (ulong)count);
             m_Item.Init(itemModel);
diff --git a/System/Alchemy/AlchemyUseDrugWin.cs b/System/Alchemy/AlchemyUseDrugWin.cs
index f9d5664..c22dac0 100644
--- a/System/Alchemy/AlchemyUseDrugWin.cs
+++ b/System/Alchemy/AlchemyUseDrugWin.cs
@@ -15,13 +15,13 @@
     public class AlchemyUseDrugWin : Window
     {
         [SerializeField] AlchemyType m_AlchemyType;
-        [SerializeField] ScrollerController m_Controller;
+        [SerializeField] protected ScrollerController m_Controller;
         //[SerializeField] AlchemySortBehaviour m_AlchemyTypeSort;
         //[SerializeField] AlchemySortBehaviour m_AlchemyQualitySort;
 
         List<int> displayItems = new List<int>();
 
-        AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
+        protected AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
         #region Built-in
@@ -134,7 +134,7 @@
         private void OnRefreshCell(ScrollerDataType type, CellView cell)
         {
             var useDrugCell = cell as AlchemyUseDrugCell;
-            useDrugCell.Display(displayItems[cell.index]);
+            useDrugCell.Display(displayItems[cell.index], cell.index);
         }
 
         private void RefreshItemCountEvent(PackType packType, int arg2, int itemId)
diff --git a/System/FairyAu/ExchangeActiveTokenModel.cs b/System/FairyAu/ExchangeActiveTokenModel.cs
index 7cf726c..dfa8763 100644
--- a/System/FairyAu/ExchangeActiveTokenModel.cs
+++ b/System/FairyAu/ExchangeActiveTokenModel.cs
@@ -18,9 +18,7 @@
 
     public int SuitEquipActiveCount { get; private set; }
     public int NormalEquipActiveCount { get; private set; }
-    public int Item3801ActiveCount { get; private set; }
-    public int Item3802ActiveCount { get; private set; }
-    
+    private Dictionary<int, int> m_ItemExcahngeActiveCountDic = new Dictionary<int, int>();
 
     public event Action RefreshActiveCanGetEvent;
     public event Action ExchangetSuccessEvent;
@@ -113,22 +111,28 @@
 
     private bool IsBetterThanBodyEquip(ItemModel item)
     {
+        if(item.config.EquipPlace == 0)
+        {
+            return false;
+        }
         if(item.config.JobLimit != PlayerDatas.Instance.baseData.Job)
         {
             return false;
         }
-        var equipGUID = m_EquipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace));
-        var equip = m_PackModel.GetItemByGuid(equipGUID);
-        if (equip == null)
+        int score = 0;
+        var pos = new Int2(item.config.LV, item.config.EquipPlace);
+        var index = EquipSet.ClientPlaceToServerPlace(pos);
+        var itemModel = m_PackModel.GetItemByIndex(PackType.Equip, index);
+        if(itemModel == null)
         {
-           
-            return true;
+            score = 0;
         }
-        //if(equip.config.LV < item.config.LV)
-        //{
-        //    return true;
-        //}
-        if (equip.score < item.score)
+        else
+        {
+            score = itemModel.score;
+        }
+        
+        if (score < item.score)
         {
             return true;
         }
@@ -159,16 +163,12 @@
         int totalCount = 0;
         foreach (var equip in ChoseEquips)
         {
-            if(equip.itemId == 3801)
+            if( m_ItemExcahngeActiveCountDic.ContainsKey(equip.itemId) )
             {
-                totalCount += Item3801ActiveCount * equip.count;
+                totalCount += m_ItemExcahngeActiveCountDic[equip.itemId] * equip.count;
                 continue;
             }
-            if (equip.itemId == 3802)
-            {
-                totalCount += Item3802ActiveCount * equip.count;
-                continue;
-            }
+            
 
             if (equip.config.SuiteiD == 0)
             {
@@ -191,8 +191,12 @@
 
 
         var res2 = FuncConfigConfig.Get("FamilyDonate").Numerical2.Split('|');
-        Item3801ActiveCount = int.Parse(res2[0].Split('_')[1]);
-        Item3802ActiveCount = int.Parse(res2[1].Split('_')[1]);
+        for (int i = 0; i < res2.Length; i++)
+        {
+            var info = res2[i].Split('_');
+            m_ItemExcahngeActiveCountDic[int.Parse(info[0])] = int.Parse(info[1]);
+        }
+        
     }
 
     public void SendExchangeRequest()
@@ -320,9 +324,13 @@
                 suitEquips[j] = iEqu;
             }
         }
-        //娣诲姞鐗╁搧 ID 3801  3802
-        suitEquips.AddRange(m_PackModel.GetItemsById(PackType.Item, 3801));
-        suitEquips.AddRange(m_PackModel.GetItemsById(PackType.Item, 3802));
+        //娣诲姞鐗╁搧棰濆鐗╀綋
+        foreach (var itemId in m_ItemExcahngeActiveCountDic.Keys)
+        {
+            suitEquips.AddRange(m_PackModel.GetItemsById(PackType.Item, itemId));
+        }
+        
+        
 
         return suitEquips;
     }
diff --git a/System/KnapSack/Logic/EquipDevourWin.cs b/System/KnapSack/Logic/EquipDevourWin.cs
index d0b1998..dffae14 100644
--- a/System/KnapSack/Logic/EquipDevourWin.cs
+++ b/System/KnapSack/Logic/EquipDevourWin.cs
@@ -62,7 +62,7 @@
             isOpen = true;
             playerPack.selectDevourlist.Clear();
             devourModellist = playerPack.GetDevourModellist();
-            colorlistObj.SetActive(false);
+
             InitUI();
         }
 
@@ -98,6 +98,12 @@
 
         }
 
+        protected override void OnActived()
+        {
+            base.OnActived();
+            colorlistObj.SetActive(false);
+        }
+
         private void InitUI()
         {
             playerPack.GetSelectDevourList();
diff --git a/System/KnapSack/Logic/PackModel.cs b/System/KnapSack/Logic/PackModel.cs
index 330e2c1..98486cb 100644
--- a/System/KnapSack/Logic/PackModel.cs
+++ b/System/KnapSack/Logic/PackModel.cs
@@ -3,6 +3,7 @@
 using System.Linq;
 using UnityEngine;
 using LitJson;
+using System.Text.RegularExpressions;
 
 namespace Snxxz.UI
 {
@@ -479,19 +480,35 @@
                     refreshItemSumUseCountEvent(itemId);
                 }
             }
-        }
-
+        }
+
         #endregion
-
+
         #region 鐜╁瑁呭鐗规畩閫昏緫
-        public int guardGetPathId { get; private set; }
+        public Dictionary<int, Dictionary<int, int>> spiritWeaponPathIds { get; private set; }
         public Dictionary<int, int> wingsGetPathIdDict { get; private set; }
         public Dictionary<int, List<int>> dungeonUseDict { get; private set; }
         void ParseConfig()
         {
-            FuncConfigConfig funcConfig = FuncConfigConfig.Get("WingYuPeiHQTJ");
-            guardGetPathId = int.Parse(funcConfig.Numerical3);
-            wingsGetPathIdDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical4);
+            FuncConfigConfig funcConfig = FuncConfigConfig.Get("WingYuPeiHQTJ");
+            spiritWeaponPathIds = new Dictionary<int, Dictionary<int, int>>();
+            var splits = funcConfig.Numerical3.Split('|');
+            for (int i = 0; i < splits.Length; i++)
+            {
+                var tempString = splits[i];
+                var matches = Regex.Matches(tempString.Trim(), "\\d+");
+                var equipPlace = int.Parse(matches[0].Value);
+                var job = int.Parse(matches[1].Value);
+                var itemId = int.Parse(matches[2].Value);
+
+                if (!spiritWeaponPathIds.ContainsKey(equipPlace))
+                {
+                    spiritWeaponPathIds[equipPlace] = new Dictionary<int, int>();
+                }
+
+                spiritWeaponPathIds[equipPlace][job] = itemId;
+            }
+
             FuncConfigConfig copyItemBulletWindow = FuncConfigConfig.Get("CopyItemBulletWindow");
             JsonData copyWinData = JsonMapper.ToObject(copyItemBulletWindow.Numerical1);
             dungeonUseDict = new Dictionary<int, List<int>>();
@@ -515,17 +532,14 @@
             int playerJob = PlayerDatas.Instance.baseData.Job;
             switch ((RoleEquipType)equipPlace)
             {
-                case RoleEquipType.Guard:
-                    return guardGetPathId;
-                case RoleEquipType.Wing:
-                    if (wingsGetPathIdDict.ContainsKey(playerJob))
-                    {
-                        return wingsGetPathIdDict[playerJob];
-                    }
-                    break;
+                case RoleEquipType.Guard:
+                case RoleEquipType.PeerlessWeapon1:
+                case RoleEquipType.PeerlessWeapon2:
+                case RoleEquipType.Wing:
+                    return spiritWeaponPathIds[equipPlace][playerJob];
+                default:
+                    return 0;
             }
-
-            return 0;
         }
 
         private void UpdateSecond()
@@ -543,18 +557,6 @@
             isUpdatePlayerLv = true;
         }
 
-        public bool IsShowAddEquipByPlace(int equipPlace)
-        {
-            switch ((RoleEquipType)equipPlace)
-            {
-                case RoleEquipType.Wing:
-                    return true;
-                case RoleEquipType.Guard:
-                    return true;
-                default:
-                    return false;
-            }
-        }
         #endregion
 
         private void GetItemEventCtrl(ItemModel itemModel, bool showNewItem)
diff --git a/System/KnapSack/New/EquipPlaceCell.cs b/System/KnapSack/New/EquipPlaceCell.cs
index 02cbd42..b44c152 100644
--- a/System/KnapSack/New/EquipPlaceCell.cs
+++ b/System/KnapSack/New/EquipPlaceCell.cs
@@ -9,7 +9,7 @@
         [SerializeField] ItemCell m_ItemCell;
 
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
-        
+
 
         RoleEquipType equipType;
 
@@ -21,15 +21,8 @@
             if (item == null)
             {
                 m_ItemCell.gameObject.SetActive(false);
-                if (packModel.IsShowAddEquipByPlace((int)equipType))
-                {
-                    m_AddEquip.gameObject.SetActive(true);
-                    m_AddEquip.SetListener(AddEqup);
-                }
-                else
-                {
-                    m_AddEquip.gameObject.SetActive(false);
-                }
+                m_AddEquip.gameObject.SetActive(true);
+                m_AddEquip.SetListener(AddEqup);
             }
             else
             {
@@ -60,8 +53,7 @@
             }
             else
             {
-                packModel.SetLookIndex(guid);
-                packModel.RefreshBagInfo();
+                ItemTipUtility.Show(guid);
             }
         }
 

--
Gitblit v1.8.0