diff --git a/osu.Game.Modes.Taiko/Objects/Drawables/DrawableSwell.cs b/osu.Game.Modes.Taiko/Objects/Drawables/DrawableSwell.cs
index e1a590a025..1e440df69a 100644
--- a/osu.Game.Modes.Taiko/Objects/Drawables/DrawableSwell.cs
+++ b/osu.Game.Modes.Taiko/Objects/Drawables/DrawableSwell.cs
@@ -65,7 +65,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Alpha = 0,
- Size = new Vector2(TaikoHitObject.CIRCLE_RADIUS * 2),
+ Size = new Vector2(TaikoHitObject.DEFAULT_CIRCLE_DIAMETER),
BlendingMode = BlendingMode.Additive,
Masking = true,
Children = new []
@@ -82,7 +82,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables
Name = "Target ring (thick border)",
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
- Size = new Vector2(TaikoHitObject.CIRCLE_RADIUS * 2),
+ Size = new Vector2(TaikoHitObject.DEFAULT_CIRCLE_DIAMETER),
Masking = true,
BorderThickness = target_ring_thick_border,
BlendingMode = BlendingMode.Additive,
diff --git a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/CirclePiece.cs b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/CirclePiece.cs
index f921511e22..216e05ebc4 100644
--- a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/CirclePiece.cs
+++ b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/CirclePiece.cs
@@ -19,15 +19,10 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables.Pieces
///
public class CirclePiece : TaikoPiece
{
- public const float SYMBOL_SIZE = TaikoHitObject.CIRCLE_RADIUS * 2f * 0.45f;
+ public const float SYMBOL_SIZE = TaikoHitObject.DEFAULT_CIRCLE_DIAMETER * 0.45f;
public const float SYMBOL_BORDER = 8;
public const float SYMBOL_INNER_SIZE = SYMBOL_SIZE - 2 * SYMBOL_BORDER;
- ///
- /// The amount to scale up the base circle to show it as a "strong" piece.
- ///
- private const float strong_scale = 1.5f;
-
///
/// The colour of the inner circle and outer glows.
///
@@ -129,10 +124,10 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables.Pieces
if (isStrong)
{
- Size *= strong_scale;
+ Size *= TaikoHitObject.STRONG_CIRCLE_DIAMETER_SCALE;
//default for symbols etc.
- Content.Scale *= strong_scale;
+ Content.Scale *= TaikoHitObject.STRONG_CIRCLE_DIAMETER_SCALE;
}
}
diff --git a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TaikoPiece.cs b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TaikoPiece.cs
index a0c8865c59..2220438a4a 100644
--- a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TaikoPiece.cs
+++ b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TaikoPiece.cs
@@ -39,7 +39,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables.Pieces
public TaikoPiece()
{
//just a default
- Size = new Vector2(TaikoHitObject.CIRCLE_RADIUS * 2);
+ Size = new Vector2(TaikoHitObject.DEFAULT_CIRCLE_DIAMETER);
}
}
}
diff --git a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TickPiece.cs b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TickPiece.cs
index 697102eb22..53e795e2e2 100644
--- a/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TickPiece.cs
+++ b/osu.Game.Modes.Taiko/Objects/Drawables/Pieces/TickPiece.cs
@@ -15,12 +15,12 @@ namespace osu.Game.Modes.Taiko.Objects.Drawables.Pieces
/// Any tick that is not the first for a drumroll is not filled, but is instead displayed
/// as a hollow circle. This is what controls the border width of that circle.
///
- private const float tick_border_width = TaikoHitObject.CIRCLE_RADIUS / 2 / 4;
+ private const float tick_border_width = TaikoHitObject.DEFAULT_CIRCLE_DIAMETER / 16;
///
/// The size of a tick.
///
- private const float tick_size = TaikoHitObject.CIRCLE_RADIUS / 2;
+ private const float tick_size = TaikoHitObject.DEFAULT_CIRCLE_DIAMETER / 4;
private bool filled;
public bool Filled
diff --git a/osu.Game.Modes.Taiko/Objects/TaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/TaikoHitObject.cs
index 54ab8c5300..ebc9b19d3a 100644
--- a/osu.Game.Modes.Taiko/Objects/TaikoHitObject.cs
+++ b/osu.Game.Modes.Taiko/Objects/TaikoHitObject.cs
@@ -4,15 +4,31 @@
using osu.Game.Beatmaps.Timing;
using osu.Game.Database;
using osu.Game.Modes.Objects;
+using osu.Game.Modes.Taiko.UI;
namespace osu.Game.Modes.Taiko.Objects
{
public abstract class TaikoHitObject : HitObject
{
///
- /// HitCircle radius.
+ /// Diameter of a circle relative to the size of the .
///
- public const float CIRCLE_RADIUS = 42f;
+ public const float PLAYFIELD_RELATIVE_DIAMETER = 0.5f;
+
+ ///
+ /// Scale multiplier for a strong circle.
+ ///
+ public const float STRONG_CIRCLE_DIAMETER_SCALE = 1.5f;
+
+ ///
+ /// Default circle diameter.
+ ///
+ public const float DEFAULT_CIRCLE_DIAMETER = TaikoPlayfield.DEFAULT_PLAYFIELD_HEIGHT * PLAYFIELD_RELATIVE_DIAMETER;
+
+ ///
+ /// Default strong circle diameter.
+ ///
+ public const float DEFAULT_STRONG_CIRCLE_DIAMETER = DEFAULT_CIRCLE_DIAMETER * STRONG_CIRCLE_DIAMETER_SCALE;
///
/// The time taken from the initial (off-screen) spawn position to the centre of the hit target for a of 1000ms.
diff --git a/osu.Game.Modes.Taiko/UI/HitExplosion.cs b/osu.Game.Modes.Taiko/UI/HitExplosion.cs
index eb43c1a5d0..e4e329523f 100644
--- a/osu.Game.Modes.Taiko/UI/HitExplosion.cs
+++ b/osu.Game.Modes.Taiko/UI/HitExplosion.cs
@@ -18,11 +18,6 @@ namespace osu.Game.Modes.Taiko.UI
///
internal class HitExplosion : CircularContainer
{
- ///
- /// The size multiplier of a hit explosion if a hit object has been hit with the second key.
- ///
- private const float secondhit_size_multiplier = 1.5f;
-
///
/// The judgement this hit explosion visualises.
///
@@ -34,7 +29,7 @@ namespace osu.Game.Modes.Taiko.UI
{
Judgement = judgement;
- Size = new Vector2(TaikoHitObject.CIRCLE_RADIUS * 2);
+ Size = new Vector2(TaikoHitObject.DEFAULT_CIRCLE_DIAMETER);
Anchor = Anchor.Centre;
Origin = Anchor.Centre;
@@ -85,7 +80,7 @@ namespace osu.Game.Modes.Taiko.UI
///
public void VisualiseSecondHit()
{
- ResizeTo(Size * secondhit_size_multiplier, 50);
+ ResizeTo(Size * TaikoHitObject.STRONG_CIRCLE_DIAMETER_SCALE, 50);
}
}
}
diff --git a/osu.Game.Modes.Taiko/UI/HitTarget.cs b/osu.Game.Modes.Taiko/UI/HitTarget.cs
index f5d6a3b797..b22dc1d647 100644
--- a/osu.Game.Modes.Taiko/UI/HitTarget.cs
+++ b/osu.Game.Modes.Taiko/UI/HitTarget.cs
@@ -15,16 +15,6 @@ namespace osu.Game.Modes.Taiko.UI
///
internal class HitTarget : Container
{
- ///
- /// Diameter of normal hit object circles.
- ///
- private const float normal_diameter = TaikoHitObject.CIRCLE_RADIUS * 2;
-
- ///
- /// Diameter of strong hit object circles.
- ///
- private const float strong_hit_diameter = normal_diameter * 1.5f;
-
///
/// The 1px inner border of the taiko playfield.
///
@@ -47,7 +37,7 @@ namespace osu.Game.Modes.Taiko.UI
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
Y = border_offset,
- Size = new Vector2(border_thickness, (TaikoPlayfield.DEFAULT_PLAYFIELD_HEIGHT - strong_hit_diameter) / 2f - border_offset),
+ Size = new Vector2(border_thickness, (TaikoPlayfield.DEFAULT_PLAYFIELD_HEIGHT - TaikoHitObject.DEFAULT_STRONG_CIRCLE_DIAMETER) / 2f - border_offset),
Alpha = 0.1f
},
new CircularContainer
@@ -55,7 +45,7 @@ namespace osu.Game.Modes.Taiko.UI
Name = "Strong Hit Ring",
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
- Size = new Vector2(strong_hit_diameter),
+ Size = new Vector2(TaikoHitObject.DEFAULT_STRONG_CIRCLE_DIAMETER),
Masking = true,
BorderColour = Color4.White,
BorderThickness = border_thickness,
@@ -75,7 +65,7 @@ namespace osu.Game.Modes.Taiko.UI
Name = "Normal Hit Ring",
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
- Size = new Vector2(normal_diameter),
+ Size = new Vector2(TaikoHitObject.DEFAULT_CIRCLE_DIAMETER),
Masking = true,
BorderColour = Color4.White,
BorderThickness = border_thickness,
@@ -96,7 +86,7 @@ namespace osu.Game.Modes.Taiko.UI
Anchor = Anchor.BottomCentre,
Origin = Anchor.BottomCentre,
Y = -border_offset,
- Size = new Vector2(border_thickness, (TaikoPlayfield.DEFAULT_PLAYFIELD_HEIGHT - strong_hit_diameter) / 2f - border_offset),
+ Size = new Vector2(border_thickness, (TaikoPlayfield.DEFAULT_PLAYFIELD_HEIGHT - TaikoHitObject.DEFAULT_STRONG_CIRCLE_DIAMETER) / 2f - border_offset),
Alpha = 0.1f
},
};
diff --git a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
index 0407cbc5fd..ad21f22d1e 100644
--- a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
+++ b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
@@ -25,12 +25,12 @@ namespace osu.Game.Modes.Taiko.UI
/// The play field height. This is relative to the size of hit objects
/// such that the playfield is just a bit larger than strong hits.
///
- public const float DEFAULT_PLAYFIELD_HEIGHT = TaikoHitObject.CIRCLE_RADIUS * 2 * 2;
+ public const float DEFAULT_PLAYFIELD_HEIGHT = 168f;
///
/// The offset from which the center of the hit target lies at.
///
- private const float hit_target_offset = TaikoHitObject.CIRCLE_RADIUS * 1.5f + 40;
+ private const float hit_target_offset = TaikoHitObject.DEFAULT_STRONG_CIRCLE_DIAMETER / 2f + 40;
///
/// The size of the left area of the playfield. This area contains the input drum.