Design document for display stats around the wiki. Discuss here: WARFRAME Wiki talk:Stat Display.
- Last updated: Tue, 04 Oct 2022 19:51:26 +0000 (UTC) by User:Cephalon Scientia
Issue[]
- Current way of displaying weapon stats in the infobox has three main issues:
- Too long, tries to fit all weapon details into one vertically narrow element. With more and more weapons having AoE and alternative attacks, this means that readers will have to scroll more to find the stat they need.
- For nested/child attacks, we do not know what the parent attack is or whether or not a nested attack has a parent. We currently display all attacks at the same level so for example, the direct impact (parent) and AoE (child) compontents of an attack are displayed as two separate groups. There is no structure to show relationship between the parent and child attacks.
- Cannot easily visually compare two attacks of the same weapon in the infobox.
Zymos Example[]
Draft[]
A solution would be to decouple weapon attacks from the infobox and display the information as a horizontal wikitable under the Characteristics section. Nested/child attacks would be displayed as subtables within a table row to show that they are dependent on the parent attack for the actual attack and stat inheritance.
The infobox can keep displaying the "main" attack for quick reference. Or do not change/remove anything from current infobox and have additional wikitable as a complement to infobox information.
Sample Zymos Render[]
Normal Attack (Mouse 1 on PC, right trigger on consoles) | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Impact | 9.2 (40%) | ||||||||||||||||||||||||||||||||||||||||||||||
Puncture | 13.8 (60%) | ||||||||||||||||||||||||||||||||||||||||||||||
Multishot | 1 | ||||||||||||||||||||||||||||||||||||||||||||||
Total Damage | 23 | ||||||||||||||||||||||||||||||||||||||||||||||
Crit Chance | 5% | ||||||||||||||||||||||||||||||||||||||||||||||
Crit Multiplier | 2.3x | ||||||||||||||||||||||||||||||||||||||||||||||
Fire Rate | 1.33 | ||||||||||||||||||||||||||||||||||||||||||||||
Forced Procs | Impact | ||||||||||||||||||||||||||||||||||||||||||||||
Noise Level | Alarming | ||||||||||||||||||||||||||||||||||||||||||||||
Status Chance | 30% | ||||||||||||||||||||||||||||||||||||||||||||||
Projectile Speed | 79 m/s | ||||||||||||||||||||||||||||||||||||||||||||||
Projectile Type | Projectile | ||||||||||||||||||||||||||||||||||||||||||||||
Trigger Type | Semi-Auto | ||||||||||||||||||||||||||||||||||||||||||||||
Reload Time | 3.2 s | ||||||||||||||||||||||||||||||||||||||||||||||
Accuracy | 9.8 | ||||||||||||||||||||||||||||||||||||||||||||||
Ammo Cost | 1 | ||||||||||||||||||||||||||||||||||||||||||||||
Average Shot Damage | 24.495 | ||||||||||||||||||||||||||||||||||||||||||||||
Burst DPS | 32.58 | ||||||||||||||||||||||||||||||||||||||||||||||
Sustained DPS | 26.06 | ||||||||||||||||||||||||||||||||||||||||||||||
Average Procs | 1.3 | ||||||||||||||||||||||||||||||||||||||||||||||
Explosion Attack |
| ||||||||||||||||||||||||||||||||||||||||||||||
Embed Death Attack |
| ||||||||||||||||||||||||||||||||||||||||||||||
Other Attack 1 |
|
Weapon Schema Changes[]
There are four methods to link a child attack to their parent in table entries in Module:Weapons/data database:
- Nested attack tables. New attack table keys that correspond to specific attacks (like how we used to do it before all attack tables are stored a single
Attacks
array)Attacks = { [1] = { AttackName = "Normal Attack", ExplosiveAttack = { AttackName = "AoE" } }, [2] = { AttackName = "Alt-Fire", EmbedAttack = { AttackName = "DoT" } } }
- New attack table key to store name/index of attack table
Attacks = { [1] = { AttackName = "Normal Attack", }, [2] = { AttackName = "AoE", ParentAttack = 1, }, [3] = { AttackName = "Alt-Fire", }, [4] = { AttackName = "DoT", ParentAttack = 3, } }
- Nested attack tables and parent attack key
Attacks = { [1] = { AttackName = "Normal Attack", ExplosiveAttack = { AttackName = "AoE" } }, [2] = { AttackName = "Alt-Fire", }, [3] = { AttackName = "DoT", ParentAttack = 2, } }
- Have
Attacks
elements and individual attack entries store references of child entrieslocal aoeAttack = { AttackName = "AoE" } local dotAttack = { AttackName = "DoT" } Attacks = { [1] = { AttackName = "Normal Attack", ExplosiveAttack = aoeAttack }, [2] = aoeAttack, [3] = { AttackName = "Alt-Fire", EmbedAttack = dotAttack }, [4] = dotAttack }
- Not user friendly to edit directly in source since Attack entries are not grouped together with the actual Weapon entry. This could be implemented as the lower-level version of the equilvalent database where editors gain access to say method #2 way of storing Attack entries and another Lua module parse through that database to generate Lua source code of that database in the form of method #4.
External Links[]
- https://wikiwiki.jp/warframe/AFENTIS, a different way of rendering weapon stats on the Japanese WARFRAME wiki