250501 커밋
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
using GameServer.Contents.GameMode.Manage.PlayManage;
|
||||
using MetaAssets;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCore;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public static class BattleInstancePlayModeHelper
|
||||
{
|
||||
|
||||
public static BattleInstancesObject? getBattleObject(string anchorGuid, BattleInstanceSnapshotAttribute attribute, EBattleObjectType type)
|
||||
{
|
||||
BattleInstancesObject? battle_instance_object = null;
|
||||
if (type.Equals(EBattleObjectType.Weapon))
|
||||
{
|
||||
battle_instance_object = getBattleObjectWeapon(anchorGuid, attribute);
|
||||
}
|
||||
else if (type.Equals(EBattleObjectType.Buff))
|
||||
{
|
||||
battle_instance_object = getBattleObjectBuff(anchorGuid, attribute);
|
||||
}
|
||||
else if (type.Equals(EBattleObjectType.Pod_Combat))
|
||||
{
|
||||
battle_instance_object = getBattleObjectPodCombat(anchorGuid, attribute);
|
||||
}
|
||||
else if (type.Equals(EBattleObjectType.Pod_Box))
|
||||
{
|
||||
battle_instance_object = getBattleObjectPickupPod(anchorGuid, attribute);
|
||||
}
|
||||
|
||||
return battle_instance_object;
|
||||
}
|
||||
|
||||
private static BattleInstancesObject getBattleObjectWeapon(string anchorGuid, BattleInstanceSnapshotAttribute attribute)
|
||||
{
|
||||
if (false == attribute.m_combat_pod_mode.m_weapons.TryGetValue(anchorGuid, out var battle_instance_object_weapon))
|
||||
{
|
||||
battle_instance_object_weapon = new BattleObjectWeapon(anchorGuid);
|
||||
attribute.m_combat_pod_mode.m_weapons.TryAdd(anchorGuid, battle_instance_object_weapon);
|
||||
}
|
||||
return battle_instance_object_weapon;
|
||||
}
|
||||
|
||||
private static BattleInstancesObject getBattleObjectBuff(string anchorGuid, BattleInstanceSnapshotAttribute attribute)
|
||||
{
|
||||
if (false == attribute.m_combat_pod_mode.m_buffs.TryGetValue(anchorGuid, out var battle_instance_object_buff))
|
||||
{
|
||||
battle_instance_object_buff = new BattleObjectBuff(anchorGuid);
|
||||
attribute.m_combat_pod_mode.m_buffs.TryAdd(anchorGuid, battle_instance_object_buff);
|
||||
}
|
||||
return battle_instance_object_buff;
|
||||
}
|
||||
|
||||
private static BattleInstancesObject getBattleObjectPodCombat(string anchorGuid, BattleInstanceSnapshotAttribute attribute)
|
||||
{
|
||||
if (false == attribute.m_combat_pod_mode.m_pod_storages.TryGetValue(anchorGuid, out var storages))
|
||||
{
|
||||
storages = new BattleObjectPodStorage(anchorGuid);
|
||||
attribute.m_combat_pod_mode.m_pod_storages.TryAdd(anchorGuid, storages);
|
||||
}
|
||||
|
||||
return storages;
|
||||
}
|
||||
|
||||
private static BattleInstancesObject getBattleObjectPickupPod(string anchorGuid, BattleInstanceSnapshotAttribute attribute)
|
||||
{
|
||||
if (false == attribute.m_combat_pod_mode.m_pickup_pods.TryGetValue(anchorGuid, out var pickupPod))
|
||||
{
|
||||
Log.getLogger().warn($"not exist pickup pod so..create anchorguid : {anchorGuid}");
|
||||
pickupPod = new BattleObjectPickupPod(anchorGuid);
|
||||
pickupPod.m_is_active = false;
|
||||
attribute.m_combat_pod_mode.m_pickup_pods.TryAdd(anchorGuid, pickupPod);
|
||||
}
|
||||
|
||||
return pickupPod;
|
||||
}
|
||||
|
||||
public static bool isPodCombat(BattleInstanceSnapshotAttribute attribute, string anchorGuid)
|
||||
{
|
||||
return attribute.m_combat_pod_mode.m_pod_combat.m_anchor_guid.Equals(anchorGuid);
|
||||
}
|
||||
|
||||
|
||||
public static (Result, BattleObjectMetaData) getBattleObjectMeta(string anchorGuid, GameModeBase battleInstanceRoom)
|
||||
{
|
||||
var map = battleInstanceRoom.getInstanceRoom().getMap();
|
||||
string err_msg = string.Empty;
|
||||
var result = new Result();
|
||||
if(false == map.m_anchors.TryGetValue(anchorGuid, out var anchorInfo))
|
||||
{
|
||||
err_msg = $"Anchor Info Not Exist.... room_id : {map.m_room_id} anchor guid : {anchorGuid}";
|
||||
result.setFail(ServerErrorCode.BattleInstanceNotExistAnchors, err_msg);
|
||||
return (result, new(new BattleObjectMetaDataMutable()));
|
||||
}
|
||||
|
||||
if (false == MapDataTable.Instance.getAnchor(anchorGuid, out var anchor))
|
||||
{
|
||||
err_msg = $"Not found Anchor in MapFileType !!! : anchourGuid:{anchorGuid}";
|
||||
//Log.getLogger(err_msg);
|
||||
result.setFail(ServerErrorCode.BattleInstanceNotExistAnchors, err_msg);
|
||||
return (result, new(new BattleObjectMetaDataMutable()));
|
||||
}
|
||||
|
||||
var table_id = anchorInfo.AnchorProp.TableId;
|
||||
|
||||
if (anchor.Type.Equals(BattleConstant.BATTLE_OBJECT_GROUP_ANCHOR_NAME))
|
||||
{
|
||||
if (false == MetaData.Instance._BattleObjectSpawnGroupMetaTable.TryGetValue(table_id, out var battle_object_spawn_group_meta))
|
||||
{
|
||||
err_msg = $"_BattleObjectSpawnGroupMetaTable data Not Exist.... room_id : {map.m_room_id} anchor guid : {anchorGuid}, tableId : {table_id}";
|
||||
result.setFail(ServerErrorCode.BattleInstanceObjectMetaNotExist, err_msg);
|
||||
return (result, new(new BattleObjectMetaDataMutable()));
|
||||
}
|
||||
|
||||
table_id = battle_object_spawn_group_meta.BattleObjectID;
|
||||
}
|
||||
|
||||
if (false == MetaData.Instance._BattleObjectMetaTable.TryGetValue(table_id, out var battle_object_meta))
|
||||
{
|
||||
err_msg = $"_BattleObjectMetaTable data Not Exist.... room_id : {map.m_room_id} anchor guid : {anchorGuid}, tableId : {table_id}";
|
||||
result.setFail(ServerErrorCode.BattleInstanceObjectMetaNotExist, err_msg);
|
||||
return (result, new(new BattleObjectMetaDataMutable()));
|
||||
}
|
||||
|
||||
return (result, battle_object_meta);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user