WutheringWaves/GameServer/Controllers/RoleController.cs

50 lines
1.5 KiB
C#
Raw Normal View History

using Core.Config;
using GameServer.Controllers.Attributes;
2024-02-09 22:15:05 +00:00
using GameServer.Models;
using GameServer.Network;
using GameServer.Network.Messages;
2024-02-10 16:04:03 +00:00
using GameServer.Systems.Event;
2024-02-09 22:15:05 +00:00
using Protocol;
namespace GameServer.Controllers;
internal class RoleController : Controller
{
public RoleController(PlayerSession session) : base(session)
{
// RoleController.
2024-02-09 22:15:05 +00:00
}
[GameEvent(GameEventType.EnterGame)]
public async Task OnEnterGame(ModelManager modelManager, ConfigManager configManager)
2024-02-09 22:15:05 +00:00
{
PlayerModel player = modelManager.Player;
await Session.Push(MessageId.PbGetRoleListNotify, new PbGetRoleListNotify
{
RoleList =
{
configManager.GetCollection(ConfigType.RoleInfo)
.Enumerate<RoleInfoConfig>()
.Select(config => new roleInfo
2024-02-09 22:15:05 +00:00
{
RoleId = config.Id,
Level = 1
})
2024-02-09 22:15:05 +00:00
}
});
}
[NetEvent(MessageId.SwitchRoleRequest)]
public async Task<ResponseMessage> OnSwitchRoleRequest(SwitchRoleRequest request, CreatureController creatureController)
{
await creatureController.SwitchPlayerEntity(request.RoleId);
return Response(MessageId.SwitchRoleResponse, new SwitchRoleResponse
{
RoleId = request.RoleId
});
}
2024-02-09 22:15:05 +00:00
[NetEvent(MessageId.RoleFavorListRequest)]
public ResponseMessage OnRoleFavorListRequest() => Response(MessageId.RoleFavorListResponse, new RoleFavorListResponse());
}