250501 커밋

This commit is contained in:
2025-05-01 07:23:28 +09:00
parent 98bb2e3c5c
commit 23176551b7
353 changed files with 9972 additions and 6652 deletions

View File

@@ -0,0 +1,55 @@
using GameServer.Contents.GameMode.Helper;
using GameServer.Contents.GameMode.Manage;
using GameServer.Contents.GameMode.Manage.PlayManage;
using ServerBase;
using ServerCommon;
using ServerCore;
namespace GameServer;
public abstract class GameModeInitHandlerBase : IGameModeInitHandler
{
protected readonly GameModeType m_game_mode_type;
protected readonly InstanceRoom m_instance_room;
public GameModeInitHandlerBase(InstanceRoom instanceRoom, GameModeType gameModeType)
{
m_instance_room = instanceRoom;
m_game_mode_type = gameModeType;
}
public abstract Result gamedModeInstanceInitValidate();
public virtual async Task<Result> gamedModeInstanceInit()
{
var result = await GameModeManager.It.createGameMode(m_instance_room, m_game_mode_type); //kihoon todo : 이렇게 짜는게 맞는지...고민좀 해보자
if (result.isFail()) return result;
var room_id = m_instance_room.getMap().m_room_id;
if(false == GameModeManager.It.tryGetGameMode(room_id, out var gameMode))
{
var err_msg = $"game_mode is null !!!! gameModeType : {m_game_mode_type}, instanceRoomId : {room_id}";
Log.getLogger().error(err_msg);
result.setFail(ServerErrorCode.GameModeClassIsNull, err_msg);
return result;
}
var initializer = gameMode as IInitializer;
NullReferenceCheckHelper.throwIfNull(initializer, () => $"initializer is null !!! casting error");
var gamd_mod_base = gameMode as GameModeBase;
NullReferenceCheckHelper.throwIfNull(gamd_mod_base, () => $"gamd_mod_base is null !!! casting error");
//모드별로 필요한 내용 초기화
using (var releaser = await gamd_mod_base.getAsyncLock())
{
if (gamd_mod_base.isLoadCompleted()) return result;
result = await initializer.onInit();
if (result.isFail()) return result;
}
return result;
}
}