Files
2025-05-01 07:23:28 +09:00

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();
}
}