1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 18:07:23 +08:00

Adjust values to Bdach's refined taste

This commit is contained in:
mk-56 2022-01-24 00:42:43 +01:00
parent 955bab926f
commit ed84ae0ac0
5 changed files with 64 additions and 35 deletions

View File

@ -26,14 +26,20 @@ namespace osu.Game.Rulesets.Catch.Mods
[SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{
MinValue = 150f,
MaxValue = 600f,
Default = 350f,
Value = 350f,
Precision = 5f
MinValue = 0.4f,
MaxValue = 1.7f,
Default = 1f,
Value = 1f,
Precision = 0.1f
};
public override Flashlight CreateFlashlight() => new CatchFlashlight(playfield, ChangeRadius.Value, InitialRadius.Value);
protected override BindableNumber<float> ModeMultiplier { get; } = new BindableNumber<float>
{
Default = 350,
Value = 350,
};
public override Flashlight CreateFlashlight() => new CatchFlashlight(playfield, ChangeRadius.Value, InitialRadius.Value, ModeMultiplier.Value);
private CatchPlayfield playfield;
@ -47,8 +53,8 @@ namespace osu.Game.Rulesets.Catch.Mods
{
private readonly CatchPlayfield playfield;
public CatchFlashlight(CatchPlayfield playfield, bool isRadiusBasedOnCombo, float initialRadius)
: base(isRadiusBasedOnCombo, initialRadius)
public CatchFlashlight(CatchPlayfield playfield, bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{
this.playfield = playfield;
FlashlightSize = new Vector2(0, GetRadiusFor(0));

View File

@ -28,20 +28,26 @@ namespace osu.Game.Rulesets.Mania.Mods
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{
MinValue = 0f,
MaxValue = 230f,
Default = 50f,
Value = 50f,
Precision = 5f
MaxValue = 4.5f,
Default = 1f,
Value = 1f,
Precision = 0.1f
};
public override Flashlight CreateFlashlight() => new ManiaFlashlight(ChangeRadius.Value, InitialRadius.Value);
protected override BindableNumber<float> ModeMultiplier { get; } = new BindableNumber<float>
{
Default = 50,
Value = 50,
};
public override Flashlight CreateFlashlight() => new ManiaFlashlight(ChangeRadius.Value, InitialRadius.Value, ModeMultiplier.Value);
private class ManiaFlashlight : Flashlight
{
private readonly LayoutValue flashlightProperties = new LayoutValue(Invalidation.DrawSize);
public ManiaFlashlight(bool isRadiusBasedOnCombo, float initialRadius)
: base(isRadiusBasedOnCombo, initialRadius)
public ManiaFlashlight(bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{
FlashlightSize = new Vector2(DrawWidth, GetRadiusFor(0));

View File

@ -40,16 +40,22 @@ namespace osu.Game.Rulesets.Osu.Mods
[SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{
MinValue = 90f,
MaxValue = 360f,
Default = 180f,
Value = 180f,
Precision = 5f
MinValue = 0.5f,
MaxValue = 2f,
Default = 1f,
Value = 1f,
Precision = 0.1f
};
protected override BindableNumber<float> ModeMultiplier { get; } = new BindableNumber<float>
{
Default = 180,
Value = 180,
};
private OsuFlashlight flashlight;
public override Flashlight CreateFlashlight() => flashlight = new OsuFlashlight(ChangeRadius.Value, InitialRadius.Value, FollowDelay.Value);
public override Flashlight CreateFlashlight() => flashlight = new OsuFlashlight(ChangeRadius.Value, InitialRadius.Value, FollowDelay.Value, ModeMultiplier.Value);
public void ApplyToDrawableHitObject(DrawableHitObject drawable)
{
@ -64,8 +70,8 @@ namespace osu.Game.Rulesets.Osu.Mods
//public float InitialRadius { private get; set; }
public bool ChangeRadius { private get; set; }
public OsuFlashlight(bool isRadiusBasedOnCombo, float initialRadius, double followDelay)
: base(isRadiusBasedOnCombo, initialRadius)
public OsuFlashlight(bool isRadiusBasedOnCombo, float initialRadius, double followDelay, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{
FollowDelay = followDelay;

View File

@ -27,14 +27,20 @@ namespace osu.Game.Rulesets.Taiko.Mods
[SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{
MinValue = 0f,
MaxValue = 400f,
Default = 250f,
Value = 250f,
Precision = 5f
MinValue = 0,
MaxValue = 1.66f,
Default = 1f,
Value = 1f,
Precision = 0.1f
};
public override Flashlight CreateFlashlight() => new TaikoFlashlight(playfield, ChangeRadius.Value, InitialRadius.Value);
protected override BindableNumber<float> ModeMultiplier { get; } = new BindableNumber<float>
{
Default = 250,
Value = 250,
};
public override Flashlight CreateFlashlight() => new TaikoFlashlight(playfield, ChangeRadius.Value, InitialRadius.Value, ModeMultiplier.Value);
private TaikoPlayfield playfield;
@ -49,8 +55,8 @@ namespace osu.Game.Rulesets.Taiko.Mods
private readonly LayoutValue flashlightProperties = new LayoutValue(Invalidation.DrawSize);
private readonly TaikoPlayfield taikoPlayfield;
public TaikoFlashlight(TaikoPlayfield taikoPlayfield, bool isRadiusBasedOnCombo, float initialRadius)
: base(isRadiusBasedOnCombo, initialRadius)
public TaikoFlashlight(TaikoPlayfield taikoPlayfield, bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{
this.taikoPlayfield = taikoPlayfield;
FlashlightSize = getSizeFor(0);

View File

@ -38,6 +38,8 @@ namespace osu.Game.Rulesets.Mods
[SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public abstract BindableNumber<float> InitialRadius { get; }
protected abstract BindableNumber<float> ModeMultiplier { get; }
}
public abstract class ModFlashlight<T> : ModFlashlight, IApplicableToDrawableRuleset<T>, IApplicableToScoreProcessor
@ -100,10 +102,13 @@ namespace osu.Game.Rulesets.Mods
public readonly float InitialRadius;
protected Flashlight(bool isRadiusBasedOnCombo, float initialRadius)
public readonly float ModeMultiplier;
protected Flashlight(bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
{
IsRadiusBasedOnCombo = isRadiusBasedOnCombo;
InitialRadius = initialRadius;
ModeMultiplier = modeMultiplier;
}
[BackgroundDependencyLoader]
@ -142,12 +147,12 @@ namespace osu.Game.Rulesets.Mods
if (IsRadiusBasedOnCombo)
{
if (combo > 200)
return InitialRadius * 0.8f;
return InitialRadius * 0.8f * ModeMultiplier;
else if (combo > 100)
return InitialRadius * 0.9f;
return InitialRadius * 0.9f * ModeMultiplier;
}
return InitialRadius;
return InitialRadius * ModeMultiplier;
}
private Vector2 flashlightPosition;