Zum Inhalt

town_cargo

Quelle: base/tealdef/game_mechanics/towns/town_cargo.d.tl

Hinweise

Erfahrung und Level der Städte im Stadtwachstums-Script (town_cargo.gs) und seine Konfiguration.

TownsGrowthState

record global base/tealdef/game_mechanics/towns/town_cargo.d.tl:3

global record TownsGrowthState

Hinweise

Zustand des Stadtwachstums-Game-Scripts town_cargo.gs (town_growth.script). Du liest ihn mit TownCargoUtil.getTownCargoState.

Felder

Name Typ Beschreibung
townState {Engine.Entity : TownData} Wachstumsdaten pro Stadt-Entität.
cargoDemandsSorted {CargoTypeId} Sortierte IDs aller Güterarten, die irgendeine Stadt nachfragt. Ändert sich die Liste, sendet das Script das Ereignis Towns/CargoDemandsChanged.
disabledCelebratoryFireworks boolean Wahr nach dem Ereignis DisableCelebratoryFireworks. Ein neues Stadtlevel startet dann kein Feuerwerk mehr.

TownsGrowthState.TownData

record base/tealdef/game_mechanics/towns/town_cargo.d.tl:4

record TownData

Hinweise

Erfahrung und Level einer Stadt.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_cargo_util.tl:64

town_cargo_util.getTownCargoState = function(entity : Engine.Entity) : TownsGrowthState.TownData

Felder

Name Typ Beschreibung
experience integer Erfahrungspunkte, die die Stadt insgesamt gesammelt hat.
initialLevel integer Stadtlevel beim ersten Anlegen des Zustands. TownCargoUtil.getGrowthFactor zählt die Level ab hier.
level integer Aktuelles Stadtlevel. Jeder Anstieg sendet das Script-Ereignis Towns/OnLevelUp und eine Benachrichtigung über das neue Level.
cargoDelivered boolean Wird wahr, sobald irgendein Gut an ein Gebäude der Stadt geliefert wurde. Bis dahin bringt ein neues Level keine neue Güternachfrage.
accumulatedExperience {string : {integer : TownsGrowthState.TownData.AddedExperience}} per category (cargo, passenger) and tier

TownsGrowthState.TownData.AddedExperience

record base/tealdef/game_mechanics/towns/town_cargo.d.tl:9

record AddedExperience

Hinweise

Erfahrung aus einer Quelle und Stufe seit dem letzten Journal-Eintrag.

Felder

Name Typ Beschreibung
rawExperience integer Erfahrung, bevor der Erfahrungsfaktor der Stadt (TownUtil.getXpFactor) angewendet wurde. Wird als experience_raw_<tier>_<source> protokolliert.
multipliedExperience integer Erfahrung nach Anwendung des Erfahrungsfaktors, so wie sie zu experience addiert wird. Wird als experience_gain_<tier>_<source> protokolliert.

TownCargoUtil

record global base/tealdef/game_mechanics/towns/town_cargo.d.tl:20

global record TownCargoUtil

Laden: local town_cargo_util = ug_require "::/game_mechanics/towns/town_cargo_util.tl" as TownCargoUtil

Hinweise

Konstanten und Zustandszugriff des Stadtwachstums-Scripts (game_mechanics/towns/town_cargo_util.tl).

Felder

Name Typ Beschreibung
growthPerTick number Erfahrung, die bei jedem Script-Update zu jeder Stadt addiert wird. Das Basisspiel setzt sie auf 0 (aus). 2-mal im Basisspiel verwendet
levelUpSizeFactor number Steht auf 1.25, mit dem Code-Kommentar „Level up size increase (compound)“. Kein Script des Basisspiels liest den Wert.
levelUpFactorRange number Steht auf 0.02, mit dem Code-Kommentar „Level up size increase (compound)“. Kein Script des Basisspiels liest den Wert.
townExpScaling number Verhältnis der Erfahrung, die ein Level braucht, zu der des vorherigen Levels. Das Basisspiel setzt es auf 1.5.
authority2xpFactor {RatingLevel : number} Erfahrungsmultiplikator pro Wachstumsstufe der Stadt, von 0.0 bei VeryPoor bis 1.0 bei Excellent in Schritten von 0.2. 2-mal im Basisspiel verwendet

Funktionen

ensureState(scriptState : TownsGrowthState, townEntity : Engine.Entity) base/tealdef/game_mechanics/towns/town_cargo.d.tl:27

Aufruf: town_cargo_util.ensureState(…)

Hinweise

Legt die Wachstumsdaten einer Stadt an, falls sie fehlen. Eine neue Stadt startet auf Level 2, 3 oder 4, wenn ihre anfängliche Wohnkapazität über 100, 150 oder 200 liegt (sonst auf Level 1), und mit der Erfahrung, die dieses Level braucht.

Parameter Typ Beschreibung
scriptState TownsGrowthState Zustand des Stadtwachstums-Scripts; wird direkt geändert.
townEntity Engine.Entity Stadt-Entität.
Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_growth.script.tl:195

town_cargo_util.ensureState(scriptState, townEntity)

getTownCargoState(entity : Engine.Entity) : TownsGrowthState.TownData base/tealdef/game_mechanics/towns/town_cargo.d.tl:29

Aufruf: town_cargo_util.getTownCargoState(…)

Hinweise

Liest die Wachstumsdaten einer Stadt aus der Komponente des Game-Scripts town_cargo.gs.

Parameter Typ Beschreibung
entity Engine.Entity Stadt-Entität.

Rückgabe TownsGrowthState.TownData: Erfahrung und Level der Stadt.

Im Basisspiel verwendet: 7-mal in 6 Dateien

base/content/game_mechanics/game_mechanics/towns/town_react_util.tl:882

local state = town_cargo_util.getTownCargoState(params.entity)
base/content/game_mechanics/game_mechanics/towns/town_util.tl:791
local townCargoState = town_cargo_util.getTownCargoState(townEntity)
base/content/game_mechanics/game_mechanics/towns/town_util_parallel.script.tl:268
local state = town_cargo_util.getTownCargoState(townEntity)
base/content/gui/gui/debug_panel/make_entity_debug_panel.tl:460
local townCargoState = town_cargo_util.getTownCargoState(entityAndRevisionState:old().entity)
base/content/gui/gui/main/town_hud_react_util.tl:86
local state = town_cargo_util.getTownCargoState(params.entity)
base/content/gui/gui/statistics/statistic_towns.tl:62
local state = town_cargo_util.getTownCargoState(entity)

getLevelAndFraction(exp : integer) : integer, number, integer, integer base/tealdef/game_mechanics/towns/town_cargo.d.tl:32

Aufruf: town_cargo_util.getLevelAndFraction(…)

return: current level, fraction/percentage reached of current level, experience needed for current level, experience needed for next level

Rückgabe integer, number, integer, integer

Im Basisspiel verwendet: 8-mal in 6 Dateien

base/content/game_mechanics/game_mechanics/towns/town_growth.script.tl:87

local newLevel = town_cargo_util.getLevelAndFraction(exp)
base/content/game_mechanics/game_mechanics/towns/town_react_util.tl:889
local level, __fraction, __, expForNextLevel : integer, number, integer, integer = town_cargo_util.getLevelAndFraction(expState:old())
base/content/gui/gui/debug_panel/make_entity_debug_panel.tl:465
local __level, __fraction, expForCurrLevel, expForNextLevel : integer, number, integer, integer = town_cargo_util.getLevelAndFraction(exp)
base/content/gui/gui/entity_window/town/town_eow.script.tl:30
local level, fraction, __expForCurrLevel, __expForNextLevel : integer, number, integer, integer = town_cargo_util.getLevelAndFraction(exp)
base/content/gui/gui/main/town_hud_react_util.tl:87
local __level, fraction, __expForCurrLevel, __expForNextLevel : integer, number, integer, integer = town_cargo_util.getLevelAndFraction(state.experience)
base/content/gui/gui/statistics/statistic_towns.tl:63
local level : integer = town_cargo_util.getLevelAndFraction(state.experience)

getGrowthFactor(townEntity : Engine.Entity, scriptState : TownsGrowthState) : number base/tealdef/game_mechanics/towns/town_cargo.d.tl:33

Aufruf: town_cargo_util.getGrowthFactor(…)

Hinweise

Wachstumsfaktor einer Stadt aus TownGrowthFunction.getGrowthFactor. Er hängt von den seit initialLevel gewonnenen Leveln und dem erreichten Anteil des aktuellen Levels ab.

Parameter Typ Beschreibung
townEntity Engine.Entity Stadt-Entität.
scriptState TownsGrowthState Zustand des Stadtwachstums-Scripts.

Rückgabe number: Wachstumsfaktor der Stadt.

Im Basisspiel verwendet: 3-mal in 3 Dateien

base/content/game_mechanics/game_mechanics/towns/town_growth.script.tl:373

local baseFactor = town_cargo_util.getGrowthFactor(townEntity, scriptState)
base/content/game_mechanics/game_mechanics/towns/town_util_parallel.script.tl:279
local growthFactor =  town_cargo_util.getGrowthFactor(townEntity, scriptState.state)
base/content/gui/gui/debug_panel/make_entity_debug_panel.tl:463
local growthFactor =  town_cargo_util.getGrowthFactor(entityAndRevisionState:old().entity, scriptState.state)

TownGrowthConfig

record global base/tealdef/game_mechanics/towns/town_cargo.d.tl:36

global record TownGrowthConfig

Hinweise

Erfahrungseinstellungen des Stadtwachstums-Scripts, geladen aus town_growth_config.res.

Felder

Name Typ Beschreibung
expPerCargoItemToTown integer Grunderfahrung pro Gut, das an ein Stadtgebäude geliefert wird (10). Wird mit 2^tier der Güterkategorie und mit dem Erfahrungsfaktor der Stadt multipliziert.
expPerPersonArriveAtTown integer Grunderfahrung pro Person, die mit einer Linie in der Stadt ankommt (5). Wird mit 2^tier multipliziert. Die Stufe ist 0 für Fahrten innerhalb der Stadt, 1 aus einer Nachbarstadt und 2 aus jeder anderen Stadt.
expBaseTownLevel integer Erfahrung, die für Level 2 nötig ist (1000). Jedes weitere Level braucht TownCargoUtil.townExpScaling-mal so viel wie das vorherige.