// Copyright (c) 2007-2018 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Types; using osu.Game.Rulesets.Taiko.Judgements; namespace osu.Game.Rulesets.Taiko.Objects { public abstract class TaikoHitObject : HitObject { /// /// Default size of a drawable taiko hit object. /// public const float DEFAULT_SIZE = 0.45f; /// /// Scale multiplier for a strong drawable taiko hit object. /// public const float STRONG_SCALE = 1.4f; /// /// Default size of a strong drawable taiko hit object. /// public const float DEFAULT_STRONG_SIZE = DEFAULT_SIZE * STRONG_SCALE; /// /// Whether this HitObject is a "strong" type. /// Strong hit objects give more points for hitting the hit object with both keys. /// public virtual bool IsStrong { get; set; } protected override void CreateNestedHitObjects() { base.CreateNestedHitObjects(); if (IsStrong) AddNested(new StrongHitObject { StartTime = (this as IHasEndTime)?.EndTime ?? StartTime }); } public override Judgement CreateJudgement() => new TaikoJudgement(); protected override HitWindows CreateHitWindows() => new TaikoHitWindows(); } }