From 677249ef1ddfd0431350d56bbbaa16d2619fa7b6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-SAJ6RKV\\Administrator" Date: Fri, 6 Jun 2025 01:19:39 +0800 Subject: [PATCH] 1 --- .../GameLogic/Manager/DataGameSceneManager.cs | 179 +++++++++++++++++- 1 file changed, 177 insertions(+), 2 deletions(-) diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs index 768aff18..3bfef5e0 100644 --- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs +++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs @@ -102,6 +102,13 @@ namespace GameLogic if (isGameState) { ProtCust.Instance.SendRoundVo_Start(); + + // 释放所有暂存逻辑 + foreach (var action in m_PendingGiftActions) + { + action.Invoke(); + } + m_PendingGiftActions.Clear(); } else { @@ -356,8 +363,175 @@ namespace GameLogic // 统一在这里处理播放音频 GameModule.Audio.Play(TEngine.AudioType.UISound, giftConfig.EffectAudioName, false, 1); + // 判断游戏是否开始 + if (!GetGameState()) + { + // 暂存逻辑 + m_PendingGiftActions.Add(() => + { + // 下面原有的逻辑全部放到这里 + if (giftConfig.Id == 1) + { + // 点赞 + var actor = GetTeamActor(unitPlayerData.teamId); + if (actor == null) + { + Log.Error("actor == null" + unitPlayerData.teamId); + return; + } + + // 生成一个Buff添加.并没有特殊效果 + actor.AddBuff(new Buff() + { + m_Id = giftConfig.Id, + addPower = giftConfig.AddPower * num, + m_AllTimer = giftConfig.TimerLen, + m_CraeteTimer = Time.deltaTime, + }, unitPlayerData, giftConfig); + + + + + } + else if (giftConfig.Id == 2) + { + // 红仙女棒 + var actor = GetTeamActor(unitPlayerData.teamId); + if (actor == null) + { + Log.Error("actor == null" + unitPlayerData.teamId); + return; + } + + // 生成一个Buff添加.并没有特殊效果 + actor.AddBuff(new Buff() + { + m_Id = giftConfig.Id, + addPower = giftConfig.AddPower * num, + m_AllTimer = giftConfig.TimerLen, + m_CraeteTimer = Time.deltaTime, + }, unitPlayerData, giftConfig); + } + else if (giftConfig.Id == 3) + { + + // 绿仙女棒 + var actor = GetTeamActor(unitPlayerData.teamId); + if (actor == null) + { + Log.Error("actor == null" + unitPlayerData.teamId); + return; + } + + List m_TempList = new List(); + + foreach (var item in m_DicTeamList) + { + if (item.Value != actor) + { + m_TempList.Add(item.Value); + } + } + + // 排序 + m_TempList.Sort((a, b) => + { + if (a.GetAllPower() > b.GetAllPower()) + { + return -1; + } + else + { + return 1; + } + }); + + // 随机取三个阵营,扔减速Buff,并且排除自己 + for (int i = 0; i < 3; i++) + { + if (m_TempList.Count <= 0) + { + break; + } + var item = m_TempList[i]; + // 添加减速Buff + Buff m_Buff1 = new Buff(); + m_Buff1.OnInit(giftConfig.Id, giftConfig.AddPower * num, giftConfig.TimerLen, giftConfig.AddGiftScore, num); + item.AddBuff(m_Buff1, unitPlayerData, giftConfig); + + } + + //// 生成一个Buff添加.并没有特殊效果 + //actor.AddBuff(new Buff() + //{ + // m_Id = giftConfig.Id, + // addPower = giftConfig.AddPower * num, + // m_AllTimer = giftConfig.TimerLen, + // m_CraeteTimer = Time.deltaTime, + //}, unitPlayerData, giftConfig); + } + else if (giftConfig.Id == 4) + { + // 蓝仙女棒 + var actor = GetTeamActor(unitPlayerData.teamId); + if (actor == null) + { + Log.Error("actor == null" + unitPlayerData.teamId); + return; + } + + // 生成一个Buff添加.并没有特殊效果 + actor.AddBuff(new Buff() + { + m_Id = giftConfig.Id, + addPower = giftConfig.AddPower * num, + m_AllTimer = giftConfig.TimerLen, + m_CraeteTimer = Time.deltaTime, + }, unitPlayerData, giftConfig); + } + else if (giftConfig.Id == 5) + { + // 龙卷风 + NlywGiftFunc(giftConfig, num, unitPlayerData); + } + else if (giftConfig.Id == 6) + { + // 天机窃算 + MfjGiftFunc(giftConfig, num, unitPlayerData); + } + else if (giftConfig.Id == 7) + { + // 陨石撞击 + TtqGiftFunc(giftConfig, num, unitPlayerData); + } + else if (giftConfig.Id == 8) + { + // 科技爆发 + NldcGiftFunc(giftConfig, num, unitPlayerData); + } + else if (giftConfig.Id == 9) + { + // 天道推演 + AdbzGiftFunc(giftConfig, num, unitPlayerData); + } + + + // 每次积分变动 + m_TeamSortList.Sort((a, b) => + { + if (a.GetAllPower() > b.GetAllPower()) + { + return -1; + } + else + { + return 1; + } + }); + }); + return; + } - // 整个Buff系统看看如何重构一下,部分礼物效果并不好实现 if (giftConfig.Id == 1) { // 点赞 @@ -503,7 +677,6 @@ namespace GameLogic AdbzGiftFunc(giftConfig, num, unitPlayerData); } - // 每次积分变动 m_TeamSortList.Sort((a, b) => { if (a.GetAllPower() > b.GetAllPower()) @@ -515,6 +688,7 @@ namespace GameLogic return 1; } }); + } #region 游戏中具体的礼物效果处理 @@ -782,6 +956,7 @@ namespace GameLogic public int m_ShiJianTimerId = -1; public bool isHuangJinShiDai = false; // 是否是黄金时代 + private List m_PendingGiftActions = new List(); ///