Zum Inhalt

mission_task_util

Quelle: base/tealdef/mission/mission_task_util.d.tl

Hinweise

Deklarative Aufgabenbeschreibung (StaticTaskInfo) für Missions-Storys, dazu Helfer für Aufgabenschlüssel und Bereiche.

Globale Namen

Typen

Name Definition Beschreibung
MissionLocalization {{Engine.Entity, string}} Liste von Paaren { entity, name }, mit denen die Entitäten eines Missions-Spielstands umbenannt werden (siehe NameUtil.setName).

MissionTaskUtil

record global base/tealdef/mission/mission_task_util.d.tl:5

global record MissionTaskUtil

Laden: local mission_task_util = ug_require "::/mission/mission_task_util.tl" as MissionTaskUtil

Hinweise

Deklarative Aufgabenbeschreibung für Storys, dazu Helfer für Aufgabenschlüssel und Bereiche.

Funktionen

makeTaskKey(taskKey : string, root : string) : string base/tealdef/mission/mission_task_util.d.tl:49

Aufruf: mission_task_util.makeTaskKey(…)

Hinweise

Baut den eindeutigen Schlüssel einer Aufgabe.

Parameter Typ Beschreibung
taskKey string Aufgabenschlüssel innerhalb der Story.
root string Skriptschlüssel der Story (zum Beispiel "urbangames_campaign_mission_01::/mission/mission.script").

Rückgabe string: root .. "||" .. taskKey.

Im Basisspiel verwendet: 246-mal in 21 Dateien

base/content/mission/mission/mission_boot_util.tl:40

uniqueKey = mission_task_util.makeTaskKey(key, scriptKey)
base/content/mission/mission/tutorial/tutorial_story.tl:904
local taskState = readOnlyApi.getTaskState(mission_task_util.makeTaskKey("road_depot", "::/mission/tutorial/tutorial.script"))
base/content/mission/mission/tutorial/tutorial_story_branch_a.tl:96
local key = mission_task_util.makeTaskKey("a_store_harbor_position", "::/mission/tutorial/tutorial.script")
base/content/mission/mission/tutorial/tutorial_story_branch_b.tl:96
local key = mission_task_util.makeTaskKey("b_store_harbor_position", "::/mission/tutorial/tutorial.script")
base/content/mission/mission/tutorial/tutorial_story_util.tl:38
local key = mission_task_util.makeTaskKey(taskKey, "::/mission/tutorial/tutorial.script")
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:123
taskParams = mission_task_util.makeTaskKey("missionEnd", "urbangames_campaign_mission_01::/mission/mission.script"),
… und 15 weitere Dateien.

makeJoinParams(keys : {string}, root : string, showProgress? : boolean) : MissionTaskJoin.Params base/tealdef/mission/mission_task_util.d.tl:50

Aufruf: mission_task_util.makeJoinParams(…)

Hinweise

Baut die Parameter einer Join-Aufgabe, die auf mehrere Aufgaben derselben Story wartet.

Parameter Typ Beschreibung
keys {string} Lokale Aufgabenschlüssel, auf die gewartet wird.
root string Skriptschlüssel der Story.
showProgress? boolean Zeigt den Fortschritt des Joins an.

Rückgabe MissionTaskJoin.Params: Parameter für MissionTaskJoin.

Im Basisspiel verwendet: 37-mal in 19 Dateien

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

taskParams = mission_task_util.makeJoinParams( { "road_stop_2_1", "road_stop_2_2" }, "::/mission/tutorial/tutorial.script", true),
base/content/mission/mission/tutorial/tutorial_story_branch_a.tl:239
taskParams = mission_task_util.makeJoinParams( { "a_line_commercial_assign_1", "a_line_commercial_assign_2" }, "::/mission/tutorial/tutorial.script", true),
base/content/mission/mission/tutorial/tutorial_story_branch_b.tl:249
taskParams = mission_task_util.makeJoinParams( { "b_line_industrial_1", "b_line_industrial_2" }, "::/mission/tutorial/tutorial.script", true),
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:229
taskParams = mission_task_util.makeJoinParams( { "bulldoze" }, "urbangames_campaign_mission_01::/mission/mission.script"),
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story_cutscenes_only.tl:181
taskParams = mission_task_util.makeJoinParams( { "wait" }, "urbangames_campaign_mission_01::/mission/mission.script"),
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:331
taskParams = mission_task_util.makeJoinParams( { "build_first_bypass_dialogue" }, "urbangames_campaign_mission_02::/mission/mission.script"),
… und 13 weitere Dateien.

locationButDistance(entity : Engine.Entity, distance : number) : MissionInterface.PosRadius base/tealdef/mission/mission_task_util.d.tl:51

Aufruf: mission_task_util.locationButDistance(…)

Hinweise

Baut einen Kreis um die Position einer Entität.

Parameter Typ Beschreibung
entity Engine.Entity Entität im Mittelpunkt.
distance number Radius in Metern.

Rückgabe MissionInterface.PosRadius: 2D-Kreis.

disallowAllVehicles(models : {any : string}) : {string : {integer, integer}} base/tealdef/mission/mission_task_util.d.tl:52

Aufruf: mission_task_util.disallowAllVehicles(…)

Hinweise

Ordnet jedem übergebenen Modellnamen {0, nil} zu.

Parameter Typ Beschreibung
models {any : string} Modellnamen.

Rückgabe {string : {integer, integer}}: Modellname -> {0, nil}.

makeBoundingSphereFromEntity(entity : Engine.Entity) : MissionInterface.PosRadius base/tealdef/mission/mission_task_util.d.tl:54

Aufruf: mission_task_util.makeBoundingSphereFromEntity(…)

Hinweise

Baut eine Kugel um die Bounding Box einer Entität (bei Fahrzeugen um den ersten Wagen).

Parameter Typ Beschreibung
entity Engine.Entity Entität, die umschlossen wird.

Rückgabe MissionInterface.PosRadius: Kugel oder nil, wenn die Entität kein Hüllvolumen hat.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_framework/mission_framework_react.tl:120

s = mission_task_util.makeBoundingSphereFromEntity(entity)

mergeBoundingVolumes(entities : {Engine.Entity}, radiusOffset? : number) : MissionInterface.PosRadius base/tealdef/mission/mission_task_util.d.tl:55

Aufruf: mission_task_util.mergeBoundingVolumes(…)

Hinweise

Baut eine Kugel, die die Bounding Boxes mehrerer Entitäten umschließt.

Parameter Typ Beschreibung
entities {Engine.Entity} Entitäten, die umschlossen werden. Fehlende werden übersprungen.
radiusOffset? number Zusätzlicher Radius in Metern.

Rückgabe MissionInterface.PosRadius: Kugel oder eine leere Tabelle, wenn keine Entität ein Hüllvolumen hat.

Im Basisspiel verwendet: 4-mal in 2 Dateien

mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:205

return mission_task_util.mergeBoundingVolumes(validEdges, 80)
mods/release/urbangames_campaign_mission_05/content/mission/mission/mission_story.tl:1425
oil_area = { location = mission_task_util.mergeBoundingVolumes(table_util.concatenate(params.entityList_red, params.entityList_yellow)) }

mergeAreas(areas : {MissionInterface.PosRadius}, radiusOffset? : number) : MissionInterface.PosRadius base/tealdef/mission/mission_task_util.d.tl:56

Aufruf: mission_task_util.mergeAreas(…)

Hinweise

Baut eine Kugel, die mehrere Bereiche umschließt.

Parameter Typ Beschreibung
areas {MissionInterface.PosRadius} Bereiche, die umschlossen werden.
radiusOffset? number Zusätzlicher Radius in Metern.

Rückgabe MissionInterface.PosRadius: Umschließende Kugel oder nil bei leerer Liste.

Im Basisspiel verwendet: 6-mal in 3 Dateien

base/content/mission/mission/mission_framework/mission_framework_react.tl:129

result.location = mission_task_util.mergeAreas(boundingSpheres, 200.0)
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:626
links = { pos_street = { location = mission_task_util.mergeAreas({params.connectStreets_1_1_zone, params.connectStreets_1_2_zone }, 20) } },
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:1087
entity_tunnel_loop = { location = mission_task_util.mergeAreas(table_util.concatenate(params.zonesToConnect1, params.zonesToConnect2), 40) },

extractGenericParams(taskKey : string, getTaskData : function(string) : StaticTaskInfo) : MissionInterface.GenericTaskParams base/tealdef/mission/mission_task_util.d.tl:58

Aufruf: mission_task_util.extractGenericParams(…)

Hinweise

Wandelt die statische Beschreibung einer Aufgabe in ihre generischen Parameter um (Regellisten werden zu Maps).

Parameter Typ Beschreibung
taskKey string Lokaler Aufgabenschlüssel.
getTaskData function(string) : StaticTaskInfo Aufgabendaten-Lookup der Story.

Rückgabe MissionInterface.GenericTaskParams: Generische Parameter oder nil bei einer unbekannten Aufgabe.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_boot_util.tl:88

local insert = mission_task_util.extractGenericParams(taskKey, getTaskData)

getTaskInfo(taskKey : string, ctx : MissionInterface.TaskContext<any, any>, getTaskData : function(string) : StaticTaskInfo) : MissionInterface.TaskInfo base/tealdef/mission/mission_task_util.d.tl:59

Aufruf: mission_task_util.getTaskInfo(…)

Hinweise

Gibt die statische Aufgabeninfo einer Aufgabe zurück, ergänzt um den Fortschritt und den Fortschritt der Teilaufgaben zur Laufzeit.

Parameter Typ Beschreibung
taskKey string Lokaler Aufgabenschlüssel.
ctx MissionInterface.TaskContext<any, any> Kontext der Aufgabe.
getTaskData function(string) : StaticTaskInfo Aufgabendaten-Lookup der Story.

Rückgabe MissionInterface.TaskInfo: Aufgabeninfo oder nil, wenn die Aufgabe keine hat.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_boot_util.tl:116

return mission_task_util.getTaskInfo(taskKey, ctx, getTaskData)

getNonBulldozableEntitiesFromParams(params : table) : {Engine.Entity} base/tealdef/mission/mission_task_util.d.tl:61

Aufruf: mission_task_util.getNonBulldozableEntitiesFromParams(…)

Hinweise

Sammelt Entitäten aus einer Parametertabelle einer Mission anhand des Schlüsselpräfixes (Werte entity_*, Listen entityList_*, Map-Schlüssel entityMap_*).

Parameter Typ Beschreibung
params table Parametertabelle der Mission.

Rückgabe {Engine.Entity}: Gesammelte Entitäten.

Im Basisspiel verwendet: 8-mal in 8 Dateien

mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:129

local nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table)
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:277
nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table),
mods/release/urbangames_campaign_mission_03/content/mission/mission/mission_story.tl:180
nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table),
mods/release/urbangames_campaign_mission_04/content/mission/mission/mission_story.tl:118
nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table),
mods/release/urbangames_campaign_mission_05/content/mission/mission/mission_story.tl:115
nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table),
mods/release/urbangames_campaign_mission_06/content/mission/mission/mission_story.tl:456
nonBulldozableEntities = mission_task_util.getNonBulldozableEntitiesFromParams(params as table),
… und 2 weitere Dateien.

MissionTaskUtil.FollowupDef

record base/tealdef/mission/mission_task_util.d.tl:7

record FollowupDef

Hinweise

Eine Aufgabe, die nach dem Erledigen einer anderen Aufgabe (oder beim Boot) hinzukommt, auf Wunsch nur unter einer Bedingung.

Beispiel

followup = {
    { taskKey = "find_alligators_end" },
    {
        taskKey = "task_alligators_medal",
        condition = function(ctx : MissionInterface.TaskContext<any, any>) : boolean
            return (ctx.guiTimeSeconds - ctx.genericState.guiSpawnTime) < 30
        end,
    },
},
Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/mission/mission/mission_boot_util.tl:10

bootTasks : { MissionTaskUtil.FollowupDef },

Felder

Name Typ Beschreibung
taskKey string Aufgabenschlüssel innerhalb der Story.

Funktionen

condition(MissionInterface.TaskContext<any, any>, function(string) : MissionInterface.TaskState<any, any>) base/tealdef/mission/mission_task_util.d.tl:9

Hinweise

Optionale Bedingung. Die Aufgabe kommt nur hinzu, wenn sie true zurückgibt.

Parameter Typ Beschreibung
#1 MissionInterface.TaskContext<any, any> Kontext der erledigten Aufgabe.
#2 function(string) : MissionInterface.TaskState<any, any> Funktion, die den Zustand einer anderen Aufgabe über deren lokalen Aufgabenschlüssel liefert.

MissionTaskUtil.StaticTaskInfo

record base/tealdef/mission/mission_task_util.d.tl:12

record StaticTaskInfo

Hinweise

Statische Beschreibung einer Aufgabe in einer Story. Sie nennt das Skript, das die Aufgabe ausführt, ihre Parameter, die Anzeige in der GUI und die folgenden Aufgaben.

Details

Die Aufgabendaten-Factory der Story liefert sie für jeden Aufgabenschlüssel. Die Felder außer taskScript, taskParams, taskInfo, guideInfo und followup werden zu den MissionInterface.GenericTaskParams der Aufgabe (visible/invisible/enabled/disabled werden in Regel-Maps umgewandelt).

Beispiel

-- urbangames_campaign_mission_01 mission_story.tl
if taskKey == "find_alligators_end" then
    return {
        taskScript = page as MissionInterface.TaskScript<any, any>,
        taskInfo = {
            name = _("MISSION_01_TASK_FIND_ALLIGATORS_END_NAME"),
            options = { { text = _("MISSION_01_TASK_FIND_ALLIGATORS_END_BUTTON_1"), key = "finish" } },
        },
        followup = {
            { taskKey = "build_path_task" },
            { taskKey = "build_path_task_cutscene" },
        },
        highlightRules = { {"menu.mission.task-button", "Square"} },
        notificationFilter = { ["::/landmarks/landmarks_notification.script"] = true },
    }
end
Im Basisspiel verwendet: 50-mal in 42 Dateien

base/content/mission/mission/guide_system/main/guide_system.tl:3

local taskDataFactory = ug_require "guide_system_story.tl" as function(taskKey : string) : MissionTaskUtil.StaticTaskInfo
base/content/mission/mission/guide_system/main/guide_system_story.tl:4
return function(taskKey : string) : MissionTaskUtil.StaticTaskInfo
base/content/mission/mission/mission_boot_util.tl:6
local type GetTaskDataFn = function(taskKey : string) : MissionTaskUtil.StaticTaskInfo
base/content/mission/mission/mission_task_util.tl:37
function mission_task_util.extractGenericParams(taskKey : string, getTaskData : function(string) : MissionTaskUtil.StaticTaskInfo) : MissionInterface.GenericTas
base/content/mission/mission/tutorial/guide_system/guide_system.tl:3
local taskDataFactory = ug_require "::/mission/tutorial/guide_system/guide_system_story.tl" as function(taskKey : string) : MissionTaskUtil.StaticTaskInfo
base/content/mission/mission/tutorial/guide_system/guide_system_story.tl:12
return function(taskKey : string) : MissionTaskUtil.StaticTaskInfo
… und 36 weitere Dateien.

Felder

Name Typ Beschreibung
isBonusTask boolean Kennzeichnet die Aufgabe als Bonusmission.
taskScript MissionInterface.TaskScript<any, any> Skript, das die Aufgabe umsetzt (einer der Aufgabentypen unter mission/tasks/** oder ein eigener).
taskKey string Aufgabenschlüssel.
taskParams any Parameter des Aufgabenskripts (sein Params-Record).
medals {string : boolean} Medaillen-IDs, die vergeben sind, solange diese Aufgabe existiert (zum Beispiel { MISSION_01_MEDAL_1 = true }).
stars {string : boolean} Stern-IDs und ihr Zustand.
visible {string} GUI-Klassen, die sichtbar sind, solange die Aufgabe offen ist.
invisible {string} GUI-Klassen, die ausgeblendet sind, solange die Aufgabe offen ist.
enabled {string} GUI-IDs/-Tags, die aktiviert sind, solange die Aufgabe offen ist.
disabled {string} GUI-IDs/-Tags, die deaktiviert sind, solange die Aufgabe offen ist (zum Beispiel "menu.construction.rail").
highlightRules {{string, MissionInterface.HighlightStyle}} Liste von Paaren { GUI id/tag, highlight style }.
taskInfo MissionInterface.TaskInfo Only to be used in a mission
guideInfo MissionInterface.GuideInfo Only to be used in the guide system
omitNotificationOnComplete boolean Unterdrückt die Benachrichtigung beim Erledigen.
disableGuideSystem boolean Hält das Spielführer-System inaktiv, solange die Aufgabe offen ist.
startSoundtrack string Musiktrack, der beim Öffnen der Aufgabe startet.
soundtrack MissionInterface.MissionSoundtrack Trackliste, die läuft, solange die Aufgabe offen ist.
playlistOverride ResName Playlist, die gilt, solange die Aufgabe offen ist.
allowBuyVehicles {string : integer} (modelname -> count, minCount)
allowBuyVehicleGroups {string : {{string}, integer}} id, -> modelnames, count
lockedVehicles {Engine.Entity} entity ids that may not be sold
followup {FollowupDef} Aufgaben, die beim Erledigen dieser Aufgabe hinzukommen.
vehicleFilter GameContext.Filters.VehicleFilter Filter für den Fahrzeugladen, solange die Aufgabe offen ist.
notificationFilter {string : boolean} Benachrichtigungstypen, die ausgeblendet sind, solange die Aufgabe offen ist.
menuFilter GameContext.Filters.MenuFilter Menüeinträge, die aktiviert oder deaktiviert sind, solange die Aufgabe offen ist.
selectorEntityFilter {Engine.Entity : boolean} Filter für die Auswahl von Entitäten, solange die Aufgabe offen ist.
disableFeatures {DisableFeatures : boolean} GUI-Funktionen, die abgeschaltet sind, solange die Aufgabe offen ist.
requiredTaskToComplete string taskkey <- mission_task_util.makeTaskKey
allowSimultaneousUiTasks {string} taskkey <- mission_task_util.makeTaskKey
spawnGuide {string} Skript-Events, die beim Hinzufügen der Aufgabe gesendet werden (zum Beispiel "spawn-camera-guide").
showInHistory boolean Führt die Aufgabe nach dem Erledigen weiter auf und sendet eine Benachrichtigung.
suppressAutoOpen boolean Verhindert, dass sich das Missionsfenster für diese Aufgabe automatisch öffnet.
financialReward integer Geldbetrag in Spielwährung, der beim Erledigen der Aufgabe ausgezahlt wird.