mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 14:13:18 +08:00
Adjust values to Bdach's refined taste
This commit is contained in:
parent
955bab926f
commit
ed84ae0ac0
@ -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));
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user