def exploreLairBigBad(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['UNIT_SPIDER', 'UNIT_GARGOYLE', 'UNIT_OGRE']
lPromoList = ['PROMOTION_MUTATED', 'PROMOTION_CANNIBALIZE', 'PROMOTION_MOBILITY1', 'PROMOTION_STRONG', 'PROMOTION_BLITZ', 'PROMOTION_COMMAND1', 'PROMOTION_HEROIC_STRENGTH', 'PROMOTION_HEROIC_DEFENSE', 'PROMOTION_MAGIC_IMMUNE', 'PROMOTION_STONESKIN', 'PROMOTION_VALOR', 'PROMOTION_VILE_TOUCH']
lHenchmanList = ['UNIT_AXEMAN', 'UNIT_WOLF', 'UNIT_AZER', 'UNIT_OGRE', 'UNIT_CHAOS_MARAUDER', 'UNIT_WOLF_RIDER', 'UNIT_MISTFORM', 'UNIT_LION']
if self.grace() == False:
lList = lList + ['UNIT_AIR_ELEMENTAL', 'UNIT_EARTH_ELEMENTAL', 'UNIT_FIRE_ELEMENTAL', 'UNIT_CHAMPION', 'UNIT_ASSASSIN', 'UNIT_VAMPIRE', 'UNIT_MYCONID', 'UNIT_EIDOLON', 'UNIT_OGRE_WARCHIEF', 'UNIT_WEREWOLF']
lPromoList = lPromoList + ['PROMOTION_FIRE2', 'PROMOTION_AIR2', 'PROMOTION_HERO', 'PROMOTION_MARKSMAN', 'PROMOTION_SHADOWWALK']
if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_SNOW'):
lHenchmanList = lHenchmanList + ['UNIT_FROSTLING_ARCHER', 'UNIT_FROSTLING_WOLF_RIDER', 'UNIT_POLAR_BEAR']
if pPlot.isHills():
lList = lList + ['UNIT_HILL_GIANT','UNIT_HILL_GIANT','UNIT_HILL_GIANT']
lPromoList = ['PROMOTION_GUERILLA1','PROMOTION_GUERILLA2']
if pPlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_FOREST'):
lList = lList + ['UNIT_TREANT','UNIT_SATYR', 'UNIT_SATYR']
lPromoList = lPromoList + ['PROMOTION_WOODSMAN1', 'PROMOTION_WOODSMAN2']
lHenchmanList = lHenchmanList + ['UNIT_TIGER', 'UNIT_BABY_SPIDER']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_BARROW'):
lList = lList + ['UNIT_LICH', 'UNIT_WRAITH', 'UNIT_SPECTRE']
lPromoList = lPromoList + ['PROMOTION_DEATH2','PROMOTION_DEATH3']
lHenchmanList = lHenchmanList + ['UNIT_SKELETON', 'UNIT_PYRE_ZOMBIE']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_RUINS'):
lList = lList + ['UNIT_MANTICORE']
lPromoList = lPromoList + ['POISONED_BLADE']
lHenchmanList = lHenchmanList + ['UNIT_LIZARDMAN', 'UNIT_GORILLA']
if CyGame().getGlobalCounter() > 40:
lList = lList + ['UNIT_PIT_BEAST', 'UNIT_DEATH_KNIGHT', 'UNIT_BALOR']
lPromoList = lPromoList + ['PROMOTION_FEAR']
lHenchmanList = lHenchmanList + ['UNIT_IMP', 'UNIT_HELLHOUND']
if pPlot.isWater():
lList = ['UNIT_WATER_ELEMENTAL', 'UNIT_SEA_SERPENT', 'UNIT_STYGIAN_GUARD', 'UNIT_KRAKEN', 'UNIT_PIRATE']
lHenchmanList = ['UNIT_DROWN']
sMonster = lList[CyGame().getSorenRandNum(len(lList), "Pick Monster")-1]
sHenchman = lHenchmanList[CyGame().getSorenRandNum(len(lHenchmanList), "Pick Henchman")-1]
sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
iUnit = gc.getInfoTypeForString(sMonster)
iHenchman = gc.getInfoTypeForString(sHenchman)
newUnit = self.addUnitFixed(caster,iUnit)
if newUnit != -1:
newUnit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
newUnit.setName(self.MarnokNameGenerator(newUnit))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BIGBAD",()),'',1,gc.getUnitInfo(iUnit).getButton(),ColorTypes(7),newUnit.getX(),newUnit.getY(),True,True)
bPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
for i in range (CyGame().getSorenRandNum(5, "Pick Henchmen")):
bPlayer.initUnit(iHenchman, newUnit.getX(), newUnit.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
return 0
def exploreLairBad(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['DEATH', 'COLLAPSE']
if caster.isAlive():
lList = lList + ['CRAZED', 'DEMONIC_POSSESSION', 'DISEASED', 'ENRAGED', 'PLAGUED', 'POISONED', 'WITHERED']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_MELEE'):
lList = lList + ['RUSTED']
if pPlot.isWater():
lList = lList + ['SPAWN_DROWN', 'SPAWN_SEA_SERPENT']
if pPlot.isWater() == False:
lList = lList + ['SPAWN_SPIDER', 'SPAWN_SPECTRE']
sGoody = lList[CyGame().getSorenRandNum(len(lList), "Pick Goody")-1]
if sGoody == 'DEATH':
caster.kill(True,0)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_DEATH", ()),'',1,'Art/Interface/Buttons/Spells/Explore Lair.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 0
if sGoody == 'COLLAPSE':
caster.doDamageNoCaster(50, 90, gc.getInfoTypeForString('DAMAGE_PHYSICAL'), false)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_COLLAPSE", ()),'',1,'Art/Interface/Buttons/Spells/Explore Lair.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'CRAZED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_CRAZED", ()),'',1,'Art/Interface/Buttons/Promotions/Crazed.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'DEMONIC_POSSESSION':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED'), True)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEMON'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_POSSESSED", ()),'',1,'Art/Interface/Buttons/Units/UCDemon.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'DISEASED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_DISEASED", ()),'',1,'Art/Interface/Buttons/Promotions/Diseased.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'WITHERED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WITHERED'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_WITHERED", ()),'',1,'Art/Interface/Buttons/Promotions/Withered.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'PLAGUED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_PLAGUED'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_PLAGUED", ()),'',1,'Art/Interface/Buttons/Promotions/Plagued.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'POISONED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_POISONED'), True)
caster.doDamageNoCaster(25, 90, gc.getInfoTypeForString('DAMAGE_POISON'), false)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_POISONED", ()),'',1,'Art/Interface/Buttons/Promotions/Poisoned.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'ENRAGED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED'), True)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_ENRAGED", ()),'',1,'Art/Interface/Buttons/Promotions/Enraged.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'RUSTED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED'), True)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS'), False)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS'), False)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MITHRIL_WEAPONS'), False)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_RUSTED", ()),'',1,'Art/Interface/Buttons/Promotions/Rusted.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'SPAWN_DROWN':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_DROWN'), caster)
return 50
if sGoody == 'SPAWN_SEA_SERPENT':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SEA_SERPENT'), caster)
return 50
if sGoody == 'SPAWN_SPECTRE':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_GRAVE_SPECTRE'), caster)
return 50
if sGoody == 'SPAWN_SPIDER':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SPIDER'), caster)
return 50
return 100
def exploreLairNeutral(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['NOTHING']
if pPlot.isWater() == False:
lList = lList + ['SPAWN_SKELETON', 'SPAWN_LIZARDMAN', 'SPAWN_SPIDER']
if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_SNOW'):
lList = lList + ['SPAWN_FROSTLING']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_BARROW'):
lList = lList + ['SPAWN_SKELETON', 'SPAWN_SKELETON']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_RUINS'):
lList = lList + ['SPAWN_LIZARDMAN', 'SPAWN_LIZARDMAN']
if pPlot.isWater():
lList = ['SPAWN_DROWN']
if caster.isAlive():
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_MUTATED')) == False:
lList = lList + ['MUTATED']
sGoody = lList[CyGame().getSorenRandNum(len(lList), "Pick Goody")-1]
if sGoody == 'MUTATED':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MUTATED'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_MUTATED",()),'',1,'Art/Interface/Buttons/Promotions/Mutated.dds',ColorTypes(7),caster.getX(),caster.getY(),True,True)
return 50
if sGoody == 'NOTHING':
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_NOTHING",()),'',1,'Art/Interface/Buttons/Spells/Explore Lair.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'SPAWN_DROWN':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_DROWN'), caster)
return 50
if sGoody == 'SPAWN_FROSTLING':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_FROSTLING'), caster)
return 50
if sGoody == 'SPAWN_LIZARDMAN':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_LIZARDMAN'), caster)
return 50
if sGoody == 'SPAWN_SKELETON':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SKELETON'), caster)
return 50
if sGoody == 'SPAWN_SPIDER':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SPIDER'), caster)
return 50
return 100
def exploreLairGood(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['HIGH_GOLD', 'TREASURE', 'EXPERIENCE']
if caster.isAlive():
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT_GUIDE')) == False:
lList = lList + ['SPIRIT_GUIDE']
if pPlot.isWater() == False:
lList = lList + ['ITEM_HEALING_SALVE']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_MELEE'):
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTED_BLADE')) == False:
lList = lList + ['ENCHANTED_BLADE']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ADEPT'):
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SPELLSTAFF')) == False:
lList = lList + ['SPELLSTAFF']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_RECON'):
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_POISONED_BLADE')) == False:
lList = lList + ['POISONED_BLADE']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ARCHER'):
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_FLAMING_ARROWS')) == False:
lList = lList + ['FLAMING_ARROWS']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_DISCIPLE'):
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SHIELD_OF_FAITH')) == False:
lList = lList + ['SHIELD_OF_FAITH']
if gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 1:
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_MITHRIL_WEAPONS')) == False:
if gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 3:
lList = lList + ['MITHIL_WEAPONS']
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS')) == False:
if gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 2:
lList = lList + ['IRON_WEAPONS']
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS')) == False:
lList = lList + ['BRONZE_WEAPONS']
sGoody = lList[CyGame().getSorenRandNum(len(lList), "Pick Goody")-1]
if sGoody == 'HIGH_GOLD':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_HIGH_GOLD'), caster)
return 90
if sGoody == 'TREASURE':
pBestPlot = -1
iBestPlot = -1
for i in range (CyMap().numPlots()):
pPlot = CyMap().plotByIndex(i)
iPlot = -1
if pPlot.isWater() == False:
if pPlot.getNumUnits() == 0:
if pPlot.isCity() == False:
if pPlot.isImpassable() == False:
iPlot = CyGame().getSorenRandNum(1000, "Add Unit") + 1000
iPlot = iPlot - (pPlot.area().getNumTiles() * 10)
if pPlot.isOwned():
iPlot = iPlot / 2
if iPlot > iBestPlot:
iBestPlot = iPlot
pBestPlot = pPlot
if iBestPlot != -1:
bPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
newUnit = bPlayer.initUnit(gc.getInfoTypeForString('EQUIPMENT_TREASURE'), pBestPlot.getX(), pBestPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_TREASURE",()),'',1,'Art/Interface/Buttons/Equipment/Treasure.dds',ColorTypes(8),newUnit.getX(),newUnit.getY(),True,True)
return 80
if sGoody == 'EXPERIENCE':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_EXPERIENCE'), caster)
return 100
if sGoody == 'SPIRIT_GUIDE':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT_GUIDE'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_SPIRIT_GUIDE",()),'AS2D_POSITIVE_DINK',1,'Art/Interface/Buttons/Promotions/SpiritGuide.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 80
if sGoody == 'ITEM_HEALING_SALVE':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_HEALING_SALVE'), caster)
return 100
if sGoody == 'ITEM_POTION_OF_INVISIBILITY':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_POTION_OF_INVISIBILITY'), caster)
return 100
if sGoody == 'ITEM_POTION_OF_RESTORATION':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_POTION_OF_RESTORATION'), caster)
return 100
if sGoody == 'ENCHANTED_BLADE':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTED_BLADE'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_ENCHANTED_BLADE",()),'',1,'Art/Interface/Buttons/Promotions/EnchantedBlade.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'SPELLSTAFF':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPELLSTAFF'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_SPELLSTAFF",()),'',1,'Art/Interface/Buttons/Promotions/Spellstaff.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'POISONED_BLADE':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_POISONED_BLADE'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_POISONED_BLADE",()),'',1,'Art/Interface/Buttons/Promotions/PoisonedBlade.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'FLAMING_ARROWS':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FLAMING_ARROWS'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_FLAMING_ARROWS",()),'AS2D_POSITIVE_DINK',1,'Art/Interface/Buttons/Promotions/FlamingArrows.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'SHIELD_OF_FAITH':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHIELD_OF_FAITH'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_SHEILD_OF_FAITH",()),'',1,'Art/Interface/Buttons/Promotions/ShieldOfFaith.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BRONZE_WEAPONS':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BRONZE_WEAPONS",()),'',1,'Art/Interface/Buttons/Promotions/BronzeWeapons.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED')) == True:
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED'),False)
return 100
if sGoody == 'IRON_WEAPONS':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS'), True)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS'), False)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_IRON_WEAPONS",()),'',1,'Art/Interface/Buttons/Promotions/IronWeapons.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED')) == True:
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED'),False)
return 100
if sGoody == 'MITHRIL_WEAPONS':
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MITHRIL_WEAPONS'), True)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS'), False)
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS'), False)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_MITHRIL_WEAPONS",()),'',1,'Art/Interface/Buttons/Promotions/MithrilWeapons.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED')) == True:
caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_RUSTED'),False)
return 100
return 100
def exploreLairBigGood(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['TREASURE_VAULT', 'PRISONER_ADVENTURER', 'PRISONER_ARTIST', 'PRISONER_COMMANDER', 'PRISONER_ENGINEER', 'PRISONER_MECHANT', 'PRISONER_PROPHET', 'PRISONER_SCIENTIST', 'TECH']
if pPlot.isWater() == False:
lList = lList + ['ITEM_JADE_TORC', 'ITEM_ROD_OF_WINDS', 'ITEM_TIMOR_MASK']
if pPlot.getBonusType(-1) == -1:
lList = lList + ['BONUS_MANA']
if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_MINING')):
lList = lList + ['BONUS_COPPER', 'BONUS_GEMS', 'BONUS_GOLD']
if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_SMELTING')):
lList = lList + ['BONUS_IRON']
if pPlot.isWater():
lList = lList + ['PRISONER_SEA_SERPENT']
if self.grace() == False:
lList = lList + ['PRISONER_ANGEL', 'PRISONER_MONK']
infoCiv = gc.getCivilizationInfo(pPlayer.getCivilizationType())
iUnit = infoCiv.getCivilizationUnits('UNIT_ASSASSIN')
if iUnit != -1:
lList = lList + ['PRISONER_ASSASSIN']
iUnit = infoCiv.getCivilizationUnits('UNIT_CHAMPION')
if iUnit != -1:
lList = lList + ['PRISONER_CHAMPION']
iUnit = infoCiv.getCivilizationUnits('UNIT_MAGE')
if iUnit != -1:
lList = lList + ['PRISONER_MAGE']
sGoody = lList[CyGame().getSorenRandNum(len(lList), "Pick Goody")-1]
if sGoody == 'TREASURE_VAULT':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_TREASURE_VAULT'), caster)
return 100
if sGoody == 'BONUS_COPPER':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_COPPER'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_COPPER",()),'',1,'Art/Interface/Buttons/Spells/Explore Dungeon.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_GOLD':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_GOLD'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_GOLD",()),'',1,'Art/Interface/Buttons/Spells/Explore Dungeon.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_GEMS':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_GEMS'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_GEMS",()),'',1,'Art/Interface/Buttons/Spells/Explore Dungeon.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_IRON':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_IRON'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_IRON",()),'',1,'Art/Interface/Buttons/Spells/Explore Dungeon.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_MANA':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_MANA'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_MANA",()),'',1,'Art/Interface/Buttons/Spells/Explore Dungeon.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'ITEM_JADE_TORC':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_JADE_TORC'), caster)
return 100
if sGoody == 'ITEM_ROD_OF_WINDS':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_ROD_OF_WINDS'), caster)
return 100
if sGoody == 'ITEM_TIMOR_MASK':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_ITEM_TIMOR_MASK'), caster)
return 100
if sGoody == 'PRISONER_ADVENTURER':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_ADVENTURER'), caster)
return 100
if sGoody == 'PRISONER_ANGEL':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_ANGEL'), caster)
return 100
if sGoody == 'PRISONER_ARTIST':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_ARTIST'), caster)
return 100
if sGoody == 'PRISONER_ASSASSIN':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_ASSASSIN'), caster)
return 100
if sGoody == 'PRISONER_CHAMPION':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_CHAMPION'), caster)
return 100
if sGoody == 'PRISONER_COMMANDER':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_COMMANDER'), caster)
return 100
if sGoody == 'PRISONER_ENGINEER':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_ENGINEER'), caster)
return 100
if sGoody == 'PRISONER_MAGE':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_MAGE'), caster)
return 100
if sGoody == 'PRISONER_MERCHANT':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_MERCHANT'), caster)
return 100
if sGoody == 'PRISONER_MONK':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_MONK'), caster)
return 100
if sGoody == 'PRISONER_PROPHET':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_PROPHET'), caster)
return 100
if sGoody == 'PRISONER_SEA_SERPENT':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_SEA_SERPENT'), caster)
return 100
if sGoody == 'PRISONER_SCIENTIST':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_SCIENTIST'), caster)
return 100
if sGoody == 'TECH':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_GRAVE_TECH'), caster)
return 100
return 100