29 lines
		
	
	
		
			813 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			813 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
local BuildUtils = {}
 | 
						|
local BusyActorManagerSubSystem = import("BusyActorManagerSubSystem")
 | 
						|
 | 
						|
 | 
						|
local function BuildBonfire(wco)
 | 
						|
    local sub_system = BusyActorManagerSubSystem.Get(wco)
 | 
						|
    local role = sub_system.current_role
 | 
						|
    local bonfire = sub_system:GetNearestBonfire()
 | 
						|
    local role_pos = role:K2_GetActorLocation()
 | 
						|
    local bonfire_pos = bonfire:K2_GetActorLocation()
 | 
						|
 | 
						|
    local distance = (role_pos.X - bonfire_pos.X)^2 + (role_pos.Y - bonfire_pos.Y)^2
 | 
						|
    if distance >= 90000 then
 | 
						|
        sub_system:SpawnBonfire(role_pos)
 | 
						|
        return true
 | 
						|
    end
 | 
						|
    return false
 | 
						|
end
 | 
						|
 | 
						|
local build_mapping = {
 | 
						|
    [200001] = BuildBonfire
 | 
						|
}
 | 
						|
function BuildUtils.Build(wco, item_id)
 | 
						|
    local build_function = build_mapping[item_id]
 | 
						|
    return build_function and build_function(wco) or false
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
return BuildUtils |