Zum Inhalt

task_decorator

Quelle: base/tealdef/mission/tasks/task_decorator.d.tl

Hinweise

Umhüllt ein Aufgabenskript mit einem zweiten Skript (Decorator), das Verhalten hinzufügt.

TaskDecorator

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

global record TaskDecorator

Laden: local task_decorator = ug_require "::/mission/tasks/task_decorator.tl" as TaskDecorator

Hinweise

Verbindet ein Aufgabenskript mit einem Decorator-Skript zu einem einzigen Aufgabenskript.

Details

Die dekorierte Aufgabe heißt <taskScriptName>_decorated. Ihr Zustand ist ein DecoratorState, ihre Parameter sind ein DecoratorParam. Die Callbacks der umhüllten Aufgabe bekommen nur ihren eigenen Teil (taskParam, taskState), die Callbacks des Decorators den ganzen Kontext. Die Aufgabe ist abgeschlossen, wenn isComplete des Decorators (falls vorhanden) und isComplete der Aufgabe beide true liefern. getInfo des Decorators wird ignoriert.

Beispiel

-- 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,
},

Funktionen

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

Aufruf: task_decorator.decorate(…)

Hinweise

Baut ein Aufgabenskript, das task und decorator nebeneinander ausführt.

Parameter Typ Beschreibung
task MissionInterface.TaskScript<S, P> Das zu umhüllende Aufgabenskript.
decorator MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>> Decorator-Skript, das mit dem gemeinsamen Zustand und den gemeinsamen Parametern arbeitet.

Rückgabe MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>>: Das kombinierte Aufgabenskript.

Im Basisspiel verwendet: 5-mal in 3 Dateien

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
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
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>,

DecoratorState

record global base/tealdef/mission/tasks/task_decorator.d.tl:7

global record DecoratorState<SpecificState, DecoratorSpecificState>

Hinweise

Zustand einer dekorierten Aufgabe.

Felder

Name Typ Beschreibung
taskState SpecificState Zustand der umhüllten Aufgabe.
decoratorState DecoratorSpecificState Zustand des Decorators.

DecoratorParam

record global base/tealdef/mission/tasks/task_decorator.d.tl:12

global record DecoratorParam<TaskSpecificParam, DecoratorSpecificParam>

Hinweise

Parameter einer dekorierten Aufgabe.

Felder

Name Typ Beschreibung
taskParam TaskSpecificParam Parameter der umhüllten Aufgabe.
decoratorParam DecoratorSpecificParam Parameter des Decorators.