Magister Modmod

By Falamar's beard! I don't check this forum pretty much at all anymore. But I noticed a funny little link in MC's sig that lead me here. I never thought I'd see the day. I've never been more excited about reading a changelog before. Well done!

Does the Great Sage quote need to be changed?

I think I just lost all productivity for today.
 
it started for me like this:
but huge work anyway, thx for effort!!! :king:
 

Attachments

  • pyhon.jpg
    pyhon.jpg
    61.8 KB · Views: 144
I thought I'd turned python exceptions on to catch things like that, but I'm not getting any messages.

Those first 2 things are in places I did not alter. I guess they just refer to where the third error was caught.


It seems the error is that for some reason (probably because I was cutting and pasting from elsewhere) I used pPlotB instead of pPlot in the code I added to make sure that certain unique features started with the right bonuses. Normally the correct bonus is added in xml/C++ and this python code is not needed. This was only meant to correct problems with unique features in scenarios or that bug where bonuses don't snow up on floodplanes. I think as is the code should just not do anything though rather than actually messing things up. I'd actually forgotten about this part and made a few unique features gain their proper bonuses in PythonOnMove calls instead.


I'd consider reuploading with a fix, but it is a very minor issue and I'm stuck with only the slowest available speed DSL until Sunday afternoon.
 
:eek: He has one?

No. Which is why it's not an expression I use every day.

I haven't played vanilla FfH (or any mods) for a long time. It was delightful to play a fast game again, I got through 200 standard turns in a few hours. Unfortunately, I forgot that the game does not have all the complicated goodies that the FF, Orbis and RiFE have. And the AI plays much better without things like fort commanders and rampaging griffon flights to get in the way.

I thought I'd try the Calabim with Thessa. I shared a peninsula with Sheelba (eep!) And Arturus Thorne blocked us both off early. Sabathiel wound up splitting the rest of the continent with him. I pulled a FoL holy city out from under Arendal but the Khazad picked up RoK very early. Everyone on the map converted to it except for the Clan, myself and Auric. On the other continent was the Elohim, Arendel and Beeri.

The Khazad and Elohim were running away, scorewise, so I figured Arturus would be my first target. I was pretty sure I could bribe Sheelba with some techs to join me. She had quite an army and was making me nervous. I hit feudalism then realized it gave me no new units. It was good to trade with the other continent so I could start building making rangers and satyrs.

I forgot that vanilla FfH civs love to vassalize themselves for no reason. The Elohim immediately vassalizes her whole continent. I DoW Arturus, Sheelba joins for a pittance and move to take the first city. The next turn Arturus completes the Mines of Gal Dur (!) all the other RoK civs DoW me (but not Sheelba). A few turns later as a massive stack of iron weilding dwarves comes barreling down the peninsula Auric casts Stasis and I conceded.

I told myself to take notes but I was too into the game to take very many. Here's what I wrote down:

  • I can't find the Satyr race in the Civilopedia. It's not under race or promotion, and the link from Satyrs and Fawns goes to Satyr the unit. Looking at the unit, the race promotion appears to give +20% ancient forest attack and only +2% forest attack.
  • I like the +free specialist for improvements that some buildings and wonders give, but I never was lucky enough to get any of that. The workshop/siege workshop combo does seem a bit powerful. I don't think buildings that you can build in any city should give free specialists for improvements that don't require resources to build them upon. Cottages, mines, workshops, farms, etc.
  • I'm not sure Hidden Paths should be available with FoL. It is an extremely powerful civic. With trees on grassland soon you'll have have more than enough food to feed the massive cities you can create.
  • I've never liked the Mines of Gal-Dur being able to grant iron without learning iron working. I always thought the wonder was too powerful. It looks like a monster of a wonder now, especially if built in the same city as the Tablets of Bambur. I hope the other religions have gotten similarly beefy.
 
Oops. I just realized that I forgot to limit the vampirism granting spells to living units without limited duration. The Calabim are probably too overpowered right now.
 
I played another game as the Malakim. A few comments and bug reports:
  • Bazaar of Mammon says it's a World Wonder and a National wonder. Which is it?
  • Hall of kings offers 1 free specialist per citadel. It should probably offer it for the citadel of light as well, since citadels don't last very long in Malakim lands.
  • Powerful enemies defending Aifon Isle pushed my caraval (and one of the pirate enemies) into the ice. I was safe, but trapped until they wandered off. Actually, that's kind of cool.
  • My disciple units are all granted free promotions, but I don't see what is doing it or even a method to it. My capital grants enough free promotions to max out promotions for disciples without increasing their level past 1. My second largest city only offers 5 free promotions. The tiniest city in the desert offers almost as many as my capital. Being able to produce a max-promoted paladin every turn has kind of trivialized this game for me. :)

Also, I want to modify my comment about free specialists. I really like the mechanic, but I think it also encourages religion hopping. I see now why all the civs are adopting RoK. Getting a free specialist for every mine is too hard to pass up, and this benefit does not go away if they switch to the order and convert all their flatlands to forts. Perhaps the benefits of these temples should only be granted if you follow the religion.
 
It is a known issue that promotions having the name name as units link to units instead.

I'll probably scale back the specialists from improvements somewhat.


I don't think making Guardian of Nature available at Way of the Forests is a big deal. The tech is a bit more expensive now, and more importantly it is not as powerful now that Bloom is harder to get. It is a Nature II spell now so instead of being able to cast it with Priests of the Leaves as soon as you build them you have to get Nature mana and then level up Mages or Druids.


The Mines of Galdur wonder is stronger, but Smelting is much more costly than Arete was, and closer to the normal path for getting Iron. All religious have been boosted. (Guardians of Nature coming sooner is one such boost.)




I switched the Bazaar of Mammon to a World Wonder, but forgot to remove the national building limit so it is both. The national limit is pretty irrelevant though.


That change makes sense. I hadn't edited the buildings since I added that improvement.


I changed lairs to push their explorers off and spawn the big bads there so that you couldn't exploit them by surrounding them with units. It seems to be working just fine. It does seem odd that you could move a boat out of the ice though, unless you just mean there was ice in most of the surrounding tiles.


The Desert Shrine gives disciple units built in the city a free promotion pick for each non-floodplains/non-oasis desert tiles nearby. I meant that to be within a 2 tile radius but accidentally made it 3. I meant for it to allow up to 25 free promotions in an essentially worthless city, which is quite high, but not as bad as the current upper limit of 49. I'm thinking I should also make it not apply to tiles with resources, improvements, or maybe any yields.


Letting buildings give specialists based on improvements is a BtS mechanic that FfH just wasn't using. Tying it to state religion would be complicated and require SDK work, which I'm not willing to get into at this time. The closest I could come to it would be having alternate versions of the same temple, which are switched out in python each turn based on state religion. That seems needlessly complex. I'll likely just scale back what buildings use the mechanic. Also, I'm thinking of adding a Dwarven Mine improvement, which upgrade from mines in Khazad lands and can be built directly by Mud Golems. I may make RoK temples give their bonus based on these instead of normal mines.
 
Found a major bug- epic lairs can be explored over and over.
 
I don't think making Guardian of Nature available at Way of the Forests is a big deal. The tech is a bit more expensive now, and more importantly it is not as powerful now that Bloom is harder to get. It is a Nature II spell now so instead of being able to cast it with Priests of the Leaves as soon as you build them you have to get Nature mana and then level up Mages or Druids.

I'm starting to agree with you. So far I've played three games, one FoL Calabim, one RoK Malakim and one OO Lanun. I made the mistake of comparing your version of FoL to the vanilla FfH versions of the other religions. They all have gained some power in different ways.

I changed lairs to push their explorers off and spawn the big bads there so that you couldn't exploit them by surrounding them with units. It seems to be working just fine. It does seem odd that you could move a boat out of the ice though, unless you just mean there was ice in most of the surrounding tiles.

There was ice in all of the surrounding tiles save for the one with the lair. Unfortunately it was occupied by nasties so I waited until they moved off the lair before I dislodged my ship from the ice.

The Desert Shrine gives disciple units built in the city a free promotion pick for each non-floodplains/non-oasis desert tiles nearby. I meant that to be within a 2 tile radius but accidentally made it 3. I meant for it to allow up to 25 free promotions in an essentially worthless city, which is quite high, but not as bad as the current upper limit of 49. I'm thinking I should also make it not apply to tiles with resources, improvements, or maybe any yields.

Ah, this explains it. Do Disciple units even have 25 promotions to pick from? I can see this causing problems for a poor Malakim leader with too much desert who doesn't have enough promotions left to turn his priests into high priests. I like your suggested changes though.

Letting buildings give specialists based on improvements is a BtS mechanic that FfH just wasn't using. Tying it to state religion would be complicated and require SDK work, which I'm not willing to get into at this time. The closest I could come to it would be having alternate versions of the same temple, which are switched out in python each turn based on state religion. That seems needlessly complex. I'll likely just scale back what buildings use the mechanic. Also, I'm thinking of adding a Dwarven Mine improvement, which upgrade from mines in Khazad lands and can be built directly by Mud Golems. I may make RoK temples give their bonus based on these instead of normal mines.

Can this mechanic give specialists based on resources in the city radius? If so, having the temple give specialists based on gold, copper, iron, mithril or gems might align well with this theme and not be overly powerful.

Last night I had to end my Lanun game because of a WoC hang I couldn't get around. Only three new comments:
  • During the game I got two treasure chest events. For the life of me I could not figure out how to open them. The "Open Chest" ability remained grayed out no matter what unit I sent there.
  • I had a scout with the total sight promotion but he could no longer see giant spiders. I think the see invisible overwrote the see animal stealth?
  • I love the mana requirements for wonders. Love them. This is a great way to give civs advantages in building wonders appropriate to them. Yet it still allows anyone to get them provided they are willing to dedicate a rare mana node to acquiring the right mana type for it. And the free specialists most offer is a great incentive to not just build all your wonders in a mega-wonder city. I'm starting to think that mana nodes are now the most important resource on the map, as they always should have been. And the addition of mana types to all the unique improvments makes them really important to control.
 

Attachments

  • Hannah the Irin AD-0336.CivBeyondSwordSave
    481.6 KB · Views: 59
No, it only allows free specialists from improvements. You could create identical copies of improvements and use python to switch them out when a resource is discovered there, but that wouldn't be particularly efficient.


Hmm, I don't think I changed the Open Chest spell, but I'll check when I get back to my own computer. (IIrc I did add a result in the function that generates results, but that should not effect the prereq.)

Yes, the base FfH dll does not allow a unit to see multiple types of invisibility. Your second (Lanun game) comment is normal FfH behavior which I did not attempt to change.


Edit: I just checked, and it seems I accidentally deleted by the python prereq for Open Chest when I wrote the prereq for Open Mercurian Gate. I also noticed that in this release I forgot to change the Aeron's Chosen event so that it depends on the marksman promotion instead of unitclass_assassin; I think it is more appropriate to give the promotion to a Shadow, Marksman, Alazkan, or Losha than to a Devout. I may put out a small update before spring break, but not unless some larger bug is found.
 
I just got stuck in another game waiting on civilizations, playing as the Sheaim. Also, I was able to keep building infernal pacts, bringing more demons into the world. I thought each player could only build it once.

The only similarity I see is that in both games the Mercurian gate had very recently been built but not opened. I thought maybe it was hanging when the AI tried to open it, but deleting the gate doesn't help either game. I also gave the gate to myself and I could pop Basium just fine. Other than that, I don't see any wonders or rituals about to be completed or cities conquered so I really don't know what's halting these games.

A shame too. I played as Os-Gabella. I spent most of the game kowtowing to Cardith Lorda, letting the child march through my lands to destroy my friends. I had just finished conquering the useful Malakim lands. So far to go for iron. Strength of Will just finished researching and I used the Infernal Grimoire to tech Malevolent Designs. Then blight hit. The gate is in a ridiculously powerful city with most of the wonders in the game. Had Cardith opened the gate in all likelyhood Basium would have marched over me. But it would have been a heck of a fight!
 

Attachments

  • Os-Gabella AD-0268.CivBeyondSwordSave
    499.9 KB · Views: 65
I'd noticed those issues already.

I had set the rituals to once per player, but then changed it to make it easier to test. I'll probably change it back, but am not fully decided yet. Still, Infernals are not able to bring in new allies that way, only mortals civs can make the pact.



I gave the Mercurian Gate spells each a high iAIWeight value, but it seems I forgot to give them <bAllowAI>1 so the AI probably isn't actually allowed to use the spells. That has been fixed on my computer, but not yet tested.


One thing I feared could cause AI loops was the Take Flight and Alight spells allowed by Winged, which add and remove flying. They ignore casting and don't count as casting, so it is possible that a computer keeps adding and removing the promotion over and over again. I'd hoped that not giving that spell <bAllowAI>1</bAllowAI> would stop that.



Basium's weighting towards taking the city where the gate is built is much lower in my modmod, so there is no guarantee he would take it. He can however take over other cities of his teammates. A human Basium can take all of his allies cities if he so desires. As an AI Basium cannot take capital cities, and unless the city is a settlement cannot take it unless he owns less than half as many cities as his ally.
 
It does seem odd that you could move a boat out of the ice though...
This is default Civ4 behavior, the game doesn't care what kind of tile (impassable, etc) you're on, it only cares about the tile you're trying to move into. This also means you can get the same results for peaks and possibly pushing land unit into the water if you don't check for those cases when you push them off the lair. You should just be able to call the unit's CanMoveInto(pPlot) (I think, double check that) method to validate potential plots to push them into.
 
I gave the Mercurian Gate spells each a high iAIWeight value, but it seems I forgot to give them <bAllowAI>1 so the AI probably isn't actually allowed to use the spells. That has been fixed on my computer, but not yet tested.
I just tested it in a quick game where I gave everyone a Mercurian Gate from the start. When the AI is allowed to cast the spell, they do so promptly. They wouldn't even wait one turn after Basium's death before calling in reinforcements. I'm thinking I may want to scale back how many free angels Basium gets, but otherwise it seems to be working quite well.


This is default Civ4 behavior, the game doesn't care what kind of tile (impassable, etc) you're on, it only cares about the tile you're trying to move into. This also means you can get the same results for peaks and possibly pushing land unit into the water if you don't check for those cases when you push them off the lair. You should just be able to call the unit's CanMoveInto(pPlot) (I think, double check that) method to validate potential plots to push them into.
No, Kael changed that for FfH about the time he introduced the Maelstrom unique feature. Being in a tile with an impassible feature makes non-flying units stuck. as he explained, he was actually in a non-ice ocean tile surrounded by ice on all sides but where the lair was, and the lair was guarded by several monsters. My code already pushes them to the nearest tile that is passable to them (although I recently noticed it doesn't have a problem with pushing units into the borders of a civ with whom you their owner does not have an open border agreement).
 
No, Kael changed that for FfH about the time he introduced the Maelstrom unique feature. Being in a tile with an impassible feature makes non-flying units stuck. as he explained, he was actually in a non-ice ocean tile surrounded by ice on all sides but where the lair was, and the lair was guarded by several monsters. My code already pushes them to the nearest tile that is passable to them (although I recently noticed it doesn't have a problem with pushing units into the borders of a civ with whom you their owner does not have an open border agreement).

I don't think I was clear. Here is what happened:
Code:
III    III
III -> IMP
IIL    IIP

I=ice; L=lair; M=mycaraval; P=pirate
The lair bumped me onto the ice to the NW. A boss pirate ship appeared on the lair along with another pirate ship. A third pirate ship appeared to the N, also on the ice. There were perfectly good ocean tiles in all the other directions around the lair.

When I was testing the Mercurian gate, I gave it to a city with no land spaces surrounding it. I could open the gate and it would ask me if I wanted to play as Basium but Basium would never appear, and my units would remain in the city. I don't think I had python exceptions on, but I'm pretty sure it threw one. I didn't think to check would would happen if I chose to play as a non-existant Basium. Nothing good, I imagine.
 
That's odd.

You said you were able to move out of the Ice? I don't consider it a big deal, but I haven't seen the game act that way in years and don't see how anything I did could have changed it.


The code that spawns the Mercurians in my version should only be called if there is a free tile where the city's inhabitants can be moved. I just noticed that the IF statement checking to see if the player is human is not indented properly. It is not within the larger if statement as it should be, yet the things below it are intended thrice instead of twice. I'm surprised the code ever works this way. Fixing this indent should make the spell do nothing in situations like yours. I might add some block not allowing the gate to be built on a single tile island.
 
Now that you mention it, in my Lanun game I recalled the Luchuirp building Sphener just before the game died to a WoC. I tried a test game and gave the Calabim Sphener from turn 1. After 150 turns there was no WoC, but I think the Calabim AI was still using Sphener to protect his capital. I even tried provoking it with an easily captured city near the Calabim capital.

But Acheron also has winged. So unless he waits 200-ish turns to start flying (or landing) it's probably not the Winged promotion that's causing the problem.

You said you were able to move out of the Ice? I don't consider it a big deal, but I haven't seen the game act that way in years and don't see how anything I did could have changed it.

Yeah. I vaguely recall some changes made to ice tiles in a FfH vanilla changelog. May have been a year or so ago. I want to say it was around the time that the Illians became playable but I don't think it was related. Something to do with pathing... maybe. But I cannot remember. And since this really doesn't really have any effect on game-play I'm not terribly motivated to follow up on it. But I swear, it, like, totally happened!

The code that spawns the Mercurians in my version should only be called if there is a free tile where the city's inhabitants can be moved. I just noticed that the IF statement checking to see if the player is human is not indented properly. It is not within the larger if statement as it should be, yet the things below it are intended thrice instead of twice. I'm surprised the code ever works this way. Fixing this indent should make the spell do nothing in situations like yours. I might add some block not allowing the gate to be built on a single tile island.

Heh heh. I used to like that about Python. Now it just terrifies me. Of course, I still use it and love using it. But I don't think anyone else should use it.

I have heard that overzealous indentation can have unpredictable results, but in my experience it seems to always either fail or do exactly what was intended. This is the first time I have seen something unusual.
 
Top Bottom