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 |