Stats are a fundamental concept in CCG Kit. They represent integer values that change over the course of a game and are used in both players and cards. For example, a player could have life and mana stats and a creature card could have cost, attack and defense stats. Stats are transmitted over the network, which means you should only use them to represent values that can actually change over the course of a game in order to save bandwidth.
Stats have the following properties:
- Base value: The initial value of the stat.
- Original value: A copy of the initial value of the stat (useful as the base value changes over time).
- Minimum value: The minimum value of the stat.
- Maximum value: The maximum value of the stat.
- Modifiers: The modifiers that affect the current value (+3, -1, etc.). They can be permanent or temporary (i.e., have a duration of X turns). A modifier will never change the effective value of the stat in a way that makes it lower than its minimum value or higher than its maximum value.
- Effective value: The current value of the stat with all its modifiers applied.
Stats are implemented by the Stat class.