초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer;
public class RentalVisitAction : EntityActionBase
{
public RentalVisitAction(Player owner)
: base(owner)
{ }
public override async Task<Result> onInit()
{
var result = new Result();
return await Task.FromResult(result);
}
public override void onClear()
{
return;
}
public Result setRentalInstanceVisitFromDoc(RentalInstanceVisitDoc doc)
{
var result = new Result();
var owner = getOwner() as Player;
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
var rental_instance_visit_attribute = owner.getEntityAttribute<RentalInstanceVisitAttribute>();
if (rental_instance_visit_attribute is null)
{
var err_msg = $"Fail to get rental_instance_visit_attribute";
result.setFail(ServerErrorCode.EntityAttributeNotFound, err_msg);
return result;
}
if (false == doc.getAttribWrappers().TryGetValue(typeof(RentalInstanceVisitAttrib), out var to_copy_doc_attrib))
{
var err_msg = $"Fail to get RentalInstanceVisitAttrib";
result.setFail(ServerErrorCode.EntityAttributeNotFound, err_msg);
return result;
}
var attrib_base = to_copy_doc_attrib.getAttribBase();
var doc_attrib = attrib_base as RentalInstanceVisitAttrib;
if (doc_attrib is null)
{
var err_msg = $"Fail to get RentalInstanceVisitAttrib";
result.setFail(ServerErrorCode.EntityAttributeNotFound, err_msg);
return result;
}
foreach (var visitor in doc_attrib.m_rental_instance_visit_guid)
{
rental_instance_visit_attribute.m_rental_instance_visit.AddOrUpdate(visitor.Key, visitor.Value, (key, oldValue) => visitor.Value);
}
rental_instance_visit_attribute.m_next_refresh_time = doc_attrib.m_next_refresh_time;
rental_instance_visit_attribute.syncOriginDocBaseWithNewDoc<RentalInstanceVisitAttribute>(doc);
return result;
}
public void refresh(RentalInstanceVisitAttribute attribute)
{
var player = getOwner();
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var now = DateTimeHelper.Current;
//시간 안됐으므로 리턴
if (attribute.m_next_refresh_time > now) return;
attribute.m_next_refresh_time = DateTimeHelper.Current.Date.AddDays(1);
attribute.m_rental_instance_visit = new();
attribute.modifiedEntityAttribute(true);
}
}