I have this problem where I want to associate each map trigger to a corresponding asset data and I don’t know how to do this
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
asset_data:= class:
@editable
CreativeProps: creative_prop = creative_prop{}
@editable
WoodAmount: int = 0
@editable
GoldAmount: int = 0
@editable
AssetName: string = ""
@editable
MoveOnZ: float = 0.0
game_manager := class(creative_device):
@editable
ClaimerTrigger: []trigger_device = array{}
@editable
ClaimerBillboard: billboard_device = billboard_device{}
@editable
ClaimZone: mutator_zone_device = mutator_zone_device{}
@editable
AssetDatas: []asset_data = array{}
ResourceManager: Verse.player_resource_manager = Verse.player_resource_manager{}
@editable
PurchaseIndex : int = 0
TextForUI<localizes>(InText: string): message = "{InText}"
OnBegin<override>()<suspends>:void=
ClaimZone.AgentEntersEvent.Subscribe(OnAgentEnters)
for(Trigger:ClaimerTrigger):
Trigger.TriggeredEvent.Subscribe(OnClaimerTrigered)
OnAgentEnters(Agent: agent): void=
if (FirstPurchase := AssetDatas[0]):
MoveProp(FirstPurchase)
ClaimZone.Disable()
MoveProp(AssetData: asset_data): void =
TransformProp := AssetData.CreativeProps.GetTransform()
var Location : vector3 = TransformProp.Translation
set Location.Z += AssetData.MoveOnZ
if (AssetData.CreativeProps.TeleportTo[Location, TransformProp.Rotation]):
Print("Chegou:{Location}")
OnClaimerTrigered(Agent: ?agent): void=
Print("ClaimerTrigered")
OwnerGold := ResourceManager.GetGoldAmount()
OwnerWood := ResourceManager.GetWoodAmount()
if(CurrentAssetData := AssetDatas[PurchaseIndex]):
if (OwnerGold < CurrentAssetData.GoldAmount and OwnerWood < CurrentAssetData.WoodAmount):
Print("Not Enough Resources")
else:
MoveProp(CurrentAssetData)
ResourceManager.DeductResources(CurrentAssetData.WoodAmount, CurrentAssetData.GoldAmount)