From 24f59b89e9eabcfe948fc0ba304a8dbec2deda14 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Tue, 27 Oct 2020 14:09:47 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/Data/EndlessPortData.cs |  105 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 83 insertions(+), 22 deletions(-)

diff --git a/Assets/Scripts/Data/EndlessPortData.cs b/Assets/Scripts/Data/EndlessPortData.cs
index 28004f7..cbc772f 100644
--- a/Assets/Scripts/Data/EndlessPortData.cs
+++ b/Assets/Scripts/Data/EndlessPortData.cs
@@ -33,7 +33,17 @@
         /// </summary>
         private static List<endless_port> endlessPortList;
 
+        /// <summary>
+        /// 无尽模式新手关卡配置表
+        /// </summary>
+        private static List<endless_port> endlessTeachPortList;
+
         private static List<EndlessPortConfig> portConfigList;
+
+        /// <summary>
+        /// 新手用
+        /// </summary>
+        private static List<EndlessPortConfig> teachPortConfigList;
 
         private static Random random;
 
@@ -52,11 +62,77 @@
         /// </summary>
         public static void Init()
         {
+            random = new Random();
+            InitPortConfig();
+            InitTeachPortConfig();
+            List<List<EndlessPortConfig>> list = GetLevelWaveData(1);
+        }
+
+        /// <summary>
+        /// 初始化关卡配置
+        /// </summary>
+        private static void InitPortConfig()
+        {
             endlessPortList = JsonDataCenter.GetList<endless_port>();
             portConfigList = new List<EndlessPortConfig>();
-            random = new Random();
+            InitPortList(portConfigList, endlessPortList);
+        }
 
-            foreach (endless_port data in endlessPortList)
+        /// <summary>
+        /// 初始化新手的关卡配置
+        /// </summary>
+        private static void InitTeachPortConfig()
+        {
+            List<endless_teachport> list = JsonDataCenter.GetList<endless_teachport>();
+            endlessTeachPortList = new List<endless_port>();
+
+            foreach (endless_teachport data in list)
+            {
+                endless_port newData = new endless_port();
+                newData.id = data.id;
+                newData.level = data.level;
+                newData.boss_name = data.boss_name;
+                newData.resource = data.resource;
+                newData.wave = data.wave;
+                newData.tunel = data.tunel;
+                newData.enemy_id = data.enemy_id;
+                newData.amount = data.amount;
+                newData.interval = data.interval;
+                newData.b_hp = data.b_hp;
+                newData.b_speed = data.b_speed;
+                newData.b_coin = data.b_coin;
+                newData.cooldown = data.cooldown;
+
+                List<reward> rewardList = new List<reward>();
+                foreach (reward r in rewardList)
+                {
+                    reward nr = new reward();
+                    nr.type = r.type;
+                    nr.id = r.id;
+                    nr.count = r.count;
+                    rewardList.Add(nr);
+                }
+
+                newData.drop = rewardList;
+
+                List<int> rateList = new List<int>();
+                foreach (int r in rateList)
+                {
+                    rateList.Add(r);
+                }
+
+                newData.drop_rate = rateList;
+                newData.tunel_bg = data.tunel_bg;
+                endlessTeachPortList.Add(newData);
+            }
+
+            teachPortConfigList = new List<EndlessPortConfig>();
+            InitPortList(teachPortConfigList, endlessTeachPortList);
+        }
+
+        private static void InitPortList(List<EndlessPortConfig> list, List<endless_port> srcList)
+        {
+            foreach (endless_port data in srcList)
             {
                 if (data.level > maxLevel)
                     maxLevel = data.level;
@@ -72,24 +148,8 @@
                 }
 
                 param.DropTotalWeight = totalWeight;
-                portConfigList.Add(param);
+                list.Add(param);
             }
-        }
-
-        /// <summary>
-        /// 根据关卡等级获取boss资源id
-        /// </summary>
-        /// <param name="level">关卡等级</param>
-        /// <returns>如果返回-1查找失败</returns>
-        public static int GetResIdByLevel(int level)
-        {
-            foreach (endless_port data in endlessPortList)
-            {
-                if (data.level == level)
-                    return data.resource;
-            }
-
-            return -1;
         }
 
         /// <summary>
@@ -106,7 +166,9 @@
                 ret.Add(new List<EndlessPortConfig>());
             }
 
-            foreach (EndlessPortConfig data in portConfigList)
+            List<EndlessPortConfig> list = GameConfig.IsNewbie ? teachPortConfigList : portConfigList;
+
+            foreach (EndlessPortConfig data in list)
             {
                 if (data.Config.level != level || data.Config.amount == 0) continue;
 
@@ -179,8 +241,7 @@
 
                     int val = random.Next(waveData[i].DropTotalWeight);
 
-                    // cx test
-                    // if (val <= waveData[i].Config.drop_rate[j])
+                    if (val <= waveData[i].Config.drop_rate[j])
                         // 命中
                         ret.Add(waveData[i].Config.drop[j]);
                 }

--
Gitblit v1.9.1