TeamRizu / OutFox

The Bug Reporting Repository for OutFox LTS 0.4, Alpha V and Steam Early Access Builds
https://projectoutfox.com
Apache License 2.0
187 stars 3 forks source link

[Feature Request] Hands/Keys Differentiation #442

Closed DarkBahamut162 closed 2 years ago

DarkBahamut162 commented 3 years ago

Is your feature request related to a problem?

This has two reasons:

The first one is self-explainatory as there apparently are no clear rules on how to set them. Some songs on the same difficulty rating are somewhat easier/harder than others (and some might even me misrated).

I myself have already thought of a calculation, as Etterna's MSD-System isn't open source:

math.round( ( (steps + jumps + hands * 2) / (getLastSecond - getFirstSecond) ) * 2 )

This results into a mix between the old DDR and the DDRX rating. The only problem is: Currently, everything from triples and onwards are being grouped together even though the difficulty between a triple and a quad are somewhat different, especially in PIU or beatmania with more arrows/keys (and even the disc).

The second one is mostly for stats in-game but can be reasoned with some dev commentary within StepMania (maybe even in OutFox as well). Within NoteDataUtil.cpp inside the function of "CalculateRadarValues" around line 1000, there is the following:

// total_taps exists because the stream calculation needs GetNumTapNotes,
// but TapsAndHolds + Jumps + Hands would be inaccurate. -Kyz

Also: Most evaluation screens, if they display the max possible combo, are only being shown off with "TapsAndHolds" aka the "ComboIsPerRow = true" way But a differentiation of hands makes it possible to actually make it accurate.

Another reason is being mentioned within the Additional context section down below

Describe the solution you'd like

There are two ways on how to deal with this. But because of there being a second field for an alternative, I've split it in two seperate parts.

The first one is the following:

It's simple and can be named accordingly: "triple, quad, ..."

Describe alternatives you've considered

There are two ways on how to deal with this. The second one is the following:

The second one can be done to existing code by adding an optional value (the "hand size") and make it legacy compatible that way.

GetHands() = Number of all Hands (all 3s, all 4s,...) GetHands(3) = Number of all hands with the size of exactly 3. GetHands(4) = Number of all hands with the size of exactly 4. ...

Additional context

This might also be able to maybe fill out empty space like the current beat mode (where there are only 2* stats being shown off. This feature might bump this up to seven... Actually 8, forgot about the disc)

*not sure if that has been changed already as the Alpha V preview didn't show off beat's music selection screen