From 9f02bfd6a3c4c14df0a0d63fb51b4d3e6d7e8a3e Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 12 三月 2019 11:48:07 +0800
Subject: [PATCH] 6292 【前端】【2.0】限时仙盟boss(鼓舞修改)

---
 System/FairyAu/AllianceBossModel.cs           |   15 +++
 System/FairyAu/AllianceBossInspireWin.cs.meta |   12 +++
 System/FairyAu/AllianceBossInspireWin.cs      |  158 +++++++++++++++++++++++++++++++++++++++
 System/Dungeon/DungeonInspireBehaviour.cs     |   16 +++
 System/FairyAu/AllianceBossHintWin.cs         |    4 
 System/Dungeon/DungeonData.cs                 |    1 
 System/FairyAu/AllianceBossEntranceWin.cs     |    8 --
 System/DailyQuest/DailyQuestModel.cs          |    4 
 8 files changed, 207 insertions(+), 11 deletions(-)

diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index fc30a5e..d9e3954 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -611,6 +611,8 @@
                                     }
                                     break;
                                 case DailyQuestType.FairyGrabBoss:
+                                case DailyQuestType.AllianceBoss1:
+                                case DailyQuestType.AllianceBoss2:
                                     if (dailyQuestState == DailyQuestState.Normal)
                                     {
                                         dailyQuest.redpoint.state = completedTimes >= totalTimes ? RedPointState.None : RedPointState.Simple;
@@ -845,7 +847,7 @@
                     {
                         return DailyQuestState.Completed;
                     }
-                    break;
+                    return DailyQuestState.Normal;
             }
 
             var completedTimes = GetDailyQuestCompletedTimes(_dailyQuestId);
diff --git a/System/Dungeon/DungeonData.cs b/System/Dungeon/DungeonData.cs
index 611d680..7d1644b 100644
--- a/System/Dungeon/DungeonData.cs
+++ b/System/Dungeon/DungeonData.cs
@@ -126,6 +126,7 @@
         public int prepareTime;     //璺ㄦ湇1Vs1 鍥炲悎缁撴潫鍊掕鏃�
         public int isStart;        //璺ㄦ湇1Vs1鍥炲悎寮�濮�
         public int PlayerEnterMap; //鍒ゆ柇鐜╁ID涓嶆槸鑷繁鍒欐竻闄ょ瓑寰呮椂闂存樉绀�
+        public int IsEncourage;//鏄惁榧撹垶
         public long totalExp
         {
             get
diff --git a/System/Dungeon/DungeonInspireBehaviour.cs b/System/Dungeon/DungeonInspireBehaviour.cs
index 3644a91..48af997 100644
--- a/System/Dungeon/DungeonInspireBehaviour.cs
+++ b/System/Dungeon/DungeonInspireBehaviour.cs
@@ -126,7 +126,21 @@
                 SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
                 return;
             }
-            WindowCenter.Instance.Open<DungeonInspireWin>();
+            var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
+            switch (dataMapId)
+            {
+                case AllianceBossModel.DATAMAPID:
+                    if (model.mission.IsEncourage == 1)
+                    {
+                        SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
+                        return;
+                    }
+                    WindowCenter.Instance.Open<AllianceBossInspireWin>();
+                    break;
+                default:
+                    WindowCenter.Instance.Open<DungeonInspireWin>();
+                    break;
+            }
         }
 
         private void OnDisable()
diff --git a/System/FairyAu/AllianceBossEntranceWin.cs b/System/FairyAu/AllianceBossEntranceWin.cs
index 6e00062..278a7f3 100644
--- a/System/FairyAu/AllianceBossEntranceWin.cs
+++ b/System/FairyAu/AllianceBossEntranceWin.cs
@@ -183,14 +183,6 @@
                 }
             }
 
-            var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId);
-            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId);
-            if (completedTimes >= totalTimes)
-            {
-                error = 2;
-                return false;
-            }
-
             if (CrossServerUtility.IsCrossServerBoss())
             {
                 error = 3;
diff --git a/System/FairyAu/AllianceBossHintWin.cs b/System/FairyAu/AllianceBossHintWin.cs
index 8f02cf8..093c146 100644
--- a/System/FairyAu/AllianceBossHintWin.cs
+++ b/System/FairyAu/AllianceBossHintWin.cs
@@ -100,7 +100,9 @@
 
         private void UpdateMissionEvent()
         {
-            Display();
+            DisplayProgress();
+            DisplayHurtRank();
+            DisplayAlliance();
         }
 
         [Serializable]
diff --git a/System/FairyAu/AllianceBossInspireWin.cs b/System/FairyAu/AllianceBossInspireWin.cs
new file mode 100644
index 0000000..d2e63da
--- /dev/null
+++ b/System/FairyAu/AllianceBossInspireWin.cs
@@ -0,0 +1,158 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, March 12, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+
+    public class AllianceBossInspireWin : Window
+    {
+        [SerializeField] Text m_Remind;
+        [SerializeField] Text m_InspireHurt;
+        [SerializeField] ItemBehaviour[] m_Items;
+        [SerializeField] Text m_InspireLevel;
+        [SerializeField] Button m_Inspire;
+        [SerializeField] Button m_Close;
+
+        DungeonInspireConfig inspireConfig = null;
+
+        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
+        AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
+
+        protected override void BindController()
+        {
+
+        }
+
+        protected override void AddListeners()
+        {
+            m_Inspire.AddListener(Inspire);
+            m_Close.AddListener(CloseClick);
+        }
+
+        protected override void OnPreOpen()
+        {
+            model.dungeonInspireLvEvent += DungeonInspireLvEvent;
+            model.updateMissionEvent += UpdateMissionEvent;
+            var inspireConfigs = model.GetDungeonInspire(AllianceBossModel.DATAMAPID);
+            inspireConfig = inspireConfigs[0];
+
+            Display();
+        }
+
+        protected override void OnAfterOpen()
+        {
+        }
+
+        protected override void OnPreClose()
+        {
+            model.dungeonInspireLvEvent -= DungeonInspireLvEvent;
+            model.updateMissionEvent -= UpdateMissionEvent;
+        }
+
+        protected override void OnAfterClose()
+        {
+        }
+
+        void Display()
+        {
+            DisplayRemind();
+            DisplayInspireHurt();
+            DisplayRewards();
+            DisplayInspireLevel();
+        }
+
+        void DisplayRemind()
+        {
+            var singleHurt = model.GetDungeonInspireUpper(AllianceBossModel.DATAMAPID);
+            var maxCount = model.GetInspireMaxCount(AllianceBossModel.DATAMAPID);
+            m_Remind.text = Language.Get("AllianceBossInspireRemind", singleHurt, maxCount * singleHurt);
+        }
+
+        void DisplayInspireHurt()
+        {
+            var currentLevel = model.GetDungeonInspireLevel();
+            var singleHurt = model.GetDungeonInspireUpper(AllianceBossModel.DATAMAPID);
+            m_InspireHurt.text = Language.Get("AllianceBossInspireHurt", currentLevel * singleHurt);
+        }
+
+        void DisplayRewards()
+        {
+            for (int i = 0; i < m_Items.Length; i++)
+            {
+                if (i < allianceBossModel.inspireRewards.Count)
+                {
+                    m_Items[i].gameObject.SetActive(true);
+                    m_Items[i].SetItem(allianceBossModel.inspireRewards[i]);
+                }
+                else
+                {
+                    m_Items[i].gameObject.SetActive(false);
+                }
+            }
+        }
+
+        void DisplayInspireLevel()
+        {
+            m_InspireLevel.text = Language.Get("AllianceBossInspireLevel", model.mission.IsEncourage == 1 ? 1 : 0);
+        }
+
+        private void DungeonInspireLvEvent()
+        {
+            DisplayInspireHurt();
+        }
+
+        private void UpdateMissionEvent()
+        {
+            DisplayInspireLevel();
+        }
+
+        private void Inspire()
+        {
+            var cost = model.GetDungeonInspireCost(inspireConfig);
+
+            if (model.mission.IsEncourage == 1)
+            {
+                SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
+                return;
+            }
+
+            var inspireLevel = model.GetDungeonInspireLevel();
+            var maxLevel = model.GetInspireMaxCount(AllianceBossModel.DATAMAPID);
+            if (inspireLevel >= maxLevel)
+            {
+                SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
+                return;
+            }
+
+            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+                Language.Get("AllianceBossInspireConfirm", cost),
+                (bool isOk) =>
+                {
+                    if (isOk)
+                    {
+                        if (cost > PlayerDatas.Instance.baseData.diamond)
+                        {
+                            WindowCenter.Instance.Open<RechargeTipWin>();
+                            return;
+                        }
+                        CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
+                        pak.ActionType = 0;
+                        pak.ActionInfo = (uint)inspireConfig.InspireType;
+                        GameNetSystem.Instance.SendInfo(pak);
+                    }
+                });
+        }
+    }
+}
+
+
+
+
diff --git a/System/FairyAu/AllianceBossInspireWin.cs.meta b/System/FairyAu/AllianceBossInspireWin.cs.meta
new file mode 100644
index 0000000..499d6a4
--- /dev/null
+++ b/System/FairyAu/AllianceBossInspireWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f2dae6865c031234fb3200b10f6b22de
+timeCreated: 1552356351
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/FairyAu/AllianceBossModel.cs b/System/FairyAu/AllianceBossModel.cs
index 715d763..72b6b09 100644
--- a/System/FairyAu/AllianceBossModel.cs
+++ b/System/FairyAu/AllianceBossModel.cs
@@ -10,6 +10,8 @@
         public bool isActivityOver { get; private set; }
         public int participateLimit { get; private set; }
 
+        public List<Item> inspireRewards { get; private set; }
+
         public event Action allianceBossStateRefresh;
 
         public override void Init()
@@ -34,6 +36,19 @@
         {
             var config = FuncConfigConfig.Get("LeagueBOSSNumber1");
             participateLimit = int.Parse(config.Numerical1);
+
+            inspireRewards = new List<Item>();
+            config = FuncConfigConfig.Get("LeagueBOSSReward1");
+            var itemArray = LitJson.JsonMapper.ToObject<int[][]>(config.Numerical1);
+            for (int i = 0; i < itemArray.Length; i++)
+            {
+                var item = itemArray[i];
+                inspireRewards.Add(new Item()
+                {
+                    id = item[0],
+                    count = item[1],
+                });
+            }
         }
 
         public void ReceivePackage(HA40C_tagGCAllFamilyBossInfo package)

--
Gitblit v1.8.0