using GameServer.Contents.GameMode.Mode_Battle.Manage; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using ServerCore; namespace GameServer.Contents.Battle.Log; public class BattleSnapShotBusinessLog : ILogInvokerEx { private BattleSnapshotLogInfo m_info; public BattleSnapShotBusinessLog(GameModeTPSFreeForAll battleInstanceRoom, string loadType): base(LogDomainType.BattleSnapshot) { //kihoon todo : GameModeTPSFreeForAll 이걸로 받을지 아니면 고칠지 고민 필요 m_info = createBattleSnapshotLogInfo(this, battleInstanceRoom, loadType); } public override bool hasLog() { return true; } protected override void fillup(ref BusinessLog.LogBody body) { body.append(m_info); } public BattleSnapshotLogInfo createBattleSnapshotLogInfo(ILogInvoker parent, GameModeTPSFreeForAll battleInstanceRoom, string loadType) { var room_id = battleInstanceRoom.getRoomId(); BattleSnapshotLogInfo info = new(parent, room_id, loadType); var attribute = battleInstanceRoom.getEntityAttribute(); if (attribute is null) { ServerCore.Log.getLogger().warn($"attribute is null so return empty battleInstanceRoom.roomId() : {room_id}"); return info; } //info.m_play_mode = battleInstanceRoom.m_play_mode; info.m_battle_instance_event_start_time = battleInstanceRoom.m_battle_instance_event_start_time; info.m_pod_combat_reward_group_id = battleInstanceRoom.m_pod_combat_reward_group_id; info.m_pod_combat_ffa_id = battleInstanceRoom.m_pod_combat_ffa_id; info.m_hot_time_reward = battleInstanceRoom.m_hot_time_reward; info.m_round_count = battleInstanceRoom.m_round_count; info.m_respawns = attribute.m_combat_pod_mode.m_respawns; info.m_pod_storages = attribute.m_combat_pod_mode.m_pod_storages; info.m_pod_combat = attribute.m_combat_pod_mode.m_pod_combat; info.m_pickup_pods = attribute.m_combat_pod_mode.m_pickup_pods; info.m_pickup_pod_generated_info.AddRange(attribute.m_combat_pod_mode.m_pickup_pod_generated_info.Values); info.m_weapons = attribute.m_combat_pod_mode.m_weapons; info.m_buffs = attribute.m_combat_pod_mode.m_buffs; info.m_round_state_type = attribute.m_combat_pod_mode.m_round_state_type; info.m_current_round = attribute.m_combat_pod_mode.m_current_round; info.m_current_state_start_time = attribute.m_combat_pod_mode.m_current_state_start_time; info.m_charged_step = attribute.m_combat_pod_mode.m_charged_step; info.m_rewarded_step = attribute.m_combat_pod_mode.m_rewarded_step; info.m_tactical_board = attribute.m_combat_pod_mode.m_tactical_board; return info; } }