using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Numerics; using Newtonsoft.Json; using ServerCore; using ServerBase; using META_ID = System.UInt32; using USER_GUID = System.String; using ANCHOR_META_GUID = System.String; using LOCATION_UNIQUE_ID = System.String; using FARMING_ENTITY_GUID = System.String; namespace ServerCommon.BusinessLogDomain; public class FarmingLogInfo : ILogInvoker.IInfo { [JsonProperty] public ANCHOR_META_GUID AnchorMetaGuid { get; set; } = string.Empty; [JsonProperty] public string FarmingPK { get; set; } = string.Empty; [JsonProperty] public string FarmingSK { get; set; } = string.Empty; [JsonProperty] public LOCATION_UNIQUE_ID LocationUniqueId { get; set; } = string.Empty; [JsonProperty] public META_ID FarmingPropMetaId { get; set; } = 0; // 파밍 효과를 요청한 USER_GUID [JsonProperty] public USER_GUID UserGuid { get; set; } = string.Empty; // 파밍에 배치된 엔티티의 종류 [JsonProperty] public FarmingSummonedEntityType FarmingSummonedEntityType { get; set; } = FarmingSummonedEntityType.None; [JsonProperty] // FarmingSummonedEntityType.User: UserGuid, FarmingSummonedEntityType.Beacon: UgcNpcMetaGuid: public FARMING_ENTITY_GUID FarmingEntityGuid { get; set; } = string.Empty; [JsonProperty] public FarmingStateType FarmingState { get; set; } = FarmingStateType.None; [JsonProperty] public UInt32 FarmingActionUseFeePrice { get; set; } = 0; [JsonProperty] public Int16 FarmingActionReqTryCount { get; set; } = 0; [JsonProperty] public Int16 CompletedRewardCount { get; set; } = 0; [JsonProperty] public DateTime FarmingStartTime { get; set; } = DateTimeHelper.MinTime; [JsonProperty] public DateTime FarmingEndTime { get; set; } = DateTimeHelper.MinTime; [JsonProperty] public DateTime FarmingRespawnTime { get; set; } = DateTimeHelper.MinTime; //===================================================================================== // 로그 생성용 객체 정의 //===================================================================================== public FarmingLogInfo() : base() { } public void setInfo(FarmingLogInfo logInfo) { AnchorMetaGuid = logInfo.AnchorMetaGuid; FarmingPK = logInfo.FarmingPK; FarmingSK = logInfo.FarmingSK; LocationUniqueId = logInfo.LocationUniqueId; FarmingPropMetaId = logInfo.FarmingPropMetaId; UserGuid = logInfo.UserGuid; FarmingSummonedEntityType = logInfo.FarmingSummonedEntityType; FarmingEntityGuid = logInfo.FarmingEntityGuid; FarmingState = logInfo.FarmingState; FarmingActionUseFeePrice = logInfo.FarmingActionUseFeePrice; FarmingActionReqTryCount = logInfo.FarmingActionReqTryCount; CompletedRewardCount = logInfo.CompletedRewardCount; FarmingStartTime = logInfo.FarmingStartTime; FarmingEndTime = logInfo.FarmingEndTime; FarmingRespawnTime = logInfo.FarmingRespawnTime; } //===================================================================================== // 로그 출력용 객체 정의 //===================================================================================== public FarmingLogInfo(ILogInvoker parent, FarmingLogInfo logInfo) : base(parent) { if (null != logInfo) { setInfo(logInfo); } } //===================================================================================== // 로그 설정용 함수 //===================================================================================== public void setLogProperty( ANCHOR_META_GUID anchorMetaGuid , string farmingPK, string farmingSK , LOCATION_UNIQUE_ID locationUniqueId , META_ID farmingPropMetaId , USER_GUID userGuid , FarmingSummonedEntityType farmingSummonedEntityType, FARMING_ENTITY_GUID farmingEntityGuid , FarmingStateType farmingState , UInt32 farmingActionUseFeePrice, short farmingActionReqTryCount, short completedRewardCount , DateTime farmingStartTime, DateTime farmingEndTime, DateTime farmingRespawnTime ) { AnchorMetaGuid = anchorMetaGuid; FarmingPK = farmingPK; FarmingSK = farmingSK; LocationUniqueId = locationUniqueId; FarmingPropMetaId = farmingPropMetaId; UserGuid = userGuid; FarmingSummonedEntityType = farmingSummonedEntityType; FarmingEntityGuid = farmingEntityGuid; FarmingState = farmingState; FarmingActionUseFeePrice = farmingActionUseFeePrice; FarmingActionReqTryCount = farmingActionReqTryCount; CompletedRewardCount = completedRewardCount; FarmingStartTime = farmingStartTime; FarmingEndTime = farmingEndTime; FarmingRespawnTime = farmingRespawnTime; } }