------------------------------------------------------------------------------------------------
--data to be set as needed
------------------------------------------------------------------------------------------------
local iRequiredCivilization = GameInfoTypes.CIVILIZATION_AMERICA
local tGreatPeopleTypesKeepOrDelete = { [GameInfoTypes.UNIT_GREAT_ADMIRAL] = "delete", [GameInfoTypes.UNIT_ARTIST] = "delete",
[GameInfoTypes.UNIT_ENGINEER] = "delete", [GameInfoTypes.UNIT_GREAT_GENERAL] = "delete", [GameInfoTypes.UNIT_MERCHANT] = "keep",
[GameInfoTypes.UNIT_MUSICIAN] = "delete", [GameInfoTypes.UNIT_PROPHET] = "delete", [GameInfoTypes.UNIT_SCIENTIST] = "keep",
[GameInfoTypes.UNIT_WRITER] = "delete" }
------------------------------------------------------------------------------------------------
--code to be left alone below
------------------------------------------------------------------------------------------------
for iUnit,Data in pairs(tGreatPeopleTypesKeepOrDelete) do
local sUnitClass = GameInfo.Units[iUnit].Class
for UnitRow in GameInfo.Units("Class='" .. sUnitClass .. "'") do
if not tGreatPeopleTypesKeepOrDelete[UnitRow.ID] then
tGreatPeopleTypesKeepOrDelete[UnitRow.ID] = Data
end
end
end
function OnUnitCreated(iPlayer, iUnit, hexPos, iUnknown, cultureType, iCivID, primaryColor, secondaryColor, unitFlagIndex, fogState, selected, military, notInvisible)
local pPlayer = Players[iPlayer]
local pUnit = pPlayer:GetUnitByID(iUnit)
if(pPlayer == nil or
pUnit == nil or
pUnit:IsDead()) then
return
end
local iUnitType = pUnit:GetUnitType()
if (pPlayer:GetCivilizationType() == iRequiredCivilization) and (tGreatPeopleTypesKeepOrDelete[iUnitType]) then
if tGreatPeopleTypesKeepOrDelete[iUnitType] == "delete" then
pUnit:Kill()
end
end
end
Events.SerialEventUnitCreated.Add(OnUnitCreated)