From b2722bf84115092dcf61a0f612b737c20eb11f27 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Wed, 25 Nov 2020 21:10:20 +0800 Subject: [PATCH] 木精灵蓄力攻击特效 --- Assets/Scripts/Data/EndlessBuffData.cs | 65 ++++++++++++++++++++++++++++++-- 1 files changed, 61 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Data/EndlessBuffData.cs b/Assets/Scripts/Data/EndlessBuffData.cs index 91055e5..5c4aff0 100644 --- a/Assets/Scripts/Data/EndlessBuffData.cs +++ b/Assets/Scripts/Data/EndlessBuffData.cs @@ -42,6 +42,11 @@ /// 可生效总波数,生命周期类型为n波内生效才有作用,否则没有意义 /// </summary> public int TotalEffectWaves; + + /// <summary> + /// 记录被玩家选择的次数 + /// </summary> + public int SelectCount; } public class EndlessBuffData @@ -68,11 +73,29 @@ /// </summary> private static List<EndlessBuffConfig> randomBuffList; + /// <summary> + /// 被移除掉的buff id 列表 + /// </summary> + private static List<int> removedIdList; + + /// <summary> + /// 颜色品阶 + /// </summary> + /// <typeparam name="Color"></typeparam> + /// <returns></returns> + private static List<Color> rareColorList = new List<Color>() + { + new Color(68f / 255f, 148f / 255f, 57f / 255f), + new Color(74f / 255f, 124f / 255f, 207f / 255f), + new Color(149f / 255f, 79f / 255f, 214f / 255f), + }; + public static void Init() { endlessBuffList = JsonDataCenter.GetList<endless_buff>(); allEndlessConfig = new List<EndlessBuffConfig>(); randomBuffList = new List<EndlessBuffConfig>(); + removedIdList = new List<int>(); random = new System.Random(); foreach (endless_buff data in endlessBuffList) @@ -96,9 +119,6 @@ } allEndlessConfig.Add(newConfig); } - - InitEndlessBuffPool(1); - GetRandomBuffList(); } /// <summary> @@ -117,9 +137,21 @@ for (int i = 0; i < allEndlessConfig.Count; ++i) { + // 如果是一次性的buff就不再出现了 + if (removedIdList.Contains(allEndlessConfig[i].Config.id)) continue; + if (level >= allEndlessConfig[i].Config.down_level && level <= allEndlessConfig[i].Config.upper_level) endlessBuffPool.Add(allEndlessConfig[i]); } + } + + /// <summary> + /// 从buff池中删除以后都不会再出现的buff + /// </summary> + /// <param name="id"></param> + public static void RemoveFromBuffPool(int id) + { + removedIdList.Add(id); } /// <summary> @@ -151,7 +183,6 @@ } randomBuffList = ret; - return ret; } @@ -163,5 +194,31 @@ { return randomBuffList[index]; } + + /// <summary> + /// 根据buff配置表id获取buff数据 + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public static EndlessBuffConfig GetBuffById(int id) + { + for (int i = 0; i < endlessBuffPool.Count; ++i) + { + if (endlessBuffPool[i].Config.id == id) + return endlessBuffPool[i]; + } + + return null; + } + + /// <summary> + /// 根据品质获得颜色值 + /// </summary> + /// <param name="rare"></param> + /// <returns></returns> + public static Color GetColorByRare(int rare) + { + return rareColorList[rare - 1]; + } } } \ No newline at end of file -- Gitblit v1.9.1