Files
caliverse_server/GameServer/Contents/GameMode/Manage/StateManage/GameModeStateBase.cs
2025-05-01 07:23:28 +09:00

42 lines
1.2 KiB
C#

using GameServer.Contents.GameMode.Manage.PlayManage;
using ServerCore;
namespace GameServer.Contents.GameMode.Manage.StateManage;
public abstract class GameModeStateBase : IGameModeState
{
protected IGameMode m_game_mode;
protected GameModeBase m_game_mode_base;
private GameModeState m_state = GameModeState.None;
protected DateTime m_next_state_change_time;
public GameModeStateBase(IGameMode gameMode, GameModeState state)
{
m_game_mode = gameMode;
var game_mode_base = m_game_mode as GameModeBase;
NullReferenceCheckHelper.throwIfNull(game_mode_base, () => $"game_mode_base is null !!");
m_game_mode_base = game_mode_base;
m_next_state_change_time = DateTimeHelper.Current.AddSeconds(10); //kihoon todo: 대기시간은 나중에 meta로 반영해야 된다.
m_state = state;
}
public abstract void enter();
public abstract void update();
public abstract void exit();
public abstract GameModeState checkState();
public GameModeState getStateType()
{
return m_state;
}
public DateTime getNextStateChangeTime()
{
return m_next_state_change_time;
}
}