using System; using UnityEngine; using System.Collections.Generic; public class LayeredPool { // ⭐ 网络发送回调:由游戏侧(CreateFishManager)注入,框架层不再反向依赖 CreateFishManager public static Action, Vector3, int> OnSendRandomDieFishID; public static Action, Vector3, int> OnSendRandomCoinFX; public LayeredPool(int poolNum,int prizeCount) { game = new CascadeRedPacketInt(poolNum, prizeCount); } CascadeRedPacketInt game; public List BossGlodCoin(int count,Vector3 v3Point, int killerSitPos = -1) { if (game.HasNext()) { int currentSubCount = count; // 传入动态的个数 List result = game.GrabFullCycle(currentSubCount); OnSendRandomDieFishID?.Invoke(currentSubCount, result, v3Point, killerSitPos); return result; } return null; } public List BossGlodCoinNotFish(int count) { if (game.HasNext()) { int currentSubCount = count; // 传入动态的个数 List result = game.GrabFullCycle(currentSubCount); return result; } return null; } public List BossGlodCoinRandrom(Vector3 v3Point, int min=3,int max=8, int killerSitPos = -1) { if (game.HasNext()) { // --- 模拟动态逻辑 --- // 假设:第1个人裂变成3个包,第2个人裂变成10个包... // 这里用随机数模拟每次裂变个数不同 (3 到 8 之间) int currentSubCount = UnityEngine.Random.Range(min, max + 1); // 传入动态的个数 List result = game.GrabFullCycle(currentSubCount); OnSendRandomDieFishID?.Invoke(currentSubCount, result, v3Point, killerSitPos); return result; } return null; } /// /// 随机分包 + 随机爆金币但不死鱼: /// 发 randomDieFish 帧(guids 为空),所有客户端只播屏幕随机位置的金币特效,场上鱼不死亡。 /// public List BossGlodCoinRandromNotFish(Vector3 v3Point, int min=3, int max=8, int killerSitPos = -1) { if (game.HasNext()) { int currentSubCount = UnityEngine.Random.Range(min, max + 1); List result = game.GrabFullCycle(currentSubCount); OnSendRandomCoinFX?.Invoke(result, v3Point, killerSitPos); return result; } return null; } }