mirror of
https://github.com/ppy/osu.git
synced 2025-01-14 00:42:55 +08:00
Merge branch 'master' into schedule-music-controller-operations
This commit is contained in:
commit
e915f22516
@ -14,8 +14,6 @@ using osu.Game.Graphics.UserInterface;
|
|||||||
using osu.Game.Overlays.Mods;
|
using osu.Game.Overlays.Mods;
|
||||||
using osu.Game.Overlays.Mods.Sections;
|
using osu.Game.Overlays.Mods.Sections;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Rulesets.Mania;
|
|
||||||
using osu.Game.Rulesets.Mania.Mods;
|
|
||||||
using osu.Game.Rulesets.Mods;
|
using osu.Game.Rulesets.Mods;
|
||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
using osu.Game.Rulesets.Osu.Mods;
|
using osu.Game.Rulesets.Osu.Mods;
|
||||||
@ -117,8 +115,6 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
public void TestManiaMods()
|
public void TestManiaMods()
|
||||||
{
|
{
|
||||||
changeRuleset(3);
|
changeRuleset(3);
|
||||||
|
|
||||||
testRankedText(new ManiaRuleset().GetModsFor(ModType.Conversion).First(m => m is ManiaModRandom));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -217,15 +213,6 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
checkLabelColor(() => Color4.White);
|
checkLabelColor(() => Color4.White);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testRankedText(Mod mod)
|
|
||||||
{
|
|
||||||
AddUntilStep("check for ranked", () => modSelect.UnrankedLabel.Alpha == 0);
|
|
||||||
selectNext(mod);
|
|
||||||
AddUntilStep("check for unranked", () => modSelect.UnrankedLabel.Alpha != 0);
|
|
||||||
selectPrevious(mod);
|
|
||||||
AddUntilStep("check for ranked", () => modSelect.UnrankedLabel.Alpha == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void selectNext(Mod mod) => AddStep($"left click {mod.Name}", () => modSelect.GetModButton(mod)?.SelectNext(1));
|
private void selectNext(Mod mod) => AddStep($"left click {mod.Name}", () => modSelect.GetModButton(mod)?.SelectNext(1));
|
||||||
|
|
||||||
private void selectPrevious(Mod mod) => AddStep($"right click {mod.Name}", () => modSelect.GetModButton(mod)?.SelectNext(-1));
|
private void selectPrevious(Mod mod) => AddStep($"right click {mod.Name}", () => modSelect.GetModButton(mod)?.SelectNext(-1));
|
||||||
@ -272,7 +259,6 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
public new OsuSpriteText MultiplierLabel => base.MultiplierLabel;
|
public new OsuSpriteText MultiplierLabel => base.MultiplierLabel;
|
||||||
public new OsuSpriteText UnrankedLabel => base.UnrankedLabel;
|
|
||||||
public new TriangleButton DeselectAllButton => base.DeselectAllButton;
|
public new TriangleButton DeselectAllButton => base.DeselectAllButton;
|
||||||
|
|
||||||
public new Color4 LowMultiplierColour => base.LowMultiplierColour;
|
public new Color4 LowMultiplierColour => base.LowMultiplierColour;
|
||||||
|
@ -37,7 +37,6 @@ namespace osu.Game.Overlays.Mods
|
|||||||
protected readonly TriangleButton CloseButton;
|
protected readonly TriangleButton CloseButton;
|
||||||
|
|
||||||
protected readonly OsuSpriteText MultiplierLabel;
|
protected readonly OsuSpriteText MultiplierLabel;
|
||||||
protected readonly OsuSpriteText UnrankedLabel;
|
|
||||||
|
|
||||||
protected override bool BlockNonPositionalInput => false;
|
protected override bool BlockNonPositionalInput => false;
|
||||||
|
|
||||||
@ -57,6 +56,8 @@ namespace osu.Game.Overlays.Mods
|
|||||||
protected Color4 HighMultiplierColour;
|
protected Color4 HighMultiplierColour;
|
||||||
|
|
||||||
private const float content_width = 0.8f;
|
private const float content_width = 0.8f;
|
||||||
|
private const float footer_button_spacing = 20;
|
||||||
|
|
||||||
private readonly FillFlowContainer footerContainer;
|
private readonly FillFlowContainer footerContainer;
|
||||||
|
|
||||||
private SampleChannel sampleOn, sampleOff;
|
private SampleChannel sampleOn, sampleOff;
|
||||||
@ -103,7 +104,7 @@ namespace osu.Game.Overlays.Mods
|
|||||||
{
|
{
|
||||||
new Dimension(GridSizeMode.Absolute, 90),
|
new Dimension(GridSizeMode.Absolute, 90),
|
||||||
new Dimension(GridSizeMode.Distributed),
|
new Dimension(GridSizeMode.Distributed),
|
||||||
new Dimension(GridSizeMode.Absolute, 70),
|
new Dimension(GridSizeMode.AutoSize),
|
||||||
},
|
},
|
||||||
Content = new[]
|
Content = new[]
|
||||||
{
|
{
|
||||||
@ -197,7 +198,8 @@ namespace osu.Game.Overlays.Mods
|
|||||||
// Footer
|
// Footer
|
||||||
new Container
|
new Container
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.X,
|
||||||
|
AutoSizeAxes = Axes.Y,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
@ -215,7 +217,9 @@ namespace osu.Game.Overlays.Mods
|
|||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Width = content_width,
|
Width = content_width,
|
||||||
Direction = FillDirection.Horizontal,
|
Spacing = new Vector2(footer_button_spacing, footer_button_spacing / 2),
|
||||||
|
LayoutDuration = 100,
|
||||||
|
LayoutEasing = Easing.OutQuint,
|
||||||
Padding = new MarginPadding
|
Padding = new MarginPadding
|
||||||
{
|
{
|
||||||
Vertical = 15,
|
Vertical = 15,
|
||||||
@ -228,10 +232,8 @@ namespace osu.Game.Overlays.Mods
|
|||||||
Width = 180,
|
Width = 180,
|
||||||
Text = "Deselect All",
|
Text = "Deselect All",
|
||||||
Action = DeselectAll,
|
Action = DeselectAll,
|
||||||
Margin = new MarginPadding
|
Origin = Anchor.CentreLeft,
|
||||||
{
|
Anchor = Anchor.CentreLeft,
|
||||||
Right = 20
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
CustomiseButton = new TriangleButton
|
CustomiseButton = new TriangleButton
|
||||||
{
|
{
|
||||||
@ -239,49 +241,41 @@ namespace osu.Game.Overlays.Mods
|
|||||||
Text = "Customisation",
|
Text = "Customisation",
|
||||||
Action = () => ModSettingsContainer.Alpha = ModSettingsContainer.Alpha == 1 ? 0 : 1,
|
Action = () => ModSettingsContainer.Alpha = ModSettingsContainer.Alpha == 1 ? 0 : 1,
|
||||||
Enabled = { Value = false },
|
Enabled = { Value = false },
|
||||||
Margin = new MarginPadding
|
Origin = Anchor.CentreLeft,
|
||||||
{
|
Anchor = Anchor.CentreLeft,
|
||||||
Right = 20
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
CloseButton = new TriangleButton
|
CloseButton = new TriangleButton
|
||||||
{
|
{
|
||||||
Width = 180,
|
Width = 180,
|
||||||
Text = "Close",
|
Text = "Close",
|
||||||
Action = Hide,
|
Action = Hide,
|
||||||
Margin = new MarginPadding
|
Origin = Anchor.CentreLeft,
|
||||||
{
|
Anchor = Anchor.CentreLeft,
|
||||||
Right = 20
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
new OsuSpriteText
|
new FillFlowContainer
|
||||||
{
|
{
|
||||||
Text = @"Score Multiplier:",
|
AutoSizeAxes = Axes.Both,
|
||||||
Font = OsuFont.GetFont(size: 30),
|
Spacing = new Vector2(footer_button_spacing / 2, 0),
|
||||||
Margin = new MarginPadding
|
Origin = Anchor.CentreLeft,
|
||||||
|
Anchor = Anchor.CentreLeft,
|
||||||
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
Top = 5,
|
new OsuSpriteText
|
||||||
Right = 10
|
{
|
||||||
}
|
Text = @"Score Multiplier:",
|
||||||
|
Font = OsuFont.GetFont(size: 30),
|
||||||
|
Origin = Anchor.CentreLeft,
|
||||||
|
Anchor = Anchor.CentreLeft,
|
||||||
|
},
|
||||||
|
MultiplierLabel = new OsuSpriteText
|
||||||
|
{
|
||||||
|
Font = OsuFont.GetFont(size: 30, weight: FontWeight.Bold),
|
||||||
|
Origin = Anchor.CentreLeft,
|
||||||
|
Anchor = Anchor.CentreLeft,
|
||||||
|
Width = 70, // make width fixed so reflow doesn't occur when multiplier number changes.
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
MultiplierLabel = new OsuSpriteText
|
|
||||||
{
|
|
||||||
Font = OsuFont.GetFont(size: 30, weight: FontWeight.Bold),
|
|
||||||
Margin = new MarginPadding
|
|
||||||
{
|
|
||||||
Top = 5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
UnrankedLabel = new OsuSpriteText
|
|
||||||
{
|
|
||||||
Text = @"(Unranked)",
|
|
||||||
Font = OsuFont.GetFont(size: 30, weight: FontWeight.Bold),
|
|
||||||
Margin = new MarginPadding
|
|
||||||
{
|
|
||||||
Top = 5,
|
|
||||||
Left = 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -327,7 +321,6 @@ namespace osu.Game.Overlays.Mods
|
|||||||
{
|
{
|
||||||
LowMultiplierColour = colours.Red;
|
LowMultiplierColour = colours.Red;
|
||||||
HighMultiplierColour = colours.Green;
|
HighMultiplierColour = colours.Green;
|
||||||
UnrankedLabel.Colour = colours.Blue;
|
|
||||||
|
|
||||||
availableMods = osu.AvailableMods.GetBoundCopy();
|
availableMods = osu.AvailableMods.GetBoundCopy();
|
||||||
|
|
||||||
@ -431,12 +424,10 @@ namespace osu.Game.Overlays.Mods
|
|||||||
private void updateMods()
|
private void updateMods()
|
||||||
{
|
{
|
||||||
var multiplier = 1.0;
|
var multiplier = 1.0;
|
||||||
var ranked = true;
|
|
||||||
|
|
||||||
foreach (var mod in SelectedMods.Value)
|
foreach (var mod in SelectedMods.Value)
|
||||||
{
|
{
|
||||||
multiplier *= mod.ScoreMultiplier;
|
multiplier *= mod.ScoreMultiplier;
|
||||||
ranked &= mod.Ranked;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiplierLabel.Text = $"{multiplier:N2}x";
|
MultiplierLabel.Text = $"{multiplier:N2}x";
|
||||||
@ -446,8 +437,6 @@ namespace osu.Game.Overlays.Mods
|
|||||||
MultiplierLabel.FadeColour(LowMultiplierColour, 200);
|
MultiplierLabel.FadeColour(LowMultiplierColour, 200);
|
||||||
else
|
else
|
||||||
MultiplierLabel.FadeColour(Color4.White, 200);
|
MultiplierLabel.FadeColour(Color4.White, 200);
|
||||||
|
|
||||||
UnrankedLabel.FadeTo(ranked ? 0 : 1, 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateModSettings(ValueChangedEvent<IReadOnlyList<Mod>> selectedMods)
|
private void updateModSettings(ValueChangedEvent<IReadOnlyList<Mod>> selectedMods)
|
||||||
|
Loading…
Reference in New Issue
Block a user