-
Notifications
You must be signed in to change notification settings - Fork 0
01. Skill Datakeys & Styles
Skill Datakeys allow you to implement conditional logic based on the internal state of a combat skill. This lets you changes in style, or weapon states dynamically.
When using predicates, you can query both Passive and Innate skills with three data types:
-
passive_skill_boolean_data_key/innate_skill_boolean_data_key -
passive_skill_integer_data_key/innate_skill_integer_data_key -
passive_skill_float_data_key/innate_skill_float_data_key
{
"skill_data_key": "namespace:path",
"expected_value": true
}{
"skill_data_key": "namespace:path",
"expected_value": 5
}{
"skill_data_key": "namespace:path",
"expected_value": 2.5,
"tolerance": 0.01
}{
"skill_data_key": "namespace:path",
"comparison_type": ">",
"expected_value": 5
}{
"skill_data_key": "namespace:path",
"comparison_type": ">",
"expected_value": 2.5,
"tolerance": 0.01
}Internally, the system evaluates conditions in a linear order:
[Skill Key] ➡️ [Comparison Type] ➡️ [Expected Value (Constant)]
(e.g., If current charge is 8, then 8 > 5 evaluates to True).
The Uchigatana Sheath: You can use a boolean key to check if a Katana is currently "Sheathed". If true, you force the player to change into a customized "Sheath combat style".
"styles": {
"default": "two_hand",
"cases": [
{
"style": "two_hand",
"conditions": [
{
"predicate": "epicfight:offhand_item_category",
"category": "not_weapon"
}
]
},
{
"style": "sheath",
"conditions": [
{
"predicate": "epicfight:passive_skill_boolean_data_key",
"skill_data_key": "epicfight:sheath",
"expected_value": true
}
]
}
]
}Dynamic Stances: Check if an Innate Skill reaches > 5 charges. If it does, you can swap the player's weapon stance from Two Handed to Ochs automatically until charges drop back to ≤ 5
"styles": {
"default": "two_hand",
"cases": [
{
"style": "two_hand",
"conditions": [
{
"predicate": "epicfight:offhand_item_category",
"category": "not_weapon"
}
]
},
{
"style": "ochs",
"conditions": [
{
"predicate": "epicfight:innate_skill_integer_data_key",
"skill_data_key": "namespaces:charge",
"comparison_type": ">",
"expected_value": true
}
]
}
]
}