diff --git a/fluXis.Game/Screens/Gameplay/Overlay/FullComboOverlay.cs b/fluXis.Game/Screens/Gameplay/Overlay/FullComboOverlay.cs index eb48e3b8..ce551adf 100644 --- a/fluXis.Game/Screens/Gameplay/Overlay/FullComboOverlay.cs +++ b/fluXis.Game/Screens/Gameplay/Overlay/FullComboOverlay.cs @@ -1,8 +1,10 @@ using System; using fluXis.Game.Graphics.Sprites; using fluXis.Game.Graphics.UserInterface.Color; +using fluXis.Game.Skinning; using fluXis.Game.Utils.Extensions; using osu.Framework.Allocation; +using osu.Framework.Audio.Sample; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; @@ -17,12 +19,18 @@ public partial class FullComboOverlay : CompositeDrawable private OutlinedSquare diamond; private FluXisSpriteText text; + private Sample sampleFullCombo; + private Sample sampleAllFlawless; + [BackgroundDependencyLoader] - private void load() + private void load(SkinManager skins) { RelativeSizeAxes = Axes.Both; Alpha = 0; + sampleFullCombo = skins.GetFullComboSample(); + sampleAllFlawless = skins.GetAllFlawlessSample(); + InternalChildren = new Drawable[] { background = new Box @@ -68,10 +76,14 @@ public void Show(FullComboType type) if (type == FullComboType.AllFlawless) { + sampleAllFlawless?.Play(); + diamond.ScaleTo(1, 1200, Easing.OutQuint) .RotateTo(-45).RotateTo(45, 1200, Easing.OutQuint) .BorderTo(0, 1200, Easing.OutQuint); } + else + sampleFullCombo?.Play(); background.FadeTo(.4f, 400); text.ScaleTo(1.2f, 1000, Easing.OutQuint); diff --git a/fluXis.Game/Skinning/Custom/CustomSkin.cs b/fluXis.Game/Skinning/Custom/CustomSkin.cs index 7b7cc1f1..692286e0 100644 --- a/fluXis.Game/Skinning/Custom/CustomSkin.cs +++ b/fluXis.Game/Skinning/Custom/CustomSkin.cs @@ -279,6 +279,8 @@ public Sample[] GetMissSamples() public Sample GetFailSample() => samples.Get("Samples/Gameplay/fail"); public Sample GetRestartSample() => samples.Get("Samples/Gameplay/restart"); + public Sample GetFullComboSample() => samples.Get("Samples/Gameplay/full-combo"); + public Sample GetAllFlawlessSample() => samples.Get("Samples/Gameplay/all-flawless"); public void Dispose() { diff --git a/fluXis.Game/Skinning/Default/DefaultSkin.cs b/fluXis.Game/Skinning/Default/DefaultSkin.cs index ddfeee1e..e2002b9b 100644 --- a/fluXis.Game/Skinning/Default/DefaultSkin.cs +++ b/fluXis.Game/Skinning/Default/DefaultSkin.cs @@ -108,6 +108,8 @@ public Drawable GetReceptor(int lane, int keyCount, bool down) public Sample[] GetMissSamples() => new[] { samples.Get("Gameplay/combobreak") }; public Sample GetFailSample() => samples.Get("Gameplay/fail"); public Sample GetRestartSample() => samples.Get("Gameplay/restart"); + public Sample GetFullComboSample() => samples.Get("Gameplay/full-combo"); + public Sample GetAllFlawlessSample() => samples.Get("Gameplay/all-flawless"); public void Dispose() { diff --git a/fluXis.Game/Skinning/ISkin.cs b/fluXis.Game/Skinning/ISkin.cs index 37981e10..afb7b936 100644 --- a/fluXis.Game/Skinning/ISkin.cs +++ b/fluXis.Game/Skinning/ISkin.cs @@ -43,4 +43,6 @@ public interface ISkin : IDisposable public Sample[] GetMissSamples(); public Sample GetFailSample(); public Sample GetRestartSample(); + public Sample GetFullComboSample(); + public Sample GetAllFlawlessSample(); } diff --git a/fluXis.Game/Skinning/SkinManager.cs b/fluXis.Game/Skinning/SkinManager.cs index b5e5ae73..9937cf37 100644 --- a/fluXis.Game/Skinning/SkinManager.cs +++ b/fluXis.Game/Skinning/SkinManager.cs @@ -285,4 +285,6 @@ private ISkin loadSkin(string folder) public Sample[] GetMissSamples() => currentSkin.GetMissSamples() ?? defaultSkin.GetMissSamples(); public Sample GetFailSample() => currentSkin.GetFailSample() ?? defaultSkin.GetFailSample(); public Sample GetRestartSample() => currentSkin.GetRestartSample() ?? defaultSkin.GetRestartSample(); + public Sample GetFullComboSample() => currentSkin.GetFullComboSample() ?? defaultSkin.GetFullComboSample(); + public Sample GetAllFlawlessSample() => currentSkin.GetAllFlawlessSample() ?? defaultSkin.GetAllFlawlessSample(); }