WutheringWaves/GameServer/Controllers/FormationController.cs

49 lines
1.6 KiB
C#
Raw Normal View History

2024-02-09 22:15:05 +00:00
using GameServer.Controllers.Attributes;
using GameServer.Models;
using GameServer.Network;
using GameServer.Network.Messages;
using GameServer.Systems.Entity;
using GameServer.Systems.Event;
2024-02-09 22:15:05 +00:00
using Protocol;
namespace GameServer.Controllers;
internal class FormationController : Controller
{
private readonly ModelManager _modelManager;
public FormationController(PlayerSession session, ModelManager modelManager) : base(session)
{
_modelManager = modelManager;
}
[NetEvent(MessageId.GetFormationDataRequest)]
public ResponseMessage OnGetFormationDataRequest() => Response(MessageId.GetFormationDataResponse, new GetFormationDataResponse
{
Formations =
{
new FightFormation
{
CurRole = _modelManager.Player.Characters[0],
2024-02-09 22:15:05 +00:00
FormationId = 1,
IsCurrent = true,
RoleIds = { _modelManager.Player.Characters },
2024-02-09 22:15:05 +00:00
}
},
});
2024-02-10 00:56:31 +00:00
[NetEvent(MessageId.UpdateFormationRequest)]
public async Task<ResponseMessage> OnUpdateFormationRequest(UpdateFormationRequest request, EventSystem eventSystem)
{
_modelManager.Formation.Set([.. request.Formation.RoleIds]);
await eventSystem.Emit(GameEventType.FormationUpdated);
return Response(MessageId.UpdateFormationResponse, new UpdateFormationResponse
{
Formation = request.Formation
});
}
2024-02-10 00:56:31 +00:00
[NetEvent(MessageId.FormationAttrRequest)]
public ResponseMessage OnFormationAttrRequest() => Response(MessageId.FormationAttrResponse, new FormationAttrResponse());
2024-02-09 22:15:05 +00:00
}