Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/globalscripts/Civilisations.js
- This file was added.
/** | |||||
* Loads history and gameplay data of all civs. | |||||
* | |||||
* @param selectableOnly {boolean} - Only load civs that can be selected | |||||
* in the gamesetup. Scenario maps might set non-selectable civs. | |||||
*/ | |||||
function loadCivFiles(selectableOnly) | |||||
{ | |||||
let propertyNames = [ | |||||
"Code", "Culture", "Music", "CivBonuses", "StartEntities", | |||||
"AINames", "SkirmishReplacements", "SelectableInGameSetup"]; | |||||
let civData = {}; | |||||
for (let filename of Engine.ListDirectoryFiles("simulation/data/civs/", "*.json", false)) | |||||
{ | |||||
let data = Engine.ReadJSONFile(filename); | |||||
for (let prop of propertyNames) | |||||
if (data[prop] === undefined) | |||||
throw new Error(filename + " doesn't contain " + prop); | |||||
if (selectableOnly && !data.SelectableInGameSetup) | |||||
continue; | |||||
const template = Engine.GetTemplate("special/players/" + data.Code); | |||||
data.Name = template.Identity.GenericName; | |||||
data.Emblem = "session/portraits/" + template.Identity.Icon; | |||||
data.History = template.Identity.History; | |||||
civData[data.Code] = data; | |||||
} | |||||
return civData; | |||||
} | |||||
function getCivCodes(selectableOnly) | |||||
{ | |||||
let codes = []; | |||||
for (let filename of Engine.ListDirectoryFiles("simulation/data/civs/", "*.json", false)) | |||||
{ | |||||
let data = Engine.ReadJSONFile(filename); | |||||
if (selectableOnly && !data.SelectableInGameSetup) | |||||
continue; | |||||
} | |||||
} |
Wildfire Games · Phabricator