From f6abd3f706541c72633daa84ba2b47ba1a003d02 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Fri, 06 Nov 2020 14:40:58 +0800 Subject: [PATCH] 修改攻击材质以及火宝石攻击速度播放 --- Assets/Scripts/Data/EndlessPortData.cs | 116 ++++++++++++++++++++------------------------------------- 1 files changed, 41 insertions(+), 75 deletions(-) diff --git a/Assets/Scripts/Data/EndlessPortData.cs b/Assets/Scripts/Data/EndlessPortData.cs index cbc772f..1a2f8a3 100644 --- a/Assets/Scripts/Data/EndlessPortData.cs +++ b/Assets/Scripts/Data/EndlessPortData.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System; +using UnityEngine; /** * endless_port 无尽模式关卡配置表数据处理类 @@ -24,6 +25,11 @@ /// 掉落概率总权重,即:表中掉落概率那一项全部加起来 /// </summary> public int DropTotalWeight; + + /// <summary> + /// 关卡等级 + /// </summary> + public int PortLevel; } public class EndlessPortData @@ -33,19 +39,14 @@ /// </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 Dictionary<int, List<EndlessPortConfig>> portDic; - private static Random random; + private static System.Random random; /// <summary> /// 最大关卡 @@ -62,84 +63,37 @@ /// </summary> public static void Init() { - random = new Random(); - InitPortConfig(); - InitTeachPortConfig(); - List<List<EndlessPortConfig>> list = GetLevelWaveData(1); - } - - /// <summary> - /// 初始化关卡配置 - /// </summary> - private static void InitPortConfig() - { + random = new System.Random(); endlessPortList = JsonDataCenter.GetList<endless_port>(); portConfigList = new List<EndlessPortConfig>(); - InitPortList(portConfigList, endlessPortList); + portDic = new Dictionary<int, List<EndlessPortConfig>>(); + InitPortList(); } /// <summary> - /// 初始化新手的关卡配置 + /// 更新关卡数据的时候也重新初始化一次 /// </summary> - private static void InitTeachPortConfig() + public static void InitPortList() { - List<endless_teachport> list = JsonDataCenter.GetList<endless_teachport>(); - endlessTeachPortList = new List<endless_port>(); + maxLevel = 0; + int? preLevel = null; + portConfigList.Clear(); + portDic.Clear(); - foreach (endless_teachport data in list) + foreach (endless_port data in endlessPortList) { - 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; + if (!GameConfig.IsNewbie && data.level < 0) continue; - List<reward> rewardList = new List<reward>(); - foreach (reward r in rewardList) + if (preLevel == null || preLevel != data.level) { - reward nr = new reward(); - nr.type = r.type; - nr.id = r.id; - nr.count = r.count; - rewardList.Add(nr); + preLevel = data.level; + ++maxLevel; } - - 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; EndlessPortConfig param = new EndlessPortConfig(); param.Config = data; param.EnemyData = EndlessEnemyData.GetDataById(data.enemy_id); + param.PortLevel = maxLevel; int totalWeight = 0; for (int i = 0; i < data.drop_rate.Count; ++i) @@ -148,7 +102,12 @@ } param.DropTotalWeight = totalWeight; - list.Add(param); + portConfigList.Add(param); + + if (!portDic.ContainsKey(param.PortLevel)) + portDic.Add(param.PortLevel, new List<EndlessPortConfig>()); + + portDic[param.PortLevel].Add(param); } } @@ -166,11 +125,11 @@ ret.Add(new List<EndlessPortConfig>()); } - List<EndlessPortConfig> list = GameConfig.IsNewbie ? teachPortConfigList : portConfigList; + List<EndlessPortConfig> allLevelData = portDic[level]; - foreach (EndlessPortConfig data in list) + foreach (EndlessPortConfig data in allLevelData) { - if (data.Config.level != level || data.Config.amount == 0) continue; + if (data.Config.amount == 0) continue; ret[data.Config.wave - 1].Add(data); } @@ -204,7 +163,14 @@ for (int i = 0; i < waveData.Count; ++i) { - ret += waveData[i].Config.amount; + int count = waveData[i].Config.amount; + endless_enemy enemyData = EndlessEnemyData.GetDataById(waveData[i].Config.enemy_id); + + // WTF... + if (enemyData.resource == 103) + count *= 2; + + ret += count; } return ret; -- Gitblit v1.9.1