As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
[Spoilers] Biggus Decius and the Sucking Vampires (Bobchillingworth / Calabim)

Seriously, I'd open that skeleton barrow first, before Iskender decides he's bored or something.


Also healing salves are pretty sweet if you give them to a hero unit, basically insurance against getting a terrible combat roll that would otherwise leave them open to counter-attack. Losha is immortal, so she probably will do fine without, but if you get Rosier or Valin I think it will prove to be very useful.
Reply

Bobchillingworth Wrote:Also healing salves are pretty sweet if you give them to a hero unit, basically insurance against getting a terrible combat roll that would otherwise leave them open to counter-attack.

I was just going to say the same thing!

Darrell
Reply

Bobchillingworth Wrote:Seriously, I'd open that skeleton barrow first, before Iskender decides he's bored or something.

No. I'm going to honor our agreement, even if it was poorly thought out on my part. His warrior has moved onto and back off the barrow, so he also appears to be abiding by the terms of the peace.

Bobchillingworth Wrote:Also healing salves are pretty sweet if you give them to a hero unit, basically insurance against getting a terrible combat roll that would otherwise leave them open to counter-attack. Losha is immortal, so she probably will do fine without, but if you get Rosier or Valin I think it will prove to be very useful.

The problem is, it takes a spell action to use the salve. So, if you have a spell-casting unit, you have to forgo casting any spells in case you might want to heal later.
Reply

DaveV Wrote:No. I'm going to honor our agreement, even if it was poorly thought out on my part. His warrior has moved onto and back off the barrow, so he also appears to be abiding by the terms of the peace.



Aughhhh okay fine whatever, if you want though I'd be happy to ask him if we could open it. Could offer to split the gold if we got that or something. Also, when did you promise him that you wouldn't open it?
Reply

DaveV Wrote:The "out of game" contitions attached to that peace are as follows:

1) Non aggression pact until turn 200. The Calabim will immediately withdraw their units, and neither side will declare war on the other for the specifed time.
2) The Hippus will not settle to the east of their two easternmost cities; the Calabim will not settle to the west of their westernmost city.
3) Neither side will explore any lair that is within 3 tiles of the other's borders.

I think clause #3 clearly covers that barrow; neither of us is allowed to explore it.

If you can talk Iskender into letting me explore the lair, that would be fine. If I were he, I'd object, though.
Reply

[SIZE="4"]WARNING: INCOMING CHAT DUMP[/SIZE]




Okay, so I decided that I'd hit up Iskender and see what he thought about letting us explore the explore the barrow. Summary to follow after the chat (unfiltered for your... uh... reading pleasure):


Quote:5:00 PM me: hey, what's up? If you have a sec, I have a question for you about the FFH PBEM
5:04 PM Rafal: hi
shoot
5:05 PM me: k. Dave figured out a way to open lairs so that nothing bad will spawn- you just have to surround them completely with units before trying to open them. I'd like him to do that with the barrow between your and my empires, but apparently our peace deal forbids either of us from exploring it. So, uh, I was wondering whether we could open it, and if the result is gold or something that can be split, you'd get part of it as thanks
5:06 PM alternatively, if the result is a non-event, like "a portal to a new area", then you can take the next crack at it
5:07 PM sorry did you get that? I just got an error message that you're offline
Rafal: my connection is acting weird at the moment, but i think i got it all
5:08 PM me: Okay, last line was "alternatively, if the result is a non-event, like "a portal to a new area", then you can take the next crack at it"
5:09 PM Rafal: a nice trick. does it entirely eliminate bad events from the pool?
me: I'm not sure
we've only done it once so far, to the dungeon north of whatever my copper city is called
and got a healing salve
yay
5:10 PM Rafal: but did you test it in worldbuilder?
5:11 PM me: I'm afraid not, I think a lurker had commented a while ago that it worked, and then Dave confirmed it in-game
it might still give bad-result text, but nothing can spawn because all the tiles are blocked. If that happened, you could take the next whack at it, and we could just go back and forth until someone gets something decent
5:12 PM and I guess the exploring unit can still get plauged or withered
I would test it myself, but I don't even have the access to FFH anymore, which is why Dave is now playing the turns
5:13 PM but I trust that it works
5:14 PM Rafal: i think this sharing of dungeon's benefits wouldn't work. i have a different proposal
5:15 PM i'll let you explore it any way you see fit, but in return i'll get a bit more land on my east. as you can see with your scout i'm quite squeezed over there
5:16 PM me: Hmm. I can ask Dave, but I don't think that will work
5:17 PM with the terms of the peace proposal though, I guess there might be a gulf of land between us that neither can settle
that's a seperate issue that I think needs to be worked out via mutual dot-mapping
Rafal: yes, and this is a waste
me: I agree
5:18 PM but I think it's a seperate issue- and I don't want to tie it to lair exploring
5:19 PM if you don't want to have cooperative exploration of the barrow, that's fine- I'll leave it alone
5:20 PM lots of other lairs
Rafal: it is a good idea but i think sharing the results wouldn't work out. what if you get a great prophet or an acolyte?
5:22 PM i think giving a few tiles for the right to open it is a good offer
me: yeah, I mean I guess with an acolyte I could agree to spread the Order or whatever to you eventually, but obviously no real way to split a prophet. I guess it's balanced out in my mind since I could just as likely have my unit "never return from the depths of the lair" and then it's your turn
Rafal: but still, if negative effects are nullified, it's EV+, to use poker terms
5:23 PM me: True. What if I have Dave do some testing, to see whether you can still get the bad result text?
Rafal: all right. i'll do some myself as well
me: that would mean that there's a greater than 50% chance I think that I either get a neutral result, a result that can be split, or one where you get to take the next turn
5:24 PM if that makes sense
5:25 PM so would it be okay for us to explore if you can get bad result text, with the arrangement that you get the next whack if I don't get a good result (and I'll split gold if that's what comes out of it)?
and if you can only get good results, then we'll just leave it alone for now
5:27 PM Rafal: to be honest i'm not really interested in opening lairs at the moment. i'd rather see that river between us being settled
5:28 PM me: those are two different issues tho
I agree that that land needs to be used
but I don't want to do a "barrow for land" trade, because there's a really good chance that I won't get anything worthwhile from the lair
5:29 PM Rafal: so you will need to weigh how many tiles it is worth
me: this is one area where having access to the game would help... I'm not sure just how much land is being wasted right now
5:30 PM I don't suppose you could email me / Dave a screen cap showing the present no-man's land, annotated with the land you'd like us to allow you to settle?
Rafal: on my side, i could squeeze a nice city
5:32 PM i can give a rough estimate - i could settle the line north of my easternmost city and no further east
5:34 PM me: yeah send a screencap, but I make no promises
5:35 PM Rafal: ok
5:36 PM me: as for the barrow, I'll leave it be for now, just let me know whenever if you do want to explore it
there's way too many bloodpets standing around at the moment with nothing to do, so it's pretty trivial to surround these things
being able to build 1-turn bloodpets in every city with Governor's mansions seems cool until you realize that there's nothing to do with them
5:37 PM once you have peace with everyone
5:40 PM I'm guessing you're going to want to keep it to yourself, but I suppose you might be declaring on PB soon?
Rafal: i've made a screencap
sending it
5:41 PM me: he's a pretty obvious target, and I don't know why else you used the worldspell
he has low power, and can only make 3 units max a turn
easy to pillage if nothing else
anyway, if you are, good luck
would be nice for someone to slow him down
his beakers per turn is scary
5:42 PM he's way too far away for me to do anything right now
at least without vamps
Rafal: it would. but i'm just a #4
and vs. centaurs i would not pillage much
5:43 PM me: Yeah true
Tasunke would be a lot better for that anyway
Rafal: Financial isn't that bad either
5:44 PM me: yeah it's okay, just raiders and aggressive works a little better with the quicker horses
Rafal: btw. it's 4 units now. he's got 4th city
and a settlement
me: hah finally
5:45 PM k
yeah if I where him I'd start spamming settlements
so with the image you sent me, blue line represents where you want to divide land for settling?
5:46 PM like, I can only settle on the right side, you on the left?
so with the image you sent me, blue line represents where you want to divide land for settling?
like, I can only settle on the right side, you on the left?
5:48 PM Rafal: no. it's more where i can settle. now you draw the line for yourselves
5:50 PM me: where you want to or where you already can?
I don't think you have a city that far east
so I assume it's the former?
5:51 PM Rafal: no, the line is 1 tile east of Feiss Mabdon
the south-east city
yes it's the former
5:52 PM me: okay well I'll take it to dave and see what he thinks, because like I said it makes no sense for tile to be wasted between us
5:53 PM when he made the peace terms, I don't think he realized that it meant wasted tiles
Rafal: i didn't as wel
5:55 PM all right, so i'm waiting for your and Dave's response
cheers



Summary:


Doesn't seem like anything is happening with the barrow right now- he understandably doesn't want to risk us getting something really good from it, although I personally think my suggestion for going back and forth exploring it was pretty fair. Anyway, we have several other lairs to bother (although you'll probably lose a bloodpet killing each lizardman defender), so not a big loss.


The main point of interest is that he isn't happy about the settling restrictions from the peace deal, and TBH he's entirely correct. You sort of left a substantial gulf of land between us and the Hippus which nobody can settle, and it's somewhat a waste. Iskender sent me a picture of the settling limit lines, along showing the "no-man's land" between them: http://www.dabbleboard.com/draw?b=Guest4...66f86cd741 (He also sent another image showing what he'd like the new settling line to be, which is what we're talking about at the end of the chat, but I'd just refer to the "present-status" picture in the link)

Now, he wants to offer us some sort of weak concession like letting us explore that barrow in return for allowing him to settle further towards us. I think that's a major mistake. But that land does need to get used at some point.


I have two suggestions:


1. Refuse to compromise with him, and insist on us both sticking with the peace terms. Or just ignore him and/or stall for time. Meanwhile, encourage Sareln to settle along that border (since he's supposed to be expanding in that direction anyway). Since Sareln is our vassal yet at Iskender's request isn't bound by the rules of the peace treaty, he's free to snatch the contested land for himself. You may have already been considering this approach- I think I favor it myself, because it's a wonderful combination of deception and charity (toward Sareln, anyway).

2. Work up some sort of cooperative dot-map with Iskender so that we don't have dozens of useless non-settled tiles on the border. Just make sure that we get some nice feeding grounds out of it, and that you don't box in Sareln so that he can't expand anywhere. A boring but practical solution.



Anyway, I guess send him a response whenever, or I can if you want.
Reply

If you cover all the tiles around a lair, you can still get a result that would normally result in hostile units being placed onto the map. But the units can't be placed, so nothing happens (the result is not re-rolled). The exploring unit can still be deleted (if level 1), diseased, withered, etc.

Warning: code follows!

Here are the gory details of lair exploration. For normal lairs,
CvSpellInterface.py Wrote:def spellExploreLair(caster):
pPlot = caster.plot()
iRnd = CyGame().getSorenRandNum(100, "Explore Lair") + caster.getLevel()
iDestroyLair = 0
if iRnd < 14:
iDestroyLair = cf.exploreLairBigBad(caster)
if iRnd >= 14 and iRnd < 44:
iDestroyLair = cf.exploreLairBad(caster)
if iRnd >= 44 and iRnd < 74:
iDestroyLair = cf.exploreLairNeutral(caster)
if iRnd >= 74 and iRnd < 94:
iDestroyLair = cf.exploreLairGood(caster)
if iRnd >= 94:
iDestroyLair = cf.exploreLairBigGood(caster)
if iDestroyLair > CyGame().getSorenRandNum(100, "Explore Lair"):
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_LAIR_DESTROYED", ()),'AS2D_POSITIVE_DINK',1,'Art/Interface/Buttons/Spells/Explore Lair.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
pPlot.setImprovementType(-1)
caster.finishMoves()
caster.changeExperience(1, -1, false, false, false)

For "epic" lairs (the explorable unique features):
CvSpellInterface.py Wrote:def spellExploreLairEpic(caster):
pPlot = caster.plot()
iRnd = CyGame().getSorenRandNum(100, "Explore Lair") + caster.getLevel()
iDestroyLair = 0
if iRnd < 54:
iDestroyLair = cf.exploreLairBigBad(caster)
if iRnd >= 54:
iDestroyLair = cf.exploreLairBigGood(caster)
if iDestroyLair > CyGame().getSorenRandNum(100, "Explore Lair"):
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_LAIR_DESTROYED", ()),'AS2D_POSITIVE_DINK',1,'Art/Interface/Buttons/Spells/Explore Lair.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
pPlot.setImprovementType(-1)
caster.finishMoves()
caster.changeExperience(1, -1, false, false, false)

CustomFunctions.py Wrote:def exploreLairBigBad(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['UNIT_AZER']
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_AZER', 'UNIT_GRIFFON']
if self.grace() == False:
lList = lList + ['UNIT_AIR_ELEMENTAL']
if not pPlot.isWater():
lList = lList + ['UNIT_ASSASSIN', 'UNIT_OGRE', 'UNIT_GIANT_SPIDER', 'UNIT_HILL_GIANT', 'UNIT_SPECTRE', 'UNIT_SCORPION']
lHenchmanList = lHenchmanList + ['UNIT_AXEMAN', 'UNIT_WOLF', 'UNIT_CHAOS_MARAUDER', 'UNIT_WOLF_RIDER', 'UNIT_MISTFORM', 'UNIT_LION', 'UNIT_TIGER', 'UNIT_BABY_SPIDER', 'UNIT_FAWN', 'UNIT_SCORPION']
if self.grace() == False:
lList = lList + ['UNIT_EARTH_ELEMENTAL', 'UNIT_FIRE_ELEMENTAL', 'UNIT_GARGOYLE', 'UNIT_VAMPIRE', 'UNIT_MYCONID', 'UNIT_EIDOLON', 'UNIT_LICH', 'UNIT_OGRE_WARCHIEF', 'UNIT_SATYR', 'UNIT_WEREWOLF']
lPromoList = lPromoList + ['PROMOTION_FIRE2', 'PROMOTION_AIR2', 'PROMOTION_HERO', 'PROMOTION_MARKSMAN', 'PROMOTION_SHADOWWALK']
lHenchmanList = lHenchmanList + ['UNIT_OGRE']
if pPlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_FOREST'):
lList = lList + ['UNIT_TREANT']
if pPlot.getTerrainType() == gc.getInfoTypeForString('TERRAIN_SNOW'):
lHenchmanList = lHenchmanList + ['UNIT_FROSTLING_ARCHER', 'UNIT_FROSTLING_WOLF_RIDER', 'UNIT_POLAR_BEAR']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_BARROW'):
lPromoList = lPromoList + ['PROMOTION_DEATH2']
lHenchmanList = lHenchmanList + ['UNIT_SKELETON', 'UNIT_PYRE_ZOMBIE']
if self.grace() == False:
lList = lList + ['UNIT_WRAITH']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_RUINS'):
lPromoList = lPromoList + ['PROMOTION_POISONED_BLADE']
lHenchmanList = lHenchmanList + ['UNIT_LIZARDMAN', 'UNIT_GORILLA']
if self.grace() == False:
lList = lList + ['UNIT_MANTICORE']
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 = lList + ['UNIT_SEA_SERPENT', 'UNIT_STYGIAN_GUARD', 'UNIT_PIRATE']
lHenchmanList = lHenchmanList + ['UNIT_DROWN']
if self.grace() == False:
lList = lList + ['UNIT_WATER_ELEMENTAL', 'UNIT_KRAKEN']
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

CvSpellInterface.py Wrote:def exploreLairBad(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['COLLAPSE']
if caster.getLevel() == 1:
lList = lList + ['DEATH']
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 not pPlot.isWater():
lList = lList + ['SPAWN_SPIDER', 'SPAWN_SPECTRE']
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_GOBLIN_FORT'):
lList = lList + ['SPAWN_SCORPION_BAD', 'SPAWN_SCORPION_BAD', 'SPAWN_SCORPION_BAD']
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 == '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 == '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 == '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 == '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_SCORPION_BAD':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SCORPION_BAD'), 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

CvSpellInterface.py Wrote:def exploreLairNeutral(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['NOTHING']
if not pPlot.isWater():
lList = lList + ['SPAWN_SKELETON', 'SPAWN_LIZARDMAN', 'SPAWN_SPIDER', 'PORTAL', 'DEPTHS', 'DWARF_VS_LIZARDMEN', 'CAGE']
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.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_GOBLIN_FORT'):
lList = lList + ['SPAWN_SCORPION', 'SPAWN_SCORPION', 'SPAWN_SCORPION']
if pPlot.isWater():
lList = lList + ['SPAWN_DROWN']
if caster.isAlive():
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_MUTATED')):
lList = lList + ['MUTATED']

sGoody = lList[CyGame().getSorenRandNum(len(lList), "Pick Goody")-1]
if sGoody == 'CAGE':
pPlot.setImprovementType(gc.getInfoTypeForString('IMPROVEMENT_CAGE'))
for i in range(pPlot.getNumUnits(), -1, -1):
pUnit = pPlot.getUnit(i)
pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_CAGE",()),'',1,'Art/Interface/Buttons/Improvements/Cage.dds',ColorTypes(7),caster.getX(),caster.getY(),True,True)
return 0
if sGoody == 'DEPTHS':
iUnitID = self.getUnitPlayerID(caster)
if iUnitID != -1:
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_EXPLORE_LAIR_DEPTHS')
triggerData = pPlayer.initTriggeredData(iEvent, true, -1, caster.getX(), caster.getY(), caster.getOwner(), -1, -1, -1, iUnitID, -1)
return 100
if sGoody == 'DWARF_VS_LIZARDMEN':
iUnitID = self.getUnitPlayerID(caster)
if iUnitID != -1:
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_EXPLORE_LAIR_DWARF_VS_LIZARDMEN')
triggerData = pPlayer.initTriggeredData(iEvent, true, -1, caster.getX(), caster.getY(), caster.getOwner(), -1, -1, -1, iUnitID, -1)
return 100
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 == 'PORTAL':
iUnitID = self.getUnitPlayerID(caster)
if iUnitID != -1:
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_EXPLORE_LAIR_PORTAL')
triggerData = pPlayer.initTriggeredData(iEvent, true, -1, caster.getX(), caster.getY(), caster.getOwner(), -1, -1, -1, iUnitID, -1)
return 0
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_SCORPION':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SPAWN_SCORPION'), 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

CvSpellInterface.py Wrote:def exploreLairGood(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['HIGH_GOLD', 'TREASURE', 'EXPERIENCE']
if caster.isAlive():
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT_GUIDE')):
lList = lList + ['SPIRIT_GUIDE']
if not pPlot.isWater():
lList = lList + ['ITEM_HEALING_SALVE', 'SUPPLIES']
if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_MYSTICISM')):
lList = lList + ['PRISONER_DISCIPLE_ASHEN', 'PRISONER_DISCIPLE_EMPYREAN', 'PRISONER_DISCIPLE_LEAVES', 'PRISONER_DISCIPLE_OVERLORDS', 'PRISONER_DISCIPLE_RUNES', 'PRISONER_DISCIPLE_ORDER']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_MELEE'):
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTED_BLADE')):
lList = lList + ['ENCHANTED_BLADE']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ADEPT'):
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SPELLSTAFF')):
lList = lList + ['SPELLSTAFF']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_RECON'):
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_POISONED_BLADE')):
lList = lList + ['POISONED_BLADE']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ARCHER'):
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_FLAMING_ARROWS')):
lList = lList + ['FLAMING_ARROWS']
if caster.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_DISCIPLE'):
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SHIELD_OF_FAITH')):
lList = lList + ['SHIELD_OF_FAITH']
if gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 1:
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_MITHRIL_WEAPONS')):
if (gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 3 and pPlayer.isHasTech(gc.getInfoTypeForString('TECH_IRON_WORKING'))):
lList = lList + ['MITHRIL_WEAPONS']
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS')):
if (gc.getUnitInfo(caster.getUnitType()).getWeaponTier() >= 2 and pPlayer.isHasTech(gc.getInfoTypeForString('TECH_BRONZE_WORKING'))):
lList = lList + ['IRON_WEAPONS']
if not caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS')):
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 == 'SUPPLIES':
pPlayer.receiveGoody(pPlot, gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_SUPPLIES'), caster)
return 100
if sGoody == 'TREASURE':
self.placeTreasure(iPlayer, gc.getInfoTypeForString('EQUIPMENT_TREASURE'))
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 == 'PRISONER_DISCIPLE_ASHEN':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_ASHEN'), caster)
return 100
if sGoody == 'PRISONER_DISCIPLE_EMPYREAN':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_EMPYREAN'), caster)
return 100
if sGoody == 'PRISONER_DISCIPLE_LEAVES':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_LEAVES'), caster)
return 100
if sGoody == 'PRISONER_DISCIPLE_OVERLORDS':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_OVERLORDS'), caster)
return 100
if sGoody == 'PRISONER_DISCIPLE_RUNES':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_RUNES'), caster)
return 100
if sGoody == 'PRISONER_DISCIPLE_ORDER':
pPlayer.receiveGoody(pPlot,gc.getInfoTypeForString('GOODY_EXPLORE_LAIR_PRISONER_DISCIPLE_ORDER'), caster)
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_SHIELD_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

CvSpellInterface.py Wrote:def exploreLairBigGood(self, caster):
iPlayer = caster.getOwner()
pPlot = caster.plot()
pPlayer = gc.getPlayer(caster.getOwner())
lList = ['TREASURE_VAULT', 'GOLDEN_AGE']
if pPlayer.canReceiveGoody(pPlot, gc.getInfoTypeForString('GOODY_GRAVE_TECH'), caster):
lList = lList + ['TECH']
if not pPlot.isWater():
lList = lList + ['ITEM_JADE_TORC', 'ITEM_ROD_OF_WINDS', 'ITEM_TIMOR_MASK', 'PRISONER_ADVENTURER', 'PRISONER_ARTIST', 'PRISONER_COMMANDER', 'PRISONER_ENGINEER', 'PRISONER_MERCHANT', 'PRISONER_PROPHET', 'PRISONER_SCIENTIST']
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 pPlot.getBonusType(-1) == -1:
lList = lList + ['BONUS_CLAM', 'BONUS_CRAB', 'BONUS_FISH']
if self.grace() == False:
lList = lList + ['PRISONER_ANGEL', 'PRISONER_MONK', 'PRISONER_ASSASSIN', 'PRISONER_CHAMPION', '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_CLAM':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_CLAM'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_CLAM",()),'',1,'Art/Interface/Buttons/WorldBuilder/Clam.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
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/WorldBuilder/Copper.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_CRAB':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_CRAB'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_CRAB",()),'',1,'Art/Interface/Buttons/WorldBuilder/Crab.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'BONUS_FISH':
pPlot.setBonusType(gc.getInfoTypeForString('BONUS_FISH'))
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_BONUS_FISH",()),'',1,'Art/Interface/Buttons/WorldBuilder/Fish.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/WorldBuilder/Gold.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/WorldBuilder/Gems.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/WorldBuilder/Iron.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/WorldBuilder/mana_button.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
return 100
if sGoody == 'GOLDEN_AGE':
pPlayer.changeGoldenAgeTurns(CyGame().goldenAgeLength())
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_EXPLORE_LAIR_GOLDEN_AGE",()),'',1,'Art/Interface/Buttons/Spells/Explore Lair.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

CvSpellInterface.py Wrote:def grace(self):
iGrace = 20 * (int(CyGame().getGameSpeedType()) + 1)
iDiff = gc.getNumHandicapInfos() + 1 - int(gc.getGame().getHandicapType())
iGrace = iGrace * iDiff
iGrace = CyGame().getSorenRandNum(iGrace, "grace") + iGrace
if iGrace > CyGame().getGameTurn():
return True
return False
Reply

Augh, just glancing at that seared my poor Liberal Arts major mind.



So, what're you going to do about the settling issues Iskender brought up? If you do decide to be nice and agree to some sort of land split (as opposed to just having Sareln settle the currently unused tiles), make sure you do get permission to explore that barrow.
Reply

To Iskender:

DaveV Wrote:Hi,

Bob relayed some of your chat with him, asking about a waiver on the clause in our treaty forbidding you to settle to your east.

Let me put my cards on the table. I see the players as having separated into three tiers: Selrahc and Pocketbeetle are doing the best, you and I are in the middle, and Cull and Sareln are scraping along at the bottom. I thought you were going to use your worldspell to take out Pocketbeetle (full disclosure: I warned him about this), but that looks less and less likely as time goes by and your Warcry promotions wear off. Maybe it makes sense for you and I to cooperate as we try to bring ourselves back into the game.

As you said to Bob, my scouting has shown that your only direction for expansion is to your east. The "no man's land" between us is narrow, though, and it would be a tight squeeze to put cities in there. I don't want to get into a culture war for tiles. In the chat, you offered the barrow as compensation for letting you settle there; I see that as insufficient. The barrow could give something really good (like an adventurer tongue), or something bad. I'd be more interested in trading for one of your ales. I should have an extra gold in about 10 turns.

I have some room to my east, so losing that land is not a big deal for me. Letting you settle to the east weakens me defensively, though. You would be putting down a third ring of cities, while I would be stuck with only a second ring, which would be quite exposed to attack by fast units.

As I said, I think it would benefit both of us to work together. I hope you can address some of my concerns; do you have concrete proposals on where you want to settle?

Dave

To Sareln:

DaveV Wrote:Hi,

My treaty with Iskender specified that he wouldn't build any cities to his east. He is now asking for a waiver, since he's pretty squeezed in the other three directions. Did you plan on building any cities to the west of your southern city (whose name I can't remember)? Bob and I thought you should get first dibs on that territory.

Dave
Reply

One more turn to move everyone into position, then I'll attack the barb city (and reduce my troop maintenance a bit wink).

[Image: Eastern%20front%20t117.jpg]
Reply



Forum Jump: