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.")] [SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float> public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{ {
MinValue = 150f, MinValue = 0.4f,
MaxValue = 600f, MaxValue = 1.7f,
Default = 350f, Default = 1f,
Value = 350f, Value = 1f,
Precision = 5f 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; private CatchPlayfield playfield;
@ -47,8 +53,8 @@ namespace osu.Game.Rulesets.Catch.Mods
{ {
private readonly CatchPlayfield playfield; private readonly CatchPlayfield playfield;
public CatchFlashlight(CatchPlayfield playfield, bool isRadiusBasedOnCombo, float initialRadius) public CatchFlashlight(CatchPlayfield playfield, bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius) : base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{ {
this.playfield = playfield; this.playfield = playfield;
FlashlightSize = new Vector2(0, GetRadiusFor(0)); 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> public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{ {
MinValue = 0f, MinValue = 0f,
MaxValue = 230f, MaxValue = 4.5f,
Default = 50f, Default = 1f,
Value = 50f, Value = 1f,
Precision = 5f 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 class ManiaFlashlight : Flashlight
{ {
private readonly LayoutValue flashlightProperties = new LayoutValue(Invalidation.DrawSize); private readonly LayoutValue flashlightProperties = new LayoutValue(Invalidation.DrawSize);
public ManiaFlashlight(bool isRadiusBasedOnCombo, float initialRadius) public ManiaFlashlight(bool isRadiusBasedOnCombo, float initialRadius, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius) : base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{ {
FlashlightSize = new Vector2(DrawWidth, GetRadiusFor(0)); 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.")] [SettingSource("Initial radius", "Initial radius of the flashlight area.")]
public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float> public override BindableNumber<float> InitialRadius { get; } = new BindableNumber<float>
{ {
MinValue = 90f, MinValue = 0.5f,
MaxValue = 360f, MaxValue = 2f,
Default = 180f, Default = 1f,
Value = 180f, Value = 1f,
Precision = 5f Precision = 0.1f
};
protected override BindableNumber<float> ModeMultiplier { get; } = new BindableNumber<float>
{
Default = 180,
Value = 180,
}; };
private OsuFlashlight flashlight; 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) public void ApplyToDrawableHitObject(DrawableHitObject drawable)
{ {
@ -64,8 +70,8 @@ namespace osu.Game.Rulesets.Osu.Mods
//public float InitialRadius { private get; set; } //public float InitialRadius { private get; set; }
public bool ChangeRadius { private get; set; } public bool ChangeRadius { private get; set; }
public OsuFlashlight(bool isRadiusBasedOnCombo, float initialRadius, double followDelay) public OsuFlashlight(bool isRadiusBasedOnCombo, float initialRadius, double followDelay, float modeMultiplier)
: base(isRadiusBasedOnCombo, initialRadius) : base(isRadiusBasedOnCombo, initialRadius, modeMultiplier)
{ {
FollowDelay = followDelay; FollowDelay = followDelay;

View File

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

View File

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