ProjectType (Civ5 Type)

From Civilization Modding Wiki
Jump to: navigation, search

This page is a part of the Lua and UI Reference (Civ5).

ID.png The ProjectType pseudo-type is actually a regular integer. Pseudo-types do not exist in Lua, they only serve a documentation purpose on the wiki!
  • DB.png Integers labeled as ProjectType corresponds to the ID column of the Projects XML table.

XML: the Projects table

Here are the ID and Type columns found in this table.

ID Type


Here are different ways to query the database to retrieve the ID from the type. Those examples will return and assign the integer value 0. See also GameInfo.

local id = GameInfo.Projects.PROJECT_MANHATTAN_PROJECT.ID
local id = GameInfo["Projects"].["PROJECT_MANHATTAN_PROJECT"].ID
local id = GameInfo.Projects{Type="PROJECT_MANHATTAN_PROJECT"}().ID

Alternatively you could use the ID or the type to retrieve the value of the Cost column. Those examples will return and assign the value 750.

local cost = GameInfo.Projects[0].Cost
local cost = GameInfo["Projects"][0]["Cost"]
local cost = GameInfo.Projects{ID=0}().Cost

Used by

string GetHelpTextForProject(ProjectType project, bool includeRequirementsInfo)
bool City:CanCreate(ProjectType project, int continue, int testVisible)
City:ChooseProduction(UnitType trainUnit, BuildingType constructBuilding, ProjectType createProject, bool finish, bool front)
int City:GetFirstProjectOrder(ProjectType project)
ProjectType City:GetProductionProject()
int City:GetProjectProductionModifier(ProjectType project)
int City:GetProjectProductionTurnsLeft(ProjectType project, int num)
int City:GetProjectPurchaseCost(ProjectType project)
Game.CityPurchaseBuilding(City city, UnitType unitType, int buildingType, ProjectType projectTypes)
Game.CityPurchaseProject(City city, UnitType unitType, int buildingType, ProjectType projectTypes)
Game.CityPurchaseUnit(City city, UnitType unitType, int buildingType, ProjectType projectTypes)
int Game.GetProjectCreatedCount(ProjectType index)
bool Game.IsProjectMaxedOut(ProjectType index, int extra)
bool Player:CanCreate(ProjectType project, bool continue, bool testVisible)
int Player:GetProjectProductionNeeded(ProjectType project)
bool Player:IsProductionMaxedProject(ProjectType project)
Team:ChangeProjectCount(ProjectType index, int change)
int Team:GetProjectArtType(ProjectType index, int number)
int Team:GetProjectCount(ProjectType index)
int Team:GetProjectDefaultArtType(ProjectType index)
int Team:GetProjectMaking(ProjectType index)
bool Team:IsProjectAndArtMaxedOut(ProjectType index)
bool Team:IsProjectMaxedOut(ProjectType index, int extra)
Team:SetProjectArtType(ProjectType index, int number, int value)
Team:SetProjectDefaultArtType(ProjectType index, int value)

The initial version of this page was created by the Civ5 API Bot, see the Civ5 API Reference FAQ. Some of the texts come from the 2kgames' wiki and most of code samples are copyrighted to Firaxis.
Functions' signatures were either copied from the 2kgames' wiki, or infered from the Lua source files and the binaries. Errors are possible.
Contributors may find help in the Contributors guide to the Civ5 API.