mirror of
https://github.com/ppy/osu.git
synced 2025-03-01 05:03:13 +08:00
Add mania/osu sudden death mod tests
This commit is contained in:
parent
93efa98d9b
commit
88a5ba8167
@ -11,7 +11,7 @@ using osuTK;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Catch.Tests.Mods
|
namespace osu.Game.Rulesets.Catch.Tests.Mods
|
||||||
{
|
{
|
||||||
public partial class TestSceneCatchModPerfect : ModPerfectTestScene
|
public partial class TestSceneCatchModPerfect : ModFailConditionTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreatePlayerRuleset() => new CatchRuleset();
|
protected override Ruleset CreatePlayerRuleset() => new CatchRuleset();
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ using osu.Game.Tests.Visual;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Mania.Tests.Mods
|
namespace osu.Game.Rulesets.Mania.Tests.Mods
|
||||||
{
|
{
|
||||||
public partial class TestSceneManiaModPerfect : ModPerfectTestScene
|
public partial class TestSceneManiaModPerfect : ModFailConditionTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset();
|
protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset();
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Mods
|
|||||||
public void TestGreatHit() => CreateModTest(new ModTestData
|
public void TestGreatHit() => CreateModTest(new ModTestData
|
||||||
{
|
{
|
||||||
Mod = new ManiaModPerfect(),
|
Mod = new ManiaModPerfect(),
|
||||||
PassCondition = () => ((PerfectModTestPlayer)Player).CheckFailed(false),
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(false),
|
||||||
Autoplay = false,
|
Autoplay = false,
|
||||||
Beatmap = new Beatmap
|
Beatmap = new Beatmap
|
||||||
{
|
{
|
||||||
@ -57,7 +57,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Mods
|
|||||||
public void TestBreakOnHoldNote() => CreateModTest(new ModTestData
|
public void TestBreakOnHoldNote() => CreateModTest(new ModTestData
|
||||||
{
|
{
|
||||||
Mod = new ManiaModPerfect(),
|
Mod = new ManiaModPerfect(),
|
||||||
PassCondition = () => ((PerfectModTestPlayer)Player).CheckFailed(true) && Player.Results.Count == 2,
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(true) && Player.Results.Count == 2,
|
||||||
Autoplay = false,
|
Autoplay = false,
|
||||||
Beatmap = new Beatmap
|
Beatmap = new Beatmap
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,72 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Rulesets.Mania.Mods;
|
||||||
|
using osu.Game.Rulesets.Mania.Objects;
|
||||||
|
using osu.Game.Rulesets.Mania.Replays;
|
||||||
|
using osu.Game.Rulesets.Objects;
|
||||||
|
using osu.Game.Rulesets.Replays;
|
||||||
|
using osu.Game.Tests.Visual;
|
||||||
|
|
||||||
|
namespace osu.Game.Rulesets.Mania.Tests.Mods
|
||||||
|
{
|
||||||
|
public partial class TestSceneManiaModSuddenDeath : ModFailConditionTestScene
|
||||||
|
{
|
||||||
|
protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset();
|
||||||
|
|
||||||
|
public TestSceneManiaModSuddenDeath()
|
||||||
|
: base(new ManiaModSuddenDeath())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestGreatHit() => CreateModTest(new ModTestData
|
||||||
|
{
|
||||||
|
Mod = new ManiaModSuddenDeath(),
|
||||||
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(false),
|
||||||
|
Autoplay = false,
|
||||||
|
Beatmap = new Beatmap
|
||||||
|
{
|
||||||
|
HitObjects = new List<HitObject>
|
||||||
|
{
|
||||||
|
new Note
|
||||||
|
{
|
||||||
|
StartTime = 1000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ReplayFrames = new List<ReplayFrame>
|
||||||
|
{
|
||||||
|
new ManiaReplayFrame(1020, ManiaAction.Key1),
|
||||||
|
new ManiaReplayFrame(2000)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestBreakOnHoldNote() => CreateModTest(new ModTestData
|
||||||
|
{
|
||||||
|
Mod = new ManiaModSuddenDeath(),
|
||||||
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(true) && Player.Results.Count == 2,
|
||||||
|
Autoplay = false,
|
||||||
|
Beatmap = new Beatmap
|
||||||
|
{
|
||||||
|
HitObjects = new List<HitObject>
|
||||||
|
{
|
||||||
|
new HoldNote
|
||||||
|
{
|
||||||
|
StartTime = 1000,
|
||||||
|
EndTime = 3000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ReplayFrames = new List<ReplayFrame>
|
||||||
|
{
|
||||||
|
new ManiaReplayFrame(1000, ManiaAction.Key1),
|
||||||
|
new ManiaReplayFrame(2000)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -15,7 +15,7 @@ using osuTK;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Osu.Tests.Mods
|
namespace osu.Game.Rulesets.Osu.Tests.Mods
|
||||||
{
|
{
|
||||||
public partial class TestSceneOsuModPerfect : ModPerfectTestScene
|
public partial class TestSceneOsuModPerfect : ModFailConditionTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
|
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Mods
|
|||||||
public void TestMissSliderTail() => CreateModTest(new ModTestData
|
public void TestMissSliderTail() => CreateModTest(new ModTestData
|
||||||
{
|
{
|
||||||
Mod = new OsuModPerfect(),
|
Mod = new OsuModPerfect(),
|
||||||
PassCondition = () => ((PerfectModTestPlayer)Player).CheckFailed(true),
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(true),
|
||||||
Autoplay = false,
|
Autoplay = false,
|
||||||
Beatmap = new Beatmap
|
Beatmap = new Beatmap
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,77 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Rulesets.Objects;
|
||||||
|
using osu.Game.Rulesets.Objects.Types;
|
||||||
|
using osu.Game.Rulesets.Osu.Mods;
|
||||||
|
using osu.Game.Rulesets.Osu.Objects;
|
||||||
|
using osu.Game.Rulesets.Osu.Replays;
|
||||||
|
using osu.Game.Rulesets.Replays;
|
||||||
|
using osu.Game.Tests.Visual;
|
||||||
|
using osuTK;
|
||||||
|
|
||||||
|
namespace osu.Game.Rulesets.Osu.Tests.Mods
|
||||||
|
{
|
||||||
|
public partial class TestSceneOsuModSuddenDeath : ModFailConditionTestScene
|
||||||
|
{
|
||||||
|
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
|
||||||
|
|
||||||
|
public TestSceneOsuModSuddenDeath()
|
||||||
|
: base(new OsuModSuddenDeath())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMissTail() => CreateModTest(new ModTestData
|
||||||
|
{
|
||||||
|
Mod = new OsuModSuddenDeath(),
|
||||||
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(false),
|
||||||
|
Autoplay = false,
|
||||||
|
Beatmap = new Beatmap
|
||||||
|
{
|
||||||
|
HitObjects = new List<HitObject>
|
||||||
|
{
|
||||||
|
new Slider
|
||||||
|
{
|
||||||
|
Position = new Vector2(256, 192),
|
||||||
|
StartTime = 1000,
|
||||||
|
Path = new SliderPath(PathType.LINEAR, new[] { Vector2.Zero, new Vector2(100, 0), })
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ReplayFrames = new List<ReplayFrame>
|
||||||
|
{
|
||||||
|
new OsuReplayFrame(1000, new Vector2(256, 192), OsuAction.LeftButton),
|
||||||
|
new OsuReplayFrame(1001, new Vector2(256, 192)),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMissTick() => CreateModTest(new ModTestData
|
||||||
|
{
|
||||||
|
Mod = new OsuModSuddenDeath(),
|
||||||
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(true),
|
||||||
|
Autoplay = false,
|
||||||
|
Beatmap = new Beatmap
|
||||||
|
{
|
||||||
|
HitObjects = new List<HitObject>
|
||||||
|
{
|
||||||
|
new Slider
|
||||||
|
{
|
||||||
|
Position = new Vector2(256, 192),
|
||||||
|
StartTime = 1000,
|
||||||
|
Path = new SliderPath(PathType.LINEAR, new[] { Vector2.Zero, new Vector2(200, 0), })
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ReplayFrames = new List<ReplayFrame>
|
||||||
|
{
|
||||||
|
new OsuReplayFrame(1000, new Vector2(256, 192), OsuAction.LeftButton),
|
||||||
|
new OsuReplayFrame(1001, new Vector2(256, 192)),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@ using osu.Game.Tests.Visual;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Taiko.Tests.Mods
|
namespace osu.Game.Rulesets.Taiko.Tests.Mods
|
||||||
{
|
{
|
||||||
public partial class TestSceneTaikoModPerfect : ModPerfectTestScene
|
public partial class TestSceneTaikoModPerfect : ModFailConditionTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreatePlayerRuleset() => new TestTaikoRuleset();
|
protected override Ruleset CreatePlayerRuleset() => new TestTaikoRuleset();
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ using osu.Game.Rulesets.Objects;
|
|||||||
|
|
||||||
namespace osu.Game.Tests.Visual
|
namespace osu.Game.Tests.Visual
|
||||||
{
|
{
|
||||||
public abstract partial class ModPerfectTestScene : ModTestScene
|
public abstract partial class ModFailConditionTestScene : ModTestScene
|
||||||
{
|
{
|
||||||
private readonly ModPerfect mod;
|
private readonly ModFailCondition mod;
|
||||||
|
|
||||||
protected ModPerfectTestScene(ModPerfect mod)
|
protected ModFailConditionTestScene(ModFailCondition mod)
|
||||||
{
|
{
|
||||||
this.mod = mod;
|
this.mod = mod;
|
||||||
}
|
}
|
||||||
@ -26,14 +26,14 @@ namespace osu.Game.Tests.Visual
|
|||||||
HitObjects = { testData.HitObject }
|
HitObjects = { testData.HitObject }
|
||||||
},
|
},
|
||||||
Autoplay = !shouldMiss,
|
Autoplay = !shouldMiss,
|
||||||
PassCondition = () => ((PerfectModTestPlayer)Player).CheckFailed(shouldMiss && testData.FailOnMiss)
|
PassCondition = () => ((ModFailConditionTestPlayer)Player).CheckFailed(shouldMiss && testData.FailOnMiss)
|
||||||
});
|
});
|
||||||
|
|
||||||
protected override TestPlayer CreateModPlayer(Ruleset ruleset) => new PerfectModTestPlayer(CurrentTestData, AllowFail);
|
protected override TestPlayer CreateModPlayer(Ruleset ruleset) => new ModFailConditionTestPlayer(CurrentTestData, AllowFail);
|
||||||
|
|
||||||
protected partial class PerfectModTestPlayer : ModTestPlayer
|
protected partial class ModFailConditionTestPlayer : ModTestPlayer
|
||||||
{
|
{
|
||||||
public PerfectModTestPlayer(ModTestData data, bool allowFail)
|
public ModFailConditionTestPlayer(ModTestData data, bool allowFail)
|
||||||
: base(data, allowFail)
|
: base(data, allowFail)
|
||||||
{
|
{
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user