Skip to content

mission_task_wait_for

Source: base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl

Notes

Task that completes when a condition function returns true, optionally with a countdown.

MissionTaskWaitFor

record global base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:3

global record MissionTaskWaitFor is MissionInterface.TaskScript<MissionTaskWaitFor.State, MissionTaskWaitFor.Params>

Load: local wait_for = ug_require "::/mission/tasks/wait/wait_for.tl"

Notes

Task (wait_for) that completes when waitFn returns true. With countdown it also ends when the time runs out, showing the remaining time as sub-task progress.

Example

-- urbangames_campaign_mission_02: wait until a train reaches a zone
taskScript = wait_for as MissionInterface.TaskScript<any, any>,
taskParams = {
    waitFn = function(_readOnlyApi : MissionInterface.MissionTaskReadOnlyApi) : boolean
        local entities = api.engine.util.octree.findEntitiesInCircle(
            api.type.Vec2f.new(params.waitForMachinesZone1.pos[1], params.waitForMachinesZone1.pos[2]),
            params.waitForMachinesZone1.radius, api.type.ComponentType.CARRIAGE)
        return #entities > 0
    end,
},

MissionTaskWaitFor.Params

record base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:4

record Params

Notes

Params of the task.

Used in the base game: 4 times in 2 files

base/content/mission/mission/tasks/wait/wait_for.tl:6

local type P = MissionTaskWaitFor.Params
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story.tl:753
local hasFailed = (getTaskState("wait_for_rocket_start") as MissionInterface.TaskState<MissionTaskWaitFor.State, MissionTaskWaitFor.Params>).specific.hasFailed

Fields

Name Type Description
zones {MissionInterface.Zone} Zones shown while waiting.
markers {MissionInterface.Marker} Markers shown while waiting.
simTimeMinutesToComplete integer Length of the countdown in simulation minutes (game time); required with countdown.
countdown boolean Ends the task (as failed) when the countdown runs out.

Functions

waitFn(readOnlyApi : MissionInterface.MissionTaskReadOnlyApi) : boolean base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:5

Notes

Condition checked every update (required).

Parameter Type Description
readOnlyApi MissionInterface.MissionTaskReadOnlyApi Read-only mission API.

Returns boolean: true to complete the task.

getZones() : {MissionInterface.Zone} base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:8

Notes

Returns the zones to show; takes precedence over zones.

Returns {MissionInterface.Zone}: Zones.

getMarkers() : {MissionInterface.Marker} base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:9

Notes

Returns the markers to show; takes precedence over markers.

Returns {MissionInterface.Marker}: Markers.

MissionTaskWaitFor.State

record base/tealdef/mission/tasks/wait/mission_task_wait_for.d.tl:14

record State

Notes

State of the task.

Used in the base game: 4 times in 2 files

base/content/mission/mission/tasks/wait/wait_for.tl:5

local type S = MissionTaskWaitFor.State
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story.tl:753
local hasFailed = (getTaskState("wait_for_rocket_start") as MissionInterface.TaskState<MissionTaskWaitFor.State, MissionTaskWaitFor.Params>).specific.hasFailed

Fields

Name Type Description
isComplete boolean Last result of waitFn.
hasFailed boolean The countdown ran out.
currentSimTimeMs integer Game time (ms) of the last update.
initialSimTimeMs integer Game time (ms) at which the countdown started.
endSimTimeMs integer Game time (ms) at which the countdown ends.