From d5630edd798fcd3caefa480334d32cd4f969f088 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 20 八月 2018 17:04:29 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Core/GameEngine/Model/ConfigManager.cs                  |    1 
 Core/GameEngine/Model/Config/TrialRewardsConfig.cs      |   52 +++++++++++++
 System/Dungeon/TrialRewardsBehaviour.cs                 |   31 +++++++
 System/BlastFurnace/BlastFurnaceModel.cs                |   64 +++++++++++----
 System/OpenServerActivity/InSevenDayModel.cs            |    2 
 System/Dungeon/TrialRewardsBehaviour.cs.meta            |   12 +++
 Core/GameEngine/Model/Config/TrialRewardsConfig.cs.meta |   12 +++
 System/Dungeon/TrialDungeonModel.cs                     |   27 ++++++
 System/Dungeon/TrialDungeonEntranceWin.cs               |   13 ++-
 System/BlastFurnace/LingDanTips.cs                      |    2 
 10 files changed, 190 insertions(+), 26 deletions(-)

diff --git a/Core/GameEngine/Model/Config/TrialRewardsConfig.cs b/Core/GameEngine/Model/Config/TrialRewardsConfig.cs
new file mode 100644
index 0000000..be90145
--- /dev/null
+++ b/Core/GameEngine/Model/Config/TrialRewardsConfig.cs
@@ -0,0 +1,52 @@
+锘�//--------------------------------------------------------
+//    [Author]:			绗簩涓栫晫
+//    [  Date ]:		   Monday, August 20, 2018
+//--------------------------------------------------------
+
+using UnityEngine;
+using System;
+
+namespace TableConfig {
+
+    
+	public partial class TrialRewardsConfig : ConfigBase {
+
+		public int id { get ; private set ; }
+		public int lineId { get ; private set ; }
+		public int grade { get ; private set ; }
+		public int[] rewards;
+
+		public override string getKey()
+        {
+            return id.ToString();
+        }
+
+		public override void Parse() {
+			try
+            {
+                id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
+			
+				lineId=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
+			
+				grade=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; 
+			
+				string[] rewardsStringArray = rawContents[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				rewards = new int[rewardsStringArray.Length];
+				for (int i=0;i<rewardsStringArray.Length;i++)
+				{
+					 int.TryParse(rewardsStringArray[i],out rewards[i]);
+				}
+            }
+            catch (Exception ex)
+            {
+                DebugEx.Log(ex);
+            }
+		}
+	
+	}
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/TrialRewardsConfig.cs.meta b/Core/GameEngine/Model/Config/TrialRewardsConfig.cs.meta
new file mode 100644
index 0000000..e820715
--- /dev/null
+++ b/Core/GameEngine/Model/Config/TrialRewardsConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ee2212e198950744b9c7524b9d74d042
+timeCreated: 1534748051
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/GameEngine/Model/ConfigManager.cs b/Core/GameEngine/Model/ConfigManager.cs
index d24ce41..afcd8ab 100644
--- a/Core/GameEngine/Model/ConfigManager.cs
+++ b/Core/GameEngine/Model/ConfigManager.cs
@@ -187,6 +187,7 @@
         AddAsyncTask<AllPeoplePartyAwardConfig>();
         AddAsyncTask<OrderInfoConfig>();
         AddAsyncTask<TrialExchangeConfig>();
+        AddAsyncTask<TrialRewardsConfig>();
 
         while (!AllCompleted())
         {
diff --git a/System/BlastFurnace/BlastFurnaceModel.cs b/System/BlastFurnace/BlastFurnaceModel.cs
index 4ace9c2..95ed38d 100644
--- a/System/BlastFurnace/BlastFurnaceModel.cs
+++ b/System/BlastFurnace/BlastFurnaceModel.cs
@@ -83,15 +83,18 @@
         treasureRefineDict.Clear();
         FuncOpen.Instance.OnFuncStateChangeEvent -= RefreshFuncOpenState;
         playerPack.RefreshItemCountAct -= RefreshMat;
+        playerPack.ItemCntReduceAct -= RefreshDanReduce;
         playerPack.RefreshItemSumUseCntAct -= RefreshItemUsce;
+        WindowCenter.Instance.windowAfterCloseEvent -= StoveUpgradAfterClose;
 
     }
-
     public void OnAfterPlayerDataInitialize()
     {
         playerPack.RefreshItemCountAct += RefreshMat;
         FuncOpen.Instance.OnFuncStateChangeEvent += RefreshFuncOpenState;
         playerPack.RefreshItemSumUseCntAct += RefreshItemUsce;
+        WindowCenter.Instance.windowAfterCloseEvent += StoveUpgradAfterClose;
+        playerPack.ItemCntReduceAct += RefreshDanReduce;
     }
 
     private void RefreshFuncOpenState(int funcId)
@@ -141,13 +144,14 @@
     /// 寰楀埌鏈嶅姟绔殑鐐间腹鐐夋暟鎹�
     /// </summary>
     private int _stovelv = 1;
+    private int preStoveLv = 1;
     public int StoveLV { get { return _stovelv; } }    // 鐐间腹鐐夌瓑绾�
     private int _stoveExp = 0;
     public int StoveExp { get { return _stoveExp; } }    // 鐐间腹鐐夌粡楠� 
     public int addExp = 0;
     public event Action RefreshStoveModelEvent;
     public int makerItemID { get; private set; }
-
+    public bool StoveIsUpGrade { get; private set; }
     public void RefreshBlastFurnaceModel(HA3BF_tagMCPlayerStoveMsg data)
     {
         DebugEx.Log("RefreshBlastFurnaceModel");
@@ -163,6 +167,17 @@
         if(!isFirstGet)
         {
             isMakeDan = true;
+            if(preStoveLv < data.StoveLV)
+            {
+                preStoveLv = data.StoveLV;
+                StoveIsUpGrade = true;
+            }
+            else
+            {
+                preStoveLv = data.StoveLV;
+                StoveIsUpGrade = false;
+            }
+            PlayRecycleGuid();
         }
         else
         {
@@ -175,23 +190,6 @@
         if(makerItemID == 0 && addExp > 0)
         {
             SysNotifyMgr.Instance.ShowTip("RecyclingElixir", addExp);
-        }
-    }
-
-    /// <summary>
-    /// 鍒ゆ柇鐐间腹鐐夋槸鍚﹀崌绾�
-    /// </summary>
-    private int preStoveLv = 1;
-    public bool IsUpgrade(int stoveLv)
-    {
-        if (preStoveLv >= stoveLv)
-        {
-            return false;
-        }
-        else
-        {
-            preStoveLv = stoveLv;
-            return true;
         }
     }
 
@@ -716,6 +714,8 @@
         {
             CheckMakerDandrugCondition();
             CheckRecycleStoreRed();
+            StoveIsUpGrade = false;
+            PlayRecycleGuid();
         }
     }
 
@@ -868,6 +868,32 @@
         }
         return false;
     }
+
+
+    private void StoveUpgradAfterClose(Window win)
+    {
+        if (win.name != "StoveUpgradWin") return;
+        StoveIsUpGrade = false;
+        PlayRecycleGuid();
+    }
+
+
+    private void RefreshDanReduce(PackType type, int index, int id)
+    {
+        if (type != PackType.rptItem || !playerPack.CheckIsDrugById(id)) return;
+        StoveIsUpGrade = false;
+        PlayRecycleGuid();
+    }
+
+    public void PlayRecycleGuid()
+    {
+        if (IsRecycleDanDrug() 
+            && !NewBieCenter.Instance.completeGuidesBuf.Contains(93)
+            && !StoveIsUpGrade)
+        {
+            NewBieCenter.Instance.StartNewBieGuide(93);
+        }
+    }
     #endregion
 
     #region 鍥炴敹涓硅嵂閫昏緫澶勭悊
diff --git a/System/BlastFurnace/LingDanTips.cs b/System/BlastFurnace/LingDanTips.cs
index 260444d..8791f4b 100644
--- a/System/BlastFurnace/LingDanTips.cs
+++ b/System/BlastFurnace/LingDanTips.cs
@@ -209,7 +209,7 @@
                 _expValueText.text = Language.Get("L1055");
             }
             RefreshVirtualFill(_addExp);
-            if (FurnaceModel.IsUpgrade(FurnaceModel.StoveLV))
+            if (FurnaceModel.StoveIsUpGrade)
             {
                 ActivateShow.StoveUpgrade(FurnaceModel.StoveLV);
                 CreateCell();
diff --git a/System/Dungeon/TrialDungeonEntranceWin.cs b/System/Dungeon/TrialDungeonEntranceWin.cs
index 4247e54..001070e 100644
--- a/System/Dungeon/TrialDungeonEntranceWin.cs
+++ b/System/Dungeon/TrialDungeonEntranceWin.cs
@@ -40,8 +40,8 @@
         [SerializeField] Image m_BossRealm;
         [SerializeField] Text m_BossName;
 
-        [SerializeField]
-        ItemBehaviour[] m_RewardBehaviours;
+        [SerializeField] TrialRewardsBehaviour[] m_RewardBehaviours;
+        [SerializeField] ScrollRect m_RewardScroller;
 
         DungeonModel m_Model;
         DungeonModel model {
@@ -58,6 +58,8 @@
         }
 
         DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
+
+        TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
 
         #region Built-in
         protected override void BindController()
@@ -184,16 +186,17 @@
 
         private void DrawRewards()
         {
+            m_RewardScroller.verticalNormalizedPosition = 1;
             var dongeonId = model.DungeonMap(model.selectedTrialDungeon);
             var config = ConfigManager.Instance.GetTemplate<DungeonConfig>(dongeonId);
-            var rewards = config.Rewards;
             for (int i = 0; i < m_RewardBehaviours.Length; i++)
             {
                 var behaviour = m_RewardBehaviours[i];
-                if (i < rewards.Length)
+                int[] rewards = null;
+                if (trialDungeonModel.TryGetTrialRewards(config.LineID, m_RewardBehaviours[i].grade, out rewards))
                 {
                     behaviour.gameObject.SetActive(true);
-                    behaviour.SetItem(rewards[i], 0);
+                    behaviour.Display(rewards);
                 }
                 else
                 {
diff --git a/System/Dungeon/TrialDungeonModel.cs b/System/Dungeon/TrialDungeonModel.cs
index 9448739..6933d8e 100644
--- a/System/Dungeon/TrialDungeonModel.cs
+++ b/System/Dungeon/TrialDungeonModel.cs
@@ -10,6 +10,7 @@
     {
         Dictionary<int, List<TrialExchangeConfig>> trialTokenExchangeDict = new Dictionary<int, List<TrialExchangeConfig>>();
         Dictionary<int, int> lineToTokenClassDict;
+        Dictionary<int, Dictionary<int, int[]>> trialRewardDict = new Dictionary<int, Dictionary<int, int[]>>();
         public Dictionary<int, List<int>> trialClassTokens = new Dictionary<int, List<int>>();
         public List<int> trialTokens = new List<int>();
         PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
@@ -78,6 +79,18 @@
             }
             var funcConfig = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("LineToItemStage");
             lineToTokenClassDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical1);
+
+            var trialRewards = ConfigManager.Instance.GetAllValues<TrialRewardsConfig>();
+            for (int i = 0; i < trialRewards.Count; i++)
+            {
+                Dictionary<int, int[]> dict = null;
+                if (!trialRewardDict.TryGetValue(trialRewards[i].lineId, out dict))
+                {
+                    dict = new Dictionary<int, int[]>();
+                    trialRewardDict.Add(trialRewards[i].lineId, dict);
+                }
+                dict.Add(trialRewards[i].grade, trialRewards[i].rewards);
+            }
         }
 
         public override void UnInit()
@@ -140,6 +153,20 @@
             return trialTokenExchangeDict.TryGetValue(lv, out list);
         }
 
+        public bool TryGetTrialRewards(int lineId, int grade, out int[] rewards)
+        {
+            rewards = null;
+            if (trialRewardDict.ContainsKey(lineId))
+            {
+                if (trialRewardDict[lineId].ContainsKey(grade))
+                {
+                    rewards = trialRewardDict[lineId][grade];
+                    return rewards != null && rewards.Length > 0;
+                }
+            }
+            return false;
+        }
+
         public List<int> GetTotalClass()
         {
             return trialTokenExchangeDict.Keys.ToList();
diff --git a/System/Dungeon/TrialRewardsBehaviour.cs b/System/Dungeon/TrialRewardsBehaviour.cs
new file mode 100644
index 0000000..73611a6
--- /dev/null
+++ b/System/Dungeon/TrialRewardsBehaviour.cs
@@ -0,0 +1,31 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+namespace Snxxz.UI
+{
+    public class TrialRewardsBehaviour : MonoBehaviour
+    {
+        [SerializeField] int m_Grade;
+        [SerializeField] ItemBehaviour[] m_ItemBehaviours;
+
+        public int grade { get { return m_Grade; } }
+
+        public void Display(int[] rewards)
+        {
+            for (int i = 0; i < m_ItemBehaviours.Length; i++)
+            {
+                var behaviour = m_ItemBehaviours[i];
+                if (i < rewards.Length)
+                {
+                    behaviour.gameObject.SetActive(true);
+                    behaviour.SetItem(rewards[i], 0);
+                }
+                else
+                {
+                    behaviour.gameObject.SetActive(false);
+                }
+            }
+        }
+    }
+}
+
diff --git a/System/Dungeon/TrialRewardsBehaviour.cs.meta b/System/Dungeon/TrialRewardsBehaviour.cs.meta
new file mode 100644
index 0000000..31a479f
--- /dev/null
+++ b/System/Dungeon/TrialRewardsBehaviour.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f436f3dabd50bc5429d2de289d60fdd5
+timeCreated: 1534749125
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/InSevenDayModel.cs b/System/OpenServerActivity/InSevenDayModel.cs
index 6efee79..8a638e6 100644
--- a/System/OpenServerActivity/InSevenDayModel.cs
+++ b/System/OpenServerActivity/InSevenDayModel.cs
@@ -182,7 +182,7 @@
         }
         if (Bool)
         {
-            redPointStre1.state = RedPointState.Simple;
+            redPointStre1.state = RedPointState.GetReward;
         }
     }
 }

--
Gitblit v1.8.0