CoordinationHelpers
Functions for multi-entity coordination and communication
Library Implementation
-- CoordinationHelpers.lua
-- Utilities for coordinating between entities and sending reports
local CoordinationHelpers = {}
-- Send progress report
function CoordinationHelpers.sendProgressReport(state, phase, status)
local reportData = {
phase = phase,
status = status,
progress = state.currentSubtask and (state.currentSubtask / #state.subtasks) or 0,
timestamp = vrf.getSimulationTime()
}
SendReport{report = reportData}
return true
end
-- Send completion report
function CoordinationHelpers.sendCompletionReport(state, success, message)
local reportData = {
taskComplete = true,
success = success,
message = message,
duration = vrf.getSimulationTime() - state.startTime,
subtasksCompleted = state.currentSubtask or 0
}
SendReport{report = reportData}
return true
end
-- Coordinate with other entities
function CoordinationHelpers.coordinateAction(action, params)
-- Check if coordination is needed
if not params.requiresCoordination then
return true, "No coordination required"
end
-- Coordinate with FAC or command element
CoordinateWithFAC{}
-- Broadcast position for deconfliction
BroadcastPosition{}
return true, "Coordination complete"
end
-- Request support from other entities
function CoordinationHelpers.requestSupport(supportType, params)
local supportMsg = {
type = supportType,
location = params.location,
urgency = params.urgency or "ROUTINE",
requestTime = vrf.getSimulationTime()
}
SendReport{report = supportMsg}
return true, "Support requested"
end
-- Synchronize timing with other entities
function CoordinationHelpers.synchronizeTiming(state, syncPoint)
if not state.syncPoints then
state.syncPoints = {}
end
-- Mark this sync point as reached
state.syncPoints[syncPoint] = vrf.getSimulationTime()
-- In real implementation, would wait for other entities
return true, "Sync point reached: " .. syncPoint
end
return CoordinationHelpers
2097 characters
Usage Example
-- Usage example:
local CoordinationHelpers = require("CoordinationHelpers")
function tick()
if taskState.current == "READY" then
-- Send initial progress report
CoordinationHelpers.sendProgressReport(taskState, "READY", "Starting execution")
taskState.current = "EXECUTING"
end
if taskState.current == "EXECUTING" then
-- Coordinate before critical action
local success, msg = CoordinationHelpers.coordinateAction("engage", {
requiresCoordination = true
})
-- Request support if needed
if needsSupport then
CoordinationHelpers.requestSupport("CAS", {
location = targetLocation,
urgency = "IMMEDIATE"
})
end
end
if taskState.current == "COMPLETE" then
-- Send completion report
CoordinationHelpers.sendCompletionReport(taskState, true, "Mission accomplished")
return "COMPLETE", "Task completed"
end
return "CONTINUE", "Executing"
end
Quick Reference
Import Statement
local CoordinationHelpers = require("CoordinationHelpers")
Category
coordination
Key Features
- Send progress and completion reports
- Coordinate actions with other entities
- Request support from friendly forces
- Synchronize timing across entities