From 243d65af53aae9e3084f20ea9c5815f5b29df09e Mon Sep 17 00:00:00 2001
From: liuzhiwei <liuzhiwei@qq.com>
Date: Thu, 26 Nov 2020 18:26:58 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/Data/EndlessPortData.cs |   65 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/Assets/Scripts/Data/EndlessPortData.cs b/Assets/Scripts/Data/EndlessPortData.cs
index 6d45576..a347634 100644
--- a/Assets/Scripts/Data/EndlessPortData.cs
+++ b/Assets/Scripts/Data/EndlessPortData.cs
@@ -29,7 +29,7 @@
         /// <summary>
         /// 掉落概率总权重,即:表中掉落概率那一项全部加起来
         /// </summary>
-        public int DropTotalWeight;
+        public float DropTotalWeight;
 
         /// <summary>
         /// 关卡等级
@@ -80,7 +80,6 @@
             portDic = new Dictionary<int, List<EndlessPortConfig>>();
             InitPortList();
             InitPortEnemiesTotalHP();
-            int score = GetLevelScore(1);
         }
 
         /// <summary>
@@ -125,7 +124,7 @@
                     totalWeight += data.drop_rate[i];
                 }
 
-                param.DropTotalWeight = totalWeight;
+                param.DropTotalWeight = (float)data.drop_rate[0] / (float)totalWeight;
                 portConfigList.Add(param);
 
                 if (!portDic.ContainsKey(param.PortLevel))
@@ -235,6 +234,48 @@
         }
 
         /// <summary>
+        /// 根据关卡等级和波次获得该波次的掉落概率
+        /// </summary>
+        /// <param name="level"></param>
+        /// <param name="wave"></param>
+        /// <returns></returns>
+        public static float GetDropRate(int level, int wave)
+        {
+            List<List<EndlessPortConfig>> list = GetLevelWaveData(level);
+            if (list.Count == 0) return 0;
+            Debug.Log($"level:{level}  wave:{wave}");
+            List<EndlessPortConfig> waveData = list[wave];
+
+            EndlessPortConfig tmpConfig = waveData[0];
+            if (tmpConfig != null)
+            {
+                return tmpConfig.DropTotalWeight;
+            }
+            return 0;
+        }
+
+        /// <summary>
+        /// 根据关卡等级和波次获得该波次的掉落BOX
+        /// </summary>
+        /// <param name="level"></param>
+        /// <param name="wave"></param>
+        /// <returns></returns>
+        public static reward GetDropReward(int level, int wave)
+        {
+            List<List<EndlessPortConfig>> list = GetLevelWaveData(level);
+            if (list.Count == 0) return null;
+
+            List<EndlessPortConfig> waveData = list[wave];
+
+            EndlessPortConfig tmpConfig = waveData[0];
+            if (tmpConfig != null)
+            {
+                return tmpConfig.Config.drop;
+            }
+            return null;
+        }
+
+        /// <summary>
         /// 根据关卡等级和波次获得该波次的所有敌人数量
         /// </summary>
         /// <param name="level"></param>
@@ -312,17 +353,17 @@
             {
                 if (waveData[i].Config.tunel != tunel) continue;
 
-                for (int j = 0; j < waveData[i].Config.drop.Count; ++j)
-                {
-                    // 概率为0
-                    if (waveData[i].Config.drop_rate[j] == 0) continue;
+                // for (int j = 0; j < waveData[i].Config.drop.Count; ++j)
+                // {
+                //     // 概率为0
+                //     if (waveData[i].Config.drop_rate[j] == 0) continue;
 
-                    int val = random.Next(waveData[i].DropTotalWeight);
+                //     float val = UnityEngine.Random.Range(0, waveData[i].DropTotalWeight);
 
-                    if (val <= waveData[i].Config.drop_rate[j])
-                        // 命中
-                        ret.Add(waveData[i].Config.drop[j]);
-                }
+                //     if (val <= waveData[i].Config.drop_rate[j])
+                //         // 命中
+                //         ret.Add(waveData[i].Config.drop[j]);
+                // }
             }
 
             return ret;

--
Gitblit v1.9.1