From 498ec5c5d03765bbd87c3f75cbe68dd0d413baf9 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 13 八月 2018 15:27:18 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/MainInterfacePanel/HighSettingTip.cs        |    2 
 System/OpenServerActivity/ImpactRankModel.cs       |   12 +
 System/OpenServerActivity/OpenServerActivityWin.cs |  107 +++++++++--
 System/KnapSack/Logic/PackModelInterface.cs        |  103 +++++-----
 System/Welfare/WelfareWin.cs                       |   41 ----
 System/Welfare/WelfareCenter.cs                    |   14 -
 Fight/GameActor/GA_NpcCollect.cs                   |   13 +
 System/KnapSack/Logic/ItemTipsModel.cs             |  179 +++++++++----------
 System/RuneTower/RuneTowerWin.cs                   |   14 +
 System/Welfare/MultipleExpModel.cs                 |    2 
 Fight/GameActor/GA_NpcFunc.cs                      |    2 
 11 files changed, 261 insertions(+), 228 deletions(-)

diff --git a/Fight/GameActor/GA_NpcCollect.cs b/Fight/GameActor/GA_NpcCollect.cs
index 9e0409d..33a1f92 100644
--- a/Fight/GameActor/GA_NpcCollect.cs
+++ b/Fight/GameActor/GA_NpcCollect.cs
@@ -125,13 +125,22 @@
         }
     }
 
+    public sealed override void RequestName()
+    {
+        base.RequestName();
+
+        if (m_ReplaceNpcID != -1)
+        {
+            m_HeadUpName.SetNPCName(m_ReplaceNpcID);
+        }
+    }
+
     protected override void OnInit(GameNetPackBasic package)
     {
         base.OnInit(package);
+
         if (m_ReplaceNpcID != -1)
         {
-            NPCConfig _npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(m_ReplaceNpcID);
-            ActorInfo.PlayerName = _npcConfig.charName;
             RequestName();
         }
 
diff --git a/Fight/GameActor/GA_NpcFunc.cs b/Fight/GameActor/GA_NpcFunc.cs
index 893946e..979a0ba 100644
--- a/Fight/GameActor/GA_NpcFunc.cs
+++ b/Fight/GameActor/GA_NpcFunc.cs
@@ -123,7 +123,7 @@
     public sealed override void RequestLifeBar() { }
     public sealed override void ReleaseLifeBar() { }
 
-    public sealed override void RequestName()
+    public override void RequestName()
     {
         ReleaseName();
 
diff --git a/System/KnapSack/Logic/ItemTipsModel.cs b/System/KnapSack/Logic/ItemTipsModel.cs
index 964511a..c768a91 100644
--- a/System/KnapSack/Logic/ItemTipsModel.cs
+++ b/System/KnapSack/Logic/ItemTipsModel.cs
@@ -1648,118 +1648,115 @@
             this.ChildType = childType;
             this.isCustom = false;
             this.extraInfos = null;
-            if (type == PackType.rptEquip)
-            {
-                Dictionary<int, EquipmentInitialization> p_strengInfoDict = strengthengmodel._EqInfo;
-                if (p_strengInfoDict.ContainsKey(index))
-                {
-                    SetStrengthData(strengthengmodel.StrengthenTheCeiling(index), strengthengmodel.GameDefineIndex(index));
-                }
-
-                WashProCount washPro = washModel.GetWashEquipInfo(index);
-                if (washPro != null)
-                {
-                    SetWashModel(washModel.OnGetWashType(index), washPro.XLAttrLV, washModel.WashProValues(index));
-                }
-                SetGemModel(PlayerStoneData.Instance.GetStoneInfo(index));
-                SetSuitData(itemId,index);
-            } 
-            
-            SetLegendData(GetUseDataModel(17), GetUseDataModel(19));
-            SetExhaustedData(GetUseDataModel(21),GetUseDataModel(23));
-            SetWingsRefineMat(GetUseDataModel((int)ItemUseDataKey.Def_IudetWingMaterialItemID),GetUseDataModel((int)ItemUseDataKey.Def_IudetWingMaterialItemCount));
             isHavePutLimit = true;
-
-            if (GetUseDataModel(20) != null)
+            this.isCustom = CheckIsCustomItem();
+            if(isCustom)
             {
-                if (GetUseDataModel(20)[0] == 1)
+                AppointItemConfig appointItemConfig = ConfigManager.Instance.GetTemplate<AppointItemConfig>(itemId);
+                if (appointItemConfig != null)
                 {
-                    isHavePutLimit = false;
+                    if (appointItemConfig.CancelUseLimit == 1)
+                    {
+                        isHavePutLimit = false;
+                    }
+                    SetCustomAttrData(appointItemConfig);
                 }
+                this.itemId = itemConfig.EffectValueA1;
+                this.itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(this.itemId);
             }
             else
             {
-                this.isCustom = CheckIsCustomItem();
-                if (this.isCustom)
+                if (isPreview)
                 {
-                    AppointItemConfig appointItemConfig = ConfigManager.Instance.GetTemplate<AppointItemConfig>(itemId);
-                    if (appointItemConfig != null)
+                    List<int> legendIdlist = new List<int>();
+                    List<int> legendValuelist = new List<int>();
+                    if (itemConfig.EquipPlace != (int)RoleEquipType.retWing)
                     {
-                        if (appointItemConfig.CancelUseLimit == 1)
+                        if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
                         {
-                            isHavePutLimit = false;
+                            foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
+                            {
+                                switch (attrType)
+                                {
+                                    case LegendAttrType.Pursuit:
+                                        legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+                                        break;
+                                    case LegendAttrType.Fixed:
+                                        legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+                                        break;
+                                }
+                            }
                         }
-                        SetCustomAttrData(appointItemConfig);
+                        int i = 0;
+                        for (i = 0; i < legendIdlist.Count; i++)
+                        {
+                            if (itemTipsModel.legendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
+                            {
+                                if (itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
+                                {
+                                    legendValuelist.Add(itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
+                                }
+                            }
+                            else if (itemTipsModel.legendAttrLvValuePreviewDict.ContainsKey(legendIdlist[i]))
+                            {
+                                if (itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.LV))
+                                {
+                                    legendValuelist.Add(itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]][itemConfig.LV]);
+                                }
+                            }
+                        }
                     }
-                    this.itemId = itemConfig.EffectValueA1;
-                    this.itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(this.itemId);
+                    else
+                    {
+                        if (itemTipsModel.wingsLegendAttrValuePreviewDict.ContainsKey(itemConfig.LV))
+                        {
+                            Dictionary<int, List<int>> attrIdDict = itemTipsModel.wingsLegendAttrValuePreviewDict[itemConfig.LV];
+                            foreach (var attrId in attrIdDict.Keys)
+                            {
+                                legendIdlist.Add(attrId);
+                                legendValuelist.Add(attrIdDict[attrId][0]);
+                            }
 
-                  
+                        }
+                    }
+
+                    if (legendIdlist.Count == legendValuelist.Count)
+                    {
+                        SetLegendData(legendIdlist, legendValuelist);
+                    }
                 }
                 else
                 {
-                    if(isPreview)
+                    if (GetUseDataModel(20) != null)
                     {
-                        List<int> legendIdlist = new List<int>();
-                        List<int> legendValuelist = new List<int>();
-                        if(itemConfig.EquipPlace != (int)RoleEquipType.retWing)
+                        if (GetUseDataModel(20)[0] == 1)
                         {
-                            if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
-                            {
-                                foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
-                                {
-                                    switch (attrType)
-                                    {
-                                        case LegendAttrType.Pursuit:
-                                            legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
-                                            break;
-                                        case LegendAttrType.Fixed:
-                                            legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
-                                            break;
-                                    }
-                                }
-                            }
-                            int i = 0;
-                            for (i = 0; i < legendIdlist.Count; i++)
-                            {
-                                if (itemTipsModel.legendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
-                                {
-                                    if (itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
-                                    {
-                                        legendValuelist.Add(itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
-                                    }
-                                }
-                                else if (itemTipsModel.legendAttrLvValuePreviewDict.ContainsKey(legendIdlist[i]))
-                                {
-                                    if (itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.LV))
-                                    {
-                                        legendValuelist.Add(itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]][itemConfig.LV]);
-                                    }
-                                }
-                            }
-                        }
-                        else
-                        {
-                            if(itemTipsModel.wingsLegendAttrValuePreviewDict.ContainsKey(itemConfig.LV))
-                            {
-                                Dictionary<int, List<int>> attrIdDict = itemTipsModel.wingsLegendAttrValuePreviewDict[itemConfig.LV];
-                                foreach (var attrId in  attrIdDict.Keys)
-                                {
-                                    legendIdlist.Add(attrId);
-                                    legendValuelist.Add(attrIdDict[attrId][0]);
-                                }
-                               
-                            }
-                        }
-
-                        if (legendIdlist.Count == legendValuelist.Count)
-                        {
-                            SetLegendData(legendIdlist,legendValuelist);
+                            isHavePutLimit = false;
                         }
                     }
+
+                    if (type == PackType.rptEquip)
+                    {
+                        Dictionary<int, EquipmentInitialization> p_strengInfoDict = strengthengmodel._EqInfo;
+                        if (p_strengInfoDict.ContainsKey(index))
+                        {
+                            SetStrengthData(strengthengmodel.StrengthenTheCeiling(index), strengthengmodel.GameDefineIndex(index));
+                        }
+
+                        WashProCount washPro = washModel.GetWashEquipInfo(index);
+                        if (washPro != null)
+                        {
+                            SetWashModel(washModel.OnGetWashType(index), washPro.XLAttrLV, washModel.WashProValues(index));
+                        }
+                        SetGemModel(PlayerStoneData.Instance.GetStoneInfo(index));
+                        SetSuitData(itemId, index);
+                    }
+
+                    SetLegendData(GetUseDataModel(17), GetUseDataModel(19));
+                    SetExhaustedData(GetUseDataModel(21), GetUseDataModel(23));
+                    SetWingsRefineMat(GetUseDataModel((int)ItemUseDataKey.Def_IudetWingMaterialItemID), GetUseDataModel((int)ItemUseDataKey.Def_IudetWingMaterialItemCount));
                 }
             }
-
             this.score = modelInterface.SetEquipScore(id,useDataDict,isPreview);
             PetEatEquipConfig petEatConfig = PetEatEquipConfig.GetEquipColorAndEquipClass(itemConfig.ItemColor,itemConfig.LV);//浠欑洘浠撳簱瑁呭绉垎鍏戞崲琛�
             this.unionWarehouseScore = 0;
@@ -1768,7 +1765,7 @@
                 this.unionWarehouseScore = petEatConfig.integrate;
             }
 
-            if(itemTipsModel.randomRuneIds.Contains(id))
+            if(itemTipsModel.randomRuneIds.Contains(this.itemId))
             {
                 Dictionary<int, List<int>> unlockRuneDict = runeModel.GetAllUnlockRuneIdlist();
                 List<string> extraInfos = new List<string>();
diff --git a/System/KnapSack/Logic/PackModelInterface.cs b/System/KnapSack/Logic/PackModelInterface.cs
index fe54c49..131d7b0 100644
--- a/System/KnapSack/Logic/PackModelInterface.cs
+++ b/System/KnapSack/Logic/PackModelInterface.cs
@@ -103,75 +103,74 @@
             specAttrDic.Clear();
             int id = itemId;
             ItemConfig itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(itemId);
-            if(useDataDic != null)
+            if (CheckIsCustomItem(itemConfig))
             {
-                if(useDataDic.ContainsKey((int)ItemUseDataKey.Def_IudetLegendAttrID))
-                {
-                    SetLegendData(useDataDic[(int)ItemUseDataKey.Def_IudetLegendAttrID], useDataDic[(int)ItemUseDataKey.Def_IudetLegendAttrValue]);
-                }
-                
-                if(useDataDic.ContainsKey((int)ItemUseDataKey.Def_IudetOutOfPrintAttrID))
-                {
-                    SetExhaustedData(useDataDic[(int)ItemUseDataKey.Def_IudetOutOfPrintAttrID],useDataDic[(int)ItemUseDataKey.Def_IudetOutOfPrintAttrValue]);
-                }
-            
+                AppointItemConfig appointItemConfig = ConfigManager.Instance.GetTemplate<AppointItemConfig>(itemId);
+                SetCustomAttrData(appointItemConfig);
+                id = itemConfig.EffectValueA1;
             }
             else
             {
-                if (CheckIsCustomItem(itemConfig))
+                if (isPreview)
                 {
-                    AppointItemConfig appointItemConfig = ConfigManager.Instance.GetTemplate<AppointItemConfig>(itemId);
-                    SetCustomAttrData(appointItemConfig);
-                    id = itemConfig.EffectValueA1;
+                    List<int> legendIdlist = new List<int>();
+                    List<int> legendValuelist = new List<int>();
+                    if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
+                    {
+                        foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
+                        {
+                            switch (attrType)
+                            {
+                                case LegendAttrType.Pursuit:
+                                    legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+                                    break;
+                                case LegendAttrType.Fixed:
+                                    legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
+                                    break;
+                            }
+                        }
+                    }
+                    int i = 0;
+                    for (i = 0; i < legendIdlist.Count; i++)
+                    {
+                        if (itemTipsModel.legendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
+                        {
+                            if (itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
+                            {
+                                legendValuelist.Add(itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
+                            }
+                        }
+                        else if (itemTipsModel.legendAttrLvValuePreviewDict.ContainsKey(legendIdlist[i]))
+                        {
+                            if (itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.LV))
+                            {
+                                legendValuelist.Add(itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]][itemConfig.LV]);
+                            }
+                        }
+                    }
+
+                    if (legendIdlist.Count == legendValuelist.Count)
+                    {
+                        SetLegendData(legendIdlist, legendValuelist);
+                    }
                 }
                 else
                 {
-                    if (isPreview)
+                    if (useDataDic != null)
                     {
-                        List<int> legendIdlist = new List<int>();
-                        List<int> legendValuelist = new List<int>();
-                        if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
+                        if (useDataDic.ContainsKey((int)ItemUseDataKey.Def_IudetLegendAttrID))
                         {
-                            foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
-                            {
-                                switch (attrType)
-                                {
-                                    case LegendAttrType.Pursuit:
-                                        legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
-                                        break;
-                                    case LegendAttrType.Fixed:
-                                        legendIdlist.AddRange(itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace][attrType]);
-                                        break;
-                                }
-                            }
-                        }
-                        int i = 0;
-                        for (i = 0; i < legendIdlist.Count; i++)
-                        {
-                            if (itemTipsModel.legendAttrColorValuePreviewDict.ContainsKey(legendIdlist[i]))
-                            {
-                                if (itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.ItemColor))
-                                {
-                                    legendValuelist.Add(itemTipsModel.legendAttrColorValuePreviewDict[legendIdlist[i]][itemConfig.ItemColor]);
-                                }
-                            }
-                            else if (itemTipsModel.legendAttrLvValuePreviewDict.ContainsKey(legendIdlist[i]))
-                            {
-                                if (itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]].ContainsKey(itemConfig.LV))
-                                {
-                                    legendValuelist.Add(itemTipsModel.legendAttrLvValuePreviewDict[legendIdlist[i]][itemConfig.LV]);
-                                }
-                            }
+                            SetLegendData(useDataDic[(int)ItemUseDataKey.Def_IudetLegendAttrID], useDataDic[(int)ItemUseDataKey.Def_IudetLegendAttrValue]);
                         }
 
-                        if (legendIdlist.Count == legendValuelist.Count)
+                        if (useDataDic.ContainsKey((int)ItemUseDataKey.Def_IudetOutOfPrintAttrID))
                         {
-                            SetLegendData(legendIdlist, legendValuelist);
+                            SetExhaustedData(useDataDic[(int)ItemUseDataKey.Def_IudetOutOfPrintAttrID], useDataDic[(int)ItemUseDataKey.Def_IudetOutOfPrintAttrValue]);
                         }
+
                     }
                 }
             }
-
           return GetEquipScore(id,specAttrDic);
           
         }
diff --git a/System/MainInterfacePanel/HighSettingTip.cs b/System/MainInterfacePanel/HighSettingTip.cs
index 6dc3473..9edf3be 100644
--- a/System/MainInterfacePanel/HighSettingTip.cs
+++ b/System/MainInterfacePanel/HighSettingTip.cs
@@ -197,7 +197,7 @@
         {
             int _order = 0;
             m_OpenService.gameObject.SetActive(OpenServerActivityCenter.Instance.IsAnyActivityOpen(out _order));
-            m_OpenServerTitle.SetSprite(OpenServerActivityCenter.Instance.IsFlashSaleTitle() ? "WZ_ZJM_29" : "W_HuoDong");
+            //m_OpenServerTitle.SetSprite(OpenServerActivityCenter.Instance.IsFlashSaleTitle() ? "WZ_ZJM_29" : "W_HuoDong");
         }
 
         private void OnMainHighTipCdTime()
diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 0db6864..79d3a83 100644
--- a/System/OpenServerActivity/ImpactRankModel.cs
+++ b/System/OpenServerActivity/ImpactRankModel.cs
@@ -635,6 +635,8 @@
 
         ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
 
+        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
+
         public event Action openServerActivityStateChange;
 
         public OpenServerActivityCenter()
@@ -715,6 +717,11 @@
                 _functionOrder = 4;
                 return true;
             }
+            if (IsMultipleExpOpen())
+            {
+                _functionOrder = 5;
+                return true;
+            }
             return false;
         }
 
@@ -756,6 +763,11 @@
             return consumeRebateModel.IsOpen;
         }
 
+        public bool IsMultipleExpOpen()
+        {
+            return multipleExpModel.Open();
+        }
+
         public void ProcessErrorTip()
         {
             SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 07f3b95..1f3b9b8 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -47,8 +47,11 @@
 
         ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
 
+        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
+
         List<int> openActivitys = new List<int>();
         List<int> activityReds = new List<int>();
+        List<int> alreadyOpenActivitys = new List<int>();
 
         protected override void BindController()
         {
@@ -64,6 +67,7 @@
         protected override void OnPreOpen()
         {
             TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
+            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
             for (int i = 0; i < m_SortArray.Count; i++)
             {
                 m_ActivitySpreadDict[m_SortArray[i]] = false;
@@ -71,6 +75,7 @@
             impactRankModel.presentSelectType = impactRankModel.GetDefaultSelectType();
             impactRankModel.gotoImpactRankType = 0;
             envelopeModel.selectType = 1;
+            CheckAlreadyOpen();
             UpdateFunctionBtns();
         }
 
@@ -113,6 +118,7 @@
         protected override void OnPreClose()
         {
             TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
+            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
             CloseOtherWin();
             WindowCenter.Instance.Open<MainInterfaceWin>();
             impactRankModel.gotoImpactRankType = 0;
@@ -135,7 +141,6 @@
                     activityReds.Add(3);
                 }
             }
-
             if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
             {
                 openActivitys.Add(4);
@@ -144,7 +149,6 @@
                     activityReds.Add(4);
                 }
             }
-
             if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
             {
                 openActivitys.Add(0);
@@ -153,7 +157,6 @@
                     activityReds.Add(0);
                 }
             }
-
             if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
             {
                 openActivitys.Add(2);
@@ -168,13 +171,20 @@
                     envelopeModel.selectType = 2;
                 }
             }
-
             if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
             {
                 openActivitys.Add(1);
                 if (consumeRebateModel.consumeRebateRedpoint.state == RedPointState.Simple)
                 {
                     activityReds.Add(1);
+                }
+            }
+            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
+            {
+                openActivitys.Add(5);
+                if (multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
+                {
+                    activityReds.Add(5);
                 }
             }
 
@@ -187,6 +197,35 @@
             {
                 openActivitys.Sort(Compare);
                 return openActivitys[0];
+            }
+        }
+
+        void CheckAlreadyOpen()
+        {
+            alreadyOpenActivitys.Clear();
+            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
+            {
+                alreadyOpenActivitys.Add(3);
+            }
+            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
+            {
+                alreadyOpenActivitys.Add(4);
+            }
+            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
+            {
+                alreadyOpenActivitys.Add(0);
+            }
+            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
+            {
+                alreadyOpenActivitys.Add(2);
+            }
+            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
+            {
+                alreadyOpenActivitys.Add(1);
+            }
+            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
+            {
+                alreadyOpenActivitys.Add(5);
             }
         }
 
@@ -205,7 +244,19 @@
 
         private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
         {
-            _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+            switch (_cell.index)
+            {
+                case 5:
+                    OperationBase operationBase;
+                    if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase))
+                    {
+                        _cell.title.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS());
+                    }
+                    break;
+                default:
+                    _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+                    break;
+            }
             _cell.order = _cell.index;
             _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + _cell.index;
             _cell.ChangeState(_cell.order == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
@@ -253,13 +304,13 @@
             for (int i = 0; i < m_SortArray.Count; i++)
             {
                 var sort = m_SortArray[i];
+                if (!alreadyOpenActivitys.Contains(sort))
+                {
+                    continue;
+                }
                 switch (sort)
                 {
                     case 0:
-                        if (!OpenServerActivityCenter.Instance.IsImpactRankOpen())
-                        {
-                            continue;
-                        }
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         if (functionOrder != sort)
                         {
@@ -275,17 +326,9 @@
                         }
                         break;
                     case 1:
-                        if (!OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
-                        {
-                            continue;
-                        }
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         continue;
                     case 2:
-                        if (!OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
-                        {
-                            continue;
-                        }
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         if (!m_ActivitySpreadDict[sort])
                         {
@@ -295,17 +338,12 @@
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
                         break;
                     case 3:
-                        if (!OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
-                        {
-                            continue;
-                        }
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         break;
                     case 4:
-                        if (!OpenServerActivityCenter.Instance.IsFlashSaleOpen())
-                        {
-                            continue;
-                        }
+                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
+                        break;
+                    case 5:
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         break;
                 }
@@ -387,6 +425,16 @@
                         WindowCenter.Instance.Open<FlashSaleWin>(true);
                     }
                     break;
+                case 5:
+                    if (windowState == WindowState.Opened)
+                    {
+                        WindowCenter.Instance.OpenWithoutAnimation<MultipleExpWin>();
+                    }
+                    else
+                    {
+                        WindowCenter.Instance.Open<MultipleExpWin>(true);
+                    }
+                    break;
             }
         }
 
@@ -413,6 +461,7 @@
             WindowCenter.Instance.CloseImmediately<OSTimeLimitGiftWin>();
             WindowCenter.Instance.CloseImmediately<FlashSaleWin>();
             WindowCenter.Instance.CloseImmediately<ConsumeRebateWin>();
+            WindowCenter.Instance.CloseImmediately<MultipleExpWin>();
         }
 
         private int Compare(int x, int y)
@@ -421,6 +470,14 @@
             var index_y = m_SortArray.IndexOf(y);
             return index_x.CompareTo(index_y);
         }
+
+        private void OperationTimeUpdateEvent(Operation type)
+        {
+            if (type == Operation.MultipleExp)
+            {
+                m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
+            }
+        }
     }
 }
 
diff --git a/System/RuneTower/RuneTowerWin.cs b/System/RuneTower/RuneTowerWin.cs
index 76add5b..c446264 100644
--- a/System/RuneTower/RuneTowerWin.cs
+++ b/System/RuneTower/RuneTowerWin.cs
@@ -21,6 +21,7 @@
         [SerializeField] RuneTowerBehaviour m_Tower;
         [SerializeField] Transform m_ContainerBossInfo;
         [SerializeField] PositionTween m_BossShowTween;
+        [SerializeField] Image m_BossRealm;
         [SerializeField] Text m_BossName;
         [SerializeField] Text m_BossLevel;
         [SerializeField] RawImage m_BossPortrait;
@@ -151,7 +152,7 @@
             if (latestPassedFloor > 0)
             {
                 var completedTime = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.RuneTowerSweep);
-                if (completedTime>0)
+                if (completedTime > 0)
                 {
                     WindowCenter.Instance.Open<RuneTowerSweepBuyWin>();
                 }
@@ -170,6 +171,17 @@
         {
             var towerFloorConfig = ConfigManager.Instance.GetTemplate<RuneTowerFloorConfig>(model.selectedFloor);
             var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(towerFloorConfig.BossId);
+            if (npcConfig.Realm > 0)
+            {
+                m_BossRealm.gameObject.SetActive(true);
+                var realmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(npcConfig.Realm);
+                m_BossRealm.SetSprite(realmConfig.Img);
+            }
+            else
+            {
+                m_BossRealm.gameObject.SetActive(false);
+            }
+
             m_BossName.text = npcConfig.charName;
             m_BossLevel.text = Language.Get("HeadUpName_Monster", npcConfig.NPCLV);
 
diff --git a/System/Welfare/MultipleExpModel.cs b/System/Welfare/MultipleExpModel.cs
index 1842755..92d1482 100644
--- a/System/Welfare/MultipleExpModel.cs
+++ b/System/Welfare/MultipleExpModel.cs
@@ -90,7 +90,7 @@
             }
         }
 
-        public Redpoint multipleExpRedpoint = new Redpoint(201, 20106);
+        public Redpoint multipleExpRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20905);
 
         public void SetDayRemind()
         {
diff --git a/System/Welfare/WelfareCenter.cs b/System/Welfare/WelfareCenter.cs
index 408c136..6dd8325 100644
--- a/System/Welfare/WelfareCenter.cs
+++ b/System/Welfare/WelfareCenter.cs
@@ -13,8 +13,6 @@
 
         InSevenDayModel sevenDayModel { get { return ModelCenter.Instance.GetModel<InSevenDayModel>(); } }
 
-        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
-
         BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
 
         /// <summary>
@@ -65,13 +63,6 @@
                 return;
             }
 
-            if (multipleExpModel.Open() && multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
-            {
-                WindowCenter.Instance.Close<MainInterfaceWin>();
-                WindowCenter.Instance.Open<WelfareWin>(false, 5);
-                return;
-            }
-
             if (bossRebornModel.IsOpen() && RedpointCenter.Instance.GetRedpointState(20108) == RedPointState.Simple)
             {
                 WindowCenter.Instance.Close<MainInterfaceWin>();
@@ -118,11 +109,6 @@
             if (levelGiftModel.redpoint.state == RedPointState.Simple)
             {
                 return 3;
-            }
-
-            if (multipleExpModel.Open() && multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
-            {
-                return 5;
             }
 
             if (bossRebornModel.IsOpen() && RedpointCenter.Instance.GetRedpointState(20108) == RedPointState.Simple)
diff --git a/System/Welfare/WelfareWin.cs b/System/Welfare/WelfareWin.cs
index 59dd70e..b35c77b 100644
--- a/System/Welfare/WelfareWin.cs
+++ b/System/Welfare/WelfareWin.cs
@@ -19,16 +19,13 @@
         [SerializeField] FunctionButton Btn_InSeven;
         [SerializeField] FunctionButton m_LevelGiftBtn;
         [SerializeField] FunctionButton m_ExchangeBtn;
-        [SerializeField] FunctionButton m_MultipleExpBtn;
         [SerializeField] FunctionButton m_BossReornBtn;
         [SerializeField] FunctionButton m_NpracticeBtn;
         [SerializeField] FunctionButtonGroup buttonGroup;
         [SerializeField] Button closeBtn;
 
-        [SerializeField] Text m_MultipleExtTitle;
         [SerializeField] Text m_MultipleRealmPointTitle;
 
-        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
         MultipleRealmPointModel multipleRealmModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
         InSevenDayModel m_InSevenDayModel;
         InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel<InSevenDayModel>()); } }
@@ -49,7 +46,6 @@
             m_ExchangeBtn.onClick.AddListener(OnExchange);
             m_NpracticeBtn.AddListener(OnNPractice);
             closeBtn.onClick.AddListener(CloseClick);
-            m_MultipleExpBtn.onClick.AddListener(OnMultipleExp);
             m_BossReornBtn.AddListener(BossRebornBtn);
         }
 
@@ -140,19 +136,6 @@
             functionOrder = 8;
         }
 
-        private void OnMultipleExp()
-        {
-            CloseChildWin();
-            if (windowState == WindowState.Opened)
-            {
-                WindowCenter.Instance.OpenWithoutAnimation<MultipleExpWin>();
-            }
-            else
-            {
-                WindowCenter.Instance.Open<MultipleExpWin>();
-            }
-            functionOrder = 5;
-        }
         private void OnSignIn()
         {
             CloseChildWin();
@@ -187,10 +170,6 @@
         protected override void OnActived()
         {
             base.OnActived();
-            //if (!Btn_InSeven.gameObject.activeInHierarchy)
-            //{
-            //    functionOrder = 2;
-            //}
             buttonGroup.TriggerByOrder(functionOrder);
         }
 
@@ -241,10 +220,6 @@
             {
                 WindowCenter.Instance.CloseImmediately<AwardExchangeWin>();
             }
-            if (WindowCenter.Instance.CheckOpen<MultipleExpWin>())
-            {
-                WindowCenter.Instance.CloseImmediately<MultipleExpWin>();
-            }
             if (WindowCenter.Instance.CheckOpen<NPracticePointWin>())
             {
                 WindowCenter.Instance.CloseImmediately<NPracticePointWin>();
@@ -260,11 +235,7 @@
         private void OperationEndEvent(Operation type, int state)
         {
             OperationBase operation;
-            if (type == Operation.MultipleExp && !multipleExpModel.Open() && WindowCenter.Instance.CheckOpen<MultipleExpWin>())
-            {
-                buttonGroup.TriggerByOrder(WelfareCenter.Instance.GetWelfareFuncOrder());
-            }
-            else if (type == Operation.BossReborn && !bossRebornModel.IsOpen() && WindowCenter.Instance.CheckOpen<BossRebornWin>())
+            if (type == Operation.BossReborn && !bossRebornModel.IsOpen() && WindowCenter.Instance.CheckOpen<BossRebornWin>())
             {
                 buttonGroup.TriggerByOrder(WelfareCenter.Instance.GetWelfareFuncOrder());
             }
@@ -276,17 +247,7 @@
 
         void CheckOperationOpen()
         {
-            m_MultipleExpBtn.gameObject.SetActive(multipleExpModel.Open());
             m_BossReornBtn.gameObject.SetActive(bossRebornModel.IsOpen());
-
-            if (multipleExpModel.Open())
-            {
-                OperationBase operationBase;
-                if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase))
-                {
-                    m_MultipleExtTitle.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS());
-                }
-            }
 
             OperationBase operation = null;
             bool isOpen = Open(Operation.MultipRealmPoint, out operation);

--
Gitblit v1.8.0