This modcomp makes it possible for units to receive promotions in non-ordinary way: any unit has a chanse to get free promotion depending on how well and in what conditions it fights.
take a look at this picture:
Jaguar Warrior has promoted to Cover. You can also notice that one of barbarian archers promoted to City Garrison I.
How does it work?
In every battle a unit has a chanse of getting a free promotion. Tougher battle it fights, higher chanse for it to get promotion. Chanse of it equals to (100-winning probability). E.g. if you have 50% chanse to win a battle, you will have 50% chanse of promotion as you won it. Also there is a bonus for saved HP. saved HP bonus = ((hp after battle)/(hp before battle))^2: +100% if you lose 0% hp, +25% if you lose 50% etc.
Type of free promotion is determined by battle conditions and promotions your unit already has. E.g. for Jaguar Warrior on the picture above, it's possible to get either cover, or city raider I, or guerilla III (if he had guerilla I and II already), or Amphibious (if he had combat II), or Combat II (if he had combat I).
i hope you understand my english
my code in source file (CvUnit.cpp affected only) is marked with //@mod OP comment.