43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using ServerBase;
|
|
using ServerCommon;
|
|
|
|
namespace GameServer.Contents.GameMode.Manage;
|
|
|
|
public abstract class GameModeJoinSuccessHandlerBase : IGameModeJoinSuccessHandler
|
|
{
|
|
protected Player m_player;
|
|
protected GameModeType m_game_mode_type;
|
|
protected List<ILogInvoker> m_log_invorkers;
|
|
protected InstanceRoom m_instance_room;
|
|
|
|
public GameModeJoinSuccessHandlerBase(Player player, GameModeType gameModeType, InstanceRoom instanceRoom)
|
|
{
|
|
m_player = player;
|
|
m_game_mode_type = gameModeType;
|
|
m_log_invorkers = new();
|
|
m_instance_room = instanceRoom;
|
|
}
|
|
|
|
public async Task<Result> joinSuccess()
|
|
{
|
|
var result = joinSuccessValidate();
|
|
if (result.isFail()) return result;
|
|
|
|
result = await joinSuccessConfirmation();
|
|
if (result.isFail()) return result;
|
|
|
|
result = joinSuccessNotify().Result;
|
|
if (result.isFail()) return result;
|
|
|
|
joinSuccessWriteLog();
|
|
|
|
return result;
|
|
}
|
|
|
|
public abstract Result joinSuccessValidate();
|
|
public abstract Task<Result> joinSuccessConfirmation();
|
|
public abstract Task<Result> joinSuccessNotify();
|
|
|
|
public abstract void joinSuccessWriteLog();
|
|
|
|
} |