Editing Module:AbilityTable/Lists/docGive feedback
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 1: | Line 1: | ||
== How to add a missing ability to a list == | |||
If an ability should appear in a table but doesn't, it means none of its data properties match the list's property keys. The recommended fix is to find a matching property in [[Data:AbilityData.json]] and add it to the list. Only use a raw ability name as a fallback if no suitable property exists. | If an ability should appear in a table but doesn't, it means none of its data properties match the list's property keys. The recommended fix is to find a matching property in [[Data:AbilityData.json]] and add it to the list. Only use a raw ability name as a fallback if no suitable property exists. | ||
Before editing, read the comment above the list you want to change | Before editing, read the comment above the list you want to change — it describes what kind of abilities belong there. | ||
'''Finding the right property''': Open [[Data:AbilityData.json]] and search for the ability. Look through its properties for one that represents the relevant mechanic | '''Finding the right property''': Open [[Data:AbilityData.json]] and search for the ability. Look through its properties for one that represents the relevant mechanic — for example, a silence ability might have <code>SilenceDuration</code>. A good property is one shared by many abilities with the same mechanic, not something unique to one ability. | ||
After adding the property or ability name, test the table to make sure no unwanted extra abilities appeared. If they did, the property is too broad — consider using a raw ability name instead, or adding the extras to <code>exclude_abilities</code>. | |||
After adding the property or ability name, test the table to make sure no unwanted extra abilities appeared. If they did, the property is too broad | |||
If your new ability has special column values, you may also want to update [[Module:AbilityTable/ComplexRenderers]]. And if it needs a descriptive note, add it in [[Module:AbilityTable/Notes]]. | If your new ability has special column values, you may also want to update [[Module:AbilityTable/ComplexRenderers]]. And if it needs a descriptive note, add it in [[Module:AbilityTable/Notes]]. | ||
=== Example: adding a missing ability to the healreduce list === | |||
Say {{AbilityIcon|Affliction}} is missing from the heal reduction table. First, check the comment above <code>["healreduce"]</code> in the module | Say {{AbilityIcon|Affliction}} is missing from the heal reduction table. First, check the comment above <code>["healreduce"]</code> in the module — it says "Abilities that reduce healing on their targets", so Affliction belongs there. | ||
Open [[Data:AbilityData.json]] and search for <code>affliction</code>. Looking through its properties, you find <code>"DisableHealing": 1</code> | Open [[Data:AbilityData.json]] and search for <code>affliction</code>. Looking through its properties, you find <code>"DisableHealing": 1</code> — that looks like exactly what we need. | ||
Check if <code>DisableHealing</code> is already in the <code>["healreduce"]</code> list. It isn't, so add it: | Check if <code>DisableHealing</code> is already in the <code>["healreduce"]</code> list. It isn't, so add it: | ||
| Line 29: | Line 25: | ||
</pre> | </pre> | ||
Save and test the table with <code><nowiki>{{AbilityTable|healreduce}}</nowiki></code>. Affliction now appears | Save and test the table with <code><nowiki>{{AbilityTable|healreduce}}</nowiki></code>. Affliction now appears — and no unexpected abilities were added, so the property was a good fit. | ||
== How to exclude an ability from a list == | |||
If an ability appears in a table but shouldn't, first check whether the property causing the match actually belongs in the list. If several unrelated abilities are showing up as false positives, it's likely that a prop was added to the list by mistake | If an ability appears in a table but shouldn't, first check whether the property causing the match actually belongs in the list. If several unrelated abilities are showing up as false positives, it's likely that a prop was added to the list by mistake — inspect the list carefully and consider removing it. Make sure to test after removing a prop to confirm you didn't accidentally drop any legitimate abilities. | ||
If the false positive is a genuine exception | If the false positive is a genuine exception — the prop belongs in the list but this one ability happens to match it incorrectly — then add the ability to <code>exclude_abilities</code> under the relevant list name with a comment explaining why: | ||
<pre> | <pre> | ||
| Line 43: | Line 39: | ||
</pre> | </pre> | ||
== How to add a new list == | |||
Adding a new list makes a new ability table available via <code><nowiki>{{AbilityTable|listname}}</nowiki></code>. | Adding a new list makes a new ability table available via <code><nowiki>{{AbilityTable|listname}}</nowiki></code>. | ||
| Line 56: | Line 52: | ||
</pre> | </pre> | ||
Test the result with <code><nowiki>{{AbilityTable|mylist}}</nowiki></code> and adjust until the list looks right | Test the result with <code><nowiki>{{AbilityTable|mylist}}</nowiki></code> and adjust until the list looks right — adding missing abilities and excluding false positives as described above. | ||
'''Step 3 (optional)''': If the table should have extra columns beyond Notes, register a renderer in [[Module:AbilityTable]] and implement it in [[Module:AbilityTable/ComplexRenderers]]. | '''Step 3 (optional)''': If the table should have extra columns beyond Notes, register a renderer in [[Module:AbilityTable]] and implement it in [[Module:AbilityTable/ComplexRenderers]]. | ||
'''Step 4 (optional)''': Add human notes for specific abilities in [[Module:AbilityTable/Notes]]. | '''Step 4 (optional)''': Add human notes for specific abilities in [[Module:AbilityTable/Notes]]. | ||