From 1c4c5c5cb829334303bff98837a69a9653dca714 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 20 八月 2018 17:09:49 +0800
Subject: [PATCH] Merge branch 'master' into DogzDungeon

---
 System/Dungeon/TrialDungeonModel.cs |   51 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/System/Dungeon/TrialDungeonModel.cs b/System/Dungeon/TrialDungeonModel.cs
index 261dd8d..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()
@@ -138,6 +151,20 @@
         public bool TryGetTrialExchanges(int lv, out List<TrialExchangeConfig> list)
         {
             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()
@@ -252,6 +279,24 @@
             return 0;
         }
 
+        public int GetExchangeItemByJob(TrialExchangeConfig config)
+        {
+            if (config == null)
+            {
+                return 0;
+            }
+            if (config.exchangeItemID.Length == 1)
+            {
+                return config.exchangeItemID[0];
+            }
+            var job = PlayerDatas.Instance.baseData.Job;
+            if (job - 1 < config.exchangeItemID.Length && job - 1 >= 0)
+            {
+                return config.exchangeItemID[job - 1];
+            }
+            return config.exchangeItemID[0];
+        }
+
         #region 绾㈢偣
         void UpdateRedpoint()
         {
@@ -308,12 +353,12 @@
             {
                 return false;
             }
-            var exchangeItemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(config.exchangeItemID);
+            var exchangeItemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(GetExchangeItemByJob(config));
             if (exchangeItemConfig.EquipPlace == 0)
             {
                 return true;
             }
-            if (EquipCompare(config.exchangeItemID) == 1)
+            if (EquipCompare(GetExchangeItemByJob(config)) == 1)
             {
                 return true;
             }
@@ -328,7 +373,7 @@
             {
                 for (int i = 0; i < list.Count; i++)
                 {
-                    var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(list[i].exchangeItemID);
+                    var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(GetExchangeItemByJob(list[i]));
                     if (SatisfyExchangeBetter(list[i].id) && itemConfig.EquipPlace != 0)
                     {
                         _id = list[i].id;

--
Gitblit v1.8.0