From ae75d007b44ffbdeb1c7177af804ad6fa907bb13 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 20 八月 2018 19:44:37 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/BetterItemGet/RealmBetterEquipModel .cs        |  221 +++++++++++++++++++++++++++++++
 System/KnapSack/Logic/PackModelInterface.cs           |   41 +++++
 Core/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs |    9 -
 System/BetterItemGet/RealmBetterEquipModel .cs.meta   |   12 +
 System/MainInterfacePanel/InGamePushContainer.cs      |   26 +++
 System/WindowBase/ModelCenter.cs                      |    1 
 System/KnapSack/RealmBetterEquipBehaviour.cs          |   92 +++++++++++++
 System/KnapSack/RealmBetterEquipBehaviour.cs.meta     |   12 +
 8 files changed, 404 insertions(+), 10 deletions(-)

diff --git a/Core/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs b/Core/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
index 5dcd2fb..4bbdb37 100644
--- a/Core/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
+++ b/Core/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
@@ -553,15 +553,6 @@
         private void ExcuteBuildLevels()
         {
             UpdateLevelSetting.SetAllLevelAssetBundleName();
-
-            var grachicSettings = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/GraphicsSettings.asset")[0]);
-            var lightmapStripping = grachicSettings.FindProperty("m_LightmapStripping");
-            lightmapStripping.intValue = 1;
-            var fogStripping = grachicSettings.FindProperty("m_FogStripping");
-            fogStripping.intValue = 1;
-
-            grachicSettings.ApplyModifiedProperties();
-
             ExcuteBuildAsset("maps");
         }
 
diff --git a/System/BetterItemGet/RealmBetterEquipModel .cs b/System/BetterItemGet/RealmBetterEquipModel .cs
new file mode 100644
index 0000000..57cf056
--- /dev/null
+++ b/System/BetterItemGet/RealmBetterEquipModel .cs
@@ -0,0 +1,221 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Saturday, January 20, 2018
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+using TableConfig;
+
+namespace Snxxz.UI
+{
+    public class RealmBetterEquipModel : Model, IBeforePlayerDataInitialize, ISwitchAccount,IPlayerLoginOk
+    {
+        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
+        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
+
+        public string currentEquipGuid { get; private set; }
+
+        Dictionary<string, ItemModel> betterEquipModels = new Dictionary<string, ItemModel>();
+
+        public event Action showEquipRefreshEvent;
+        public const string RealmRecordKey = "RealmRecord";
+
+        public override void Init()
+        {
+            playerPack.RefreshPackAct += OnPackageRefresh;
+            playerPack.RefreshItemCountAct += OnPackageItemRefresh;
+        }
+
+        public override void UnInit()
+        {;
+            playerPack.RefreshPackAct -= OnPackageRefresh;
+            playerPack.RefreshItemCountAct -= OnPackageItemRefresh;
+        }
+
+        public void OnBeforePlayerDataInitialize()
+        {
+            currentEquipGuid = string.Empty;
+            betterEquipModels.Clear();
+        }
+
+        public void OnPlayerLoginOk()
+        {
+            LocalSave.SetInt(RealmRecordKey,PlayerDatas.Instance.baseData.realmLevel);
+            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= RefreshRealm;
+            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshRealm;
+        }
+
+        public void OnSwitchAccount()
+        {
+            currentEquipGuid = string.Empty;
+        }
+
+        private void RefreshRealm(PlayerDataRefresh type)
+        {
+            int realmLv = PlayerDatas.Instance.baseData.realmLevel;
+            if (type != PlayerDataRefresh.OfficialRank
+                || LocalSave.GetInt(RealmRecordKey) == realmLv
+                || NewBieCenter.Instance.inGuiding)
+            {
+                return;
+            }
+
+            LocalSave.SetInt(RealmRecordKey,realmLv);
+            Dictionary<int, ItemModel> pairs = modelInterface.CheckBetterEquipByRealm();
+            betterEquipModels.Clear();
+            currentEquipGuid = string.Empty;
+            foreach (var model in pairs.Values)
+            {
+                betterEquipModels[model.itemInfo.ItemGUID] = model;
+                currentEquipGuid = model.itemInfo.ItemGUID;
+            }
+            if (showEquipRefreshEvent != null)
+            {
+                showEquipRefreshEvent();
+            }
+        }
+
+        public bool TryGetBetterEquip(string _guid, out ItemModel _equip)
+        {
+            return betterEquipModels.TryGetValue(_guid, out _equip);
+        }
+
+        public void ReportConfirmBetterEquip(string _guid)
+        {
+            betterEquipModels.Remove(_guid);
+
+            var tempGuid = GetOneEquip();
+            if (tempGuid != currentEquipGuid)
+            {
+                currentEquipGuid = tempGuid;
+                if (showEquipRefreshEvent != null)
+                {
+                    showEquipRefreshEvent();
+                }
+            }
+        }
+
+      
+        private void OnPackageRefresh(PackType _packType)
+        {
+            if (_packType != PackType.rptItem)
+            {
+                return;
+            }
+
+            var keys = new List<string>(betterEquipModels.Keys);
+            for (int i = keys.Count - 1; i >= 0; i--)
+            {
+                var guid = keys[i];
+                var itemModel = playerPack.GetItemModelByGUID(guid);
+                if (itemModel == null || itemModel.packType != PackType.rptItem)
+                {
+                    betterEquipModels.Remove(guid);
+                }
+            }
+
+            var tempGuid = GetOneEquip();
+            if (tempGuid != currentEquipGuid)
+            {
+                if (!string.IsNullOrEmpty(tempGuid))
+                {
+                    currentEquipGuid = tempGuid;
+                    if (showEquipRefreshEvent != null)
+                    {
+                        showEquipRefreshEvent();
+                    }
+                }
+                else
+                {
+                    currentEquipGuid = tempGuid;
+                    if (showEquipRefreshEvent != null)
+                    {
+                        showEquipRefreshEvent();
+                    }
+                }
+            }
+        }
+
+        private void OnPackageItemRefresh(PackType _packType, int _index, int _itemId)
+        {
+            if (_packType == PackType.rptEquip)
+            {
+                //绌夸笂瑁呭鐨勬椂鍊欑殑澶勭悊
+                var item = playerPack.GetItemModelByIndex(_packType, _index);
+                if (item != null)
+                {
+                    RemoveLowGradeItemByEquipPlace(_index, item.equipScore);
+                }
+                OnPackageRefresh(PackType.rptItem);
+            }
+            else if (_packType == PackType.rptItem)
+            {
+                OnPackageRefresh(_packType);
+            }
+        }
+
+        private string GetOneEquip()
+        {
+            var guid = string.Empty;
+            foreach (var key in betterEquipModels.Keys)
+            {
+                guid = key;
+                break;
+            }
+
+            return guid;
+        }
+
+        private void RemoveItemByEquipPlace(int _place)
+        {
+            var place = _place == 10 ? 9 : _place;
+            var keys = new List<string>(betterEquipModels.Keys);
+            for (int i = keys.Count - 1; i >= 0; i--)
+            {
+                var item = betterEquipModels[keys[i]];
+                if (item != null && item.chinItemModel.EquipPlace == place)
+                {
+                    betterEquipModels.Remove(keys[i]);
+                }
+            }
+        }
+
+        private void RemoveLowGradeItemByEquipPlace(int _place, int _score)
+        {
+            var place = _place == 10 ? 9 : _place;
+            var keys = new List<string>(betterEquipModels.Keys);
+            for (int i = keys.Count - 1; i >= 0; i--)
+            {
+                var item = betterEquipModels[keys[i]];
+                if (item != null && item.chinItemModel.EquipPlace == place && item.equipScore <= _score)
+                {
+                    betterEquipModels.Remove(keys[i]);
+                }
+            }
+        }
+
+        private bool TryGetEquipByPlace(int _place, out ItemModel _itemModel)
+        {
+            var place = _place == 10 ? 9 : _place;
+            var keys = new List<string>(betterEquipModels.Keys);
+            for (int i = keys.Count - 1; i >= 0; i--)
+            {
+                var item = betterEquipModels[keys[i]];
+                if (item != null && item.chinItemModel.EquipPlace == place)
+                {
+                    _itemModel = item;
+                    return true;
+                }
+            }
+
+            _itemModel = null;
+            return false;
+        }
+    }
+
+}
+
+
+
diff --git a/System/BetterItemGet/RealmBetterEquipModel .cs.meta b/System/BetterItemGet/RealmBetterEquipModel .cs.meta
new file mode 100644
index 0000000..7f6f9b1
--- /dev/null
+++ b/System/BetterItemGet/RealmBetterEquipModel .cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 368f012abd3595c419a67d33f44153ea
+timeCreated: 1534755541
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/KnapSack/Logic/PackModelInterface.cs b/System/KnapSack/Logic/PackModelInterface.cs
index 6951495..f4e6205 100644
--- a/System/KnapSack/Logic/PackModelInterface.cs
+++ b/System/KnapSack/Logic/PackModelInterface.cs
@@ -7,7 +7,7 @@
 
 namespace Snxxz.UI
 {
-    public class PackModelInterface : Model, IBeforePlayerDataInitialize
+    public class PackModelInterface : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
     {
         private ItemConfig tagChinModel;
         private FuncConfigConfig _equipGSFormula;
@@ -88,6 +88,12 @@
             itemEffectCDDict.Clear();
             itemEffectTimelist.Clear();
         }
+
+        public void OnPlayerLoginOk()
+        {
+            
+        }
+
 
         public override void UnInit()
         {
@@ -736,6 +742,39 @@
                 RefreshPickItemEvent(type,guid);
             }
         }
+
+        Dictionary<int, ItemModel> RealmBetterDict = new Dictionary<int, ItemModel>();
+        public Dictionary<int, ItemModel> CheckBetterEquipByRealm()
+        {
+            RealmBetterDict.Clear();
+            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
+            if (singlePack == null) return RealmBetterDict;
+
+            int realmLv = PlayerDatas.Instance.baseData.realmLevel;
+            Dictionary<int,ItemModel> pairs = singlePack.GetPackModelIndexDict();
+            foreach(var model in pairs.Values)
+            {
+                if(model.chinItemModel.EquipPlace > 0
+                    && model.chinItemModel.EquipPlace != (int)RoleEquipType.retSpiritAnimal
+                    && model.chinItemModel.RealmLimit <= realmLv
+                    && !IsOverdue(model.itemInfo.ItemGUID,model.itemId,model.useDataDict)
+                    && IsFightUp(model.itemId,model.equipScore) == 1)
+                {
+                    if(!RealmBetterDict.ContainsKey(model.EquipPlace))
+                    {
+                        RealmBetterDict.Add(model.EquipPlace,model);
+                    }
+                    else
+                    {
+                        if(model.equipScore > RealmBetterDict[model.EquipPlace].equipScore)
+                        {
+                            RealmBetterDict[model.EquipPlace] = model;
+                        }
+                    }
+                }
+            }
+            return RealmBetterDict;
+        }
         #endregion
 
         #region 瑙i攣鏍煎瓙
diff --git a/System/KnapSack/RealmBetterEquipBehaviour.cs b/System/KnapSack/RealmBetterEquipBehaviour.cs
new file mode 100644
index 0000000..cd712d6
--- /dev/null
+++ b/System/KnapSack/RealmBetterEquipBehaviour.cs
@@ -0,0 +1,92 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, December 05, 2017
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using TableConfig;
+using Snxxz.UI;
+
+namespace Snxxz.UI
+{
+
+    public class RealmBetterEquipBehaviour : MonoBehaviour
+    {
+        [SerializeField] RectTransform m_ContainerBetterEquip;
+        [SerializeField] ItemCell m_EquipBehaviour;
+        [SerializeField] Text m_EquipName;
+        [SerializeField] Button m_Close;
+        [SerializeField] Button m_Puton;
+        [SerializeField] Button m_BetterEquipDetail;
+        ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
+        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
+        RealmBetterEquipModel model { get { return ModelCenter.Instance.GetModel<RealmBetterEquipModel>(); } }
+
+        private void OnEnable()
+        {
+            m_Close.AddListener(CloseBetterEquip);
+            m_Puton.AddListener(PutOnBetterEquip);
+            m_BetterEquipDetail.AddListener(ShowBetterEquipDetails);
+        }
+
+        private void OnDisable()
+        {
+            m_Close.RemoveAllListeners();
+            m_Puton.RemoveAllListeners();
+            m_BetterEquipDetail.RemoveAllListeners();
+        }
+
+        public void ShowBetterEquip()
+        {
+            m_ContainerBetterEquip.gameObject.SetActive(false);
+            if (!string.IsNullOrEmpty(model.currentEquipGuid))
+            {
+                ItemModel betterEquip;
+                if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
+                {
+                    DrawBetterEquip(betterEquip);
+                    m_ContainerBetterEquip.gameObject.SetActive(true);
+                }
+
+            }
+        }
+
+        private void PutOnBetterEquip()
+        {
+            PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, model.currentEquipGuid);
+            model.ReportConfirmBetterEquip(model.currentEquipGuid);
+        }
+
+        private void ShowBetterEquipDetails()
+        {
+            ItemModel betterEquip;
+            if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
+            {
+                var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(betterEquip.itemInfo.ItemID);
+                itemTipsModel.SetItemTipsModel(PackType.rptItem, betterEquip.itemInfo.ItemGUID);
+            }
+        }
+
+        private void CloseBetterEquip()
+        {
+            model.ReportConfirmBetterEquip(model.currentEquipGuid);
+        }
+
+        private void DrawBetterEquip(ItemModel betterModel)
+        {
+            var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(betterModel.itemInfo.ItemID);
+            m_EquipName.text = itemConfig.ItemName;
+            m_EquipName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true);
+            m_EquipBehaviour.Init(betterModel, true);
+        }
+    }
+}
+
+
+
+
+
diff --git a/System/KnapSack/RealmBetterEquipBehaviour.cs.meta b/System/KnapSack/RealmBetterEquipBehaviour.cs.meta
new file mode 100644
index 0000000..894d587
--- /dev/null
+++ b/System/KnapSack/RealmBetterEquipBehaviour.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c8eb21cc504d5514b950ab4d60ef9814
+timeCreated: 1534753740
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/MainInterfacePanel/InGamePushContainer.cs b/System/MainInterfacePanel/InGamePushContainer.cs
index c5e07a6..70ca73c 100644
--- a/System/MainInterfacePanel/InGamePushContainer.cs
+++ b/System/MainInterfacePanel/InGamePushContainer.cs
@@ -14,6 +14,7 @@
     public class InGamePushContainer : MonoBehaviour
     {
         [SerializeField] BetterItemGetBehaviour m_BetterEquipPusher;
+        [SerializeField] RealmBetterEquipBehaviour m_RealmBetterEquipPusher;
         [SerializeField] PreciousItemGetBehaviour m_PreciousItemPusher;
         [SerializeField] FindPreciousBossRebornBehaviour m_BossRebornPusher;
         [SerializeField] ItemUseBehaviour m_itemUsePusher;
@@ -26,6 +27,7 @@
 
         FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
         BetterEquipGetModel betterEquipGetModel { get { return ModelCenter.Instance.GetModel<BetterEquipGetModel>(); } }
+        RealmBetterEquipModel realmEquipModel { get { return ModelCenter.Instance.GetModel<RealmBetterEquipModel>(); } }
         PreciousItemGetModel preciousItemGetModel { get { return ModelCenter.Instance.GetModel<PreciousItemGetModel>(); } }
         ItemUseModel itemUseModel { get { return ModelCenter.Instance.GetModel<ItemUseModel>(); } }
         ItemOverdueModel itemOverdue { get { return ModelCenter.Instance.GetModel<ItemOverdueModel>(); } }
@@ -38,6 +40,7 @@
         public void Init()
         {
             CheckBetterEquip();
+            CheckRealmBetterEquip();
             CheckPreciousItem();
             CheckBossReborn();
             CheckItemUse();
@@ -49,6 +52,7 @@
             FirstChargeTrialShow();
             playerPack.RefreshDecomAttrAct += CheckEquipDecompose;
             betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip;
+            realmEquipModel.showEquipRefreshEvent += CheckRealmBetterEquip;
             preciousItemGetModel.showItemRefreshEvent += CheckPreciousItem;
             findPreciousModel.bossRebornNotifyChangeEvent += CheckBossReborn;
             itemUseModel.showItemRefreshEvent += CheckItemUse;
@@ -68,6 +72,28 @@
             NewBieCenter.Instance.guideBeginEvent -= OnNewBieGuideBegin;
             guardModel.onDungeonEquipGuardEvent -= CheckDungeonGuard;
             firstTimeRechargeModel.IsTipShowEvent -= FirstChargeTrialShow;
+            realmEquipModel.showEquipRefreshEvent -= CheckRealmBetterEquip;
+        }
+
+
+        private void CheckRealmBetterEquip()
+        {
+            if (string.IsNullOrEmpty(realmEquipModel.currentEquipGuid))
+            {
+                m_RealmBetterEquipPusher.gameObject.SetActive(false);
+            }
+            else
+            {
+                if (betterEquipGetModel.ShowBetterEquipAble())
+                {
+                    m_RealmBetterEquipPusher.gameObject.SetActive(true);
+                    m_RealmBetterEquipPusher.ShowBetterEquip();
+                }
+                else
+                {
+                    m_RealmBetterEquipPusher.gameObject.SetActive(false);
+                }
+            }
         }
 
         private void CheckBetterEquip()
diff --git a/System/WindowBase/ModelCenter.cs b/System/WindowBase/ModelCenter.cs
index 40859a5..de88d9a 100644
--- a/System/WindowBase/ModelCenter.cs
+++ b/System/WindowBase/ModelCenter.cs
@@ -144,6 +144,7 @@
             RegisterModel<ActivityModel>();
             RegisterModel<PlayerDeadModel>();
             RegisterModel<BetterEquipGetModel>();
+            RegisterModel<RealmBetterEquipModel>();
             RegisterModel<PreciousItemGetModel>();
             RegisterModel<PlayerMainDate>();
             RegisterModel<StoryMissionsModel>();

--
Gitblit v1.8.0