Zum Inhalt

mission_interface

Quelle: base/tealdef/mission/mission_framework/mission_interface.d.tl

Hinweise

Kerntypen des Missions-Frameworks, die Missionen, Tutorial und Spielführer-System gemeinsam nutzen. Das Modul definiert Aufgaben-Skripte, den Aufgabenzustand, die Aufgabeninfo im Missionsfenster und die APIs, die an Aufgaben-Callbacks übergeben werden.

MissionInterface

record global base/tealdef/mission/mission_framework/mission_interface.d.tl:3

global record MissionInterface

Hinweise

Namensraum der Kerntypen des Missions-Frameworks. Eine Mission ist eine Liste von Aufgaben. Jede Aufgabe läuft über ein TaskScript und wird durch statische Daten beschrieben.

Details

So greifen die Teile ineinander (nach mission/mission_sim.script.tl und den Kampagnen-Mods):

  1. Ein Mod registriert eine generische Ressource vom Typ missiontask_boot (Mission), tutorial_boot (Tutorial) oder guide_system_boot (Spielführer-System). Ihr data ist ein BootstrapDesc, dessen bootstrapScriptFn auf die Funktion spawnBootTasks eines Moduls zeigt, das mit MissionBootUtil.makeMission / makeGuide gebaut wurde.
  2. Das Game-Script ::mission/mission.gs (oder das Skript des Spielführer-Systems) ruft jede Bootstrap-Funktion einmal je Spielstand auf (gemerkt in MissionState.bootTypes). Sie fügt die Boot-Aufgaben hinzu.
  3. Jede Aufgabe wird durch eine TaskConfig identifiziert. Das Framework ermittelt ihre TaskVTable über getVTableScriptFn. Diese Funktion liefert das TaskScript der Aufgabe und ihre statischen Parameter aus der Aufgabendaten-Factory der Story (MissionTaskUtil.StaticTaskInfo).
  4. Bei jedem Update ruft das Framework onUpdate und isComplete jeder offenen Aufgabe auf. Ist eine Aufgabe erledigt, läuft onComplete, und ihre followup-Aufgaben werden hinzugefügt.

Der Zustand liegt im Zustand des Game-Scripts (MissionState). Alles in StaticTaskInfo (auch Funktionen) wird aus dem Story-Code neu erzeugt und nie gespeichert.

Beispiel

-- mission.res.lua of urbangames_campaign_mission_01
function data()
return {
    type = "missiontask_boot",
    data = {
        bootstrapScriptFn = "urbangames_campaign_mission_01::/mission/mission.script@mission.spawnBootTasks",
        bootstrapScriptFnParams = nil,
    }
}
end

-- mission.script.lua
local mission = require "mission.tl"
function data()
    return { mission = mission }
end

MissionInterface.GameScriptMode

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:4

enum GameScriptMode

Hinweise

Welche Framework-Instanz ein Game-Script ausführt, entweder die Mission (Missionen und Tutorial) oder das Spielführer-System.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:181

local trySpawnBootstrap = function(gameScriptMode : MissionInterface.GameScriptMode, scriptState : GameScriptState<MissionInterface.MissionState>, state : Missi

Wert Beschreibung
"GuideSystem" Instanz des Spielführer-Systems. Startet aus Ressourcen vom Typ guide_system_boot und läuft nur, wenn Spielführer in der App-Konfiguration aktiviert sind.
"Mission" Missionsinstanz. Startet aus Ressourcen vom Typ missiontask_boot oder, wenn keine Mission vorhanden ist, aus tutorial_boot.

MissionInterface.CaptureParams

record base/tealdef/mission/mission_framework/mission_interface.d.tl:8

record CaptureParams

Hinweise

Parameter, die die Game-Script-Ressource (mission.gs.lua) an die Update- und Event-Skripte des Frameworks übergibt.

Im Basisspiel verwendet: 3-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:592

local params = captureParams as MissionInterface.CaptureParams

Felder

Name Typ Beschreibung
gameScriptMode GameScriptMode Welche Instanz des Frameworks dieses Game-Script ist.

MissionInterface.MissionSavegameUtil

record base/tealdef/mission/mission_framework/mission_interface.d.tl:12

record MissionSavegameUtil

Laden: local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionSavegameUtil

Hinweise

Helfer, die einen Missions-Spielstand vorbereiten.

Im Basisspiel verwendet: 9-mal in 9 Dateien

base/content/mission/mission/mission_savegame_util.tl:3

local mission_savegame_util : MissionInterface.MissionSavegameUtil = {}
mods/release/urbangames_campaign_mission_01/content/init/init/init.script.tl:1
local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionInterface.MissionSavegameUtil
mods/release/urbangames_campaign_mission_02/content/init/init/init.script.tl:1
local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionInterface.MissionSavegameUtil
mods/release/urbangames_campaign_mission_03/content/init/init/init.script.tl:1
local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionInterface.MissionSavegameUtil
mods/release/urbangames_campaign_mission_04/content/init/init/init.script.tl:1
local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionInterface.MissionSavegameUtil
mods/release/urbangames_campaign_mission_05/content/init/init/init.script.tl:1
local mission_savegame_util = ug_require "::/mission/mission_savegame_util.tl" as MissionInterface.MissionSavegameUtil
… und 3 weitere Dateien.

Funktionen

updateTownBuildings() base/tealdef/mission/mission_framework/mission_interface.d.tl:13

Aufruf: mission_savegame_util.updateTownBuildings(…)

Hinweise

Baut jede Konstruktion mit Stadtgebäuden neu, damit sie aus ihren aktuellen Ressourcen aktualisiert werden.

Im Basisspiel verwendet: 8-mal in 8 Dateien

mods/release/urbangames_campaign_mission_01/content/init/init/init.script.tl:16

mission_savegame_util.updateTownBuildings()
mods/release/urbangames_campaign_mission_02/content/init/init/init.script.tl:16
mission_savegame_util.updateTownBuildings()
mods/release/urbangames_campaign_mission_03/content/init/init/init.script.tl:56
mission_savegame_util.updateTownBuildings()
mods/release/urbangames_campaign_mission_04/content/init/init/init.script.tl:16
mission_savegame_util.updateTownBuildings()
mods/release/urbangames_campaign_mission_05/content/init/init/init.script.tl:16
mission_savegame_util.updateTownBuildings()
mods/release/urbangames_campaign_mission_06/content/init/init/init.script.tl:16
mission_savegame_util.updateTownBuildings()
… und 2 weitere Dateien.

updateMaintenanceCost() base/tealdef/mission/mission_framework/mission_interface.d.tl:14

Aufruf: mission_savegame_util.updateMaintenanceCost(…)

Hinweise

Setzt die Unterhaltskosten jeder Entität zurück, die welche hat, und entfernt den Besitzer von Straßen- und Gleiskanten, die zu keiner Konstruktion gehören.

Im Basisspiel verwendet: 8-mal in 8 Dateien

mods/release/urbangames_campaign_mission_01/content/init/init/init.script.tl:19

mission_savegame_util.updateMaintenanceCost()
mods/release/urbangames_campaign_mission_02/content/init/init/init.script.tl:19
mission_savegame_util.updateMaintenanceCost()
mods/release/urbangames_campaign_mission_03/content/init/init/init.script.tl:65
mission_savegame_util.updateMaintenanceCost()
mods/release/urbangames_campaign_mission_04/content/init/init/init.script.tl:19
mission_savegame_util.updateMaintenanceCost()
mods/release/urbangames_campaign_mission_05/content/init/init/init.script.tl:19
mission_savegame_util.updateMaintenanceCost()
mods/release/urbangames_campaign_mission_06/content/init/init/init.script.tl:19
mission_savegame_util.updateMaintenanceCost()
… und 2 weitere Dateien.

updateIndustriesPlayerOwned(except? : {Engine.Entity}) base/tealdef/mission/mission_framework/mission_interface.d.tl:15

Aufruf: mission_savegame_util.updateIndustriesPlayerOwned(…)

Hinweise

Entfernt den Besitzer jeder Industriekonstruktion (setzt den Spieler auf -1).

Parameter Typ Beschreibung
except? {Engine.Entity} Industrie-Entitäten, die unverändert bleiben.
Im Basisspiel verwendet: 8-mal in 8 Dateien

mods/release/urbangames_campaign_mission_01/content/init/init/init.script.tl:22

mission_savegame_util.updateIndustriesPlayerOwned()
mods/release/urbangames_campaign_mission_02/content/init/init/init.script.tl:22
mission_savegame_util.updateIndustriesPlayerOwned()
mods/release/urbangames_campaign_mission_03/content/init/init/init.script.tl:68
mission_savegame_util.updateIndustriesPlayerOwned()
mods/release/urbangames_campaign_mission_04/content/init/init/init.script.tl:22
mission_savegame_util.updateIndustriesPlayerOwned()
mods/release/urbangames_campaign_mission_05/content/init/init/init.script.tl:22
mission_savegame_util.updateIndustriesPlayerOwned()
mods/release/urbangames_campaign_mission_06/content/init/init/init.script.tl:22
mission_savegame_util.updateIndustriesPlayerOwned()
… und 2 weitere Dateien.

MissionInterface.MissionLegacyUtil

record base/tealdef/mission/mission_framework/mission_interface.d.tl:18

record MissionLegacyUtil

Laden: local mission_legacy_util = ug_require "::/mission/mission_framework/mission_legacy_util.tl" as MissionLegacyUtil

Hinweise

Aktualisiert einen Missionszustand, den eine ältere Spielversion gespeichert hat.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/mission/mission/mission_framework/mission_legacy_util.tl:4

local mission_legacy_util : MissionInterface.MissionLegacyUtil = {}
base/content/mission/mission/mission_sim.script.tl:4
local mission_legacy_util = ug_require "/mission/mission_framework/mission_legacy_util.tl" as MissionInterface.MissionLegacyUtil

Felder

Name Typ Beschreibung
currentVersion integer Aktuelle Version des Aufbaus des Missionszustands (im Basisspiel 4). 1-mal im Basisspiel verwendet

Funktionen

updateLegacyState(missionState : MissionState) base/tealdef/mission/mission_framework/mission_interface.d.tl:20

Aufruf: mission_legacy_util.updateLegacyState(…)

Hinweise

Ergänzt Felder, die in älteren Zuständen fehlen, entfernt Aufgaben, deren statische Daten nicht mehr existieren (needTaskDeletion), ruft handleLegacy jedes Aufgabenskripts auf und setzt version auf currentVersion.

Parameter Typ Beschreibung
missionState MissionState Missionszustand, der direkt aktualisiert wird.
Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:867

mission_legacy_util.updateLegacyState(missionState)

MissionInterface.TaskVTable

record base/tealdef/mission/mission_framework/mission_interface.d.tl:23

record TaskVTable<S, P>

Hinweise

Nachschlagetabelle je Aufgabe, über die das Framework das Skript, die statischen Parameter und die Callbacks einer Aufgabe erreicht. MissionBootUtil baut sie aus der StaticTaskInfo der Story.

Im Basisspiel verwendet: 8-mal in 2 Dateien

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

spawnFn : SpawnFn) : MissionInterface.TaskVTable<any, any>
base/content/mission/mission/mission_framework/mission_framework_util.tl:5
local vtableCache : {string : MissionInterface.TaskVTable<any, any>} = {}

Funktionen

getGenericParams() : GenericTaskParams base/tealdef/mission/mission_framework/mission_interface.d.tl:24

Hinweise

Gibt die Framework-Parameter der Aufgabe zurück (Filter, Regeln, Medaillen, Belohnungen usw.).

Rückgabe GenericTaskParams: Generische Parameter, je Aufgabenschlüssel zwischengespeichert.

getSpecificParams() : P base/tealdef/mission/mission_framework/mission_interface.d.tl:25

Hinweise

Gibt die Parameter zurück, die vom Aufgabentyp abhängen (StaticTaskInfo.taskParams).

Rückgabe P: Der Params-Wert des Skripttyps der Aufgabe.

onComplete(TaskContext<S, P>, MissionTaskApi) base/tealdef/mission/mission_framework/mission_interface.d.tl:27

Hinweise

Wird vom Framework aufgerufen, nachdem eine Aufgabe erledigt ist. Das Boot-Util fügt darüber die followup-Aufgaben hinzu.

Parameter Typ Beschreibung
#1 TaskContext<S, P> Kontext der erledigten Aufgabe.
#2 MissionTaskApi API zum Hinzufügen weiterer Aufgaben.

getTaskInfo(TaskContext<S, P>) : TaskInfo base/tealdef/mission/mission_framework/mission_interface.d.tl:28

Hinweise

Gibt zurück, was das Missionsfenster für die Aufgabe anzeigt (nur bei Missionen).

Parameter Typ Beschreibung
#1 TaskContext<S, P> Kontext der Aufgabe.

Rückgabe TaskInfo: Die statische taskInfo, ergänzt um den Fortschritt aus dem generischen Zustand der Aufgabe.

getGuideInfo(TaskContext<S, P>) : GuideInfo base/tealdef/mission/mission_framework/mission_interface.d.tl:29

Hinweise

Gibt den Hinweis zurück, der für eine Spielführer-Aufgabe angezeigt wird (nur im Spielführer-System).

Parameter Typ Beschreibung
#1 TaskContext<S, P> Kontext der Aufgabe.

Rückgabe GuideInfo: Die statische guideInfo der Aufgabe.

getTaskScript() : TaskScript<S, P> base/tealdef/mission/mission_framework/mission_interface.d.tl:30

Hinweise

Gibt das Skript zurück, das die Aufgabe umsetzt.

Rückgabe TaskScript<S, P>: Aufgabenskript (StaticTaskInfo.taskScript).

needTaskDeletion() : boolean base/tealdef/mission/mission_framework/mission_interface.d.tl:32

Hinweise

Gibt an, ob die Aufgabe in der Story nicht mehr existiert (ihre statischen Daten sind nil). Solche gespeicherten Aufgaben werden beim Laden entfernt.

Rückgabe boolean: true, wenn die Aufgabe gelöscht werden soll.

MissionInterface.TaskConfig

record base/tealdef/mission/mission_framework/mission_interface.d.tl:35

record TaskConfig

Hinweise

Gespeicherte Identifikation einer Aufgabe. Sie nennt die Funktion, die ihre Vtable baut, das Argument dafür und den eindeutigen Schlüssel der Aufgabe.

Details

MissionBootUtil erzeugt sie als { getVTableScriptFn = scriptKey .. "@mission.getVTable", getVTableScriptFnParams = taskKey, uniqueKey = MissionTaskUtil.makeTaskKey(taskKey, scriptKey) }.

Im Basisspiel verwendet: 5-mal in 3 Dateien

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

local makeTaskConfig = function(key : string) : MissionInterface.TaskConfig
base/content/mission/mission/mission_framework/mission_framework_util.tl:7
function mission_framework_util.getVTable(config : MissionInterface.TaskConfig) : MissionInterface.TaskVTable<any, any>
base/content/mission/mission/mission_sim.script.tl:88
local addTask = function<TaskSpecificState>(state : MissionInterface.MissionState, currentGameTime : number, specific : TaskSpecificState, taskConfig : MissionI

Felder

Name Typ Beschreibung
getVTableScriptFn string Skriptfunktion ("<script>@<path.to.fn>"), die mit getVTableScriptFnParams und uniqueKey aufgerufen wird und die TaskVTable der Aufgabe liefert.
getVTableScriptFnParams any Erstes Argument für getVTableScriptFn. Das Boot-Util übergibt hier den Aufgabenschlüssel aus der Story.
uniqueKey string key created as bootstrapper"||"unique-key-inside-bootstrapper

MissionInterface.TaskProgressData

record base/tealdef/mission/mission_framework/mission_interface.d.tl:46

record TaskProgressData

Hinweise

Fortschritt einer Aufgabe (oder Teilaufgabe), wie ihn das Missionsfenster anzeigt. Welche Felder gesetzt sind, bestimmt die Darstellung.

Details

Reihenfolge in MissionFrameworkReactUtil.makeTaskProgressItem: zuerst bool (Häkchen oder Kreuz, eventuell neben einem Zähler), dann townRatingKey (Bewertungs-Icon, braucht cargoTypeRes, counter und entity), dann counter (mit Güter-Icon bei cargoTypeRes, als „Text aktuell/max“, wenn max gesetzt ist), dann percentage, text, dynamicText. iconPath setzt ein Icon vor das Ergebnis.

Im Basisspiel verwendet: 3-mal in 1 Datei

base/content/mission/mission/mission_framework/mission_framework_react_util.tl:29

local function makeCargoIconProgress(progress : MissionInterface.TaskProgressData, perYear? : boolean) : TreeNodeId

Felder

Name Typ Beschreibung
iconPath string Pfad eines Icons, das vor dem Fortschritt steht.
cargoTypeRes ResName Gütertyp-Ressource (zum Beispiel "::/cargos/fish/fish.cargo"), deren Icon neben dem Zähler erscheint.
bool boolean Erledigt-Flag, dargestellt als Häkchen oder Kreuz.
text string Beschriftung des Fortschritts (zum Beispiel „Trees Removed“, im Spiel „Entfernte Bäume“). Ein statischer text aus der Aufgabeninfo hat Vorrang vor dem zur Laufzeit gesetzten.
dynamicText string Zur Laufzeit berechneter Text. Erscheint, wenn keine andere Fortschrittsform greift.
counter Counter Zählerstand auf dem Weg zu einem Zielwert.
percentage number range: 0.0 - 1.0
progressBar boolean
style Style
townRatingKey TownRatingKey Stadtbewertung, deren Icon angezeigt wird (braucht entity, cargoTypeRes und counter).
entity Engine.Entity Stadt-Entität für townRatingKey.

MissionInterface.TaskProgressData.Counter

record base/tealdef/mission/mission_framework/mission_interface.d.tl:47

record Counter

Hinweise

Ganzzahliger Fortschrittszähler.

Felder

Name Typ Beschreibung
current integer Aktueller Zählerstand.
max integer Zielwert. Bei nil wird nur der aktuelle Stand angezeigt.

MissionInterface.TaskProgressData.Style

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:51

enum Style

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Wert Beschreibung
"Good"
"Neutral"
"Bad"

MissionInterface.BootstrapDesc

record base/tealdef/mission/mission_framework/mission_interface.d.tl:70

record BootstrapDesc

Hinweise

data einer generischen Ressource vom Typ missiontask_boot, tutorial_boot oder guide_system_boot: die Funktion, die die ersten Aufgaben erzeugt.

Beispiel

function data()
return {
    type = "guide_system_boot",
    data = {
        bootstrapScriptFn = "urbangames_campaign_mission_01::/guide_system/guide_system.script@guide_system.spawnBootTasks",
        bootstrapScriptFnParams = nil,
    }
}
end
Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:192

local bootstrapDesc = gr.data as MissionInterface.BootstrapDesc

Felder

Name Typ Beschreibung
bootstrapScriptFn string Skriptfunktion ("<script>@<path.to.fn>"), die einmal je Spielstand als fn(bootstrapScriptFnParams, nil, missionTaskApi) aufgerufen wird.
bootstrapScriptFnParams string Erstes Argument, das an bootstrapScriptFn übergeben wird.

MissionInterface.MissionSoundtrack

record base/tealdef/mission/mission_framework/mission_interface.d.tl:75

record MissionSoundtrack

Hinweise

Trackliste, die eine Aufgabe in den Musikplayer legt, solange sie offen ist.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:26

currentSoundtrack : MissionInterface.MissionSoundtrack

Felder

Name Typ Beschreibung
mode AddMode the mode to use when adding the tracklist to the music player default: "set"
enableRepeat boolean when true, repeats the entire tracklist default: "true"
tracks {Track} the list of tracks to play

MissionInterface.MissionSoundtrack.Track

record base/tealdef/mission/mission_framework/mission_interface.d.tl:77

record Track

describe a single track of the tracklist

Hinweise

Ein Track einer Trackliste.

Felder

Name Typ Beschreibung
name string the name of the track, this is optional
file string the path to the track file, this is required
enableRepeat boolean when true, repeats a single track default: "false"

MissionInterface.MissionSoundtrack.AddMode

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:88

enum AddMode

a mode that controls how a tracklist is added to the music player

Wert Beschreibung
"add" pushes the given tracklist on top of the current tracklist; when the tracklist ends, resumes the previous tracklist.
"set" replaces the current tracklist with the given tracklist.

MissionInterface.HighlightStyle

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:105

enum HighlightStyle

Hinweise

Form der Hervorhebung um ein GUI-Element (api.gui.HighlightStyle).

Im Basisspiel verwendet: 5-mal in 3 Dateien

base/content/mission/mission/mission_sim.script.tl:17

knownHighlightOverride : {string : MissionInterface.HighlightStyle}
base/content/mission/mission/mission_task_util.tl:42
local highlightRules : {string : MissionInterface.HighlightStyle} = {}
base/content/mission/mission/tasks/task_decorator.tl:321
getHighlightRules = function(ctx : MissionInterface.TaskContext<DecoratorState<S, GS>, DecoratorParam<P, GP>>) : { string : MissionInterface.HighlightStyle }

Wert Beschreibung
"Circle" Kreisförmige Hervorhebung.
"Square" Rechteckige Hervorhebung.
"Mask" Hervorhebung als Maske.

MissionInterface.GenericTaskParams

record base/tealdef/mission/mission_framework/mission_interface.d.tl:111

record GenericTaskParams

Hinweise

Framework-Parameter einer Aufgabe, die gelten, solange die Aufgabe offen ist. MissionTaskUtil.extractGenericParams baut sie aus MissionTaskUtil.StaticTaskInfo.

Im Basisspiel verwendet: 6-mal in 3 Dateien

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

: GetTaskDataFn, {string : MissionInterface.GenericTaskParams}, SpawnFn
base/content/mission/mission/mission_framework/mission_framework_react.tl:23
genericParams : MissionInterface.GenericTaskParams
base/content/mission/mission/mission_task_util.tl:37
function mission_task_util.extractGenericParams(taskKey : string, getTaskData : function(string) : MissionTaskUtil.StaticTaskInfo) : MissionInterface.GenericTas

Felder

Name Typ Beschreibung
isBonusTask boolean Kennzeichnet die Aufgabe als Bonusmission (Fenstertitel „Bonus Mission“, im Spiel „Bonusmission“).
medals {string : boolean} Medaillen-IDs (aus info.mission.lua), die im Benutzerprofil als verdient vermerkt werden, solange die Aufgabe existiert.
stars {string : boolean} Stern-IDs (aus info.mission.lua) und ihr Zustand, im Benutzerprofil vermerkt.
visibilityRules {string : boolean} GUI-Elementklasse -> Sichtbarkeitsflag. Wird mit api.gui.byId.setVisibilityByClass angewendet, solange die Aufgabe offen ist.
enableRules {string : boolean} GUI-Element-ID/-Tag -> Aktiviert-Flag, solange die Aufgabe offen ist.
highlightRules {string : HighlightStyle} GUI-Element-ID/-Tag -> Hervorhebungsstil, solange die Aufgabe offen ist.
omitNotificationOnComplete boolean Unterdrückt die Benachrichtigung „Aufgabe erledigt“ für eine Aufgabe, die im Verlauf angezeigt wird.
startSoundtrack string Musiktrack, der beim Öffnen der Aufgabe mit api.gui.musicPlayer.playTrack startet.
soundtrack MissionSoundtrack Trackliste, die im Musikplayer liegt, solange die Aufgabe offen ist.
playlistOverride ResName Playlist-Ressource, die die Musik-Playlist ersetzt, solange die Aufgabe offen ist.
disableGuideSystem boolean Kennzeichnet die Aufgabe als eine, während der das Spielführer-System inaktiv bleibt (Aufgaben für Zwischensequenzen und Dialoge setzen das).
allowBuyVehicles {string : integer} todo, also enable accounting for existing vehicles Fahrzeugmodell -> Höchstzahl, die der Spieler besitzen darf. Setzt eine offene Aufgabe diesen Wert, lassen sich nur die aufgeführten Modelle kaufen.
allowBuyVehicleGroups {string : {{string}, integer}} id, -> modelnames, count Gruppen-ID -> { model names, count }.
lockedVehicles {Engine.Entity} entity ids that may not be sold Fahrzeug-Entitäten, die nicht verkauft werden dürfen.
notificationFilter {string : boolean} Benachrichtigungstypen (Skriptpfade), 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.
vehicleFilter GameContext.Filters.VehicleFilter Fahrzeuge, die im Fahrzeugladen aktiviert oder deaktiviert sind, solange die Aufgabe offen ist.
selectorEntityFilter {Engine.Entity : boolean} Entitäten, die in der Welt ausgewählt werden dürfen (oder nicht), solange die Aufgabe offen ist.
disableFeatures {DisableFeatures : boolean} GUI-Funktionen, die abgeschaltet sind, solange die Aufgabe offen ist (zum Beispiel Layers, HudIconMaster).
spawnGuide {string} Skript-Events, die beim Hinzufügen der Aufgabe gesendet werden. Hat die Aufgabe eine gesprochene Anweisung, warten sie, bis diese startet (höchstens 25 s).
requiredTaskToComplete string taskkey <- mission_task_util.makeTaskKey Eindeutiger Schlüssel (MissionTaskUtil.makeTaskKey) einer Aufgabe, die erledigt sein muss, bevor diese erledigt werden kann.
allowSimultaneousUiTasks {string} taskkey <- mission_task_util.makeTaskKey Eindeutige Schlüssel der Aufgaben, deren onGuiKickOff laufen darf, während die UI dieser Aufgabe (Zwischensequenz, Dialog) läuft.
financialReward integer Geldbetrag in Spielwährung, der beim Erledigen der Aufgabe als Einnahme gebucht wird. Dazu erscheint eine Benachrichtigung.
showInHistory boolean Behält die Aufgabe nach dem Erledigen im Missionsfenster und sendet eine Benachrichtigung.
showInGuiWithoutName boolean Zeigt die Aufgabe auch ohne Namen im Missionsfenster.
suppressAutoOpen boolean Verhindert, dass sich das Missionsfenster für diese Aufgabe automatisch öffnet.

MissionInterface.GenericTaskState

record base/tealdef/mission/mission_framework/mission_interface.d.tl:145

record GenericTaskState

Hinweise

Vom Framework verwalteter Zustand einer Aufgabe, der mit der Mission gespeichert wird.

Im Basisspiel verwendet: 1-mal in 1 Datei

mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/observe_drilling.tl:8

local function hasInstructionsToBePlayed(taskState : MissionInterface.GenericTaskState) : boolean

Felder

Name Typ Beschreibung
uid string Laufzeit-ID "<taskScriptName>#<n>". Unter dieser Event-ID empfängt die Aufgabe auch ihre eigenen Events.
config TaskConfig Gespeicherte Identifikation der Aufgabe.
acceptedTime number
spawnTime number Spielzeit (ms), zu der die Aufgabe hinzugefügt wurde.
guiSpawnTime number GUI-Zeit der Mission (Sekunden), zu der die Aufgabe hinzugefügt wurde.
completedTime number Spielzeit, zu der die Aufgabe erledigt wurde. nil, solange sie offen ist.
optionDecision any decision in case getTaskInfo() offered options Schlüssel des Optionsbuttons, den der Spieler angeklickt hat (Event Decision). Der Wert "finish" oder ein String, der mit finish beginnt, erledigt die Aufgabe.
progress TaskProgressData Fortschritt zur Laufzeit, den das Missionsfenster anzeigt.
subTasksProgress {TaskProgressData} Fortschritt der Teilaufgaben zur Laufzeit, in der Reihenfolge von TaskInfo.subTasks.
instructionsQueue {InstructionQueueEntry} Zusätzliche Anweisungen, die die Aufgabe in die Warteschlange gestellt hat.
the task's own TaskInfo.instructionData, which is played directly by the gui and never enters instructionsQueue
taskInstructionState InstructionQueueEntry.InstructionState
guideQueue {GuideQueueEntry} Wartende spawnGuide-Events der Aufgabe.
guideTimeoutTime number gui time at which a pending guideQueue fires even though the task's instruction never started

MissionInterface.GenericTaskState.InstructionQueueEntry

record base/tealdef/mission/mission_framework/mission_interface.d.tl:160

record InstructionQueueEntry

Hinweise

Eine zusätzliche Anweisung (Sprachausgabe), die eine Aufgabe in die Warteschlange gestellt hat, samt Wiedergabezustand.

Im Basisspiel verwendet: 6-mal in 5 Dateien

base/content/mission/mission/tasks/guide/guide.tl:15

local instruction : MissionInterface.GenericTaskState.InstructionQueueEntry = {
base/content/mission/mission/tasks/guide/guide_collect_entity.tl:82
local instruction : MissionInterface.GenericTaskState.InstructionQueueEntry = {
base/content/mission/mission/tasks/subsidies/guide_subsidies.tl:37
local instruction : MissionInterface.GenericTaskState.InstructionQueueEntry = {
base/content/mission/mission/tasks/wait/wait_ui_event.tl:67
local instruction : MissionInterface.GenericTaskState.InstructionQueueEntry = {
mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/drilling.tl:209
local instruction : MissionInterface.GenericTaskState.InstructionQueueEntry = {

Felder

Name Typ Beschreibung
instructionKey string Schlüssel, der an TaskInfo.makeInstructionData übergeben wird, um die Anweisung zu erhalten.
param any Zusätzliches Argument für TaskInfo.makeInstructionData.
state InstructionState Wiedergabezustand. Die GUI aktualisiert ihn über das Event updateDialogueState.
MissionInterface.GenericTaskState.InstructionQueueEntry.InstructionState

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:161

enum InstructionState

Hinweise

Wiedergabezustand einer Anweisung.

Im Basisspiel verwendet: 6-mal in 2 Dateien

base/content/mission/mission/mission_react_util.tl:85

local state : MissionInterface.GenericTaskState.InstructionQueueEntry.InstructionState = "Playing"
base/content/mission/mission/mission_sim.script.tl:484
local function isLaterInstructionState(target : MissionInterface.GenericTaskState.InstructionQueueEntry.InstructionState, than : MissionInterface.GenericTaskSta

Wert Beschreibung
"Pending" Noch nicht gestartet.
"Playing" Läuft.
"Complete" Beendet.

MissionInterface.GenericTaskState.GuideQueueEntry

record base/tealdef/mission/mission_framework/mission_interface.d.tl:177

record GuideQueueEntry

Hinweise

Ein spawnGuide-Event, das wartet, bis die Anweisung der Aufgabe startet.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_sim.script.tl:106

local guideQueue : {MissionInterface.GenericTaskState.GuideQueueEntry} = {}

Felder

Name Typ Beschreibung
guideKey string Name des Skript-Events, das gesendet wird.
state GuideState Ob das Event gesendet wurde.
MissionInterface.GenericTaskState.GuideQueueEntry.GuideState

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:178

enum GuideState

Hinweise

Ob das Spielführer-Event gesendet wurde.

Wert Beschreibung
"Pending" Noch nicht gesendet.
"Triggered" Gesendet.

MissionInterface.TaskState

record base/tealdef/mission/mission_framework/mission_interface.d.tl:191

record TaskState<TaskSpecificState, TaskSpecificParams>

Hinweise

Gespeicherter Zustand einer Aufgabe mit dem skriptspezifischen Zustand und dem Framework-Zustand.

Im Basisspiel verwendet: 317-mal in 25 Dateien

base/content/mission/mission/guide_system/guide_system_react.tl:26

local guide = task as MissionInterface.TaskState<IGuideState, any>
base/content/mission/mission/mission_boot_util.tl:58
local getTaskState = function(key : string) : MissionInterface.TaskState<any, any>
base/content/mission/mission/mission_framework/mission_framework_react.tl:22
state : MissionInterface.TaskState<any, any>
base/content/mission/mission/mission_framework/mission_framework_util.tl:24
function mission_framework_util.makeTaskContext<TaskSpecificState, TaskSpecificParams>(data : MissionInterface.TaskState<TaskSpecificState, TaskSpecificParams>,
base/content/mission/mission/mission_sim.script.tl:64
local function commitCtx<TaskSpecificState, TaskSpecificParams>(data : MissionInterface.TaskState<TaskSpecificState, TaskSpecificParams>, ctx : MissionInterface
base/content/mission/mission/tasks/auto_builder/track_builder.tl:107
local prev : MissionTaskTransportCargo.State = (readOnlyApi.getTaskState(ctx.params.ownerTask) as MissionInterface.TaskState<MissionTaskTransportCargo.State, Mi
… und 19 weitere Dateien.

Felder

Name Typ Beschreibung
type string
specific TaskSpecificState Skriptspezifischer Zustand, wie ihn TaskScript.onSpawn zurückgibt.
genericState GenericTaskState Vom Framework verwalteter Zustand.

MissionInterface.MissionState

record base/tealdef/mission/mission_framework/mission_interface.d.tl:199

record MissionState

Hinweise

Gespeicherter Zustand des Missions-Game-Scripts (::mission/mission.gs).

Im Basisspiel verwendet: 49-mal in 12 Dateien

base/content/game_mechanics/game_mechanics/industries/industries.script.tl:64

local missionScript : Engine.Component.GameScript<MissionInterface.MissionState> = api.engine.getComponent(missionScriptEntity, api.type.ComponentType.GAME_SCRI
base/content/mission/mission/guide_system/guide_system_react.tl:19
local gameScript : Engine.Component.GameScript<MissionInterface.MissionState> = api.engine.getComponent(scriptEntity, api.type.ComponentType.GAME_SCRIPT)
base/content/mission/mission/mission_framework/mission_framework_react.tl:50
local gameScript : Engine.Component.GameScript<MissionInterface.MissionState> = api.engine.getComponent(scriptEntity, api.type.ComponentType.GAME_SCRIPT)
base/content/mission/mission/mission_framework/mission_framework_util.tl:53
local gameScript : Engine.Component.GameScript<MissionInterface.MissionState> = api.engine.getComponent(scriptEntity, api.type.ComponentType.GAME_SCRIPT)
base/content/mission/mission/mission_framework/mission_legacy_util.tl:8
mission_legacy_util.updateLegacyState = function(missionState : MissionInterface.MissionState)
base/content/mission/mission/mission_sim.script.tl:70
local function initStateIfEmpty(missionState : MissionInterface.MissionState) : MissionInterface.MissionState
… und 6 weitere Dateien.

Felder

Name Typ Beschreibung
tasks {TaskState<any, any>} Alle bisher hinzugefügten Aufgaben, offene und erledigte.
nextUid integer Zähler für die nächste Aufgaben-uid.
version integer Version des Aufbaus dieses Zustands (siehe MissionLegacyUtil).
bootTypes {string : boolean} Bootstrap-Funktionen (bootstrapScriptFn), die bereits gelaufen sind.
nonBulldozableEntities {Engine.Entity : boolean} Entitäten, die offene Aufgaben gerade vor dem Abriss schützen.
notificationFilter {string : boolean} Benachrichtigungstypen, die offene Aufgaben gerade ausblenden.
needPauseNotifications boolean Wird bei initMission gesetzt. Benachrichtigungen pausieren dann für ein Update.
notificationsArePaused boolean Die Mission hat Benachrichtigungen gerade pausiert.
guiTimeSeconds number GUI-Uhr der Mission in Sekunden. Sie läuft um dt / speedup weiter, also ungefähr wie eine echte Uhr und unabhängig von der Spielgeschwindigkeit.
isComplete boolean Wird gesetzt, wenn die Mission abgeschlossen oder abgebrochen wurde. Der Zustand wird danach geleert.
lastCompletedTime number GUI-Zeit (Sekunden), zu der die letzte Aufgabe erledigt wurde.
isTutorialActive boolean Das Tutorial wurde gestartet (initNewGame / initTutorial bei vorhandenem tutorial_boot).

MissionInterface.MissionTaskApi

record base/tealdef/mission/mission_framework/mission_interface.d.tl:214

record MissionTaskApi

Hinweise

API, die an Engine-seitige Aufgaben-Callbacks (onComplete, handleEvent) und an Bootstrap-Funktionen übergeben wird.

Im Basisspiel verwendet: 47-mal in 40 Dateien

base/content/mission/mission/guide_system/guides/guide_event.tl:21

handleEvent = function(src : string, id : string, name : string, param : any, ctx : TaskContext<S, P>, _missionTaskApi : MissionInterface.MissionTaskApi) : any
base/content/mission/mission/guide_system/guides/guide_generic.tl:39
handleEvent = function(_src : string, id : string, name : string, param : any, ctx : TaskContext<S, P>, _missionTaskApi : MissionInterface.MissionTaskApi) : any
base/content/mission/mission/guide_system/guides/guide_timer.tl:76
handleEvent = function(_src : string, id : string, name : string, param : any, ctx : TaskContext<S, P>, _missionTaskApi : MissionInterface.MissionTaskApi) : any
base/content/mission/mission/guide_system/guides/guide_ui_event.tl:27
handleEvent = function(_src : string, id : string, name : string, param : any, ctx : TaskContext<S, P>, _missionTaskApi : MissionInterface.MissionTaskApi) : any
base/content/mission/mission/mission_boot_util.tl:5
local type SpawnFn = function(taskKey : string, ctx : MissionInterface.TaskContext<any, any>, missionApi : MissionInterface.MissionTaskApi)
base/content/mission/mission/mission_sim.script.tl:166
local function makeApi(missionState : MissionInterface.MissionState) : MissionInterface.MissionTaskApi
… und 34 weitere Dateien.

Funktionen

addTask(taskConfig : TaskConfig) base/tealdef/mission/mission_framework/mission_interface.d.tl:215

Hinweise

Erzeugt eine Aufgabe. Ruft onSpawn des Skripts auf (ein Ergebnis nil verhindert das Erzeugen) und danach onStart.

Parameter Typ Beschreibung
taskConfig TaskConfig Identifikation der hinzuzufügenden Aufgabe.

sendTaskEvent(eventName : string, params : any) base/tealdef/mission/mission_framework/mission_interface.d.tl:216

Hinweise

Sendet ein Skript-Event an die aufrufende Aufgabe selbst (ID = uid der Aufgabe). Es kommt in ihrem handleEvent an.

Parameter Typ Beschreibung
eventName string Name des Events.
params any Parameter des Events.

getTaskState(uniqueTaskKey : string) : TaskState<any, any> base/tealdef/mission/mission_framework/mission_interface.d.tl:217

Hinweise

Sucht eine Aufgabe über ihren eindeutigen Schlüssel.

Parameter Typ Beschreibung
uniqueTaskKey string Schlüssel aus MissionTaskUtil.makeTaskKey.

Rückgabe TaskState<any, any>: Der Zustand der Aufgabe oder nil, wenn sie (noch) nicht hinzugefügt wurde.

MissionInterface.MissionTaskReadOnlyApi

record base/tealdef/mission/mission_framework/mission_interface.d.tl:220

record MissionTaskReadOnlyApi

Hinweise

Nur lesende API, die an TaskScript.onUpdate übergeben wird.

Im Basisspiel verwendet: 138-mal in 58 Dateien

base/content/mission/mission/guide_system/guides/guide_generic.tl:21

onUpdate = function(ctx : MissionInterface.TaskContext<S, P>, readOnlyApi : MissionInterface.MissionTaskReadOnlyApi)
base/content/mission/mission/guide_system/guides/guide_timer.tl:46
onUpdate = function(ctx : TaskContext<S, P>, readOnlyApi : MissionInterface.MissionTaskReadOnlyApi)
base/content/mission/mission/mission_sim.script.tl:658
local readOnlyApi : MissionInterface.MissionTaskReadOnlyApi = {
base/content/mission/mission/tasks/assign_vehicle/assign_vehicle.tl:27
onUpdate = function(ctx : TaskContext<S, P>, readOnlyApi : MissionInterface.MissionTaskReadOnlyApi)
base/content/mission/mission/tasks/assign_vehicle/visit_stations_ordered.tl:28
onUpdate = function(ctx : TaskContext<S, P>, _readOnlyApi : MissionInterface.MissionTaskReadOnlyApi)
base/content/mission/mission/tasks/auto_builder/electrify.tl:86
onUpdate = function(ctx : TaskContext<S, P>, _readOnlyApi : MissionInterface.MissionTaskReadOnlyApi)
… und 52 weitere Dateien.

Funktionen

getTaskState(uniqueTaskKey : string) : TaskState<any, any> base/tealdef/mission/mission_framework/mission_interface.d.tl:221

Hinweise

Sucht eine Aufgabe über ihren eindeutigen Schlüssel.

Parameter Typ Beschreibung
uniqueTaskKey string Schlüssel aus MissionTaskUtil.makeTaskKey.

Rückgabe TaskState<any, any>: Der Zustand der Aufgabe oder nil.

getLastCompletedTime() : number base/tealdef/mission/mission_framework/mission_interface.d.tl:222

Hinweise

Gibt zurück, wann die letzte Aufgabe erledigt wurde.

Rückgabe number: GUI-Zeit in Sekunden (MissionState.lastCompletedTime).

hasPendingGuide() : boolean base/tealdef/mission/mission_framework/mission_interface.d.tl:223

Hinweise

Gibt an, ob eine offene Spielführer-Aufgabe ausgelöst wurde und darauf wartet, angezeigt oder weggeklickt zu werden.

Rückgabe boolean: true, wenn ein ausgelöster Spielführer offen ist.

MissionInterface.DeferredTaskApi

record base/tealdef/mission/mission_framework/mission_interface.d.tl:226

record DeferredTaskApi

Hinweise

API, die an GUI-seitige Aufgaben-Callbacks übergeben wird. Änderungen laufen über Befehle an die Engine-Seite.

Im Basisspiel verwendet: 41-mal in 31 Dateien

base/content/mission/mission/guide_system/guides/guide_generic.tl:29

guiUpdate = function(ctx : TaskContext<S, P>, taskApi : MissionInterface.DeferredTaskApi)
base/content/mission/mission/guide_system/guides/guide_timer.tl:87
guiHandleProposal = function(_id : string, name : string, proposalEventData : ProposalEventData, _isApply : boolean, ctx : TaskContext<S, P>, taskApi : MissionI
base/content/mission/mission/guide_system/guides/guide_ui_event.tl:37
guiHandleEvent = function(src : string, id : string, name : string, param : any, ctx : TaskContext<S, P>, taskApi : MissionInterface.DeferredTaskApi) : any
base/content/mission/mission/mission_sim.script.tl:233
local function makeDeferredApi<TaskSpecificState, TaskSpecificParams>(task : MissionInterface.TaskState<TaskSpecificState, TaskSpecificParams>, missionState : M
base/content/mission/mission/tasks/build_construction/build_construction.tl:29
taskApi : MissionInterface.DeferredTaskApi) : MissionInterface.ProposalHandlerResult
base/content/mission/mission/tasks/build_construction/mission_task_build_construction_util.tl:8
missionTaskApi : MissionInterface.DeferredTaskApi,
… und 25 weitere Dateien.

Funktionen

sendTaskEvent(eventName : string, params : any) base/tealdef/mission/mission_framework/mission_interface.d.tl:227

Hinweise

Sendet per Befehl ein Skript-Event an die aufrufende Aufgabe (ID = ihre uid). Es kommt in ihrem Engine-seitigen handleEvent an.

Parameter Typ Beschreibung
eventName string Name des Events.
params any Parameter des Events.

getTaskState(uniqueTaskKey : string) : TaskState<any, any> base/tealdef/mission/mission_framework/mission_interface.d.tl:228

Hinweise

Sucht eine Aufgabe über ihren eindeutigen Schlüssel.

Parameter Typ Beschreibung
uniqueTaskKey string Schlüssel aus MissionTaskUtil.makeTaskKey.

Rückgabe TaskState<any, any>: Der Zustand der Aufgabe oder nil.

MissionInterface.TaskDesc

record base/tealdef/mission/mission_framework/mission_interface.d.tl:231

record TaskDesc

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Felder

Name Typ Beschreibung
scriptFile string

MissionInterface.PosRadius

record base/tealdef/mission/mission_framework/mission_interface.d.tl:235

record PosRadius

Hinweise

Kreisförmiger Bereich mit Mittelpunkt {x, y} (oder {x, y, z}) und Radius in Metern.

Im Basisspiel verwendet: 100-mal in 18 Dateien

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

local boundingSpheres : {MissionInterface.PosRadius} = {}
base/content/mission/mission/mission_framework/mission_framework_util_line.tl:4
function mission_framework_util_line.getAllLinesBetweenStations(from : MissionInterface.PosRadius, to : MissionInterface.PosRadius) : {Engine.Entity}
base/content/mission/mission/mission_outline.tl:5
function mission_outline.boundingCircle(positions: { { number, number, number } }, extension: number) : MissionInterface.PosRadius
base/content/mission/mission/mission_task_util.tl:24
function mission_task_util.locationButDistance(entity : Engine.Entity, distance : number) : MissionInterface.PosRadius
base/content/mission/mission/tasks/assign_vehicle/visit_stations_ordered.tl:10
local function isWithin(station: MissionInterface.PosRadius, pos : Vec3f) : boolean
base/content/mission/mission/tasks/build_construction/build_construction_variant.tl:10
local boundingCircleFromPolygon = function(polygon : PolygonUtil.Polygon) : MissionInterface.PosRadius
… und 12 weitere Dateien.

Felder

Name Typ Beschreibung
pos {number} Mittelpunkt in Weltkoordinaten.
radius number Radius in Metern.

MissionInterface.Marker

record base/tealdef/mission/mission_framework/mission_interface.d.tl:240

record Marker

Hinweise

Marker, den eine Aufgabe in die 3D-Welt setzt (api.gui.mission.setMarkerAtEntity / setMarkerAtPosition).

Im Basisspiel verwendet: 32-mal in 14 Dateien

base/content/mission/mission/mission_sim.script.tl:1038

local scriptGetMarkers = taskScript.getMarkers as function(MissionInterface.TaskContext<any, any>) : {MissionInterface.Marker}
base/content/mission/mission/tasks/bulldoze/bulldoze.tl:95
getMarkers = function(ctx : TaskContext<S, P>) : {MissionInterface.Marker}
base/content/mission/mission/tasks/click_entity/click_entity.tl:102
getMarkers = function(ctx : TaskContext<S, P>) : { MissionInterface.Marker }
base/content/mission/mission/tasks/create_line/create_line_for_towns.tl:93
getMarkers = function(ctx : TaskContext<S, P>) : {MissionInterface.Marker}
base/content/mission/mission/tasks/guide/guide_collect_entity.tl:151
) : { MissionInterface.Marker }
base/content/mission/mission/tasks/observe_entity/observe_entity.tl:40
getMarkers = function(ctx : TaskContext<S, P>) : { MissionInterface.Marker }
… und 8 weitere Dateien.

Felder

Name Typ Beschreibung
key string Eindeutiger Schlüssel des Markers. Der Marker verschwindet, sobald keine offene Aufgabe ihn mehr zurückgibt.
position {number, number, number} Weltposition. Gilt, wenn entity nicht gesetzt ist.
entity Engine.Entity Entität, an die der Marker gehängt wird.
type string Markertyp (zum Beispiel "arrow").
scaling number Größenfaktor des Markers.
isSelectable boolean Der Marker lässt sich anklicken.
fireSelectEntity boolean Ein Klick auf den Marker löst ein selectEntity-Event aus.

MissionInterface.Zone

record base/tealdef/mission/mission_framework/mission_interface.d.tl:250

record Zone

Hinweise

Bereich, den eine Aufgabe als Polygon oder Kreis auf das Gelände zeichnet (api.gui.mission.setZone / setZoneCircle).

Im Basisspiel verwendet: 35-mal in 18 Dateien

base/content/mission/mission/mission_sim.script.tl:1039

local scriptGetZones = taskScript.getZones as function(MissionInterface.TaskContext<any, any>) : {MissionInterface.Zone}
base/content/mission/mission/tasks/assign_vehicle/assign_vehicle.tl:101
getZones = function(ctx : TaskContext<S, P>) : {MissionInterface.Zone}
base/content/mission/mission/tasks/build_construction/build_construction.tl:9
local getZonesFromEntityList = function(entities : {Engine.Entity}) : {MissionInterface.Zone}
base/content/mission/mission/tasks/build_construction/build_construction_variant.tl:108
getZones = function(ctx : TaskContext<S, P>) : {MissionInterface.Zone}
base/content/mission/mission/tasks/build_path/build_path.tl:112
getZones = function(ctx : TaskContext<S, P>) : {MissionInterface.Zone}
base/content/mission/mission/tasks/click_and_collect_custom_entity/collect_entity.tl:141
getZones = function(ctx : TaskContext<S, P>) : {MissionInterface.Zone}
… und 12 weitere Dateien.

Felder

Name Typ Beschreibung
key string Eindeutiger Schlüssel der Zone. Die Zone verschwindet, sobald keine offene Aufgabe sie mehr zurückgibt.
polygon PolygonUtil.Polygon Umriss als Polygon. Hat Vorrang vor circle.
circle MissionInterface.PosRadius Kreisförmiger Umriss.
draw boolean Zeichnet die Zone.
playAnimation boolean Animiert den Umriss der Zone.
prohibitBuilding boolean Verbietet das Bauen innerhalb der Zone.
zOffset number Vertikaler Versatz der gezeichneten Zone.

Funktionen

getDrawColor() : Vec4f base/tealdef/mission/mission_framework/mission_interface.d.tl:255

Hinweise

Gibt die Farbe der Zone zurück, meist eine Farbe aus MissionColors.

Rückgabe Vec4f

MissionInterface.GuideInfo

record base/tealdef/mission/mission_framework/mission_interface.d.tl:261

record GuideInfo

Hinweise

Hinweis, den das Spielführer-System für eine Spielführer-Aufgabe anzeigt.

Im Basisspiel verwendet: 3-mal in 2 Dateien

base/content/mission/mission/guide_system/guide_system_react.tl:11

info : MissionInterface.GuideInfo
base/content/mission/mission/mission_boot_util.tl:144
vtable.getGuideInfo = function(_ctx : MissionInterface.TaskContext<any, any>) : MissionInterface.GuideInfo

Felder

Name Typ Beschreibung
name string Titel des Hinweises.
text string Text des Hinweises.
textGamepad string Text des Hinweises bei Gamepad-Eingabe.
image string Bild im Hinweis.
imageGamepad string Bild bei Gamepad-Eingabe.
caption string Bildunterschrift, die an den Aufruf zum Erzeugen des Spielführers übergeben wird.
targets {Target} GUI-Elemente, auf die der Hinweis zeigt.
free boolean Zeigt den Hinweis an einer freien Bildschirmposition statt an einem Ziel.
freePosition FreePosition Bildschirmposition eines freien Hinweises.

MissionInterface.GuideInfo.Position

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:262

enum Position

Hinweise

Seite des Ziel-GUI-Elements, an der der Hinweis erscheint.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/guide_system/guide_system_react.tl:186

local PositionTable<total> : {MissionInterface.GuideInfo.Position : api.gui.guide.GuidePosition} = {

Wert Beschreibung
"Above" Über dem Ziel.
"Below" Unter dem Ziel.
"Right" Rechts vom Ziel.
"Left" Links vom Ziel.

MissionInterface.GuideInfo.FreePosition

enum base/tealdef/mission/mission_framework/mission_interface.d.tl:269

enum FreePosition

Hinweise

Bildschirmposition eines freien Hinweises ohne Ziel.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/guide_system/guide_system_react.tl:193

local FreePositionTable<total> : {MissionInterface.GuideInfo.FreePosition : api.gui.guide.FreeGuidePosition} = {

Wert Beschreibung
"High" Obere Position.
"Low" Untere Position (Standard).

MissionInterface.GuideInfo.Target

record base/tealdef/mission/mission_framework/mission_interface.d.tl:274

record Target

Hinweise

GUI-Element, auf das der Hinweis zeigt.

Felder

Name Typ Beschreibung
idOrTag string ID oder Tag des GUI-Elements (zum Beispiel "menu.construction.road").
position Position Seite des Elements, an der der Hinweis erscheint.

MissionInterface.TaskInfo

record base/tealdef/mission/mission_framework/mission_interface.d.tl:290

record TaskInfo

Hinweise

Was das Missionsfenster für eine Aufgabe anzeigt (Name, Absätze, Optionsbuttons, Fortschritt, Links, gesprochene Anweisung).

Details

Eine Aufgabe ohne name (und ohne options oder showTaskInGuiWithoutName) erscheint nicht im Missionsfenster. Absatztexte dürfen Links auf Schlüssel von links enthalten. Ein Klick darauf bewegt die Kamera dorthin.

Beispiel

-- from urbangames_campaign_mission_01 mission_story.tl
taskInfo = {
    name = _("MISSION_01_TASK_BULLDOZE_NAME"),
    paragraphs = {
        { text = _("MISSION_01_TASK_BULLDOZE_PARAGRAPH") },
        { text = _("MISSION_01_TASK_BULLDOZE_HINT") },
    },
    links = { pos_street = { location = mission_task_util.mergeAreas({params.connectStreets_1_1_zone, params.connectStreets_1_2_zone }, 20) } },
    instructionData = {
        subtitle = _("MISSION_01_TASK_BULLDOZE_INSTRUCTION"),
        portrait = "urbangames_campaign_mission_01::/mission/dialogue/andrew_neutral.tga",
        voiceOver = "urbangames_campaign_mission_01::/audio/voice_over/MISSION_01_TASK_BULLDOZE_INSTRUCTION.wav",
        duration = 6,
    },
    progress = { text = _("Trees Removed") },
},
Im Basisspiel verwendet: 24-mal in 20 Dateien

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

vtable.getTaskInfo = function(ctx : MissionInterface.TaskContext<any, any>) : MissionInterface.TaskInfo
base/content/mission/mission/mission_framework/mission_framework_react.tl:24
info : MissionInterface.TaskInfo
base/content/mission/mission/mission_framework/mission_framework_react_util.tl:232
function mission_framework_react_util.handleLinkClick(taskInfo : MissionInterface.TaskInfo, target : string)
base/content/mission/mission/mission_task_util.tl:88
function mission_task_util.getTaskInfo(taskKey : string, ctx : MissionInterface.TaskContext<any, any>, getTaskData : function(string) : MissionTaskUtil.StaticTa
base/content/mission/mission/notification.script.tl:22
local info = vtable.getTaskInfo(mission_framework_util.makeTaskContext(v)) as MissionInterface.TaskInfo
base/content/mission/mission/tasks/task_decorator.tl:73
getInfo = function(ctx : MissionInterface.TaskContext<DecoratorState<S, GS>, DecoratorParam<P, GP>>) : MissionInterface.TaskInfo
… und 14 weitere Dateien.

Felder

Name Typ Beschreibung
links {string : LinkDef} Link-Schlüssel -> Kameraziel. Absatztexte verweisen auf die Schlüssel. Der Anpeilen-Button zeigt alle Ziele gemeinsam im Bild.
name string Titel der Aufgabe. Aufgaben ohne Namen erscheinen nicht im Missionsfenster.
paragraphs {Paragraph} Beschreibung der Aufgabe. Der erste Absatz steht neben dem Anleitungs-Button, die weiteren Absätze sind Hinweise (Wiki).
options {Option} Optionsbuttons.
camera {LinkDef} Kameraziele, die der Anpeilen-Button statt links verwendet.
progress TaskProgressData Statische Fortschrittsfelder (zum Beispiel text, cargoTypeRes), die mit dem Fortschritt zur Laufzeit zusammengeführt werden.
subTasks {SubTaskInfo} Teilaufgaben mit eigenem Fortschritt.
instructionData MissionDialogueData.InstructionData Gesprochene Anweisung der Aufgabe (Porträt, Untertitel, Sounddatei, Dauer).
showTaskInGuiWithoutName boolean Führt die Aufgabe auch ohne Namen im Missionsfenster auf.

Funktionen

makeInstructionData(instructionKey : string, param? : any) : MissionDialogueData.InstructionData base/tealdef/mission/mission_framework/mission_interface.d.tl:329

Hinweise

Gibt die Anweisung zu einem Schlüssel zurück, der in GenericTaskState.instructionsQueue wartet.

Parameter Typ Beschreibung
instructionKey string Schlüssel der wartenden Anweisung.
param? any Zusätzlicher Parameter des Warteschlangen-Eintrags.

Rückgabe MissionDialogueData.InstructionData: Anweisung, die abgespielt wird.

MissionInterface.TaskInfo.NotificationInput

record base/tealdef/mission/mission_framework/mission_interface.d.tl:291

record NotificationInput

Hinweise

Parameter der Missionsbenachrichtigung (::/mission/notification.script), die beim Erledigen einer Aufgabe gesendet wird.

Im Spiel Aufgabe abgeschlossen · Glückwunsch! Du hast die Aufgabe '{NAME}' abgeschlossen und dafür eine Belohnung in Höhe von {REWARD} erhalten.Im Code: Task Completed · Congratulations! You completed the task '{NAME}' and you received a reward of {REWARD} for completing it.

Im Basisspiel verwendet: 4-mal in 2 Dateien

base/content/mission/mission/mission_sim.script.tl:719

local notificationParams : MissionInterface.TaskInfo.NotificationInput = { missionTaskKey = v.genericState.config.uniqueKey }
base/content/mission/mission/notification.script.tl:6
local data : NotificationType<MissionInterface.TaskInfo.NotificationInput> = {}

Felder

Name Typ Beschreibung
missionTaskKey string Eindeutiger Schlüssel der erledigten Aufgabe.
financialReward integer Ausgezahlte Belohnung in Spielwährung, falls es eine gibt.

MissionInterface.TaskInfo.Paragraph

record base/tealdef/mission/mission_framework/mission_interface.d.tl:296

record Paragraph

Hinweise

Ein Absatz der Aufgabenbeschreibung.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/mission/mission/mission_framework/mission_framework_react_util.tl:244

local newParagraphs : {MissionInterface.TaskInfo.Paragraph} = {}

Felder

Name Typ Beschreibung
text string Absatztext für alle Eingabearten.
textMouse string Text bei Mauseingabe, wenn text nicht gesetzt ist.
textGamepad string Text bei Gamepad-Eingabe, wenn text nicht gesetzt ist.

MissionInterface.TaskInfo.Option

record base/tealdef/mission/mission_framework/mission_interface.d.tl:301

record Option

Hinweise

Button in den Aufgabendetails. Ein Klick sendet ein Decision-Event mit key.

Im Basisspiel verwendet: 19-mal in 19 Dateien

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

local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
base/content/mission/mission/tutorial/tutorial_story_branch_a.tl:30
local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
base/content/mission/mission/tutorial/tutorial_story_branch_b.tl:30
local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:57
local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story_cutscenes_only.tl:47
local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:87
local getDebugOptions = function() : { MissionInterface.TaskInfo.Option }
… und 13 weitere Dateien.

Felder

Name Typ Beschreibung
text string Beschriftung des Buttons.
key any Wert, der als GenericTaskState.optionDecision gespeichert wird. "finish" (oder ein String, der mit finish beginnt) erledigt die Aufgabe.

MissionInterface.TaskInfo.LinkDef

record base/tealdef/mission/mission_framework/mission_interface.d.tl:305

record LinkDef

Hinweise

Kameraziel eines Links. Das ist eine Entität oder ein Bereich, direkt angegeben oder über eine Funktion.

Im Basisspiel verwendet: 7-mal in 2 Dateien

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

local createLocateLink = function(links : {MissionInterface.TaskInfo.LinkDef}) : MissionInterface.TaskInfo.LinkDef
base/content/mission/mission/mission_framework/mission_framework_react_util.tl:222
function mission_framework_react_util.followLink(link : MissionInterface.TaskInfo.LinkDef)

Felder

Name Typ Beschreibung
entity Engine.Entity Entität, auf die die Kamera fokussiert.
location PosRadius Bereich, zu dem die Kamera fährt.

Funktionen

getEntity() : Engine.Entity base/tealdef/mission/mission_framework/mission_interface.d.tl:308

Hinweise

Liefert die Entität im Moment des Klicks. Hat Vorrang vor entity.

Rückgabe Engine.Entity

getLocation() : MissionInterface.PosRadius base/tealdef/mission/mission_framework/mission_interface.d.tl:309

Hinweise

Liefert den Bereich im Moment des Klicks. Hat Vorrang vor location.

Rückgabe MissionInterface.PosRadius

MissionInterface.TaskInfo.SubTaskInfo

record base/tealdef/mission/mission_framework/mission_interface.d.tl:313

record SubTaskInfo

Hinweise

Eine Teilaufgabe, die unter der Aufgabe mit eigenem Fortschritt aufgeführt wird.

Felder

Name Typ Beschreibung
name string Beschriftung der Teilaufgabe.
description string Beschreibung der Teilaufgabe.
progress TaskProgressData Fortschritt der Teilaufgabe (aus GenericTaskState.subTasksProgress befüllt).

MissionInterface.ProposalHandlerResult

record base/tealdef/mission/mission_framework/mission_interface.d.tl:333

record ProposalHandlerResult

Hinweise

Antwort einer Aufgabe auf einen Bauvorschlag (TaskScript.guiHandleProposal).

Im Basisspiel verwendet: 77-mal in 7 Dateien

base/content/mission/mission/guide_system/guides/guide_timer.tl:87

guiHandleProposal = function(_id : string, name : string, proposalEventData : ProposalEventData, _isApply : boolean, ctx : TaskContext<S, P>, taskApi : MissionI
base/content/mission/mission/mission_sim.script.tl:251
local proposalHandlers : {{MissionInterface.TaskState<any, any>, function(id : string, name : string, param : ProposalEventData, isApply : boolean, state : Miss
base/content/mission/mission/tasks/build_construction/build_construction.tl:29
taskApi : MissionInterface.DeferredTaskApi) : MissionInterface.ProposalHandlerResult
base/content/mission/mission/tasks/build_construction/mission_task_build_construction_util.tl:9
isWhitelist : boolean) : MissionInterface.ProposalHandlerResult
base/content/mission/mission/tasks/bulldoze/bulldoze.tl:85
guiHandleProposal = function(id : string, _name : string, proposalEventData : ProposalEventData, isApply : boolean, ctx : TaskContext<S, P>, missionTaskApi : Mi
base/content/mission/mission/tasks/connect_nodes/connect_nodes.tl:56
guiHandleProposal = function(id : string, _name : string, proposalEventData : ProposalEventData, isApply : boolean, ctx : TaskContext<S, P>, taskApi : MissionIn
… und 1 weitere Dateien.

Felder

Name Typ Beschreibung
error string Fehlermeldung. Blockiert den Bauvorschlag.
warning string Warnung. Der Bauvorschlag bleibt möglich.
priority number Antworten mehrere Aufgaben, erscheint die Meldung mit der höchsten Priorität.
isWhitelist boolean Ein Whitelist-Ergebnis ohne Meldung lässt den Bauvorschlag an diesem Handler vorbei.

MissionInterface.TaskContext

record base/tealdef/mission/mission_framework/mission_interface.d.tl:340

record TaskContext<TaskSpecificState, TaskSepcificParams>

Hinweise

Alles, was ein Aufgaben-Callback über seine Aufgabe bekommt.

Im Basisspiel verwendet: 569-mal in 114 Dateien

base/content/mission/mission/guide_system/guides/guide_event.tl:5

local type TaskContext = MissionInterface.TaskContext
base/content/mission/mission/guide_system/guides/guide_generic.tl:3
local type TaskContext = MissionInterface.TaskContext
base/content/mission/mission/guide_system/guides/guide_timer.tl:3
local type TaskContext = MissionInterface.TaskContext
base/content/mission/mission/guide_system/guides/guide_ui_event.tl:5
local type TaskContext = MissionInterface.TaskContext
base/content/mission/mission/guide_system/main/guide_system_story.tl:41
shouldSkipGuide = function(_ctx : MissionInterface.TaskContext<GuideTimer.State, GuideTimer.Params>) : boolean
base/content/mission/mission/mission_boot_util.tl:5
local type SpawnFn = function(taskKey : string, ctx : MissionInterface.TaskContext<any, any>, missionApi : MissionInterface.MissionTaskApi)
… und 108 weitere Dateien.

Felder

Name Typ Beschreibung
state TaskSpecificState Skriptspezifischer Zustand. Du darfst ihn direkt ändern oder ersetzen, das Framework übernimmt ihn.
genericState GenericTaskState Vom Framework verwalteter Zustand.
params TaskSepcificParams Aufgabenspezifische Parameter aus der Story (nur lesbar).
guiTimeSeconds number Aktuelle GUI-Zeit der Mission in Sekunden.

MissionInterface.TaskScript

interface base/tealdef/mission/mission_framework/mission_interface.d.tl:347

interface TaskScript<TaskSpecificState, TaskParams>

Hinweise

Umsetzung eines Aufgabentyps. Alle Callbacks sind optional. Die eingebauten Aufgabentypen unter mission/tasks/** implementieren dieses Interface.

Details

Engine-Seite (der Zustand lässt sich ändern): onSpawn, onStart, onUpdate, isComplete, onComplete, handleEvent. GUI-Seite (der Zustand ist nur lesbar, Änderungen gehen über DeferredTaskApi.sendTaskEvent): guiUpdate, guiHandleEvent, guiHandleProposal, onGuiKickOff, getMarkers, getZones, getProtectedEntities, getSelectorEntityFilter, getVisibilityRules, getEnableRules, getHighlightRules. getNonBulldozableEntities läuft für offene Aufgaben auf der Engine-Seite.

Beispiel

-- Basisspiel: mission/tasks/wait/wait.tl (vereinfacht)
local ret : MissionTaskWait = {
    taskScriptName = "wait",
    onSpawn = function(params : MissionTaskWait.Params, guiTimeSeconds : number) : MissionTaskWait.State
        return { endGuiTimeSeconds = params.guiTimeSeconds and guiTimeSeconds + params.guiTimeSeconds }
    end,
    isComplete = function(ctx : MissionInterface.TaskContext<MissionTaskWait.State, MissionTaskWait.Params>) : boolean
        return ctx.guiTimeSeconds >= ctx.state.endGuiTimeSeconds
    end,
}
return ret
Im Basisspiel verwendet: 1.120-mal in 38 Dateien

base/content/mission/mission/guide_system/main/guide_system_story.tl:8

taskScript = guide_timer as MissionInterface.TaskScript<any, any>,
base/content/mission/mission/mission_boot_util.tl:98
vtable.getTaskScript = function() : MissionInterface.TaskScript<any, any>
base/content/mission/mission/tasks/guide/guide_collect_entity.tl:10
local ret : MissionInterface.TaskScript<DecoratorState<MissionTaskCollectEntity.State, MissionTaskGuideCollectEntity.State>, DecoratorParam<MissionTaskCollectEn
base/content/mission/mission/tasks/subsidies/guide_subsidies.tl:3
local ret : MissionInterface.TaskScript<DecoratorState<MissionTaskSubsidies.State, MissionTaskGuideSubsidies.State>, DecoratorParam<MissionTaskSubsidies.Params,
base/content/mission/mission/tasks/task_decorator.tl:4
task : MissionInterface.TaskScript<S, P>,
base/content/mission/mission/tutorial/guide_system/guide_system_story.tl:16
taskScript = guide_event as MissionInterface.TaskScript<any, any>,
… und 32 weitere Dateien.

Felder

Name Typ Beschreibung
taskScriptName string Typname der Aufgabe und Präfix der Aufgaben-uids. Der Name "finish" kennzeichnet die Aufgabe am Missionsende.
disableGuideSystem boolean Kennzeichnet den Aufgabentyp als einen, während dessen das Spielführer-System inaktiv bleibt (die Skripte für Zwischensequenzen und Dialoge setzen das).

Funktionen

handleLegacy(ctx : TaskContext<TaskSpecificState, TaskParams>, oldVersion : integer) : TaskContext<TaskSpecificState, TaskParams> base/tealdef/mission/mission_framework/mission_interface.d.tl:352

apply legacy handling for the task (use return value in case state is not a table and thus cannot be updated inplace)

Hinweise

Aktualisiert den gespeicherten Zustand der Aufgabe aus einer älteren Version des Missionszustands.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext mit dem alten Zustand.
oldVersion integer Version des gespeicherten Missionszustands.

Rückgabe TaskContext<TaskSpecificState, TaskParams>: Ein Ersatzkontext oder nil, wenn der Zustand direkt aktualisiert wurde.

prepare the initial state when attempting to spawn (return nil to prevent spawning)

onSpawn(TaskParams, guiTimeSeconds : number) : TaskSpecificState | nil base/tealdef/mission/mission_framework/mission_interface.d.tl:355

Hinweise

Erzeugt den anfänglichen skriptspezifischen Zustand, wenn die Aufgabe hinzugefügt wird.

Parameter Typ Beschreibung
#1 TaskParams Aufgabenparameter aus der Story.
guiTimeSeconds number Aktuelle GUI-Zeit der Mission in Sekunden.

Rückgabe TaskSpecificState | nil: Anfangszustand (fehlt der Callback, wird eine leere Tabelle verwendet).

onStart(state : TaskContext<TaskSpecificState, TaskParams>) base/tealdef/mission/mission_framework/mission_interface.d.tl:356

Hinweise

Wird einmal direkt nach dem Hinzufügen der Aufgabe aufgerufen.

Parameter Typ Beschreibung
state TaskContext<TaskSpecificState, TaskParams> Kontext der neuen Aufgabe.

getInfo(state : TaskContext<TaskSpecificState, TaskParams>) : TaskInfo base/tealdef/mission/mission_framework/mission_interface.d.tl:358

Hinweise

Gibt die vom Skript berechnete Aufgabeninfo zurück. Eine mit TaskDecorator.decorate gebaute Aufgabe nimmt getInfo der umhüllten Aufgabe und ignoriert das des Decorators.

Parameter Typ Beschreibung
state TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe TaskInfo: Aufgabeninfo.

isComplete(state : TaskContext<TaskSpecificState, TaskParams>) : boolean base/tealdef/mission/mission_framework/mission_interface.d.tl:360

Hinweise

Wird bei jedem Update für offene Aufgaben geprüft. Gibt der Callback true zurück, ist die Aufgabe erledigt (außer requiredTaskToComplete ist noch offen).

Parameter Typ Beschreibung
state TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe boolean: true, wenn die Aufgabe erledigt ist.

onComplete(state : TaskContext<TaskSpecificState, TaskParams>, missionTaskApi : MissionTaskApi) base/tealdef/mission/mission_framework/mission_interface.d.tl:361

Hinweise

Wird einmal beim Erledigen der Aufgabe aufgerufen, bevor ihre Folgeaufgaben hinzukommen.

Parameter Typ Beschreibung
state TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.
missionTaskApi MissionTaskApi API, um Aufgaben hinzuzufügen oder andere Aufgaben nachzuschlagen.

onUpdate(ctx : TaskContext<TaskSpecificState, TaskParams>, readOnlyApi : MissionTaskReadOnlyApi) base/tealdef/mission/mission_framework/mission_interface.d.tl:363

Hinweise

Wird bei jedem Engine-Update aufgerufen, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe. Änderungen am Zustand werden gespeichert.
readOnlyApi MissionTaskReadOnlyApi Nur lesende API, um andere Aufgaben nachzuschlagen.

handleEvent(src : string, id : string, name : string, param : any, ctx : TaskContext<TaskSpecificState, TaskParams>, missionTaskApi : MissionTaskApi) : any base/tealdef/mission/mission_framework/mission_interface.d.tl:364

Hinweise

Empfängt auf der Engine-Seite jedes Skript-Event, solange die Aufgabe offen ist. Events an die Aufgabe selbst haben eine id gleich ihrer uid.

Parameter Typ Beschreibung
src string Quelle des Events.
id string ID des Events (Ziel).
name string Name des Events.
param any Parameter des Events.
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe. Änderungen am Zustand werden gespeichert.
missionTaskApi MissionTaskApi API, um Aufgaben hinzuzufügen, Events an sich selbst zu senden oder Aufgaben nachzuschlagen.

Rückgabe any: Optionales Ergebnis des Events.

guiHandleEvent(src : string, id : string, name : string, param : any, ctx : TaskContext<TaskSpecificState, TaskParams>, taskApi : DeferredTaskApi) : any base/tealdef/mission/mission_framework/mission_interface.d.tl:365

Hinweise

Empfängt GUI-Events, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
src string Quelle des Events.
id string ID des Events.
name string Name des Events.
param any Parameter des Events.
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe (auf dieser Seite nur lesbar).
taskApi DeferredTaskApi Verzögerte API, um Events an die Engine-Seite zu senden.

Rückgabe any: Optionales Ergebnis des Events.

guiUpdate(ctx : TaskContext<TaskSpecificState, TaskParams>, taskApi : DeferredTaskApi) base/tealdef/mission/mission_framework/mission_interface.d.tl:366

Hinweise

Wird bei jedem GUI-Update aufgerufen, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe (auf dieser Seite nur lesbar).
taskApi DeferredTaskApi Verzögerte API, um Events an die Engine-Seite zu senden.

guiHandleProposal(id : string, name : string, param : ProposalEventData, isApply : boolean, ctx : TaskContext<TaskSpecificState, TaskParams>, taskApi : DeferredTaskApi) : ProposalHandlerResult base/tealdef/mission/mission_framework/mission_interface.d.tl:367

Hinweise

Prüft einen Bauvorschlag (builder.proposalCreate / builder.proposalApply) und kann ihn blockieren oder davor warnen.

Parameter Typ Beschreibung
id string ID des Events.
name string Name des Events (builder.proposalCreate oder builder.proposalApply).
param ProposalEventData Der Bauvorschlag, seine Daten und beim Anwenden die entstehenden Entitäten.
isApply boolean true bei builder.proposalApply.
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.
taskApi DeferredTaskApi Verzögerte API, um Events an die Engine-Seite zu senden.

Rückgabe ProposalHandlerResult: Anzuzeigender Fehler oder Warnung, oder nil, um den Vorschlag anzunehmen.

Opportunity to schedule UI things (i.e. cutscene/dialogue) on task "start", for which other tasks should wait. If you do so, return true to indicate no other onGuiKickOff shall be called in this frame.

onGuiKickOff(ctx : TaskContext<TaskSpecificState, TaskParams>, taskApi : DeferredTaskApi) : boolean base/tealdef/mission/mission_framework/mission_interface.d.tl:372

Hinweise

Lässt die Aufgabe beim Öffnen eine UI starten (Zwischensequenz, Dialog). Gibt der Callback true zurück, starten andere Aufgaben im selben Frame keine UI mehr.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.
taskApi DeferredTaskApi Verzögerte API.

Rückgabe boolean: true, wenn die Aufgabe eine UI gestartet hat.

getMarkers(ctx : TaskContext<TaskSpecificState, TaskParams>) : {Marker} base/tealdef/mission/mission_framework/mission_interface.d.tl:374

Hinweise

Gibt die Weltmarker der Aufgabe zurück.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {Marker}: Marker, die angezeigt werden, solange die Aufgabe offen ist.

getZones(ctx : TaskContext<TaskSpecificState, TaskParams>) : {Zone} base/tealdef/mission/mission_framework/mission_interface.d.tl:375

Hinweise

Gibt die Geländezonen der Aufgabe zurück.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {Zone}: Zonen, die gezeichnet werden, solange die Aufgabe offen ist.

getNonBulldozableEntities(ctx : TaskContext<TaskSpecificState, TaskParams>) : {Engine.Entity} base/tealdef/mission/mission_framework/mission_interface.d.tl:376

Hinweise

Gibt Entitäten zurück, die sich nicht abreißen lassen, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {Engine.Entity}: Entitäten (Konstruktionen werden aus ihren Teilen ermittelt).

getProtectedEntities(ctx : TaskContext<TaskSpecificState, TaskParams>) : {Engine.Entity : GameContext.Filters.ProtectionConfig | boolean} base/tealdef/mission/mission_framework/mission_interface.d.tl:377

Hinweise

Gibt Entitäten zurück, die der Spieler nicht ändern kann, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {Engine.Entity : GameContext.Filters.ProtectionConfig | boolean}: Entität -> Schutzkonfiguration oder true.

getSelectorEntityFilter(ctx : TaskContext<TaskSpecificState, TaskParams>) : {Engine.Entity : boolean} base/tealdef/mission/mission_framework/mission_interface.d.tl:378

Hinweise

Gibt zurück, welche Entitäten ausgewählt werden dürfen, solange die Aufgabe offen ist.

Parameter Typ Beschreibung
ctx TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {Engine.Entity : boolean}: Entität -> Auswählbar-Flag.

getVisibilityRules(TaskContext<TaskSpecificState, TaskParams>) : {string : boolean} base/tealdef/mission/mission_framework/mission_interface.d.tl:380

Hinweise

Gibt zur Laufzeit berechnete GUI-Sichtbarkeitsregeln zurück. Sie werden über die statischen visibilityRules gelegt.

Parameter Typ Beschreibung
#1 TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {string : boolean}: GUI-Klasse -> Sichtbarkeitsflag.

getEnableRules(TaskContext<TaskSpecificState, TaskParams>) : {string : boolean} base/tealdef/mission/mission_framework/mission_interface.d.tl:381

Hinweise

Gibt zur Laufzeit berechnete GUI-Aktivierungsregeln zurück. Sie werden über die statischen enableRules gelegt.

Parameter Typ Beschreibung
#1 TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {string : boolean}: GUI-ID/-Tag -> Aktiviert-Flag.

getHighlightRules(TaskContext<TaskSpecificState, TaskParams>) : {string : MissionInterface.HighlightStyle} base/tealdef/mission/mission_framework/mission_interface.d.tl:382

Hinweise

Gibt zur Laufzeit berechnete GUI-Hervorhebungsregeln zurück. Sie werden über die statischen highlightRules gelegt.

Parameter Typ Beschreibung
#1 TaskContext<TaskSpecificState, TaskParams> Kontext der Aufgabe.

Rückgabe {string : MissionInterface.HighlightStyle}: GUI-ID/-Tag -> Hervorhebungsstil.