-
Notifications
You must be signed in to change notification settings - Fork 122
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
Show division in replays when available #3042
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #3042 +/- ##
=============================================
+ Coverage 58.72% 58.84% +0.12%
- Complexity 3956 3982 +26
=============================================
Files 573 576 +3
Lines 19164 19284 +120
Branches 1014 1018 +4
=============================================
+ Hits 11254 11348 +94
- Misses 7421 7442 +21
- Partials 489 494 +5
... and 2 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
The core functionality is there, but it is still a bit rough around the edges. |
8dcec1f
to
d5de031
Compare
src/main/java/com/faforever/client/domain/GamePlayerStatsBean.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/game/PlayerCardController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/game/TeamCardController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/game/TeamCardController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/game/TeamCardController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/replay/ReplayDetailController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/replay/ReplayDetailController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/replay/ReplayDetailController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/faforever/client/replay/ReplayDetailController.java
Outdated
Show resolved
Hide resolved
src/test/java/com/faforever/client/builders/LeagueScoresListBuilder.java
Outdated
Show resolved
Hide resolved
b808618
to
2114cf7
Compare
@BlackYps were you ever going to get back to this? There have also been a few changes to the underlying objects as an FYI. |
I don't plan to abandon this, on the other hand I am really not motivated to do the refactoring that is required here. |
Then I might just close this in a week and it can be reopened when you revisit it. |
I'm picking this up again |
3c401bd
to
fa3c779
Compare
The population of the values of the controllers and the displaying of these values are now nicely decoupled. There is one issue though. In a matchmaker game the people that don't have a division still display the rating and the team rating is displayed as well. The problem is that the player cards without a division don't know about the presence of divisions in different player cards. We need some way to check if we found any league stats for the replay (the api call) and then disable rating display for the whole thing somehow |
For displaying the whole thing you can just have a display type enum that has a property in the player card. Then you can set that property appropriately to display either rating or league. Could even just bind it to some property in the parent. |
src/main/java/com/faforever/client/game/TeamCardController.java
Outdated
Show resolved
Hide resolved
I guess a boolean would even be enough, something like |
Yeah I was just thinking of an enum to make it clearer what it signifies. Since hasLeagueScore doesn't imply as much that ratings won't be shown. Where as something like display type would make that clearer. |
yeah, I can see that. |
Was testing this out and one thing that stuck out as a little bit odd to me. Why do we require pressing the show game result to show the game outcome on the team card. Maybe we should just display it always on load? |
I think this kind as introduced to make it possible to watch a game without being spoiled on which side wins |
Sure but now you can also play directly from the search result page |
Hmm, that's true. Maybe we should discuss this with more users to better understand how they use this button at the moment. It's definitely an interesting suggestion, but imo it is unrelated to this PR |
What is the status of this? |
From my pov it is ready |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only consequential thing I see is a race condition between populateTeamContainers and loading the league score results.
Can I do something about that race condition? |
You could make sure that you don't try to load the league data until after the team containers are populated |
I think I first need to understand the race condition a little better. As I see it we run the risk that the league info is applied to the old teamcardcontrollers, so they get cleared right after and new controllers for the new replay get added in populateTeamsContainer if this happens after the application of the league info. |
They are created asynchronously so they don't block the application thread and cause the ui to freeze. And to cure the race condition you would just load the league info after create team controllers is called or make it apart of create team controllers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was an issue with the team card controllers being added twice but I fixed it.
Showing division is nice, but was it necessary to remove the rating change? It means you need to check your profile after every match and keep a spreadsheet if you want to track changes rather than it being plainly displayed in the replays. |
Yes, the divisions are supposed to replace the rating. The rating system is considered to be part of the backend, it's not necessary to show it to the user when the division system exists |
Are we going to get transparency in how divisions are calculated? Currently divisions are more or less meaningless, every other system (ingame player lists, lobby entry requirements, matchmaking, game quality rating) works on rating. Divisions are really large and imprecise, you could win 15 games in a row and see no change. Even systems that obfuscate Elo / MMR (eg LoL) show points to measure how far up or down you are inside a division. |
What exactly is the problem you are having? I'm trying to und erstand it so I can hopefully address it in my answer. |
I wasn't aware about the Leaderboards or Score system at all. I was under the impression that division was based on rating (e.g. Gold V being 800 - 900). This does answer my questions. I still don't understand why you would hide information from the player, even if you consider rating to be back-end, but that's your prerogative. |
WIP