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 |