Skip to content

Latest commit

 

History

History
656 lines (591 loc) · 21.1 KB

testing-script.md

File metadata and controls

656 lines (591 loc) · 21.1 KB

Manual Testing Script

1. Intro

  1. Confirm Pokeheim logo on main menu
  2. Confirm custom menu music
  3. Enter world with new character
  4. Confirm that Pokeheim tips are shown on loading screen
  5. Check that custom Pokeheim intro plays
  6. After intro, check that no Valkyrie animation plays
  7. Character should have a torch and rag clothing
  8. Confirm that Professor Raven has appropriate name, hover text, and alert messages
  9. Confirm that Professor Raven appears with tutorials on welcome, catching, and crafting
  10. Confirm that the welcome message contains the correct number of bosses

2. Wardrobe

  1. Install CustomWigs mod
  2. Enter world with new character
  3. Check that wardrobe exists at starting location
  4. Check wardrobe height
  5. Check that wardrobe faces the center of the circle
  6. Go to wardrobe
  7. Check hover message says "Wardrobe" and "Open"
  8. Press "E" to open
  9. Check that player faces camera
  10. Check that outfit dialog has correct defaults (current clothing)
  11. Check that CustomWigs items appear in helmets list
  12. Check that "CAPE TEST" doesn't appear in the capes list
  13. Check that DLC doesn't appear in the list (helmets, capes) in a release build
  14. Change each piece to something non-empty
  15. Check that changes take effect immediately
  16. Check that no "new item" popup occurs for these changes
  17. Click "x" to close dialog
  18. Check that old clothing was removed from inventory
  19. Press "E" to open again
  20. Check that the dialog defaults to current clothing still
  21. Press escape to close the dialog
  22. Check that game menu does not show
  23. Press F5 to open console
  24. Type "dressup"
  25. Check that wardrobe dialog appears
  26. Press F5 to close console
  27. Press escape to close dialog
  28. Press F5 to open console
  29. Type "devcommands" to enable dev commands if not enabled
  30. Type "tod 0" to force night time
  31. Type "dressup"
  32. Check that player now wields a torch for visibility
  33. Press escape to close dialog
  34. Press "TAB" to open inventory
  35. Check that style icon appears next to inventory grid
  36. Check style icon mouseover text
  37. Click style icon
  38. Check that wardrobe dialog appears
  39. Press escape to close dialog

3. Capturing

  1. Have at least 2 greylings, The Elder, plus several pokeballs
  2. Release a greyling
  3. Check mouseover text, should show you as the owner, can pet
  4. Log out & back in
  5. Check the greyling is still owned by you, can still pet
  6. Recall greyling
  7. Release greyling
  8. Check the greyling is still owned by you, can still pet
  9. Equip a torch
  10. Check that the greyling is not afraid of fire
  11. Recall greyling
  12. Check stats in ball description
  13. Spawn "pickaxeiron"
  14. Dig a small pit (2-3m deep, 2m x 4m wide) to force monsters together
  15. Spawn a greydwarf in the pit and faint it
  16. Release a greyling in the pit, rename it to "Fainted"
  17. Spawn another greydwarf in the pit and wait for it to faint the greyling
  18. Run debug command "freeze Greydwarf" (case sensitive)
  19. Release a greyling in the pit and rename it "Awake"
  20. Run debug command "freeze Greyling" (case sensitive)
  21. Confirm that ball catches wild fainted greydwarf first ("Gotcha!")
  22. Confirm that ball catches tame fainted greyling next ("Fainted, return!")
  23. Confirm that ball catches wild awake greyling next ("Gotcha!")
  24. Confirm that ball catches tame awake greyling next ("Awake, return!")
  25. Open settings
  26. Confirm that "Recall Monsters" appears in key settings (default "R")
  27. Recall anything that might be out
  28. Release The Elder
  29. Check how many "root" balls you have
  30. Spawn Eikthyr
  31. Wait for The Elder to spawn roots
  32. Recall The Elder
  33. Check that the screen didn't say "root, return!"
  34. Check that the roots disappear without being captured/recalled
  35. Log out and log back in
  36. Check that all ball items were correctly generated and placed in inventory

4. Loyalty

  1. Have at least one greyling, one deer, and four trolls captured
  2. Release greyling
  3. Run away
  4. Check that greyling follows you
  5. Log out & back in
  6. Run away
  7. Check that greyling follows you
  8. Spawn wild greyling
  9. Check that they fight each other
  10. Get rid of wild greyling
  11. Release captured greyling
  12. Spawn Eikthyr
  13. Freeze Eikthyr to ensure it doesn't kill the greyling too quickly
  14. Check that greyling fights Eikthyr (no monster natively fights a boss)
  15. Unfreeze Eikthyr
  16. Check that Eikthyr fights greyling
  17. Remove Eikthyr
  18. Release deer
  19. Check that deer follows you
  20. Run debug command "nospawns"
  21. Run debug command "catchemall"
  22. Release troll x4
  23. Check that the trolls don't crowd you so closely that they push you around
  24. Spawn Eikthyr
  25. Run far away quickly
  26. Check that trolls stay behind to fight, don't follow until Eikthyr fainted

5. Renaming

  1. Have at least two greylings
  2. Check greyling stats in ball description, should show "Name: (none)"
  3. Release greyling
  4. Check mouseover text, should allow petting and renaming
  5. Rename greyling to "Foo"
  6. Recall greyling
  7. Check that the ball is separate name shows "Foo"
  8. Check stats in ball description, should show "Name: Foo"
  9. Release Foo
  10. Check mouseover text, should show "Foo"
  11. Pet Foo, message should be "Foo loves you"
  12. Log out & back in
  13. Check mouseover text, should show "Foo"
  14. Rename to something long, confirm that 20 characters are allowed
  15. Rename to "greyling" (all lowercase)
  16. Check mouseover text, should show "Greyling" (capital)
  17. Recall greyling
  18. Check that the ball stacked with the other greylings
  19. Change language to German
  20. Quit & restart
  21. Release greyling
  22. Check mouseover text, should show "Gräuling"
  23. Rename greyling to "Foo"
  24. Change language to English
  25. Quit & restart
  26. Check mouseover text, should show "Foo"
  27. Rename to ""
  28. Check mouseover text, should show "Greyling"
  29. Release boar and rename to "Francis Bacon"
  30. Release Moder and rename to "Freddie Mercury"
  31. Run debug command "faintall"
  32. Catch Francis and Freddie
  33. Confirm that their names are still correct
  34. Release Francis and Freddie
  35. Run debug command "faintall"
  36. Log out and back in
  37. Catch Francis and Freddie
  38. Confirm that their names are still correct

6. PVP

  1. Have at least 3 captured greylings, one tougher thing like a greydwarf brute
  2. Release greyling
  3. Check that PVP is off
  4. Hit greyling with torch, should not hit
  5. Punch greyling, should still hit because fists are special
  6. Punch greyling to death, should actually die
  7. Wait for cooldown, enable PVP
  8. Release greyling
  9. Hit greyling with torch, should hit this time
  10. Release another two greylings
  11. Log out
  12. Change players and log back in
  13. Check that PVP is off
  14. Check that new player can pet/rename greyling
  15. Run away
  16. Check that greyling does not follow, even with PVP off
  17. Enable PVP
  18. Check that greyling attacks
  19. Disable PVP
  20. Check that greyling stops attacking
  21. Enable PVP
  22. Release own greyling
  23. Check that greylings attack each other
  24. Disable PVP
  25. Check that greylings stop attacking each other
  26. Catch all greylings
  27. Release greydwarf brute
  28. Switch players
  29. Enable PVP
  30. Try to catch the brute, should not be trivial
  31. Check that capture message was "Gotcha!" and not "return!"
  32. Release more things
  33. Switch players
  34. Release one greyling
  35. Disable PVP
  36. Recall all, check that only your own things were recalled, with the message "Greyling, return!" and not "Everyone, return!"
  37. Try to catch the other player's remaining things, should work right away with PVP off
  38. Check that capture message was "Gotcha!" and not "return!"

7. Fainting

  1. Spawn greyling
  2. Spawn weapon ("club" or "SwordIronFire")
  3. Hit greyling with weapon until it faints
  4. Check that it doesn't die
  5. Check that its mouseover text is gone
  6. Wait and check that the ragdoll doesn't explode
  7. Check that the ragdoll can be pushed around
  8. Catch it (should always work)
  9. Spawn greyling
  10. Type "killall" in dev console
  11. Confirm that greyling dies
  12. Release greyling
  13. Enable PVP and attack it until it faints (or use "faintall" debug command)
  14. Recall all, check that your fainted greyling does not come back
  15. Spawn deathsquito and faint it
  16. Check that it falls from the sky and lands upside down
  17. Spawn skeleton and faint it
  18. Check that it stops making noise
  19. Check that the mouseover HUD doesn't show up
  20. Log out & back in
  21. Confirm that skeleton is still on its back and not upside-down
  22. Check that the mouseover HUD still doesn't show up
  23. Spawn blob, wraith, and bonemass and faint them
  24. Check that they stop fuming
  25. Spawn serpent and faint it
  26. Check that its tail stops moving
  27. Spawn "dragon" (Moder) and faint it
  28. Check that it falls from the sky (no ragdoll)
  29. Log out and back in
  30. Check that the dragon is still affected by gravity, even when pushed
  31. Spawn "hatchling" (Drake) and faint it
  32. Check that it falls from the sky (ragdoll)
  33. Spawn "gd_king" (The Elder)
  34. Wait for The Elder to spawn roots
  35. Wait for the roots to faint (timed destruction)
  36. Capture roots
  37. Capture The Elder
  38. Release roots
  39. Check that the roots don't faint (timed destruction)
  40. Recall roots
  41. Release The Elder
  42. Spawn Eikthyr (wild)
  43. Wait for The Elder to spawn roots
  44. Check that the roots don't faint (timed destruction)
  45. Spawn BonePileSpawner
  46. Faint skeletons as they spawn
  47. Check that the spawner keeps spawning instead of stopping at 2 skeletons

8. Projectiles

  1. Spawn pokeballs, confirm coloring
  2. Spawn greatballs, confirm coloring
  3. Spawn ultraballs, confirm coloring
  4. Throw each, confirm coloring and that projectiles rotate
  5. Confirm that there's no ooze effect from the ooze bomb they are based on
  6. Confirm the "hit" sound plays on impact
  7. Confirm consistent accuracy
  8. Spawn greyling and faint it
  9. Confirm that a direct hit is not needed to capture (2m radius OK)
  10. Spawn troll
  11. Try to catch troll with pokeball, greatball, and ultraball
  12. Read catch rate in debug logs, confirm that ball type has an effect
  13. Kill or capture troll because it will be a pain in the ass now
  14. Fly so deer won't see/hear you
  15. Spawn a deer
  16. Fly far enough away to be out of its sensory range
  17. Throw a rock nearby the deer
  18. Check that the deer is startled

9. Berries

  1. Fly so deer won't see/hear you
  2. Spawn deer
  3. Spawn "raspberry"
  4. Check that the deer is alerted, goes for the berry, and eats it, then relaxes (within 10s interval)
  5. Remove deer
  6. Stop flying
  7. Spawn and pick up "raspberry", "blueberries", and "cloudberry"
  8. Spawn greyling, wait for it to attack
  9. Throw raspberry
  10. Check that the greyling goes for the berry and eats it (within 10s interval)
  11. Repeat with "blueberries" and "cloudberry"
  12. Remove greyling
  13. Spawn boar
  14. Tame boar with debug command "tame"
  15. Spawn "carrot"
  16. Check that the boar does not eat the carrot
  17. Spawn "raspberry"
  18. Check that the boar does eat the raspberry
  19. Remove boar
  20. Spawn 50 "raspberry" and pick them up
  21. Spawn greyling
  22. Throw full stack of 50 "raspberry"
  23. Check that greyling continues to return to the berry pile every ~10s

10. Crafting

  1. Use debug command "tutorialreset"
  2. Spawn:
    • "stone" x50
    • "wood" x50
    • "LeatherScraps" x50
    • "TrophyDeer"
    • "raspberry"
    • "blueberries"
    • "mushroomyellow"
  3. Craft:
    • pokeball
    • greatball
    • ultraball
    • wood arrows
    • stone axe
    • club
    • hammer
    • hoe
    • pickaxe
    • torch
    • bow
    • saddle
  4. Verify that you see tutorials for:
    • food
    • pokeballs
    • hammer
    • pickaxe
  5. Verify that you can build camp fire with hammer
  6. Verify that you can raise and level ground with hoe
  7. Find a pine tree
  8. Knock down pine tree
  9. Verify that only regular wood spawns
  10. Spawn, catch, release, and kill greydwarf
  11. Verify that only wood and stone spawn
  12. Spawn, catch, release, and kill boar
  13. Verify that only leather spawns

11. Bosses

  1. Enter game at starting location
  2. Confirm that the chains on boss stones are not interactable
  3. Remove any boss locations from map
  4. Remove any captured bosses from inventory
  5. Run debug command "removedrops"
  6. Loop over all Vegvisir:
    1. Read Vegvisir
    2. Check that next boss is on the map
    3. Use debug command "findboss NAME_OR_INDEX" (0-based)
    4. Check that other locations for this boss are all farther from the start
    5. Go to next boss (any location, left-ctrl+middle-click on map to teleport)
    6. Confirm no runestone or item stands
    7. Confirm altar hovertext says "start encounter"
    8. Start raid at altar
    9. Confirm "go!" message shown
    10. Type "catchemall" in dev console
    11. Try to start raid again
    12. Confirm that raid does not start (already caught)
    13. Loop if Vegvisir present (all but last boss)
  7. Use debug command "resettutorial boss_trophy"
  8. Release Eikthyr
  9. Confirm that Eikthyr does not attack
  10. Punch Eikthyr to death
  11. Grab boss trophy
  12. Verify that Prof. Raven tutorial shows up to shame you for it
  13. Spawn Eikthyr
  14. Freeze Eikthyr
  15. Spawn "SwordBlackmetal"
  16. Verify that sword does no damage to Eikthyr

12. Inventory

  1. Use debug command "resettutorial inventory_screen"
  2. Open inventory
  3. Check that it's twice as large as usual (8x8)
  4. Check that Professor Raven comes to tell you about sorting and style
  5. Spawn TreasureChest_meadows
  6. Open the chest
  7. Check that the chest inventory GUI is positioned below the player inventory
  8. Check that the sort button appears next to inventory grid
  9. Check that the mouseover text says "sort"
  10. Click sort and verify that it reorders your things, except the first row:
    1. Uninhabited balls, getting stronger
    2. Inhabited balls, going up in Pokedex order
    3. Non-equippable items
    4. Equippable, unequipped
    5. Equippable, equipped

13. Player

  1. Confirm base HP of 50
  2. Spawn 500 rocks (10 stacks), confirm you can carry up to 1000 weight
  3. Throw away rocks
  4. Spawn troll
  5. Get hit by troll
  6. Confirm that no damage was taken
  7. Spawn "SwordBlackmetal"
  8. Hit troll with blackmetal sword
  9. Verify that very little damage is done
  10. Remove all armor
  11. Fly to the mountains
  12. Confirm that the player is not freezing
  13. Fly to the swamps
  14. Run "findlocation SunkenCrypt4"
  15. Confirm that the player does not need a key to enter
  16. Fly into the sky
  17. Stop flying and fall to your death
  18. Confirm that no tombstone is created
  19. Check that all items are kept in inventory when respawning
  20. Run and confirm that you don't get tired
  21. Swim and confirm that you do get tired swimming
  22. Drown and confirm death

14. Pokedex

  1. Run debug command "resetpokedex"
  2. Run debug command "resettutorial caught"
  3. Spawn neck
  4. Catch neck
  5. Confirm that Professor Raven appears with first catch tutorial
  6. Open inventory
  7. Check that Pokedex icon appears
  8. Check that hovertext for Pokedex says "Pokédex"
  9. Check that Pokedex completion and Trainer skill updated and are matched
  10. Spawn 50 pokeballs
  11. Spawn Eikthyr
  12. Throw tons of pokeballs at Eikthyr
  13. Confirm that Trainer skill does not increase
  14. Open Pokedex
  15. Confirm that only neck is filled in
  16. Confirm that neck stats are shown
  17. Confirm that other entries are silhouetted
  18. Go to shoreline
  19. Search up shore for accessible, non-deep-sea Serpent (random - you may need to find a spot to sit for an hour to be sure one will spawn)

15. Riding

  1. Spawn "SaddleUniversal"
  2. Spawn Lox
  3. Freeze Lox
  4. Check that you can't saddle the Lox
  5. Catch Lox
  6. Release Lox
  7. Check that you can saddle and ride Lox
  8. Test various monsters
    1. For each of these:
      • boar
      • wolf
      • greyling
      • greydwarf
      • fuling shaman (GoblinShaman)
      • greydwarf brute (Greydwarf_Elite)
      • drake (Hatchling)
      • Moder (Dragon)
      • deathsquito
      • bat
      • wraith
    2. Spawn, catch, release, saddle
    3. Spawn wild greyling
    4. Verify that saddled monster does not react
    5. Ride
    6. Run
    7. Primary attack (if supported)
    8. Secondary attack (if supported)
    9. Back stops
    10. Block stops and changes direction
    11. Check that we can zoom way out
    12. Check that the camera is relatively stable
    13. Check that the riding HUD shows the correct monster icon and name
    14. If flying monster:
      • Test flying up (jump) and down (crouch)
    15. If Moder:
      • Test landing (crouch near ground) and taking off (jump while walking)
  9. Mount a deathsquito
  10. Fly up a bit
  11. Run debug command "faintall"
  12. Verify that you are not trapped on the monster
  13. Verify that the saddle came off
  14. Catch the deathsquito
  15. Verify no additional saddle dropped
  16. Test saddle targeting:
    1. For each of these tall monsters:
      • troll
      • The Elder (GD_King)
      • Moder (Dragon)
    2. Saddle the monster
    3. Verify that the saddle can be reached
    4. Fly up (if applicable)
    5. Dismount
    6. Verify that you don't die on impact on the ground
    7. Mount again
    8. Fly up again (if applicable)
    9. Call "return"
    10. Verify that you don't die on impact
  17. Release two greydwarves
  18. Saddle one greydwarf
  19. Log out
  20. Log back in with another character
  21. Spawn SaddleUniversal
  22. Enable PVP
  23. Check that you can't mount the saddled greydwarf
  24. Check that you can't saddle the unsaddled greydwarf
  25. Disable PVP
  26. Check that you can mount the saddled greydwarf
  27. Check that you can saddle the unsaddled greydwarf
  28. Use debug command "resettutorial swimming"
  29. Saddle something
  30. Jump in the water (yourself)
  31. Check that no swimming tutorial is given
  32. Get back to land
  33. Use debug command "resettutorial swimming"
  34. Jump in the water again
  35. Check that a swimming tutorial is given

16. Giovanni

  1. Run "findlocation Vendor_BlackForest" if Giovanni location unknown
  2. Go to Giovanni (left-ctrl + middle-click on map to teleport)
  3. Verify that his name says "Giovanni"
  4. Verify that his Lox is named "Persian"
  5. Verify that Giovanni's speech has been overridden
  6. Verify that Giovanni cannot be interacted with, no interact hovertext
  7. Verify that Persian is covered in "shadow smoke"

17. Chests

  1. Spawn TreasureChest_meadows
  2. Open the chest, verify that only useful stuff appears in it
  3. At the locations below, left-ctrl + middle-click on map to teleport
    1. Run "findlocation WoodHouse1" or "findlocation WoodHouse2"
    2. Go there
    3. Run "catchemall" because crypt monsters are annoying during testing
    4. Find a chest in the house/crypt
    5. Verify that only useful stuff appears in it
    6. Repeat for one of "findlocation Crypt2", "findlocation Crypt3", or "findlocation Crypt4"
    7. Repeat for "findlocation SunkenCrypt4"
    8. Repeat for "findlocation MountainCave02"
    9. Repeat for "findlocation GoblinCamp2"

18. Shiny

  1. Throw away all greydwarf balls
  2. Run "removedrops"
  3. Run "spawn greydwarf 1 1"
  4. Run "catchemall"
  5. Check that the greydwarf is not marked as shiny in inventory (icon, description)
  6. Run "spawn greydwarf 1 2"
  7. Run "catchemall"
  8. Check that the greydwarf is marked as shiny in inventory (icon, description)
  9. Release shiny greydwarf
  10. Confirm that coloring is correct
  11. Confirm that HUD shows shiny icon instead of Valheim yellow star icons
  12. Spawn Eikthyr
  13. Confirm that the boss is not marked "shiny"

19. Music

  1. Ensure music volume is on
  2. Use debug command "skiptime" to fast-forward to night
  3. Use debug command "sleep" to fast-forward to morning
  4. Confirm that custom "dawn" music plays

20. End Game

  1. Go to starting location
  2. Throw away all boss balls
  3. Run debug command "removedrops"
  4. Run debug command "resetpokedex"
  5. Run debug command "resettutorial caught_boss"
  6. Run debug command "resettutorial caught_all_bosses"
  7. Spawn Eikthyr
  8. Run debug command "catchemall"
  9. Check that the "caught a boss" tutorial runs
  10. Spawn GD_King, Bonemass, Dragon, and GoblinKing
  11. Run debug command "catchemall"
  12. Check that the "caught all bosses" tutorial runs
  13. Run debug command "spawnall"
  14. Run debug command "catchemall"
  15. Check that the Pokedex is complete
  16. Check that Odin is not at the starting location
  17. Check that the "caught em all" tutorial runs
  18. Check that Odin spawns after you talk to Professor Raven
  19. Check that Odin rotates to face you no matter where you go
  20. Talk to Odin
  21. Dismiss his message
  22. Verify that you die
  23. Verify that outro and credits roll
  24. Watch full credits, check formatting
  25. Verify that Odin is gone when you respawn
  26. Run debug command "tutorial caught_em_all"
  27. Talk to Raven
  28. Verify that Odin reappears
  29. Log out
  30. Click credits in menu
  31. Verify that Pokeheim credits run first
  32. Watch Pokeheim part of credits, check formatting
  33. Log back in
  34. Verify that Odin is still there
  35. Verify that Odin still follows you
  36. Talk to Odin, don't dismiss text
  37. Run away
  38. Verify that you die
  39. During outro, hit escape
  40. Outro should not be dismissed
  41. Let credits begin, then hit escape again
  42. The credits should be dismissed
  43. The player should respawn right away and not after the time credits would take

21. Languages

  1. Choose poorly-translated language, quit, and restart game
  2. Ensure that untranslated "loading" tips fallback to English
  3. Run debug command "tutorial temple1"
  4. Ensure that tutorial falls back to English
  5. Ensure that universally-translated text like Pokeball names, Pokedex name, style dialog heading show in the target language

22. Multiplayer

  1. TODO: Multiplayer testing script