Kobol has a complex attributes system that was designed to give players a rich gaming experience, and the proper way to handle such system in a match is through skills.
The skills manager
- Skills are universe oriented and they can be shared among all creatures of the same universe. This has been done to ease the creation of large amounts of characters in a universe: when skills are shared, a lot of time can be saved.
- They can be categorized using the structures in the classes tree. This also helps organizing them.
- They might have a base element.
- They can have level limits to allow the card using them only when gaining certain level or until they reach a certain level.
Skill types and application types
There are three types of skills:
- Attack: the skill attributes will cause damage to the target cards.
- Harm: the skill attributes are used to alter defenses or inflict altered states.
- Support: the skill attributes will be used to benefit friends or foes on the board.
And there are application types:
- Immediate: the skill si casted immediately after placing the card.
- Passive: the card will use the skill when necessary, E.G. dodging an attack or self-healing.
- Preemptive: casted immediately after placing the card on the board, before starting the attack round.
- Final: casted after the attack round.
Normally, skills are activated automatically unless user input is mandatory. When a user places a card on a board, the next procedure is executed:
- If the card has any preemptive skills (E.G. boosting spells), they are all executed.
- Selection of the most useful attack (if the card has more than one available) and its execution.
- If the card has any final skills (E.G. auto-resurrect, final blow, etc.) they are all executed.
Passive skills will be constantly checked for application before and after the steps of the procedure and when the card receives an attack.
A good example of how to define the skill actions can be an immediate attack from a poisonous creature. The application directives for this attack could be the next:
Directives are interpreted from top to bottom:
Target card: Multi-turn apply > HPs:
The skill does a damage of 2 to 4 HPs (
damage_max) for every 10 levels of the caster (
damage_multiplier) that will remain for 2 to 4 turns (
turns_max) plus 1 turn for every 10 levels of the caster.
Target card: Inflict > Altered state: Once the damage is applied by the attack, a probability check between 2% and 8% (
probability_max) that will double every 10 levels of the caster (
probability_multiplier) will take place (E.G. 4% every 10 levels). If the check is possitive, "dumbness" (
keyname_inflicted_state) will be temporarily applied (
temporality), that is, during the match.
The altered state being inflicted ("dumbness") is a separate skill defined as immediate attack, and is invoked by the in-match altered states executive process to apply the next directives over the affected card:
Self: Self-add > Hit Dice
The maximum card life is reduced to half.
Self: Self-add > Attack damage
The maximum card damage is reduced to half.
Simplicity is a winner
The application directives example above is a case with certain level of complexity, and not much skills might need to have the same or even a higher complexity level.
It is highly recommended to keep skills as simple as possible and make the complex ones only for special types of cards.