task_decorator¶
Source: base/tealdef/mission/tasks/task_decorator.d.tl
Notes
Wraps a task script with a second script (decorator) that adds behaviour.
TaskDecorator¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:3
global record TaskDecorator
Load: local task_decorator = ug_require "::/mission/tasks/task_decorator.tl"
Notes
Combines a task script with a decorator script into one task script.
Details
The decorated task is named <taskScriptName>_decorated. Its state is a DecoratorState
and its params a DecoratorParam. The wrapped task's callbacks get only their own part
(taskParam, taskState); the decorator's callbacks get the whole context. The task is
complete when the decorator's isComplete (if any) and the task's isComplete both
return true. The decorator's getInfo is ignored.
Example
-- urbangames_campaign_mission_01
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
taskParams : DecoratorParam<MissionTaskCollectEntity.Params, MissionTaskGuideCollectEntity.Param> = {
taskParam = { soundEffectFile = params.crocodileSound, getEntities = getEntities },
decoratorParam = guideParam,
},
Functions
decorate<S, P, GS, GP>(task : MissionInterface.TaskScript<S, P>, decorator : MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>>) : MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>> base/tealdef/mission/tasks/task_decorator.d.tl:4
Call as task_decorator.decorate
Notes
Builds a task script that runs task and decorator side by side.
| Parameter | Type | Description |
|---|---|---|
task |
MissionInterface.TaskScript<S, P> |
Task script to wrap. |
decorator |
MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>> |
Decorator script working on the combined state and params. |
Returns MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>>: Combined task script.
Used in the base game: 5 times in 3 files
mods/release/urbangames_campaign_mission_06/content/mission/mission/mission_story.tl:553
taskScript = task_decorator.decorate(subsidies, guide_subsidies) as MissionInterface.TaskScript<any, any>,
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:464
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
mods/release/urbangames_campaign_mission_04/content/mission/mission/mission_story.tl:921
DecoratorState¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:7
global record DecoratorState<SpecificState, DecoratorSpecificState>
Notes
State of a decorated task.
Fields
| Name | Type | Description |
|---|---|---|
taskState |
SpecificState |
State of the wrapped task. |
decoratorState |
DecoratorSpecificState |
State of the decorator. |
DecoratorParam¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:12
global record DecoratorParam<TaskSpecificParam, DecoratorSpecificParam>
Notes
Params of a decorated task.
Fields
| Name | Type | Description |
|---|---|---|
taskParam |
TaskSpecificParam |
Params of the wrapped task. |
decoratorParam |
DecoratorSpecificParam |
Params of the decorator. |