Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hollow Knight: AP Website Tracker #3422

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

mrkssr
Copy link
Contributor

@mrkssr mrkssr commented May 31, 2024

Please format your title with what portion of the project this pull request is
targeting and what it's changing.

ex. "MyGame4: implement new game" or "Docs: add new guide for customizing MyGame3"

What is this fixing or adding?

A tracker for Hollow Knight on the AP website.

How was this tested?

Local game hosting and creating different settings with text client item getting.

If this makes graphical changes, please attach screenshots.

Multitracker overview over all available HK games.
In the charms section are rows just created for players who have either randomized charms or charm notches.
If a option is not randomized it will be shown with a dash on a grayish background. (there are some exceptions like eggs because they seem to be send to the AP tracker anyway - in that case that are just a few and not all found in the seed)
HK_Multitracker1

Handling of the skills
HK_Multitracker3
HK_Multitracker2

Handling of the progressive charms.
HK_Multitracker4

View on a single player tracker.
HK_Tracker1

The single player tracker just shows icons to options which were randomized. Not randomized stuff will be hidden / not generated for the page tracker.
HK_Tracker2

In the rare case someone chooses just options which are not handled by the tracker (i.e. Geo Rocks or Lore Tablets) there will just be shown a message. There seems not to be a way to avoid the tracker at all in this case therefore a short notification.
HK_Tracker3

@github-actions github-actions bot added affects: webhost Issues/PRs that touch webhost and may need additional validation. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels May 31, 2024
@Exempt-Medic Exempt-Medic added the waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. label May 31, 2024
@BadMagic100
Copy link
Collaborator

Going to leave this one for @ThePhar to review as I do not use the web tracker, don't really see a downside to have it but not going to rush to review it either and web is not my specialty. Looks neat though

@ThePhar ThePhar self-assigned this May 31, 2024
@ThePhar
Copy link
Member

ThePhar commented May 31, 2024

Assigned myself to review after work.

@Exempt-Medic Exempt-Medic added the is: enhancement Issues requesting new features or pull requests implementing new features. label May 31, 2024
@BadMagic100
Copy link
Collaborator

@qwint I guess this is your problem now fyi

Copy link
Contributor

@qwint qwint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see the tooltip for Howling_Wraiths/Abyss_Shriek is "Progressive Shriek" but our item group for the two is "Scream"
I suggest following that same naming convention so we don't need to change it when we move to actual Progressive names

Elevator pass should be default on like focus/swim

Why have Progressive Dream Nail and Dreamgate? Dreamgate is the 2nd of the 3 Progressive Dream Nail stages

I'd want the horizontal (cloak/cdash) and vertical (claw/monarch wings) to be grouped together instead of staggered like they are currently

I'm not sure I like the progressive items showing as either the icon for the early form or a checkmark if fully gathered, but I'm not certain what I want it changed to,
My current ideas are:

  • always show the icon, for all stages
  • show some fraction (i.e. 1/2 then 2/2 progressive fireballs)
  • some partial checked icon for stage 1/2, but that would not work for 3 stage progressive items like dreamnail

is there any other webtrackers that have had to handle this? how do they display?

for the per player visual tracker, is there a way to make the background not pure black? It's hard to read
in addition: some of the icons are so greyscale already that the difference between 'off' and 'on' is hard to see, I think a per-icon background (like a square/circle behind the icon) that gets shaded in or not as well would help but I'm open to other suggestions
in addition, the per player visual tracker also shows one icon for cloak when none are collected, even if split cloak is on, can you make the number of icons consistent? (either by always making two icons and have some way to denote full shade cloak, or by compressing the split cloak into one icon ex. mothwing cloak with an R denoting right cloak only, a mothwing cloak with an F denoting full mothwing, a shade cloak with an L denoting left shade cloak with no right dash) I'm open to other designs that keep the icon count the same too.

Can the dreamer icons just be their masks instead of the full body icon? I feel those are more recognizable

background-size: cover;
background-repeat: no-repeat;
background-position: center;
} */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i assume this was commented while you were developing and can just be deleted now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes. I'll remove that.

"Progressive Heart" : ["Fragile_Heart", "Fragile_Heart", "Unbreakable_Heart"],
"Progressive Greed" : ["Fragile_Greed", "Fragile_Greed", "Unbreakable_Greed"],
"Progressive Strength" : ["Fragile_Strength", "Fragile_Strength", "Unbreakable_Strength"],
"Progressive Grimmchild" : ["Grimmchild1", "Grimmchild1", "Grimmchild2", "Grimmchild3", "Grimmchild4"],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grimmchild doesn't work as a progressive item in AP
the difference between grimmchild1 and grimmchild2 is 2 tells the game that it should start upgraded so the player doesn't need the grimkin flames, where 1 tells the game to start in 1 form and force the player to upgrade it with the flames in the multiworld

we could still use the different icons for whichever is in the itempool / is sent, but they are not progressive

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would keep a single icon, barring some plando nonsense there will only ever be 1 grimmchild in the seed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sometimes there is Grimmchild 1 and sometimes 2. I could rewrite it in code to just Grimmchild. It is guaranteed that there is just on Grimmchild at a time?

Copy link
Contributor Author

@mrkssr mrkssr Jun 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The progressive is there more for the visual icon. So when Grimmchild1 is in pool then we get that icon, if it's two we get the other. Progression is here more because of using the existing stuff as workaround, independend of progressive behaviour or not in game. (so therefore it makes maybe sense to keep the progression but rename the group to Grimmchild)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plando can cause both Grimmchilds to exist. But that can also cause, say, twenty Dream Nail items to exist or 5 version of a progressive item that only has two stages. I believe outside of plando there is only ever one Grimmchild

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/hk/__init__.py#L305
yes, either 1 or 2 will be added to the itempool, never both (without things like plando that we shouldn't need to cover for)
regardless it sounds like you understand they don't actually act like progression items, so whichever icons you chose to display is fine by me

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

I see the tooltip for Howling_Wraiths/Abyss_Shriek is "Progressive Shriek" but our item group for the two is "Scream" I suggest following that same naming convention so we don't need to change it when we move to actual Progressive names

I can change that. Are the other group names in the world code so I could take a look for the other groups as well?

Elevator pass should be default on like focus/swim

Focus/Swim are just checkmarked by default in the multi tracker. So I can do that for Elevator Pass there as well. In the single player tracker the other both are shown just when the option is randomized.

Why have Progressive Dream Nail and Dreamgate? Dreamgate is the 2nd of the 3 Progressive Dream Nail stages

Didn't know that all three are connected together. So I'll change it to Dreamgate as second between the other both.

I'd want the horizontal (cloak/cdash) and vertical (claw/monarch wings) to be grouped together instead of staggered like they are currently

I don't understand how that is meant / how that is visually expected.

I'm not sure I like the progressive items showing as either the icon for the early form or a checkmark if fully gathered, but I'm not certain what I want it changed to, My current ideas are:

  • always show the icon, for all stages
  • show some fraction (i.e. 1/2 then 2/2 progressive fireballs)
  • some partial checked icon for stage 1/2, but that would not work for 3 stage progressive items like dreamnail

is there any other webtrackers that have had to handle this? how do they display?

Base is the ALttP tracker. There we have the mail (three stages) and sword (four stages). There is shown just the last/current one in the progression. That looks in my opinion also cleaner than i.e. a 1/2 and so on.

for the per player visual tracker, is there a way to make the background not pure black? It's hard to read in addition: some of the icons are so greyscale already that the difference between 'off' and 'on' is hard to see, I think a per-icon background (like a square/circle behind the icon) that gets shaded in or not as well would help but I'm open to other suggestions in addition, the per player visual tracker also shows one icon for cloak when none are collected, even if split cloak is on, can you make the number of icons consistent? (either by always making two icons and have some way to denote full shade cloak, or by compressing the split cloak into one icon ex. mothwing cloak with an R denoting right cloak only, a mothwing cloak with an F denoting full mothwing, a shade cloak with an L denoting left shade cloak with no right dash) I'm open to other designs that keep the icon count the same too.

  • I could change the pure black background. Would that still be a problem when there is i.e. a colored background behind each icon so I have to change both or would the black background be fine when every icon has circle around?
  • The idea with the left/right icons for cloak was to see that i.e. left is collected, right is missing. But maybe that is not necessary anymore if that is a single one, marked as collected and the L or R as note added.
  • Not sure if we need an extra indicator for full cloak. If it is shown as collected and there is no letter then it's the full one.

Can the dreamer icons just be their masks instead of the full body icon? I feel those are more recognizable

I have used the icons from https://hollowknight.wiki. There they were not other available. I would take a look for another source and change them.

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

That is how full tracker looks like in ALttP. The bow, mail, shield, sword and gloves are progressive items. The number for the sword is part of the icon.
The bottle can be obtained multiple times. That is comparable with vessels, mask shards or Grubs in the HK tracker.

image

This is how it look when there is just a few stuff collected so far.

image

@Exempt-Medic
Copy link
Member

For the Dreamers, you could use their map pins

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

Haven't found them before but that are the one I wanted use anyway. I'll replace the current one then with them. :)

@qwint
Copy link
Contributor

qwint commented Jun 11, 2024

item groups are defined here:
https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/hk/Items.py#L27

the horizontal/vertical comment was about grouping these columns
image
in both places
image

as both horizontal (cloak, cdash) and then both vertical (claw, wings)
the current order is more how one would naturally get them in vanilla, but that's not the most natural when dealing with rando

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

Done changes:

  • Changed the icons for the dreamers.
  • Added a mapping for header texts for progressive items like fireball. Like that the background could stay the same like it was done in ALttP or OoT. (Now there is shown in header i.e.: Fireball, Mothwing/Shade Cloak, Scream)
  • Dreamnail and Dreamgate is now merged and also set to progression by order (1. Dreamnail, 2. Dreamgate, 3. Awoken Dreamnail)
  • Elevator Pass is in multi tracker marked as collected when it's not randomized in the pool.
  • Grid layout changed. It's now everything below instead of the wide screen.
  • In multi and single player tracker is the skill order now cloak, cdash, claw, wings.

Still to do:

  • background
  • behaviour for (not) splitted cloak

Not planned to changed at the moment: Grimmchild

  • Progression for Grimmchild is used to show the sent one in tracker. In that way there is no extra logic needed to implement.
  • Grimmchild 3 and 4 could be removed when they are not obtainable at all and it's not a thing for the future.

(hope, didn't forget anything)

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

  • Background color changed, icons have now also a circle around to support the visual if the item is collected or not.
  • Splitted Mothwing/Shade Cloak is now also a single icon.

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

Full view of collected icons. (all sections are now also below each other)
image

Full view of not collected icons.
image

Multi tracker (Elevator Pass is now shown as equipped, when it's not in the pool).
image

When Elevator is in pool and not collected the multi tracker shows it properly.
image

Splitted Cloak: Double Left Cloak, no Right Cloak = Left Shade Cloak
image

Splitted Cloak: Right Cloak, no Left Cloak = Right Mothwing Cloak
image

Dreamgate is part of the Dreamnail chain.
image
image
image

Vertical and horizontal movement skills besides each other. (multi and player tracker)
image
image

@qwint
Copy link
Contributor

qwint commented Jun 11, 2024

why did Progressive Dive get switched to "Quake"? the item group is "Dive"
https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/hk/Items.py#L35

other than that this looks great, thanks

@mrkssr
Copy link
Contributor Author

mrkssr commented Jun 11, 2024

As I searched for Scream I have read somewhere Quake for Dive. Probably here.
https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/hk/ExtractedData.py#L6

Overlooked then obviously that it is dive as you've sent the reference. Is now changed back to "Dive".

Copy link
Contributor

@qwint qwint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mostly reviewed content of the new webtrackers, but also skimmed through the code and everything looked ok. There are some grammar issues in the comments but I felt they read fine as to not worry.

@Exempt-Medic Exempt-Medic removed the waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. label Aug 21, 2024
WebHostLib/tracker.py Outdated Show resolved Hide resolved
@Exempt-Medic
Copy link
Member

This seems to be missing the Godtuner

@qwint
Copy link
Contributor

qwint commented Aug 21, 2024

This seems to be missing the Godtuner

good point, Godtuner is now required progression for exactly the godhome flowerquest goal so it should be tracked properly

@mrkssr
Copy link
Contributor Author

mrkssr commented Aug 21, 2024

I'm not at home this week. I'll add the stuff either in between if there is some time or next week.
What is Godtuner doing for the new goal that it is necessary? Isn't it just blinking when a boss was defeated.

@qwint
Copy link
Contributor

qwint commented Aug 21, 2024

I'm not at home this week. I'll add the stuff either in between if there is some time or next week. What is Godtuner doing for the new goal that it is necessary? Isn't it just blinking when a boss was defeated.

The godseeker flower quest dialogue that is required for the godhome flower ending won't trigger unless you have godtuner
so it is purely for reaching goal and not a requirement for any particular location

@mrkssr
Copy link
Contributor Author

mrkssr commented Aug 29, 2024

Godtuner added

Multitracker
image

Single tracker
image

@mrkssr
Copy link
Contributor Author

mrkssr commented Sep 26, 2024

Is it fine so far or should be changed something else?

@qwint
Copy link
Contributor

qwint commented Nov 30, 2024

I was also noticing that the non-multitracker version of the HK Tracker doesn't seem to be refreshing, not sure where that problem is because I wasn't seeing any error/warning on my webhost log

@mrkssr
Copy link
Contributor Author

mrkssr commented Nov 30, 2024

Template for that was the ALttP tracker. There is just one element with the class .inventory-grid, here we have one per item type. So a change was missing to update all elements. Fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: webhost Issues/PRs that touch webhost and may need additional validation. is: enhancement Issues requesting new features or pull requests implementing new features. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants