Skip to content

mission_task_build_construction

Source: base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl

Notes

Task that waits until the player builds something that passes a set of proposal checks.

MissionTaskBuildConstruction

record global base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl:3

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

Load: local build_construction = ug_require "::/mission/tasks/build_construction/build_construction.tl"

Notes

Task (build_construction) that checks every build proposal with proposalHandler. A proposal that fails a check is blocked with the check's message; each applied proposal that passes counts, and the task completes at minCount (default 1).

Example

-- urbangames_campaign_mission_01: build a road depot in a marked area
taskScript = build_construction as MissionInterface.TaskScript<any, any>,
taskParams : MissionTaskBuildConstruction.Params = {
    zones = { { key = "buildStreetDepot", polygon = depotPolygon, draw = true, getDrawColor = targetColor, playAnimation = true } },
    initialAngle = params.streetDepotAngle,
    proposalHandler = build_construction_util.makeProposalHandlerFilterApply({
        checkBuilderId = build_construction_util.makeCheckConstructionBuilderId({ error = _("MISSION_PROPOSAL_FEEDBACK_NOT_A_ROAD_DEPOT") }),
        checkConstruction = build_construction_util.makeCheckConstruction("::/depots/road/road_depot/road_depot.con", nil, { error = _("MISSION_PROPOSAL_FEEDBACK_NOT_A_ROAD_DEPOT") }),
        checkLocation = build_construction_util.makeCheckLocation(params.streetDepotZone.pos[1], params.streetDepotZone.pos[2], 20, { error = _("MISSION_PROPOSAL_FEEDBACK_NOT_IN_OUTLINED_AREA") }),
        checkSnapping = build_construction_util.makeCheckSnapping({}, { error = _("MISSION_PROPOSAL_FEEDBACK_NOT_CONNECTED_TO_STREET") }),
    }, true),
},

MissionTaskBuildConstruction.Params

record base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl:5

record Params

Notes

Params of the task.

Used in the base game: 22 times in 5 files

base/content/mission/mission/tutorial/tutorial_story.tl:378

taskParams : MissionTaskBuildConstruction.Params = {
base/content/mission/mission/tasks/build_construction/build_construction.tl:6
local type P = MissionTaskBuildConstruction.Params
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:355
taskParams : MissionTaskBuildConstruction.Params = {
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:666
taskParams : MissionTaskBuildConstruction.Params = {
mods/release/urbangames_campaign_mission_04/content/mission/mission/mission_story.tl:394
taskParams : MissionTaskBuildConstruction.Params = {

Fields

Name Type Description
proposalHandler BuildConstructionUtil.ProposalHandlerConfig Checks applied to proposals (required).
zones {MissionInterface.Zone} Zones to show.
initialAngle number Rotation set in the construction tool when the task opens, in radians.
minCount integer Number of passing proposals needed (default 1; 0 completes at once). A counter is shown above 1.

Functions

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

Notes

Returns the zones to show; takes precedence over zones.

Returns {MissionInterface.Zone}: Zones.

getEntitiesToDraw() : {Engine.Entity} base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl:9

Notes

Returns entities to mark with a 5 m circle each; takes precedence over getZones and zones.

Returns {Engine.Entity}: Entities.

getMinCount() : integer base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl:12

Notes

Returns the number needed when minCount is not set; called at spawn.

Returns integer: Count.

MissionTaskBuildConstruction.State

record base/tealdef/mission/tasks/build_construction/mission_task_build_construction.d.tl:15

record State

Notes

State of the task.

Used in the base game: 2 times in 2 files

base/content/mission/mission/tutorial/tutorial_story.tl:836

local conTask = taskState as MissionInterface.TaskState<MissionTaskBuildConstruction.State, MissionTaskBuildConstruction.Params>
base/content/mission/mission/tasks/build_construction/build_construction.tl:5
local type S = MissionTaskBuildConstruction.State

Fields

Name Type Description
minCount integer Number needed.
resultEntities {Engine.Entity} First result entity of each passing proposal.
signalsFound integer Passing proposals without result entity (signals, for example).