Compare commits
2 Commits
9f779dac03
...
237e1828f8
| Author | SHA1 | Date | |
|---|---|---|---|
| 237e1828f8 | |||
| 3413f722f7 |
@@ -158,6 +158,7 @@ namespace osu.Game.Configuration
|
|||||||
SetDefault(OsuSetting.ReplayPlaybackControlsExpanded, true);
|
SetDefault(OsuSetting.ReplayPlaybackControlsExpanded, true);
|
||||||
SetDefault(OsuSetting.GameplayLeaderboard, true);
|
SetDefault(OsuSetting.GameplayLeaderboard, true);
|
||||||
SetDefault(OsuSetting.AlwaysPlayFirstComboBreak, true);
|
SetDefault(OsuSetting.AlwaysPlayFirstComboBreak, true);
|
||||||
|
SetDefault(OsuSetting.AlwaysPlayComboBreak, false);
|
||||||
|
|
||||||
SetDefault(OsuSetting.FloatingComments, false);
|
SetDefault(OsuSetting.FloatingComments, false);
|
||||||
|
|
||||||
@@ -369,6 +370,7 @@ namespace osu.Game.Configuration
|
|||||||
GameplayLeaderboard,
|
GameplayLeaderboard,
|
||||||
PositionalHitsoundsLevel,
|
PositionalHitsoundsLevel,
|
||||||
AlwaysPlayFirstComboBreak,
|
AlwaysPlayFirstComboBreak,
|
||||||
|
AlwaysPlayComboBreak,
|
||||||
FloatingComments,
|
FloatingComments,
|
||||||
HUDVisibilityMode,
|
HUDVisibilityMode,
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ namespace osu.Game.Overlays.Settings.Sections.Gameplay
|
|||||||
{
|
{
|
||||||
protected override LocalisableString Header => GameplaySettingsStrings.AudioHeader;
|
protected override LocalisableString Header => GameplaySettingsStrings.AudioHeader;
|
||||||
|
|
||||||
|
private SettingsCheckbox alwaysPlayFirst = null!;
|
||||||
|
private SettingsCheckbox alwaysPlay = null!;
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuConfigManager config, OsuConfigManager osuConfig)
|
private void load(OsuConfigManager config, OsuConfigManager osuConfig)
|
||||||
{
|
{
|
||||||
@@ -26,13 +29,23 @@ namespace osu.Game.Overlays.Settings.Sections.Gameplay
|
|||||||
KeyboardStep = 0.01f,
|
KeyboardStep = 0.01f,
|
||||||
DisplayAsPercentage = true
|
DisplayAsPercentage = true
|
||||||
},
|
},
|
||||||
new SettingsCheckbox
|
alwaysPlayFirst = new SettingsCheckbox
|
||||||
{
|
{
|
||||||
ClassicDefault = false,
|
ClassicDefault = false,
|
||||||
LabelText = GameplaySettingsStrings.AlwaysPlayFirstComboBreak,
|
LabelText = GameplaySettingsStrings.AlwaysPlayFirstComboBreak,
|
||||||
Current = config.GetBindable<bool>(OsuSetting.AlwaysPlayFirstComboBreak)
|
Current = config.GetBindable<bool>(OsuSetting.AlwaysPlayFirstComboBreak)
|
||||||
|
},
|
||||||
|
alwaysPlay = new SettingsCheckbox
|
||||||
|
{
|
||||||
|
ClassicDefault = false,
|
||||||
|
LabelText = "Always play combo break sound",
|
||||||
|
Current = config.GetBindable<bool>(OsuSetting.AlwaysPlayComboBreak)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
alwaysPlay.Current.BindValueChanged(d =>
|
||||||
|
{
|
||||||
|
alwaysPlayFirst.Current.Disabled = d.NewValue;
|
||||||
|
}, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ using osu.Game.Graphics;
|
|||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
using osu.Game.Input.Bindings;
|
using osu.Game.Input.Bindings;
|
||||||
|
using osu.Game.Screens.Play.HUD;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ namespace osu.Game.Overlays.Volume
|
|||||||
private readonly Color4 meterColour;
|
private readonly Color4 meterColour;
|
||||||
private readonly string name;
|
private readonly string name;
|
||||||
|
|
||||||
private OsuSpriteText text;
|
private ArgonCounterTextComponent text { get; set; }
|
||||||
private BufferedContainer maxGlow;
|
private BufferedContainer maxGlow;
|
||||||
|
|
||||||
private Container selectedGlowContainer;
|
private Container selectedGlowContainer;
|
||||||
@@ -199,12 +200,7 @@ namespace osu.Game.Overlays.Volume
|
|||||||
Radius = 10,
|
Radius = 10,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
maxGlow = (text = new OsuSpriteText
|
maxGlow = (text = new ArgonCounterTextComponent(Anchor.Centre)).WithEffect(new GlowEffect
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
Font = OsuFont.Numeric.With(size: 0.16f * CircleSize)
|
|
||||||
}).WithEffect(new GlowEffect
|
|
||||||
{
|
{
|
||||||
Colour = Color4.Transparent,
|
Colour = Color4.Transparent,
|
||||||
PadExtent = true,
|
PadExtent = true,
|
||||||
@@ -239,6 +235,8 @@ namespace osu.Game.Overlays.Volume
|
|||||||
|
|
||||||
Bindable.BindValueChanged(volume => { this.TransformTo(nameof(DisplayVolume), volume.NewValue, 400, Easing.OutQuint); }, true);
|
Bindable.BindValueChanged(volume => { this.TransformTo(nameof(DisplayVolume), volume.NewValue, 400, Easing.OutQuint); }, true);
|
||||||
|
|
||||||
|
text.Scale = new Vector2(0.9f);
|
||||||
|
text.WireframeOpacity.BindTo(new BindableFloat(0.5f));
|
||||||
bgProgress.Progress = 0.75f;
|
bgProgress.Progress = 0.75f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,9 +256,11 @@ namespace osu.Game.Overlays.Volume
|
|||||||
|
|
||||||
displayVolumeInt = intValue;
|
displayVolumeInt = intValue;
|
||||||
|
|
||||||
|
text.WireframeTemplate = new string('#', intValue.ToString().Length);
|
||||||
|
|
||||||
if (displayVolume >= 0.995f)
|
if (displayVolume >= 0.995f)
|
||||||
{
|
{
|
||||||
text.Text = "MAX";
|
text.Text = "100";
|
||||||
maxGlow.EffectColour = meterColour.Opacity(2f);
|
maxGlow.EffectColour = meterColour.Opacity(2f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -29,6 +29,14 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
|
|
||||||
private Action? triggerFailureDelegate;
|
private Action? triggerFailureDelegate;
|
||||||
|
|
||||||
|
// NOTE: when processing serialized replays with both these values enabled, only `Exit`'s value is applied.
|
||||||
|
// I guess that's reasonable and doesn't break much.
|
||||||
|
public ModFailCondition()
|
||||||
|
{
|
||||||
|
Restart.BindValueChanged(d => { if (d.NewValue) Exit.Value = false; });
|
||||||
|
Exit.BindValueChanged(d => { if (d.NewValue) Restart.Value = false; });
|
||||||
|
}
|
||||||
|
|
||||||
public void ApplyToHealthProcessor(HealthProcessor healthProcessor)
|
public void ApplyToHealthProcessor(HealthProcessor healthProcessor)
|
||||||
{
|
{
|
||||||
triggerFailureDelegate = healthProcessor.TriggerFailure;
|
triggerFailureDelegate = healthProcessor.TriggerFailure;
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ namespace osu.Game.Screens.Play
|
|||||||
|
|
||||||
private Bindable<bool> alwaysPlayFirst;
|
private Bindable<bool> alwaysPlayFirst;
|
||||||
|
|
||||||
|
private Bindable<bool> alwaysPlay;
|
||||||
|
|
||||||
private double? firstBreakTime;
|
private double? firstBreakTime;
|
||||||
|
|
||||||
public ComboEffects(ScoreProcessor processor)
|
public ComboEffects(ScoreProcessor processor)
|
||||||
@@ -33,6 +35,7 @@ namespace osu.Game.Screens.Play
|
|||||||
{
|
{
|
||||||
InternalChild = comboBreakSample = new SkinnableSound(new SampleInfo("Gameplay/combobreak"));
|
InternalChild = comboBreakSample = new SkinnableSound(new SampleInfo("Gameplay/combobreak"));
|
||||||
alwaysPlayFirst = config.GetBindable<bool>(OsuSetting.AlwaysPlayFirstComboBreak);
|
alwaysPlayFirst = config.GetBindable<bool>(OsuSetting.AlwaysPlayFirstComboBreak);
|
||||||
|
alwaysPlay = config.GetBindable<bool>(OsuSetting.AlwaysPlayComboBreak);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
@@ -56,7 +59,7 @@ namespace osu.Game.Screens.Play
|
|||||||
if (gameplayClock.IsRewinding)
|
if (gameplayClock.IsRewinding)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (combo.NewValue == 0 && (combo.OldValue > 20 || (alwaysPlayFirst.Value && firstBreakTime == null)))
|
if (combo.NewValue == 0 && (combo.OldValue > 20 || (alwaysPlayFirst.Value && firstBreakTime == null) || alwaysPlay.Value))
|
||||||
{
|
{
|
||||||
firstBreakTime = gameplayClock.CurrentTime;
|
firstBreakTime = gameplayClock.CurrentTime;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user