omegaflames
Warlord
- Joined
- Sep 21, 2012
- Messages
- 181
I'm trying to change the spell for exploring a lair (specifically the SPELL_EXPLORE_LAIR_RUINS one in this case, but since all of them have the same PyRequirement then really all of them) so that it can't be explored if it's on a plot that is owned by someone else. For the life of me I can't get the below code to prevent Cardith from clearing the ruin in my territory with his scout. Any help would be greatly appreciated.
Spoiler :
Code:
def reqExploreLair(caster):
if caster.isOnlyDefensive():
return False
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_SIEGE'):
return False
if caster.isBarbarian():
return False
if caster.getDuration() > 0:
return False
if caster.getSpecialUnitType() == gc.getInfoTypeForString('SPECIALUNIT_SPELL'):
return False
if caster.getSpecialUnitType() == gc.getInfoTypeForString('SPECIALUNIT_BIRD'):
return False
pPlayer = gc.getPlayer(caster.getOwner())
iTeam = pPlayer.getTeam()
eTeam = gc.getTeam(iTeam)
bPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
if not eTeam.isAtWar(bPlayer.getTeam()):
return False
[COLOR="Red"]pPlot = caster.plot()
if pPlot.isOwned():
iImprovement = pPlot.getImprovementType()
if gc.getImprovementInfo(iImprovement).isUnique():
if not gc.getImprovementInfo(iImprovement).getBonusConvert() == BonusTypes.NO_BONUS:
return False
if pPlot.getOwner() != caster.getOwner():
return False[/COLOR]
if pPlayer.isHuman() == False:
if pPlayer.getNumCities() < 1:
return False
return True