Files
caliverse_server/ServerCommon/1. Define/BusinessLog/Domain/FarmingLogInfo.cs
2025-05-01 07:20:41 +09:00

152 lines
5.1 KiB
C#

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