MagisterCultuum
Great Sage
I have merged in lfgr's latest update but am pretty busy this week and so not had much time to playtest or discover any bugs. I'll probably release a new version this weekend.
Some of the time I could have spent playtesting was instead taken up implementing new features I am not sure I will keep.
One is allowing various arcane units to use ranged combat, with the Spell Extension 1, 2, & 3 promotions serving to increase their operation range. (With no Extension promotions they have no range and thus no ranged attack at all.) Adepts do a maximum 20% damage, Mages a maximum 40%, (Wizards a Maximum 50%), and Archmages a maximum 100% damage (i.e., they can kill at range.) Their actual attack strengths are small though. I don't think the dll allows for promotions or affinity to change <iAirCombat>.
I also changed the way that Barnaxus teaches golems. I got annoyed by how some golems have the blue glow of being promotion ready when they could never actually purchase promotions, so I gave the race promotion a pyperturn effect that changes that status and removes xp from any golem but Barnaxus. Then I realized I might as well use that same call to let them learn from Barnaxus. I ended up making a new spell whose xml defines allow it only when a unit with the Golem promotion is in the same stack as a Barnaxus unit. I think it is faster for the python code to check whether that spell is castable than to check manually in python to see if Barnaxus is around. A golem can can this spell manually if on Barnaxus's tile, and will cast it automatically if there when the py per turn effect runs. It could thus gain 2 promotions per turn. I decided that rather than hardcoding a list of promotions, I'd instead check everything Barnaxus has and check the promotion info to exclude promotions with a min level of -1 (or more than the golem's level), any promotion with a bonus prereq, etc.
I just gave the Luchuirp a new unique unit, the Sheut Stone Golem, replacing the Eidolon. These are of course golems that can only be built by evil Luchuirp who have access to the Hellish resource Sheut Stone. They start with Golem, Sheut Stone, Unholy Taint, Undeath Affinity, and Channeling 3. Canonically the Sheut Stones are known to attract Wraith and were formed into powerful weapons used necromancers in the Age of Magic. Now, in the age of rebirth, they are being forced into weapons that use necromancy by themselves. (If they somehow loose the Sheut Stone promotion, they regain it at their next retrofit.)
(Similarly I gave Iron Golems the Iron Weapons promotion, which they should be able to loose through the Rust spell (although the way things work now that won't give non-combat units the Rusted promotion) and then regain through Retrofitting.
Much older (pre-BtS) versions of FfH2 had an Arcane Golem unit, which could summon imps and seemed thematically most similar to Sheut Stone Golems. I looked through old art files on an external harddrive to reuse that art, but was disappointed to find ti was just the current Aureales graphics. I decided it was better to just use a slightly smaller Nullstone Golem graphics with the icon from the Pass Through the Ether tech.
While looking through old files I decided I wanted to bring the old Forest Stealth promotion back, but might need to be careful to make sure that it adding and removing Hidden does not interfere with Whiteout or the normal Hide spell.
If you use a Djinn with Enchantment affinity the delayed spell does resolve before the unit's duration expires, but it does not give a spell staff to arcane units expiring the same turn. (At first I thought this was because I'd given Djinns magic immune, but it does not make a spell staff for a summoned imp expiring that turn either yet does give spell staffs to imps expiring a turn later.) I'm not quite sure why it works that way, but am fine with it.
I kept getting the unknown item type 10 messages even after merging in lfgr's latest update. I got them to go away by removing the ## before a line " addPlainTrade("pow exchange", TradeableItems.TRADE_POW, "TXT_KEY_TRADE_POW")" in C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\Magister Modmod for FfH2\Assets\python\BUG\TradeUtil.py
I believe this was commented out by lfgr a couple versions back, but am not sure why. I'm not really sure what it does except prevent that message.
I also uncommented the line two lines down, addPlainTrade("war reparations", TradeableItems.TRADE_WAR_REPARATIONS, "TXT_KEY_TRADE_WAR_REPARATIONS")
You know what I'd really like? An option to make diplomatic windows start minimized, like production in a city that you may not want to deal with immediately and could end your turn without addressing at all.
I have no idea how to code that, but maybe you could figure it out?
Some of the time I could have spent playtesting was instead taken up implementing new features I am not sure I will keep.
One is allowing various arcane units to use ranged combat, with the Spell Extension 1, 2, & 3 promotions serving to increase their operation range. (With no Extension promotions they have no range and thus no ranged attack at all.) Adepts do a maximum 20% damage, Mages a maximum 40%, (Wizards a Maximum 50%), and Archmages a maximum 100% damage (i.e., they can kill at range.) Their actual attack strengths are small though. I don't think the dll allows for promotions or affinity to change <iAirCombat>.
I also changed the way that Barnaxus teaches golems. I got annoyed by how some golems have the blue glow of being promotion ready when they could never actually purchase promotions, so I gave the race promotion a pyperturn effect that changes that status and removes xp from any golem but Barnaxus. Then I realized I might as well use that same call to let them learn from Barnaxus. I ended up making a new spell whose xml defines allow it only when a unit with the Golem promotion is in the same stack as a Barnaxus unit. I think it is faster for the python code to check whether that spell is castable than to check manually in python to see if Barnaxus is around. A golem can can this spell manually if on Barnaxus's tile, and will cast it automatically if there when the py per turn effect runs. It could thus gain 2 promotions per turn. I decided that rather than hardcoding a list of promotions, I'd instead check everything Barnaxus has and check the promotion info to exclude promotions with a min level of -1 (or more than the golem's level), any promotion with a bonus prereq, etc.
I just gave the Luchuirp a new unique unit, the Sheut Stone Golem, replacing the Eidolon. These are of course golems that can only be built by evil Luchuirp who have access to the Hellish resource Sheut Stone. They start with Golem, Sheut Stone, Unholy Taint, Undeath Affinity, and Channeling 3. Canonically the Sheut Stones are known to attract Wraith and were formed into powerful weapons used necromancers in the Age of Magic. Now, in the age of rebirth, they are being forced into weapons that use necromancy by themselves. (If they somehow loose the Sheut Stone promotion, they regain it at their next retrofit.)
(Similarly I gave Iron Golems the Iron Weapons promotion, which they should be able to loose through the Rust spell (although the way things work now that won't give non-combat units the Rusted promotion) and then regain through Retrofitting.
Much older (pre-BtS) versions of FfH2 had an Arcane Golem unit, which could summon imps and seemed thematically most similar to Sheut Stone Golems. I looked through old art files on an external harddrive to reuse that art, but was disappointed to find ti was just the current Aureales graphics. I decided it was better to just use a slightly smaller Nullstone Golem graphics with the icon from the Pass Through the Ether tech.
While looking through old files I decided I wanted to bring the old Forest Stealth promotion back, but might need to be careful to make sure that it adding and removing Hidden does not interfere with Whiteout or the normal Hide spell.
This post convinced me to make most Enchant Spellstaff and Enchant Spellstaves delayed casting spells (like Bloom of lair explorations). You'll be able to cast the spell whether or not you have casted already that turn, but the unit will be immobile and you won't get the Spell Staves until the next turn.Are Archmages with Enchantment Affinity suppose to be able to spam "Cast (Enchant Spellstaves (Greater))" and "Cast (Spellstaff)" nonstop in a single turn?
I was playing as Illians when I noticed that all my other arcane units in the stack could then combine "Cast (Spellstaff)" and [Insert Any Spell] to obtain an infinite number of spells/summons. I upgraded another Archmage with Dimensional (+Ice) Affinity into the stack and then realized I could conquer the map in a single turn with just two those Archmages.
Infinite Movement:
Dimensional Archmage summons Warp Bubble, loads the two archmages, travels 7 movements spaces, unloads the 2 Archmages.
Enchantment Archmage uses "Cast (Enchant Spellstaves (Greater))" and "Cast (Spellstaff)".
Dimensional Archmage uses "Cast (Spellstaff)" and summons a new Warp Bubble to travel another 7 movement spaces in the SAME turn. Repeat.
I had to revert back to an older save because it was too broken and no city could withstand the endless barrage of Ice Elemental/Snowfall/Warp Bubble Nuke.
If you use a Djinn with Enchantment affinity the delayed spell does resolve before the unit's duration expires, but it does not give a spell staff to arcane units expiring the same turn. (At first I thought this was because I'd given Djinns magic immune, but it does not make a spell staff for a summoned imp expiring that turn either yet does give spell staffs to imps expiring a turn later.) I'm not quite sure why it works that way, but am fine with it.
To be honest I'm not sure whether POV Exchanges do anything, except provide a small diplomatic bonus. They are an MNAI thing I have not touched..I don't know if this is possible, but can the POW Exchange be modified to include what is at risk?
If I am about to give several units to someone who might declare war on me, I'd like to know. It it's only 1 worker and I can improve relations after a cease fire then I will do it.
Also, I selected the last option, "Ain't Happening" to the POW request and the Clan of Embers just kept coming back asking again for another 20+turns. Which gets Really annoying.
Can a response be added that is our Final response on the subject? or at least give us say 10 or 20 turns between requests for the same topic from the AIs?
Also, after I reject them, I get 5 error messages up top saying, "Util10 - Unknown item Type 10".
I kept getting the unknown item type 10 messages even after merging in lfgr's latest update. I got them to go away by removing the ## before a line " addPlainTrade("pow exchange", TradeableItems.TRADE_POW, "TXT_KEY_TRADE_POW")" in C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\Magister Modmod for FfH2\Assets\python\BUG\TradeUtil.py
I believe this was commented out by lfgr a couple versions back, but am not sure why. I'm not really sure what it does except prevent that message.
I also uncommented the line two lines down, addPlainTrade("war reparations", TradeableItems.TRADE_WAR_REPARATIONS, "TXT_KEY_TRADE_WAR_REPARATIONS")
Have you tried "Cease bothering us" (not in the trade screen)?
You know what I'd really like? An option to make diplomatic windows start minimized, like production in a city that you may not want to deal with immediately and could end your turn without addressing at all.
I have no idea how to code that, but maybe you could figure it out?