Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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.
XP requirements are expressed in terms of the units cost. A $300 Rocket Soldier requires 600XP -- which by default is equivalent to killing $600 worth of enemies -- in order to gain its first level. The next level is at 1200XP/$1200, 2400XP/$2400, etc.
Once a unit gained the amount of XP defined on the GainsExperience trait, all conditions requiring equal or less XP will be applied. The default upgrades affect firepower, damage, speed, reload, inaccuracy, rank, self-healing and the ability to switch weapons. The default values for all upgrades can be found in the defaults.yaml file for each game.
The sequence-set 'rank' (defined in sequences/misc.yaml) is used to show overlays for each level. The sequence-set 'crate-effects' is used to show the ranking up animation.
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.
If an actor with the
GainsExperience trait delivers the killing blow to a character with the
GivesExperience trait, the killing actor gains experience equal to the 'Experience' property of
GivesExperience. By default, the experience value is set to -1, which means it will grant experience equal to its cost upon dying.
ValidStances property ensures actors killed by actors on the same team will not grant any experience as long as it is set to 'Neutral, Enemy' (the default).