Skip to content

Commit dc3dce5

Browse files
nekodexpeppy
andauthored
Add SFX to damage bonus/multipliers on ranked play results screen (ppy#37867)
damage increase: https://github.com/user-attachments/assets/bbb1be6c-fd32-4a74-af6c-6bfce10f73d5 damage decrease: https://github.com/user-attachments/assets/f9762234-29a0-4be9-9b77-4a89ccaf28ea --- - [x] depends on ppy/osu-resources#428 Co-authored-by: Dean Herbert <pe@ppy.sh>
1 parent d89d6ed commit dc3dce5

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

osu.Game/Screens/OnlinePlay/Matchmaking/RankedPlay/ResultsScreen.MainPanel.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ private partial class MainPanel : CompositeDrawable
7777
private DrawableSample resultsAppearSample = null!;
7878
private DrawableSample dmgFlySample = null!;
7979
private DrawableSample dmgHitSample = null!;
80+
private DrawableSample damageMultiplierSample = null!;
81+
private DrawableSample damageMultiplierUpSample = null!;
82+
private DrawableSample damageMultiplierDownSample = null!;
8083
private DrawableSample hpDownSample = null!;
8184
private DrawableSample playerAppearSample = null!;
8285
private DrawableSample pseudoScoreCounterSample = null!;
@@ -337,6 +340,9 @@ private void load(AudioManager audio)
337340
resultsAppearSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/results-appear")),
338341
dmgFlySample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/dmg-fly")),
339342
dmgHitSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/dmg-hit")),
343+
damageMultiplierSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/dmg-multiplier")),
344+
damageMultiplierUpSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/dmg-multiplier-up")),
345+
damageMultiplierDownSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/dmg-multiplier-down")),
340346
hpDownSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/hp-down")),
341347
playerAppearSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/players-appear")),
342348
pseudoScoreCounterSample = new DrawableSample(audio.Samples.Get(@"Multiplayer/Matchmaking/Ranked/Results/pseudo-score-counter")),
@@ -515,14 +521,22 @@ private void playAnimation()
515521
));
516522
}
517523

524+
int pitchChangeAmount = 0;
525+
518526
foreach (var breakdown in damageBreakdowns)
519527
{
520528
using (BeginDelayedSequence(delay))
521529
{
530+
int pitch = pitchChangeAmount;
531+
522532
Schedule(() =>
523533
{
524534
damageBreakdownValueText.Text = breakdown.displayValue;
525535
damageBreakdownSourceText.Text = breakdown.source;
536+
537+
SampleChannel damageBreakdownChannel = damageMultiplierSample.GetChannel();
538+
damageBreakdownChannel.Frequency.Value = 1f + (pitch * .1f);
539+
damageBreakdownChannel.Play();
526540
});
527541

528542
damageBreakdownContainer.MoveToX(120)
@@ -540,7 +554,16 @@ private void playAnimation()
540554
.ScaleTo(new Vector2(1.25f), 200, Easing.OutQuint)
541555
.Then()
542556
.ScaleTo(Vector2.One, 200);
557+
558+
SampleChannel scoreChangeChannel = breakdown.rawDamage > 0 ? damageMultiplierUpSample.GetChannel() : damageMultiplierDownSample.GetChannel();
559+
scoreChangeChannel.Frequency.Value = 1f + (pitch * .1f);
560+
scoreChangeChannel.Play();
543561
});
562+
563+
if (breakdown.rawDamage > 0)
564+
pitchChangeAmount++;
565+
else if (breakdown.rawDamage < 0)
566+
pitchChangeAmount--;
544567
}
545568
}
546569

0 commit comments

Comments
 (0)