[MOD] MagisterModmod

I'm thinking I may want to go back to having a separate Divine 2 promotion instead of using Channeling 3 or Channeling 4 for the high priests. That would mean that the high priests who are gifted random affinities no longer get access to the tier 4 spells, but a lot of those are probably too strong for them anyway. It might also make it easier for Luonnotar to block divine spells without blocking arcane magic.

I started giving them the channeling promotions again because I was short on divine spells, but now I think the Ringgivers are the only ones still lacking.
While limiting disciples to their god's affinity helps, it does still beggar belief that a 'mere' high priest of Sucellus would wield the Life sphere with the same power as Leucetios or Basium. Considering the relative difficulty of resurrecting the Imprimatur Council members or recruiting archangels, they just don't feel that special in the current build when compared to high priests wielding multiple spheres at the same level.

On the one hand, I'd support Channeling IV being limited to "legendary" units and Divine II being brought back for god-granted magic. On the other hand, the named Great Persons with affinities are clearly meant to be legendary figures, and it'd greatly reduce their potential if ordaining as a high priest didn't actually improve on their affinities in some way. Perhaps since Ordain is implemented as a special ability instead of a standard promotion already, it could be modified to add Channeling IV to the unit so that "Tya Kiri, Eater of Dreams" would remain a step above those merely promoted from Mobius Witches?

Granted, the result might be a tad sillier with cases such as "Speaker Father Prespin" being the equal of Hemah in the Water sphere, but that issue already exists...

On a related note, is there any listing yet for which non-Prophet Great Persons would be eligible to ordain in each of the cults? Particularly interested if any of them will be able to ordain Great Merchants, as there's several with interesting lore and special abilities but no actual path for promotion currently.
 
While limiting disciples to their god's affinity helps, it does still beggar belief that a 'mere' high priest of Sucellus would wield the Life sphere with the same power as Leucetios or Basium. Considering the relative difficulty of resurrecting the Imprimatur Council members or recruiting archangels, they just don't feel that special in the current build when compared to high priests wielding multiple spheres at the same level.

On the one hand, I'd support Channeling IV being limited to "legendary" units and Divine II being brought back for god-granted magic. On the other hand, the named Great Persons with affinities are clearly meant to be legendary figures, and it'd greatly reduce their potential if ordaining as a high priest didn't actually improve on their affinities in some way. Perhaps since Ordain is implemented as a special ability instead of a standard promotion already, it could be modified to add Channeling IV to the unit so that "Tya Kiri, Eater of Dreams" would remain a step above those merely promoted from Mobius Witches?

Granted, the result might be a tad sillier with cases such as "Speaker Father Prespin" being the equal of Hemah in the Water sphere, but that issue already exists...

On a related note, is there any listing yet for which non-Prophet Great Persons would be eligible to ordain in each of the cults? Particularly interested if any of them will be able to ordain Great Merchants, as there's several with interesting lore and special abilities but no actual path for promotion currently.

I got rid of the Ordain spells when I decided to let Great Persons start at level 6 so they could upgrade the normal way.

Tya Kiri is not really a legendary figure, just an ordinary Amurite Wizard who barely survived the Cave of Ancestors and regretted ever risking it. Most of the great people aren't really any more special than her, although a few are far more impressive


Great Bards can upgrade to High Priests of the Leaves, Whisperers, Hierophants, and Geniuses

Great Engineers can upgrade to High Priests of Kilmorph, Wrights (or whatever I settle upon for the Ringgiver high priests), and Geniuses

Great Commanders can upgrade to Priors/Pontiffs, High Priests of Winter, Belligerents, Sanguinaries, and Geniuses.

Great Merchants can upgrade to Cronies, Runekeepers, Whisperers, Sanguinaries, or Geniuses.

Great Prophets can upgrade to any of the high priests, or Luonnotar

Great Sages can upgrade to Archmages, Lumenaries, Profanes, Eaters of Dreams, Crypt Keepers, Wrights (or whatever I settle upon for the Ringgiver high priests), Hierophants, and Geniuses


if you want to see what promotions and religions different great persons get, you can look right at the code:
Spoiler :
Code:
               if iUnit == gc.getInfoTypeForString('UNIT_ADVENTURER'):
##                   if sName == "Khord Tenhare":
                   if sName == localText.getText('TXT_KEY_UNIT_ADVENTURER_5', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DWARF'), True)
##                   elif sName == "Kirien of Brigdarrow":
                   elif sName == localText.getText('TXT_KEY_UNIT_ADVENTURER_21', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WINTERBORN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DRILL1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DRILL2'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ANIMAL'), True)
##                   elif sName == "Lyrr, Son of Adulin":
                   elif sName == localText.getText('TXT_KEY_UNIT_ADVENTURER_22', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ELF'), True)
                       unit.setReligion(iLeaves)
##                   elif sName == "Volanna":
                   elif sName == localText.getText('TXT_KEY_UNIT_ADVENTURER_12', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_ELF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_COMMANDO'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MARKSMAN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SCAVENGER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WEREWOLF'), True)
                       unit.setReligion(iFoxmen)
               elif iUnit == gc.getInfoTypeForString('UNIT_ARTIST'):
                   unit.setLevel(6)
##                   if sName == "Argase the Magician":
                   if sName == localText.getText('TXT_KEY_UNIT_ARTIST_10', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ARCANE'), True)
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(iChanneling2, True)
                       unit.setLevel(4)
##                   if sName == "Dhaunae the Illusionist":
                   if sName == localText.getText('TXT_KEY_UNIT_ARTIST_19', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ILLUSIONIST'), True)
                       unit.setReligion(iEsus)
##                   elif sName == "Furia the Mad":
                   elif sName == localText.getText('TXT_KEY_UNIT_ARTIST_11', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMORTAL'), True)
##                   elif sName == "Taneath":
                   elif sName == localText.getText('TXT_KEY_UNIT_ARTIST_5', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_FIRE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUMMONER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUNDERED'), True)
                       unit.setReligion(iCoven)
##                   elif sName == "Samawen the Ghost":
                   elif sName == localText.getText('TXT_KEY_UNIT_ARTIST_8', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STEALTH'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HIDDEN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_GREY'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW1'), True)


##                   elif sName == "Gwenhwyfar the Swanmay":
                   elif sName == localText.getText('TXT_KEY_UNIT_ARTIST_24', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_ELF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_NATURE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EVANGELIST'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ANIMAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_BEASTS'), True)
                       unit.setReligion(iLeaves)
                   
               elif iUnit == gc.getInfoTypeForString('UNIT_GREAT_GENERAL'):

##                   elif sName == "Captain Ostanes":
                   if sName == localText.getText('TXT_KEY_UNIT_COMMANDER_1', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_COMMANDO'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HORSELORD'), True)
                       unit.setReligion(iStewards)
##                   elif sName == "Captain Uldanor":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_2', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HORSELORD'), True)
                       unit.setReligion(iFoxmen)


##                   elif sName == "Goroff Grist":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_5', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_INQUISITOR'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VALOR'), True)
                       unit.setReligion(iOrder)
##                   elif sName == "Haerlond Gossam":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_6', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_ELF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BLIND'), True)

##                   if sName == "Mikel Alaunus":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_10', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SUN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_UNDEAD'), True)
                       unit.setReligion(iEmpyrean)

##                   elif sName == "Tethira":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_11', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MAGIC_RESISTANCE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VALOR'), True)
##                   elif sName == "Palpeious":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_12', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ORC'), True)

##                   elif sName == "Rivanna the Wraith Lord":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_13', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_ELF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VAMPIRE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ILLUSIONIST'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUMMONER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_DEATH'), True)
                       iAphelion = gc.getInfoTypeForString('EQUIPMENTCLASS_APHELION_AMULET')
                       if gc.getGame().getUnitClassCreatedCount(iAphelion) == 0:
                           gc.getGame().incrementUnitClassCreatedCount(iAphelion)
                           unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_APHELION_AMULET'), True)

##                   elif sName == "David Allen Grossman":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_22', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WEAK'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
                       unit.setReligion(iAnointed)
##                   elif sName == "Soloman Ka":
                   elif sName == localText.getText('TXT_KEY_UNIT_COMMANDER_23', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_BODY'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_MIND'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SPIRIT'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_PERFECT_SIGHT'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LOYALTY'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMUNE_DISEASE'), True)

               elif iUnit == gc.getInfoTypeForString('UNIT_MERCHANT'):
                   unit.setLevel(6)
##                   if sName == "Abdulkani the Mirage":
                   if sName == localText.getText('TXT_KEY_UNIT_MERCHANT_4', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ILLUSIONIST'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STEALTH'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW'), True)
                       unit.setReligion(iEsus)

##                   elif sName == "Hamish Ovid the Candyman":
                   elif sName == localText.getText('TXT_KEY_UNIT_MERCHANT_21', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WEAK'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DIVINE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_OCCISOR'), True)
                       unit.setReligion(iAnointed)
               elif iUnit == gc.getInfoTypeForString('UNIT_PROPHET'):
                   unit.setLevel(6)
##                   if sName == "Calwinna of Junil":
                   if sName == localText.getText('TXT_KEY_UNIT_PROPHET_10', ()):
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_LAW'), True)
                       unit.setReligion(iOrder)
##                   elif sName == "Father Prespin":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_19', ()):
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WINTERBORN'), True)
##                   elif sName == "Lanthis":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_16', ()):
                       unit.setReligion(iEmpyrean)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_PERFECT_SIGHT'), True)
##                   elif sName == "Lita the Witch":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_12', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_METAMAGIC'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ANGEL'), True)
                       unit.setReligion(iLaeran)
##                   elif sName == "Nyarlat":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_7', ()):
                       unit.setReligion(iUndertow)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS1'), True)
##                   elif sName == "Pontif Elmin":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_17', ()):
                       unit.setReligion(iOrder)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXORCIST'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VALOR'), True)
##                   elif sName == "Talia Gosam":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_11', ()):
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ARCANE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DIVINE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_NATURE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NOMAD'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ANIMAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_BEASTS'), True)
                       unit.setReligion(iUnblemished)
##                   elif sName == "Vaghan of Lugus":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_20', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CROWN_OF_BRILLANCE'), True)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SUN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH_ARAWN1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH_ARAWN2'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMUNE_DISEASE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEMON_SLAYING'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MEDIC1'), True)
                       unit.setReligion(iEmpyrean)
##                   elif sName == "Abnoba":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_14', ()):
                       unit.setReligion(iVeil)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUMMONER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUNDERED'), True)
                       unit.setHasPromotion(iUnholyTaint, True)
##                   elif sName == "Cinnia":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_15', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CRAZED'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ZEAL'), True)
                       unit.setReligion(iUndertow)
##                   elif sName == "Oriol Peregrinus":
                   elif sName == localText.getText('TXT_KEY_UNIT_PROPHET_21', ()):
                       unit.setReligion(iEsus)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MEDIC1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MEDIC2'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_GUERILLA2'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DWARF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MOUNTAINEER'), True)

               elif iUnit == gc.getInfoTypeForString('UNIT_SCIENTIST'):
                   unit.setLevel(6)
##                   if sName == "Bradeline":
                   if sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_5', ()):
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(iUnholyTaint, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_DEATH'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUMMONER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXTENSION1'), True)
##                   elif sName == "Luciaqua":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_9', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ELEMENTAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_WATER'), True)
##                   elif sName == "Dentaro":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_6', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WINTERBORN'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT2'), True)
                       unit.setReligion(iLaeran)
##                   elif sName == "Magister Cultuum":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_20', ()):
                       unit.setReligion(iLaeran)
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MAGICALLY_LIBERAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MAGIC_IMMUNE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_CREATION'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_METAMAGIC'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SUN'), True)
                       unit.setLevel(3)

##                   elif sName == "Magister Roth":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_23', ()):
                       unit.setReligion(iAnointed)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND2'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW1'), True)

##                   elif sName == "Menolly NuValle":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_8', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_FIRE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ZEAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VALOR'), True)
##                   elif sName == "Caer of Euphoria":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_1', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ANGEL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_WATER'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_MIND'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT3'), True)
##                   elif sName == "Tephus the Mistwalker":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_4', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_METAMAGIC'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW'), True)
                       unit.setReligion(iLaeran)
##                   elif sName == "Thessalonica":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_18', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HOMELAND'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ZEAL'), True)
##                   elif sName == "Tya Kiri":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_11', ()):
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(iChanneling2, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_DIMENSIONAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_ENTROPY'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXTENSION1'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPELLSTAFF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HEALING_SALVE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ARCANE'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT_GUIDE'), True)
##                   elif sName == "Asher the Encephalic":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_14', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_MIND'), True)
                       unit.setHasPromotion(iChanneling2, True)
##                   elif sName == "Waldrun the Necromancer":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_21', ()):
                       unit.setHasPromotion(iChanneling2, True)
                       unit.setHasPromotion(iChanneling1, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_DEATH'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SPIRIT'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPELLSTAFF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_ELF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BLIND'), True)

##                   elif sName == "Stolas the Dark":
                   elif sName == localText.getText('TXT_KEY_UNIT_SCIENTIST_22', ()):
                       unit.setReligion(iVeil)
                       unit.setHasPromotion(iUnholyTaint, True)
                       unit.setHasPromotion(iChanneling2, True)
                       unit.setHasPromotion(iDivine, True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_ENTROPY'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_VAMPIRE'), True)


               elif iUnit == gc.getInfoTypeForString('UNIT_ENGINEER'):
                   unit.setLevel(6)
##                   if sName == "Athos Ulthane":
                   if sName == localText.getText('TXT_KEY_UNIT_ENGINEER_14', ()):
                       unit.setReligion(iRunes)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DWARF'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HOMELAND'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT2'), True)
##                   elif sName == "Khmer Otterfig":
                   elif sName == localText.getText('TXT_KEY_UNIT_ENGINEER_1', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ORC'), True)
##                   elif sName == "Pistis Sophia":
                   elif sName == localText.getText('TXT_KEY_UNIT_ENGINEER_18', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ZEAL'), True)
                       unit.setReligion(iBrotherhood)
##                   elif sName == "Valoel":
                   elif sName == localText.getText('TXT_KEY_UNIT_ENGINEER_11', ()):
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HOMELAND'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ZEAL'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEMON_SLAYING'), True)
                       unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AFFINITY_LIFE'), True)
                       unit.setReligion(iUnblemished)

I feel like Artificer carries a suggestion of a more skilled craftsman or someone able to work finer details, in comparison to Wright or Techton; appropriate for a higher tier unit. Tinker versus faber/wright/techton however feels more like a matter of profession, by contrast.

Faber/Wright however sounds very fitting for a unit that can be sacrificed like Engineers or Soldiers of Kilmorph can, wheras a Tinker would be an appropriate name for a unit with exclusive access to the Repair spell. What if Faber/Wright were a disciple unit that could be sacrificed, but gives less production compared to a Soldier of Kilmorph?

An appropriate spell for an Artificer could be something related to improving siege/naval/golem units, either giving them a Retrofit Golem-like ability (though i don't know how it would work in contrast to checking buildings in a city) or giving them otherwise unavailable promotions or pure XP. That plus their ability to build railroads (which i assume would requires Machinery for them to build?) would make them a worthwhile investment for anyone who focuses in those aspects (either Luchuirp in general, or those who use Automatons)-

So in my opinion it should go Faber > Tinker > Artificer, or Wright > Tinker > Artificer.



I have to agree on this; the change to Enchantment III makes it a much more useful spell to pick up. Sure, spellstaves are powerful (even moreso in the upcoming version) but i much prefer the idea of cranking out a variety of useful items instead. Enchantment I & II by contrast are much more limited in their use, or rather recasting, especially Enchantment II. But if Repair is to be exclusive to Ringgivers Divine 1, i don't know what to suggest instead as a spell.




That could certainly weaken some of the high priests in certain aspects. For example, you yourself can become either an excellent Archmage or a Profane/Luminary depending on faith and if you're after Djinn+magic power versus Awaken Magic, Epiphany & theoretically endless Golden Ages. If Channeling IV becomes exclusively the purview of Omniscience Archmages and a few select heroes, several such Great Person options may become less attractive. It would entirely depend on which spells would remain as Channeling IV and which would become Divine 2.



Befitting the religion's unique state of allowing multiple Houses of Plenty (although only a singular Museum), would it be possible for them to be National Units with a cap of 1? That way you could let them have the power of a singular hero, but also theoretically let several players have Couatls at once.

I was leaning towards calling the Ringgiver's disciple the Tinker, their priest the Techton, their high priest the Wright, and their temple the Artificery, but am not completely settled on it yet.

I definitely feel like Wright would be a higher level of skill than Tinker. .

I've pretty much decided that Repair will be Enchantment II, not a Ringgiver spell.

Enchantment affinity mages may be overpowered if they keep both Repair Greater and Empower Golems.

I could easily change Empower Golems to Empower Engines, making it work on Siege and Naval units as well as Golems, and use it as a Ringgiver spell. If that is not enough, it could go ahead and heal the units at the same time, and possibly retrofit golems if they are in cities with the appropriate buildings.

Note that the great person's ability to upgrade to high priests is already limited by their religion type. Most named great persons have their religions assigned to them and cannot upgrade to high priests of other faiths.

I guess I could make the Couatl a singular national unit. If so, should it still get a Hero promotion? I'm guessing I shouldn't make a spell to resurrect them since national units can be rebuilt whenever they are lost.

Edit: Currently the arcane and divine spells are as follows:

Spell spheres
Spoiler :

The numbers indicate the required channeling promotions
Parentheses mean there is only available with affinity

Air:
1: Fair Winds
2: Maelstrom
3: Summon Air Elementals
(4: Tempest)

Body:
1: Haste
2: Regeneration
3: Strengthen
(4: Create Chimera) - unlimited permanent summon of random types of hybrid units like Mantcores, Minotaurs, Lizardmen, Lamias, Centaurs, Colubras, Mustevals, Wyverns, Pagasos, etc

Chaos
1: Chance of Blades
2: Summon Pit Beast
3: Wonder, (Mutation)
(4: Ira Unleashed) - this summons Iras until you reach the national unit limit, although I may want to change this as Ira can be trained directly now

Creation:
(1: Muse)
(2: Summon Pixie)
(3: Abundance)
(4: Golden Age)

Death:
1: Hallow Grave
2: Destroy Undead
3: Summon Angel of Death
(4: Make Mortal)

Dimensional:
1: Escape
(Escape Facilitated - for units in the same stack)
2: Planar Binding
3: Door of Ether
(4: Summon Warp Bubble)

Earth:
1: Diligence
2: Stoneskin
3: Summon Earth Elemental
(4: Earthquake)

Enchantment:
1: Enchant Blade
2: Repair
3: Craft Artifact
(4: Construct Automaton)

Entropy:
1: Rust
2: Wither
3: Summon Balor
(4: Defile - An inverse of Sanctify, this creates hell terrain and adds Unholy Taint to nearby units)

Fire:
1: Blaze
2: Fireball
3: Summon Fire Elmental
(4: Pillar of Fire)

Force:
1: Temperance
2: Ring of Warding
3: Summon Runewyn
(4: Purge Magic)

Ice:
1: Slow
2: Summon Ice Elemental
3: Snowfall
(4: Summon Aquilan )

Law:
1: Loyalty
2: Summon Host of the Einherjar
3: Unyielding Order
(4: Cosmic Order) - an untested new spell that ends the occupation timer, reduces hurry anger, and reduces the revolution risk in every city in the world, not just your own, but has no permanent building like unyielding order does to eliminate unhappiness or maintain any effects for multiple turns

Life:
1: Sanctify
2: Fertility
3: Resurrection
(4: Grant Immortality)

Metamagic:
1: Floating Eye
2: Dispel Magic
3: Summon Djinn
(4: Awaken Magic)

Mind:
1: Inspiration
2: Charm Person
3: Domination
(4: Hastur's Razor) - does psychic damage and adds Crazed in addition to the effects of the spell from the base mod)

Nature:
1: Poison Blade
2: Bloom
3: Summon Treant
(4: Overgrowth) - strengthens all animals and upgrades features terrain within a potentional enormous range, depending on effect supply of nature mana

Shadow:
1: Blur
2: Shadowwalk
3: Summon Mistform, (Mask Greater), (Mask Facilitated - available to other units in the same stack)
(4: Summon Changeling)

Spirit:
1: Courage
2: Hope
3: Assuage
(4: Peace) - Ends wars and grants the Pacified promotion to prevent even HN units nearby from being able to attack until it wears off

Sun:
1: Scorch
2: Blinding Light
3: Summon Aurealis
(4: Epiphany) - lets you see everything any other player can see

Undeath:
1: Raise Skeleton
2: Summon Spectre
3: Summon Wraith
(3: Raise Undead - creates undead versions of the units who left sluaghs nearby)
(4: Call of the Grave) - adds deathphage and deals a lot of death damage to living units, raises sluaghs and units it kills as undead, and fully heals undead units nearby

Water:
1: Spring
(2: Water Walking) - Water 2 just lets that unit walk on water without needing a spell for a separate promotion
3: Summon Water Elemental
(4: Inundation) - A potentially Lethal version of Tsunami, which can turn the unit it kills into Drowns if you are allowed Necromancy and follow the Undertow


Divine 1 spells
Spoiler :

Bless - for any good aligned caster (I am less sure about limiting the targets by religion now that I remember that would require a python effect that the AI would not understand as well)

Revelation - with Empyrean unit and state religion

Rescue Refugees - with Brotherhood of Wardens
(Note that the Calabim Blinded Brother UU lacks Divine so it cannot use this spell, but instead has a special ability called Pacify that gives nearby units, friend and foe, the Pacified promotion so they cannot attack removes Enrages, Rebel, and Burning Blood)

Craft Constructs - with Ringgivers

Vitalize - with Unblemished

Restoration - with House of Plenty

Valor - with The Order (now adds Valor and removes Fatigued, Charmed, and Rebel from units in the stack)

Shield of Faith - with Runes of Kilmorph unit and state religion

Halt Undead - with Eternal Cabal (I just now wrote this code and have not tested it yet, but it should immobilize nearby undead units)

Research - with Laeran Cord

Call Animal - with Fellowship of the Leaves unit and state religion

Banish - with The Grey Council unit religion (I just moved this away from the Order and am reworking its code so it can work on both angels and demons)

Truancy - with Foxmen, lets an upgraded Vagrant choose to become a Vagrant again to upgrade along another path without waiting to revert types passively.

Tsunami - with Undertow unit and state religion and proximity to water

Kidnap- with council of Esus unit and state religion, and a settled great person in the city
Steal- with council of Esus unit and state religion, and equipment belonging to other player in the stack
Destroy Production - with Council of Esus, in rival city
Sabotage - with Council of Esus, in rival territory
Steal Plans - with Council of Esus, in rival city
Embezzle - with Council of Esus

Call Blizzard- with The White Hand

Conduct Trade Mission - with Stewards of Inequity

Disrupt - with Sons of Discord

Graft Flesh - with Anointed

Summon Imp - with Ashen Veil
Deathphage - with Ashen Veil and Undeath Affinity

Ring of Flames - with Ember Legion

Astral Projection - with The Between



These are the Divine II spells
Spoiler :

Crown of Brilliance - with the Empyrean

Forgive - with Brotherhood of Wardens (Turns hostile demons into your Merry Dancers, who can also use this spell)

Empower Engines - with Ringgivers (gives golems, siege, and naval units the caster's summon promotion perks and duplicates the lesser repair spell)

Vitalize Area - with Unblemished

Renewal - with House of Plenty

Summon Valkyrie - with The Order (I just added this to make up for moving Valor down a level so that I could move Banish to the Grey Council. I'd tried such a spell in the past but before lfgr's last update immortal units would be reborn whenever their duration expired.)

Crush - with the Runes of Kilmorph

Summon Tomb Wardens - Eternal Cabal
Summon Gyra - Eternal Cabal in city with Mercurian Gate

Share Secret Knowledge - with the Laeran Cord

Summon Guardian Vines - with the Fellowship of the Leaves

Decree Truce - with Grey Council

Gale - with Foxmen

Summon Kraken - with the Undertow
Waterwalking - with the Undertow

Trust - with the Council of Esus
Paranoia - with the Council of Esus

Create Blizzard- with The White Hand
Summon Tar Demon - with the White Hand

Avarice- with Stewards of Inequity

Provoke - with Sons of Discord

Rage - with the Anointed

Hellfire- with the Ashen Veil

Summon Azer - with Ember Legion

Consume Soul - with The Between


I'm thinking Juror > Bailiff > Judge seems a more natural progression for the Grey Council than Juror > Bailiff > Arbiter. The Magic of Fall from Heaven reddit entry does specifically say that Dagda's Force sphere is the domain of Judges.



I am thinking of completely reworking the Rescue Refugees spell. It has been a delayed casting spell that works by directly moving culture, religions, and population points from one city to another and teleporting the caster to that city.

What would you think if I changed it to instead create Refugee units which are like settlers but count as SPECIALUNIT_PERSON so I can let the Brotherhood of Wardens units act as carriers for those units to carry them to any city where you want them to settle? I might then make it not only not delayed but one that can be used many times in a turn, so long as you have units with room to carry the refugees. The Warden could carry 3, the Reddemer 7, and the Devout 1.

I'm also thinking that "Warden of the Meek" may be too awkward of a name, so I may change it to "Rescuer."
 
Last edited:
if you want to see what promotions and religions different great persons get, you can look right at the code:
Scanning the list for changes, a few notes:

Volanna spawning with Lycanthropy, as the Grigori's first Adventurer or out of an early lair, is pretty wild if going by current-build mechanics. Ravenous Werewolves are free units if nothing else, and lucking into a single Blooded/Greater Werewolf would slaughter practically anything in the early game.

I note that with all GPs starting at level 6, Hamish Ovid would actually be able to Spread the Anointed unless that ability has been written off in the rework. Not that I'm against it; it actually seems neat for religious GPs to let you found their religion early, in a Varn-coming-to-the-Malakim sort of way. I think it's limited to Hamish and Gwenhwyfar currently, unless the Evangelist promotion was made available to civilian units in which case Talia could take it.

I've pretty much decided that Repair will be Enchantment II, not a Ringgiver spell.

Enchantment affinity mages may be overpowered if they keep both Repair Greater and Empower Golems.

I could easily change Empower Golems to Empower Engines, making it work on Siege and Naval units as well as Golems, and use it as a Ringgiver spell. If that is not enough, it could go ahead and heal the units at the same time, and possibly retrofit golems if they are in cities with the appropriate buildings.
Empower Engines sounds wonderful; anything to have more magic that interacts with naval combat.

It's for the best that it's on the divine side since otherwise the anti-arcane Khazad would miss out on a siege buff when siege is their whole shtick. Merging it with Retrofit Golem sounds fine as it was always a niche ability when you can just build new golems.

I am thinking of completely reworking the Rescue Refugees spell. It has been a delayed casting spell that works by directly moving culture, religions, and population points from one city to another and teleporting the caster to that city.

What would you think if I changed it to instead create Refugee units which are like settlers but count as SPECIALUNIT_PERSON so I can let the Brotherhood of Wardens units act as carriers for those units to carry them to any city where you want them to settle? I might then make it not only not delayed but one that can be used many times in a turn, so long as you have units with room to carry the refugees. The Warden could carry 3, the Reddemer 7, and the Devout 1.
Sounds great, even in Elohim/Wardens games I never used the current Rescue Refugees because my cities near the enemy were already capped and would ironically go into unrest/starvation if they got the extra pop.

As a suggestion, perhaps the Blinded Brothers could use a variant of the spell on the player's own cities, allowing the Calabim to forcibly resettle their own population points to bulk up feasting cities or new colonies.
 
The latest version should now be live.

This is a major update that will certainly break saves.

All of the maps and scenarios included ought to be compatible again.

I added quite a bit of new custom artwork and was concerned that it would make the download too large, so I unpacked Magister1.FPK and deleted a lot of files that were obsolete or redundant. The last time I tried making a new FPK file the program crashed, so this time I decided not to bother. That means all my custom art should be easily available in the art folder for any other modders who might wish to borrow any of it.


I cannot guarantee it is free of bugs, but I believe it is more stable than the previous public version. I think this is as good as I can get it without lfgr providing a new DLL, and hope that playtesting with this release will help him track down the sources of the few issues that still cause random crashes on occasion.
 
I haven't had the time to start a new game yet but the new features look truly awesome.

I do need to mention i had some significant issues installing the update, as folder names became uncapitalized and would not merge/replace existing file structures. This resulted in missing art for religion icons, unit models and similar. However, every issue was easily solved by manually merging the folders. I suspect this may because i am using Manjaro and the archive rather than the .exe installer, but it's worth mentioning in case someone else also gets a similar issue.

While this worked to restore all icons and art, the Salamander unit is invisible in the pedia (by comparison, it displayed as a red or pink ball when the art was missing entirely. Does anyone else have the same issue? I don't know if there is something additionally i need to do to get it to display or if there's an issue in upload. Every new unit & old unit with an updated model is visible correctly.
Edit: I discovered the Salamander is just adorably tiny in the pedia, so it's perfectly visible by adjusting the camera.

I also noticed a pair of odd things about the new faiths:
The Ember Legion Zealots upgrade directly to Ardent, without being able to upgrade to Firebrands. I suspect this is just an oversight rather than an intended upgrade path for them.

The Crypt Keeper pedia entry states that their abilities are not technically divine spells and as such they are not persecuted by the Matronae. However, they do have Divine & Divine II, with the latter according to the pedia being a requirement to summon Gyra and Tomb Wardens. Is this a relic from when they were not going to have any spells at all, or is there an under-the-hood mechanic that protects them from Bane Divine or permits them to coexist with the Matronae? (Likewise, i cannot through the pedia see how Crypt Keeprs would get access to Angels of Death. Summon Angel of Death (Greater) requires Channeling III, which they do not have baseline).

Finally, i also noticed the new Grey Council civic states that it blocks state religion. Is there a built-in exception for the Grey Council religion itself? It seems like it would keep you from accessing their hero/high priests/runewyns.
 
Last edited:
I haven't had the time to start a new game yet but the new features look truly awesome.

I do need to mention i had some significant issues installing the update, as folder names became uncapitalized and would not merge/replace existing file structures. This resulted in missing art for religion icons, unit models and similar. However, every issue was easily solved by manually merging the folders. I suspect this may because i am using Manjaro and the archive rather than the .exe installer, but it's worth mentioning in case someone else also gets a similar issue.

While this worked to restore all icons and art, the Salamander unit is invisible in the pedia (by comparison, it displayed as a red or pink ball when the art was missing entirely. Does anyone else have the same issue? I don't know if there is something additionally i need to do to get it to display or if there's an issue in upload. Every new unit & old unit with an updated model is visible correctly.
Edit: I discovered the Salamander is just adorably tiny in the pedia, so it's perfectly visible by adjusting the camera.

I also noticed a pair of odd things about the new faiths:
The Ember Legion Zealots upgrade directly to Ardent, without being able to upgrade to Firebrands. I suspect this is just an oversight rather than an intended upgrade path for them.

The Crypt Keeper pedia entry states that their abilities are not technically divine spells and as such they are not persecuted by the Matronae. However, they do have Divine & Divine II, with the latter according to the pedia being a requirement to summon Gyra and Tomb Wardens. Is this a relic from when they were not going to have any spells at all, or is there an under-the-hood mechanic that protects them from Bane Divine or permits them to coexist with the Matronae? (Likewise, i cannot through the pedia see how Crypt Keeprs would get access to Angels of Death. Summon Angel of Death (Greater) requires Channeling III, which they do not have baseline).

Finally, i also noticed the new Grey Council civic states that it blocks state religion. Is there a built-in exception for the Grey Council religion itself? It seems like it would keep you from accessing their hero/high priests/runewyns.
I don't know what Manjaro is.

Before releasing I deleted my old version of Magister Modmod and ran the installer, so I assumed that would work for everyone.


For some reason the scale of the Salamander unit is very small in the nif file itself, such that the <fScale> and <fInterfaceScale> scale set in its CIV4ArtDefines_Unit.xml have to be a lot larger than normal to make up for it. At one point I was playing around with adjusting its scale in Nifscope and so made those xml scale variables smaller, but doing so ended up messing up something (I forget the details, but think it was the positioning of the shield or weapons or the animations) so I put it back. It seems I fixed <fScale> afterwards but forgot about <fInterfaceScale>

<fInterfaceScale> is currently set to 0.6, but should be at about 6.0


The Ember Legion upgrading to High Priests instead of Priests is definitely a mistake. I started making the Zealot by copying and pasting the Firebrand defines, and it seems I forgot to adjust that part.


I guess I forgot to adjust the Cryptkeeper pedia entry after I removed Channeling 3 or 4 from all of the High Priests and went ahead and gave them Divine and Divine 2. The Eternal Cabal High Priests used to have Channeling 3, which let those who were gifted Death affinity cast Summon Angels of Death.

No, the Eternal Cabal priests/high priests have no immunity to the Matronae now. I decided that it was better to let the faith represent not only the cult of Arawn but also of Laroth and of Auric after he betrays Laroth by absorbing all the power of Arawn but using it to elevate himself to godhood a second time rather than help Laroth ascend. Laroth and Gyra are fierce enemies.

It looks like I forgot to document it in the civilopedia, but the Summon Gyra spell does more than just summoning Gyra. She appears with a small army of Tomb Wardens and Angels of Death, the number of each depending on the city's supply of Life and Death mana respectively.



I hadn't touched the Grey Council Civic since before I decided to allow adopting the Grey Council religion and giving it the full compliment of disciples, priests, high priests, and heroes. If I'd thought about it before the release, I would have either removed that restriction or removed the Grey Council civic entirely.

Edit: Actually, it does not seem like the civic does block state religions. I just adopted it in my current game and it did not make be abandon the Fellowship of the Leaves. I also noticed that the Overcouncil claims no stare religion too. I'm not really clear what if anything bStateReligion actually does.

I also noticed that I accidentally made the House of Plenty's Gallery temple a prereq for their disciple and high priest but not for the priest. I think I meant to make it a prereq for the disciple and priest but not high priest.
 
Last edited:
I don't know what Manjaro is.
A Linux distribution, which means i can't use .exe files for installation (and had to use supporting programs to install Civilization IV in the first place) and as such must rely on the zipped archive.



I got some time to sit down and start playing and found myself rushing to get the Museum (for the free Creation mana towards the Tower of Divination). Having the Museum require Drama is an excellent change imo, both fitting and forces you to research several culture/happiness techs that would usually be put off until later (unless playing as Balseraphs).

I also noticed that I accidentally made the House of Plenty's Gallery temple a prereq for their disciple and high priest but not for the priest. I think I meant to make it a prereq for the disciple and priest but not high priest.

I was about to report this bug as well before i re-read your post. It's also worth noting that the Curator also doesn't require Priesthood like most other priest-tier units, only Drama. On the other side of the coin, Sapare require Education + Priesthood, although Education is already a prerequisite for Priesthood.

The ability to sacrifice Curators + Patrons for Golden Ages seems very strong, but it might be significantly overinflated due to being able to train Curators too easily at the moment.

The +10 culture for every city that has the religion seems powerful at a glance, but i'm not sure if it needs to be nerfed neccessarily considering they don't get any free specialists, research or gold from the temple compared most other temples.
 
I was about to report this bug as well before i re-read your post. It's also worth noting that the Curator also doesn't require Priesthood like most other priest-tier units, only Drama. On the other side of the coin, Sapare require Education + Priesthood, although Education is already a prerequisite for Priesthood.

The ability to sacrifice Curators + Patrons for Golden Ages seems very strong
That was a mistake. I meant to let the Genius start a golden age, not a Curator and definite not a mere Patron.

Also, it seems I forgot to make Great Commanders start at level 6 like other great persons. I had intended to do so to somewhat nerf the ability of high level units to join with a commander to go back to level 1 and get a lot more promotions.
 
Last edited:
Only just getting into a new game, but I noticed something off with the Unblemished. Their disciple, Healer, requires Medicine and an Infirmary, making them arguably harder to build than the actual priest, Druids. It makes sense for the Hospitaller perhaps, but maybe Healer should require an Herbalist instead?

The Discord civic had me really confused for a moment because it lists no prerequisites besides war and the alignment restriction. I had to mess around in worldbuilder to see it was locked to and forced by Sons of Discord and then only happened upon the connection to the Sanguine Fountain while looking for what founded the religion. Maybe it could have some flavor text if listing a building prereq for a civic causes issues?

Also a couple minor things that I noticed persist from the old version: Siege Dragons don't have Divine Essence as a prereq (mostly cosmetic since they still need the Wyrmhold, but it makes them show up in various menus at odd times). Abaddon's Pit is misspelled "Abaddons's Pit".

Loving the new layers of mechanical and lore depth that all these religions add (oh god Belphegor is playable), and I'm interested to see what the effects on AI relationships will be now that there's more religions that they can manually spread.
 
I had a tinkerer spawn t57, Classical era start, Is this intended?
 
Only just getting into a new game, but I noticed something off with the Unblemished. Their disciple, Healer, requires Medicine and an Infirmary, making them arguably harder to build than the actual priest, Druids. It makes sense for the Hospitaller perhaps, but maybe Healer should require an Herbalist instead?

Healers are the only unit with Medic II that every player can build in unlimited numbers without requiring a state religion or a greater number of cities that are home to the faith. From a Lore perceptive, I think it makes sense for this faith to have priests before disciples as the Druids have been priests of Sucellus since he was the God of Nature but the Healers only came into existence after he was resurrected as the God of Life. Most Healers of the Unblemished rely on the same sort of non-magical healing as studied by the Grigori Medics, aided only imperceptibly by their prayers to Sucellus.

I was also thinking that Healers would be able to purchase Medic III because they have the Unblemished religion, but now I see that also requires Channeling 4 as well as Omniscience. I think that is a relic of when high priests has channeling 4 and might need to purchase it again if they lost it somehow. I think I'll remove those prereqa but add a level prereq for the next release.

The Discord civic had me really confused for a moment because it lists no prerequisites besides war and the alignment restriction. I had to mess around in worldbuilder to see it was locked to and forced by Sons of Discord and then only happened upon the connection to the Sanguine Fountain while looking for what founded the religion. Maybe it could have some flavor text if listing a building prereq for a civic causes issues?
I thought I'd put it all in the help txt_key, but it seems that was an oversight.

(I think that was among some changes to the txt document that I lost when my laptop lost power. Its battery only lasts a couple minutes when not plugged it and claims it is still at about 90% power before shutting off without warning.I'm using a new power cord now but the old one is kind of frayed and unreliable.)
Also a couple minor things that I noticed persist from the old version: Siege Dragons don't have Divine Essence as a prereq (mostly cosmetic since they still need the Wyrmhold, but it makes them show up in various menus at odd times). Abaddon's Pit is misspelled "Abaddons's Pit".
fixed for next time
Loving the new layers of mechanical and lore depth that all these religions add (oh god Belphegor is playable), and I'm interested to see what the effects on AI relationships will be now that there's more religions that they can manually spread.
I had a tinkerer spawn t57, Classical era start, Is this intended?

Do you mean that you got a free disciple from lair exploration? That is intended, although it does seem like with so many religions that the free clerics have become a much more common option than before. I may need to introduce more non religious options to balance things out.

I just noticed that I forgot to update some of the code for free disciples/priests after introducing the whole set of clerics. Most of them can actually only give you Priests, not Disciples, and the Anointed will give you a High Priest instead. The text for the rescue Sanguinary result will however call him a Carnifex, and the text will claim you got a Tinkerer when it is actually a Techton.

That will be fixed for the next release.
 
Last edited:
Do you mean that you got a free disciple from lair exploration? That is intended, although it does seem like with so many religions that the free clerics have become a much more common option than before. I may need to introduce more non religious options to balance things out.
Chiming in on this because I just pulled a Luonnotar out of a lair on turn 92.

Looking at CustomFunctions.py, the Curator, Luonnotar, Vagrant, and Dragon Fanatic all get added to the possible lair spawns without checking for any tech beyond Mysticism. Might be intended for the Vagrant, Dragon Fanatic is Rebellious so it kinda solves itself, but Curator should presumably be Patron which can't build a free Gallery? Luonnotar checks for having no state religion, but that's a given when no religion has even been founded yet.

Also, the Anointed check spawns a Discord priest instead.
 
Laroth to Auric: Gee wiz Auric, how come Kael lets you ascend to godhood twice?
 
Do you mean that you got a free disciple from lair exploration? That is intended, although it does seem like with so many religions that the free clerics have become a much more common option than before. I may need to introduce more non religious options to balance things out.

Sorry, I meant a barbarian Tinker was running around. I've seen another barb disciple as well since.

Also, Orthus might be too intense with Aspect of War. He was hanging out in the wilderness for a while so by the time I was fighting him with bronze axes he had Drill 4, for 6-10 first strikes. I had to fortify a city for a long time, losing a unit a turn, until I got lucky and he took enough injuries to clear up. His first strikes were meaning no unit could land a hit on him when he was at full health.

If you don't want to change aspect of war, perhaps just bar Orthus from recieving Drill promotions?
 
I noticed the Dahlia Band gives +1 Unholy combat instead of Holy. As it's made of gemellus, i presume it's meant to be Holy.

The Sapere appears to be missing Divine and as such can't use the Research spell. Also, Adepts can upgrade into Ritualists and Mobius Witches, but cannot upgrade to become Sapere. Scribes can however upgrade into becoming Mages though, similar to Lacune & Savants. I don't know whether Saperes are meant to have any Channeling promotions (i felt sure of it before, until i realized Ritualists no longer have Channeling II), but it seems like an appropriate thing for the Laeran Cord to be able to merge the roles of disciple & mage. On the flipside, Mobius Witches bar none suit the role of priest+mage, considering Ceridwen's title as Goddess of Sorcery.

I also believe adopting the Laeran Cord as state religion should give a research bonus like some other religions do (specifically Ashen Veil, Between, Eternal Cabal & the Grey Council). Even if they don't need it by the time you found the religion normally (as Arcane Lore gives two research wonders, Archive and Academy as well as Scholarship), a small boost to research would be appropriate if you get a Scribe early via lair exploration and can adopt it early on.

I haven't used the Stewards, but i think adopting it should also give you the same holy city/all city benefit of +2/+1 gold as Runes of Kilmorph. The two faiths already have such a big dichotomy, but RoK will outscale Stewards lategame due to the +2/+5% gold bonus vs flat +3 even if you don't have RoK as state religion. While i think it is appropriate the RoK works better (after all, they do preach arete) i think the Stewards could use some extra loving (or money, rather)
 
I was briefly baffled starting a Lanun game. I now see that the ability to build Pirate Coves has been moved to the actual Pirate unit, but the old ability which was attached to Work Boats still exists in the 'pedia, and is the one that actually shows up under Spells on the Lanun civilization page despite no longer existing in gameplay. The listing for the new version under Special Abilities also claims it creates a Pirate Port but actually creates a Cove.

I don't actually mind the change at all after some thought; the Lanun felt pretty overpowered in the player's hands due to how many bonuses their Ports could accrue (both on the worked tile and via free specialists) in the early game.

It does seem like the new mechanics are meant to apply to AI as well, though, specifically when the Barbarians start spawning Pirates, as the coves/harbors/ports now function as lairs spawning workboats/galleys/pirates? However, at least in the 'pedia, the ability for coves to develop into harbors and ports is still listed as Lanun only, so the lair functionality would seem to never spawn anything but civilian units that the barbs can't really use.
 
I am not sure how the Fertility spell is supposed to work, but it is a bit unintuitive so I thought I would post here:

Example 1:
  • Have 1 life mana, cast Fertility, food +50% with resources
  • Lose life mana, food 0% with resources
  • Gain 2 life mana, food 100% with resources
  • Remove Mage from city, lose Fertility, food +50% with resources
Example 2:
  • Have 6 life mana, cast Fertility, food +50% with resources
  • Lose life mana, food -250% with resources
  • Gain 2 life mana, food -150% with resources
  • Remove Mage from city, lose Fertility, food -200% with resources
 
I was looking at more information regarding the religions and decided to make this matrix in testing which religions played nice with each other.
I tested this by adding one religion to a city, then removing & reapplying another religion multiple times in the Religions tab of World Editor.

As expected, the Children and Matronae cause conflicts with every other religion. I was however not expecting some religions to work with each other, most obviously Order - Sons of Discord. I don't think every religion needs to have an innate conflict with their opposed element; the predominant evil of Ember Legion & Undertow for example is an example of religions for whom it makes sense to work together more than many other opposed spheres, but i did think there would be more conflicts between various good and evil faiths.

I also found that introducing the Brotherhood of Wardens to an Anointed city causes the expected popup about them fighting (and subsequent loss of one or the other in the city), but adding the Anointed to a Brotherhood city caused no strife between them.
 

Attachments

  • religions matrix.png
    religions matrix.png
    37.1 KB · Views: 71
Last edited:
I like being sparing with religious conflict.

I had also noticed the Lanun change, which feels a little brutal. Perhaps if you want to delay covers, they could be at galleys? Otherwise it's quite a mid-late game unit to power an essential part of the Lanun approach. Before coves, what do they even have - just +1f on water tiles?
 
I like being sparing with religious conflict.

I had also noticed the Lanun change, which feels a little brutal. Perhaps if you want to delay covers, they could be at galleys? Otherwise it's quite a mid-late game unit to power an essential part of the Lanun approach. Before coves, what do they even have - just +1f on water tiles?
That +1 food is more than enough in the early game, as it means every coast tile is effectively a cottaged grassland tile from turn 0. Pirate Ports are potentially the best tile output in the game with the Heron Throne and Lighthouse bonuses, and the wonder is basically guaranteed to the Lanun since only they start with Fishing.

Moreover, and what really necessitates the delay, Pirate Ports give up to four free specialists each; the Lanun Palace, Sea Haven, Heron Throne, and Smuggler's Port all stack for every Port. I had multiple games where the Lanun Capital had nine or even twelve free specialists around turn 100, which is just disgusting considering they already have the best research output without adding sages.

If anything the Lanun are still making a mockery of the Illians, who since being nerfed to treat snow as plains have extreme trouble feeding themselves after the "accomplishment" of founding the White Hand. New Mulyr almost universally starves to 1 pop immediately after spawning, since no tile around it can be food-positive unless it happened to land on someone else's preexisting improvements.
 
Top Bottom