server-master/srcs/_plugins/Plugin.TimeSpaces/Handlers/TimeSpaceIncreaseScoreEventHandler.cs
2026-02-10 18:21:30 +01:00

42 lines
No EOL
1.2 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using PhoenixLib.Events;
using WingsEmu.Game.Networking;
using WingsEmu.Game.TimeSpaces;
using WingsEmu.Game.TimeSpaces.Events;
namespace Plugin.TimeSpaces.Handlers;
public class TimeSpaceIncreaseScoreEventHandler : IAsyncEventProcessor<TimeSpaceIncreaseScoreEvent>
{
private readonly ITimeSpaceManager _timeSpaceManager;
public TimeSpaceIncreaseScoreEventHandler(ITimeSpaceManager timeSpaceManager) => _timeSpaceManager = timeSpaceManager;
public async Task HandleAsync(TimeSpaceIncreaseScoreEvent e, CancellationToken cancellation)
{
int amountToIncrease = e.AmountToIncrease;
TimeSpaceParty timeSpaceParty = null;
if (e.TimeSpaceParty != null)
{
timeSpaceParty = e.TimeSpaceParty;
}
if (timeSpaceParty == null)
{
return;
}
if (!timeSpaceParty.Started || timeSpaceParty.Finished)
{
return;
}
timeSpaceParty.Instance.IncreaseScoreByAmount(amountToIncrease);
foreach (IClientSession member in timeSpaceParty.Members)
{
member.RefreshTimespaceScoreUi();
}
}
}