Zum Inhalt

towns

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

Hinweise

Zustands-Records des Ruf-Scripts der Städte (town.gs) und die gemeinsamen Stadttypen (Bewertungen, Versorgung und Nachfrage, Statistiken zu Bauvorschlägen).

Globale Namen

Typen

Name Definition Beschreibung
TownRatingsSensitivityConfig {TownRatingsSensitivityConfigName : integer} Options-Index pro Empfindlichkeitsschlüssel, wie in town_ratings_sensitivity.res gespeichert (2 für den Ruf, 4 für die übrigen). difficulty_util.getScale macht aus dem Index den Empfindlichkeitswert.

TownAuthoritySeveredConnection

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

global record TownAuthoritySeveredConnection

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Felder

Name Typ Beschreibung
penalty number
refund number
severedTimestamp integer

TownProposalImpact

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

global record TownProposalImpact

Hinweise

Rufabzüge einer Stadt durch einen Bauvorschlag, berechnet von TownUtil.calculateProposalImpact. Positive Werte senken den Ruf.

Felder

Name Typ Beschreibung
trees number Abzug für entfernte minus gepflanzte Bäume (0.0025 pro gewichtetem Baum).
rocks number Abzug für entfernte minus platzierte Felsen (0.0025 pro gewichtetem Felsen).
terrainModification number Abzug für Geländepinsel, Geländeanpassung und Tunnelvolumen. Für den vollen Abzug von 1 braucht es etwa 2 Millionen Kubikmeter.
demolishedTownBuilding number Abzug für abgerissene Stadtgebäude, fractionDistrictRemoved / 0.405.
landscaping number Zusammengefasster Wert für die Landschaftsgestaltung. TownUtil.applyEventStats verwendet ihn nicht.

TownAuthorityEventFactors

record global base/tealdef/game_mechanics/towns/towns.d.tl:17

global record TownAuthorityEventFactors

Hinweise

Ruf-Zustand einer Stadt (TownState.eventFactors). Er enthält den Punktestand, den Abzug pro Grund, Statistiken zu gelieferten Gütern und die laufende Marketingkampagne.

Felder

Name Typ Beschreibung
score number range 0 .. 1
marketingInitiatedTimestamp integer Spielzeit (ms), zu der die aktuelle Marketingkampagne begonnen hat; 0, wenn keine läuft.
marketingParams TownMarketingMetadata.ConstructionDesc Einstellungen der aktuellen Marketingkampagne.
itemDelivery number range 0 .. 1
numItemsDelivered integer Seit dem letzten Stadt-Update an die Stadt gelieferte Güter.
averageItemsDelivered number Gelieferte Güter in einem gleitenden Fenster von einem halben Spieljahr.
onTimeItemDelivery number range 0 .. 1
reasonToPenalty {EventType : number} Aktueller Rufabzug pro Grund, jeweils zwischen 0 und 1.

TownAuthorityEventFactors.EventType

enum base/tealdef/game_mechanics/towns/towns.d.tl:18

enum EventType

Hinweise

Gründe für einen Rufabzug.

Im Basisspiel verwendet: 13-mal in 4 Dateien

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

function town_react_util.getStringForTownAuthorityEventFactors(event : TownAuthorityEventFactors.EventType) : string
base/content/game_mechanics/game_mechanics/towns/town_util.tl:1611
town_util.changeTownAuthorityPenalty = function(currFactors : TownAuthorityEventFactors, reason : TownAuthorityEventFactors.EventType, penaltyDelta : number, ma
base/content/game_mechanics/game_mechanics/towns/towns.script.tl:131
local penaltyOverrides : {TownAuthorityEventFactors.EventType : number} = {}
base/content/gui/gui/construction/construction_react_util.tl:3821
local aggregatedPenalty : {TownAuthorityEventFactors.EventType : number} = {}

Wert Beschreibung
"Unknown" Abzug aus einem älteren Spielstand, der noch keine Gründe gespeichert hat.
"Trees" Bäume in der Nähe der Stadt wurden entfernt.Im Spiel Entfernte Bäume · Pflanze neue Bäume, um den Ruf zu verbessern.Im Code: Removed Trees · Replant some trees to improve reputation.
"Rocks" Felsen in der Nähe der Stadt wurden entfernt.Im Spiel Entfernte Felsen · Platziere Felsen, um den Ruf zu verbessern.Im Code: Removed Rocks · Place some rocks to improve reputation.
"TerrainModification" Gelände in der Nähe der Stadt wurde verändert (Geländepinsel, Geländeanpassung, Tunnel).Im Spiel LandschaftsbauIm Code: Landscaping
"SeveredConnection" Eine Hauptverbindung zu einer anderen Stadt ist unterbrochen oder zu lang.Im Spiel Unterbrochene Hauptverbindungen · Stelle die Hauptverbindungen wieder her, um den Ruf zu verbessern.Im Code: Interrupted Main Connections · Restore main connection to improve reputation.
"FailedSubsidy" Gescheiterte Subvention. Das ist der Standardgrund des Ereignisses decreaseReputation.Im Spiel Gescheiterte SubventionIm Code: Failed Subsidy
"DemolishedTownBuilding" Stadtgebäude wurden abgerissen.Im Spiel Abgerissene GebäudeIm Code: Demolished Buildings

TownConstructionBoni

record global base/tealdef/game_mechanics/towns/towns.d.tl:37

global record TownConstructionBoni

Hinweise

Boni einer Stadt durch Konstruktionen mit town_growth-Metadaten in ihrer Nähe. Sie werden summiert und alle 20 Updates neu berechnet.

Felder

Name Typ Beschreibung
xpIncrease number Summe von xpIncrease. Der Erfahrungsmultiplikator ist 1 + xpIncrease.
trafficRatingIncrease number Summe von trafficRatingIncrease, wird zur Verkehrsbewertung addiert.
reputationRecoveryBoost number Summe von reputationRecoveryBoost, wird an TownUtil.applyEventDecay übergeben.

TownRatingsSensitivityConfigName

enum global base/tealdef/game_mechanics/towns/towns.d.tl:43

global enum TownRatingsSensitivityConfigName

Hinweise

Schlüssel der Standard-Empfindlichkeiten der Bewertungen in town_ratings_sensitivity.res, einer pro TownRatingKey.

Wert Beschreibung
"SensitivityUrbanCare" Standard-Empfindlichkeit der Rufbewertung (urban_care).
"SensitivityTrafficCongestion" Standard-Empfindlichkeit der Verkehrsbewertung.
"SensitivityPeopleHappiness" Standard-Empfindlichkeit der Zufriedenheitsbewertung.
"SensitivityCargoDelivery" Standard-Empfindlichkeit der Lieferzeitbewertung.
"SensitivityNoise" Standard-Empfindlichkeit der Lärmbewertung.
"SensitivityPollution" Standard-Empfindlichkeit der Verschmutzungsbewertung.

TownState

record global base/tealdef/game_mechanics/towns/towns.d.tl:54

global record TownState

Hinweise

Ruf- und Bewertungszustand einer Stadt im Game-Script town.gs. Du bekommst ihn mit TownUtil.getTownState oder TownUtil.externalGetTownState.

Felder

Name Typ Beschreibung
townEntity EntityUtil.EntityAndRevision Stadt-Entität mit ihrer Revision.
sizeFactors {number}
authorityScore number Gesamtbewertung der Stadt zwischen 0 und 1. Sie ist die niedrigste der sechs Bewertungen (TownUtil.calcAuthorityScore).
deliveryRating RatingLevel Bewertungsstufe der Versorgung, bei jedem Stadt-Update neu berechnet. Eine Änderung sendet das Ereignis Towns/DeliveryRatingChanged.
constructionBoni TownConstructionBoni Boni durch Konstruktionen in der Nähe.
eventFactors TownAuthorityEventFactors Ruf-Zustand der Stadt.
lastApplyTime integer Spielzeit (ms) des letzten Stadt-Updates.
cachedRatings {string : CachedRating} Zuletzt berechnete Bewertungen pro Bewertungsschlüssel, geschrieben von TownUtil.calcAuthorityScore.
ratingSensitivity {string : number} Empfindlichkeit pro Bewertungsschlüssel, die für diese Stadt mit dem Ereignis setTownRatingSensitivity gesetzt wurde. Bei nil gelten die Standardwerte.

TownState.CachedRating

record base/tealdef/game_mechanics/towns/towns.d.tl:62

record CachedRating

Hinweise

Zuletzt berechneter Wert einer Bewertung.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_util.tl:747

function town_util.getRatingFromCache(rating : TownUtil.Rating, townEntity : Engine.Entity, townState : TownState) : TownState.CachedRating

Felder

Name Typ Beschreibung
value number Bewertungswert zwischen 0 und 1.
critical boolean Wird gesetzt, wenn die Bewertung auf VeryPoor fällt, und gelöscht, sobald sie wieder über Poor liegt.

TownsState

record global base/tealdef/game_mechanics/towns/towns.d.tl:70

global record TownsState

Hinweise

Zustand des Stadt-Game-Scripts town.gs (towns.script).

Felder

Name Typ Beschreibung
townStates {TownState} Zustand jeder Stadt.
version integer Version des Zustandsaufbaus. TownLegacyUtil.updateLegacyState migriert ältere Versionen.

CargoTypeSupplyDemand

record global base/tealdef/game_mechanics/towns/towns.d.tl:75

global record CargoTypeSupplyDemand

Hinweise

Versorgung und Nachfrage einer Güterart in einem Stadtgebiet.

Felder

Name Typ Beschreibung
cargoTypeId CargoTypeId Güterart.
supply integer Gelieferte Menge, höchstens demand.
demand integer Nachgefragte Menge.

CargoTypeSupplyDemands

record global base/tealdef/game_mechanics/towns/towns.d.tl:81

global record CargoTypeSupplyDemands

Hinweise

Versorgung und Nachfrage pro Güterart für jeden Gebietstyp.

Felder

Name Typ Beschreibung
residential {CargoTypeSupplyDemand} Güterversorgung und -nachfrage des Wohngebiets.
commercial {CargoTypeSupplyDemand} Güterversorgung und -nachfrage des Gewerbegebiets.
industrial {CargoTypeSupplyDemand} Güterversorgung und -nachfrage des Industriegebiets.

TownCapacities

record global base/tealdef/game_mechanics/towns/towns.d.tl:87

global record TownCapacities

Hinweise

Personenkapazität einer Stadt pro Gebietstyp.

Felder

Name Typ Beschreibung
residential integer Personenkapazität des Wohngebiets.
commercial integer Personenkapazität des Gewerbegebiets.
industrial integer Personenkapazität des Industriegebiets.

TownCapacityUsages

record global base/tealdef/game_mechanics/towns/towns.d.tl:93

global record TownCapacityUsages

Hinweise

Belegte und gesamte Kapazität einer Stadt pro Gebietstyp.

Felder

Name Typ Beschreibung
residential UtilTown.TownCapacityUsage Kapazitätsauslastung des Wohngebiets.
commercial UtilTown.TownCapacityUsage Kapazitätsauslastung des Gewerbegebiets.
industrial UtilTown.TownCapacityUsage Kapazitätsauslastung des Industriegebiets.

GrowthSummand

record global base/tealdef/game_mechanics/towns/towns.d.tl:99

global record GrowthSummand

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Felder

Name Typ Beschreibung
label string
value integer

LandUseGrowth

record global base/tealdef/game_mechanics/towns/towns.d.tl:104

global record LandUseGrowth

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Felder

Name Typ Beschreibung
summands {GrowthSummand}

RatingLevel

enum global base/tealdef/game_mechanics/towns/towns.d.tl:108

global enum RatingLevel

Hinweise

Sechsstufige Bewertungsstufe einer Stadtbewertung. TownUtil.getFactorRatingLevel ordnet einem Wert zwischen 0 und 1 eine Stufe in Schritten von 1/6 zu.

Wert Beschreibung
"VeryPoor" Niedrigste Stufe (Wert unter 1/6), im Spiel „Sehr schlecht“.Im Spiel Sehr schlecht · StagnierendIm Code: Very Poor · Stagnant
"Poor" Zweite Stufe („Schlecht“).Im Spiel Schlecht · Sehr Langsames WachstumIm Code: Poor · Growing Very Slowly
"Mediocre" Dritte Stufe („Mittelmässig“).Im Spiel Mittelmässig · Langsames WachstumIm Code: Mediocre · Growing Slowly
"Good" Vierte Stufe („Gut“).Im Spiel Gut · WachsendIm Code: Good · Growing
"VeryGood" Fünfte Stufe („Sehr gut“). Ab dieser Stufe lassen Städte Subventionen zu (TownUtil.getSubventionsEnabled).Im Spiel Sehr gut · Schnell WachsendIm Code: Very Good · Growing Fast
"Excellent" Höchste Stufe (Wert ab 5/6), im Spiel „Ausgezeichnet“.Im Spiel Ausgezeichnet · Unfassbar schnell wachsendIm Code: Excellent · Growing Lightning Fast

StationSamples

record global base/tealdef/game_mechanics/towns/towns.d.tl:117

global record StationSamples

Hinweise

Ein- und verladene sowie verlorene Güter pro Jahr an den Stationen einer Stadt. Nur auskommentierter Code in town_util.tl verwendet den Typ.

Felder

Name Typ Beschreibung
loaded integer Pro Jahr verladene Güter (Logbuch-Wert itemsLoaded).
lost integer Pro Jahr verlorene Güter (Logbuch-Wert itemsLost).

ProposalStats

record global base/tealdef/game_mechanics/towns/towns.d.tl:122

global record ProposalStats

Hinweise

Auswirkungen eines Bauvorschlags auf jede Stadt in der Nähe, berechnet von TownUtil.getProposalStats. Das Stadt-Script macht daraus Rufabzüge, bevor der Vorschlag gebaut wird.

Felder

Name Typ Beschreibung
townStats {Engine.Entity : TownProposalStats} Auswirkungen pro betroffener Stadt-Entität. Leer, wenn der Vorschlag nicht vom Spieler stammt.

ProposalStats.TownProposalStats

record base/tealdef/game_mechanics/towns/towns.d.tl:123

record TownProposalStats

Hinweise

Auswirkungen des Vorschlags auf eine Stadt. Baum- und Felszahlen sind nach der Entfernung zur Stadt gewichtet (api.engine.util.town.getImpactFromDistance).

Im Basisspiel verwendet: 3-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_util.tl:864

function town_util.calculateProposalImpact(stats : ProposalStats.TownProposalStats) : TownProposalImpact

Felder

Name Typ Beschreibung
addedTrees number Gewichtete Zahl gepflanzter Bäume, nachdem im selben Vorschlag entfernte Bäume gegengerechnet wurden.
removedTrees number Gewichtete Zahl entfernter Bäume, skaliert mit dem reputationFactor des jeweiligen Baummodells.
addedRocks number Gewichtete Zahl platzierter Felsen, nachdem im selben Vorschlag entfernte Felsen gegengerechnet wurden.
removedRocks number Gewichtete Zahl entfernter Felsen.
removedBuildings {Building} Stadtgebäude, die der Vorschlag entfernt, ohne sie zu ersetzen.
fractionDistrictRemoved number Entfernte Personenkapazität geteilt durch die Kapazität des Gebiets, zu dem das Gebäude gehört, summiert über alle entfernten Gebäude.
terrainMod TerrainMod Änderungen des Geländevolumens.
tunnelVolumeAdded number Netto hinzugekommenes Tunnelvolumen (Länge mal Breite mal Höhe), gewichtet nach der Entfernung zur Stadt.

ProposalStats.TownProposalStats.Building

record base/tealdef/game_mechanics/towns/towns.d.tl:124

record Building

Hinweise

Ein Stadtgebäude, das der Vorschlag entfernt.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_util.tl:1174

local building : ProposalStats.TownProposalStats.Building = {plotSize = plotSize, level = townBuilding.level}

Felder

Name Typ Beschreibung
plotSize integer Grundstücksgröße des Gebäudes, Anzahl der Parzellen mal Tiefe.
level integer Level des Stadtgebäudes.

ProposalStats.TownProposalStats.TerrainMod

record base/tealdef/game_mechanics/towns/towns.d.tl:128

record TerrainMod

Hinweise

Änderungen des Geländevolumens durch den Vorschlag.

Felder

Name Typ Beschreibung
brushVolumeAdded number Mit dem Geländepinsel aufgetragenes Geländevolumen in Kubikmetern.
brushVolumeRemoved number Mit dem Geländepinsel abgetragenes Geländevolumen in Kubikmetern.
terrainAlignmentVolumeAdded number Durch die Geländeanpassung von Konstruktionen aufgetragenes Geländevolumen. Es wird mit einem Faktor skaliert, der von 1 auf 0,5 fällt, während die Baufläche des Vorschlags von 10.000 auf 50.000 wächst.
terrainAlignmentVolumeRemoved number Durch die Geländeanpassung von Konstruktionen abgetragenes Geländevolumen, skaliert wie terrainAlignmentVolumeAdded.

TownProposalActions

record global base/tealdef/game_mechanics/towns/towns.d.tl:148

global record TownProposalActions

Hinweise

Aktionen eines Vorschlags, die die Bewertung einer Stadt verbieten kann, pro betroffener Stadt (TownUtil.getProposalActions).

Details

Das Basisspiel prüft sie nur in auskommentiertem Code (guiHandleEvent in towns.script.tl). In getProposalActions landen die Einzugsgebiete von Stationen mit Flughafen bei BuildStation und die von Stationen ohne Flughafen bei BuildAirport.

Felder

Name Typ Beschreibung
townActions {Engine.Entity : {Action}} Aktionen pro betroffener Stadt-Entität.

TownProposalActions.Action

enum base/tealdef/game_mechanics/towns/towns.d.tl:149

enum Action

Hinweise

Aktionstypen, die TownUtil.getActionAllowed prüft.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/game_mechanics/game_mechanics/towns/town_util.tl:1522

local function appendResult(catchments : {Type.CatchmentArea}, action : TownProposalActions.Action)

Wert Beschreibung
"BuildStation" Eine Station oder Haltestelle bauen; erlaubt ab einer Stufe über VeryPoor.
"DestroyBuilding" Ein Stadtgebäude abreißen; erlaubt ab einer Stufe über Poor.
"BuildAirport" Einen Flughafen bauen; erlaubt ab einer Stufe über Mediocre.

TownLegacyUtil

record global base/tealdef/game_mechanics/towns/towns.d.tl:158

global record TownLegacyUtil

Hinweise

Migration alter TownsState-Aufbauten (game_mechanics/towns/town_legacy_util.tl).

Felder

Name Typ Beschreibung
currentVersion integer Aktuelle Zustandsversion (8).

Funktionen

updateLegacyState(townsState : TownsState) base/tealdef/game_mechanics/towns/towns.d.tl:160

Hinweise

Migriert den Zustand des Stadt-Scripts von einer älteren Version auf currentVersion und setzt version. Das Stadt-Script ruft die Funktion beim Ereignis handleLegacy auf.

Parameter Typ Beschreibung
townsState TownsState Zustand des Stadt-Scripts; wird direkt geändert.