User:FeralKitty/Themes and game data

From Wildermyth Wiki

To understand themes and theme pages, we have to consider how the developers coded the themes.

Theme Pieces

Each theme is made up of one or more theme pieces (e.g., leftArm, rightLeg, tattoo, wings).

Wiki fact: Each theme page shows the in-game name, blurb, and other related info for each theme piece. This is because each piece may have their own unique blurb, stats, or effects, which could change down the road.

1. The goal of automatically updating the wiki's game data when new patches ship allows the theme pages to reasonably stay up-to-date regarding any changes to the theme, or theme effects. This helps minimize the problem of theme pages becoming inaccurate when a contributor never updated them.

2. Manually using arbitrary or inconsistent piece names (such as One Arm/Both Arms, or First Arm/Second Arm) breaks the linkage to a piece's description, stats, and/or effects. Is One Arm/First Arm the left arm or the right? The wiki can no longer show the specific in-game information, or automatically keep the page up-to-date.

Each theme piece has:

  • a name Gem Arm (L),
  • a blurb <self>'s left arm spreads out into a crystal shield.,
  • optional stats { "STUNT_CHANCE": 6 }, and
  • optional effects ["shieldBlocks1DamageFromNonFlankingAttacks"]. Each effect will also have:
    • a name Shield,
    • a blurb Shields reduce damage from non-flanking attacks by 1.
    • a possible formula, damage type, and amount.

This allows the wiki to use the game data to reasonably mirror what currently appears in the in-game Character Sheet.

Note that although this (Shield) ability only currently has a name and description, the wiki also requests action points, damage type, and formula data, so a tooltip could automatically display any new or changed details.

Gem Arm (L)

<self>'s left arm spreads out into a crystal shield.

+6 Stunt chance

Shield

Shields reduce damage from non-flanking attacks by 1

 {{Quote|{{Data description|Gem Arm (L) (theme piece)}}}}
...
{{Tooltip ability
| action = {{Data actionPoints|Shield}}
| ability = Shield
| description = {{Data description|Shield}}
| damage = {{Data damageType|Shield}}
| formula = {{Data formula|Shield}}
}}
Gem Arm L Ability - Character Sheet.png

The game has many themes where the same effect is on both arms. In fact, the Character sheet not only shows the same effects on both arms, but also shows both abilities (such as Shooting Star, and Falling Stars) on the same arm.

Wiki fact: The wiki shows all the theme piece effects sequentially, while the Character Sheet shows the effects per selected theme piece. This makes it more noticeable that the wiki (like the game) is showing the same abilities on both arms.
Bear Arm L Abilities - Character Sheet.jpeg Bear Arm R Abilities - Character Sheet.jpeg
Wiki fact: The wiki has no in-game knowledge of a hero's stats or aspects (e.g., which theme pieces the hero has, and whether the hero has chosen the Theme+ upgrade).

1. The wiki can't conveniently show only one specific (base or upgraded) ability, like the game can.

2. Arbitrarily hiding upgrade details breaks the page from being automatically updated if (the theme or) a specific ability should gain a Theme+ upgrade. People then are burdened to know or remember to show any upgrade that now differs from its base ability.

3. The simplest wiki solution was chosen (to add a theme upgrade note between base and upgraded abilities) so the theme pages could still self-update as theme upgrades and theme effects may change.

Theme abilities that don't currently benefit from a theme upgrade appear to show identical information. However, if you look at the page source, they request upgraded information (which only currently happens to be identical). This allows the tooltip to show any changes based on new builds that the devs release:

{{Tooltip ability
| action = {{Data actionPoints|Bear Hug}}
| ability = Bear Hug (both arms)
| description = {{Data description|Bear Hug}}
| damage = {{Data damageType|Bear Hug}}
| formula = {{Data formula|Bear Hug}}
}}
'''Upgrade'''
 {{Quote|{{Data description|Bear Swipes+ (theme upgrade)}}}}
{{Tooltip ability
| action = {{Data actionPoints|Bear Hug+}}
| ability = Bear Hug+ (both arms)
| description = {{Data description|Bear Hug+}} 
| damage = {{Data damageType|Bear Hug+}}
| formula = {{Data formula|Bear Hug+}}
}}

Personally, I found it useful and curious to see from the formulas that ability X doesn't benefit from Theme+. I expect that there are good reasons for the devs' decisions, but even a mere +1 damage would be appreciated.

One final wiki fact: Template data, not the individual theme pages, are updated with new game data.

1. It would be too complex for a bot to determine that a theme ability now benefitted from a theme upgrade, and for the bot to add that upgraded tooltip to a theme ability page.

2. It would be too convoluted to code a template to automatically hide an upgraded tooltip that didn't benefit from a theme upgrade.

Summary

One goal was to give related pages a consistent appearance, including section headings. Having one page refer to One Arm/Both Arms, another page to First Arm/Second Arm, a third page to Left Arm/Right Arm is inconsistent. These aren't actual theme pieces, and they don't have actual blurbs. (They have hand-written blurbs that differ from the game's blurbs. This may not seem to matter unless the theme is updated and its blurbs and effects significantly change.)

Another goal obviously was automation, which reduced or eliminated contributors from unreliably having to manually make changes to match changes in the game. (Missing or out-of-date information is as problematic to me as the same ability showing up on both arms might be to you.)

If you have other ideas or user-space mockups, you're welcome to contribute them, with the hope that you're not completely throwing away how theme pages can hopefully keep themselves up to date.