From f4f07847775c12b338d8bccedbbabc067dc1ae2c Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 18 八月 2018 14:34:26 +0800
Subject: [PATCH] Merge branch '法宝、法宝魂修改'

---
 System/Treasure/TreasureModel.cs |  237 +++++++++-------------------------------------------------
 1 files changed, 39 insertions(+), 198 deletions(-)

diff --git a/System/Treasure/TreasureModel.cs b/System/Treasure/TreasureModel.cs
index 348d071..a9e49b8 100644
--- a/System/Treasure/TreasureModel.cs
+++ b/System/Treasure/TreasureModel.cs
@@ -46,9 +46,7 @@
         public event Action vipKillNPCTreasureEvent;
         public event Action<int> treasureLevelProgressUpdateEvent;
         public event Action<int> treasureStageUpEvent;
-        public event Action<int> treasurePrivilegeUpdateEvent;
         public event Action<int> humanTreasureStateChangeEvent;
-        public event Action<int> treasureSelectSoulChangeEvent;
 
         bool m_WaitOpenDetailsWin = false;
         public bool waitOpenDetailsWin {
@@ -81,22 +79,6 @@
                 }
             }
         }
-
-        int m_SelectSoul = 0;
-        public int selectSoul
-        {
-            get { return m_SelectSoul; }
-            set
-            {
-                m_SelectSoul = value;
-                if (treasureSelectSoulChangeEvent != null)
-                {
-                    treasureSelectSoulChangeEvent(value);
-                }
-            }
-        }
-
-        public int gotoSoul { get; set; }
 
         int m_SelectedStage = 0;
         public int selectedStage {
@@ -187,7 +169,6 @@
         Dictionary<int, Treasure> treasures = new Dictionary<int, Treasure>();
         Dictionary<TreasureCategory, List<int>> treasureCategory = new Dictionary<TreasureCategory, List<int>>();
         Dictionary<int, int> treasureMapDict = new Dictionary<int, int>();
-        Dictionary<int, TreasureSpecialData> treasurePrivilegeDict = new Dictionary<int, TreasureSpecialData>();
         Dictionary<int, int> treasureAchievementDict = new Dictionary<int, int>();
         List<int> eightFurnacesAchievements = new List<int>();
         List<int> m_CacheGotAchievements = new List<int>();
@@ -264,7 +245,6 @@
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
             packageModel.RefreshItemCountAct += OnPackageItemChange;
             WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen;
-            PlayerStrengthengDatas.RefreshEquipUpgradLvAct += RefreshEquipSTRLv;
         }
 
         public override void UnInit()
@@ -278,7 +258,6 @@
             FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
             packageModel.RefreshItemCountAct -= OnPackageItemChange;
             WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen;
-            PlayerStrengthengDatas.RefreshEquipUpgradLvAct -= RefreshEquipSTRLv;
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -300,10 +279,7 @@
                 if ((treasure is HumanTreasure))
                 {
                     var humanTreasure = treasure as HumanTreasure;
-                    humanTreasure.humanState = HumanTreasureState.Locked;
-                    treasure.specialData.presentFinishCount = 0;
-                    treasure.specialData.presentGetCount = 0;
-                    treasure.specialData.itemGet = false;
+                    humanTreasure.UpdateTreasureState();
                 }
             }
         }
@@ -314,7 +290,6 @@
             UpdateAchievementRedpoints();
             UpdateCastSoulRedpoints();
             UpdateSkillLevelUpRedpoints();
-            UpdatePrivileges();
         }
 
         private bool needDisplayReguluLevelUp = false;
@@ -359,6 +334,34 @@
         {
             var _playerId = PlayerDatas.Instance.baseData.PlayerID;
             LocalSave.SetBool(StringUtility.Contact(_playerId, "_PotentialUnlockShow_", _treasureId), _value);
+        }
+
+        public bool GetSpAnim(int _treasureId)
+        {
+            var list = GetTreasureCategory(TreasureCategory.Human);
+            var index = list.IndexOf(_treasureId);
+            if (index == -1)
+            {
+                return false;
+            }
+            uint value = 0;
+            uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.SpAnim, 0), out value);
+            return MathUtility.GetBitValue(value, (ushort)index);
+        }
+
+        public void SetSpAnim(int _treasureId, bool anim = true)
+        {
+            var list = GetTreasureCategory(TreasureCategory.Human);
+            var index = list.IndexOf(_treasureId);
+            if (index == -1)
+            {
+                return;
+            }
+            uint value = 0;
+            uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.SpAnim, 0), out value);
+            int bitValue = MathUtility.SetBitValue((int)value, (ushort)index, anim);
+            QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.SpAnim, bitValue);
+            QuickSetting.Instance.SendPackage();
         }
 
         public bool TryGetUnlockShowTreasure(out int _id)
@@ -510,7 +513,7 @@
                         if (treasure is HumanTreasure)
                         {
                             var humanTreasure = treasure as HumanTreasure;
-                            humanTreasure.humanState = HumanTreasureState.CastSoul;
+                            humanTreasure.UpdateTreasureState();
                             UpdateCastSoulRedpoint(treasure.id);
                             if (GetTreasureUnlockShow(TreasureCategory.Human) == treasure.id)
                             {
@@ -519,7 +522,7 @@
                         }
                         if (serverInited)
                         {
-                            newGotTreasureId = id == 301 ? 0 : id;
+                            newGotTreasureId = id;
                             treasureEntranceShowId = id;
 
                             var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
@@ -578,7 +581,7 @@
                                     treasure.state = TreasureState.Collecting;
                                     if ((TreasureCategory)config.Category == TreasureCategory.Human)
                                     {
-                                        (treasure as HumanTreasure).humanState = HumanTreasureState.Challenge;
+                                        (treasure as HumanTreasure).UpdateTreasureState();
                                     }
                                     if ((TreasureCategory)config.Category == TreasureCategory.Demon)
                                     {
@@ -748,11 +751,6 @@
                     UpdateSkillLevelUpRedpoints();
                 }
             }
-
-            if (_type == PackType.rptEquip)
-            {
-                UpdateTreasurePrivilegeStrenthen();
-            }
         }
 
         private void OnFunctionStateChange(int _functionId)
@@ -760,7 +758,7 @@
             if (_functionId == 82)
             {
                 UpdateSkillLevelUpRedpoints();
-                if (!FuncOpen.Instance.IsFuncOpen(82) || !serverInited)
+                if (!FuncOpen.Instance.IsFuncOpen(82))
                 {
                     return;
                 }
@@ -769,8 +767,9 @@
                 {
                     Treasure treasure;
                     TryGetTreasure(list[i], out treasure);
-                    if (WindowCenter.Instance.CheckOpen<TreasureLevelUpWin>()
-                        && selectedTreasure == list[i] && treasure.IsMaxStage())
+                    var humanTreasure = treasure as HumanTreasure;
+                    humanTreasure.UpdateTreasureState();
+                    if (!serverInited || !treasure.IsHighestStage)
                     {
                         continue;
                     }
@@ -870,7 +869,7 @@
                     return;
                 }
                 var anyPointialLevelupAble = false;
-                if (treasure.state == TreasureState.Collected && treasure.IsMaxStage())
+                if (treasure.state == TreasureState.Collected && treasure.IsHighestStage)
                 {
                     for (int i = 0; i < treasure.potentials.Count; i++)
                     {
@@ -995,7 +994,7 @@
                                     if (_pretreasure == null || _pretreasure.state == TreasureState.Collected)
                                     {
                                         treasure.state = TreasureState.Collecting;
-                                        (treasure as HumanTreasure).humanState = HumanTreasureState.Challenge;
+                                        (treasure as HumanTreasure).UpdateTreasureState();
                                         collectingHuman = treasure.id;
                                         if (serverInited)
                                         {
@@ -1054,7 +1053,7 @@
                 return;
             }
 
-            if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsMaxStage())
+            if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsHighestStage)
             {
                 return;
             }
@@ -1137,166 +1136,12 @@
                     }
                     UpdateCastSoulRedpoint(treasure.id);
                     UpdateAchievementRedpoint(treasure.id);
-                    if (treasure.IsMaxStage())
-                    {
-                        UpdatePrivilege(treasure.id);
-                    }
                     if (serverInited && _up && treasureStageUpEvent != null)
                     {
                         treasureStageUpEvent(treasure.id);
                     }
                 }
             }
-        }
-
-        public void UpdateTreasurePrivilege(HA353_tagMCMWPrivilegeDataInfo package)
-        {
-            for (int i = 0; i < package.Count; i++)
-            {
-                var _data = package.InfoList[i];
-                if ((TreasurePrivilege)_data.PriID == TreasurePrivilege.StrengthenAdd)
-                {
-                    continue;
-                }
-                if (treasurePrivilegeDict.ContainsKey((int)_data.PriID))
-                {
-                    var _specialData = treasurePrivilegeDict[(int)_data.PriID];
-                    _specialData.presentFinishCount = (int)_data.GotValue;
-                    _specialData.presentGetCount = (int)_data.CurValue;
-                    _specialData.itemGet = _data.ItemAwardState == 1;
-                    var _list = treasureCategory[TreasureCategory.Human];
-                    var _index = _list.FindIndex((x) =>
-                      {
-                          var treasure = treasures[x];
-                          return (int)treasure.specialData.type == _data.PriID;
-                      });
-                    if (_index != -1)
-                    {
-                        UpdatePrivilege(_list[_index]);
-                    }
-                }
-                if (treasurePrivilegeUpdateEvent != null)
-                {
-                    treasurePrivilegeUpdateEvent((int)_data.PriID);
-                }
-            }
-        }
-
-        public void UpdateTreasurePrivilege(HA317_tagMCAllEquipAttrActiveInfo package)
-        {
-            for (int i = 0; i < package.ActiveInfo.Length; i++)
-            {
-                var _data = package.ActiveInfo[i];
-                if (_data.Type == 0)
-                {
-                    if (treasurePrivilegeDict.ContainsKey((int)TreasurePrivilege.StrengthenAdd))
-                    {
-                        var _specialData = treasurePrivilegeDict[(int)TreasurePrivilege.StrengthenAdd];
-                        _specialData.presentFinishCount = (int)_data.Cnt;
-                        var _list = treasureCategory[TreasureCategory.Human];
-                        var _index = _list.FindIndex((x) =>
-                        {
-                            var treasure = treasures[x];
-                            return treasure.specialData.type == TreasurePrivilege.StrengthenAdd;
-                        });
-                        if (_index != -1)
-                        {
-                            UpdatePrivilege(_list[_index]);
-                        }
-                    }
-                    if (treasurePrivilegeUpdateEvent != null)
-                    {
-                        treasurePrivilegeUpdateEvent((int)TreasurePrivilege.StrengthenAdd);
-                    }
-                }
-            }
-        }
-
-        private void RefreshEquipSTRLv(int _index)
-        {
-            UpdateTreasurePrivilegeStrenthen();
-        }
-
-        public void UpdateTreasurePrivilegeStrenthen()
-        {
-            var _list = treasureCategory[TreasureCategory.Human];
-            var _index = _list.FindIndex((x) =>
-            {
-                var treasure = treasures[x];
-                return treasure.specialData.type == TreasurePrivilege.StrengthenAdd;
-            });
-            if (_index != -1)
-            {
-                UpdatePrivilege(_list[_index]);
-                if (treasurePrivilegeUpdateEvent != null)
-                {
-                    treasurePrivilegeUpdateEvent((int)TreasurePrivilege.StrengthenAdd);
-                }
-            }
-        }
-
-        private void UpdatePrivileges()
-        {
-            var list = treasureCategory[TreasureCategory.Human];
-            for (int i = 0; i < list.Count; i++)
-            {
-                UpdatePrivilege(list[i]);
-            }
-        }
-
-        public bool IsGetTreasurePrivilege(TreasurePrivilege type)
-        {
-            var list = treasureCategory[TreasureCategory.Human];
-            for (int i = 0; i < list.Count; i++)
-            {
-                Treasure treasure;
-                if (TryGetTreasure(list[i], out treasure)
-                    && treasure.specialData.type == type && treasure.IsMaxStage())
-                {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        private void UpdatePrivilege(int _id)
-        {
-            if (treasures.ContainsKey(_id))
-            {
-                var treasure = treasures[_id];
-                if (treasure.state != TreasureState.Collected || !treasure.IsMaxStage())
-                {
-                    if (treasure.specialData.privilegeRedpoint != null)
-                    {
-                        treasure.specialData.privilegeRedpoint.state = RedPointState.None;
-                    }
-                    return;
-                }
-                treasure.specialData.UpdateState();
-            }
-        }
-
-        public int GetPrivilegeValue(int _privilegeId)
-        {
-            if (treasurePrivilegeDict.ContainsKey(_privilegeId))
-            {
-                var _list = GetTreasureCategory(TreasureCategory.Human);
-                Treasure _treasure = null;
-                var _index = _list.FindIndex((x) =>
-                {
-                    if (TryGetTreasure(x, out _treasure))
-                    {
-                        return _treasure.unLockPrivilege == _privilegeId;
-                    }
-                    return false;
-                });
-                if (_index != -1 && _treasure.IsMaxStage())
-                {
-                    var _specialData = treasurePrivilegeDict[_privilegeId];
-                    return _specialData.GetPrivilegeValue();
-                }
-            }
-            return 0;
         }
 
         public void HumanTreasureStateChange(int _id)
@@ -1396,10 +1241,6 @@
                 if (TryGetTreasure(config.MWID, out treasure))
                 {
                     treasure.UpdateTreasureStage(config);
-                    if (treasure.specialData != null)
-                    {
-                        treasurePrivilegeDict.Add((int)treasure.specialData.type, treasure.specialData);
-                    }
                 }
             }
 

--
Gitblit v1.8.0