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,238 @@
using GameServer.Contents.GameMode.Mode_Battle.Manage;
using Google.Protobuf.WellKnownTypes;
using Newtonsoft.Json;
using ServerCommon;
using ServerCore;
namespace GameServer;
public static class BattleRoomNotifyHelper
{
public static void send_GS2C_NTF_POD_COMBAT_STATE(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, Player player)
{
var ntf = makePodCombatStateNotify(battleInstanceRoom);
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
public static void broadcast_GS2C_NTF_POD_COMBAT_STATE(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom)
{
var ntf = makePodCombatStateNotify(battleInstanceRoom);
Log.getLogger().debug($"broadcast_GS2C_NTF_POD_COMBAT_STATE ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfPodCombatState)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
private static ClientToGame makePodCombatStateNotify(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfPodCombatState = new ClientToGameMessage.Types.GS2C_NTF_POD_COMBAT_STATE();
var attribute = battleInstanceRoom.getEntityAttribute<BattleInstanceSnapshotAttribute>();
NullReferenceCheckHelper.throwIfNull(attribute, () => $"location attribute is null !!");
var pod_combat = attribute.m_combat_pod_mode.m_pod_combat;
BattlePodCombatState state = new();
state.PodCombatGuid = pod_combat.m_anchor_guid;
state.OwnerPodCombatStandGuid = pod_combat.m_source_storage_anchor_guid;
state.PodCombatStateType = pod_combat.m_state;
state.StatechangeTime = Timestamp.FromDateTime(pod_combat.m_state_change_time);
state.CurrentPos = pod_combat.m_currenct_Pos;
state.CurrentOwnerGuid = pod_combat.m_current_occupier_guid;
state.CurrentTime = Timestamp.FromDateTime(DateTimeHelper.Current);
ntf.Message.NtfPodCombatState.PodCombatState.Add(state);
return ntf;
}
public static void send_GS2C_NTF_BATTLE_INSTANCE_STATE(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, Player player)
{
var ntf = makeBattleInstanceStateNotify(battleInstanceRoom);
Log.getLogger().debug($"send_GS2C_NTF_BATTLE_INSTANCE_STATE ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfBattleInstanceState)}");
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
public static void broadcast_GS2C_NTF_BATTLE_INSTANCE_STATE(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom)
{
var ntf = makeBattleInstanceStateNotify(battleInstanceRoom);
Log.getLogger().debug($"broadcast_GS2C_NTF_BATTLE_INSTANCE_STATE ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfBattleInstanceState)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
private static ClientToGame makeBattleInstanceStateNotify(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleInstanceState = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_INSTANCE_STATE();
ntf.Message.NtfBattleInstanceState.CreateTime = Timestamp.FromDateTime(battleInstanceRoom.m_battle_instance_event_start_time);
var attribute = battleInstanceRoom.getEntityAttribute<BattleInstanceSnapshotAttribute>();
NullReferenceCheckHelper.throwIfNull(attribute, () => $"attribute is null !!!");
ntf.Message.NtfBattleInstanceState.CurrentRound = attribute.m_combat_pod_mode.m_current_round;
ntf.Message.NtfBattleInstanceState.RoundStateStartTime = Timestamp.FromDateTime(attribute.m_combat_pod_mode.m_current_state_start_time);
ntf.Message.NtfBattleInstanceState.RoundStateType = attribute.m_combat_pod_mode.m_round_state_type;
ntf.Message.NtfBattleInstanceState.RewardedStep = attribute.m_combat_pod_mode.m_rewarded_step;
ntf.Message.NtfBattleInstanceState.ChargedStep = attribute.m_combat_pod_mode.m_charged_step;
return ntf;
}
public static void send_GS2C_NTF_PLAYER_DEATH(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, string killerGuid, string deadUserGuid, Player player)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattlePlayerDeath = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_PLAYER_DEATH();
ntf.Message.NtfBattlePlayerDeath.DeadUserGuid = deadUserGuid;
ntf.Message.NtfBattlePlayerDeath.KillerUserGuid = killerGuid;
Log.getLogger().debug($"send_GS2C_NTF_PLAYER_DEATH ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfBattlePlayerDeath)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void send_GS2C_NTF_PLAYER_RESPAWN(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, Pos pos, Player player)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattlePlayerRespawn = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_PLAYER_RESPAWN();
ntf.Message.NtfBattlePlayerRespawn.RespawnUserGuid = player.getUserGuid();
ntf.Message.NtfBattlePlayerRespawn.Pos = pos;
Log.getLogger().debug($"send_GS2C_NTF_PLAYER_RESPAWN ntf battleInstanceRoom Id : {battleInstanceRoom.getInstanceRoom().getMap().m_room_id} data : {JsonConvert.SerializeObject(ntf.Message.NtfBattlePlayerRespawn)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void broadcast_GS2C_NTF_BATTLE_OBJECT_STATE_INFO(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, BattleObjectInteractionLogicHandler handler)
{
BattleObjectInfo info = new();
info.AnchorGuid = handler.m_battle_object.m_anchor_guid;
var now = DateTimeHelper.Current;
info.IsActive = handler.m_battle_object.m_is_active ? BoolType.True : BoolType.False;
List<BattleObjectInfo> infos = new();
infos.Add(info);
broadcast_GS2C_NTF_BATTLE_OBJECT_STATE_INFO(battleInstanceRoom, infos);
}
public static void broadcast_GS2C_NTF_BATTLE_OBJECT_STATE_INFO(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, List<BattleObjectInfo> infos)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleObjectStateInfo = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_OBJECT_STATE_INFO();
ntf.Message.NtfBattleObjectStateInfo.BattleObjectInfos.AddRange(infos);
Log.getLogger().debug($"broadcast_GS2C_NTF_BATTLE_OBJECT_STATE_INFO ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data :{JsonConvert.SerializeObject(infos)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void send_GS2C_NTF_BATTLE_OBJECT_STATE_INFO(List<BattleObjectInfo> infos, Player player)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleObjectStateInfo = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_OBJECT_STATE_INFO();
ntf.Message.NtfBattleObjectStateInfo.BattleObjectInfos.AddRange(infos);
Log.getLogger().debug($"send_GS2C_NTF_BATTLE_OBJECT_STATE_INFO ntf : {JsonConvert.SerializeObject(infos)}");
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
public static void broadcast_GS2C_NTF_BATTLE_OBJECT_INTERACTION(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, string userGuid, string anchorGuid)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleObjectInteraction = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_OBJECT_INTERACTION();
ntf.Message.NtfBattleObjectInteraction.AnchorGuid = anchorGuid;
ntf.Message.NtfBattleObjectInteraction.UserGuid = userGuid;
Log.getLogger().debug($"broadcast_GS2C_NTF_BATTLE_OBJECT_INTERACTION ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfBattleObjectInteraction)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void broadcast_GS2C_NTF_BATTLE_REWARD(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, string acquireUserGuid, CommonResult commonResult)
{
if (commonResult.EntityCommonResults.Count == 0) return;
if (acquireUserGuid.Equals(string.Empty)) return;
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleInstanceReward = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_INSTANCE_REWARD();
ntf.Message.NtfBattleInstanceReward.AcquireRewards = commonResult;
ntf.Message.NtfBattleInstanceReward.AcquireUserGuid = acquireUserGuid;
Log.getLogger().debug($"send battle reward ntf acquireUserGuid : {acquireUserGuid}, commonResult : {JsonConvert.SerializeObject(commonResult)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void send_GS2C_NTF_BATTLE_EVENT(Player player)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleEvent = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_EVENT();
ntf.Message.NtfBattleEvent.BattleEvent.AddRange(BattleInstanceManager.It.getAllProtoBattleEvents());
Log.getLogger().debug($"send battle event ntf guid : {player.getUserGuid()}, ntf : {JsonConvert.SerializeObject(ntf.Message.NtfBattleEvent)}");
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
public static void broadcast_GS2C_NTF_BATTLE_EVENT(List<BattleEventInfo> infos)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfBattleEvent = new ClientToGameMessage.Types.GS2C_NTF_BATTLE_EVENT();
ntf.Message.NtfBattleEvent.BattleEvent.AddRange(infos);
foreach (var each in GameServerApp.getServerLogic().getPlayerManager().getUsers())
{
var player = each.Value;
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
}
public static void broadcast_GS2C_NTF_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE(GameModeTPSFreeForAll<GameModeTPSFreeForAllData> battleInstanceRoom, string leavingUserGuid)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfPreparationForLeavingBattleInstance = new ClientToGameMessage.Types.GS2C_NTF_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE();
ntf.Message.NtfPreparationForLeavingBattleInstance.LeavingUserGuid = leavingUserGuid;
Log.getLogger().debug($"broadcast_GS2C_NTF_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE ntf battleInstanceRoom Id : {battleInstanceRoom.getRoomId()} data : {JsonConvert.SerializeObject(ntf.Message.NtfPreparationForLeavingBattleInstance)}");
battleInstanceRoom.getInstanceRoom().Broadcast(ntf);
}
public static void broadcast_GS2C_NTF_P2P_HOST_UPDATE(InstanceRoom instanceRoom, string hostUserGuid)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfP2PHostUpdate = new ClientToGameMessage.Types.GS2C_NTF_P2P_HOST_UPDATE();
ntf.Message.NtfP2PHostUpdate.HostUserGuid = hostUserGuid;
Log.getLogger().debug($"broadcast_GS2C_NTF_P2P_HOST_UPDATE ntf battleInstanceRoom Id : {instanceRoom.getMap().m_room_id} data : {JsonConvert.SerializeObject(ntf.Message.NtfP2PHostUpdate)}");
instanceRoom.Broadcast(ntf);
}
public static void send_GS2C_NTF_P2P_HOST_UPDATE(Player player, string hostUserGuid)
{
ClientToGame ntf = new ClientToGame();
ntf.Message = new ClientToGameMessage();
ntf.Message.NtfP2PHostUpdate = new ClientToGameMessage.Types.GS2C_NTF_P2P_HOST_UPDATE();
ntf.Message.NtfP2PHostUpdate.HostUserGuid = hostUserGuid;
GameServerApp.getServerLogic().onSendPacket(player, ntf);
}
}