Files
DanhengServer-OpenSource/GameServer/Game/Rogue/Event/EffectHandler/EventHandlerEnhanceRogueBuff.cs
Somebody 87d228eb79 Feature:Asynchronous Operation & Formatting Code
- Now the async operation is enabled!
- Code formatted by Resharper plugin <3
2024-07-22 17:12:03 +08:00

36 lines
1.1 KiB
C#

using EggLink.DanhengServer.Data;
using EggLink.DanhengServer.Enums.Rogue;
using EggLink.DanhengServer.Util;
namespace EggLink.DanhengServer.Game.Rogue.Event.EffectHandler;
[RogueEvent(DialogueEventTypeEnum.EnhanceRogueBuff)]
public class EventHandlerEnhanceRogueBuff : RogueEventEffectHandler
{
public override async ValueTask Handle(BaseRogueInstance rogue, RogueEventInstance? eventInstance,
List<int> paramList)
{
var group = paramList[0];
GameData.RogueBuffGroupData.TryGetValue(group, out var buffGroup);
if (buffGroup == null) return;
var count = paramList[1];
var buffs = rogue.GetRogueBuffInGroup(buffGroup.GroupID);
if (buffs.Count == 0) return;
for (var i = 0; i < count;)
{
if (buffs.Count == 0) break; // No more buffs to enhance
var buff = buffs.RandomElement();
if (buff.BuffLevel == 2)
{
// Buff is already at max level
buffs.Remove(buff);
continue;
}
await rogue.EnhanceBuff(buff.BuffId);
i++;
}
}
}