using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer; public class QuestTaskUpdateBusinessLog : ILogInvokerEx { QuestTaskUpdateLogInfo m_info; public QuestTaskUpdateBusinessLog(QuestTaskUpdateHandler questTaskUpdateDataRef) : base(LogDomainType.QuestMain) { ArgumentNullReferenceCheckHelper.throwIfNull(questTaskUpdateDataRef.m_quest, () => $"questTaskUpdateDataRef.m_quest is null !!!"); var quest_attribute = questTaskUpdateDataRef.m_quest.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(quest_attribute, () => $"quest_attribute is null !!!"); List delete_items = new(); foreach (var item in questTaskUpdateDataRef.m_deleted_items) { delete_items.Add(item as ItemBase); } m_info = new QuestTaskUpdateLogInfo(this, questTaskUpdateDataRef.m_quest_id, questTaskUpdateDataRef.m_quest_revision, quest_attribute.CurrentTaskNum, quest_attribute.ActiveEvents, questTaskUpdateDataRef.m_rewards, delete_items ); } public override bool hasLog() { return true; } protected override void fillup(ref BusinessLog.LogBody body) { body.append(m_info); } }