Skip to content

company_progression_util

Source: base/tealdef/game_mechanics/company/company_progression_util.d.tl

Notes

Company experience and rank, read from the ::game_mechanics/company/company_progression.gs game script.

CompaniesGrowthState

record global base/tealdef/game_mechanics/company/company_progression_util.d.tl:3

global record CompaniesGrowthState

Notes

State of the company progression game script.

Fields

Name Type Description
companyState {Engine.Entity : CompanyData} Player entity -> progression.

CompaniesGrowthState.CompanyData

record base/tealdef/game_mechanics/company/company_progression_util.d.tl:4

record CompanyData

Notes

Progression of one company.

Used in the base game: 9 times in 3 files

base/content/game_mechanics/game_mechanics/company/company.tl:865

local companyProgressionState = engine_react_util.useStepState(function() : CompaniesGrowthState.CompanyData
base/content/game_mechanics/game_mechanics/company/company_progression_util.tl:42
local function getNumberOfExtraPermits(extraPermitsAggregatedPerRank : {string : {{integer, integer}}}, companyData : CompaniesGrowthState.CompanyData, permitKe
base/content/game_mechanics/game_mechanics/company/company_util.tl:33
local calculateNumberOfPermits = function(companyProgress : CompaniesGrowthState.CompanyData, metadata : ConstructionDescMetadata, accumulate : boolean) : integ

Fields

Name Type Description
experience integer Experience points; never lower than the highest world population reached.
level integer Rank the player has applied (unlocks perks).
potentialLevel integer Rank reached by experience; the player applies it with applyLevel.
ticketPriceMultiplier number Ticket price multiplier of the reached rank, or nil.

CompanyProgressionUtil

record global base/tealdef/game_mechanics/company/company_progression_util.d.tl:13

global record CompanyProgressionUtil

Load: local company_progression_util = ug_require "::/game_mechanics/company/company_progression_util.tl" as CompanyProgressionUtil

Notes

Company experience and rank.

Functions

getXpNeededForRank(basePopulation : integer, rank : integer) : integer base/tealdef/game_mechanics/company/company_progression_util.d.tl:14

Call as company_progression_util.getXpNeededForRank(…)

Notes

Returns the experience needed for a rank.

Parameter Type Description
basePopulation integer World population at game start.
rank integer Rank.

Returns integer: Experience (0 for ranks below 1).

Used in the base game: 1 time in 1 file

base/content/game_mechanics/game_mechanics/company/company_react_util.tl:88

rank.requiredExp = company_progression_util.getXpNeededForRank(basePopulation, i)

getMaxRank() : integer base/tealdef/game_mechanics/company/company_progression_util.d.tl:15

Call as company_progression_util.getMaxRank(…)

Notes

Returns the highest rank.

Returns integer: 15.

Used in the base game: 5 times in 4 files

base/content/game_mechanics/game_mechanics/achievements/achievements.script.tl:285

local maxRank : integer = company_progression_util.getMaxRank()
base/content/game_mechanics/game_mechanics/company/company_react_util.tl:84
for i=1,company_progression_util.getMaxRank() do
base/content/game_mechanics/game_mechanics/subventions/subvention_util.tl:19
local companyMaxRank = math.max(company_progression_util.getMaxRank(), 2)
base/content/gui/gui/game_bar/game_bar.tl:397
if potentialLevel == company_progression_util.getMaxRank() then

getTicketPriceMultiplierForLevel(level : integer) : number base/tealdef/game_mechanics/company/company_progression_util.d.tl:16

Call as company_progression_util.getTicketPriceMultiplierForLevel(…)

Notes

Returns the ticket price multiplier of a rank, linear from 1 at rank 1 to ticketPriceMultiplierAtMaxLevel at the highest rank.

Parameter Type Description
level integer Rank.

Returns number: Multiplier, or nil at rank 1 or when the config multiplier is 1.

Used in the base game: 1 time in 1 file

base/content/game_mechanics/game_mechanics/company/company_growth.script.tl:48

scriptState.companyState[companyEntity].ticketPriceMultiplier = company_progression_util.getTicketPriceMultiplierForLevel(newLevel)

getExtraPermits(companyData : CompaniesGrowthState.CompanyData) : {ResName : integer} base/tealdef/game_mechanics/company/company_progression_util.d.tl:17

Call as company_progression_util.getExtraPermits(…)

Notes

Returns the permits of every permit key that the company has gained by rank.

Parameter Type Description
companyData CompaniesGrowthState.CompanyData Progression of the company.

Returns {ResName : integer}: Permit key -> number of permits.

Used in the base game: 1 time in 1 file

base/content/game_mechanics/game_mechanics/company/company_util.tl:93

result.extraPermits = company_progression_util.getExtraPermits(progressionState)

getNumberOfExtraPermits(companyData : CompaniesGrowthState.CompanyData, permitKey : ResName) : integer base/tealdef/game_mechanics/company/company_progression_util.d.tl:18

Call as company_progression_util.getNumberOfExtraPermits(…)

Notes

Returns the permits of one permit key that the company has gained by rank.

Parameter Type Description
companyData CompaniesGrowthState.CompanyData Progression of the company.
permitKey ResName Permit key.

Returns integer: Number of permits.

Used in the base game: 2 times in 2 files

base/content/game_mechanics/game_mechanics/company/company_react_util.tl:53

permits = (permits or 0) + company_progression_util.getNumberOfExtraPermits({level = rank.level}, actualPermitKey)
base/content/game_mechanics/game_mechanics/company/company_util.tl:78
local extraPermits = company_progression_util.getNumberOfExtraPermits(companyProgress, actualPermitKey)

getCompanyProgressionState(entity : Engine.Entity) : CompaniesGrowthState.CompanyData base/tealdef/game_mechanics/company/company_progression_util.d.tl:19

Call as company_progression_util.getCompanyProgressionState(…)

Notes

Reads the progression of a company; the rank is replaced by enforcedLevel from the growth config if set.

Parameter Type Description
entity Engine.Entity Player entity.

Returns CompaniesGrowthState.CompanyData: Progression, or nil.

Used in the base game: 8 times in 6 files

base/content/game_mechanics/game_mechanics/company/company.tl:866

return company_progression_util.getCompanyProgressionState(api.engine.util.getPlayer())
base/content/game_mechanics/game_mechanics/company/company_react_util.tl:212
local progressionState = company_progression_util.getCompanyProgressionState(companyEntity)
base/content/game_mechanics/game_mechanics/company/company_util.tl:87
local progressionState = company_progression_util.getCompanyProgressionState(companyEntity)
base/content/game_mechanics/game_mechanics/subventions/subventions.script.tl:245
local companyProgressionState = company_progression_util.getCompanyProgressionState(api.engine.util.getPlayer())
base/content/gui/gui/construction/construction.tl:210
local companyProgress = company_progression_util.getCompanyProgressionState(api.engine.util.getPlayer())
base/content/gui/gui/game_bar/game_bar.tl:389
local companyProgressionState = company_progression_util.getCompanyProgressionState(api.engine.util.getPlayer())

getLevelAndFraction(basePopulation : integer, exp : integer) : integer, number, integer, integer base/tealdef/game_mechanics/company/company_progression_util.d.tl:22

Call as company_progression_util.getLevelAndFraction(…)

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

Returns integer, number, integer, integer

Used in the base game: 3 times in 3 files

base/content/game_mechanics/game_mechanics/company/company_growth.script.tl:39

local newLevel = company_progression_util.getLevelAndFraction(basePopulation, exp)
base/content/game_mechanics/game_mechanics/subventions/subventions.script.tl:250
companyRank = company_progression_util.getLevelAndFraction(basePopulation, experience)
base/content/gui/gui/game_bar/game_bar.tl:393
local _level, _fraction, expForCurrLevel, expForNextLevel : integer, number, integer, integer = company_progression_util.getLevelAndFraction(basePopulation, exp

CompanyGrowthConfig

record global base/tealdef/game_mechanics/company/company_progression_util.d.tl:25

global record CompanyGrowthConfig

Notes

Config of company growth (game_script_config resource ::/game_mechanics/company/company_growth_config.res).

Fields

Name Type Description
enforcedLevel integer default/vanilla is nil
ticketPriceMultiplierAtMaxLevel number Ticket price multiplier at the highest rank (0.5 in the base game).