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
base/content/mission/mission/tasks/build_construction/build_construction.tl:6
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:355
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:666
mods/release/urbangames_campaign_mission_04/content/mission/mission/mission_story.tl:394
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
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). |