초기커밋
This commit is contained in:
1069
GameServer/Entity/Effect/Farming/Action/FarmingEffectAction.cs
Normal file
1069
GameServer/Entity/Effect/Farming/Action/FarmingEffectAction.cs
Normal file
File diff suppressed because it is too large
Load Diff
150
GameServer/Entity/Effect/Farming/FarmingEffect.cs
Normal file
150
GameServer/Entity/Effect/Farming/FarmingEffect.cs
Normal file
@@ -0,0 +1,150 @@
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
using static ClientToGameReq.Types;
|
||||
|
||||
|
||||
using SESSION_ID = System.Int32;
|
||||
using WORLD_META_ID = System.UInt32;
|
||||
using META_ID = System.UInt32;
|
||||
using ENTITY_GUID = System.String;
|
||||
using ACCOUNT_ID = System.String;
|
||||
using OWNER_GUID = System.String;
|
||||
using USER_GUID = System.String;
|
||||
using MASTER_GUID = System.String;
|
||||
using CHARACTER_GUID = System.String;
|
||||
using ITEM_GUID = System.String;
|
||||
using ENTITY_UNIQUE_ID = System.String;
|
||||
using ANCHOR_META_GUID = System.String;
|
||||
using NPC_UNIQUE_ID = System.String;
|
||||
using FARMING_ENTITY_GUID = System.String;
|
||||
using LOCATION_UNIQUE_ID = System.String;
|
||||
using GUARD_KEY = System.String;
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class FarmingEffect : EntityBase
|
||||
{
|
||||
private Map m_curr_map;
|
||||
|
||||
private AtomicString m_guard_key_nullable = new();
|
||||
private AtomicBool m_guard_bool = new(false);
|
||||
|
||||
public FarmingEffect( EntityBase parent, Map currMap)
|
||||
: base(EntityType.Farming, parent)
|
||||
{
|
||||
m_curr_map = currMap;
|
||||
}
|
||||
|
||||
public override async Task<Result> onInit()
|
||||
{
|
||||
var direct_parent = getDirectParent();
|
||||
NullReferenceCheckHelper.throwIfNull(direct_parent, () => $"direct_parent is null !!!");
|
||||
|
||||
addEntityAttribute(new FarmingEffectAttribute(this, direct_parent));
|
||||
addEntityAttribute(new FarmingEffectLocationInTargetAttribute(this));
|
||||
addEntityAttribute(new FarmingEffectOwnerAttribute(this));
|
||||
|
||||
addEntityAction(new FarmingEffectAction(this));
|
||||
|
||||
return await base.onInit();
|
||||
}
|
||||
|
||||
public override EntityBase? onGetMasterEntity()
|
||||
{
|
||||
if (false == hasMasterGuid())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var master_guid = getMasterGuid();
|
||||
|
||||
var server_logc = GameServerApp.getServerLogic();
|
||||
var player_manager = server_logc.getPlayerManager();
|
||||
|
||||
if (false == player_manager.tryGetUserByPrimaryKey(master_guid, out var found_player))
|
||||
{
|
||||
// 별도 Task로 처리해주는 처리자가 있다면 해당 처리자를 반환 한다. !!! - kangms
|
||||
|
||||
err_msg = $"Failed to player_manager.tryGetUserByPrimaryKey() !!!, Not found MasterEntity : MasterGuid:{master_guid} - {toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return found_player;
|
||||
}
|
||||
|
||||
public override OWNER_GUID onGetGuidOfOwnerEntityType()
|
||||
{
|
||||
var farming_effect_attribute = getEntityAttributeWithReadOnly<FarmingEffectAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(farming_effect_attribute, () => $"farming_effect_attribute is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
return farming_effect_attribute.FarmingEntityGuid;
|
||||
}
|
||||
|
||||
public override OwnerEntityType onGetOwnerEntityType()
|
||||
{
|
||||
var farming_effect_attribute = getEntityAttributeWithReadOnly<FarmingEffectAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(farming_effect_attribute, () => $"farming_effect_attribute is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
if(FarmingSummonedEntityType.User == farming_effect_attribute.FarmingSummonedEntityType)
|
||||
{
|
||||
return OwnerEntityType.User;
|
||||
}
|
||||
else if (FarmingSummonedEntityType.Beacon == farming_effect_attribute.FarmingSummonedEntityType)
|
||||
{
|
||||
return OwnerEntityType.UgcNpc;
|
||||
}
|
||||
|
||||
return OwnerEntityType.None;
|
||||
}
|
||||
|
||||
public ANCHOR_META_GUID getAnchorMetaGuid()
|
||||
{
|
||||
var farming_effect_attribute = getEntityAttributeWithReadOnly<FarmingEffectAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(farming_effect_attribute, () => $"farming_effect_attribute is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
return farming_effect_attribute.AnchorMetaGuid;
|
||||
}
|
||||
|
||||
public Map getCurrMap() => m_curr_map;
|
||||
|
||||
public FarmingSummary toFarmingSummary()
|
||||
{
|
||||
var farming_effect_attribute = getEntityAttributeWithReadOnly<FarmingEffectAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(farming_effect_attribute, () => $"farming_effect_attribute is null !!! - {toBasicString()}");
|
||||
|
||||
var farming_effect_action = getEntityAction<FarmingEffectAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(farming_effect_action, () => $"farming_effect_action is null !!! - {toBasicString()}");
|
||||
|
||||
var farming_anchor_info = farming_effect_action.getAnchorInfo();
|
||||
var farming_anchor_prop = farming_anchor_info.AnchorProp;
|
||||
|
||||
var farming_summary = new FarmingSummary();
|
||||
farming_summary.FarmingAnchorMetaId = farming_effect_attribute.AnchorMetaGuid;
|
||||
farming_summary.FarmingPropMetaId = farming_anchor_prop.TableId;
|
||||
farming_summary.FarmingUserGuid = farming_effect_attribute.OwnerGuid;
|
||||
|
||||
farming_summary.FarmingSummonType = farming_effect_attribute.FarmingSummonedEntityType;
|
||||
farming_summary.FarmingEntityGuid = farming_effect_attribute.FarmingEntityGuid;
|
||||
|
||||
farming_summary.FarmingState = farming_effect_attribute.FarmingState;
|
||||
farming_summary.StartTime = farming_effect_attribute.FarmingStartTime.ToTimestamp();
|
||||
farming_summary.EndTime = farming_effect_attribute.FarmingEndTime.ToTimestamp();
|
||||
|
||||
return farming_summary;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user