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: 8 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_util.tl:33
local calculateNumberOfPermits = function(companyProgress : CompaniesGrowthState.CompanyData, metadata : ConstructionDescMetadata, accumulate : boolean) : integ
base/content/game_mechanics/game_mechanics/company/company_progression_util.tl:42
local function getNumberOfExtraPermits(extraPermitsAggregatedPerRank : {string : {{integer, integer}}}, companyData : CompaniesGrowthState.CompanyData, permitKe

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"

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/gui/gui/game_bar/game_bar.tl:397

if potentialLevel == company_progression_util.getMaxRank() then
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/game_mechanics/game_mechanics/achievements/achievements.script.tl:285
local maxRank : integer = company_progression_util.getMaxRank()

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/gui/gui/game_bar/game_bar.tl:389

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/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())

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/gui/gui/game_bar/game_bar.tl:393

local _level, _fraction, expForCurrLevel, expForNextLevel : integer, number, integer, integer = company_progression_util.getLevelAndFraction(basePopulation, exp
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)

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).