Skip to content
chrisforbes edited this page May 3, 2011 · 9 revisions

The veterancy system is built out of two key traits -- GainsExperience, which implements the actual level system for an Actor, and GivesExperience, which is attached to Actors which may be killed to gain experience.

GivesExperience:
  Experience: -1      # the amount of experience to give. if -1, use the value of the unit (from Valued)
GainsExperience:
  CostThreshold: 2,4,8,16    # the XP requirements for each level, as multiples of our own cost.
  FirepowerModifier: 110%,115%,120%,150%
  ArmorModifier: 110%,120%,130%,150%
  SpeedModifier: 110%,115%,120%,150%

Note that XP requirements are expressed in terms of our cost. So if we're a $300 Rocket Soldier, to gain our first level, we need 600XP (which by default is equivalent to killing $600 worth of enemies). The next level is at 1200XP / $1200, 2400XP / $2400 etc.

The FirepowerModifier, ArmorModifier, SpeedModifier values are applied directly by GainsExperience, via the I*Modifier interfaces.

The sequence-set 'rank' (defined in sequences.yaml) is used to show overlays for each level. The sequence-set 'crate-effects' (its animation 'levelup') is used to show the "+1 RANK" text.

LevelUpCrateAction implements a crate action to give one level to the collecting unit. It should be attached to the Crate actor, and has the standard crate action properties: The crate gives the remaining XP to the next level threshold. Its "value" is therefore dependent on how close the unit otherwise is to this threshold, and the cost of the unit.

Crate:
  LevelUpCrateAction:
    SelectionShares: 40     # chance of getting this crate, assuming the collector is compatible.
    Effect: levelup         # effect to draw -- an animation from 'crate-effects' in sequences.yaml
    Notification:           # audio clip to play when the crate is collected; RA has none for this
    ExcludedActorTypes:     # comma-separated list of actor types the crate action should not apply to

  ... many other crate actions

Future directions:

  • Allow switching of weapons based on level. This is used in the later C&C and RA games.
  • Allow switching self-healing based on level.
  • Allow actors to specify a custom set of rank art.
  • Possibly use a CashTick-like method instead of baked-in "+1 RANK" art.

Players ๐ŸŽฒ

Modders โœ๏ธ

Developers ๐Ÿ”ง

Clone this wiki locally