Deliverator
Graphical Hackificator
More adventures in SDK-Land...
Promotion Effects Bonanza
While looking for Modcomps that might be useful for Dune Wars I came across Conqueror's Delight by Dom Pedro II. Unfortunately, this mod seems pretty much abandoned, but it has some great stuff in it. It consists of a number of different modcomps some of which have no been released separately as far as I can tell. I have merged in the first and most interesting component which is simply called Promotions Mod which adds a long list of new effects for promotions.
I previously added the TLOTags modcomp by TheLadiesOgre which added several new abilities for Promotions. So altogether we now have a pretty handsome list of new Promotion tags which I hope we can use to make Dune Wars combat more varied and interesting. Here's a list:
Here's a little image showing some test promotions I have created to prove this is all working. (Don't worry these aren't serious ideas for promotions).
A lot to digest, I know, but there is a lot of potential here, particular when you start thinking about using combinations of these.
For example, if I set PrereqCivilization to Atreides, UnitCombat to Melee, iCombatChange to 1 and set bAutoAcquire and bNoXP to True then every Atreides Melee unit would start with the promotion and would have a base combat strength 1 higher than other Civs.
Other very early ideas:
Zeal promotion that gives +10% Attack, -10% Defense. Could be something to go at the Fanaticism tech. Perhaps have Zeal II and Zeal III with differing effects only available if your State Religion is Mahdi.
Orbital Insertion promotion that uses iExtraDropRange to give Paradrop ability to units.
Instead of Infantry unit having 1 First Strike we can give them a free City Watch promotion that uses the iCityFirstStrikesChange instead. This would give them First Strikes when defending cities, but more vulnerable when outside.
After Promotions Mod the next bit of Conquerer's Delight I am most interested in is Slavery Mod which seems to be a more expanded version of our Harkonnen Slave capture mechanic. It doesn't seem to be documented too much, but it seems you can get slaves from capturing cities and pillaging as well as combat. I'm going to understand what it does more, before decided whether we can use it.
Giving Mesa Tactical Value
As well as getting the promotion effects for Mesa working, I've added a new tag to Units to control whether or not they can enter Mesa. This means I can now stop Vehicles and Siege Weapons (and maybe Suspensors?) from being able to enter Mesa. Mesa can represent more the really craggy rocks of Dune - Thopters and Carryalls can fly over it and foot units can pick their way over it, but you can't drive over it. I think this will help the terrain of the planet play more of strategic role in the mod, which is appropriate since in Dune the planet is one of the main characters.
The underground caverns and tunnels of Dune are not really represented much in the mod yet, and I would like to have Mesa represent areas where there are caves and tunnels to hide in. We have talked before about having graphical caves visible on Mesa, but I would like to expand that further by having promotions that give advantages on Mesa. For example, you could have Cave/Tunnel related promotions that give extra withdraw chance when defending or attacking from Mesa or allows double movement through Mesa since the unit knows the secret passageways and short-cuts.
Promotions Mod adds different invisibility types as well. So we could have an Underground invisibility type, for higher Cave related promos that means that units cannot be seen by most units. We can then create/change some scanner type promo that can see underground units. The Cave promotions could go on a new Guerilla Tactics promo after Jihad perhaps (with the Razzia Command +100% War Weariness wonder idea).
Mahdi Shrine Effect
Finally, I have got the requested Mahdi Shrine effect of +X% Military Production per City with the Mahdi Religion working. I have added a tag to Religion infos called iShrineGlobalMilitaryProduction so that the value of X called be tweaked.
One thing is that Mahdi is a bit one-dimensional right now. We now have the Temple, the Jihad Veterans Barracks and now the Shrine all boosting Military Production. A later version of the Mahdi Zealot has been suggested, but perhaps we can also use the new promotion effects for some Mahdi State Religion specific promos as well.
Promotion Effects Bonanza
While looking for Modcomps that might be useful for Dune Wars I came across Conqueror's Delight by Dom Pedro II. Unfortunately, this mod seems pretty much abandoned, but it has some great stuff in it. It consists of a number of different modcomps some of which have no been released separately as far as I can tell. I have merged in the first and most interesting component which is simply called Promotions Mod which adds a long list of new effects for promotions.
I previously added the TLOTags modcomp by TheLadiesOgre which added several new abilities for Promotions. So altogether we now have a pretty handsome list of new Promotion tags which I hope we can use to make Dune Wars combat more varied and interesting. Here's a list:
Spoiler :
Mostly taken from Dom Pedro II's Promotions Mod and TheLadiesOgre's TLOTags with a little bit of Fall Further/Fall From Heaven II:
<PrereqCivics>: One of these Civics is required in order to acquire this promotion.
<PrereqCivilizations>: Only these Civilizations can acquire this promotion.
<BonusPrereq> - promotion requires this bonus e.g. Ginaz Training
<BuildingClassPrereq> - requires the player to have built at least one of this building class.
<bAutoAcquire>: If a unit possesses all of the prereqs for a promotion tagged with this, the unit will automatically recieve this promotion (however, they will not recieve the promotion until they have enough experience unless the promotion is also tagged <bNoXP> (i.e. the choice is forced unless also tagged <bNoXP>))
<bNoXP>: This promotion is free (so long as the prereqs are met).
<bStackEffect>: This promotion may be purchased as many times as the player sees fit.
<bMustMaintain>: If for any reason the prereqs for this promotion are no longer met, the unit will lose it.
<iGoldCost> - substracts the specified amount directly from the treasury when the unit is given this promotion. If there is not enough gold in the treasury, the unit cannot get the promotion.
<ObsoleteTech> - Removes this Promotion from all player units on Discovery of this Tech
<FreePromotionTech> – Adds this Promotion to all eligible player units on Discovery of Tech
<bCannotAcquire> - this promotion cannot be acquired via conventional means (useful for promotions that are given free to certain units).
<bCannotConvert> - ???
<iCombatChange> - provides a base change in strength points that will appear on the units interface (unlike the strength modifiers which do not and are based on percentage).
<iAttackPercent> - changes the combat strength of a unit when attacking
<iDefensePercent> - changes the combat strength of a unit when defending
(I have hijacked these so that they provide advantages on Mesa tiles)
<iHillsAttack> - changes the combat strength of a unit when attacking into Mesa
<iHillsDefense> - changes the combat strength of a unit when defending Mesa
<iHillsDoubleMove> - allows the unit double movement through Mesa tiles
<iHillsFirstStrikesChange> - unit gets additional first strikes when attacking into or from Mesa
<iHillsWithdrawalChange> - unit gets additional withdrawal chance when attacking into or from Mesa
<iHillsHealChange> - unit heals by this percentage per turn in Mesa
<TerrainWithdrawalChanges> - units get additional withdrawal when attacking into or from this terrain
<TerrainFirstStrikesChanges> - units get additional first strikes when attacking into or from this terrain
<TerrainHealChanges> - unit heals by this percentage per turn in this terrain
<FeatureWithdrawalChanges> - units get additional withdrawal when attacking into or from this feature
<FeatureFirstStrikesChanges> - units get additional first strikes when attacking into or from this feature
<FeatureHealChanges> - unit heals by this percentage per turn on this feature
<UnitClassMods> - increases the combat strength against particular unit classes
<UnitCombatFirstStrikeChanges> - changes the first strikes given against a unit with a particular Unit Combat Type
<UnitCombatWithdrawalChanges> - changes the chance for withdrawal against a unit with a particular Unit Combat Type
<iCityFirstStrikesChange> - unit gets additional first strikes chance when defending in cities
<iForeignCityModifier> - changes the combat strength of a unit when fighting in a captured city with more than a certain percentage of enemy culture
<iForeignPlotModifier> - changes the combat strength of a unit when fighting a foreign enemy plot
<iUnitStackModifier> - changes the combat strength of a unit when fighting with a certain number of units above a set threshold (<iUnitThreshold>) on the particular tile
<Invisible>- gives the unit that Invisible Type. Units can now have multiple Invisible Types
<SeeInvisible>- will be able to see all units with that Invisible Type. Units can see multiple Invisible Types
<iPromotionCombatMod> – change in combat strength for any unit with a particular promotion (<PromotionCombatType>) (i.e. Anti-Promotion Promotions)
<bOneUp>: If this is set to 1, a unit that is given this promotion will get an "extra life".
<iSurvivorChance>: Whatever number is entered here will be the chance that the unit has to survive a combat loss.
<iRequiredBattleCount> - requires that the unit has to have fought a particular number of battles (battles ending in withdrawal count).
<iRequiredVictoryCount> - requires that the unit actually win a particular number of battles.
<iRequiredCapturedSlaveCount> - relates to DPII's Slavery Mod - not yet implemented.
<iAirBombRateChange> - changes the air bomb rate
<iSameTileAirRangeChange> - increases the air range of all units on the tile (air units will only take the best air range boost)
<iSameTileInterceptChange> - increases the interception rate of all units on the tile (intercepting units will only take the highest interception boost)
<iAirCombatLimitChange>: Whatever number is entered here will be applied to the units Air Combat Limit.
<iCollateralDamageLimitChange>: Whatever number is entered here will be applied to the units Collateral Damage Limit.
<iCollateralDamageMaxUnitsChange>: Whatever number is entered here will be applied to the units Collateral Damage Max Units Limit.
<iCombatLimitChange>: Whatever number is entered here will be applied to the units Combat Limit (thus making it possible to kill with collateral damage if the % goes over 100%).
<iCargoHealRateChange> - increases the rate at which other units in this unit's cargo will heal
<iExtraFortifyModifierPerTurn> - ???
<bDefensiveVictoryMove>: If this is set to 1, whenever the unit wins while defending, they will gain one point of movement. Max 1 movement point per turn.
<bOffensiveVictoryMove>: If this is set to 1, whenever the unit wins while attacking, they will gain one point of movement. Max 1 movement point per turn.
<iExtraDropRange>: Whatever number is entered here will be applied to the units drop range (thus giving units previously unable to paradrop the ability to do so).
<bFreeDrop>: If this is set to 1, paradropping does not act as an attack or cost any movement and the unit can drop onto FoW tiles.
<bIsMechOnly>: If this is set to 1, this promotion will only be offered to units which are <bMechanized>.
<bIsNoMechs>: If this is set to 1, this promotion will not be offered to units which are <bMechanized>.
<bPillageCulture>: If this is set to 1, the unit will pillage culture (ala IDW) whenever they pillage a tile.
<bPillageEspionage>: If this is set to 1, the unit will recieve espionage points (vs. the owner of the tile) whenever they pillage a tile.
<bPillageMarauder>: If this is set to 1, the unit will pillage twice (if possible) whenever they pillage a tile.
<bPillageOnMove>: If this is set to 1, the unit will pillage (free of charge concerning attack/movement) whenever they move to a new tile that is applicable.
<bPillageOnVictory>: If this is set to 1, the unit will recieve the profits of pillaging (though with no tile improvement loss) on a combat victory.
<bPillageResearch>: If this is set to 1, the unit will pillage research (toward their current research tech) whenever they pillage a tile.
<iVictoryAdjacentHeal>: Whatever number is entered here will be the chance that the unit has to give one turn's worth of healing to all friendly units on an adjacent tile on a combat victory (offensive or defensive).
<iVictoryHeal>: Whatever number is entered here will be the chance that the unit has to heal (one turn's worth) on a combat victory.
<iVictoryStackHeal>: Whatever number is entered here will be the chance that the unit has to give one turn's worth of healing to all units on the same tile on a combat victory (offensive or defensive).
<PrereqCivics>: One of these Civics is required in order to acquire this promotion.
<PrereqCivilizations>: Only these Civilizations can acquire this promotion.
<BonusPrereq> - promotion requires this bonus e.g. Ginaz Training
<BuildingClassPrereq> - requires the player to have built at least one of this building class.
<bAutoAcquire>: If a unit possesses all of the prereqs for a promotion tagged with this, the unit will automatically recieve this promotion (however, they will not recieve the promotion until they have enough experience unless the promotion is also tagged <bNoXP> (i.e. the choice is forced unless also tagged <bNoXP>))
<bNoXP>: This promotion is free (so long as the prereqs are met).
<bStackEffect>: This promotion may be purchased as many times as the player sees fit.
<bMustMaintain>: If for any reason the prereqs for this promotion are no longer met, the unit will lose it.
<iGoldCost> - substracts the specified amount directly from the treasury when the unit is given this promotion. If there is not enough gold in the treasury, the unit cannot get the promotion.
<ObsoleteTech> - Removes this Promotion from all player units on Discovery of this Tech
<FreePromotionTech> – Adds this Promotion to all eligible player units on Discovery of Tech
<bCannotAcquire> - this promotion cannot be acquired via conventional means (useful for promotions that are given free to certain units).
<bCannotConvert> - ???
<iCombatChange> - provides a base change in strength points that will appear on the units interface (unlike the strength modifiers which do not and are based on percentage).
<iAttackPercent> - changes the combat strength of a unit when attacking
<iDefensePercent> - changes the combat strength of a unit when defending
(I have hijacked these so that they provide advantages on Mesa tiles)
<iHillsAttack> - changes the combat strength of a unit when attacking into Mesa
<iHillsDefense> - changes the combat strength of a unit when defending Mesa
<iHillsDoubleMove> - allows the unit double movement through Mesa tiles
<iHillsFirstStrikesChange> - unit gets additional first strikes when attacking into or from Mesa
<iHillsWithdrawalChange> - unit gets additional withdrawal chance when attacking into or from Mesa
<iHillsHealChange> - unit heals by this percentage per turn in Mesa
<TerrainWithdrawalChanges> - units get additional withdrawal when attacking into or from this terrain
<TerrainFirstStrikesChanges> - units get additional first strikes when attacking into or from this terrain
<TerrainHealChanges> - unit heals by this percentage per turn in this terrain
<FeatureWithdrawalChanges> - units get additional withdrawal when attacking into or from this feature
<FeatureFirstStrikesChanges> - units get additional first strikes when attacking into or from this feature
<FeatureHealChanges> - unit heals by this percentage per turn on this feature
<UnitClassMods> - increases the combat strength against particular unit classes
<UnitCombatFirstStrikeChanges> - changes the first strikes given against a unit with a particular Unit Combat Type
<UnitCombatWithdrawalChanges> - changes the chance for withdrawal against a unit with a particular Unit Combat Type
<iCityFirstStrikesChange> - unit gets additional first strikes chance when defending in cities
<iForeignCityModifier> - changes the combat strength of a unit when fighting in a captured city with more than a certain percentage of enemy culture
<iForeignPlotModifier> - changes the combat strength of a unit when fighting a foreign enemy plot
<iUnitStackModifier> - changes the combat strength of a unit when fighting with a certain number of units above a set threshold (<iUnitThreshold>) on the particular tile
<Invisible>- gives the unit that Invisible Type. Units can now have multiple Invisible Types
<SeeInvisible>- will be able to see all units with that Invisible Type. Units can see multiple Invisible Types
<iPromotionCombatMod> – change in combat strength for any unit with a particular promotion (<PromotionCombatType>) (i.e. Anti-Promotion Promotions)
<bOneUp>: If this is set to 1, a unit that is given this promotion will get an "extra life".
<iSurvivorChance>: Whatever number is entered here will be the chance that the unit has to survive a combat loss.
<iRequiredBattleCount> - requires that the unit has to have fought a particular number of battles (battles ending in withdrawal count).
<iRequiredVictoryCount> - requires that the unit actually win a particular number of battles.
<iRequiredCapturedSlaveCount> - relates to DPII's Slavery Mod - not yet implemented.
<iAirBombRateChange> - changes the air bomb rate
<iSameTileAirRangeChange> - increases the air range of all units on the tile (air units will only take the best air range boost)
<iSameTileInterceptChange> - increases the interception rate of all units on the tile (intercepting units will only take the highest interception boost)
<iAirCombatLimitChange>: Whatever number is entered here will be applied to the units Air Combat Limit.
<iCollateralDamageLimitChange>: Whatever number is entered here will be applied to the units Collateral Damage Limit.
<iCollateralDamageMaxUnitsChange>: Whatever number is entered here will be applied to the units Collateral Damage Max Units Limit.
<iCombatLimitChange>: Whatever number is entered here will be applied to the units Combat Limit (thus making it possible to kill with collateral damage if the % goes over 100%).
<iCargoHealRateChange> - increases the rate at which other units in this unit's cargo will heal
<iExtraFortifyModifierPerTurn> - ???
<bDefensiveVictoryMove>: If this is set to 1, whenever the unit wins while defending, they will gain one point of movement. Max 1 movement point per turn.
<bOffensiveVictoryMove>: If this is set to 1, whenever the unit wins while attacking, they will gain one point of movement. Max 1 movement point per turn.
<iExtraDropRange>: Whatever number is entered here will be applied to the units drop range (thus giving units previously unable to paradrop the ability to do so).
<bFreeDrop>: If this is set to 1, paradropping does not act as an attack or cost any movement and the unit can drop onto FoW tiles.
<bIsMechOnly>: If this is set to 1, this promotion will only be offered to units which are <bMechanized>.
<bIsNoMechs>: If this is set to 1, this promotion will not be offered to units which are <bMechanized>.
<bPillageCulture>: If this is set to 1, the unit will pillage culture (ala IDW) whenever they pillage a tile.
<bPillageEspionage>: If this is set to 1, the unit will recieve espionage points (vs. the owner of the tile) whenever they pillage a tile.
<bPillageMarauder>: If this is set to 1, the unit will pillage twice (if possible) whenever they pillage a tile.
<bPillageOnMove>: If this is set to 1, the unit will pillage (free of charge concerning attack/movement) whenever they move to a new tile that is applicable.
<bPillageOnVictory>: If this is set to 1, the unit will recieve the profits of pillaging (though with no tile improvement loss) on a combat victory.
<bPillageResearch>: If this is set to 1, the unit will pillage research (toward their current research tech) whenever they pillage a tile.
<iVictoryAdjacentHeal>: Whatever number is entered here will be the chance that the unit has to give one turn's worth of healing to all friendly units on an adjacent tile on a combat victory (offensive or defensive).
<iVictoryHeal>: Whatever number is entered here will be the chance that the unit has to heal (one turn's worth) on a combat victory.
<iVictoryStackHeal>: Whatever number is entered here will be the chance that the unit has to give one turn's worth of healing to all units on the same tile on a combat victory (offensive or defensive).
Here's a little image showing some test promotions I have created to prove this is all working. (Don't worry these aren't serious ideas for promotions).
A lot to digest, I know, but there is a lot of potential here, particular when you start thinking about using combinations of these.
For example, if I set PrereqCivilization to Atreides, UnitCombat to Melee, iCombatChange to 1 and set bAutoAcquire and bNoXP to True then every Atreides Melee unit would start with the promotion and would have a base combat strength 1 higher than other Civs.
Other very early ideas:
Zeal promotion that gives +10% Attack, -10% Defense. Could be something to go at the Fanaticism tech. Perhaps have Zeal II and Zeal III with differing effects only available if your State Religion is Mahdi.
Orbital Insertion promotion that uses iExtraDropRange to give Paradrop ability to units.
Instead of Infantry unit having 1 First Strike we can give them a free City Watch promotion that uses the iCityFirstStrikesChange instead. This would give them First Strikes when defending cities, but more vulnerable when outside.
After Promotions Mod the next bit of Conquerer's Delight I am most interested in is Slavery Mod which seems to be a more expanded version of our Harkonnen Slave capture mechanic. It doesn't seem to be documented too much, but it seems you can get slaves from capturing cities and pillaging as well as combat. I'm going to understand what it does more, before decided whether we can use it.
Giving Mesa Tactical Value
As well as getting the promotion effects for Mesa working, I've added a new tag to Units to control whether or not they can enter Mesa. This means I can now stop Vehicles and Siege Weapons (and maybe Suspensors?) from being able to enter Mesa. Mesa can represent more the really craggy rocks of Dune - Thopters and Carryalls can fly over it and foot units can pick their way over it, but you can't drive over it. I think this will help the terrain of the planet play more of strategic role in the mod, which is appropriate since in Dune the planet is one of the main characters.
The underground caverns and tunnels of Dune are not really represented much in the mod yet, and I would like to have Mesa represent areas where there are caves and tunnels to hide in. We have talked before about having graphical caves visible on Mesa, but I would like to expand that further by having promotions that give advantages on Mesa. For example, you could have Cave/Tunnel related promotions that give extra withdraw chance when defending or attacking from Mesa or allows double movement through Mesa since the unit knows the secret passageways and short-cuts.
Promotions Mod adds different invisibility types as well. So we could have an Underground invisibility type, for higher Cave related promos that means that units cannot be seen by most units. We can then create/change some scanner type promo that can see underground units. The Cave promotions could go on a new Guerilla Tactics promo after Jihad perhaps (with the Razzia Command +100% War Weariness wonder idea).
Mahdi Shrine Effect
Finally, I have got the requested Mahdi Shrine effect of +X% Military Production per City with the Mahdi Religion working. I have added a tag to Religion infos called iShrineGlobalMilitaryProduction so that the value of X called be tweaked.
One thing is that Mahdi is a bit one-dimensional right now. We now have the Temple, the Jihad Veterans Barracks and now the Shrine all boosting Military Production. A later version of the Mahdi Zealot has been suggested, but perhaps we can also use the new promotion effects for some Mahdi State Religion specific promos as well.