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

Perfect doesn't work when used with Easy #20511

Open
Flan-Fan opened this issue Sep 27, 2022 · 7 comments
Open

Perfect doesn't work when used with Easy #20511

Flan-Fan opened this issue Sep 27, 2022 · 7 comments
Labels
area:mods priority:1 Very important. Feels bad without fix. Affects the majority of users.

Comments

@Flan-Fan
Copy link

Type

Game behaviour

Bug description

I was playing Hazu's Hard diff of Oka Soyo - OPENING with the mods Easy, Perfect, Hidden, Flashlight and Wiggle when I noticed that the map didn't auto-retry when I missed the first note

Upon further testing, I found that the problem was when I used the mods Easy and Perfect together. I also know that this bug wasn't specific to this map, as I tried playing the Hard diff of padowo padowo by senzawa with the mods Easy and Perfect and I was able to get a score with Easy and Perfect that wasn't an SS

Screenshots or videos

Video showing bug: https://youtu.be/vOi0GZ43bY0
Screenshot of a bugged score:
zJtplMA
Replay: bugged score.zip

Version

2022.923.1

Logs

database.log
network.log
performance.log
runtime.log
updater.log

@cdwcgt
Copy link
Contributor

cdwcgt commented Sep 27, 2022

This is because perfect mod let you fail but easy mod give you extra life

this mean sd also have this problem

@cdwcgt
Copy link
Contributor

cdwcgt commented Sep 27, 2022

https://github.com/ppy/osu/blob/master/osu.Game/Screens/Play/Player.cs#L142

- protected virtual bool CheckModsAllowFailure() => GameplayState.Mods.OfType<IApplicableFailOverride>().All(m => m.PerformFail());
+ protected virtual bool CheckModsAllowFailure() => GameplayState.Mods.OfType<IApplicableFailOverride>().Any(m => m.PerformFail());

this will fix

need to determine whether there is IApplicableFailOverride or Any method will return false

@peppy
Copy link
Sponsor Member

peppy commented Sep 28, 2022

I'm not sure these mods should be allowed to be used together in the first place. Will wait for more opinions.

@Feodor0090
Copy link
Contributor

You are failing if you lose all your HP. SD just makes you lose all HP once you miss, PF once you make any mistake.
Then, EZ gives you N chances to fully recover your HP without failing.
Personally I can't see what's wrong here - SD/PF just make HP draining harsher, they have nothing to do with its recovering.

Also, in past I played a lot with EZTP especially to have ability to make several mistakes and still pass a map. The proposed change removes this opportunity.

@hburn7
Copy link

hburn7 commented Sep 29, 2022

I'm not sure these mods should be allowed to be used together in the first place. Will wait for more opinions.

Personally I'm of the opinion that SD and PF should bypass the traditional failure route altogether and force failure through separate means. That way every mod (even easy/relax/autopilot) could work with SD and PF. I think if the player wants to test perfect autopilot play (so, perfect accuracy with no aim component), they should be able to do that. Same for Relax and perfect aim, there are lots of use cases for this type of implementation.

@cdwcgt
Copy link
Contributor

cdwcgt commented Sep 29, 2022 via email

@0xallie
Copy link

0xallie commented Jun 2, 2023

You can just go to mod customization and set extra lives for Easy to 0, that seems to work fine. Or am I missing something?

@bdach bdach added the priority:1 Very important. Feels bad without fix. Affects the majority of users. label Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:mods priority:1 Very important. Feels bad without fix. Affects the majority of users.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants