From ed70d1a620d499b5cedd497d5dcb2b4a9b27e99e Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 24 五月 2019 14:18:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs                                               |   17 -----
 System/RidingPet/RidingPetBossModel.cs                                                 |   21 +++++-
 Fight/Stage/StageLoad.cs                                                               |    1 
 System/RidingPet/RidingPetContentionWin.cs                                             |   26 +++++++-
 Fight/Stage/Dungeon/ClientDungeonStageUtility.cs                                       |   36 -----------
 System/RidingPet/ContainerRidingPet.cs                                                 |   24 ++++++--
 Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB214_tagMCCuntomFBPrizeInfo.cs |    2 
 Core/GameEngine/DataToCtl/PackageRegedit.cs                                            |    3 
 Fight/Stage/StageLoadProcessor.cs                                                      |    5 +
 9 files changed, 68 insertions(+), 67 deletions(-)

diff --git a/Core/GameEngine/DataToCtl/PackageRegedit.cs b/Core/GameEngine/DataToCtl/PackageRegedit.cs
index 861db01..e296786 100644
--- a/Core/GameEngine/DataToCtl/PackageRegedit.cs
+++ b/Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,7 +25,8 @@
     public static void Init()
     {
         // 鐧昏鐩稿簲鐨勬暟鎹綋鍙婂搴旂殑鏁版嵁杞�昏緫绫�
-		Register(typeof(HB216_tagMCStartCustomSceneResult), typeof(DTCB216_tagMCStartCustomSceneResult));
+        Register(typeof(HAC07_tagGCHorsePetBossInfo), typeof(DTCAC07_tagGCHorsePetBossInfo));
+        Register(typeof(HB216_tagMCStartCustomSceneResult), typeof(DTCB216_tagMCStartCustomSceneResult));
 		Register(typeof(HA905_tagGCNotifyEquipDetailInfo), typeof(DTCA905_tagGCNotifyEquipDetailInfo));
         Register(typeof(HA719_tagSCPlayerEquipCacheResult) ,typeof(DTCA719_tagSCPlayerEquipCacheResult));
         Register(typeof(HB108_tagMCYinjiStartTime) ,typeof(DTCB108_tagMCYinjiStartTime));
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB214_tagMCCuntomFBPrizeInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB214_tagMCCuntomFBPrizeInfo.cs
index 9d9ab90..2700721 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB214_tagMCCuntomFBPrizeInfo.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB214_tagMCCuntomFBPrizeInfo.cs
@@ -14,8 +14,6 @@
     {
         base.Done(vNetPack);
         var package = vNetPack as HB214_tagMCCuntomFBPrizeInfo;
-
-        ClientDungeonStageUtility.ReceiveCustomItems(package);
     }
 
 }
diff --git a/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs b/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
index 8d3c862..356eadd 100644
--- a/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
+++ b/Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
@@ -11,11 +11,7 @@
     public static ushort clientMapId { get; private set; }
     public static Dungeon dungeonInfo { get; set; }
 
-    static bool exitClientDungeonSymbol = false;
-
     const string OFFLINEMAPRECORD = "OfflineMapRecord";
-
-    public static event Action<HB214_tagMCCuntomFBPrizeInfo> onReceiveCustomDropItme;
 
     static Action<Dungeon, bool> clientCustomDungeonResult;
 
@@ -23,7 +19,6 @@
     {
         DTC0102_tagCDBPlayer.switchAccountEvent += Reset;
         DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
-        StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
     }
 
     public static void SetClientDungeon(bool value, ushort mapId)
@@ -45,14 +40,6 @@
             ClearClientDataMapSymbol();
         }
     }
-
-    public static void RequestSettleClientDungeon(int mapId, int lineId)
-    {
-        var pak = new CB109_tagCMGiveCustomFBPrize();
-        pak.MapID = (uint)mapId;
-        pak.FuncLineID = (ushort)lineId;
-        GameNetSystem.Instance.SendInfo(pak);
-    }
 
     public static void RequestStartClientDungeon(int mapId, int lineId, Action<Dungeon, bool> callBack)
     {
@@ -74,14 +61,6 @@
     {
         var pak = new CA233_tagCMClientExitCustomScene();
         GameNetSystem.Instance.SendInfo(pak);
-    }
-
-    public static void ReceiveCustomItems(HB214_tagMCCuntomFBPrizeInfo package)
-    {
-        if (onReceiveCustomDropItme != null)
-        {
-            onReceiveCustomDropItme(package);
-        }
     }
 
     public static void ReceiveStartCustomDungeonResult(HB216_tagMCStartCustomSceneResult package)
@@ -139,8 +118,6 @@
         PlayerDatas.Instance.extersion.pkState = 0;
         ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData();
 
-        exitClientDungeonSymbol = true;
-
         PlayerDatas.Instance.baseData.MapID = PlayerDatas.Instance.baseData.mainServerMapIdRecord;
         StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
         {
@@ -150,7 +127,8 @@
             needLoadResource = true,
             serverType = ServerType.Main,
             isClientLoadMap = true,
-            refreshPlayerDatas = true
+            refreshPlayerDatas = true,
+            exitClientMap = true,
         });
     }
 
@@ -266,16 +244,6 @@
             RequestStartClientDungeon(dungeonInfo.mapId, dungeonInfo.lineId, null);
         }
     }
-
-    private static void OnStageLoadFinish()
-    {
-        if (exitClientDungeonSymbol)
-        {
-            RequestExitClientDungeon();
-        }
-
-        exitClientDungeonSymbol = false;
-    }
 
     private static void Reset()
     {
diff --git a/Fight/Stage/StageLoad.cs b/Fight/Stage/StageLoad.cs
index a91edb6..fbb21ce 100644
--- a/Fight/Stage/StageLoad.cs
+++ b/Fight/Stage/StageLoad.cs
@@ -280,6 +280,7 @@
         public bool isClientLoadMap;
         public bool needLoadResource;
         public bool refreshPlayerDatas;
+        public bool exitClientMap;
 
         public bool serverFlag0109 = false;
     }
diff --git a/Fight/Stage/StageLoadProcessor.cs b/Fight/Stage/StageLoadProcessor.cs
index e6e2224..466928e 100644
--- a/Fight/Stage/StageLoadProcessor.cs
+++ b/Fight/Stage/StageLoadProcessor.cs
@@ -253,6 +253,11 @@
 
             unloadUnUsedOperation = Resources.UnloadUnusedAssets();
 
+            if (command.exitClientMap)
+            {
+                ClientDungeonStageUtility.RequestExitClientDungeon();
+            }
+
             if (command.refreshPlayerDatas)
             {
                 var sendInfo = new CA108_tagCMRefreshMainServerRole();
diff --git a/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs b/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
index a6cbed1..b8ad825 100644
--- a/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
+++ b/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
@@ -33,7 +33,6 @@
 			
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetRidingPetBossLineDictAction", _e_GetRidingPetBossLineDictAction);
 			
-			Utils.RegisterFunc(L, Utils.GETTER_IDX, "isActivityOver", _g_get_isActivityOver);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "BossIDArray", _g_get_BossIDArray);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "Boss1RewardIDArray", _g_get_Boss1RewardIDArray);
             Utils.RegisterFunc(L, Utils.GETTER_IDX, "Boss2RewardIDArray", _g_get_Boss2RewardIDArray);
@@ -295,22 +294,6 @@
             
         }
         
-        
-        
-        
-        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
-        static int _g_get_isActivityOver(RealStatePtr L)
-        {
-		    try {
-                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
-			
-                Snxxz.UI.RidingPetBossModel gen_to_be_invoked = (Snxxz.UI.RidingPetBossModel)translator.FastGetCSObj(L, 1);
-                LuaAPI.lua_pushboolean(L, gen_to_be_invoked.isActivityOver);
-            } catch(System.Exception gen_e) {
-                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
-            }
-            return 1;
-        }
         
         [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
         static int _g_get_BossIDArray(RealStatePtr L)
diff --git a/System/RidingPet/ContainerRidingPet.cs b/System/RidingPet/ContainerRidingPet.cs
index 2bae492..bb22df4 100644
--- a/System/RidingPet/ContainerRidingPet.cs
+++ b/System/RidingPet/ContainerRidingPet.cs
@@ -20,7 +20,7 @@
         [SerializeField] RawImage m_BossRawImage;
         DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
         
-        RidingPetBossModel ridingPetMdoel { get { return ModelCenter.Instance.GetModel<RidingPetBossModel>(); } }
+        RidingPetBossModel model { get { return ModelCenter.Instance.GetModel<RidingPetBossModel>(); } }
         //public int RawImagetestBossID = 50103006;
         public RewardPositionType rewardPositonType;
         [SerializeField] ItemCell[] m_RewardArray;
@@ -34,8 +34,8 @@
 
         public void DisplayBossRawImage()
         {
-            var config = NPCConfig.Get(ridingPetMdoel.BossIDArray[0]);
-            UI3DModelExhibition.Instance.ShowNPC(ridingPetMdoel.BossIDArray[0], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
+            var config = NPCConfig.Get(model.BossIDArray[0]);
+            UI3DModelExhibition.Instance.ShowNPC(model.BossIDArray[0], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
         }
 
         public void StopShowBossRawImage()
@@ -50,13 +50,24 @@
 
         public void DisplayAnotherBossRawImage()
         {
-            var config = NPCConfig.Get(ridingPetMdoel.BossIDArray[1]);
-            UI3DModelExhibition.InstanceClone1.ShowNPC(ridingPetMdoel.BossIDArray[1], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
+            var config = NPCConfig.Get(model.BossIDArray[1]);
+            UI3DModelExhibition.InstanceClone1.ShowNPC(model.BossIDArray[1], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
         }
 
         public void DisplaySpiritPetHP()
         {
-            m_ActivityInfo.text = Language.Get("RidingPetBossRemainHP", ModelCenter.Instance.GetModel<RidingPetBossModel>().GetBossRemianedHP(bossIdIndex));
+            var hp = model.GetBossRemianedHP(bossIdIndex);
+            var alive = model.IsBossAlive(bossIdIndex);
+            if (!alive)
+            {
+                m_ActivityInfo.text = Language.Get("AllianceBoss_1");
+                m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.Red);
+            }
+            else
+            {
+                m_ActivityInfo.text = Language.Get("RidingPetBossRemainHP", hp);
+                m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.White);
+            }
         }
 
         public void DisplayActivityTime()
@@ -66,6 +77,7 @@
             HourMinute hourMin;
             dailyQuestOpentime.TryGetNextOpenTime(out hourMin);
             m_ActivityInfo.text = Language.Get("RidingPetBossQuestTime", "<color=red>"+hourMin.hourBegin+":"+hourMin.minuteBegin+"</color>");
+            m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.White);
         }
 
         public void DisplayRewardItem()
diff --git a/System/RidingPet/RidingPetBossModel.cs b/System/RidingPet/RidingPetBossModel.cs
index f3259aa..2602186 100644
--- a/System/RidingPet/RidingPetBossModel.cs
+++ b/System/RidingPet/RidingPetBossModel.cs
@@ -8,16 +8,21 @@
     [XLua.Hotfix]
     public class RidingPetBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
     {
+        Dictionary<int, bool> m_BossAliceStates = new Dictionary<int, bool>();
+
+        public const int RIDINGPETBOSS_MAP = 31200;
+
         public int[] BossIDArray;
         public int[] Boss1RewardIDArray;
         public int[] Boss2RewardIDArray;
-        public bool isActivityOver { get; private set; }
-        public const int RIDINGPETBOSS_MAP = 31200;
+
         Dictionary<int, RidingPetBossLine> RidingPetBossLineDict = new Dictionary<int, RidingPetBossLine>();
         private string m_MountsBossID;
         private string m_Boss1RewardID;
         private string m_Boss2RewardID;
+
         public event Action GetRidingPetBossLineDictAction;
+        public event Action onBossStateRefresh;
 
 
 
@@ -33,6 +38,7 @@
 
         public void OnBeforePlayerDataInitialize()
         {
+            m_BossAliceStates.Clear();
         }
 
         public void OnPlayerLoginOk()
@@ -47,9 +53,11 @@
 
         public void ReceivePackage(HAC07_tagGCHorsePetBossInfo package)
         {
-            if (package.IsEnd == 1)
+            m_BossAliceStates[0] = !MathUtility.GetBitValue(package.IsEnd, 0);
+            m_BossAliceStates[1] = !MathUtility.GetBitValue(package.IsEnd, 1);
+            if (onBossStateRefresh != null)
             {
-                isActivityOver = true;
+                onBossStateRefresh();
             }
         }
 
@@ -93,6 +101,11 @@
                 return RidingPetBossLineDict[index].remainedHP;
             }
         }
+
+        public bool IsBossAlive(int index)
+        {
+            return m_BossAliceStates.ContainsKey(index) ? m_BossAliceStates[index] : false;
+        }
     }
 
     public struct RidingPetBossLine
diff --git a/System/RidingPet/RidingPetContentionWin.cs b/System/RidingPet/RidingPetContentionWin.cs
index 48027d3..2e26df5 100644
--- a/System/RidingPet/RidingPetContentionWin.cs
+++ b/System/RidingPet/RidingPetContentionWin.cs
@@ -1,4 +1,5 @@
-锘縰sing System.Collections;
+锘縰sing System;
+using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
@@ -46,10 +47,15 @@
         protected override void OnPreClose()
         {
             ridingPetBossModel.GetRidingPetBossLineDictAction -= GetRidingBossDictPackageAction;
+            ridingPetBossModel.onBossStateRefresh -= OnBossStateRefresh;
         }
 
         protected override void OnPreOpen()
         {
+            
+            m_ContainerMounts.bossIdIndex = 0;
+            m_ContainerSpiritPet.bossIdIndex = 1;
+
             m_ContainerMounts.DisplayBossName();
             m_ContainerSpiritPet.DisplayBossName();
             
@@ -57,12 +63,22 @@
             mapModel.RequestQueryMapLineState(RidingPetBossModel.RIDINGPETBOSS_MAP);
             GetRidingBossDictPackageAction();
 
+
             m_ContainerMounts.DisplayBossRawImage();
             m_ContainerSpiritPet.DisplayAnotherBossRawImage();
 
             m_ContainerMounts.DisplayRewardItem();
             m_ContainerSpiritPet.DisplayRewardItem();
             WindowCenter.Instance.windowBeforeCloseEvent += WindowBeforeCloseEvent;
+
+            ridingPetBossModel.onBossStateRefresh += OnBossStateRefresh;
+
+            UpdateRidingPetBottomTip();
+        }
+
+        private void OnBossStateRefresh()
+        {
+            GetRidingBossDictPackageAction();
         }
 
         private void WindowBeforeCloseEvent(Window _window)
@@ -107,8 +123,12 @@
                 case DailyQuestModel.DailyQuestState.Normal:
                     m_ContainerMounts.DisplaySpiritPetHP();
                     m_ContainerSpiritPet.DisplaySpiritPetHP();
-                    m_MountsGoToButton.SetInteractable(m_MountGotoLabel, true);
-                    m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, true);
+
+                    var isMountAlive = ridingPetBossModel.IsBossAlive(m_ContainerMounts.bossIdIndex);
+                    var isPetAlive = ridingPetBossModel.IsBossAlive(m_ContainerSpiritPet.bossIdIndex);
+
+                    m_MountsGoToButton.SetInteractable(m_MountGotoLabel, isMountAlive);
+                    m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, isPetAlive);
                     break;
                 default:
                     m_ContainerMounts.DisplayActivityTime();

--
Gitblit v1.8.0