"dummy promotions" not working

Hephaistion

Warlord
Joined
Apr 19, 2005
Messages
276
Location
Mt. Vernon, NY USA
I'm trying to update HephMod Beyond to use the doctrine promotion system from my Warlords version that I originally borrowed from Total Realism, but am having some issues.

The system works like this: a wonder, buildable by a great general, gives your units a base promotion with no effects that acts as the first step in a promotion tree. For example, the wonder, "Flaming Ammunition," puts a building in all of your cities that gives Archery units the promotion "Flaming Arrows" (PROMOTION_FLAMING0), which acts as a prerequisite for "Flaming Arrows I-III" (PROMOTION_FLAMING1, etc.). Now, to prevent anyone from being able to level up with the base promotion, PROMOTION_FLAMING0 has as its prerequisite a dummy promotion called PROMOTION_DOCTRINE_ONLY, which has no effects and no UNIT_COMBAT entries, so no unit ever actually has it.

NOW, with this architecture installed, after I build the wonder, my archery units get the base promotion (FLAMING0) just fine, but cannot level up to FLAMING1. When I remove the dummy promotion (PROMOTION_DOCTRINE_ONLY) from the prerequisites tag, FLAMING1 becomes available as it's supposed to, but without the dummy promotion, anyone with or without the wonder can select the baseline promotion for their archery units!

This worked just fine in Warlords -- does anyone know what the problem here is and/or how to fix it? I know one could accomplish the same thing with Python, but I'd really like NOT to have to do that, if possible. I've attached my promotions.xml file.
 

Attachments

  • CIV4PromotionInfos.rar
    4.5 KB · Views: 34
Have you tried both - using only <PromotionPrereq> or only <PromotionPrereqOr1> ? Because in the file you attached there is a odd mix - some of your new promos use Prereq, others use PrereqOr1.
I dont know for sure, but it micht be, that these work different ?

My guess would be, that <PromotionPrereq> should do what you want - it's how it worked in WL. While the OR-Prereqs are a BTS addition.
 
Have you tried both - using only <PromotionPrereq> or only <PromotionPrereqOr1> ? Because in the file you attached there is a odd mix - some of your new promos use Prereq, others use PrereqOr1.
I dont know for sure, but it micht be, that these work different ?

My guess would be, that <PromotionPrereq> should do what you want - it's how it worked in WL. While the OR-Prereqs are a BTS addition.

Yes, I tried both -- that was my first guess as well. They're mixed and matched in the file because I set it up one way and then changed them during experimentation, but it didn't make any difference.
 
Hmmm... Pity... It seems the new code is cheking for validity of prereq promotions then...

There is a possible workaround...
Use <bLeader>1</bLeader> for your Root promo (the Doctrine one) and allow it for all UnitCombat types, then make the later ones depend on the Doctrine.

A unit can't just "take" a Leader-only promo, and a GG is specifically declared to give the PROMOTION_LEADER - so your Doctrine Promotion should become un-obtainable, while still beeing valid for all the UnitCombat types you need.

From the look of the files it could work - just check how the other promos requiring LEADER work - but i never actually tried doing this, so there might be side effects i am unaware of.
 
Top Bottom