63 lines
1.9 KiB
C#
63 lines
1.9 KiB
C#
using GameServer.Contents.GameMode.Manage.PlayManage;
|
|
using GameServer.Contents.GameMode.Mode_Running.Manage;
|
|
using GameServer.Contents.GameMode.Mode_Running.ModeRace.Helper;
|
|
using ServerBase;
|
|
using ServerCommon;
|
|
using ServerCore;
|
|
|
|
namespace GameServer.Contents.GameMode.Mode_Running.ModeRace.Actions;
|
|
|
|
public class RaceStateCheckAction : EntityActionBase
|
|
{
|
|
public RaceStateCheckAction(EntityBase owner)
|
|
: base(owner)
|
|
{
|
|
}
|
|
public override void onClear()
|
|
{
|
|
return;
|
|
}
|
|
|
|
public override async Task<Result> onInit()
|
|
{
|
|
await Task.CompletedTask;
|
|
|
|
var result = new Result();
|
|
|
|
return result;
|
|
}
|
|
|
|
public async Task<Result> stateUpdate()
|
|
{
|
|
var run_race = getOwner() as GameModeBase;
|
|
NullReferenceCheckHelper.throwIfNull(run_race, () => $"GameModeRunRace is null !!");
|
|
|
|
var game_mode = getOwner() as IGameMode;
|
|
NullReferenceCheckHelper.throwIfNull(game_mode, () => $"game_mode is null !!");
|
|
var current_state = run_race.getGameModeState();
|
|
|
|
//kihoon todo : 해당 sate에 따른 업데이트 내용 처리 할게 있으면 여기서 처리 Update를 어떻게 써야 되나....
|
|
current_state.update();
|
|
|
|
var next_state_type = current_state.checkState();
|
|
var current_state_type = current_state.getStateType();
|
|
|
|
//다르면 상태 변경
|
|
if (!current_state_type.Equals(next_state_type))
|
|
{
|
|
var next_state = RunRaceHelper.createRaceGameState(game_mode, next_state_type);
|
|
|
|
current_state.exit();
|
|
run_race.setGameModeState(next_state);
|
|
current_state = run_race.getGameModeState();
|
|
|
|
current_state.enter();
|
|
}
|
|
|
|
var result = new Result();
|
|
|
|
await Task.CompletedTask;
|
|
return result;
|
|
}
|
|
|
|
} |