MODCOMP Version "Massively Out of Date" (Check the Fall Further thread for a link to the latest sourcecode, and steal the required bits of pythong/xml out of there too. I'm not sure if I'll ever update for base FfH again honestly. I changed so much now that it isn't really practical) Custom Work Spoiler Changes I have made personally : CIV4PromotionInfos.xml <iWorkRateChange> - Can increase/decrease the Workrate of a Unit. At this point the Unit still needs to have Build Orders available through UnitInfos though. <bRivalTerritoryExplore> - Can enter other Civilization's Territory without Open Borders. <bRivalTerritoryBlock> - Cannot enter any non-Team Territory, even with War or Open Borders. <bPillageOnMove> - The unit will automatically Pillage any Improvements (but not Roads) that it crosses in Enemy (at war) territory. <bSelfPillage> - The unit will automatically Pillage any Improvements (or road if no improvements present) in Neutral territory or that of your Team (to include yourself). Pillaging won't cost Move points nor provide Gold. <bGetCasterXP> - Allows the unit to gain XP from Caster/Worker type promotions (so requires the field <iCasterXP> to have a net value among all promotions on the unit to actually do anything) <bNonWarWeariness> - Loss of Unit does not cause War Weariness. <bNoMapReveal> - Unit cannot move in such a manner as to reveal new Map space (the pure black areas where you don't even know the terrain yet) <bCannotCapture> - Unit will not capture units in battle and cannot take Cities (might split this one into 2 seperate fields later now that I think about it...) <bNonAbandon> - Unit will not Abandon the Civilization when Civic or Religion pre-Reqs are no longer met. Check is performed BEFORE temporary Promotions are lost, so it is possible to keep the Unit even with a 100% chance to wear off each turn, thus forcing you to re-apply it till you meet requirements again. If you make this a MustMaintain Promotion, and have it with the same Civic & Religion pre-Reqs, then you can make it essentially a "1 shot deal" for dodging the Abandonment. <bCityHappy> - Unit may provide Military Happiness. <bCityNoHappy> - Unit can no longer provide Military Happiness. <bCanPillage> - Allows a Unit to Pillage <bCannotPillage> - Removes the Ability to Pillage <bCitySpy> - When in a Rival City, allows you to see their Production and get City Detail Zoom <bNoSupport> - The Unit will no longer cost Military Support <bStartGoldenAge> - Unit is capable of being sacraficed for Golden Ages. Selection of which units are Sacrificed is largely based on Proximity, so I advise stacking the units you want to use. Thus far the AI doesn't seem to understand this Promotion Field though. <bNoDefenseBonus> - Unit is unable to gain Bonuses for Defense (neither terrain bonuses nor Fortification) <bAllowDefenseBonuses> - Unit is able to gain Defensive Bonuses and may Fortify. <bNoDefenseBonus> takes precedence if both fields exist on a unit. <bMoveImpassable> - Unit may move through Impassable Tiles. Tested with Mountains because it was all I could think of at the time, but should work on Ice as well. <bFlatMoveCost> - Spends 1 per Tile Traveled, regardless of Terrain Type or Roads <bIgnoreTerrainCosts> - Can still use Roads, but otherwise spends 1 per Tile Traveled <bAttackNoWar> - This is <bAlwaysHostile>, it allows the unit to fight everything else without needing DoW, but unlike Hidden Nationality you can still be seen as belonging to your native Civilization. <bAllowAttacks> - Enables the ability to attack for Units not normally able to do so. <bFirstStrikeVulnerable> - Removes Immunity to First Strikes <bIndependant> - Unit does not count toward the National or Team Limits. <iSlaveGenerationChance> - Percent chance to generate a slave after combat. Adds with UnitInfo field, and thus you could use a negative value if you really wanted to. Also added a text notification for generation of a slave, capture of a unit (like, with Command), or conversion of a unit (Like with Baron Duin), and an indicator on the unit of the exact chance to generate a slave in combat (adds Civic, Unit & Promotion Fields). <iCombatExtraDuration> - Bonus Number of Turns to Duration from Combat. Can be Negative as well, with fun results. <iChangeDuration> - Adds a Duration to the Unit, positive or negative. If adding a positive value, you can cause a permanent unit to become temporary, and they have to remove the promotion before the timer runs out in order to become permanent again. <iDurationAlter> - Modifies the Duration of a Unit like iChangeDuration, but only if it already has a Duration to begin with. <iDurationPerTurn> - Modifies how quickly the Duration of a Unit will expire. Can be Positive 1 to make them Permanent (until the Promotion is lost), or even larger to enhance their duration greatly over time. As a negative value it causes their duration to dwindle quicker. The Duration Series of Promotions were really designed with each other in mind. An interesting thing you can do is to limit the number of attacks a unit can effectively make. If you set them to gain 1 Duration per Turn, then the Duration is no longer linked to Time. Make them lose 1 Duration per Combat, and you have now placed a limitation on how many fights they can handle before needing to remove the promotion I have modified how Duration displays. The number of turns you have remaining is displayed to account for the Duration Per Turn (it is only displayed if counting down). Below that it displays the total duration points on the unit and the change per turn it is currently recieving. Also, when you will lose the unit at the start of your next turn it displays that information clearly, rather than leaving you to wonder when precisely that last "Unit Dies in 1 Turn" is counted. <bEffectProm> - Sets the Promotion to bGraphicalOnly (not listed in Pedia) and removes the icon from being seen in-game on the Unit Mouseover, or the Detail screen. Future work will aim to remove the promotion from being displayed on Units who are set to start with an Effect Promotion, and instead display the Promotion's Information as if it was set in UnitInfo (Thus effectively importing all Promotion Fields to UnitInfos) <iExtraSupport> - Unit will Cost (or Supply if Negative) extra Gold per turn. If costing Gold per turn overall, the value is reduced according to Difficulty Settings. Charged value shows up in the F2 menu as "Extra Unit cost" (Under "Unit Cost" Mouseover) and is the same as the Unit field iExtraCost. <iCombatDmgCapBoost> - Kael added a Hard Limit function to Promotions to bring the combat Limit down, but I wanted something more flexible, so I have added a modifier which can be positive or Negative. This is applied to the lowest limit on the unit via UnitInfos and Kael's tag, and cannot bring the combat limit below 0 or above 100 <iChanceMiscast> - Modification to the Miscast Chances via Promotion. Positive and Negative values are both allowed. <bRequireCity> - The Promotion can only be acquired while in a City <iGoldCost> - Promotion is Purchased with Gold rather than Experience (No Level is gained for doing so). If a negative Value is entered, you gain Gold when taking the Promotion <bStackEffect> - The Promotion may be gained or lost multiple times. No graphical effect to signify that this has happened, but all of the modifications from the promotion will happen to the unit. Thus if you make Combat 5 be StackEffect, then you have essentially made an unlimited number of total Combat Promotions (every Level they can buy Combat 5 again for another 20% bonus). This has some drawbacks of course. The unit still only has 1 of that promotion, so only 1 of them will be automatically removed (if you make Hasted StackEffect, then you can cast Haste on a unit 20 times in a turn to gain 20 move points. But at the start of next turn they lose the Hasted Promotion 1 time, meaning they still have 19 more move than normal...). The fact that the promotion can be removed even if the unit does not have the promotion means you must be very careful with this tag, because a lot of code in the game will not check if you have a promotion before removing it. Thus if you make Withered be StackEffect, then every time you walk across the Pool of Tears you would GAIN stats inverse to what Withered normally removes from the unit! <bAutoAcquire> - As soon as the Pre-Reqs are met, the Promotion will be applied to the unit. That means the moment it would normally ask you to select a promotion for your new level (unless you flagged it bNoXP as well), or as soon as you get enough gold, it will steal that from you and apply the promotion. Of course, if the Promotion doesn't actually cost anything, then it is just free and instant (and unaviodable) <bMustMaintain> - If the unit ever fails to maintain the Pre-Reqs for acquiring the Promotion (access to Resources, appropriate PreReqPromotions, MaxAge...) then the promotion is removed at the start of the next turn. The only PreReqs which are ignored would be having XP or Gold to spend on the Promotion. <bNoXP> - The Promotion will not require XP to gain, the Unit will not gain a Level, nor Heal, upon selecting to take the promotion <NewName> - Replaces the Unit's natural <Description> flag completely. You can still rename the unit and will wind up with something like "Sidar Killer (<NewName>)" instead of the normal "Sidar Killer (<Desc>)" Has been exposed to Python for manipulation as CyUnit.setNewName(STRING) and CyUnit.clearNewName() <CityBonuses> - SubTypes are <CityBonus> entries, subs of those listed below. Unlimited entries are allowed of any mix among the elements. Only those elements used need be included. Many more elements can easily be included in the list, these ones are just my initial thoughts for the setup bApplyEnemy - This City Bonus list will apply to Enemy Cities bApplyRival - This City Bonus list will apply to Rival Cities bApplySelf - This Bonus list applies to your own Cities bApplyTeam - This bonus list applies to your teamates' cities (but not your own, must set previous tag for that) fCulture - Will modify the Culture gain (for the City Owner only) of the target Cities. If the culture of the target goes below 0 for the owner, then it will begin to insert culture for the Unit Owner into the city. In the odd cases where the unit and city belong to the same player, it will begin to insert Barbarian Culture instead fDefense - Adjusts the Defense Bonus of the City Tile fDiplo - Modifies relations with the Owner of the City each turn that the unit remains in range. This is meant to be set as a balancing factor primarily, but has plenty of uses fFood - Modifies the food gained each turn in the city fFreeXP - Modifies free XP granted to all Units built in the City fGold - Will transfer gold between Unit owner and City Owner each turn, or simply add/remove gold from the treasury if Owners are the same fGPP - Adds/removes untyped GPP to the Cities pool fHappy - Modifies the number of Happiness/Anger in the City fHealth - Modifies the number of Health/Disease in the City fProduction - Modifies Cities Production per turn fTradeRoutes - Changes the Number of Trade Routes the City has Available iBonusRange Sets the range of effect for this Bonus List, Range is by Squares radiating out from the unit (so 0 means current tile only, 1 means 9 tiles total) fDecayRate - Modification to all nonzero values listed in this Bonus List for every tile between the unit and the City being affected <PrereqLevel> - Sets a Level Requirement for Gaining a Promotion. If Negative, makes the Promotion unavailable for gaining by XP (so PreReqTech NEVER is no longer needed). Main benefit of blocking promotions this way instead of through TECH_NEVER is that it will actually display right on the promotion that you cannot gain it via XP. <PrereqMinAge> - Sets a Number of Turns that the Unit must have existed to gain the Promotion. Modified by Gamespeed (300% for Marathon, 150% for Epic, 67% for Quick. <iGrowthPercent> variable for custom speeds) <PrereqMaxAge> - Maximum Age by which a Promotion must be gained. Inspired by the MustMaintain tag as a modification to MinAge, it is meant primarily for removing promotions after some period. But can also simulate "Can't Teach an Old Dog New Tricks" type of behavior, or when set to 1 & Combined with AutoAcquire it can be used to simulate FreePromotion Tags, but only after certain other conditions are met (like the Nightmare Promotion if you have access to Nightmare Resources. That can be done by setting bAutoAcquire = 1 & iMaxAge = 1) <PrereqUnits> - Multiple entries allowed list of Unit Types required to gain a promotion <PrereqReligions> - Multiple entries allowed list of Religion Types required to gain a promotion <PrereqCivilizations> - Multiple entries allowed list of Civilization Types required to gain a promotion <PrereqCivicORs> - Multiple entries allowed list of Civic Types required to gain a promotion <PrereqTechANDs> - Multiple entries allowed list of Tech Types required to gain a promotion, all are required <PrereqTechORs> - Multiple entries allowed list of Tech Types required to gain a promotion, at least one from the list is required <PrereqAlignments> - Multiple entries allowed list of Alignment Types required to gain a promotion, base Good/Neut/Evil right now, no support for Broader Alignments fine-tuning <PrereqTier> - Tier required to gain a promotion <PrereqTerrains> - Multiple entries allowed list of Terrain Types required on TIle to gain a promotion <PrereqImprovements> - Multiple entries allowed list of Improvement Types required on Tile to gain a promotion <PrereqFeatures> - Multiple entries allowed list of Feature Types required on Tile to gain a promotion <PrereqCorporations> - Multiple entries allowed list of Corporation Types required to gain a promotion (have that Guild in any city) <PrereqBuildingANDs> - Multiple entries allowed list of Building Types required to gain a promotion, all are required in current City <PrereqBuildingORs> - Multiple entries allowed list of Building Types required to gain a promotion, at least one from the list is required in current City <PrereqBonusANDs> - Multiple entries allowed list of Bonus Types required to gain a promotion, all are required <PrereqBonusORs> - Multiple entries allowed list of Bonus Types required to gain a promotion, at least one from the list is required <PrereqTraits> - Multiple entries allowed list of Trait Types required to gain a promotion Locality Series - These 5 are individual tags, but follow a common theme and are essentially linked to each other. If none of these are set, then things work as normal and the territory the unit is in will be ignored. However, if any one of these 5 are set, then at least 1 of them must be satisfied for the promotion to be available. <PrereqInBorderEnemy> - Available when in the Cultural Borders of someone whom you are at war with <PrereqInBorderNone> - Available when outside of all Cultural Borders <PrereqInBorderRival> - Available when in the Cultural borders of someone whom you are not at war with, nor share a team with <PrereqInBorderSelf> - Available when inside your own borders <PrereqInBorderTeam> - Available when insde the Cultural Borders of a Teammate, but not yourself <PrereqEventANDs> - Multiple entries allowed list of Event Types required to gain a promotion, all are required <PrereqEventORs> - Multiple entries allowed list of Event Types required to gain a promotion, at least one from the list is required <PrereqFeatANDs> - Multiple entries allowed list of Feat Types required to gain a promotion, all are required <PrereqFeatORs> - Multiple entries allowed list of Feat Types required to gain a promotion, at least one from the list is required <PrereqFeatNOTs> - Multiple entries allowed list of Feat Types required UNCOPLETE to gain a promotion, all entries must be uncomplete <iExtraDropRange> - Grants the Unit a Paradrop Range (Personal Teleporting capability), or adds to an already existing range. <iAirCombatLimitBoost> - Enhances (or reduces if negative) the Air Combat Limit of the Unit. <iAirCombat> - Grants the unit an AirCombat value so they can make ranged attacks CIV4LeaderHeadInfos.xml These 4 tags are all added to facilitate the CityBonuses field fProximityDiplo from PromotionInfos <iProximityMemoryDecayDelay> - Defines a number of turns which must pass without any new adjustments via fProximityDiplo before the Attitude adjustment will begin to decay. <fProximityMemoryDecaySpeed> - Defines a minimum speed of decay per turn (after the delay) for the Diplomacy Value <iProximityMemoryDecayRand> - Random Cap on a Percentile bonus to the DecaySpeed per turn (so if set to 100 the decay rate can be up to twice the minimum per turn) <iProximityMemoryLimit> - Maximum value the fProximityDiplo Bonus can affect this Leader by (both Positive and Negative) CIV4ProjectInfos.xml <iRevealAllBonuses> - Number of additional Turns for which the Player's Team will be able to see all resources on the map (Does not allow connection of the resources for City Trade, still need the appropriate tech - if any - to accomplish that). Duration modified by Gamespeed <iSeeInvisible> - Number of additional Turns for which the Player's Team will be able to see all Invisible Units in their Territory (Empyrean Shrine Effect). Duration modified by Gamespeed <iHideUnits> - Number of additional Turns for which the Player's Team will be able to hide all their Units inside Culture Borders but not Cities (Nox Noctis Effect). Duration modified by Gamespeed <bPrereqWar> - Requires that you are in an active War to start the Ritual <iBlockBonuses> - Causes all Bonuses to become Obsolete for anyone whom you are currently at war with <iRestoreBonuses> - Decreases the level of BlockBonuses affecting your team <bPrereqBlockBonuses> - Requires that you have a non-zero BlockBonus Count to start the Ritual CIV4SpellInfos.xml <bSummonMaster> - If the unit was summoned (Has a Master Unit), it will call that Master Unit to the current tile (if the Master Unit is allowed to be on that tile). AI has a fairly solid grasp of how to use this function to keep the Master Unit alive and make strikes of opportunity. CIV4GoodyInfos.xml <iScience>, <iScienceRand1>, <iScienceRand2> - Functions like iGold and partners to grant research toward current Tech being researched. These values are Percentages, the first is guaranteed and each of the others are random caps. So you could set iScienceRand1 to 100 for a completely random addition of Research, or set iScience to 100 for a guaranteed finishing of current research. These values can be negative as well as positive, and will never provide overflow research. Percentage is modified by gamespeed, so on Marathon games you will gain 1/3 of the listed percent, and on Quick games you will gain ~130% the listed. Thus to get a free Tech (just started researching it) on Marathon, you would need a Science value of 300 after both Randoms, but to get a free tech on quick you would only need a 67 after both randoms. CIV4TraitInfos.xml <iModReligionSpreadChance> - Percentage Modification to chances of Religion spreading (passive only, pending AI understanding for Disciples). Value can be positive (100 means twice as likely) or negative (-100 means will not spread). A value below -100 will prevent Holy Cities from being founded by the player should they discover a Tech capable of Founding a Religion. So far the Holy City will not instantly spawn for the next player to acquire the technology, but it will show up naturally at some point. CIV4FeatInfos.xml Moved all Feats out of the DLL and into the XML. This is done with a file in the Assets/BasicInfos folder. Current fields are just the type of Feat and a Description. Descriptions are intended to be used when a Feat is made a Prereq Item for a Promotion. Added Religious HUDs as a GameOption. Also includes new Non-Religion HUD courtesy of seZereth Added a Gameoption to disable Unit Building/Upgrading Level Requirements for the AI Added a Gameoption to enable Broader Alignments New Widget Type defined for Tooltips on Armageddon Counter and for Tooltips+Action on Slave/Master buttons Modifications Borrowed from Other Users: Spoiler Incorporated Mods : Dom Pedro's Food from Animals New Fields to allow Yields and Commerces to be gained by Combat Basic MODCOMP provided fields in Traits so that all your units can gain when they win, and fields in Units so that when the unit loses the victor gains. My Revisions make Promotions able to allow for either one, though Traits are still the only place where you can get a percentage modifier. New Default screen by seZereth Grey Fox's Broader Alignments (With modifications by Vehem) - Places Alignment on a Sliding scale setup so that more than religion can affect your standings. No graphical inclusion so far (Alignment Meter), nor any feedback on precise alignment score. Includes PyPostCombat Win & Lose functions and a SpellRange Modification tag for Promotions Decimal Happiness Rates by Vehem - Feature, Improvement, and Garrison Happiness can now be non-integer increments (the XML still needs to be an integer, but the value in divided by 100 for processing in the code & Display) Growth Control by Vehem - City Gaining/Losing of Population based on Food exposed to Python Jean Elcard's FlavourMod 2 - Sets Start Locations to be flavorfully appropriate for each Civilization. Gameoption.