78 lines
2.3 KiB
C#
78 lines
2.3 KiB
C#
using System.Collections.Concurrent;
|
|
using Axion.Collections.Concurrent;
|
|
using GameServer.Contents.Battle.Log;
|
|
using GameServer.Contents.GameMode.Helper;
|
|
using GameServer.Contents.GameMode.Manage.PlayManage;
|
|
using GameServer.Contents.GameMode.Mode_Battle.Manage;
|
|
using MetaAssets;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Serialization;
|
|
using Org.BouncyCastle.Tls.Crypto.Impl;
|
|
using ServerBase;
|
|
using ServerCommon;
|
|
using ServerCore;
|
|
|
|
namespace GameServer;
|
|
|
|
|
|
|
|
|
|
|
|
public class BattleInstanceRoom : EntityBase, IWithLogActor, IBattleMode
|
|
{
|
|
|
|
public BattleInstanceRoom()
|
|
: base(EntityType.BattleInstance)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
public override async Task<Result> onInit()
|
|
{
|
|
await Task.CompletedTask;
|
|
var result = new Result();
|
|
return result;
|
|
}
|
|
|
|
public ILogActor toLogActor()
|
|
{
|
|
var server_logic = GameServerApp.getServerLogic();
|
|
var region_id = server_logic.getServerConfig().getRegionId();
|
|
var server_name = server_logic.getServerName();
|
|
|
|
var log_info = new BattleInstanceActorLog(region_id, server_name, "", 0);
|
|
return log_info;
|
|
}
|
|
|
|
|
|
public async Task<bool> LeaveBattleRoom(Player player, string roomId, bool disconnected = false)
|
|
{
|
|
if (false == GameModeManager.It.tryGetGameMode(roomId, out var gameMode)) return false;
|
|
|
|
var game_mode_base = GameModeHelper.toGameModeBase(gameMode);
|
|
Log.getLogger().info($"LeaveBattleRoom, player : {player.toBasicString()}, roomId : {roomId}, disconnected : {disconnected}");
|
|
|
|
//await game_mode_base.getInstanceRoom().LeaveGameInstanceRoom(player, disconnected);
|
|
await Task.CompletedTask;
|
|
if (game_mode_base.getInstanceRoom().isDestroy)
|
|
{
|
|
Log.getLogger().info($"m_instance_room.isDestroy, so destroyBattleRoom : {player.toBasicString()}, roomId : {roomId}, disconnected : {disconnected}");
|
|
InstanceRoomManager.Instance.DestroyRoom(roomId);
|
|
Log.getLogger().info($"destroy InstanceRoomManager room Player : {player.toBasicString()}, roomId : {roomId}, disconnected : {disconnected}");
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public override string toBasicString()
|
|
{
|
|
return $"BattleInstanceRoom room_id";
|
|
}
|
|
|
|
|
|
public Task<Result> init()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
} |