1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 15:57:24 +08:00
Commit Graph

198 Commits

Author SHA1 Message Date
Bartłomiej Dach
67ca7e4135
Implement toggling visibility of pass and fail storyboard layers
Closes https://github.com/ppy/osu/issues/6842.

This is a rather barebones implementation, just to get this in place
somehow at least. The logic is simple - 50% health or above shows pass
layer, anything below shows fail layer.

This does not match stable logic all across the board because I have
no idea how to package that. Stable defines "passing" in like fifty
ways:

- in mania it's >80% HP
  (bb57924c15/osu!/GameModes/Play/Rulesets/Mania/RulesetMania.cs#L333-L336)
- in taiko it's >80% *accuracy*
  (bb57924c15/osu!/GameModes/Play/Rulesets/Taiko/RulesetTaiko.cs#L486-L492)
- there's also the part where "geki additions" will unconditionally set
  passing state
  (bb57924c15/osu!/GameModes/Play/Player.cs#L3561-L3564)
- and also the part where at the end of the map, the final passing state
  is determined by checking whether the user passed more sections than
  failed
  (bb57924c15/osu!/GameModes/Play/Player.cs#L3320)

The biggest issues of these are probably the first two, and they can
*probably* be fixed, but would require a new member on `Ruleset` and I'm
not sure how to make one look, so I'm not doing that at this time
pending collection of ideas on how to do that.
2024-06-14 13:59:02 +02:00
Andrei Zavatski
1e90e5e38e Use sb element path as a name 2024-05-25 13:24:25 +03:00
Salman Ahmed
6d6f165884 Make video sprites flippable and vector-scalable to fix type constraint errors
Stable supports these on videos already from a quick read on code (since videos are generally a subclass of sprites).
2024-05-02 00:01:50 +03:00
Salman Ahmed
4ffeb5b469 Resolve post-merge-conflict issues 2024-05-01 23:57:58 +03:00
Salman Ahmed
895c09d4d1 Merge branch 'master' into storyboard-loops-v2 2024-05-01 23:46:38 +03:00
Dean Herbert
17ca29c2c6
Actually apply transforms to the video 2024-04-23 17:37:37 +08:00
Dean Herbert
7eeac0f3b9
Fix incorrect xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-04-23 17:34:52 +08:00
Dean Herbert
9e7182acf0
Remove unused DI beatmap paramater 2024-04-22 18:45:02 +08:00
Dean Herbert
c43c383abf
Allow storboard videos to take on no-relative size when specified by a mapper 2024-04-22 18:44:47 +08:00
Salman Ahmed
8c92bb0595 Remove unused using directive 2024-03-08 23:09:16 +03:00
Salman Ahmed
1942d46a38 Remove leftover debugging code 2024-03-08 22:37:27 +03:00
Salman Ahmed
fa9b2f0cd5 Add generics to ApplyInitialValue/ApplyTransforms for ability to return custom transform sequences
*sigh*
2024-03-08 03:07:39 +03:00
Salman Ahmed
585ab59768 Apply major refactor to the storyboard commands flow structrure 2024-03-08 01:10:09 +03:00
Andrei Zavatski
8b03acd27b Implement StoryboardElementWithDuration 2024-03-06 00:16:06 +03:00
Andrei Zavatski
f5d24e6804 Remove unused transform extensions 2024-03-03 21:54:37 +03:00
Salman Ahmed
5597b48882 Fix storyboard animations stripping path directory on skin lookup 2024-01-17 18:39:48 +03:00
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Bartłomiej Dach
e314913aeb
Handle null texture case 2023-09-27 11:18:38 +02:00
Dean Herbert
a7237e48aa Merge branch 'master' into fix-storyboard-skin-textures-lookup 2023-09-27 17:17:51 +09:00
Dean Herbert
3705c4c8d5 Avoid potentially incorrect size adjustment when texture doesn't change 2023-09-27 17:16:45 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions 2023-09-26 16:40:32 +09:00
Dean Herbert
567bc8fcd3 Ensure DrawableStoryboardSprite's texture size propagates corectly on skin change 2023-09-26 14:13:51 +09:00
Dean Herbert
2ca1c684bb
Merge branch 'master' into fix-storyboard-skin-textures-lookup 2023-09-26 14:05:27 +09:00
Dean Herbert
b5e64d933c Apply same fix to DrawableStoryboardAnimation 2023-09-20 12:54:36 +09:00
Dean Herbert
50adb5f7a7 Remove incorrectly merge conflict resolved 2023-09-20 12:54:28 +09:00
Bartłomiej Dach
641e651bf2
Fix DrawableStoryboardVideo attempting to unmap path once too much
The `StoryboardResourceLookupStore` cached at storyboard level is
supposed to already be handling that; no need for local logic anymore.
2023-09-19 20:18:33 +02:00
Bartłomiej Dach
ba518e1da8
Fix StoryboardResourceLookupStore dying on failure to unmap path
Before the introduction of `StoryboardResourceLookupStore`, missing
files would softly fail by use of null fallbacks. After the
aforementioned class was added, however, the fallbacks would not work
anymore if for whatever reason `GetStoragePathFromStoryboardPath()`
failed to unmap the storyboard asset name to a storage path.
2023-09-19 20:11:16 +02:00
Dean Herbert
4a7dc4d792 Fix storyboard UseSkinSprites being implemented incorrectly
This was implemented as a "fallback", but it's actually intended to be
an "override". As in it allows storyboarders to *prefer* a skin sprite
before falling back to a local version contained within the storyboard.

Can be tested with https://osu.ppy.sh/beatmapsets/832364#osu/1743837.

Closes https://github.com/ppy/osu/issues/24813.
2023-09-19 20:20:20 +09:00
Dean Herbert
773ec46989 Expose some storyboard pieces to allow better testability 2023-09-19 20:20:11 +09:00
Dean Herbert
900376b662 Refactor storyboard resource lookup to be more streamlined 2023-09-14 16:15:50 +09:00
Salman Ahmed
6674c70280 Add support for limiting skin texture/animation dimensions 2023-09-03 02:21:47 +03:00
Dean Herbert
20e4e2581a Change IBeatSyncProvider.Clock to always be non-null 2023-07-13 22:13:40 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Joseph Madamba
d6fa44240d
Fix storyboard video-only check being inverted 2023-05-16 21:51:32 -07:00
Dean Herbert
1efc78c0f8 Actually use new end time property when setting lifetimes 2023-04-26 13:28:51 +09:00
Dean Herbert
2cce785fa5 Fix storyboard videos not fading out on completion
Closes https://github.com/ppy/osu/issues/22802.

Stable uses a 1,000 ms fade-in / out. Rather than matching that, I've
stuck with 500ms (what lazer was already using for the fade-in) because
I think it feels better.

Tested using the beatmap linked in the issue thread.
2023-03-07 15:54:35 +09:00
Dean Herbert
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Salman Ahmed
835cae3087 Remove null conditional 2022-09-23 17:06:55 +03:00
Dean Herbert
4e9053b099 Fix crash when storyboard attempts to play at main menu 2022-09-23 20:10:57 +09:00
Dean Herbert
24138b65a7 Fix storyboard animations not starting their animation playback from the correct point in time 2022-09-12 14:05:16 +09:00
Dean Herbert
824e68dab3 Fix VectorScale set to 0 still showing some sprites in storyboard
This implementation was matching the [framework side implementation of
scale](16d1c2d335/osu.Framework/Graphics/Drawable.cs (L973-L976))
but I don't think it's required here.

I'm still not sure if the framework implementation is correct, but
removing it locally does seem to fix broken storyboard cases.

Closes https://github.com/ppy/osu/issues/20155.
2022-09-07 15:39:19 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
ac99c1ad69 Migrate the majority of existing file lookups to use new extension methods 2022-08-10 16:01:16 +09:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00
Bartłomiej Dach
71c0216c55
Add null check guards to unsubscriptions in Dispose() 2022-04-07 21:37:42 +02:00
Dean Herbert
040afff670 Change DrawableStoryboardAnimation to derive from TextureAnimation 2022-04-07 17:35:59 +09:00