User:FeralKitty/Game data

From Wildermyth Wiki
< User:FeralKitty
Revision as of 12:52, 27 January 2022 by FeralKitty (talk | contribs) (Theme abilities with missing damageType and/or mathFormula)

Please note that this project is a work in progress, and currently is in the "proof of concept" stage. Once we're satisfied with the new appearance and functionality, we will start rolling it out to status effect and theme/theme ability pages, and finally to hero ability pages.

For anyone who's wondering why this project came into existence, there are several objectives:

  • Help automatically keep wiki information up-to-data as new game builds are released, and abilities change or are added.
  • Help sets of (status effect, theme, and ability) pages have a more consistent look across their pages. This includes having the same section headings and types of information on each related page.
    • Improve navigation to related pages/information via consistent use of main article, see also, and navboxes, as needed.

Coding

  • Fix and/or extract any missing theme/theme ability data.
    • Fix Skunk Spray (missing damageType, mathFormula) { "id": "poisoned", "value": "1+floor((attacker.POTENCY/3))" }
    • Fix Invigoration (missing damageType, mathFormula) "grantTempHp": "2+floor(((attacker.PHYSICAL_DAMAGE_BONUS+attacker.POTENCY)/2))"
    • Fix Static Shock (missing constant mathFormula) "always": { "class": "Damage", "target": "target", "amount": "2", "type": "TRUE" }
    • Fix Thunder Stomp (missing range damageType, mathFormula) "range": "((0.6+(self.POTENCY/3))+self.themePiece_storm_rightLeg)+self.themePiece_storm_leftLeg"
    • Fix Splinterskin (missing constant damageType, constant mathFormula) "amount": "1"
  • Add type to mathFormula game data, as some math formulas may be "Poison:," "Range:," "Shred:," etc.
  • Fix "\n" in descriptions.

What has been done

What's next (immediate future)

  • Finalize Beartouched, Bear Hug, Swipes, and Poisoned "proof of concept" pages.
  • Revise and/or approve of new look.
  • Roll out new look to all status effect and theme/theme ability pages.

What's next (short term future)

  • Extract and add hero ability data
  • Hero ability proof of concept
  • Roll out new look for hero ability pages
  • Add [a-z] subpages for game data templates to improve performance. (MediaWiki recommends <=100 cases per switch statement.)
  • Evaluate whether or not to extract missing x ranged information.
    • Cone of Fire: x magic damage, 4/y range
    • Witherbolt: x magic damage, 6/y range
    • Skunk Spray: 5/x range
    • Thunder Stomp: 1/x range
    • Jumpjolt: x magic damage, 4/y range
    • Chain Lightning: x magic damage, 4/y range

What's next (medium term future)

  • Automate updating wiki with new game data (via bot), as new builds of the game are released.
  • Share zip file of extraction scripts, so others can see and/or modify what data is extracted. (I don't plan to share this via GitHub, as I can't fill the role of maintaining this project, but others are welcome to step in and do that.)

That wraps up my objectives for this project. Others are welcome to pursue their own interests in extracting and making other game data available to the wiki.

Other potential game data ideas

  • Stats for theme pieces (such as pets, legs, and wings). This would be an extremely easy undertaking to extract that data from the theme json, and to create a Data stats template.
  • Monster abilities. Scripts would exist to extract the hero data, so it's likely not a huge difference to add similar scripts to pull monster abilities from their .properties/.json files.
    • Note that monster game data would likely require monster disambiguation, as some of their (e.g., guardian) abilities share an identical in-game name to the hero's ability.
  • Event targeting data. Information has been added to some event pages. (I extracted and added the theme event data, and others manually added targeting info for other events.)
    • This could benefit from some similar automation (to extract the event targeting data and automatically update the wiki), as events change or get added.