Charge in it's current form is pretty useless, in my opinion. You usually can't reach your opponent (on foot, without tireless march at least) on turn 1 of combat, and simply end up isolated from your accompanying troops on the far end of the battlefield in first strike range of your AI opponent. Wouldn't it be better if you could charge... when it was a good time to charge? These changes allow a unit to charge (on demand) once every 5 turns. In my experience... most combats are over in 5 turns, but this is easily changed by changing the "Cooldown" number in the charge spell below to something much higher.
I simply replaced the two charge entries in CoreAbilites.xml to:
<AbilityBonus InternalName="ChargeAbility">
<AbilityBonusType>Unit_Design</AbilityBonusType>
<AbilityBonusOption InternalName="Charge">
<DisplayName>Charge</DisplayName>
<Description>+3 Moves and +3 Attack for one turn</Description>
<Icon>Ability_Charge_Icon.png</Icon>
<GameModifier>
<ModType>Unit</ModType>
<Attribute>UnlockCombatAbility</Attribute>
<StrVal>Charge</StrVal>
<Provides>+3 Moves and +3 Attack for one turn</Provides>
</GameModifier>
<AdditionalTrainingTurns>20</AdditionalTrainingTurns>
<HideWhenUpgraded>0</HideWhenUpgraded>
<Type>Aggressive</Type>
<AIData AIPersonality="AI_General">
<AIPriority>5</AIPriority>
</AIData>
</AbilityBonusOption>
</AbilityBonus>
<AbilityBonus InternalName="ChargeAbility_Level">
<AbilityBonusType>Unit_Level</AbilityBonusType>
<AbilityBonusOption InternalName="Charge_Level">
<DisplayName>Charge</DisplayName>
<Description>+3 Moves and +3 Attack for one turn</Description>
<Icon>Ability_Charge_Icon.png</Icon>
<GameModifier>
<ModType>Unit</ModType>
<Attribute>UnlockCombatAbility</Attribute>
<StrVal>Charge</StrVal>
<Provides>+3 Moves and +3 Attack for one turn</Provides>
</GameModifier>
<HideWhenUpgraded>0</HideWhenUpgraded>
<Likelihood>100</Likelihood>
<RarityDisplay>Rare</RarityDisplay>
<Type>Aggressive</Type>
<Prereq>
<Type>AbilityBonusOption</Type>
<Target>Unit</Target>
<Attribute>PathOfTheAssassin</Attribute>
</Prereq>
<AIData AIPersonality="AI_General">
<AIPriority>5</AIPriority>
</AIData>
</AbilityBonusOption>
</AbilityBonus>
and added to CoreSpells.xml (hit enter to create an empty line just after </DataChecksum> and insert the following):
<SpellDef InternalName="Charge">
<DisplayName>Charge</DisplayName>
<Description>+3 Moves and +3 Attack for two turns</Description>
<Image>T_Berzerk_Painting.png</Image>
<IconFG>T_Berzerk_Icon.png</IconFG>
<IconBG>T_Berzerk_Icon_BG.png</IconBG>
<IconColor>237,79,48</IconColor>
<Cooldown>5</Cooldown>
<CanStack>0</CanStack>
<SpellBookSortCategory>Unit</SpellBookSortCategory>
<SpellBookSortSubCategory>UnitEnchantment</SpellBookSortSubCategory>
<SpellType>Tactical</SpellType>
<SpellClass>Defensive</SpellClass>
<SpellSubClass>Buff</SpellSubClass>
<SpellTargetType>Self</SpellTargetType>
<IsCastable>0</IsCastable>
<IsSpecialAbility>1</IsSpecialAbility>
<GameModifier>
<ModType>Unit</ModType>
<Attribute>AdjustUnitStat</Attribute>
<StrVal>UnitStat_Attack_Boost</StrVal>
<Value>3</Value>
<Provides>+3 Attack for two turns</Provides>
<Duration>2</Duration>
</GameModifier>
<GameModifier>
<ModType>Unit</ModType>
<Attribute>AdjustUnitStat</Attribute>
<StrVal>UnitStat_Moves</StrVal>
<Value>3</Value>
<Provides>+3 Moves for two turns</Provides>
<Duration>2</Duration>
</GameModifier>
<AIData AIPersonality="AI_General">
<AIPriority>10</AIPriority>
</AIData>
<HitSoundFX>Spell_Beserk_01</HitSoundFX>
<SpellDefEffect>
<EffectName>T_Berserk_Particle</EffectName>
<LocalPosition>0,35,0</LocalPosition>
<EffectScale>0.7</EffectScale>
<EffectDelay>0</EffectDelay>
<SnapToTerrain>1</SnapToTerrain>
</SpellDefEffect>
</SpellDef>
I have tested the trained unit version successfully already, and anticipate the champion version will work as well (since it's very similar in implementation to other champion "on use" abilities). This might actually make charge more on par with other trained unit abilities due to the first strike nature this can grant front line troops! Such an easy fix too. Wouldn't it be great if the vanilla game worked this way?