Addresses
https://github.com/ppy/osu/discussions/32568#discussioncomment-12610577.
No changes in criteria (yet?), just allowing locally imported plays to
count the same way as full beatmap completion does.
The test scene is a bit rough / semi-manual but dealing with score
imports is a bit of a pain in general. The way to semi-manually test
with the test scene is to import a subset of scores, then recreate the
statistics panel, and observe behaviour. I'm not sure it's worth it to
be putting subscriptions in there, so the full recreation of the panel
is necessary.
This also throws away the logic of updating
`API.LocalUser.Value.Statistics`. Components should rely on
`LocalUserStatisticsProvider` instead for proper behaviour and ability
to update on statistics updates.
There were no usages of more than one column being provided per row, so
it seemed like unnecessarily complexity. I'm currently trying to reduce
complexity so we can improve the layout of the results screen, which
currently has up to three levels of nested `GridContainer`s.
Of note, I can't add backwards compatibility because the method
signature has not changed in `Ruleset` (only the return type). If we do
want to keep compatibility with other rulesets, we could designate a new
name for the updated method.
`TestSceneStatisticsPanel` intends to check the operation of statistics
panels using dummy ruleset classes. However, `StatisticsPanel` relies on
being able to retrieve the playable beatmap, which requires a converter.
One was not provided by the dummy rulesets, therefore the retrieval
would fail with an unobserved exception.
To fix, add a barebones converter implementation that is enough for the
test to pass.
The main goal here is to remove the inheritance, since realm doesn't
like that. Unfortunate that we can't use object initialisers in a few of
these places, but no real way around that.