52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
/*
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using WingsEmu.Core.Logging;
|
|
using WingsAPI.Game._Guri;
|
|
using WingsAPI.Game._Guri.Event;
|
|
using WingsAPI.Game.Managers;
|
|
using WingsAPI.Game.Networking;
|
|
using WingsAPI.Packets.Enums;
|
|
|
|
namespace WingsEmu.Plugins.BasicImplementations.Guri
|
|
{
|
|
public class IcebreakerEventGuriHandler : IGuriHandler
|
|
{
|
|
public long GuriEffectId => 501;
|
|
|
|
private readonly IServerManager _serverManager;
|
|
private readonly IMapManager _mapManager;
|
|
|
|
public IcebreakerEventGuriHandler(IServerManager serverManager, IMapManager mapManager)
|
|
{
|
|
_serverManager = serverManager;
|
|
_mapManager = mapManager;
|
|
}
|
|
|
|
public async Task ExecuteAsync(IClientSession Session, GuriEvent guriPacket)
|
|
{
|
|
if (!_serverManager.IceBreakerInWaiting && IceBreaker.Map.Sessions.Count() > IceBreaker.MaxAllowedPlayers)
|
|
{
|
|
Logger.Log.Debug($"The maximum number of players has been reached. GurriEffectId {GuriEffectId}");
|
|
return;
|
|
}
|
|
|
|
await _mapManager.TeleportOnRandomPlaceInMapAsync(Session, IceBreaker.Map.MapInstanceId);
|
|
var group = new WingsAPI.Game.Group(GroupType.IceBreaker);
|
|
if (Session.Character.Group == null)
|
|
{
|
|
group.Characters.Add(Session);
|
|
goto IceBreaker;
|
|
}
|
|
|
|
foreach (IClientSession session in Session.Character.Group.Characters)
|
|
{
|
|
group.Characters.Add(session);
|
|
}
|
|
|
|
IceBreaker:
|
|
IceBreaker.AddGroup(group);
|
|
}
|
|
}
|
|
} */
|
|
|