Files
caliverse_server/GameServer/Contents/GameMode/Helper/GameModeHelper.cs
2025-05-01 07:20:41 +09:00

71 lines
2.8 KiB
C#

using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer;
public class GameModeHelper
{
public static (Result, IGameModeJoinHandler) getGameModeJoinHandler(InstanceRoom instanceRoom, EPlaceType placeType)
{
var result = new Result();
switch (placeType)
{
case EPlaceType.BattleRoom:
return (result, new BattleInstanceJoinHandler(instanceRoom));
case EPlaceType.ArcadeRunning:
return (result, new ArcadeRunningInstanceJoinHandler(instanceRoom));
case EPlaceType.GameRoom:
return (result, new GameRoomJoinHandler(instanceRoom));
default:
var err_msg = $"invalid placeType in this mode!!!! placeType : {placeType}";
result.setFail(ServerErrorCode.GameModeJoinHandlerNotExist, err_msg);
return (result, new BattleInstanceJoinHandler(instanceRoom));
}
}
public static (Result, IGameModeInitHandler) getGameModeInitHandler(InstanceRoom instanceRoom, EPlaceType placeType)
{
var result = new Result();
switch (placeType)
{
case EPlaceType.BattleRoom:
return (result, new BattleInstanceInitHandler(instanceRoom));
case EPlaceType.ArcadeRunning:
return (result, new ArcadeRunningInstanceInitHandler(instanceRoom));
case EPlaceType.GameRoom:
return (result, new GameRoomInitHandler(instanceRoom));
default:
var err_msg = $"getGameModeInitHandler not!!!! placeType : {placeType}";
result.setFail(ServerErrorCode.GameModeInitHandlerNotExist, err_msg);
return (result, new BattleInstanceInitHandler(instanceRoom));
}
}
public static (Result, IGameModeJoinSuccessHandler?) getGameModeJoinSuccessHandler(Player player, InstanceRoom instanceRoom, EPlaceType placeType)
{
var result = new Result();
switch (placeType)
{
case EPlaceType.BattleRoom:
return (result, new BattleInstanceJoinSuccessHandler(player, instanceRoom));
case EPlaceType.ArcadeRunning:
return (result, new ArcadeRunningInstanceJoinSuccessHandler(player, instanceRoom));
case EPlaceType.GameRoom:
return (result, new GameRoomJoinSuccessHandler(player, instanceRoom));
default:
var err_msg = $"getGameModeInitHandler not!!!! placeType : {placeType}";
result.setFail(ServerErrorCode.GameModeJoinSuccessHandlerNotExist, err_msg);
return (result, null);
}
}
}