HearthSim / Hearthstone-Deck-Tracker

A deck tracker and deck manager for Hearthstone on Windows
https://hsreplay.net/downloads/
4.61k stars 1.11k forks source link

Feature Request: Battlegrounds Leaderboard #4039

Open therationalpi opened 4 years ago

therationalpi commented 4 years ago

Concept

It would be great if the leaderboard showed all of the useful information available to the player on the leaderboard. This would be a pretty big feature to add, but I feel like it's in line with HS Deck Tracker's purpose.

Here's the info it could show for each hero:

All of this info is normally available when you mouseover the hero's portrait in the sidebar, but you can't see at-a-glance what the state of the game is.

I made a mockup of what this might look like. Keep in mind that any of the elements could be turned off, to customize the view to only what the player wants to see.

ImprovedLeaderboardMockupFinal

This would make the current mouse-over view redundant for the heroes. So, in addition, mousing over a player would show their history for the whole match. This would be a timeline and a graph for each round, pretty much showing the same information as is shown on the new leaderboard over the course of the game. With this you could see when the hero leveled up tavern tiers, got triples, and a graph of both health and damage-dealt over the course of the game. The timing of tavern tiers and triples would be particularly useful, because you could tell what Tavern Tier the bonus minion received from the triple would have come from. I do not have a mockup for this.

Implementation

I originally wanted to produce this as a plugin for HSDeckTracker, but I realized that the info needed is not currently available through the API. Carefully examining all of the log outputs shows that this info isn't available there either. In fact, the only info that gets passed through the Powers log is the current Tavern Tier. Still useful, but not enough for a full leaderboard.

The info would need to be made available through Hearth Mirror. I found the Unity object that holds this info, and can share that info privately (I don't know how you guys feel about sharing that sort of game info publicly). I can say that there is more information available through the process than is shown in the UI, so whatever API HearthMirror presents to Decktracker will need sanitize the info a bit.

If you do decide to implement this, I'd like to offer whatever help I can on this feature. Including working on the Hearth Mirror project to add this info to the API. You can find me on the HearthSim discord: Pi#7902.

azeier commented 4 years ago

This is great. We've been talking about doing something like this for a while. There's no ETA at this time, but I'll bring it up internally again.

therationalpi commented 4 years ago

The data structure containing all of this info (and probably some that should not be exposed) is called PlayerLeaderboardManager.

therationalpi commented 4 years ago

History View

Here's a mockup of what the history might look like. You can see where each Tavern Tier was purchased, and the main tribe at each stage. In the example, Yogg is following the normal tier up pattern, started with two murlocs (tidehunter) and managed to get 3 murlocs on Turn 3. The Triple Occurred on the same turn as a tier up to 4, which means Yogg got a Tier 5 minion from the triple.

The line shows Yogg's health over time. The red bars show damage dealt by yogg on those rounds.

ImprovedLeaderboardHistoryFinal

HiDrNick commented 4 years ago

Signed on to github this morning to make a much crappier version of this feature request. Well put.