Code:
local iYourTeam
local iYourCiv = GameInfoTypes.CIVILIZATION_yourCiv -- your civ
local iDramaTech = GameInfoTypes.TECH_DRAMA
local iGRratePlus40policy = GameInfoTypes.POLICY_GRratePlus40 -- dummy policy that uses GreatWriterRateModifier column
local pYourPlayer
local function onTeamTechResearched(iTeam, iTech, iChange)
if iTech == iDramaTech and iTeam == iYourTeam then
print('great writer rate before', pYourPlayer:GetGreatWriterRateModifier())
pYourPlayer:SetNumFreePolicies(1)
pYourPlayer:SetNumFreePolicies(0)
pYourPlayer:SetHasPolicy(iGRratePlus40policy, true)
local pCapitalCity = pYourPlayer:GetCapitalCity()
pYourPlayer:InitUnit(GameInfoTypes.UNIT_WRITER, pCapitalCity:GetX(), pCapitalCity:GetY())
GameEvents.TeamTechResearched.Remove( onTeamTechResearched )
print('great writer rate after', pYourPlayer:GetGreatWriterRateModifier())
end
end
for iPlayer = 0, GameDefines.MAX_MAJOR_CIVS - 1, 1 do
local pPlayer = Players[iPlayer]
if pPlayer:IsEverAlive() and pPlayer:GetCivilizationType() == iYourCiv then
iYourTeam = pPlayer:GetTeam()
pYourPlayer = pPlayer
GameEvents.TeamTechResearched.Add( onTeamTechResearched )
break
end
end