Version 1 (modified by trac, 16 years ago) ( diff )

--

An entity with this trait can accumulate experience points (see Traits.Loot.XP) and eventually accumulate enough to gain a promotion. This basically replaces him with a more advanced version of the unit.

Only Basic and Advanced Infantry Citizen Soldiers and Cavalry Citizen Soldiers have this ability.

Example:

        <Traits>
  		<Promotion>
 			req="900"
 			newentity="bob"
  		</Promotion>
  	</Traits>

Req

BRIEF DESCRIPTION :: The number of Upgrade Points that the entity must accumulate in order to be promoted.

Generally this is 600 for Infantry and 900 for Cavalry.

An internal variable Traits.Promotion.Curr is initialised to zero when an entity has this property. It counts the number of XP that the entity has accumulated, and is reset to zero when the entity is promoted.

An internal variable Traits.Promotion.Rank also keeps track of the numeric rank of the entity.

  • 0: Default. Has no rank and will never have a rank (most units, gaia entities, etc).
  • 1: Basic. Units that can gain ranks start at this level.
  • 2: Advanced: First promotion.
  • 3: Ultimate: Second promotion.

NewEntity

BRIEF DESCRIPTION :: This is the entity name of the replacement entity this entity will become when the pre-requisites for transformation are met.

Note that this property does not need to be specified if the replacement entity uses the same naming convention of the current entity. For example, if NewEntity is not specified, entity name_b will be replaced with name_a, and name_a with name_e.

Notes: Experiential Upgrade System

Citizen Soldiers have the unique ability to gain ranks and become more powerful as they gain experience while 'surviving' in the game world. The reasons why we are doing this is the following:

  • ensures that the player's most basic units can still serve a purpose in the late game.
  • attachment to individual units to encourage the player to avoid 'cannon fodder' military tactics
  • minimise the number of 'upgrade techs' for an automated upgrade system
  • emulates real life experience (gain skill the more you do something)
  • fluid and dynamic, keeping with the vision of the 'slice in time' concept

Upgrade Ranks

A rank is the level of promotion a Citizen Soldier has achieved. With each automatic upgrade to a new rank, the unit gains bonuses to his statistics (by pointing to a new entity with an entirely new set of statistics).

In general, higher-ranking units are stronger in combat, but weaker in economic tasks such as gathering resources than lower-ranking units.

  • Basic: The starting rank.
  • Advanced: The second rank.
  • Ultimate (Elite in code terms): The final rank.

Upgrade Appearance

To determine the rank of Citizen Soldiers at a glance, without the need for cluttering rank icons over units, we will use the following convention:

  • Basic: poorest rank, little to no armour, elementary weapons, avoid helmets.
  • Advanced: medium class, some armour, average weapons, helmet.
  • Ultimate: richest class, lots of armour, finest weapons, helmet with decoration.

Note: The history and graphics departments have studied literally hundreds of pics of all kinds of units; this was the most visible, recognisable standardisation of uniform that we could produce for such a wide variety of units, while still retaining a degree of realism.

Gaining Experience

A Citizen Soldier must acquire a certain quantity of points in order to gain a rank.

Once a Citizen Soldier accumulates the necessary number of experience points, we perform an entity swap (NewEntity) and clean slate of points.

Citizen Soldiers gain experience in two methods: automatically over a period of time (slow), and by participating in combat.

Time

Citizen Soldiers automatically gain upgrade points for as long as they survive, at a continuous rate of 1 point per second.

Battle

Each unit has a point value (UpPoints). A Citizen Soldier gains this bonus to his upgrade when he makes the kill.

NOTE: Attacking animals does not count toward points.

Note: See TracWiki for help on using the wiki.