pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HOMELAND'), False)
if pPlot.isOwned():
if (pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_DEFENDER')) and pPlot.getOwner() == pUnit.getOwner()):
if (pUnit.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_MELEE') or pUnit.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_RECON') or pUnit.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ARCHER') or pUnit.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_MOUNTED')):
pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HOMELAND'), True)