Extra Traits for C2C

Which would be a better reflection of the Aggressive Trait (in addition to Combat I), a +15% Attack, -10% Defense Promoor a carbon copy of Combat I (+10% Combat Modifier) which means units would end up starting for Aggressive Trait Leaders with +20% Combat all around?

Prefer the -10% defence but im not sure about it being upgradeable. I like it mainly because its interesting and adds to the gameplay.
 
I don't, but simply because Alexander is 'aggressive' and that accurately describes his strategic and political views... but on the battlefield he was a defensive mastermind. His victory in asia (I don't recall the name of the battle and am too full of turkey research it), was at horrible odds and due to both a bit of luck (rare rain that soften the ground that reduced the effectiveness of the opponents ground planted bows); and defensive genius plan that is still tought in West Point to this day.
 
That's cool, never knew that.
What's a ground planted bow though. The only thing I can think of is an Ballista.
That's not usually used on people though. For obvious reasons. :)
 
Just found this i have NO idea if any or all of it is good or doesnt mean anything??

Spoiler :
Code:
## CvWonderEventManager
## This file is part of Civilization IV Sanguo196AD mod.

from CvPythonExtensions import *

import CvScreensInterface

import CvUtil
import PyHelpers
import Popup as PyPopup

import sys

gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
PyInfo = PyHelpers.PyInfo

# globals
###################################################
class CvTraitEventManager:
	def __init__(self,  eventManager):
		# private
		
		self.eventManager = eventManager
		
		eventManager.addEventHandler("combatResult", self.onCombatResult)
		eventManager.addEventHandler("religionFounded", self.onReligionFounded)
		eventManager.addEventHandler("cityBuilt", self.onCityBuilt)
		eventManager.addEventHandler("cityAcquiredAndKept", self.onCityAcquiredAndKept)
		eventManager.addEventHandler("unitPromoted", self.onUnitPromoted)
		eventManager.addEventHandler("cityDoTurn", self.onCityDoTurn)

#################### ON EVENTS ######################

	#### Unique Leader Trait, start, added by poyuzhe 11.15.08
	## TRAIT_GENERAL ##
	def onCombatResult(self, argsList):
		'Combat Result'
		pWinner,pLoser = argsList
		
		pWinnerPlayer = gc.getPlayer(pWinner.getOwner())

		if pWinnerPlayer.hasTrait(gc.getInfoTypeForString("TRAIT_GENERAL")):

			if CyGame().getSorenRandNum(100, "Random Unit Allegience Number.") > 20:
				return

			winnerCombatType = pWinner.getUnitCombatType()
			loserCombatType = pLoser.getUnitCombatType()
			winnerUnitType = pWinner.getUnitType()
			
			unitList = [gc.getInfoTypeForString("UNIT_MACEMAN"),
				    gc.getInfoTypeForString("UNIT_MACEMAN_1"),
				    gc.getInfoTypeForString("UNIT_MACEMAN_2")]
			
			if winnerCombatType != gc.getInfoTypeForString("UNITCOMBAT_NAVAL"):
				if winnerUnitType not in unitList:
					return
				elif pWinner.plot().isWater() and pLoser.getUnitType() not in unitList:
					return
				elif loserCombatType == gc.getInfoTypeForString("UNITCOMBAT_NAVAL"):
					return
								
			objNewUnit = pWinnerPlayer.initUnit(pLoser.getUnitType(),  pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			
			objNewUnit.finishMoves()
			objNewUnit.setDamage(99, False)
			objNewUnit.setExperience(pLoser.getExperience(), -1)
			objNewUnit.setLevel(pLoser.getLevel())

			for iPromotion in range(gc.getNumPromotionInfos()):
				if (pLoser.isHasPromotion(iPromotion)):
					objNewUnit.setHasPromotion(iPromotion, True)

	## TRAIT_IRON_WILL ##
	def onReligionFounded(self, argsList):
		'Religion Founded'
		iReligion, iFounder = argsList

		iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
		if iReligion == iGoodReligion:
			for iLoopPlayer in range(gc.getMAX_CIV_PLAYERS()):
				loopPlayer = gc.getPlayer(iLoopPlayer)
				iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
				if loopPlayer.isAlive() and not loopPlayer.isMinorCiv() and not loopPlayer.isBarbarian():
					if loopPlayer.hasTrait(iGoodTrait):
						iCivicOption = gc.getInfoTypeForString("CIVICOPTION_RELIGION")
						if loopPlayer.getCivics(iCivicOption) == gc.getInfoTypeForString("CIVIC_PAGANISM"):
							loopPlayer.setCivics(iCivicOption, gc.getInfoTypeForString("CIVIC_THEOCRACY"))
						loopPlayer.setLastStateReligion(iGoodReligion)

						(loopCity, iter) = loopPlayer.firstCity(false)
						while(loopCity):
							if CyGame().getSorenRandNum(100, "Chance to get Religion") > 50:
								loopCity.setHasReligion(iGoodReligion, True, True, True)
							(loopCity, iter) = loopPlayer.nextCity(iter, false)

	def onCityBuilt(self, argsList):
		'City Built'
		city = argsList[0]

		pPlayer = gc.getPlayer(city.getOwner())
		iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
		if pPlayer.hasTrait(iGoodTrait):
			iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
			if pPlayer.getStateReligion() == iGoodReligion:
				city.setHasReligion(iGoodReligion, True, True, True)

	def onCityAcquiredAndKept(self, argsList):
		'City Acquired and Kept'
		iOwner,pCity = argsList

		pPlayer = gc.getPlayer(iOwner)
		iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
		if pPlayer.hasTrait(iGoodTrait):
			iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
			if pPlayer.getStateReligion() == iGoodReligion:
				if pCity.isHasReligion(iGoodReligion) == 0:
					pCity.setHasReligion(iGoodReligion, True, True, True)

			else:
				if pCity.isHasReligion(iGoodReligion) == 1:
					if pPlayer.canConvert(iGoodReligion):
						pPlayer.setLastStateReligion(iGoodReligion)
						
	## TRAIT_STRONG_RIDER ##
	def onUnitPromoted(self, argsList):
		'Unit Promoted'
		pUnit, iPromotion = argsList

		if gc.getPlayer(pUnit.getOwner()).hasTrait(gc.getInfoTypeForString("TRAIT_STRONG_RIDER")):
			if pUnit.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_MOUNTED"):
				if pUnit.getLevel() >= 4:
					pUnit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_BLITZ"), True)

	## TRAIT_ASPIRATION ##
	def onCityDoTurn(self, argsList):
		'City Production'
		pCity = argsList[0]
		iPlayer = argsList[1]

		if not pCity.isWeLoveTheKingDay():
			pPlayer = gc.getPlayer(iPlayer)
			if pPlayer.hasTrait(gc.getInfoTypeForString("TRAIT_ASPIRATION")):
				if not pCity.isOccupation() and pCity.angryPopulation(0) <= 0 and pCity.healthRate(False, 0) == 0:
					if CyGame().getSorenRandNum(100, "Do We Love The King?") > 75:
						pCity.setWeLoveTheKingDay(True)
	#### Unique Leader Trait, End
								    
#################### TRIGGERED EVENTS ##################
	
#################### AUXILIARY METHOD ##################
		
	def doDebug(self,text):
		CyInterface().addMessage(0, False, 0, '#DEBUG#  ' + text, "", 0, "", CyGame().getReplayMessageColor(0), 0, 0, False, False)
    
	def doPopup(self, text):                        
		popup = PyPopup.PyPopup()
		popup.setBodyString(text)
		popup.launch()
 
That's cool, never knew that.
What's a ground planted bow though. The only thing I can think of is an Ballista.
That's not usually used on people though. For obvious reasons. :)

It was the Battle Issus

The Persians had very large bows that required one end of them to be placed on the ground to provide the additional leverage and stability needed to use the bows.
*I'm going off memory from a History Channel show, so I might have gotten rain/bow thing mixed up with another battle of his against the Persians... but I think I'm right.
 
Just found this i have NO idea if any or all of it is good or doesnt mean anything??

Spoiler :
Code:
## CvWonderEventManager
## This file is part of Civilization IV Sanguo196AD mod.

from CvPythonExtensions import *

import CvScreensInterface

import CvUtil
import PyHelpers
import Popup as PyPopup

import sys

gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
PyInfo = PyHelpers.PyInfo

# globals
###################################################
class CvTraitEventManager:
	def __init__(self,  eventManager):
		# private
		
		self.eventManager = eventManager
		
		eventManager.addEventHandler("combatResult", self.onCombatResult)
		eventManager.addEventHandler("religionFounded", self.onReligionFounded)
		eventManager.addEventHandler("cityBuilt", self.onCityBuilt)
		eventManager.addEventHandler("cityAcquiredAndKept", self.onCityAcquiredAndKept)
		eventManager.addEventHandler("unitPromoted", self.onUnitPromoted)
		eventManager.addEventHandler("cityDoTurn", self.onCityDoTurn)

#################### ON EVENTS ######################

	#### Unique Leader Trait, start, added by poyuzhe 11.15.08
	## TRAIT_GENERAL ##
	def onCombatResult(self, argsList):
		'Combat Result'
		pWinner,pLoser = argsList
		
		pWinnerPlayer = gc.getPlayer(pWinner.getOwner())

		if pWinnerPlayer.hasTrait(gc.getInfoTypeForString("TRAIT_GENERAL")):

			if CyGame().getSorenRandNum(100, "Random Unit Allegience Number.") > 20:
				return

			winnerCombatType = pWinner.getUnitCombatType()
			loserCombatType = pLoser.getUnitCombatType()
			winnerUnitType = pWinner.getUnitType()
			
			unitList = [gc.getInfoTypeForString("UNIT_MACEMAN"),
				    gc.getInfoTypeForString("UNIT_MACEMAN_1"),
				    gc.getInfoTypeForString("UNIT_MACEMAN_2")]
			
			if winnerCombatType != gc.getInfoTypeForString("UNITCOMBAT_NAVAL"):
				if winnerUnitType not in unitList:
					return
				elif pWinner.plot().isWater() and pLoser.getUnitType() not in unitList:
					return
				elif loserCombatType == gc.getInfoTypeForString("UNITCOMBAT_NAVAL"):
					return
								
			objNewUnit = pWinnerPlayer.initUnit(pLoser.getUnitType(),  pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			
			objNewUnit.finishMoves()
			objNewUnit.setDamage(99, False)
			objNewUnit.setExperience(pLoser.getExperience(), -1)
			objNewUnit.setLevel(pLoser.getLevel())

			for iPromotion in range(gc.getNumPromotionInfos()):
				if (pLoser.isHasPromotion(iPromotion)):
					objNewUnit.setHasPromotion(iPromotion, True)

	## TRAIT_IRON_WILL ##
	def onReligionFounded(self, argsList):
		'Religion Founded'
		iReligion, iFounder = argsList

		iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
		if iReligion == iGoodReligion:
			for iLoopPlayer in range(gc.getMAX_CIV_PLAYERS()):
				loopPlayer = gc.getPlayer(iLoopPlayer)
				iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
				if loopPlayer.isAlive() and not loopPlayer.isMinorCiv() and not loopPlayer.isBarbarian():
					if loopPlayer.hasTrait(iGoodTrait):
						iCivicOption = gc.getInfoTypeForString("CIVICOPTION_RELIGION")
						if loopPlayer.getCivics(iCivicOption) == gc.getInfoTypeForString("CIVIC_PAGANISM"):
							loopPlayer.setCivics(iCivicOption, gc.getInfoTypeForString("CIVIC_THEOCRACY"))
						loopPlayer.setLastStateReligion(iGoodReligion)

						(loopCity, iter) = loopPlayer.firstCity(false)
						while(loopCity):
							if CyGame().getSorenRandNum(100, "Chance to get Religion") > 50:
								loopCity.setHasReligion(iGoodReligion, True, True, True)
							(loopCity, iter) = loopPlayer.nextCity(iter, false)

	def onCityBuilt(self, argsList):
		'City Built'
		city = argsList[0]

		pPlayer = gc.getPlayer(city.getOwner())
		iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
		if pPlayer.hasTrait(iGoodTrait):
			iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
			if pPlayer.getStateReligion() == iGoodReligion:
				city.setHasReligion(iGoodReligion, True, True, True)

	def onCityAcquiredAndKept(self, argsList):
		'City Acquired and Kept'
		iOwner,pCity = argsList

		pPlayer = gc.getPlayer(iOwner)
		iGoodTrait = gc.getInfoTypeForString("TRAIT_IRON_WILL")
		if pPlayer.hasTrait(iGoodTrait):
			iGoodReligion = gc.getInfoTypeForString("RELIGION_REVIVAL")
			if pPlayer.getStateReligion() == iGoodReligion:
				if pCity.isHasReligion(iGoodReligion) == 0:
					pCity.setHasReligion(iGoodReligion, True, True, True)

			else:
				if pCity.isHasReligion(iGoodReligion) == 1:
					if pPlayer.canConvert(iGoodReligion):
						pPlayer.setLastStateReligion(iGoodReligion)
						
	## TRAIT_STRONG_RIDER ##
	def onUnitPromoted(self, argsList):
		'Unit Promoted'
		pUnit, iPromotion = argsList

		if gc.getPlayer(pUnit.getOwner()).hasTrait(gc.getInfoTypeForString("TRAIT_STRONG_RIDER")):
			if pUnit.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_MOUNTED"):
				if pUnit.getLevel() >= 4:
					pUnit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_BLITZ"), True)

	## TRAIT_ASPIRATION ##
	def onCityDoTurn(self, argsList):
		'City Production'
		pCity = argsList[0]
		iPlayer = argsList[1]

		if not pCity.isWeLoveTheKingDay():
			pPlayer = gc.getPlayer(iPlayer)
			if pPlayer.hasTrait(gc.getInfoTypeForString("TRAIT_ASPIRATION")):
				if not pCity.isOccupation() and pCity.angryPopulation(0) <= 0 and pCity.healthRate(False, 0) == 0:
					if CyGame().getSorenRandNum(100, "Do We Love The King?") > 75:
						pCity.setWeLoveTheKingDay(True)
	#### Unique Leader Trait, End
								    
#################### TRIGGERED EVENTS ##################
	
#################### AUXILIARY METHOD ##################
		
	def doDebug(self,text):
		CyInterface().addMessage(0, False, 0, '#DEBUG#  ' + text, "", 0, "", CyGame().getReplayMessageColor(0), 0, 0, False, False)
    
	def doPopup(self, text):                        
		popup = PyPopup.PyPopup()
		popup.setBodyString(text)
		popup.launch()
Well... its some interesting effects for some unique leader traits, that's for sure!
 
Neat. Thanks for the info, Taxman.
And since I can't read programming languages, and I left my Babble-fish on Zaphoid Beebrebrox's homeworld, I can't figure out what these new trait ideas Thunderbird mentions are from. :)
 
Hopefully ill get some time early this week to do the traits, sunday afternoon here in aus so not long :)
Is that aggressive promo done?
 
I'll see what I can do with the graphic tomorrow. I'm stuck as all hell on the programming - completely stumped to the point I believe I'll need assistance or be unable to continue at all. So I might as well make myself useful somehow...
 
I'm still wanting to test the new traits, so far many have said that they like them, and aside from a couple balance issues I like the way they are as well. I'll be changing Aggressive tomorrow in all likelyhood.
 
I'm still wanting to test the new traits, so far many have said that they like them, and aside from a couple balance issues I like the way they are as well. I'll be changing Aggressive tomorrow in all likelihood.

Just dont get over "aggressive" like last time pls, check with Sgtslick. thx
 
I'm still wanting to test the new traits, so far many have said that they like them, and aside from a couple balance issues I like the way they are as well. I'll be changing Aggressive tomorrow in all likelyhood.

Stop editing these files in the svn, your no longer making any changes to them directly. Your 'new' traits as you put it aren't staying for much longer so I wouldn't waste any more time on them if I was you.
 
I haven't pushed it to the SVN yet but the current project to add a War Weariness modifier to traits seems to be finished now. Just gotta test and I can commit but it'll have to wait till tomorrow.

Also developed AttackCombatModifierChange and DefenseCombatModifierChange for promos so we can actually manipulate those aspects for units and promos. The tie in here should be clear. That IS on the SVN now.

My next mini-project then is to work up an art for the Aggressive Promo (I'm thinking the Ares astrological symbol...)

RE: the Attack and Defense modifiers for Aggressive Promo and the comment against as mentioned above regarding one historically genius defense. That battle did take place a long way down the campaign trail with highly experienced military forces. Alexander was a master invader and yes, was capable of staging a brilliant defense as well, but that defense was staged by units that would've had a lot of experience by that point and would've easily overcome the slight penalty to defense here, which isn't actually a penalty.

The negative defense just negates the benefit from the free Combat I making the Aggressive leader's units pretty much equivalent to any other leader's when it comes to defense with the exception that they are more likely to fight, more likely to survive initial conflicts, and thus, as a result of leveling, more likely to be a bit better at any kind of warfare strategy, including defense!

One could argue that the aggressive leader's units would suffer from a maximum defensive value of 10% less than the standard unit as Combat I has already been taken to attain this counteraction but I don't think that's going to be much of a problem for the Aggressive leader.

We can't always argue for traits to follow such lines of thinking to reflect the histories of their primary exemplary leaders. Lincoln was also a master strategist but we don't see him here with any warfare based traits in the least. I could probably come up with hundreds more examples along this line.

So while I can empathize with the point you made there, I still favor the strategic intricacy of challenging those who play aggressive leaders to play... well... aggressively on the battlefield so as to attain the greatest impact from their trait's benefits.


BTW, SgtSlick, to work with you effectively I REALLY need to know if you wanted any other tags for this trait!!! What will be the final workup for Aggressive according to YOUR plans at this time?

If I can get that we can move on to a review of the Aggricultural trait!
 
BTW, SgtSlick, to work with you effectively I REALLY need to know if you wanted any other tags for this trait!!! What will be the final workup for Aggressive according to YOUR plans at this time?

If I can get that we can move on to a review of the Aggricultural trait!

I was thinking a ai attitude modifier to be -1 for aggressive, think its on that list of tags. Nothing else really, i might reduce crime a tad and buff gg's.
It'd be great just to get a couple of the new tags. At the moment, been trying to implement negatives to be used instead of civic maintenance but its just impossible without repeating myself 10 times. Like having them all have -1 happy -1 health or something stupid like that, if you know what I mean. So kinda been stuck as to what to do in this regard.

War weariness I will use as a negative for humanitarian, creative, scientific, philosophical etc so that will fill a big hole thanks! Like one or two others and you you could put them on the back burner for awhile if you wanted.

How about these as priority:
<ElementType name="SpecialistYieldChange" content="eltOnly">
Spoiler :
<element type="SpecialistType"/>
<element type="YieldChanges"/>
</ElementType>
<ElementType name="SpecialistYieldChanges" content="eltOnly">
<element type="SpecialistYieldChange" minOccurs="0" maxOccurs="*"/>
</ElementType>

<ElementType name="iImprovementUpgradeRateModifier" content="textOnly" dt:type="int"/>
<ElementType name="iWorkerSpeedModifier" content="textOnly" dt:type="int"/>
<ElementType name="iMaxConscript" content="textOnly" dt:type="int"/>
<ElementType name="iDistanceMaintenanceModifier" content="textOnly" dt:type="int"/>

Just maybe pick the easiest to do, I think "iMaxConscript" would be lower on priority actually since we have war weariness already.
 
Oh and can you also instruct me how to implement these new tags in the traits xml - such as war weariness, how should it look and where should it go in the order of things. If I can get one more tag perhaps and these instructions (so I don't cause errors) i'd have them all done by tomorrow or thursday.

Then it will be easier for you to get a sense of things and to help balance and work out the final draft for each trait etc :)
We can continue to refine each trait with things such as individual promotions and more unique benefits and drawbacks for as long as we like, but for now, I just want to be able to get them in and be relatively 'whole'.

I have other long term goals too (in order of priority):
- Finalising balance & uniqueness. (I was thinking of doing some polls/survey to help with balance, such as which is the most powerful/weakest trait and why.
- Building Modifiers
- Trait descriptions / Names / Strategy guides
- Leader placement ; making sure they're historically accurate (within reason).
- Traits somewhat evolving over time, becoming slowly even more unique, through randomness and achievements. (I'd definately need your help with this one :))

* Another general question I wanted to ask, was thinking about.. was giving industrious pollution as a negative - what do you guys think would be a good property tag for this. Like what would be a fair amount of pollution - (generally negatives will need to be balanced against each other and weighed up with reference also to the strength of the trait).

I think I prefer using a tag that doesn't 'kick in' until your already polluting a certain amount. I don't like having these exist and slowing growing as a problem as early as prehistoric/ancient era. So I was thinking it only kicks in after a certain amount of pollution is reached and then would be quite severe.
 
I'll have that War Weariness tag on the SVN with my next update which should be coming up in a half hour or so.

To get the right order on tags you should always refer to the schema. For traits in particular, the core schema being C2C_CIV4CivilizationsSchema.xml. Open and scroll down to find:
Spoiler :
Code:
	<ElementType name="TraitInfo" content="eltOnly">
		<element type="Type"/>
<!-- XMLCOPY				02/20/2008			MRGENIE		-->
		<element type="bTypeDependency" minOccurs="0"/>
		<element type="AndDependencyTypes" minOccurs="0"/>
		<element type="OrDependencyTypes" minOccurs="0"/>
<!-- XMLCOPY				END					MRGENIE		-->
		<element type="Description" minOccurs="0"/>
		<element type="ShortDescription" minOccurs="0"/>
		<element type="Help" minOccurs="0"/>
		<element type="iHealth" minOccurs="0"/>
		<element type="iHappiness" minOccurs="0"/>
		<element type="iMaxAnarchy" minOccurs="0"/>
		<element type="iUpkeepModifier" minOccurs="0"/>
		<element type="iLevelExperienceModifier" minOccurs="0"/>
		<element type="iGreatPeopleRateModifier" minOccurs="0"/>
		<element type="iGreatGeneralRateModifier" minOccurs="0"/>
		<element type="iDomesticGreatGeneralRateModifier" minOccurs="0"/>
		<element type="iMaxGlobalBuildingProductionModifier" minOccurs="0"/>
		<element type="iMaxTeamBuildingProductionModifier" minOccurs="0"/>
		<element type="iMaxPlayerBuildingProductionModifier" minOccurs="0"/>
		<!-- Phungus Rev Trait Effects -->
		<element type="iRevIdxLocal" minOccurs="0"/>
		<element type="iRevIdxNational" minOccurs="0"/>
		<element type="iRevIdxDistanceModifier" minOccurs="0"/>
		<element type="iRevIdxHolyCityGood" minOccurs="0"/>
		<element type="iRevIdxHolyCityBad" minOccurs="0"/>
		<element type="fRevIdxNationalityMod" minOccurs="0"/>
		<element type="fRevIdxBadReligionMod" minOccurs="0"/>
		<element type="fRevIdxGoodReligionMod" minOccurs="0"/>
		<element type="bNonStateReligionCommerce" minOccurs="0"/>
		<element type="bUpgradeAnywhere" minOccurs="0"/>
		<!-- End Phungus Traits -->
		<element type="ExtraYieldThresholds" minOccurs="0"/>
		<element type="TradeYieldModifiers" minOccurs="0"/>
		<element type="CommerceChanges" minOccurs="0"/>
		<element type="CommerceModifiers" minOccurs="0"/>
		<element type="FreePromotions" minOccurs="0"/>
		<element type="FreePromotionUnitCombats" minOccurs="0"/>
		<!-- TB Trait Tags begin -->
		<element type="iWarWearinessAccumulationModifier" minOccurs="0"/>
		<!-- TB Trait Tags end -->
		<element type="PropertyManipulators" minOccurs="0"/>
	</ElementType>
Thus, you find the proper order of tags as displayed. Additionally, the NAME of the tag should be there too. Therefore, in this case, the tag would be expressed as:
<iWarWearinessAccumulationModifier>0</iWarWearinessAccumulationModifier>

This value acts exactly the same as the War Weariness tag under Civics (a percentage modifier to your own war weariness accumulated) thus 10 would be +10% war weariness incurred when at war while a -10 would be -10% war weariness incurred when at war.

I won't be able to do any more of them tonight but doing this one will make it faster to do others when I get to them.

Btw: @ls612:
I offer a compromise on the design of the Aggressive Promo. Since we'll eventually have a game option for All Positive/All Negative traits, we could easily design two versions of the Aggressive Promo to operate dependent on the setting of that option. Would make more sense to keep the all positive version at the simple +10% combat. But without that option being on, wouldn't it make more sense to have the mixed bag +15% attack, -10% defense values for the trait versions that have some negative value?

Anyhow, either way I'll try to get the graphic for you by the end of tomorrow.
 
The problem with that is that it makes the Culture Units that get Combat I less useful. If you want the Aggressive promotion to have the same stats as both combined then just edit the Aggressive promotion. In fact all traits should have their own unique promotions and not use existing promotions.
I wanted to respond here as well to help provide more of my own perspective.

I usually like to pick Aggressive simply because it gets my units a step through a lame prereq. Combat I is a horrible promotion in comparison to most in and of itself. 10% Combat bonus is next to meaningless on its own.

So if you want Aggressive to be the only promo being given by the Aggressive Trait, then it REALLY, imo, needs to be vastly better than a mere +10%. Under THIS concept, I'd suggest +20% Attack, +10% Defense (new tags allow these now.) I still wouldn't think the trait to be too great but it'd certainly make a more dangerous one and would probably be a bit better balanced to the benefit of the original Combat I.
 
Back
Top Bottom