71 lines
2.8 KiB
C#
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);
|
|
}
|
|
}
|
|
} |