pTeam = gc.getTeam(iTeam)
if pTeam.isHasTech(gc.getInfoTypeForString('TECH_OPTICS')):
pPlayer = gc.getPlayer(iPlayer)
iSettlerClass = gc.getInfoTypeForString("UNITCLASS_SETTLER")
iNewUnitType = gc.getInfoTypeForString("UNIT_COLONIST")
iSettlerUnits = pPlayer.getUnitClassCount(iSettlerClass)
if iSettlerUnits > 0:
lPlots = []
(loopUnit, iter) = pPlayer.firstUnit(False)
# kill off old units but keep track of x,y positions
while (loopUnit):
if loopUnit.getUnitClassType() == iSettlerClass:
lPlots.append((loopUnit.getX(), loopUnit.getY()))
loopUnit.kill(False, -1)
(loopUnit, iter) = pPlayer.nextUnit(iter, False)
# create replacements
for x, y in lPlots:
pPlayer.initUnit(iNewUnitType, x, y, UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)