Scions of Patria?

since you mentioned you like the look of minas thirith, ithought you may wan to try out a recoloring of the bannor cities?
 
now the walls need some love :)
tell me, if i should tweak them.
 
since you mentioned you like the look of minas thirith, ithought you may wan to try out a recoloring of the bannor cities?

wow, those screenshots look really nice :)

I'm glad you like 'em. I hope you include my revision to tesb's first offering. If not I'll have to make a module. And for that I'll have to figure out the plotsystem! :eek:


***

Balance suggestions:


1) Tower of Necromancy.
As a balance issue I suggest only the summoned undead, Bone Hordes, and any diseased corpses lying around be given the Strong promo.

Here's the code from FF. I think it's compatible. Both bits go in CvEventManager.

OnBuildingBuilt:

Spoiler :

Code:
		if iBuildingType == gc.getInfoTypeForString('BUILDING_TOWER_OF_NECROMANCY'):
			iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
			iStrong = gc.getInfoTypeForString('PROMOTION_STRONG')
#scions start
			iBH = gc.getInfoTypeForString('UNIT_BONE_HORDE')
			iSkeleton = gc.getInfoTypeForString('UNIT_SKELETON')
			iDiseased = gc.getInfoTypeForString('UNIT_DISEASED_CORPSE')
			iScions = gc.getInfoTypeForString('CIVILIZATION_SCIONS')
#scions end
			apUnitList = PyPlayer(player).getUnitList()
			for pUnit in apUnitList:
#scions start - All Undead units from non-Scions civs get the benefits of the Tower of N.
				if pPlayer.getCivilizationType() != iScions:
#scions end
					if pUnit.isHasPromotion(iUndead):
						pUnit.setHasPromotion(iStrong, True)
#scions start - Only certain Scions units get the benefits.  (A balance measure)
				else:
					if pUnit.getUnitType() == iBH:
						pUnit.setHasPromotion(iStrong, True)
					if pUnit.getUnitType() == iDiseased:
						pUnit.setHasPromotion(iStrong, True)
					if pUnit.getUnitType() == iSkeleton:
						pUnit.setHasPromotion(iStrong, True)


OnUnitCreated
Spoiler :

Code:
		if unit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_UNDEAD')):
			if pPlayer.getNumBuilding(gc.getInfoTypeForString('BUILDING_TOWER_OF_NECROMANCY')) > 0:
#scions start - Same purpose and rationale as other Tower of N code above.
				if pPlayer.getCivilizationType() != gc.getInfoTypeForString('CIVILIZATION_SCIONS'):
#scions end - make sure next line is tabbed properly
					unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
#scions start
				if pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SCIONS'):
					if unit.getUnitType() == gc.getInfoTypeForString('UNIT_SKELETON'):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
					if unit.getUnitType() == gc.getInfoTypeForString('UNIT_SPECTRE'):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
					if unit.getUnitType() == gc.getInfoTypeForString('UNIT_WRAITH'):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
					if unit.getUnitType() == gc.getInfoTypeForString('UNIT_DISEASED_CORPSE'):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
					if unit.getUnitType() == gc.getInfoTypeForString('UNIT_BONE_HORDE'):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)

#scions end

2) Hero Korrina balance.

I think she needs a nerf both because of the unit's inherent strength and because all Scion leaders can now build the R.Emp.

Suggested changes:
Korrina the Protector: +1 Defense, make her Melee rather than Arcane. This removes a lot of free xps, esp. when the R.Emp is the Leader.
Here's a unitinfo:
Spoiler :

Code:
		<UnitInfo>		<!-- Korrina (Unshackled) -->
			<Class>UNITCLASS_KORRINA</Class>
			<Type>UNIT_KORRINA_PROTECTOR</Type>
			<Combat>UNITCOMBAT_MELEE</Combat>
			<Domain>DOMAIN_LAND</Domain>
			<DefaultUnitAI>UNITAI_CITY_DEFENSE</DefaultUnitAI>
			<Description>TXT_KEY_UNIT_KORRINA_PROTECTOR</Description>
			<Civilopedia>TXT_KEY_UNIT_KORRINA_PROTECTOR_PEDIA</Civilopedia>
			<Strategy>TXT_KEY_UNIT_KORRINA_PROTECTOR_STRATEGY</Strategy>
			<Advisor>ADVISOR_MILITARY</Advisor>
			<bMilitaryHappiness>1</bMilitaryHappiness>
			<bMilitarySupport>1</bMilitarySupport>
			<bMilitaryProduction>1</bMilitaryProduction>
			<bPillage>1</bPillage>
			<UnitClassUpgrades>
				<UnitClassUpgrade>
					<UnitClassUpgradeType>UNITCLASS_KORRINA_BLACK_LADY</UnitClassUpgradeType>
					<bUnitClassUpgrade>1</bUnitClassUpgrade>
				</UnitClassUpgrade>
				<UnitClassUpgrade>
					<UnitClassUpgradeType>UNITCLASS_KORRINA_RED_LADY</UnitClassUpgradeType>
					<bUnitClassUpgrade>1</bUnitClassUpgrade>
				</UnitClassUpgrade>
			</UnitClassUpgrades>
			<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_RESERVE</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
			</UnitAIs>
			<PrereqTech>TECH_NEVER</PrereqTech>
			<Flavors>
				<Flavor>
					<FlavorType>FLAVOR_SCIENCE</FlavorType>
					<iFlavor>8</iFlavor>
				</Flavor>
			</Flavors>
			<iAIWeight>4</iAIWeight>
			<iCost>-1</iCost>
			<iAdvancedStartCost>100</iAdvancedStartCost>
			<iMoves>1</iMoves>
			<iCombat>3</iCombat>
			<iCultureGarrison>3</iCultureGarrison>
			<iAsset>2</iAsset>
			<iPower>2</iPower>
			<UnitMeshGroups>
				<iGroupSize>1</iGroupSize>
					<fMaxSpeed>1.75</fMaxSpeed>
				<fPadTime>1</fPadTime>
				<iMeleeWaveSize>1</iMeleeWaveSize>
				<iRangedWaveSize>0</iRangedWaveSize>
				<UnitMeshGroup>
					<iRequired>1</iRequired>
					<EarlyArtDefineTag>ART_DEF_UNIT_ALEXI_START</EarlyArtDefineTag>
				</UnitMeshGroup>
			</UnitMeshGroups>
			<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
			<FreePromotions>
				<FreePromotion>
					<PromotionType>PROMOTION_DEFENDER_OF_THE_EMPIRE</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_ALIVE</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_SHACKLED</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
			</FreePromotions>
			<iCombatDefense>4</iCombatDefense>
			<iTier>2</iTier>
            <PrereqCiv>CIVILIZATION_SCIONS</PrereqCiv>
		</UnitInfo>


The Promotion "Defender of the Empire": Remove the +12% xp/turn bonus.

Korrina the Black: Remove the "Dark Empathy" promo and make "Feral Bond" the tech prereq for her "Become Haunt" spell.
(Net effect: No mid/late-game +2 strength boost.)

Changes:
Remove "Dark Empathy", remove mention of "Dark Empathy" from Korrina's description. Note she gets Become Haunt spell at Feral Bond.
Remove Promotion prereq from "SPELL_HAUNT_KORRINA", add tech prereq "FERAL_BOND". (Or maybe a tech 1 earlier. Not as big a deal without the strength boost.)
Remove awarding of "Dark Empathy" in OnTurnScions code. (Around line 2340 of CvFFHPLUS.) Or, actually, I suggest using those few lines of code for Martyrs of Patria. See below.

Korrina the Red:
No +25% vs. Warriors.
Bronze Weapons rather than Iron.

3) Martyrs of Patria balance

I'm not sure what was intended for MoP's in WM and what might have been garbled in translating the unit from FF.

It's odd that the upgraded form, the Emperor's Dagger, is actually weaker than the MoP. (Strength 4/3 rather than 5/5.)
On the other hand, the Emperor's Dagger doesn't suicide attack. I'd call that a strong benefit to upgrading.

Another thing is the rather high strength of the MoP (for the cost) compared to the Assassin. In FF I was worried that the relatively early MoPs would be too strong (Code of Laws is a high priority tech for Scions) and gave them Poison Drenched only with the Poisons tech.
On the other hand, there's that suicide attack thing. Arguably they should start with the extra strength.

Anyway, to be more "FFish" about it:
Have the code from around line 2340 in CvFFHPLUS award Martyrs of Patria "Poison Drenched" with the tech Poisons rather than the "Dark Empathy" for Korrina.

In addition to that, I think upping the strength of the Dagger unit would be good.
Perhaps: Starts with "Masterwork Weapon" (+20% strength. As the Emperor's chosen she's very well equipped.) and upgrading to the Dagger requires 3 levels rather than 2.
Hmm... rather than always getting a +20%, 1-3 random pieces of appropriate Gear would be fun. If you like that, Stephi, I can write up the python.

4) Haunted Lands:

First a question/suggestion on the python generating Haunted Lands.

This is what it looks like:
Spoiler :

Code:
		if iAreThereScionsHere:	
			if pPlot.isOwned() and (not pPlot.isWater()) and (not pPlot.isPeak()):
				pPlayer = gc.getPlayer(pPlot.getOwner())

				iGameTurn = CyGame().getGameTurn()
				iGameSpeed = gc.getGameSpeedInfo(gc.getGame().getGameSpeedType()).getTrainPercent()
				iGameSpeedMod = iGameSpeed / 5
	
				if pPlayer.getCivilizationType() == iScionCiv:
					if iFeature != iHauntedLands:
						iNatureMana = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_NATURE'))
						iManaMod = 1 + (iNatureMana * 0.1)
						iGhostwalkerClass = gc.getInfoTypeForString('UNITCLASS_RANGER')
						iHauntClass = gc.getInfoTypeForString('UNITCLASS_HAUNT')
						iRedactorClass = gc.getInfoTypeForString('UNITCLASS_DRUID')
						iBlackLadyClass = gc.getInfoTypeForString('UNITCLASS_KORRINA_BLACK_LADY')
						iGhostwalkerFactor = pPlayer.getUnitClassCount(iGhostwalkerClass)
						iHauntFactor = pPlayer.getUnitClassCount(iHauntClass) * 2
						iRedactorFactor = pPlayer.getUnitClassCount(iRedactorClass) * 4
						iBlackLadyFactor = pPlayer.getUnitClassCount(iBlackLadyClass) + 1
						iHLSeed = (iGhostwalkerFactor + iHauntFactor + iRedactorFactor) * iBlackLadyFactor * iManaMod
						iDesert = gc.getInfoTypeForString('TERRAIN_DESERT')
						iFloodPlains = gc.getInfoTypeForString('FEATURE_FLOOD_PLAINS')
					
						if iHLSeed > 0:
							iChance = iHLSeed 
							if CyGame().getSorenRandNum(1100, "Chance for HL in unwooded tile") < iChance :
								pPlot.setFeatureType(iHauntedLands, 0)


Would it be better to have it determine the value of iHLSeed right after it's determined that Scions are present? I'm not sure how python works, and I'm afraid it's re-tallying the Scion units with each and every plot.

Balance:

I think HL spread should be slowed down. Maybe check against 1400 rather than 1100? (I think the player should need to put more effort into getting good HL coverage.)

OTOH, while I've come to like the like the removal of the undead and defense strength boni, I do think there should be a little more "bite" to Haunted Lands tiles.
In addition to or replacing the current result, how about a chance to receive "Confused", "Desperation", "Poisoned", or "Dusted"? Or, ideally, one at random from that list.
Or even "Undead" if the unit is damaged? (IMO the HL's ability to turn living units Undead one of the more fun and interesting bits of lore.)

Finally: Korrina the Red, a living unit, probably deserves protection from the random HL effect.

5) Emperor's Mark

I suggest moving the python placing the Marks from doTurnScion to onCityBuilt. (Encourages building rather than conquest.)

6) Body vs. Corpus

I thought I'd posted this elsewhere, but I can't find it or remember a response, so:

For the Scions Body spells mostly just take up GUI space. I suggest giving Scion (and Infernals?) Arcane units free Corpus promotions rather than free Body promotions.

Here's the code that does so for Scions. It replaces the Body section of onUnitCreated in CvEventManager

Spoiler :

Code:
			iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_BODY'))
			if pPlayer.getCivilizationType() != gc.getInfoTypeForString('CIVILIZATION_SCIONS'):
				if iNum > 1:
					unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY1'), True)
					if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY2'), True)
						if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
							unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY3'), True)
			if pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SCIONS'):
				if iNum > 1:
					unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CORPUS1'), True)
					if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
						unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CORPUS2'), True)
						if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
							unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CORPUS3'), True)
 
tesb's first offering
i am summoning the wildmana gods. take my offering! later i shall spill the blood of a goat in your name, grant me thy blessings. :lol:

sorry could not resist.

to the haunted lands. i wonder if you could implement a code that would use different sets of haunted lands. while the haunted lands look good on one tile they don't look good on many tiles because there is just one set.

i could provide different versions if you could do that.
 
yes that was my idea too, combined with using different alpha channels and textures for the effects.

edit: i also would need to create new textures for the trees of course.
 
I'm glad you like 'em. I hope you include my revision to tesb's first offering. If not I'll have to make a module. And for that I'll have to figure out the plotsystem! :eek:
Do you or tesb have a modified plotsystem file? That would make merging a lot easier :lol:. If not I will add it when I get to it.

Korrina the Black: Remove the "Dark Empathy" promo and make "Feral Bond" the tech prereq for her "Become Haunt" spell.
(Net effect: No mid/late-game +2 strength boost.)
I have weakened Dark Empathy rather than completly removed it (less things to change). net effect should be equal.

Perhaps: Starts with "Masterwork Weapon" (+20% strength. As the Emperor's chosen she's very well equipped.) and upgrading to the Dagger requires 3 levels rather than 2.
Hmm... rather than always getting a +20%, 1-3 random pieces of appropriate Gear would be fun. If you like that, Stephi, I can write up the python.
if you write that Python, I will add it.

Would it be better to have it determine the value of iHLSeed right after it's determined that Scions are present? I'm not sure how python works, and I'm afraid it's re-tallying the Scion units with each and every plot.
don't worry, all non AI python together from all effects takes like 2% time from game turn, probably much less. but moved the calculation before the loop, can't hurt.

OTOH, while I've come to like the like the removal of the undead and defense strength boni, I do think there should be a little more "bite" to Haunted Lands tiles.
In addition to or replacing the current result, how about a chance to receive "Confused", "Desperation", "Poisoned", or "Dusted"? Or, ideally, one at random from that list.
Or even "Undead" if the unit is damaged? (IMO the HL's ability to turn living units Undead one of the more fun and interesting bits of lore.)
Do you want to write some python for it?

All other suggestions should be added
 
Do you or tesb have a modified plotsystem file? That would make merging a lot easier :lol:. If not I will add it when I get to it.

I'll get it. I'm the one who complained about it, after all. :)

Besides, I was defeated when I first attempted bending plotsystem to my will. It is time my besmirched honor was avenged. :badcomp:

...I'll post here if I give up.

I have weakened Dark Empathy rather than completly removed it (less things to change). net effect should be equal.

More colorful that way, too.

Emperor's Dagger Gear
if you write that Python, I will add it.

OK.

don't worry, all non AI python together from all effects takes like 2% time from game turn, probably much less.

Ah, good!

Re: Haunted Lands effects
Do you want to write some python for it?

Will do!

*******

Re: Haunted Lands graphics changes ala .nif magic:

Not touching with 10' pole. I enjoyed chopping off a bunch of units heads to make the Headlless artstyle. Other than that I avoid manipulating nifs.

********

I have an addition to the Scion spell module.

'Pedia entry:
Spoiler :

"We have something special to show you today, Madam Ambassador."

"Do you now? I'd call the whole city "special," Commander Daeki. And please, call me Elizabeth."

Elizabeth DeCardin had been in the Scion city for over a month, and her words were not entirely empty flattery. Having left Cevedes braced for horrors, only the portion of the journey through the haunted lands had been at all disquieting. Of course the Scions were putting on a show for her, and she had far from free-access in this military town... but still, it was all far more pleasant than she'd expected. Commander Daeki himself was probably the most disagreeable aspect of the city. Scarred and horned, the Patrian officer looked more like a demon than the civilized, urbane soldier she'd become familiar with. Nothing but a show. She thought the Scion habit of making their military men all look like monsters was a bit childish, to tell the truth. Not that she would.

Daeki led the Amurite ambassador to a walkway overlooking a large courtyard. Bleachers placed along one side of the yard held a crowd of civilian Patrians, with some richly dressed dignitaries on a special platform to the side. A mix of both civilian and military dignitaries, Elizabeth could easily see. The civilians possessed the uncanny beauty of all "Gifted" Patrians, while a few were the usual military horror show. Several rows of armed and armored warriors faced the crowd. Heavy infantry, it seemed. Probably a unit of the Empire's "Principes". They lacked heads, of course, though their commanding officer did not. The ambassador had seen enough headless troops within the castle find them unexceptional. Along with the officer, a couple of priests and a woman who was probably a mage stood before the warriors. There was what looked to be a large number of small boxes piled neatly behind the priests.

"A military ceremony, I presume? Awards?"

"Something like that, Madam Ambassador. Here, they're beginning."

One of the military men on the platform started addressing the crowd, praising the soldiers for their honor and courage. All the usual blather. Daeki related an incident in Avitas he'd just heard off from a letter. A Lanun trader had bet he could out-drink a Scion trader, each drinking the other's preferred beverage.

"The disagreement was about relative capacities, Madam Ambassador."

Apparently the Scion trader had suffered some embarrassing damage from over-filling his stomach with brandy. The Lanun trader, however, had worse luck with the Spirit Essence wine of the Scions. Elizabeth chortled at the story's conclusion.

"Haunted by little pink sheep and pigs? Commander, you don't believe a word if it, I hope. You've already told me of the tall-tales your great-grandson sends you. I would have thought a judge would look more to his respectability.

Daeki just smiled and shrugged, then said "Here, they're starting."

Down in the courtyard a priest was handed one of the small boxes by his companion. Then the priest and the mage stepped up to the first of the soldiers standing at attention. When the priest opened the box's lid the mage reached in and drew from it... a man's head.

"It's his own head, of course," volunteered Commander Daeki. "They number the boxes quite carefully, I assure you. Besides, the magic won't work right with the wrong head."

Moving carefully, the mage settled the head onto the shoulders of the soldier, paused for a moment with her hands to either side of the head, and then stepped back. The soldier suddenly raised his sword and shouted "For the Emperor!" "For the Emperor!" the onlookers shouted back.

As the ceremony progressed, each soldier receiving his head in turn, Commander Daeki explained:[PARAGRAPH]"Our extrasensory magics turn what would be a severe handicap for many - headlessness - into a net asset", he dryly began. "But a unit spearheading an attack often wants its senses at their sharpest at the battle. Not in Urbis Arcana. So sometimes a picked unit will have their heads restored when in service rather than at decommissioning. You do realize that decommissioned soldiers receive their heads back, yes?"

"I had assumed as much. Or on promotion to... Captain, yes?"

"Of course, Madam Ambassador. I should expect you to be well informed."

Each soldier shouted when his head was reattached, and those who'd been restored before joined the audience in echoing him. Elizabeth became aware that the heads were not opening their eyes only after being reattached. And by watching carefully she determined the eyes of the unattached heads were not locked forward, as she had first assumed. Instead they merely stared forward. Like good soldiers on parade.

"Well, this Urbis Arcana isn't something I'm familiar with."

Daeki laughed. "We usually just call it "Box city" or "The Four Walls Resort." Soldiers are given the best drink, and treated to entertainments such as music, dancing, plays... you know... and duty permitting. Anything you just need your head for, they can take part in. Even out in the field. It's a huge boon for morale, let me tell you."

"I can imagine."

"Still, being "capitaled" is considered a great honor. It means the Emperor deems you worthy of leading the armies of Patria on the march, in the attack. The vanguard of conquest... ex-cetera ex-cetera. If you've seen enough....? I know her Highness the governor wants to see you.

As Commander Daeki turned to leave Elizabeth stayed looking on the courtyard below, attention focused not on the soldiers but on what Daeki had just said. "May I ask where the soldiers below are normally stationed?"

Daeki didn't turn to face her again, but shrugged and waved one had dismissively. "Somewhere over on your border, I believe. Now, come with me, please. I think her Highness has some questions for you about the treaty." Elizabeth followed, thinking that Scion shows weren't invariably empty.


Ability: A Principes, Praetorian, Marksman, or Phalanx with at least Combat 3, 10 gold in spending money and in a city can have "Headless" removed.

The unit graphics do adjust appropriately. There's a seperate spell for each unit, but only 1 shows up in the 'pedia.

If you want it, it's just a couple of .xml files that can be put in the ScionSpell module.
 

Attachments

Haunted Land effects:

In addition to -1 xp, "Confused", "Poisoned" and "Dusted" can afflict a unit. There's an additional chance (1/6) that "Desperation" will hit a low experience unit - less than 6.
Damaged units (20% or more) may (1/4) become Undead and Estranged.

The whole Haunted Lands Effect block from doScionsTurn, CvFFHPLUS.
Spoiler :

Code:
#Haunted Lands Effect

	iHauntedLands = gc.getInfoTypeForString('FEATURE_HAUNTED_LANDS')
	iChance = 15
	if CyGame().getSorenRandNum(100, "Chance for negative HL Effect") < iChance:	
		for i in range (CyMap().numPlots()):
			pPlot = CyMap().plotByIndex(i)
			if pPlot.getFeatureType()==iHauntedLands:
				for i in range(pPlot.getNumUnits()):
					if pPlot.getUnit(i).isAlive() and pPlot.getUnit(i).getUnitType()!=gc.getInfoTypeForString('UNIT_KORRINA_RED_LADY'):
						if pPlot.getUnit(i).getExperience()>0:
							pPlot.getUnit(i).setExperience(pPlot.getUnit(i).getExperience()-1,99999)	
						if pPlot.getUnit(i).getExperience()<5 and CyGame().getSorenRandNum(17, "Chance for HL effect Desperation") < 4:
							pPlot.getUnit(i).setHasPromotion(gc.getInfoTypeForString('PROMOTION_DESPERATION'), true)
						lPromoList = []
						lPromoList = lPromoList + ['PROMOTION_CONFUSED', 'PROMOTION_DUSTED', 'PROMOTION_POISONED']
						sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
						pPlot.getUnit(i).setHasPromotion(gc.getInfoTypeForString(sPromo), True)
						if pPlot.getUnit(i).getDamage() >= 20 and CyGame().getSorenRandNum(11, "Chance for HL effect Undead") < 4:
							pPlot.getUnit(i).setHasPromotion(gc.getInfoTypeForString('PROMOTION_UNDEAD'), true)
							pPlot.getUnit(i).setHasPromotion(gc.getInfoTypeForString('PROMOTION_ESTRANGED'), true)
#Haunted Lands Effect


Keep Notices
I had another idea and added notice messages to the Keep's madness and free-promo effects. (To save the player - ie, me - from checking every few turns to see if anyone is
a) Still there
and
b) Now knows "Rust", or whatever.)

This is the whole "If there's a Keep then X" block, also from doTurnScions just before the new Horned Dread code. I've bolded the new lines.

Spoiler :

Code:
			if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_KEEP_MAIN')) == 1:					
				plot=pCity.plot()
				for ii in range(plot.getNumUnits()):
					pUnit=plot.getUnit(ii)
					if pUnit.getUnitCombatType()==gc.getInfoTypeForString('UNITCOMBAT_ADEPT'):
						if CyGame().getSorenRandNum(100, "Madness")<3:			
							pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED'),true)
							CyInterface().addMessage(pUnit.getOwner(),True,25,CyTranslator().getText("A mage at the Keep as gone mad.", ()),'',1,'Art/Interface/Buttons/Promotions/Enraged.dds',ColorTypes(8),pUnit.getX(),pUnit.getY(),True,True)				
						if CyGame().getSorenRandNum(100, "Learn new Spell")<3:			
							lPromoList = []
							lPromoList = lPromoList + ['PROMOTION_AIR1', 'PROMOTION_AIR2']
							lPromoList = lPromoList + ['PROMOTION_BODY1', 'PROMOTION_BODY2']
							lPromoList = lPromoList + ['PROMOTION_CHAOS1', 'PROMOTION_CHAOS2']
							lPromoList = lPromoList + ['PROMOTION_DEATH1', 'PROMOTION_DEATH2']
							lPromoList = lPromoList + ['PROMOTION_EARTH1', 'PROMOTION_EARTH2']
							lPromoList = lPromoList + ['PROMOTION_ENCHANTMENT1', 'PROMOTION_ENCHANTMENT2']
							lPromoList = lPromoList + ['PROMOTION_ENTROPY1', 'PROMOTION_ENTROPY2']
							lPromoList = lPromoList + ['PROMOTION_FIRE1', 'PROMOTION_FIRE2']
							lPromoList = lPromoList + ['PROMOTION_ICE1', 'PROMOTION_ICE2']
							lPromoList = lPromoList + ['PROMOTION_LAW1', 'PROMOTION_LAW2']
							lPromoList = lPromoList + ['PROMOTION_LIFE1', 'PROMOTION_LIFE2']
							lPromoList = lPromoList + ['PROMOTION_METAMAGIC1', 'PROMOTION_METAMAGIC2']
							lPromoList = lPromoList + ['PROMOTION_MIND1', 'PROMOTION_MIND2']
							lPromoList = lPromoList + ['PROMOTION_NATURE1', 'PROMOTION_NATURE2']
							lPromoList = lPromoList + ['PROMOTION_SHADOW1', 'PROMOTION_SHADOW2']
							lPromoList = lPromoList + ['PROMOTION_SPIRIT1', 'PROMOTION_SPIRIT2']
							lPromoList = lPromoList + ['PROMOTION_SUN1', 'PROMOTION_SUN2']
							lPromoList = lPromoList + ['PROMOTION_WATER1', 'PROMOTION_WATER2']
							lPromoList = lPromoList + ['PROMOTION_CREATION1', 'PROMOTION_CREATION2']
							lPromoList = lPromoList + ['PROMOTION_FORCE1', 'PROMOTION_FORCE2']
							sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
							pUnit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
							CyInterface().addMessage(pUnit.getOwner(),True,25,CyTranslator().getText("Study and calcification have yeilded results!", ()),'',1,'Art/Interface/Buttons/Promotions/Channeling1.dds',ColorTypes(8),pUnit.getX(),pUnit.getY(),True,True)


Finally, I also added a message for Alcinus going mad, though I had to bring that code in from an older file. The only part that should have been removed for the new Immortality system was the last couple of lines. In case the code's removal was inadvertent, here it is, plus the notice.

Still in doTurnScions, it goes with the code doing assorted things to Scion units after the "#Units" comment line. For reference here's that whole block. The Alcinus stuff I added back in is the last 6 lines.

Spoiler :

Code:
	for pUnit in py.getUnitList():
		if pUnit.getUnitType() == gc.getInfoTypeForString('UNIT_KORRINA_BLACK_LADY'):
			if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_FERAL_BOND')):
				pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DARK_EMPATHY'),true)
		if pUnit.getUnitClassType() == gc.getInfoTypeForString('UNITCLASS_MAGE'):		
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NECROMANCER'),true)		
		if pUnit.getUnitClassType() == gc.getInfoTypeForString('UNITCLASS_KORRINA_BLACK_LADY'):				
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ALIVE'),false)				
		if pUnit.getUnitClassType() == gc.getInfoTypeForString('UNITCLASS_KORRINA_RED_LADY'):				
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHANNELING1'),false)				
		if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_HEADLESS')):				
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_UNDEAD'),true)
		if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_UNRELIABLE')):
			if not pUnit.getUnitType() == gc.getInfoTypeForString('UNIT_CENTENI'):	
				pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_UNRELIABLE'),false)	
				
		if pUnit.getUnitType() == iAlcinus or pUnit.getUnitType() == iAlcinusUpgrade or pUnit.getUnitType() == iAlcinusArchmage:
			if not pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED')):		
				if CyGame().getSorenRandNum(100, "Madness")<3:			
					pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED'),True)	
					CyInterface().addMessage(pUnit.getOwner(),True,25,CyTranslator().getText("Alcinus has again gone mad.", ()),'',1,'Art/Interface/Buttons/Promotions/Enraged.dds',ColorTypes(8),pUnit.getX(),pUnit.getY(),True,True)


Martyrs of Patria, Emperor's Dagger

Here's the code for giving a Dagger 1-3 pieces of Gear. It goes in OnUnitCreated in CvEventManager. (I'm not sure if that's the best place for it, but it seems to work.)

Spoiler :

Code:
		if unit.getUnitType() == gc.getInfoTypeForString('UNIT_EMPERORS_DAGGER'):
			lPromoList = []
			lPromoList = lPromoList + ['PROMOTION_MARCH_WINE_RECON', 'PROMOTION_NIGHT_GEAR_RECON', 'PROMOTION_WOODS_GEAR_RECON', 'PROMOTION_DESERT_GEAR_RECON', 'PROMOTION_SUPERIOR_KET_RECON', 'PROMOTION_HIGH_QUALITY_MITHRIL_MELEE', 'PROMOTION_DEADLY_TRAPS_RECON']
			sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
			unit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
			sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
			unit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
			sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
			unit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)


I also took a stab at the Poison Drenched adjustment:

CvFFHPLUS:
In ScionUnitCreated

Spoiler :

Code:
	if iUnitType==gc.getInfoTypeForString('UNIT_MARTYR_OF_PATRIA'): 
		if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_POISONS')):
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_POISON_DRENCHED'),true)


In doTurnScions, in the block that starts with Korrina the Black getting Dark Empathy at Feral Bond:

Spoiler :

Code:
	if iUnitType==gc.getInfoTypeForString('UNIT_MARTYR_OF_PATRIA'): 
		if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_POISONS')):
			pUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_POISON_DRENCHED'),true)


UnitInfos: "Poison Drenched" should be removed as a free promo from Martyrs of Patria but not Emperor's Dagger.
And probably move Emperor's Dagger iMinLevel to 3 rather than 2. (Or maybe 4? I'm thinking it should generally take more than 1 combat, but not many more.)

FINALLY:
Attached are the files for the new Scion city/improvement graphics.
 

Attachments

After the orgy of non-work related stuff I did yesterday I was supposed to buckle-down today.

What I did instead was give the Praetorian an overhaul.
This needs a little python and a change to a unit that can't be overwritten in a module, so I'm hoping it'll be included directly into the WM Scions module. The changed or additional code is all below.
Sephi, please include it!
:please:

Sometime. No hurry. :)

Changes:

Make the unit "Disciple" rather than "Melee". Remove "Spirit II" free promo, remove "Headless". This pushes the Praetorian warrior-priest quite a bit more in the priest direction, which fits the lore-stuff, and lowers a very, very high defense a little.

Unit info:
Spoiler :
Code:
		<UnitInfo>		<!-- Praetorian -->
			<Class>UNITCLASS_ROYAL_GUARD</Class>
			<Type>UNIT_PRAETORIAN</Type>
			<Combat>UNITCOMBAT_DISCIPLE</Combat>
			<Domain>DOMAIN_LAND</Domain>
			<DefaultUnitAI>UNITAI_CITY_DEFENSE</DefaultUnitAI>
			<Description>TXT_KEY_UNIT_PRAETORIAN</Description>
			<Civilopedia>TXT_KEY_UNIT_PRAETORIAN_PEDIA</Civilopedia>
			<Strategy></Strategy>
			<Advisor>ADVISOR_MILITARY</Advisor>
			<bMilitaryHappiness>1</bMilitaryHappiness>
			<bMilitarySupport>1</bMilitarySupport>
			<bMilitaryProduction>1</bMilitaryProduction>
			<bPillage>1</bPillage>
			<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_ATTACK</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
				<UnitAI>
					<UnitAIType>UNITAI_PILLAGE</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
			</UnitAIs>
			<PrereqTech>TECH_FEUDALISM</PrereqTech>
			<iCost>216</iCost>
			<iAdvancedStartCost>-1</iAdvancedStartCost>
			<iMoves>1</iMoves>
			<iCombat>5</iCombat>
			<BonusProductionModifiers>
			<BonusProductionModifier>
				<BonusType>BONUS_SILK</BonusType>
				<iProductonModifier>10</iProductonModifier>
			</BonusProductionModifier>
			<BonusProductionModifier>
				<BonusType>BONUS_IVORY</BonusType>
				<iProductonModifier>10</iProductonModifier>
			</BonusProductionModifier>
			</BonusProductionModifiers>
			<iCultureGarrison>4</iCultureGarrison>
			<iAsset>9</iAsset>
			<iPower>14</iPower>
			<UnitMeshGroups>
				<iGroupSize>2</iGroupSize>
					<fMaxSpeed>1.75</fMaxSpeed>
				<fPadTime>1</fPadTime>
				<iMeleeWaveSize>2</iMeleeWaveSize>
				<iRangedWaveSize>0</iRangedWaveSize>
				<UnitMeshGroup>
					<iRequired>2</iRequired>
					<EarlyArtDefineTag>ART_DEF_UNIT_PRAETORIAN</EarlyArtDefineTag>
				</UnitMeshGroup>
			</UnitMeshGroups>
			<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
			<FreePromotions>
				<FreePromotion>
					<PromotionType>PROMOTION_GUARDSMAN</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_SCOURGE</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_HEAVY_FORMATION</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
			</FreePromotions>
			<bAbandon>1</bAbandon>
			<iCombatDefense>8</iCombatDefense>
			<iTier>3</iTier>
            <iWeaponTier>2</iWeaponTier>
			<PrereqCivic>CIVIC_GOD_KING</PrereqCivic>
		</UnitInfo>

This needs to be removed from around 2237 of CvFFHPLUS
Spoiler :
Code:
	if iUnitType==gc.getInfoTypeForString('UNIT_PRAETORIAN'):
		unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HEADLESS'),true)

Taking away Spirit II removes "Hope". But I've got a nice flavorful set of replacements.

Emperor's Hand:
Spoiler :
Praetorian warrior-priests put the city in the Emperor's Hand. All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos. Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.


Mostly minor benefits, but the main thing is use of the MistDensity mechanic: 15% to block level 1 units, 3% by level 4.

Emperor's Fist:
Spoiler :
As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos. But this time the threads are drawn so tight as to throttle the city. Enemies of Patria often cannot even enter. But even they city's citizens find the restrictions oppressive. The difference between devotion to the Empire and obsessive insanity becomes small. The difference between treason and the True Death, nonexistent.


Requires a 5th level Praetorian.
Good happiness, but a big hit to the "HurryAngerTimer" and other significant penalties. The biggest being -3 population in the city. Which is pretty nasty for Scions. The big benefit is a double the Hand's MistDensity rating. (The spells/buildings are, however, mutually exclusive: The Fist over-rides the Hand.) Both spells end if no unit capable of casting it is in the city.

Spellinfos:
Spoiler :
Code:
		<SpellInfo>			<!-- Emperor's Hand  -->
			<Type>SPELL_EMPERORS_HAND</Type>
			<Description>TXT_KEY_SPELL_EMPERORS_HAND</Description>
			<Civilopedia>TXT_KEY_SPELL_EMPERORS_HAND_PEDIA</Civilopedia>
			<Help></Help>
			<CivilizationPrereq>CIVILIZATION_SCIONS</CivilizationPrereq>
			<UnitPrereq>UNIT_PRAETORIAN</UnitPrereq>			
			<bAllowAI>1</bAllowAI>
			<bInBordersOnly>1</bInBordersOnly>
			<bInCityOnly>1</bInCityOnly>
			<iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
			<bHasCasted>1</bHasCasted>
			<CreateBuildingType>BUILDING_EMPERORS_HAND</CreateBuildingType>		
            <PyRequirement>__import__('scions').reqEmperorshand(pCaster)</PyRequirement>
			<Effect>EFFECT_SPELL1</Effect>
			<Sound>AS3D_SPELL_CHARM_PERSON</Sound>
			<Button>Modules/NormalModules/ScionSpell/emperorshand.dds</Button>
		</SpellInfo>
		<SpellInfo>			<!-- Emperor's Fist  -->
			<Type>SPELL_EMPERORS_FIST</Type>
			<Description>TXT_KEY_SPELL_EMPERORS_FIST</Description>
			<Civilopedia>TXT_KEY_SPELL_EMPERORS_FIST_PEDIA</Civilopedia>
			<Help></Help>
			<CivilizationPrereq>CIVILIZATION_SCIONS</CivilizationPrereq>
			<UnitPrereq>UNIT_PRAETORIAN</UnitPrereq>			
			<bAllowAI>1</bAllowAI>
			<bInBordersOnly>1</bInBordersOnly>
			<bInCityOnly>1</bInCityOnly>
			<iAIWeight>0</iAIWeight>
			<iCasterMinLevel>5</iCasterMinLevel>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
			<bHasCasted>1</bHasCasted>
			<CreateBuildingType>BUILDING_EMPERORS_FIST</CreateBuildingType>	
			<iChangePopulation>-3</iChangePopulation>
            <PyResult>__import__('scions').spellEmperorsfist(pCaster)</PyResult>
			<Effect>EFFECT_SPELL1</Effect>
			<Sound>AS3D_SPELL_CHARM_PERSON</Sound>
			<Button>Modules/NormalModules/ScionSpell/emperorsfist.dds</Button>
		</SpellInfo>

Buildinginfos:
Spoiler :
Code:
		<BuildingInfo>
            <BuildingClass>BUILDINGCLASS_EMPERORS_HAND</BuildingClass>
            <Type>BUILDING_EMPERORS_HAND</Type>
            <SpecialBuildingType>NONE</SpecialBuildingType>
			<Description>TXT_KEY_BUILDING_EMPERORS_HAND</Description>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <ArtDefineTag>ART_DEF_BUILDING_HOPE</ArtDefineTag>
            <bNeverCapture>1</bNeverCapture>
            <bCenterInCity>0</bCenterInCity>
            <iAIWeight>0</iAIWeight>
            <iCost>-1</iCost>
            <iMinAreaSize>-1</iMinAreaSize>
            <iConquestProb>0</iConquestProb>
            <iMinLatitude>0</iMinLatitude>
            <iMaxLatitude>90</iMaxLatitude>
            <iMaintenanceModifier>-20</iMaintenanceModifier>
            <iWarWearinessModifier>-20</iWarWearinessModifier>
            <iHappiness>2</iHappiness>
            <iForeignTradeRouteModifier>-50</iForeignTradeRouteModifier>
            <iAsset>2</iAsset>
            <iPower>1</iPower>
            <fVisibilityPriority>1</fVisibilityPriority>
            <ObsoleteSafeCommerceChanges>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-1</iCommerce>
            </ObsoleteSafeCommerceChanges>
            <CommerceModifiers>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-20</iCommerce>
            </CommerceModifiers>
            <Flavors>
                <Flavor>
                    <FlavorType>FLAVOR_SCIENCE</FlavorType>
                    <iFlavor>10</iFlavor>
                </Flavor>
            </Flavors>
            <bRequiresCaster>1</bRequiresCaster>
			<iCrime>-10</iCrime>
			<iMistDensity>38</iMistDensity>
        </BuildingInfo>
		<BuildingInfo>
            <BuildingClass>BUILDINGCLASS_EMPERORS_FIST</BuildingClass>
            <Type>BUILDING_EMPERORS_FIST</Type>
            <SpecialBuildingType>NONE</SpecialBuildingType>
			<Description>TXT_KEY_BUILDING_EMPERORS_FIST</Description>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <ArtDefineTag>ART_DEF_BUILDING_HOPE</ArtDefineTag>
            <bNeverCapture>1</bNeverCapture>
            <bCenterInCity>0</bCenterInCity>
            <iAIWeight>0</iAIWeight>
            <iCost>-1</iCost>
            <iMinAreaSize>-1</iMinAreaSize>
            <iConquestProb>0</iConquestProb>
            <iMinLatitude>0</iMinLatitude>
            <iMaxLatitude>90</iMaxLatitude>
            <iMaintenanceModifier>-20</iMaintenanceModifier>
            <iHappiness>5</iHappiness>
			<iTradeRouteModifier>-25</iTradeRouteModifier>
            <iForeignTradeRouteModifier>-100</iForeignTradeRouteModifier>
            <iAsset>2</iAsset>
            <iPower>1</iPower>
            <fVisibilityPriority>1</fVisibilityPriority>
            <ObsoleteSafeCommerceChanges>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-3</iCommerce>
            </ObsoleteSafeCommerceChanges>
            <CommerceModifiers>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-30</iCommerce>
            </CommerceModifiers>
            <Flavors>
                <Flavor>
                    <FlavorType>FLAVOR_SCIENCE</FlavorType>
                    <iFlavor>10</iFlavor>
                </Flavor>
            </Flavors>
            <bRequiresCaster>1</bRequiresCaster>
			<iCrime>-15</iCrime>
			<iMistDensity>76</iMistDensity>
        </BuildingInfo>

EDIT: Forgot the Building Class infos.
Spoiler :
Code:
		<BuildingClassInfo>
			<Type>BUILDINGCLASS_EMPERORS_HAND</Type>
			<Description>TXT_KEY_BUILDING_EMPERORS_HAND</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iExtraPlayerInstances>0</iExtraPlayerInstances>
			<bNoLimit>0</bNoLimit>
			<bMonument>0</bMonument>
			<DefaultBuilding>BUILDING_EMPERORS_HAND</DefaultBuilding>
			<VictoryThresholds/>
		</BuildingClassInfo>
		<BuildingClassInfo>
			<Type>BUILDINGCLASS_EMPERORS_FIST</Type>
			<Description>TXT_KEY_BUILDING_EMPERORS_FIST</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iExtraPlayerInstances>0</iExtraPlayerInstances>
			<bNoLimit>0</bNoLimit>
			<bMonument>0</bMonument>
			<DefaultBuilding>BUILDING_EMPERORS_FIST</DefaultBuilding>
			<VictoryThresholds/>
		</BuildingClassInfo>

Text:
Spoiler :
Code:
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_HAND</Tag>
    <English>Emperor's Hand</English>
    <French>Emperor's Hand</French>
    <German>Emperor's Hand</German>
    <Italian>Emperor's Hand</Italian>
    <Spanish>Emperor's Hand</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_HAND_PEDIA</Tag>
    <English>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</English>
    <French>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</French>
    <German>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</German>
    <Italian>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</Italian>
    <Spanish>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_FIST</Tag>
    <English>Emperor's Fist</English>
    <French>Emperor's Fist</French>
    <German>Emperor's Fist</German>
    <Italian>Emperor's Fist</Italian>
    <Spanish>Emperor's Fist</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_FIST_PEDIA</Tag>
    <English>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</English>
    <French>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</French>
    <German>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</German>
    <Italian>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</Italian>
    <Spanish>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_BUILDING_EMPERORS_HAND</Tag>
    <English>Emperor's Hand</English>
    <French>Emperor's Hand</French>
    <German>Emperor's Hand</German>
    <Italian>Emperor's Hand</Italian>
    <Spanish>Emperor's Hand</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_BUILDING_EMPERORS_FIST</Tag>
    <English>Emperor's Fist</English>
    <French>Emperor's Fist</French>
    <German>Emperor's Fist</German>
    <Italian>Emperor's Fist</Italian>
    <Spanish>Emperor's Fist</Spanish>
  </TEXT>

Python (for Scions.py):
Spoiler :
Code:
def reqEmperorsFist(caster):	
	pPlot = pCaster.plot()	
	pCity = pPlot.getPlotCity()	
	if pCity.getPopulation() > 3:
		return True
	
	return False
	
def spellEmperorsfist(caster):	
	pPlot = caster.plot()	
	pCity = pPlot.getPlotCity()	
	pCity.changeHurryAngerTimer(20)
	if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_FIST')) > 0:		
		pCity.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_HAND'), 0)
		
def reqEmperorshand(caster):
	pPlot = caster.plot()	
	pCity = pPlot.getPlotCity()	
	if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_FIST')) > 0:		
		return False
		
	return True

EDIT:

Whoops. You'll need the buttons. I've put the module-version files in, too.
 

Attachments

@Sephi,

The last two items on Tarquelnes list I did not do. I will check for XML/Python load errors on the one python file effected below. If it fails, I will indicate so with a post.

@Tarquelne,

I inserted most of the files indicated below and will upload after I test for XML or python load error.

All I lack is if you want help files for these items:

Spoiler :
TXT_KEY_SPELL_EMPERORS_HAND_HELP

Spoiler :
TXT_KEY_SPELL_EMPERORS_FIST_HELP

Spoiler :
TXT_KEY_BUILDING_EMPERORS_FIST_HELP


If you want help tags for them, give me a brief description for each.

GW

After the orgy of non-work related stuff I did yesterday I was supposed to buckle-down today.

What I did instead was give the Praetorian an overhaul.
This needs a little python and a change to a unit that can't be overwritten in a module, so I'm hoping it'll be included directly into the WM Scions module. The changed or additional code is all below.
Sephi, please include it!
:please:

Sometime. No hurry. :)

Changes:

Make the unit "Disciple" rather than "Melee". Remove "Spirit II" free promo, remove "Headless". This pushes the Praetorian warrior-priest quite a bit more in the priest direction, which fits the lore-stuff, and lowers a very, very high defense a little.

DONE BY GW
Unit info:
Spoiler :
Code:
		<UnitInfo>		<!-- Praetorian -->
			<Class>UNITCLASS_ROYAL_GUARD</Class>
			<Type>UNIT_PRAETORIAN</Type>
			<Combat>UNITCOMBAT_DISCIPLE</Combat>
			<Domain>DOMAIN_LAND</Domain>
			<DefaultUnitAI>UNITAI_CITY_DEFENSE</DefaultUnitAI>
			<Description>TXT_KEY_UNIT_PRAETORIAN</Description>
			<Civilopedia>TXT_KEY_UNIT_PRAETORIAN_PEDIA</Civilopedia>
			<Strategy></Strategy>
			<Advisor>ADVISOR_MILITARY</Advisor>
			<bMilitaryHappiness>1</bMilitaryHappiness>
			<bMilitarySupport>1</bMilitarySupport>
			<bMilitaryProduction>1</bMilitaryProduction>
			<bPillage>1</bPillage>
			<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_ATTACK</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
				<UnitAI>
					<UnitAIType>UNITAI_PILLAGE</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
			</UnitAIs>
			<PrereqTech>TECH_FEUDALISM</PrereqTech>
			<iCost>216</iCost>
			<iAdvancedStartCost>-1</iAdvancedStartCost>
			<iMoves>1</iMoves>
			<iCombat>5</iCombat>
			<BonusProductionModifiers>
			<BonusProductionModifier>
				<BonusType>BONUS_SILK</BonusType>
				<iProductonModifier>10</iProductonModifier>
			</BonusProductionModifier>
			<BonusProductionModifier>
				<BonusType>BONUS_IVORY</BonusType>
				<iProductonModifier>10</iProductonModifier>
			</BonusProductionModifier>
			</BonusProductionModifiers>
			<iCultureGarrison>4</iCultureGarrison>
			<iAsset>9</iAsset>
			<iPower>14</iPower>
			<UnitMeshGroups>
				<iGroupSize>2</iGroupSize>
					<fMaxSpeed>1.75</fMaxSpeed>
				<fPadTime>1</fPadTime>
				<iMeleeWaveSize>2</iMeleeWaveSize>
				<iRangedWaveSize>0</iRangedWaveSize>
				<UnitMeshGroup>
					<iRequired>2</iRequired>
					<EarlyArtDefineTag>ART_DEF_UNIT_PRAETORIAN</EarlyArtDefineTag>
				</UnitMeshGroup>
			</UnitMeshGroups>
			<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
			<FreePromotions>
				<FreePromotion>
					<PromotionType>PROMOTION_GUARDSMAN</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_SCOURGE</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
				<FreePromotion>
					<PromotionType>PROMOTION_HEAVY_FORMATION</PromotionType>
					<bFreePromotion>1</bFreePromotion>
				</FreePromotion>
			</FreePromotions>
			<bAbandon>1</bAbandon>
			<iCombatDefense>8</iCombatDefense>
			<iTier>3</iTier>
            <iWeaponTier>2</iWeaponTier>
			<PrereqCivic>CIVIC_GOD_KING</PrereqCivic>
		</UnitInfo>

DONE BY GW

This needs to be removed from around 2237 of CvFFHPLUS
Spoiler :
Code:
	if iUnitType==gc.getInfoTypeForString('UNIT_PRAETORIAN'):
		unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HEADLESS'),true)

Taking away Spirit II removes "Hope". But I've got a nice flavorful set of replacements.

Emperor's Hand:

MADE Spell_Strategy_Tag by GW

Spoiler :
Praetorian warrior-priests put the city in the Emperor's Hand. All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos. Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.


Mostly minor benefits, but the main thing is use of the MistDensity mechanic: 15% to block level 1 units, 3% by level 4.

Emperor's Fist:

MADE Spell_Strategy_Tag by GW

Spoiler :
As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos. But this time the threads are drawn so tight as to throttle the city. Enemies of Patria often cannot even enter. But even they city's citizens find the restrictions oppressive. The difference between devotion to the Empire and obsessive insanity becomes small. The difference between treason and the True Death, nonexistent.


Requires a 5th level Praetorian.
Good happiness, but a big hit to the "HurryAngerTimer" and other significant penalties. The biggest being -3 population in the city. Which is pretty nasty for Scions. The big benefit is a double the Hand's MistDensity rating. (The spells/buildings are, however, mutually exclusive: The Fist over-rides the Hand.) Both spells end if no unit capable of casting it is in the city.

DONE BY GW
Spellinfos:
Spoiler :
Code:
		<SpellInfo>			<!-- Emperor's Hand  -->
			<Type>SPELL_EMPERORS_HAND</Type>
			<Description>TXT_KEY_SPELL_EMPERORS_HAND</Description>
			<Civilopedia>TXT_KEY_SPELL_EMPERORS_HAND_PEDIA</Civilopedia>
			<Help></Help>
			<CivilizationPrereq>CIVILIZATION_SCIONS</CivilizationPrereq>
			<UnitPrereq>UNIT_PRAETORIAN</UnitPrereq>			
			<bAllowAI>1</bAllowAI>
			<bInBordersOnly>1</bInBordersOnly>
			<bInCityOnly>1</bInCityOnly>
			<iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
			<bHasCasted>1</bHasCasted>
			<CreateBuildingType>BUILDING_EMPERORS_HAND</CreateBuildingType>		
            <PyRequirement>__import__('scions').reqEmperorshand(pCaster)</PyRequirement>
			<Effect>EFFECT_SPELL1</Effect>
			<Sound>AS3D_SPELL_CHARM_PERSON</Sound>
			<Button>Modules/NormalModules/ScionSpell/emperorshand.dds</Button>
		</SpellInfo>
		<SpellInfo>			<!-- Emperor's Fist  -->
			<Type>SPELL_EMPERORS_FIST</Type>
			<Description>TXT_KEY_SPELL_EMPERORS_FIST</Description>
			<Civilopedia>TXT_KEY_SPELL_EMPERORS_FIST_PEDIA</Civilopedia>
			<Help></Help>
			<CivilizationPrereq>CIVILIZATION_SCIONS</CivilizationPrereq>
			<UnitPrereq>UNIT_PRAETORIAN</UnitPrereq>			
			<bAllowAI>1</bAllowAI>
			<bInBordersOnly>1</bInBordersOnly>
			<bInCityOnly>1</bInCityOnly>
			<iAIWeight>0</iAIWeight>
			<iCasterMinLevel>5</iCasterMinLevel>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
			<bHasCasted>1</bHasCasted>
			<CreateBuildingType>BUILDING_EMPERORS_FIST</CreateBuildingType>	
			<iChangePopulation>-3</iChangePopulation>
            <PyResult>__import__('scions').spellEmperorsfist(pCaster)</PyResult>
			<Effect>EFFECT_SPELL1</Effect>
			<Sound>AS3D_SPELL_CHARM_PERSON</Sound>
			<Button>Modules/NormalModules/ScionSpell/emperorsfist.dds</Button>
		</SpellInfo>

Buildinginfos:

DONE BY GW

Spoiler :
Code:
		<BuildingInfo>
            <BuildingClass>BUILDINGCLASS_EMPERORS_HAND</BuildingClass>
            <Type>BUILDING_EMPERORS_HAND</Type>
            <SpecialBuildingType>NONE</SpecialBuildingType>
			<Description>TXT_KEY_BUILDING_EMPERORS_HAND</Description>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <ArtDefineTag>ART_DEF_BUILDING_HOPE</ArtDefineTag>
            <bNeverCapture>1</bNeverCapture>
            <bCenterInCity>0</bCenterInCity>
            <iAIWeight>0</iAIWeight>
            <iCost>-1</iCost>
            <iMinAreaSize>-1</iMinAreaSize>
            <iConquestProb>0</iConquestProb>
            <iMinLatitude>0</iMinLatitude>
            <iMaxLatitude>90</iMaxLatitude>
            <iMaintenanceModifier>-20</iMaintenanceModifier>
            <iWarWearinessModifier>-20</iWarWearinessModifier>
            <iHappiness>2</iHappiness>
            <iForeignTradeRouteModifier>-50</iForeignTradeRouteModifier>
            <iAsset>2</iAsset>
            <iPower>1</iPower>
            <fVisibilityPriority>1</fVisibilityPriority>
            <ObsoleteSafeCommerceChanges>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-1</iCommerce>
            </ObsoleteSafeCommerceChanges>
            <CommerceModifiers>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-20</iCommerce>
            </CommerceModifiers>
            <Flavors>
                <Flavor>
                    <FlavorType>FLAVOR_SCIENCE</FlavorType>
                    <iFlavor>10</iFlavor>
                </Flavor>
            </Flavors>
            <bRequiresCaster>1</bRequiresCaster>
			<iCrime>-10</iCrime>
			<iMistDensity>38</iMistDensity>
        </BuildingInfo>
		<BuildingInfo>
            <BuildingClass>BUILDINGCLASS_EMPERORS_FIST</BuildingClass>
            <Type>BUILDING_EMPERORS_FIST</Type>
            <SpecialBuildingType>NONE</SpecialBuildingType>
			<Description>TXT_KEY_BUILDING_EMPERORS_FIST</Description>
            <Advisor>ADVISOR_MILITARY</Advisor>
            <ArtDefineTag>ART_DEF_BUILDING_HOPE</ArtDefineTag>
            <bNeverCapture>1</bNeverCapture>
            <bCenterInCity>0</bCenterInCity>
            <iAIWeight>0</iAIWeight>
            <iCost>-1</iCost>
            <iMinAreaSize>-1</iMinAreaSize>
            <iConquestProb>0</iConquestProb>
            <iMinLatitude>0</iMinLatitude>
            <iMaxLatitude>90</iMaxLatitude>
            <iMaintenanceModifier>-20</iMaintenanceModifier>
            <iHappiness>5</iHappiness>
			<iTradeRouteModifier>-25</iTradeRouteModifier>
            <iForeignTradeRouteModifier>-100</iForeignTradeRouteModifier>
            <iAsset>2</iAsset>
            <iPower>1</iPower>
            <fVisibilityPriority>1</fVisibilityPriority>
            <ObsoleteSafeCommerceChanges>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-3</iCommerce>
            </ObsoleteSafeCommerceChanges>
            <CommerceModifiers>
                <iCommerce>0</iCommerce>
                <iCommerce>0</iCommerce>
                <iCommerce>-30</iCommerce>
            </CommerceModifiers>
            <Flavors>
                <Flavor>
                    <FlavorType>FLAVOR_SCIENCE</FlavorType>
                    <iFlavor>10</iFlavor>
                </Flavor>
            </Flavors>
            <bRequiresCaster>1</bRequiresCaster>
			<iCrime>-15</iCrime>
			<iMistDensity>76</iMistDensity>
        </BuildingInfo>

EDIT: Forgot the Building Class infos.

DONE BY GW

Spoiler :
Code:
		<BuildingClassInfo>
			<Type>BUILDINGCLASS_EMPERORS_HAND</Type>
			<Description>TXT_KEY_BUILDING_EMPERORS_HAND</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iExtraPlayerInstances>0</iExtraPlayerInstances>
			<bNoLimit>0</bNoLimit>
			<bMonument>0</bMonument>
			<DefaultBuilding>BUILDING_EMPERORS_HAND</DefaultBuilding>
			<VictoryThresholds/>
		</BuildingClassInfo>
		<BuildingClassInfo>
			<Type>BUILDINGCLASS_EMPERORS_FIST</Type>
			<Description>TXT_KEY_BUILDING_EMPERORS_FIST</Description>
			<iMaxGlobalInstances>-1</iMaxGlobalInstances>
			<iMaxTeamInstances>-1</iMaxTeamInstances>
			<iMaxPlayerInstances>-1</iMaxPlayerInstances>
			<iExtraPlayerInstances>0</iExtraPlayerInstances>
			<bNoLimit>0</bNoLimit>
			<bMonument>0</bMonument>
			<DefaultBuilding>BUILDING_EMPERORS_FIST</DefaultBuilding>
			<VictoryThresholds/>
		</BuildingClassInfo>

Text:

DONE BY GW

Spoiler :
Code:
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_HAND</Tag>
    <English>Emperor's Hand</English>
    <French>Emperor's Hand</French>
    <German>Emperor's Hand</German>
    <Italian>Emperor's Hand</Italian>
    <Spanish>Emperor's Hand</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_HAND_PEDIA</Tag>
    <English>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</English>
    <French>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</French>
    <German>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</German>
    <Italian>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</Italian>
    <Spanish>Praetorian warrior-priests put the city in the Emperor's Hand.  All good citizen's rejoice as threads of fate draw around the city and shield it from crime, disorder, and chaos.  Disloyalty to the Empire becomes not just psychologically deviant, but physically difficult.</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_FIST</Tag>
    <English>Emperor's Fist</English>
    <French>Emperor's Fist</French>
    <German>Emperor's Fist</German>
    <Italian>Emperor's Fist</Italian>
    <Spanish>Emperor's Fist</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_SPELL_EMPERORS_FIST_PEDIA</Tag>
    <English>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</English>
    <French>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</French>
    <German>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</German>
    <Italian>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</Italian>
    <Spanish>As with "Emperor's Hand," Praetorian warrior-priests draw threads of fate around the city and shield it from crime, disorder, and chaos.  But this time the threads are drawn so tight as to throttle the city.  Enemies of Patria often cannot even enter.  But even they city's citizens find the restrictions oppressive.  The difference between devotion to the Empire and obsessive insanity becomes small.  The difference between treason and the True Death, nonexistent.</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_BUILDING_EMPERORS_HAND</Tag>
    <English>Emperor's Hand</English>
    <French>Emperor's Hand</French>
    <German>Emperor's Hand</German>
    <Italian>Emperor's Hand</Italian>
    <Spanish>Emperor's Hand</Spanish>
  </TEXT>
  <TEXT>
    <Tag>TXT_KEY_BUILDING_EMPERORS_FIST</Tag>
    <English>Emperor's Fist</English>
    <French>Emperor's Fist</French>
    <German>Emperor's Fist</German>
    <Italian>Emperor's Fist</Italian>
    <Spanish>Emperor's Fist</Spanish>
  </TEXT>

NOT DONE BY GW

Python (for Scions.py):
Spoiler :
Code:
def reqEmperorsFist(caster):	
	pPlot = pCaster.plot()	
	pCity = pPlot.getPlotCity()	
	if pCity.getPopulation() > 3:
		return True
	
	return False
	
def spellEmperorsfist(caster):	
	pPlot = caster.plot()	
	pCity = pPlot.getPlotCity()	
	pCity.changeHurryAngerTimer(20)
	if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_FIST')) > 0:		
		pCity.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_HAND'), 0)
		
def reqEmperorshand(caster):
	pPlot = caster.plot()	
	pCity = pPlot.getPlotCity()	
	if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_EMPERORS_FIST')) > 0:		
		return False
		
	return True

NOT DONE BY GW

EDIT:

Whoops. You'll need the buttons. I've put the module-version files in, too.
 
Spoiler :
TXT_KEY_SPELL_EMPERORS_HAND_HELP

Spoiler :
TXT_KEY_SPELL_EMPERORS_FIST_HELP

Spoiler :
TXT_KEY_BUILDING_EMPERORS_FIST_HELP

Emperor's Hand: Can block first to third level units.
Emperor's Fist: Can block up to sixth level units.

I think those are good for either spell or building.

Ya know, maybe that iMistDensity should be 64 rather than 76. That'd be first to 5th.

****

I found a couple of things in the Scion promotions file.
In FF the python check was based on the unit rather than the promotion. To get Haunts changing (sometimes) back to Ghostwalkers based on promo pyperturn, here's a Promo info that has the pyperturn line.

Spoiler :

Code:
		<PromotionInfo>		<!-- Haunt -->
			<Type>PROMOTION_HAUNT</Type>
			<Description>TXT_KEY_PROMOTION_HAUNT</Description>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<bAlwaysHeal>1</bAlwaysHeal>
			<FeatureAttacks>
				<FeatureAttack>
					<FeatureType>FEATURE_HAUNTED_LANDS</FeatureType>
					<iFeatureAttack>30</iFeatureAttack>
				</FeatureAttack>
			</FeatureAttacks>
			<FeatureDefenses>
				<FeatureDefense>
					<FeatureType>FEATURE_HAUNTED_LANDS</FeatureType>
					<iFeatureDefense>30</iFeatureDefense>
				</FeatureDefense>
			</FeatureDefenses>
			<UnitCombats>
				<UnitCombat>
					<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
					<bUnitCombat>1</bUnitCombat>
				</UnitCombat>
			</UnitCombats>
			<Button>Art/Interface/Buttons/Promotions/haunt.dds</Button>
			<iBetrayalChance>5</iBetrayalChance>
			<iMinLevel>-1</iMinLevel>
            <PyPerTurn>__import__('scions').checkHaunt(pCaster)</PyPerTurn>
			<PromotionImmune1>PROMOTION_LOYALTY</PromotionImmune1>
		</PromotionInfo>

(The python is already in Scion.py.)

Same thing for "Grand Ward." The spell doesn't actually work - repulsing living units - without this.

Spoiler :
Code:
		<PromotionInfo>		<!-- Grand Ward -->
			<Type>PROMOTION_GRAND_WARD</Type>
			<Description>TXT_KEY_PROMOTION_GRAND_WARD</Description>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<iMovesChange>-1</iMovesChange>
			<Button>Art/Interface/Buttons/Spells/corpus3.dds</Button>
			<bDispellable>1</bDispellable>
			<iExpireChance>10</iExpireChance> <!-- <PyPerTurn>effectUPush(pCaster)</PyPerTurn> -->		
            <PyPerTurn>__import__('scions').effectUPush(pCaster)</PyPerTurn>	
		</PromotionInfo>

If want these features, but using doTurnScions rather than promotions pyperturn, I can whip something up.
 
@Sephi,

The last two items on Tarquelnes list I did not do. I will check for XML/Python load errors on the one python file effected below. If it fails, I will indicate so with a post.


GW

Sephi,

There were a couple of python errors and xml/schema errors.

I have uploaded at SVN Revision 199

Im going to check what I can with the tags, but I will leave well enough alone otherwise.. haha..
 
Tarquelne,

I will leave the python work to Sephi, till I know a little more about what Im doing there.. haha.. what little I messed with on the original list wasnt a clean effort.... haha

Emperor's Hand: Can block first to third level units.
Block spells from spell casters or other type of attack?

Emperor's Fist: Can block up to sixth level units.
Block spells from spell casters or other type of attack?

I think those are good for either spell or building.

Ya know, maybe that iMistDensity should be 64 rather than 76. That'd be first to 5th.

You lost me here?
****

I found a couple of things in the Scion promotions file.
In FF the python check was based on the unit rather than the promotion. To get Haunts changing (sometimes) back to Ghostwalkers based on promo pyperturn, here's a Promo info that has the pyperturn line.

Leaving this for Sephi.

Spoiler :

Code:
		<PromotionInfo>		<!-- Haunt -->
			<Type>PROMOTION_HAUNT</Type>
			<Description>TXT_KEY_PROMOTION_HAUNT</Description>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<bAlwaysHeal>1</bAlwaysHeal>
			<FeatureAttacks>
				<FeatureAttack>
					<FeatureType>FEATURE_HAUNTED_LANDS</FeatureType>
					<iFeatureAttack>30</iFeatureAttack>
				</FeatureAttack>
			</FeatureAttacks>
			<FeatureDefenses>
				<FeatureDefense>
					<FeatureType>FEATURE_HAUNTED_LANDS</FeatureType>
					<iFeatureDefense>30</iFeatureDefense>
				</FeatureDefense>
			</FeatureDefenses>
			<UnitCombats>
				<UnitCombat>
					<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
					<bUnitCombat>1</bUnitCombat>
				</UnitCombat>
			</UnitCombats>
			<Button>Art/Interface/Buttons/Promotions/haunt.dds</Button>
			<iBetrayalChance>5</iBetrayalChance>
			<iMinLevel>-1</iMinLevel>
            <PyPerTurn>__import__('scions').checkHaunt(pCaster)</PyPerTurn>
			<PromotionImmune1>PROMOTION_LOYALTY</PromotionImmune1>
		</PromotionInfo>

(The python is already in Scion.py.)

Same thing for "Grand Ward." The spell doesn't actually work - repulsing living units - without this.

Leaving this for Sephi.

Spoiler :
Code:
		<PromotionInfo>		<!-- Grand Ward -->
			<Type>PROMOTION_GRAND_WARD</Type>
			<Description>TXT_KEY_PROMOTION_GRAND_WARD</Description>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<iMovesChange>-1</iMovesChange>
			<Button>Art/Interface/Buttons/Spells/corpus3.dds</Button>
			<bDispellable>1</bDispellable>
			<iExpireChance>10</iExpireChance> <!-- <PyPerTurn>effectUPush(pCaster)</PyPerTurn> -->		
            <PyPerTurn>__import__('scions').effectUPush(pCaster)</PyPerTurn>	
		</PromotionInfo>

If want these features, but using doTurnScions rather than promotions pyperturn, I can whip something up.
 
Ya know, maybe that iMistDensity should be 64 rather than 76. That'd be first to 5th.

Mist density 64 means:
chance to get lost in mist = 28% for lvl 1 units

the formula is:
chance in % to get lost in mist = (mist / 2) -(4*attack unit level)

i made a little overview on different mist settings here:
Spoiler :
attachment.php
 
Graywarden, can you please redo your changes? As I said before in post 92, I already merged all changes before (not uploaded to the SVN) and I do not want to check for compatibility which would be very time consuming ;)
The SVN software should have a function to revert to an older revision.

If you want to merge something in the future I gladly help you with it but since I already merged this I do not want to do it again.
 
Graywarden, can you please redo your changes? As I said before in post 92, I already merged all changes before (not uploaded to the SVN) and I do not want to check for compatibility which would be very time consuming ;)
The SVN software should have a function to revert to an older revision.

If you want to merge something in the future I gladly help you with it but since I already merged this I do not want to do it again.

Sephi,

Sorry about that, wasnt intended. Got on a work roll today..... i will see what i can do.
 
Back
Top Bottom