EricNgui
CPU of 1980's Planeptune
Ok, i have made a new LUA file that make my civ trait is:Military structures within a city increases the spawn rate of Great Scientist and Engineer. Here it is:
Is this right?
Spoiler :
function GetJapaneseGreatPeopleRateChange(city)
local greatPeopleRateChange = 0
if city:IsHasBuilding(GameInfoTypes["BUILDING_BARRACKS"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
if city:IsHasBuilding(GameInfoTypes["BUILDING_ARMORY"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
if city:IsHasBuilding(GameInfoTypes["BUILDING_MILITARY_ACADEMY"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
return greatPeopleRateChange
end
function JapaneseGreatScientist(playerID)
local player = Players[playerID]
if player:IsAlive() and player:GetCivilizationType() == GameInfoTypes["CIVILIZATION_MAHOUKA"] then
for city in player:Cities() do
local greatPeopleRateChange = GetJapaneseGreatPeopleRateChange(city)
if greatPeopleRateChange > 0 then
local currentScientistRate = city:GetGreatPeopleUnitProgress(GameInfoTypes["SPECIALIST_SCIENTIST"])
local currentScientistRate = city:GetGreatPeopleUnitProgress(GameInfoTypes["SPECIALIST_ENGINEER"])
city:ChangeSpecialistGreatPersonProgressTimes100(GameInfoTypes["SPECIALIST_SCIENTIST"], currentScientistRate * greatPeopleRateChange / 100)
city:ChangeSpecialistGreatPersonProgressTimes100(GameInfoTypes["SPECIALIST_ENGINEER"], currentScientistRate * greatPeopleRateChange / 100)
end
end
end
end
GameEvents.PlayerDoTurn.Add(DefensiveGSESpawn)
local greatPeopleRateChange = 0
if city:IsHasBuilding(GameInfoTypes["BUILDING_BARRACKS"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
if city:IsHasBuilding(GameInfoTypes["BUILDING_ARMORY"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
if city:IsHasBuilding(GameInfoTypes["BUILDING_MILITARY_ACADEMY"]) then
greatPeopleRateChange = greatPeopleRateChange + 30
end
return greatPeopleRateChange
end
function JapaneseGreatScientist(playerID)
local player = Players[playerID]
if player:IsAlive() and player:GetCivilizationType() == GameInfoTypes["CIVILIZATION_MAHOUKA"] then
for city in player:Cities() do
local greatPeopleRateChange = GetJapaneseGreatPeopleRateChange(city)
if greatPeopleRateChange > 0 then
local currentScientistRate = city:GetGreatPeopleUnitProgress(GameInfoTypes["SPECIALIST_SCIENTIST"])
local currentScientistRate = city:GetGreatPeopleUnitProgress(GameInfoTypes["SPECIALIST_ENGINEER"])
city:ChangeSpecialistGreatPersonProgressTimes100(GameInfoTypes["SPECIALIST_SCIENTIST"], currentScientistRate * greatPeopleRateChange / 100)
city:ChangeSpecialistGreatPersonProgressTimes100(GameInfoTypes["SPECIALIST_ENGINEER"], currentScientistRate * greatPeopleRateChange / 100)
end
end
end
end
GameEvents.PlayerDoTurn.Add(DefensiveGSESpawn)
Is this right?
