def canDoConscript(pUnit,replace_class,tech_req):
if pUnit.getUnitClassType() == gc.getInfoTypeForString(replace_class):
player = gc.getActivePlayer()
team = gc.getTeam(player.getTeam())
return team.isHasTech(gc.getInfoTypeForString(tech_req))
else:
return false
def doConscript(old_unit,new_unit_str,promo,price):
player = gc.getActivePlayer()
replace = old_unit.getName()
old_unit.kill(true,PlayerTypes.NO_PLAYER)
newUnit = player.initUnit(gc.getInfoTypeForString(new_unit_str), old_unit.getX(), old_unit.getY(), UnitAITypes.NO_UNITAI)
if promo <> '':
newUnit.setHasPromotion(gc.getInfoTypeForString(promo),true)
newUnit.finishMoves()
player.changeGold(-price)
m = "%s changed into %s"%(replace,newUnit.getName())
doMessage(m)