Module:AbilityTable/Lists/doc: Difference between revisionsGive feedback
create documentation page for Module:AbilityTable/Lists (with help from vergir-bot LLM) |
write documentation for Module:AbilityTable/Lists (with help from vergir-bot LLM) |
||
| 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. | |||
== | 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 — 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>. | |||
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 Amp|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>citadel_ability_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 (keeping alphabetical order): | |||
<pre> | <pre> | ||
[" | ["healreduce"] = { | ||
" | "DisableHealing", "HealAmpReceivePenaltyPercent", "HealAmpRegenPenaltyPercent", | ||
}, | }, | ||
</pre> | </pre> | ||
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 == | == How to exclude an ability from a list == | ||
If an ability appears in a table but shouldn't | 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 — 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> | ||
[" | ["healreduce"] = { | ||
" | "My Ability", -- has DisableHealing for some reason but doesn't actually reduce healing | ||
}, | }, | ||
</pre> | </pre> | ||
| Line 31: | Line 41: | ||
== How to add a new list == | == How to add a new list == | ||
Adding a new list | Adding a new list makes a new ability table available via <code><nowiki>{{AbilityTable|listname}}</nowiki></code>. | ||
'''Step 1''': Find matching properties in [[Data:AbilityData.json]]. Look at several abilities that should appear in the list and identify properties they share. Prefer broad reusable properties over raw ability names. | |||
'''Step | '''Step 2''': Add a new entry to the <code>lists</code> table with a descriptive comment above it: | ||
<pre> | <pre> | ||
-- Brief description of what this list represents | -- Brief description of what this list represents | ||
[" | ["mylist"] = { "PropertyOne", "PropertyTwo" }, | ||
</pre> | </pre> | ||
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''': | '''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]]. | |||