mirror of
https://github.com/SK-la/Ez2Lazer.git
synced 2026-03-13 11:20:28 +00:00
[维护]重构Mod类本地化结构,方便查找维护;清理一些无用using
This commit is contained in:
@@ -7,7 +7,7 @@ using NUnit.Framework;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Tests.Mods
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Tests.Visual;
|
||||
@@ -139,4 +139,4 @@ namespace osu.Game.Rulesets.Mania.Tests.Mods
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,9 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Beatmaps.ControlPoints;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Analysis;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Extensions;
|
||||
using osu.Game.LAsEzExtensions.Background;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.Rulesets.Difficulty;
|
||||
using osu.Game.Rulesets.Difficulty.Preprocessing;
|
||||
@@ -15,14 +14,13 @@ using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Difficulty.Preprocessing;
|
||||
using osu.Game.Rulesets.Mania.Difficulty.Skills;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania.Analysis;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.MathUtils;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Difficulty
|
||||
{
|
||||
|
||||
@@ -10,34 +10,22 @@ using osu.Framework.Graphics.Colour;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.LAsEzExtensions.Analysis;
|
||||
using osu.Game.LAsEzExtensions.Statistics;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Screens.Ranking.Statistics;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Analysis
|
||||
{
|
||||
/// <summary>
|
||||
/// A graph which displays the distribution of hit timing for each column in a series of <see cref="HitEvent"/>s.
|
||||
/// 一个偏移表,显示Mania每列判定偏移的分布情况.
|
||||
/// <para></para>主要使用 <see cref="HitEvent"/> 中的 <see cref="HitEvent.TimeOffset"/> 来计算每列的平均偏移、稳定率等统计数据,并以图表和表格的形式展示出来。
|
||||
/// </summary>
|
||||
public partial class EzHitTimingGraphByColumn : CompositeDrawable
|
||||
{
|
||||
/// <summary>
|
||||
/// The currently displayed hit events.
|
||||
/// </summary>
|
||||
private readonly IReadOnlyList<HitEvent> hitEvents;
|
||||
|
||||
/// <summary>
|
||||
/// The number of columns in the beatmap.
|
||||
/// </summary>
|
||||
private readonly int columnCount;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new <see cref="EzHitTimingGraphByColumn"/>.
|
||||
/// </summary>
|
||||
/// <param name="hitEvents">The <see cref="HitEvent"/>s to display the timing distribution of.</param>
|
||||
/// <param name="columnCount">The number of columns in the beatmap.</param>
|
||||
public EzHitTimingGraphByColumn(IReadOnlyList<HitEvent> hitEvents, int columnCount)
|
||||
{
|
||||
this.hitEvents = hitEvents;
|
||||
@@ -10,7 +10,6 @@ using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.LAsEzExtensions.Analysis;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Statistics;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
@@ -23,8 +22,9 @@ using osuTK.Graphics;
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Analysis
|
||||
{
|
||||
/// <summary>
|
||||
/// Mania-specific implementation of score graph that extends BaseEzScoreGraph.
|
||||
/// Provides LN (Long Note) aware scoring calculation for Classic mode.
|
||||
/// Mania判定偏移分布图的特定实现,扩展了BaseEzScoreGraph。
|
||||
/// 按Mania的判定方式重新过滤、计算了每个HitEvent的结果,并将其与原始结果进行比较,以分析偏移分布和准确性。
|
||||
/// 覆写判定区间计算以适应Mania的判定方式,并添加了对Classic模式下LN(长按键)判定的支持。
|
||||
/// </summary>
|
||||
public partial class EzManiaScoreGraph : BaseEzScoreGraph
|
||||
{
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.LAsEzExtensions.Analysis;
|
||||
using osu.Game.LAsEzExtensions.Statistics;
|
||||
using osu.Game.Replays;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
@@ -21,8 +20,9 @@ using osu.Game.Utils;
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Analysis
|
||||
{
|
||||
/// <summary>
|
||||
/// Generates <see cref="HitEvent"/>s for mania scores by re-evaluating a score's replay input against a provided playable beatmap.
|
||||
/// This is intended for results/statistics usage where <see cref="ScoreInfo.HitEvents"/> are not persisted.
|
||||
/// Mania成绩的<see cref="HitEvent"/>生成器,通过将成绩的回放输入重新评估与提供的可玩谱面进行比较来生成<see cref="HitEvent"/>。
|
||||
/// <para>这个生成器主要用于结果/统计用途,其中<see cref="ScoreInfo.HitEvents"/>没有被持久化。</para>
|
||||
/// <para>上游通过反射注册到<see cref="ScoreHitEventGeneratorBridge"/>,因此无法直接查看调用源。</para>
|
||||
/// </summary>
|
||||
public sealed class ManiaScoreHitEventGenerator : IHitEventGenerator
|
||||
{
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
// 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 osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
{
|
||||
public partial class CustomVisibilityContainer : VisibilityContainer
|
||||
{
|
||||
public CustomVisibilityContainer()
|
||||
{
|
||||
AutoSizeAxes = Axes.Y;
|
||||
RelativeSizeAxes = Axes.X;
|
||||
}
|
||||
|
||||
protected override void PopIn()
|
||||
{
|
||||
this.FadeIn();
|
||||
}
|
||||
|
||||
protected override void PopOut()
|
||||
{
|
||||
this.FadeOut();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,24 @@
|
||||
// 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;
|
||||
using System.ComponentModel;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
{
|
||||
public enum EzManiaScrollingStyle
|
||||
{
|
||||
// [LocalisableDescription(typeof(RulesetSettingsStrings), nameof(RulesetSettingsStrings.ScrollingDirectionUp))]
|
||||
[Description("40速 通配速度风格(不可用)")]
|
||||
[LocalisableDescription(typeof(EzManiaScrollingStyleStrings), nameof(EzManiaScrollingStyleStrings.SCROLL_SPEED_STYLE))]
|
||||
ScrollSpeedStyle = 0,
|
||||
|
||||
// [LocalisableDescription(typeof(RulesetSettingsStrings), nameof(RulesetSettingsStrings.ScrollingDirectionDown))]
|
||||
[Description("(ms) For Default Judgement Line")]
|
||||
[LocalisableDescription(typeof(EzManiaScrollingStyleStrings), nameof(EzManiaScrollingStyleStrings.SCROLL_TIME_FOR_DEFAULT_JUDGEMENT))]
|
||||
ScrollTimeStyle = 1,
|
||||
|
||||
[Description("(ms) For Real Judgement Line")]
|
||||
[LocalisableDescription(typeof(EzManiaScrollingStyleStrings), nameof(EzManiaScrollingStyleStrings.SCROLL_TIME_FOR_REAL_JUDGEMENT))]
|
||||
ScrollTimeForRealJudgement = 2,
|
||||
|
||||
[Description("(ms) For Screen Bottom")]
|
||||
[LocalisableDescription(typeof(EzManiaScrollingStyleStrings), nameof(EzManiaScrollingStyleStrings.SCROLL_TIME_FOR_SCREEN_BOTTOM))]
|
||||
ScrollTimeStyleFixed = 3,
|
||||
|
||||
// [Obsolete("Renamed to ScrollTimeStyleFixed. Kept for backward compatibility with stored settings.")]
|
||||
@@ -30,6 +28,25 @@ namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
// ScrollTimeStyleFixed = ScrollTimeStyleFixed,
|
||||
}
|
||||
|
||||
public static class EzManiaScrollingStyleStrings
|
||||
{
|
||||
public static readonly LocalisableString SCROLL_SPEED_STYLE = new EzLocalizationManager.EzLocalisableString(
|
||||
"40速 通配速度风格(不可用)",
|
||||
"40-speed universal speed style (unavailable)");
|
||||
|
||||
public static readonly LocalisableString SCROLL_TIME_FOR_DEFAULT_JUDGEMENT = new EzLocalizationManager.EzLocalisableString(
|
||||
"(ms) 相对于到默认判定线的时间",
|
||||
"(ms) Relative to default judgement line");
|
||||
|
||||
public static readonly LocalisableString SCROLL_TIME_FOR_REAL_JUDGEMENT = new EzLocalizationManager.EzLocalisableString(
|
||||
"(ms) 相对于到实际判定线的时间",
|
||||
"(ms) Relative to real judgement line");
|
||||
|
||||
public static readonly LocalisableString SCROLL_TIME_FOR_SCREEN_BOTTOM = new EzLocalizationManager.EzLocalisableString(
|
||||
"(ms) 相对于到屏幕底部的时间",
|
||||
"(ms) Relative to screen bottom");
|
||||
}
|
||||
|
||||
public enum ManiaHitResult
|
||||
{
|
||||
[Description("Poor")]
|
||||
|
||||
@@ -3,25 +3,6 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Overlays.Settings.Sections.Gameplay;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
||||
using osu.Game.Rulesets.Mania.Objects.EzCurrentHitObject;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
using osu.Game.Rulesets.Mania.UI;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
{
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
// 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 osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
{
|
||||
public class EzManiaHitTimingInfo
|
||||
{
|
||||
public double HitTime { get; set; }
|
||||
public HitResult Result { get; set; }
|
||||
|
||||
public EzManiaHitTimingInfo(double hitTime, HitResult result)
|
||||
{
|
||||
HitTime = hitTime;
|
||||
Result = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,261 +0,0 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
{
|
||||
/// <summary>
|
||||
/// 供 FastSlowDisplay HUD组件使用的本地化字符串。
|
||||
/// 代码文件来自于 YuLiangSSS。
|
||||
/// </summary>
|
||||
public static class FastSlowDisplayStrings
|
||||
{
|
||||
private const string prefix = @"osu.Game.Rulesets.Mania.LAsEZMania.FastSlowDisplay";
|
||||
|
||||
/// <summary>
|
||||
/// "Perfect"
|
||||
/// </summary>
|
||||
public static LocalisableString Perfect => "Perfect";
|
||||
|
||||
/// <summary>
|
||||
/// "Great"
|
||||
/// </summary>
|
||||
public static LocalisableString Great => "Great";
|
||||
|
||||
/// <summary>
|
||||
/// "Good"
|
||||
/// </summary>
|
||||
public static LocalisableString Good => "Good";
|
||||
|
||||
/// <summary>
|
||||
/// "Ok"
|
||||
/// </summary>
|
||||
public static LocalisableString Ok => "Ok";
|
||||
|
||||
/// <summary>
|
||||
/// "Meh"
|
||||
/// </summary>
|
||||
public static LocalisableString Meh => "Meh";
|
||||
|
||||
/// <summary>
|
||||
/// "Miss"
|
||||
/// </summary>
|
||||
public static LocalisableString Miss => "Miss";
|
||||
|
||||
/// <summary>
|
||||
/// "Gap"
|
||||
/// </summary>
|
||||
public static LocalisableString Gap => "Gap";
|
||||
|
||||
/// <summary>
|
||||
/// "Font Size"
|
||||
/// </summary>
|
||||
public static LocalisableString FontSize => "Font Size";
|
||||
|
||||
/// <summary>
|
||||
/// "The size of the text."
|
||||
/// </summary>
|
||||
public static LocalisableString FontSizeDescription => "The size of the text.";
|
||||
|
||||
/// <summary>
|
||||
/// "LN Switch"
|
||||
/// </summary>
|
||||
public static LocalisableString LNSwitch => "LN Switch";
|
||||
|
||||
/// <summary>
|
||||
/// "Display LN tail individually."
|
||||
/// </summary>
|
||||
public static LocalisableString LNSwitchDescription => "Display LN tail individually.";
|
||||
|
||||
/// <summary>
|
||||
/// "Fast Text"
|
||||
/// </summary>
|
||||
public static LocalisableString FastText => "Fast Text";
|
||||
|
||||
/// <summary>
|
||||
/// "Fast Text LN"
|
||||
/// </summary>
|
||||
public static LocalisableString FastTextLN => "Fast Text LN";
|
||||
|
||||
/// <summary>
|
||||
/// "Slow Text"
|
||||
/// </summary>
|
||||
public static LocalisableString SlowText => "Slow Text";
|
||||
|
||||
/// <summary>
|
||||
/// "Slow Text LN"
|
||||
/// </summary>
|
||||
public static LocalisableString SlowTextLN => "Slow Text LN";
|
||||
|
||||
/// <summary>
|
||||
/// "The text to be displayed."
|
||||
/// </summary>
|
||||
public static LocalisableString TextDescription => "The text to be displayed.";
|
||||
|
||||
/// <summary>
|
||||
/// "Fast Colour"
|
||||
/// </summary>
|
||||
public static LocalisableString FastColour => "Fast Colour";
|
||||
|
||||
/// <summary>
|
||||
/// "Fast Colour Style"
|
||||
/// </summary>
|
||||
public static LocalisableString FastColourStyle => "Fast Colour Style";
|
||||
|
||||
/// <summary>
|
||||
/// "The style of the fast colour."
|
||||
/// </summary>
|
||||
public static LocalisableString FastColourStyleDescription => "The style of the fast colour.";
|
||||
|
||||
/// <summary>
|
||||
/// "Slow Colour"
|
||||
/// </summary>
|
||||
public static LocalisableString SlowColour => "Slow Colour";
|
||||
|
||||
/// <summary>
|
||||
/// "Slow Colour Style"
|
||||
/// </summary>
|
||||
public static LocalisableString SlowColourStyle => "Slow Colour Style";
|
||||
|
||||
/// <summary>
|
||||
/// "The style of the slow colour."
|
||||
/// </summary>
|
||||
public static LocalisableString SlowColourStyleDescription => "The style of the slow colour.";
|
||||
|
||||
/// <summary>
|
||||
/// "The colour of the text."
|
||||
/// </summary>
|
||||
public static LocalisableString TextColourDescription => "The colour of the text.";
|
||||
|
||||
/// <summary>
|
||||
/// "The gap between fast and slow."
|
||||
/// </summary>
|
||||
public static LocalisableString GapDescription => "The gap between fast and slow.";
|
||||
|
||||
/// <summary>
|
||||
/// "Fade Duration"
|
||||
/// </summary>
|
||||
public static LocalisableString FadeDuration => "Fade Duration";
|
||||
|
||||
/// <summary>
|
||||
/// "The duration of the fade out effect."
|
||||
/// </summary>
|
||||
public static LocalisableString FadeDurationDescription => "The duration of the fade out effect.";
|
||||
|
||||
/// <summary>
|
||||
/// "Show Judgement"
|
||||
/// </summary>
|
||||
public static LocalisableString ShowJudgement => "Judgement";
|
||||
|
||||
/// <summary>
|
||||
/// "Fade before first judgement."
|
||||
/// </summary>
|
||||
public static LocalisableString FadeBeforeFirstJudgement => "Fade before first judgement";
|
||||
|
||||
/// <summary>
|
||||
/// "See if your SS missed."
|
||||
/// </summary>
|
||||
public static LocalisableString FadeBeforeFirstJudgementDescription => "See if your SS missed.";
|
||||
|
||||
/// <summary>
|
||||
/// "How to show fast/slow."
|
||||
/// </summary>
|
||||
public static LocalisableString ShowStyleDescription => "When to show fast/slow.";
|
||||
|
||||
/// <summary>
|
||||
/// "Horizontal / Vertical Display"
|
||||
/// </summary>
|
||||
public static LocalisableString DisplayStyle => "Horizontal / Vertical";
|
||||
|
||||
/// <summary>
|
||||
/// "Display the text horizontally or vertically."
|
||||
/// </summary>
|
||||
public static LocalisableString DisplayStyleDescription => "Display the text horizontally or vertically.";
|
||||
|
||||
/// <summary>
|
||||
/// "Test"
|
||||
/// </summary>
|
||||
public static LocalisableString Test => "Test";
|
||||
|
||||
/// <summary>
|
||||
/// "Preview the display of fast/slow."
|
||||
/// </summary>
|
||||
public static LocalisableString TestDescription => "Preview the display of fast/slow.";
|
||||
|
||||
/// <summary>
|
||||
/// "Lower Column Bound"
|
||||
/// </summary>
|
||||
public static LocalisableString LowerColumn => "Lower Column Bound";
|
||||
|
||||
/// <summary>
|
||||
/// "Upper Column Bound"
|
||||
/// </summary>
|
||||
public static LocalisableString UpperColumn => "Uppper Column Bound";
|
||||
|
||||
/// <summary>
|
||||
/// "The lower bound of the column to display the text."
|
||||
/// </summary>
|
||||
public static LocalisableString LowerColumnDescription => "The lower bound of the column to display the text.";
|
||||
|
||||
/// <summary>
|
||||
/// "The upper bound of the column to display the text."
|
||||
/// </summary>
|
||||
public static LocalisableString UpperColumnDescription => "The upper bound of the column to display the text.";
|
||||
|
||||
/// <summary>
|
||||
/// "Only Display One"
|
||||
/// </summary>
|
||||
public static LocalisableString OnlyDisplayOne => "Only Display One";
|
||||
|
||||
/// <summary>
|
||||
/// "Display only one text at a time."
|
||||
/// </summary>
|
||||
public static LocalisableString OnlyDisplayOneDescription => "Display only one text at a time.";
|
||||
|
||||
/// <summary>
|
||||
/// "None"
|
||||
/// </summary>
|
||||
public static LocalisableString None => "None";
|
||||
|
||||
/// <summary>
|
||||
/// "Left Half"
|
||||
/// </summary>
|
||||
public static LocalisableString LeftHalf => "Left Half";
|
||||
|
||||
/// <summary>
|
||||
/// "Right Half"
|
||||
/// </summary>
|
||||
public static LocalisableString RightHalf => "Right Half";
|
||||
|
||||
/// <summary>
|
||||
/// "Middle"
|
||||
/// </summary>
|
||||
public static LocalisableString Middle => "Middle";
|
||||
|
||||
/// <summary>
|
||||
/// "Single Colour"
|
||||
/// </summary>
|
||||
public static LocalisableString SingleColour => "Single Colour";
|
||||
|
||||
/// <summary>
|
||||
/// "Horizontal Gradient"
|
||||
/// </summary>
|
||||
public static LocalisableString HorizontalGradient => "Horizontal Gradient";
|
||||
|
||||
/// <summary>
|
||||
/// "Vertical Gradient"
|
||||
/// </summary>
|
||||
public static LocalisableString VerticalGradient => "Vertical Gradient";
|
||||
|
||||
/// <summary>
|
||||
/// "Select Column"
|
||||
/// </summary>
|
||||
public static LocalisableString SelectColumn => "Select Column";
|
||||
|
||||
/// <summary>
|
||||
/// "Select the column to display the text."
|
||||
/// </summary>
|
||||
public static LocalisableString SelectColumnDescription => "Select the column to display the text.";
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ using osu.Framework.Graphics.Sprites;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.HUD
|
||||
{
|
||||
public abstract partial class EzJudgementText : CompositeDrawable //, ISerialisableDrawable
|
||||
{
|
||||
@@ -9,7 +9,7 @@ using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.Screens.Play.HUD;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.HUD
|
||||
{
|
||||
public partial class EzKeyCounter : KeyCounter
|
||||
{
|
||||
@@ -2,7 +2,7 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.Screens.Play.HUD;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.HUD
|
||||
{
|
||||
public partial class ManiaActionInputTrigger : InputTrigger
|
||||
{
|
||||
@@ -8,11 +8,10 @@ using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Screens;
|
||||
using osu.Game.Screens.Play.HUD;
|
||||
using osuTK;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.HUD
|
||||
{
|
||||
public abstract partial class ManiaKeyCounterDisplay : Container
|
||||
{
|
||||
@@ -3,13 +3,12 @@
|
||||
|
||||
using System;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.LAsEzExtensions.Background;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Objects.EzCurrentHitObject;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania.Helper
|
||||
{
|
||||
// TODO:考虑重构为使用冻结字典 FrozenDictionary<EzEnumHitMode, double[]> 来存储各个模式的窗口,实现性能最大化。
|
||||
public class CustomHitWindowsHelper
|
||||
{
|
||||
private static readonly double[,] hit_range_bms =
|
||||
|
||||
@@ -6,7 +6,7 @@ using osu.Framework.Graphics;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Helper
|
||||
{
|
||||
public static class EzEffectHelper
|
||||
{
|
||||
@@ -0,0 +1,15 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEZMania.Localization
|
||||
{
|
||||
public static class EzHUDStrings
|
||||
{
|
||||
public static readonly LocalisableString EXEMPLAR_HUD = new EzLocalizationManager.EzLocalisableString(
|
||||
"示例HUD",
|
||||
"Exemplar HUD");
|
||||
}
|
||||
}
|
||||
@@ -1,481 +0,0 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Localization
|
||||
{
|
||||
#pragma warning disable IDE1006
|
||||
public class EzManiaModStrings : EzModStrings
|
||||
{
|
||||
// Ez2Settings
|
||||
public static readonly LocalisableString Ez2Settings_Description = new EzLocalisableString("按固定模版,移除盘子和踏板", "Remove Scratch, Panel.");
|
||||
public static readonly LocalisableString NoScratch_Label = new EzLocalisableString("无盘", "No Scratch");
|
||||
|
||||
public static readonly LocalisableString NoScratch_Description =
|
||||
new EzLocalisableString("按固定模版,去除Ez街机谱面中的盘子. 用于: 6-9k L-S; 12\\14\\16k LR-S", "No (EZ)Scratch. For: 6-9k L-S; 12\\14\\16k LR-S");
|
||||
|
||||
public static readonly LocalisableString NoPanel_Label = new EzLocalisableString("无踏板", "No Panel");
|
||||
public static readonly LocalisableString NoPanel_Description = new EzLocalisableString("按固定模版,去除Ez街机谱面中的脚踏. 用于: 7\\14\\18k", "No (EZ)Panel. For: 7\\14\\18k");
|
||||
public static readonly LocalisableString HealthyScratch_Label = new EzLocalisableString("健康盘子", "Healthy Scratch");
|
||||
public static readonly LocalisableString HealthyScratch_Description = new EzLocalisableString("优化盘子密度,通过特定模版将过快的盘子移动到其他列", "Healthy (EZ)Scratch. Move the fast Scratch to the other columns");
|
||||
public static readonly LocalisableString MaxBeat_Label = new EzLocalisableString("最大节拍", "Max Beat");
|
||||
public static readonly LocalisableString MaxBeat_Description = new EzLocalisableString("盘子密度的最大节拍间隔, 1/? 拍", "Scratch MAX Beat Space, MAX 1/? Beat");
|
||||
|
||||
// CleanColumn
|
||||
public static readonly LocalisableString CleanColumn_Description = new EzLocalisableString("整理Column, 排序、删除轨道中的note", "Clean Column, Sort, Delete notes in the column.");
|
||||
public static readonly LocalisableString DeleteSColumn_Label = new EzLocalisableString("删除S列", "Delete S Column Type");
|
||||
public static readonly LocalisableString DeleteSColumn_Description = new EzLocalisableString("开启时删除标记了S Column Type的列", "Delete columns marked with S column type when enabled");
|
||||
public static readonly LocalisableString DeletePColumn_Label = new EzLocalisableString("删除P列", "Delete P Column Type");
|
||||
public static readonly LocalisableString DeletePColumn_Description = new EzLocalisableString("开启时删除标记了P Column Type的列", "Delete columns marked with P column type when enabled");
|
||||
public static readonly LocalisableString DeleteEColumn_Label = new EzLocalisableString("删除E列", "Delete E Column Type");
|
||||
public static readonly LocalisableString DeleteEColumn_Description = new EzLocalisableString("开启时删除标记了E Column Type的列", "Delete columns marked with E column type when enabled");
|
||||
public static readonly LocalisableString EnableCustomDelete_Label = new EzLocalisableString("自定义删除列", "Enable Custom Delete");
|
||||
|
||||
public static readonly LocalisableString EnableCustomDelete_Description = new EzLocalisableString("开启后启用自定义删除列功能,支持与其他功能同时使用。输入多个数字如'2468'删除第2、4、6、8列",
|
||||
"Enable custom column deletion when enabled, can be used with other features. Input multiple digits like '2468' to delete columns 2, 4, 6, 8");
|
||||
|
||||
public static readonly LocalisableString CustomDeleteColumn_Label = new EzLocalisableString("删除列序号", "Delete Column Indexes");
|
||||
|
||||
public static readonly LocalisableString CustomDeleteColumn_Description = new EzLocalisableString("输入要删除的列序号,支持多个数字。如'2468'删除2、4、6、8列。超过谱面列数的数字将被忽略。支持最多10k(0表示第10列)",
|
||||
"Input the column indexes to delete, support multiple digits. E.g. '2468' deletes columns 2, 4, 6, 8. Indexes exceeding the beatmap's column count will be ignored. Support up to 10k (0 means column 10)");
|
||||
|
||||
public static readonly LocalisableString EnableCustomReorder_Label = new EzLocalisableString("自定义列重排", "Enable Custom Reorder");
|
||||
|
||||
public static readonly LocalisableString EnableCustomReorder_Description = new EzLocalisableString("开启后启用自定义列清洗Column功能,如果更改了列数,需要重开此功能才能正常生效",
|
||||
"Enable custom column reorder when enabled, if the column count is changed, you need to toggle this feature again to take effect");
|
||||
|
||||
public static readonly LocalisableString CustomReorderColumn_Label = new EzLocalisableString("列重排规则", "Column Reorder Rule");
|
||||
|
||||
public static readonly LocalisableString CustomReorderColumn_Description = new EzLocalisableString(
|
||||
"处理Column,自定义排序、复制、删除或置空列中的note。"
|
||||
+ "\n执行顺序:先重排,后删除。支持最多10k(0表示第10列);"
|
||||
+ "\n'-'表示该新列位置清空,"
|
||||
+ "\n'|'表示该新列位置放置贯穿全谱面的长按note,"
|
||||
+ "\n'?'表示该新列保持原列位置不变。"
|
||||
+ "\n字符串长度决定新的列数(修改长度必须重新启用开关)。每位数字代表新列使用原谱面的哪一列内容,可重复以复制列。"
|
||||
+ "\n如果输入包含超出原列数的数字,该位会被忽略并保持为空列。"
|
||||
+ "\n示例:原谱面5k,输入 2|30-? 转换为6k:"
|
||||
+ "\n- 新列1=原列2;新列2=锁手长按;新列3=原列3;"
|
||||
+ "\n- 新列4=原列10(超出,忽略,空列);新列5='-'清空;"
|
||||
+ "\n- 新列6=随机的原列",
|
||||
"Process Column: custom reorder, copy, delete, or clear notes in columns."
|
||||
+ "\nExecution order: first reorder, then delete. Support up to 10k (0 means column 10); '-' clears the new column; '|' places a hold note spanning the entire beatmap in that new column; '?' keeps the original column in place."
|
||||
+ "\nString length determines the new column count (must re-enable when changing length). Each digit maps the new column to an original column; duplicates copy columns."
|
||||
+ "\nDigits exceeding the original column count are ignored and remain empty."
|
||||
+ "\nExample: original 5k, input " + '"' + "2|30-1" + '"' + " converts to 6k:"
|
||||
+ "\n- New col1 = orig col2;"
|
||||
+ "\n- New col2 = full-length hold;"
|
||||
+ "\n- New col3 = orig col3;"
|
||||
+ "\n- New col4 = orig col10 (ignored, empty);"
|
||||
+ "\n- New col5 = '-' cleared;"
|
||||
+ "\n- New col6 = orig col1.");
|
||||
|
||||
// Additional Adjust mod settings
|
||||
public static readonly LocalisableString RandomMirror_Label = new EzLocalisableString("随机镜像", "Random Mirror");
|
||||
public static readonly LocalisableString RandomMirror_Description = new EzLocalisableString("随机决定是否镜像音符", "Random Mirror. Mirror or not mirror notes by random.");
|
||||
public static readonly LocalisableString NoFail_Label = new EzLocalisableString("无失败", "No Fail");
|
||||
public static readonly LocalisableString NoFail_Description = new EzLocalisableString("无论如何都不会失败", "No Fail. You can't fail, no matter what.");
|
||||
public static readonly LocalisableString Restart_Label = new EzLocalisableString("失败重启", "Restart on fail");
|
||||
public static readonly LocalisableString Restart_Description = new EzLocalisableString("失败时自动重启", "Restart on fail. Automatically restarts when failed.");
|
||||
public static readonly LocalisableString RandomSelect_Label = new EzLocalisableString("随机选择", "Random");
|
||||
public static readonly LocalisableString RandomSelect_Description = new EzLocalisableString("随机排列按键", "Random. Shuffle around the keys.");
|
||||
public static readonly LocalisableString TrueRandom_Label = new EzLocalisableString("真随机", "True Random");
|
||||
|
||||
public static readonly LocalisableString TrueRandom_Description = new EzLocalisableString("随机排列所有音符(使用NoLN(LN转换器等级-3),否则可能会重叠)",
|
||||
"True Random. Shuffle all notes(Use NoLN(LN Transformer Level -3), or you will get overlapping notes otherwise).");
|
||||
|
||||
public static readonly LocalisableString BeatSpeed_Label = new EzLocalisableString("转换的节拍速度", "Transform Beat Speed");
|
||||
|
||||
public static readonly LocalisableString BeatSpeed_Description = new EzLocalisableString(
|
||||
"| Index | Beat Length |\n" +
|
||||
"|-------|-------------|\n" +
|
||||
"| 0 | 1/8 Beat |\n" +
|
||||
"| 1 | 1/4 Beat |\n" +
|
||||
"| 2 | 1/2 Beat |\n" +
|
||||
"| 3 | 3/4 Beat |\n" +
|
||||
"| 4 | 1 Beat |\n" +
|
||||
"| 5 | 2 Beats |\n" +
|
||||
"| 6 | 3 Beats |\n" +
|
||||
"| 7 | 4 Beats |\n" +
|
||||
"| 8 | Free |"
|
||||
);
|
||||
|
||||
// ====================================================================================================
|
||||
// YuLiangSSSMods - Mod Descriptions
|
||||
// ====================================================================================================
|
||||
|
||||
public static readonly LocalisableString ChangeSpeedByAccuracy_Description = new EzLocalisableString("根据准确度调整游戏速度", "Adapt the speed of the game based on the accuracy.");
|
||||
public static readonly LocalisableString Adjust_Description = new EzLocalisableString("凉雨Mod一卡通", "Set your settings.");
|
||||
public static readonly LocalisableString LN_Description = new EzLocalisableString("LN转换器", "LN Transformer");
|
||||
public static readonly LocalisableString Cleaner_Description = new EzLocalisableString("清理谱面中的子弹或其他音符(例如重叠音符)", "Clean bullet or other notes on map(e.g. Overlap note).");
|
||||
public static readonly LocalisableString LNJudgementAdjust_Description = new EzLocalisableString("调整LN的判定", "Adjust the judgement of LN.");
|
||||
public static readonly LocalisableString LNSimplify_Description = new EzLocalisableString("通过转换简化节奏", "Simplifies rhythms by converting.");
|
||||
public static readonly LocalisableString LNTransformer_Description = new EzLocalisableString("LN转换", "LN Transformer");
|
||||
public static readonly LocalisableString NewJudgement_Description = new EzLocalisableString("根据歌曲BPM设置新的判定", "New judgement set by BPM of the song.");
|
||||
public static readonly LocalisableString NtoM_Description = new EzLocalisableString("转换为更高的按键数模式", "Convert to upper Keys mode.");
|
||||
|
||||
public static readonly LocalisableString NtoMAnother_Description = new EzLocalisableString("转Key,来自krrcream的工具(有一些bug,请使用Clean设置来清理)",
|
||||
"From krrcream's Tool (It has some bugs, please use Clean settings to clean it.)");
|
||||
|
||||
public static readonly LocalisableString Gracer_Description = new EzLocalisableString("转换为grace", "Convert to grace.");
|
||||
public static readonly LocalisableString O2Judgement_Description = new EzLocalisableString("为O2JAM玩家设计的判定系统", "Judgement System for O2JAM players.");
|
||||
public static readonly LocalisableString PlayfieldTransformation_Description = new EzLocalisableString("根据连击数调整游戏区域缩放", "Adjusts playfield scale based on combo.");
|
||||
public static readonly LocalisableString O2Health_Description = new EzLocalisableString("为O2JAM玩家设计的生命值系统", "Health system for O2JAM players.");
|
||||
public static readonly LocalisableString Remedy_Description = new EzLocalisableString("修复较低的判定", "Remedy lower judgement.");
|
||||
public static readonly LocalisableString StarRatingRebirth_Description = new EzLocalisableString("sunnyxxy的星级算法,替换官方星级标记", "New algorithm by sunnyxxy.");
|
||||
public static readonly LocalisableString ReleaseAdjust_Description = new EzLocalisableString("不再需要计时长按音符的结尾", "No more timing the end of hold notes.");
|
||||
public static readonly LocalisableString NoteAdjust_Description = new EzLocalisableString("制作更多或更少的音符", "To make more or less note.");
|
||||
public static readonly LocalisableString LNLongShortAddition_Description = new EzLocalisableString("LN转换器附加版本", "LN Transformer additional version.");
|
||||
public static readonly LocalisableString MalodyStyleLN_Description = new EzLocalisableString("像Malody一样播放LN!", "Play LN like Malody!");
|
||||
public static readonly LocalisableString LNDoubleDistribution_Description = new EzLocalisableString("LN转换器另一个版本", "LN Transformer another version.");
|
||||
public static readonly LocalisableString JudgmentsAdjust_Description = new EzLocalisableString("修改你的判定", "Modify your judgement.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Description = new EzLocalisableString("重构谱面列数、密度与多压", "Rebuild the beatmap with new column count, density and chord limit.");
|
||||
public static readonly LocalisableString PatternShift_Description_Bracket = new EzLocalisableString("修改/补充键型:切叉", "Rebuild the beatmap with new column count, density and chord limit (with bracket).");
|
||||
public static readonly LocalisableString PatternShift_Description_Chord = new EzLocalisableString("修改/补充键型:拍", "Rebuild the beatmap with new column count, density and chord limit (chord limit).");
|
||||
public static readonly LocalisableString PatternShift_Description_Delay = new EzLocalisableString("修改/补充键型:偏移", "Rebuild the beatmap with new column count, density and chord limit (with delay).");
|
||||
public static readonly LocalisableString PatternShift_Description_Dump = new EzLocalisableString("修改/补充键型:楼梯", "Rebuild the beatmap with new column count, density and chord limit (full).");
|
||||
public static readonly LocalisableString PatternShift_Description_Jack = new EzLocalisableString("修改/补充键型:叠/子弹", "Rebuild the beatmap with new column count, density and chord limit (with Jack).");
|
||||
|
||||
public static readonly LocalisableString PatternShift_KeyCount_Label = new EzLocalisableString("目标列数", "Target Columns");
|
||||
public static readonly LocalisableString PatternShift_KeyCount_Description = new EzLocalisableString("设置生成后的列数", "Set the output column count.");
|
||||
public static readonly LocalisableString PatternShift_Density_Label = new EzLocalisableString("密度", "Density");
|
||||
public static readonly LocalisableString PatternShift_Density_Description = new EzLocalisableString("密度强度(1-10)", "Density strength (1-10).");
|
||||
public static readonly LocalisableString PatternShift_MaxChord_Label = new EzLocalisableString("和弦上限", "Max Chord");
|
||||
public static readonly LocalisableString PatternShift_MaxChord_Description = new EzLocalisableString("每一排最多保留的note数量", "Maximum notes per row.");
|
||||
public static readonly LocalisableString PatternShift_AlignDivisor_Label = new EzLocalisableString("对齐", "Align");
|
||||
|
||||
public static readonly LocalisableString PatternShift_AlignDivisor_Description =
|
||||
new EzLocalisableString("对齐到节拍网格,0=关闭,1=1/1,2=1/2,4=1/4,8=1/8,16=1/16", "Snap to beat grid. 0=off, 1=1/1, 2=1/2, 4=1/4, 8=1/8, 16=1/16.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_DelayLevel_Label = new EzLocalisableString("Delay", "Delay");
|
||||
|
||||
public static readonly LocalisableString PatternShift_DelayLevel_Description = new EzLocalisableString(
|
||||
"随机将部分note前后偏移,0=关闭。\n1-3: 偏移1/16、3/32、1/8;偏移数量<=等级,且至少保留等级数量不偏移。\n4-6: 同样偏移;至少保留1个不偏移。\n7-10: 偏移1/16、1/12、5/48、1/8;偏移数量<=等级,不强制保留。",
|
||||
"Randomly offset some notes. 0=off.\n1-3: offsets 1/16, 3/32, 1/8; shift up to level, keep at least level unshifted.\n4-6: same offsets; keep at least 1 unshifted.\n7-10: offsets 1/16, 1/12, 5/48, 1/8; shift up to level, no minimum unshifted.");
|
||||
|
||||
// Additional labels for PatternShift variants
|
||||
public static readonly LocalisableString PatternShift_JackLevel_Description = new EzLocalisableString(
|
||||
"Jack 等级说明:\n1: 1/2 源,移动,单侧列。\n2: 1/2 源,移动,仅双侧列(失败时回退到较低等级)。\n3: 1/4 源,移动,单侧列。\n4: 1/4 源,移动,仅双侧列(失败时回退)。\n5: 1/2 源,添加,单侧列。\n6: 1/2 源,添加,仅双侧列(失败时回退)。\n7: 1/4 源,添加,单侧列。\n8: 1/4 源,添加,仅双侧列(失败时回退)。\n9: 等级5 + 等级7。\n10: 等级6 + 等级8.",
|
||||
"Jack level description:\n1: 1/2 sources, move, one-side columns.\n2: 1/2 sources, move, both-sides only (fallback to lower levels on fail).\n3: 1/4 sources, move, one-side columns.\n4: 1/4 sources, move, both-sides only (fallback).\n5: 1/2 sources, add, one-side columns.\n6: 1/2 sources, add, both-sides only (fallback).\n7: 1/4 sources, add, one-side columns.\n8: 1/4 sources, add, both-sides only (fallback).\n9: level 5 + level 7.\n10: level 6 + level 8.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_WindowMaxIterations_Label = new EzLocalisableString("窗口最大迭代", "Window Max Iterations");
|
||||
public static readonly LocalisableString PatternShift_WindowMaxIterations_Description = new EzLocalisableString("每个窗口的最大迭代次数", "Max iterations per window.");
|
||||
|
||||
// SR Adjust
|
||||
public static readonly LocalisableString SRAdjust_RescaleThreshold_Label = new EzLocalisableString("重缩放阈值", "Rescale Threshold");
|
||||
public static readonly LocalisableString SRAdjust_RescaleThreshold_Description = new EzLocalisableString("超过此阈值后将降低难度膨胀速度", "Reduce difficulty inflation speed when above this threshold.");
|
||||
|
||||
public static readonly LocalisableString SRAdjust_LnMultiplier_Label = new EzLocalisableString("LN 因子", "LN Integral Multiplier");
|
||||
public static readonly LocalisableString SRAdjust_LnMultiplier_Description = new EzLocalisableString("LN 因子", "LN integral multiplier.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Waveform_Label = new EzLocalisableString("波形", "Waveform");
|
||||
public static readonly LocalisableString PatternShift_Waveform_Description = new EzLocalisableString("振荡器波形,影响键型局部处理时的循环周期", "Oscillator waveform used to vary pattern intensity.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Level_Label = new EzLocalisableString("等级", "Level");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Level_Description =
|
||||
new EzLocalisableString("0=off, 1-10。控制每个窗口生成的音符数量", "0=off, 1-10. Controls how many notes are generated per window.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_OscillationBeats_Label = new EzLocalisableString("振荡节拍", "Oscillation Beats");
|
||||
public static readonly LocalisableString PatternShift_OscillationBeats_Description = new EzLocalisableString("振荡器变化的节拍间隔。1=每拍。", "Beat interval for oscillator changes. 1=every beat.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_WindowInterval_Label = new EzLocalisableString("窗口间隔", "Window Interval");
|
||||
public static readonly LocalisableString PatternShift_WindowInterval_Description = new EzLocalisableString("每N半拍处理一次。1=每半拍。", "Process every N half-beats. 1=every half-beat.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_WindowStartOffset_Label = new EzLocalisableString("窗口起始偏移", "Window Start Offset");
|
||||
public static readonly LocalisableString PatternShift_WindowStartOffset_Description = new EzLocalisableString("1-4:第一到第四个半拍。", "1-4: first to fourth half-beat.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Skip_FineThreshold_Label = new EzLocalisableString(
|
||||
"Bypass高分节拍跳过阈值",
|
||||
"Bypass high-density beat skip threshold");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Skip_FineThreshold_Description = new EzLocalisableString(
|
||||
"在1/2节拍之间出现1/4以上(不含1/4)线的note数量阈值,超过则跳过处理。高星图需适当增加。",
|
||||
"Threshold for notes finer than 1/4 within a half-window; exceeding this skips processing. Default = 2.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Skip_QuarterDivisor_Label = new EzLocalisableString(
|
||||
"Bypass 1/4线跳过阈值 (1/n)",
|
||||
"Bypass Quarter-line threshold divisor (1/n)");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Skip_QuarterDivisor_Description = new EzLocalisableString(
|
||||
"1/4线上的note数量阈值按谱面总列数的1/n计算,默认 n=2,即 k/2 阈值。",
|
||||
"Quarter-line note threshold is totalColumns / n. Default n=2 (k/2).");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Regenerate_Label = new EzLocalisableString("重生成", "Regenerate");
|
||||
|
||||
public static readonly LocalisableString PatternShift_Regenerate_Description =
|
||||
new EzLocalisableString("在转换时根据音频重新生成完整谱面,而不是使用原始音符", "Regenerate the full beatmap from audio during conversion instead of using original hit objects.");
|
||||
|
||||
public static readonly LocalisableString PatternShift_RegenerateDifficulty_Label = new EzLocalisableString("重生成难度", "Regenerate Difficulty");
|
||||
|
||||
public static readonly LocalisableString PatternShift_RegenerateDifficulty_Description =
|
||||
new EzLocalisableString("控制重生成的目标难度(星级),范围 2-10", "Target difficulty (stars) for regeneration, range 2-10.");
|
||||
|
||||
// ====================================================================================================
|
||||
// Krr Mods - Labels & Descriptions
|
||||
// ====================================================================================================
|
||||
|
||||
// Krr N2Nc
|
||||
public static readonly LocalisableString KrrN2Nc_TargetKeys_Label = new EzLocalisableString("目标键数", "Target Keys");
|
||||
public static readonly LocalisableString KrrN2Nc_TargetKeys_Description = new EzLocalisableString("目标键数(用于修改列数)", "Target key count (change columns).");
|
||||
public static readonly LocalisableString KrrN2Nc_MaxKeys_Label = new EzLocalisableString("密度上限", "Density Max");
|
||||
public static readonly LocalisableString KrrN2Nc_MaxKeys_Description = new EzLocalisableString("每行最大键数", "Max keys per row.");
|
||||
public static readonly LocalisableString KrrN2Nc_MinKeys_Label = new EzLocalisableString("密度下限", "Density Min");
|
||||
public static readonly LocalisableString KrrN2Nc_MinKeys_Description = new EzLocalisableString("每行最小键数", "Min keys per row.");
|
||||
|
||||
// Krr DP
|
||||
public static readonly LocalisableString KrrDP_EnableModifyKeys_Label = new EzLocalisableString("启用键数修改", "Enable Modify Keys");
|
||||
public static readonly LocalisableString KrrDP_EnableModifyKeys_Description = new EzLocalisableString("启用后可指定左右各自的键数", "Enable to set keys per side.");
|
||||
public static readonly LocalisableString KrrDP_TargetKeys_Label = new EzLocalisableString("目标键数", "Target Keys");
|
||||
public static readonly LocalisableString KrrDP_TargetKeys_Description = new EzLocalisableString("左右每侧的目标键数", "Target keys per side.");
|
||||
public static readonly LocalisableString KrrDP_LeftMirror_Label = new EzLocalisableString("左侧镜像", "Left Mirror");
|
||||
public static readonly LocalisableString KrrDP_LeftMirror_Description = new EzLocalisableString("左侧镜像翻转", "Mirror left side.");
|
||||
public static readonly LocalisableString KrrDP_RightMirror_Label = new EzLocalisableString("右侧镜像", "Right Mirror");
|
||||
public static readonly LocalisableString KrrDP_RightMirror_Description = new EzLocalisableString("右侧镜像翻转", "Mirror right side.");
|
||||
public static readonly LocalisableString KrrDP_LeftDensity_Label = new EzLocalisableString("左侧密度", "Left Density");
|
||||
public static readonly LocalisableString KrrDP_LeftDensity_Description = new EzLocalisableString("调整左侧密度", "Adjust left density.");
|
||||
public static readonly LocalisableString KrrDP_RightDensity_Label = new EzLocalisableString("右侧密度", "Right Density");
|
||||
public static readonly LocalisableString KrrDP_RightDensity_Description = new EzLocalisableString("调整右侧密度", "Adjust right density.");
|
||||
public static readonly LocalisableString KrrDP_LeftRemove_Label = new EzLocalisableString("移除左侧", "Remove Left");
|
||||
public static readonly LocalisableString KrrDP_LeftRemove_Description = new EzLocalisableString("移除左侧所有音符", "Remove left side.");
|
||||
public static readonly LocalisableString KrrDP_RightRemove_Label = new EzLocalisableString("移除右侧", "Remove Right");
|
||||
public static readonly LocalisableString KrrDP_RightRemove_Description = new EzLocalisableString("移除右侧所有音符", "Remove right side.");
|
||||
public static readonly LocalisableString KrrDP_LeftMax_Label = new EzLocalisableString("左侧最大键数", "Left Max Keys");
|
||||
public static readonly LocalisableString KrrDP_LeftMax_Description = new EzLocalisableString("左侧密度最大键数", "Left density max keys.");
|
||||
public static readonly LocalisableString KrrDP_LeftMin_Label = new EzLocalisableString("左侧最小键数", "Left Min Keys");
|
||||
public static readonly LocalisableString KrrDP_LeftMin_Description = new EzLocalisableString("左侧密度最小键数", "Left density min keys.");
|
||||
public static readonly LocalisableString KrrDP_RightMax_Label = new EzLocalisableString("右侧最大键数", "Right Max Keys");
|
||||
public static readonly LocalisableString KrrDP_RightMax_Description = new EzLocalisableString("右侧密度最大键数", "Right density max keys.");
|
||||
public static readonly LocalisableString KrrDP_RightMin_Label = new EzLocalisableString("右侧最小键数", "Right Min Keys");
|
||||
public static readonly LocalisableString KrrDP_RightMin_Description = new EzLocalisableString("右侧密度最小键数", "Right density min keys.");
|
||||
|
||||
// Krr LN
|
||||
public static readonly LocalisableString KrrLN_LongLevel_Label = new EzLocalisableString("长按等级", "Long Level");
|
||||
public static readonly LocalisableString KrrLN_LongLevel_Description = new EzLocalisableString("长按长度强度(0-100)", "Long length level (0-100).");
|
||||
public static readonly LocalisableString KrrLN_ShortLevel_Label = new EzLocalisableString("短按等级", "Short Level");
|
||||
public static readonly LocalisableString KrrLN_ShortLevel_Description = new EzLocalisableString("短按长度强度(0-256)", "Short length level (0-256).");
|
||||
public static readonly LocalisableString KrrLN_ProcessOriginal_Label = new EzLocalisableString("处理原始LN", "Process Original LN");
|
||||
public static readonly LocalisableString KrrLN_ProcessOriginal_Description = new EzLocalisableString("关闭时跳过原始LN", "Skip original LN when disabled.");
|
||||
public static readonly LocalisableString KrrLN_LengthThreshold_Label = new EzLocalisableString("长度阈值", "Length Threshold");
|
||||
public static readonly LocalisableString KrrLN_LengthThreshold_Description = new EzLocalisableString("长短按判定阈值", "Threshold between long/short.");
|
||||
public static readonly LocalisableString KrrLN_LongPercentage_Label = new EzLocalisableString("长按比例", "Long Percentage");
|
||||
public static readonly LocalisableString KrrLN_LongPercentage_Description = new EzLocalisableString("长按转换比例", "Percentage of long conversion.");
|
||||
public static readonly LocalisableString KrrLN_ShortPercentage_Label = new EzLocalisableString("短按比例", "Short Percentage");
|
||||
public static readonly LocalisableString KrrLN_ShortPercentage_Description = new EzLocalisableString("短按转换比例", "Percentage of short conversion.");
|
||||
public static readonly LocalisableString KrrLN_LongLimit_Label = new EzLocalisableString("长按上限", "Long Limit");
|
||||
public static readonly LocalisableString KrrLN_LongLimit_Description = new EzLocalisableString("每行长按上限", "Max long notes per row.");
|
||||
public static readonly LocalisableString KrrLN_ShortLimit_Label = new EzLocalisableString("短按上限", "Short Limit");
|
||||
public static readonly LocalisableString KrrLN_ShortLimit_Description = new EzLocalisableString("每行短按上限", "Max short notes per row.");
|
||||
public static readonly LocalisableString KrrLN_LongRandom_Label = new EzLocalisableString("长按随机", "Long Random");
|
||||
public static readonly LocalisableString KrrLN_LongRandom_Description = new EzLocalisableString("长按随机强度", "Randomness for long notes.");
|
||||
public static readonly LocalisableString KrrLN_ShortRandom_Label = new EzLocalisableString("短按随机", "Short Random");
|
||||
public static readonly LocalisableString KrrLN_ShortRandom_Description = new EzLocalisableString("短按随机强度", "Randomness for short notes.");
|
||||
public static readonly LocalisableString KrrLN_Alignment_Label = new EzLocalisableString("对齐", "Alignment");
|
||||
public static readonly LocalisableString KrrLN_Alignment_Description = new EzLocalisableString("普通音符对齐节拍", "Snap normal notes to beat grid.");
|
||||
public static readonly LocalisableString KrrLN_LNAlignment_Label = new EzLocalisableString("LN对齐", "LN Alignment");
|
||||
public static readonly LocalisableString KrrLN_LNAlignment_Description = new EzLocalisableString("长按尾部对齐节拍", "Snap hold tails to beat grid.");
|
||||
|
||||
// ====================================================================================================
|
||||
// YuLiangSSSMods - SettingSource Labels & Descriptions
|
||||
// ====================================================================================================
|
||||
|
||||
// ChangeSpeedByAccuracy
|
||||
public static readonly LocalisableString ChangeSpeedAccuracy_Label = new EzLocalisableString("准确度", "Accuracy");
|
||||
public static readonly LocalisableString ChangeSpeedAccuracy_Description = new EzLocalisableString("应用速度变化的准确度", "Accuracy. Accuracy for speed change to be applied.");
|
||||
public static readonly LocalisableString MaxSpeed_Label = new EzLocalisableString("最大速度", "Max Speed");
|
||||
public static readonly LocalisableString MaxSpeed_Description = new EzLocalisableString("最大速度", "Max Speed");
|
||||
public static readonly LocalisableString MinSpeed_Label = new EzLocalisableString("最小速度", "Min Speed");
|
||||
public static readonly LocalisableString MinSpeed_Description = new EzLocalisableString("最小速度", "Min Speed");
|
||||
|
||||
// Gracer
|
||||
public static readonly LocalisableString Bias_Label = new EzLocalisableString("偏差", "Bias");
|
||||
public static readonly LocalisableString Bias_Description = new EzLocalisableString("原始时机的偏差", "Bias. The bias of original timing.");
|
||||
public static readonly LocalisableString Interval_Label = new EzLocalisableString("间隔", "Interval");
|
||||
public static readonly LocalisableString Interval_Description = new EzLocalisableString("音符的最小间隔(防止重叠)", "Interval. The minimum interval of note(To prevent overlap).");
|
||||
public static readonly LocalisableString Probability_Label = new EzLocalisableString("概率", "Probability");
|
||||
public static readonly LocalisableString Probability_Description = new EzLocalisableString("转换概率", "Probability. The Probability of convertion.");
|
||||
|
||||
// NtoM, Gracer, JackAdjust
|
||||
public static readonly LocalisableString Key_Label = new EzLocalisableString("按键数", "Key");
|
||||
public static readonly LocalisableString Key_Description = new EzLocalisableString("目标按键数(只能从低按键数转换为高按键数)", "Key. To Keys(Can only convert lower keys to higher keys.)");
|
||||
public static readonly LocalisableString BlankColumn_Label = new EzLocalisableString("空白列", "Blank Column");
|
||||
|
||||
public static readonly LocalisableString BlankColumn_Description = new EzLocalisableString("要添加的空白列数。(注意:如果按键数-圆形大小小于空白列数,则不会添加。)",
|
||||
"Number of blank columns to add. (Notice: If the number of Key - CircleSize is less than the number of blank columns, it won't be added.)");
|
||||
|
||||
public static readonly LocalisableString NtoMGap_Label = new EzLocalisableString("间隙", "Gap");
|
||||
|
||||
public static readonly LocalisableString NtoMGap_Description = new EzLocalisableString("在每个区域重新排列音符。(间隙越大,音符分布越广。)",
|
||||
"Rearrange the notes in every area. (If Gap is bigger, the notes will be more spread out.)");
|
||||
|
||||
public static readonly LocalisableString Clean_Label = new EzLocalisableString("清理", "Clean");
|
||||
public static readonly LocalisableString Clean_Description = new EzLocalisableString("尝试清理谱面中的一些音符。", "Try to clean some notes in the map.");
|
||||
public static readonly LocalisableString CleanDivide_Label = new EzLocalisableString("清理分割", "Clean Divide");
|
||||
|
||||
public static readonly LocalisableString CleanDivide_Description = new EzLocalisableString("选择清理的分割(0表示不分割清理,4推荐用于流,8推荐用于Jack)。(如果清理为false,此设置不会被使用。)",
|
||||
"Choose the divide(0 For no Divide Clean, 4 is Recommended for Stream, 8 is Recommended for Jack) of cleaning. (If Clean is false, this setting won't be used.)");
|
||||
|
||||
public static readonly LocalisableString Adjust4Jack_Label = new EzLocalisableString("1/4 Jack", "1/4 Jack");
|
||||
|
||||
public static readonly LocalisableString Adjust4Jack_Description = new EzLocalisableString("(如100+ BPM 1/4 Jack)清理分割 * 1/2,用于1/4 Jack,避免清理1/4 Jack。",
|
||||
"(Like 100+ BPM 1/4 Jack)Clean Divide * 1/2, for 1/4 Jack, avoiding cleaning 1/4 Jack.");
|
||||
|
||||
public static readonly LocalisableString Adjust4Speed_Label = new EzLocalisableString("1/4 Speed", "1/4 Speed");
|
||||
|
||||
public static readonly LocalisableString Adjust4Speed_Description = new EzLocalisableString("(如300+ BPM 1/4 Speed)清理分割 * 2,用于1/4 Speed,避免额外的1/2 Jack。",
|
||||
"(Like 300+ BPM 1/4 Speed)Clean Divide * 2, for 1/4 Speed, avoiding additional 1/2 Jack.");
|
||||
|
||||
// NtoM, Gracer, JackAdjust, LNJudgementAdjust
|
||||
|
||||
public static readonly LocalisableString UseHealthCapReduction_Label = new EzLocalisableString("血量上限降低模式", "Health Cap Reduction Mode");
|
||||
|
||||
public static readonly LocalisableString UseHealthCapReduction_Description = new EzLocalisableString("开启后锁手面的combo break降低血量上限15%而不是直接扣血,最低40%上限",
|
||||
"When enabled, Lock LN's combo breaks reduce the maximum health cap by 15% instead of direct health deduction, down to a minimum of 40%.");
|
||||
|
||||
// JudgmentsAdjust
|
||||
public static readonly LocalisableString CustomHitRange_Label = new EzLocalisableString("自定义打击范围", "Custom Hit Range");
|
||||
public static readonly LocalisableString CustomHitRange_Description = new EzLocalisableString("调整音符的打击范围", "Custom Hit Range. Adjust the hit range of notes.");
|
||||
public static readonly LocalisableString CustomProportionScore_Label = new EzLocalisableString("自定义比例分数", "Custom Proportion Score");
|
||||
public static readonly LocalisableString CustomProportionScore_Description = new EzLocalisableString("自定义比例分数", "Custom Proportion Score");
|
||||
|
||||
// LNJudgementAdjust
|
||||
public static readonly LocalisableString BodyJudgementSwitch_Label = new EzLocalisableString("主体判定开关", "Body Judgement Switch");
|
||||
public static readonly LocalisableString BodyJudgementSwitch_Description = new EzLocalisableString("开启/关闭主体判定", "Turn on/off body judgement.");
|
||||
public static readonly LocalisableString TailJudgementSwitch_Label = new EzLocalisableString("尾部判定开关", "Tail Judgement Switch");
|
||||
public static readonly LocalisableString TailJudgementSwitch_Description = new EzLocalisableString("开启/关闭尾部判定", "Turn on/off tail judgement.");
|
||||
|
||||
// O2Judgement
|
||||
public static readonly LocalisableString PillSwitch_Label = new EzLocalisableString("药丸开关", "Pill Switch");
|
||||
public static readonly LocalisableString PillSwitch_Description = new EzLocalisableString("使用O2JAM药丸功能", "Use O2JAM pill function.");
|
||||
|
||||
// Cleaner
|
||||
public static readonly LocalisableString Style_Label = new EzLocalisableString("样式", "Style");
|
||||
public static readonly LocalisableString Style_Description = new EzLocalisableString("选择你的样式", "Choose your style.");
|
||||
public static readonly LocalisableString LNInterval_Label = new EzLocalisableString("LN间隔", "LN Interval");
|
||||
public static readonly LocalisableString LNInterval_Description = new EzLocalisableString("你决定的释放和按压速度", "The release & press speed you decide.");
|
||||
|
||||
// LN
|
||||
public static readonly LocalisableString Divide_Label = new EzLocalisableString("分割", "Divide");
|
||||
public static readonly LocalisableString Divide_Description = new EzLocalisableString("使用1/?", "Use 1/?");
|
||||
public static readonly LocalisableString Percentage_Label = new EzLocalisableString("百分比", "Percentage");
|
||||
public static readonly LocalisableString Percentage_Description = new EzLocalisableString("LN内容", "LN Content");
|
||||
public static readonly LocalisableString OriginalLN_Label = new EzLocalisableString("原始LN", "Original LN");
|
||||
public static readonly LocalisableString OriginalLN_Description = new EzLocalisableString("原始LN不会被转换", "Original LN won't be converted.");
|
||||
public static readonly LocalisableString ColumnNum_Label = new EzLocalisableString("列数", "Column Num");
|
||||
public static readonly LocalisableString ColumnNum_Description = new EzLocalisableString("选择要转换的列数", "Select the number of column to transform.");
|
||||
public static readonly LocalisableString Gap_Label = new EzLocalisableString("间隙", "Gap");
|
||||
public static readonly LocalisableString Gap_Description = new EzLocalisableString("转换后改变随机列的音符数量间隙", "For changing random columns after transforming the gap's number of notes.");
|
||||
public static readonly LocalisableString LineSpacing_Label = new EzLocalisableString("行间距", "Line Spacing");
|
||||
public static readonly LocalisableString LineSpacing_Description = new EzLocalisableString("设置为0时转换每一行", "Transform every line when set to 0.");
|
||||
public static readonly LocalisableString InvertLineSpacing_Label = new EzLocalisableString("反转行间距", "Invert Line Spacing");
|
||||
public static readonly LocalisableString InvertLineSpacing_Description = new EzLocalisableString("反转行间距", "Invert the Line Spacing.");
|
||||
public static readonly LocalisableString DurationLimit_Label = new EzLocalisableString("持续时间限制", "Duration Limit");
|
||||
public static readonly LocalisableString DurationLimit_Description = new EzLocalisableString("LN的最大持续时间(秒)。(设置为0时无限制)", "The max duration(second) of a LN.(No limit when set to 0)");
|
||||
|
||||
// LNSimplify
|
||||
public static readonly LocalisableString LimitDivide_Label = new EzLocalisableString("限制分割", "Limit Divide");
|
||||
public static readonly LocalisableString LimitDivide_Description = new EzLocalisableString("选择限制", "Select limit.");
|
||||
public static readonly LocalisableString EasierDivide_Label = new EzLocalisableString("简化分割", "Easier Divide");
|
||||
public static readonly LocalisableString EasierDivide_Description = new EzLocalisableString("选择复杂度", "Select complexity.");
|
||||
public static readonly LocalisableString LongestLN_Label = new EzLocalisableString("最长LN", "Longest LN");
|
||||
public static readonly LocalisableString LongestLN_Description = new EzLocalisableString("最长LN", "Longest LN.");
|
||||
public static readonly LocalisableString ShortestLN_Label = new EzLocalisableString("最短LN", "Shortest LN");
|
||||
public static readonly LocalisableString ShortestLN_Description = new EzLocalisableString("最短LN", "Shortest LN.");
|
||||
|
||||
// O2Health
|
||||
public static readonly LocalisableString Difficulty_Label = new EzLocalisableString("难度", "Difficulty");
|
||||
public static readonly LocalisableString Difficulty_Description = new EzLocalisableString("1: 简单 2: 普通 3: 困难", "1: Easy 2: Normal 3: Hard");
|
||||
|
||||
// DoublePlay
|
||||
public static readonly LocalisableString DoublePlayStyle_Label = new EzLocalisableString("样式", "Style");
|
||||
|
||||
public static readonly LocalisableString DoublePlayStyle_Description = new EzLocalisableString(
|
||||
"1: NM+NM 2: MR+MR 3: NM+MR 4: MR+NM 5: Bracket NM+NM 6: Bracket MR 7: Wide Bracket 8: Wide Bracket MR",
|
||||
"1: NM+NM 2: MR+MR 3: NM+MR 4: MR+NM 5: Bracket NM+NM 6: Bracket MR 7: Wide Bracket 8: Wide Bracket MR");
|
||||
|
||||
// PlayfieldTransformation
|
||||
public static readonly LocalisableString MinimumScale_Label = new EzLocalisableString("最小缩放", "Minimum scale");
|
||||
public static readonly LocalisableString MinimumScale_Description = new EzLocalisableString("游戏区域的最小缩放", "The minimum scale of the playfield.");
|
||||
|
||||
// ModStarRatingRebirth
|
||||
public static readonly LocalisableString UseOriginalOD_Label = new EzLocalisableString("使用原始OD", "Use original OD");
|
||||
public static readonly LocalisableString UseOriginalOD_Description = new EzLocalisableString("高优先级", "High Priority");
|
||||
public static readonly LocalisableString UseCustomOD_Label = new EzLocalisableString("使用自定义OD", "Use custom OD");
|
||||
public static readonly LocalisableString UseCustomOD_Description = new EzLocalisableString("低优先级", "Low Priority");
|
||||
public static readonly LocalisableString OD_Label = new EzLocalisableString("OD", "OD");
|
||||
public static readonly LocalisableString OD_Description = new EzLocalisableString("选择要重新计算的OD", "Choose the OD you want to recalculate.");
|
||||
#pragma warning restore IDE1006
|
||||
|
||||
// Adjust
|
||||
public static readonly LocalisableString ScoreMultiplier_Label = new EzLocalisableString("分数倍数", "Score Multiplier");
|
||||
public static readonly LocalisableString HPDrain_Label = new EzLocalisableString("HP消耗", "HP Drain");
|
||||
public static readonly LocalisableString HPDrain_Description = new EzLocalisableString("覆盖谱面的HP设置", "Override a beatmap's set HP.");
|
||||
public static readonly LocalisableString AdjustAccuracy_Label = new EzLocalisableString("准确度", "Accuracy");
|
||||
public static readonly LocalisableString AdjustAccuracy_Description = new EzLocalisableString("覆盖谱面的OD设置", "Override a beatmap's set OD.");
|
||||
public static readonly LocalisableString ReleaseLenience_Label = new EzLocalisableString("释放宽容度", "Release Lenience");
|
||||
|
||||
public static readonly LocalisableString ReleaseLenience_Description = new EzLocalisableString("调整LN尾部释放窗口宽容度。(Score v2中的尾部默认有1.5倍打击窗口)",
|
||||
"Adjust LN tail release window lenience.(Tail in Score v2 has default 1.5x hit window)");
|
||||
|
||||
public static readonly LocalisableString CustomHP_Label = new EzLocalisableString("自定义HP", "Custom HP");
|
||||
public static readonly LocalisableString CustomOD_Label = new EzLocalisableString("自定义OD", "Custom OD");
|
||||
public static readonly LocalisableString CustomRelease_Label = new EzLocalisableString("自定义释放", "Custom Release");
|
||||
public static readonly LocalisableString ExtendedLimits_Label = new EzLocalisableString("扩展限制", "Extended Limits");
|
||||
public static readonly LocalisableString ExtendedLimits_Description = new EzLocalisableString("调整难度超出合理限制", "Adjust difficulty beyond sane limits.");
|
||||
public static readonly LocalisableString AdjustConstantSpeed_Label = new EzLocalisableString("恒定速度", "Constant Speed");
|
||||
public static readonly LocalisableString AdjustConstantSpeed_Description = new EzLocalisableString("不再有棘手的速度变化", "No more tricky speed changes.");
|
||||
|
||||
// NoteAdjust
|
||||
public static readonly LocalisableString NoteAdjustStyle_Label = new EzLocalisableString("样式", "Style");
|
||||
|
||||
public static readonly LocalisableString NoteAdjustStyle_Description = new EzLocalisableString("1: 适用于Jack模式。2&3: 适用于Stream模式。4&5: 适用于Speed模式(无Jack)。6: DIY(将使用↓↓↓所有选项)(1~5将仅使用↓种子选项)",
|
||||
"1: Applicable to Jack Pattern. 2&3: Applicable to Stream Pattern. 4&5: Applicable to Speed Pattern(No Jack). 6: DIY(Will use ↓↓↓ all options) (1~5 will only use ↓ seed option).");
|
||||
|
||||
public static readonly LocalisableString NoteAdjustProbability_Label = new EzLocalisableString("概率", "Probability");
|
||||
public static readonly LocalisableString NoteAdjustProbability_Description = new EzLocalisableString("增加音符的概率", "The Probability of increasing note.");
|
||||
public static readonly LocalisableString Extremum_Label = new EzLocalisableString("极值", "Extremum");
|
||||
|
||||
public static readonly LocalisableString Extremum_Description = new EzLocalisableString("取决于你在一行上保留多少音符(可用最大音符或最小音符)",
|
||||
"Depending on how many notes on one line you keep(Available maximum note or minimum note).");
|
||||
|
||||
public static readonly LocalisableString ComparisonStyle_Label = new EzLocalisableString("比较样式", "Comparison Style");
|
||||
|
||||
public static readonly LocalisableString ComparisonStyle_Description = new EzLocalisableString("1: 当此行的音符数量>=上一行和下一行时处理一行。2: 当此行的音符数量<=上一行和下一行时处理一行",
|
||||
"1: Dispose a line when this line's note quantity >= Last&Next line. 2: Dispose a line when this line's note quantity <= Last&Next line.");
|
||||
|
||||
public static readonly LocalisableString NoteAdjustLine_Label = new EzLocalisableString("线", "Line");
|
||||
|
||||
public static readonly LocalisableString NoteAdjustLine_Description = new EzLocalisableString("取决于这张图的难度(0推荐用于Jack,1推荐用于(Jump/Hand/Etc.)Stream,2推荐用于Speed)",
|
||||
"Depending on how heavy about this map(0 is recommended for Jack, 1 is recommended for (Jump/Hand/Etc.)Stream, 2 is recommended for Speed).");
|
||||
|
||||
public static readonly LocalisableString Step_Label = new EzLocalisableString("步长", "Step");
|
||||
public static readonly LocalisableString Step_Description = new EzLocalisableString("在一行上成功转换时跳过\"Step\"行", "Skip \"Step\" line when converting successfully on a line.");
|
||||
public static readonly LocalisableString IgnoreComparison_Label = new EzLocalisableString("忽略比较", "Ignore Comparison");
|
||||
public static readonly LocalisableString IgnoreComparison_Description = new EzLocalisableString("忽略比较条件", "Ignore condition of Comparison.");
|
||||
public static readonly LocalisableString IgnoreInterval_Label = new EzLocalisableString("忽略间隔", "Ignore Interval");
|
||||
public static readonly LocalisableString IgnoreInterval_Description = new EzLocalisableString("忽略音符间隔", "Ignore interval of note.");
|
||||
|
||||
// LNLongShortAddition
|
||||
public static readonly LocalisableString LongShortPercent_Label = new EzLocalisableString("长/短百分比", "Long / Short %");
|
||||
public static readonly LocalisableString LongShortPercent_Description = new EzLocalisableString("形状", "The Shape");
|
||||
|
||||
// LNDoubleDistribution
|
||||
public static readonly LocalisableString Divide1_Label = new EzLocalisableString("分割1", "Divide 1");
|
||||
public static readonly LocalisableString Divide1_Description = new EzLocalisableString("使用1/?", "Use 1/?");
|
||||
public static readonly LocalisableString Divide2_Label = new EzLocalisableString("分割2", "Divide 2");
|
||||
public static readonly LocalisableString Divide2_Description = new EzLocalisableString("使用1/?", "Use 1/?");
|
||||
public static readonly LocalisableString Mu1_Label = new EzLocalisableString("μ1", "Mu 1");
|
||||
public static readonly LocalisableString Mu1_Description = new EzLocalisableString("分布中的μ(百分比)", "Mu in distribution (Percentage).");
|
||||
public static readonly LocalisableString Mu2_Label = new EzLocalisableString("μ2", "Mu 2");
|
||||
public static readonly LocalisableString Mu2_Description = new EzLocalisableString("分布中的μ(百分比)", "Mu in distribution (Percentage).");
|
||||
public static readonly LocalisableString MuRatio_Label = new EzLocalisableString("μ1/μ2", "Mu 1 / Mu 2");
|
||||
public static readonly LocalisableString MuRatio_Description = new EzLocalisableString("百分比", "Percentage");
|
||||
public static readonly LocalisableString SigmaInteger_Label = new EzLocalisableString("σ整数部分", "Sigma Integer Part");
|
||||
public static readonly LocalisableString SigmaInteger_Description = new EzLocalisableString("σ除数(不是σ)", "Sigma Divisor (not sigma).");
|
||||
public static readonly LocalisableString SigmaDecimal_Label = new EzLocalisableString("σ小数部分", "Sigma Decimal Part");
|
||||
public static readonly LocalisableString SigmaDecimal_Description = new EzLocalisableString("σ除数(不是σ)", "Sigma Divisor (not sigma).");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Localization
|
||||
{
|
||||
public static class EzManiaSettingsStrings
|
||||
{
|
||||
public static readonly LocalisableString HIT_MODE = new EzLocalizationManager.EzLocalisableString("Mania 判定系统", "(Mania) Hit Mode");
|
||||
|
||||
public static readonly LocalisableString HIT_MODE_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"Mania 判定系统, 获得不同音游的打击体验, 但是不保证所有模式都完全一比一复刻"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\n 305 300 200 100 50 Miss Poor"
|
||||
+ "\n16.67 33.33 116.67 - 250 250 500 IIDX"
|
||||
+ "\n15.00 30.00 60.00 - 200 1000 1000 LR2 Hard"
|
||||
+ "\n15.00 45.00 112.00 - 165 500 500 Raja Normal"
|
||||
+ "\n20.00 60.00 150.00 - 500 500 500 Raja Easy",
|
||||
"(Mania) Hit Mode, get different rhythm game hit experiences, but not guaranteed to perfectly replicate all modes"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\n 305 300 200 100 50 Miss Poor"
|
||||
+ "\n16.67 33.33 116.67 - 250 250 500 IIDX"
|
||||
+ "\n15.00 30.00 60.00 - 200 1000 1000 LR2 Hard"
|
||||
+ "\n15.00 45.00 112.00 - 165 500 500 Raja Normal"
|
||||
+ "\n20.00 60.00 150.00 - 500 500 500 Raja Easy");
|
||||
|
||||
public static readonly LocalisableString HEALTH_MODE = new EzLocalizationManager.EzLocalisableString("Mania 血量系统", "(Mania) Health Mode");
|
||||
|
||||
public static readonly LocalisableString HEALTH_MODE_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"\n——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\n 305 300 200 100 50 Miss -"
|
||||
+ "\n0.4% 0.3% 0.1% 0% -1% - 6% -0% Lazer"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\nKool - Good - Bad Miss -"
|
||||
+ "\n0.3% 0.0% 0.2% 0% -1% - 5% -0% O2 Easy"
|
||||
+ "\n0.2% 0.0% 0.1% 0% -7% - 4% -0% O2 Normal"
|
||||
+ "\n0.1% 0.0% 0.0% 0% -5% - 3% -0% O2 Hard"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\nKool Cool Good - Bad Poor []Poor"
|
||||
+ "\n0.4% 0.3% 0.1% 0% -1% - 5% -5% Ez2Ac"
|
||||
+ "\n1.6% 1.6% 0.0% 0% -5% - 9% -5% IIDX Hard"
|
||||
+ "\n1.0% 1.0% 0.5% 0% -6% -10% -2% LR2 Hard"
|
||||
+ "\n1.2% 1.2% 0.6% 0% -3% - 6% -2% raja normal");
|
||||
|
||||
public static readonly LocalisableString POOR_HIT_RESULT = new EzLocalizationManager.EzLocalisableString("增加 Poor 判定类型", "Additional Poor HitResult");
|
||||
|
||||
public static readonly LocalisableString POOR_HIT_RESULT_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"Pool判定类型只用于严格扣血, 不影响Combo、Score\n"
|
||||
+ "一个note可触发多个Pool判定, 只有早于Miss时才会触发, 不存在晚Pool",
|
||||
"The Poor HitResult type is only used for strict health reduction, and does not affect Combo or Score\n"
|
||||
+ "One note can trigger multiple Poor hit results, and it will only trigger if it is earlier than Miss, there is no late Poor");
|
||||
|
||||
public static readonly LocalisableString MANIA_BAR_LINES_BOOL = new EzLocalizationManager.EzLocalisableString("启用强制显示小节线", "Force Display Bar Lines");
|
||||
|
||||
public static readonly LocalisableString MANIA_BAR_LINES_BOOL_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"强制显示Mania小节线功能的开关, 关闭后仅由皮肤控制", "Toggle to force display of bar lines, when off only controlled by skin");
|
||||
|
||||
public static readonly LocalisableString SCROLLING_STYLE = new EzLocalizationManager.EzLocalisableString("滚动速度风格", "Scrolling Style");
|
||||
|
||||
public static readonly LocalisableString SCROLLING_STYLE_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"滚动速度风格, 时间速度是note从屏幕开始的边缘到目标相对位置(具体看风格)的时间。",
|
||||
"Scrolling style, the time speed is the time from the edge of the screen where the note starts to the target relative position (see style for details).");
|
||||
|
||||
public static readonly LocalisableString SCROLL_BASE_SPEED = new EzLocalizationManager.EzLocalisableString("基础速度", "Scroll Base Speed");
|
||||
|
||||
public static readonly LocalisableString SCROLL_BASE_SPEED_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"在200级速度中间档位时的默认速度, 不会影响到滚动速度的等级划分。\n"
|
||||
+ "在此基础上可进行 ±200级的速度微调。每级速度的变化幅度由MPS决定。\n"
|
||||
+ "推荐设置在400(低K)到500(高K)之间, 可以满足大部分玩家的舒适区。",
|
||||
"The default speed at the middle level of 200-speed, does not affect the level division of scroll speed.\n"
|
||||
+ "On top of this, ±200-speed fine-tuning is available. The amount of change per speed level is determined by MPS.\n"
|
||||
+ "It is recommended to set it between 400 (low K) and 500 (high K) to meet the comfort zone of most players.");
|
||||
|
||||
public static readonly LocalisableString SCROLL_TIME_PER_SPEED = new EzLocalizationManager.EzLocalisableString("每级速度的变化幅度", "Time Change Per Speed");
|
||||
|
||||
public static readonly LocalisableString SCROLL_TIME_PER_SPEED_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"每级速度的变化幅度, 以ms为单位, 代表每变化1级速度时滚动时间的变化量。\n"
|
||||
+ "例如设置为5ms时, 在游戏中每加减一次速度档位,滚动速度变化5ms。\n"
|
||||
+ "推荐设置在5ms到20ms之间, 过高或过低的数值可能会导致在游戏中难以及时的调整速度到舒适区。",
|
||||
"The amount of change per speed level, in ms, represents the amount of change in scroll time when changing 1 speed level.\n"
|
||||
+ "For example, when set to 5ms, every time you increase or decrease the speed level in the game, the scroll speed changes by 5ms.\n"
|
||||
+ "It is recommended to set it between 5ms and 20ms, as values that are too high or too low may make it difficult to adjust the speed to a comfortable range in time during the game.");
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
// 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.Reflection;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Localization
|
||||
{
|
||||
public class EzManiaStrings : EzLocalizationManager
|
||||
{
|
||||
static EzManiaStrings()
|
||||
{
|
||||
// 使用反射为未设置英文的属性自动生成英文(属性名替换_为空格)
|
||||
var fields = typeof(EzManiaStrings).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy);
|
||||
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (field.FieldType == typeof(EzLocalisableString))
|
||||
{
|
||||
if (field.GetValue(null) is EzLocalisableString instance && instance.English == null)
|
||||
{
|
||||
instance.English = field.Name.Replace("_", " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 本地化字符串类,直接持有中文和英文
|
||||
public new class EzLocalisableString : EzLocalizationManager.EzLocalisableString
|
||||
{
|
||||
public EzLocalisableString(string chinese, string? english = null)
|
||||
: base(chinese, english) { }
|
||||
|
||||
// 便捷构造函数:如果不提供英文,则稍后通过反射从属性名生成
|
||||
public EzLocalisableString(string chinese)
|
||||
: base(chinese) { }
|
||||
}
|
||||
|
||||
// 公共属性定义本地化字符串,直接指定中文和英文
|
||||
public static readonly EzLocalisableString MANIA_SPECIFIC_KEY = new EzLocalisableString("Mania特定中文");
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,10 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
public class KrrConversionHelper
|
||||
{
|
||||
|
||||
@@ -3,10 +3,9 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
public static class KrrDpConverter
|
||||
{
|
||||
|
||||
@@ -2,10 +2,10 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
public static class KrrLNConverter
|
||||
{
|
||||
|
||||
@@ -4,10 +4,10 @@ using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using osu.Framework.Logging;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
public static class KrrN2NcConverter
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
using System;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
public class KrrOscillator
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.KrrConversion
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion
|
||||
{
|
||||
internal class NoteMatrix
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
// 简单振荡器生成器,支持多种波形。
|
||||
// 默认正弦波,确定性输出。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public interface IEzOscillator
|
||||
{
|
||||
|
||||
@@ -6,10 +6,9 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class KeyPatternSettings
|
||||
{
|
||||
|
||||
@@ -11,18 +11,15 @@ using osu.Framework.Logging;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModCleanColumn : Mod, IApplicableAfterBeatmapConversion, IHasApplyOrder
|
||||
{
|
||||
@@ -32,7 +29,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.CleanColumn_Description;
|
||||
public override LocalisableString Description => CleanColumnStrings.CLEAN_COLUMN_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Backspace;
|
||||
|
||||
@@ -42,31 +39,31 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DeleteSColumn_Label), nameof(EzManiaModStrings.DeleteSColumn_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.DELETE_S_COLUMN_LABEL), nameof(CleanColumnStrings.DELETE_S_COLUMN_DESCRIPTION))]
|
||||
public BindableBool DeleteSColumn { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DeletePColumn_Label), nameof(EzManiaModStrings.DeletePColumn_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.DELETE_P_COLUMN_LABEL), nameof(CleanColumnStrings.DELETE_P_COLUMN_DESCRIPTION))]
|
||||
public BindableBool DeletePColumn { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DeleteEColumn_Label), nameof(EzManiaModStrings.DeleteEColumn_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.DELETE_E_COLUMN_LABEL), nameof(CleanColumnStrings.DELETE_E_COLUMN_DESCRIPTION))]
|
||||
public BindableBool DeleteEColumn { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.EnableCustomDelete_Label), nameof(EzManiaModStrings.EnableCustomDelete_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.ENABLE_CUSTOM_DELETE_LABEL), nameof(CleanColumnStrings.ENABLE_CUSTOM_DELETE_DESCRIPTION))]
|
||||
public BindableBool EnableCustomDelete { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomDeleteColumn_Label), nameof(EzManiaModStrings.CustomDeleteColumn_Description), SettingControlType = typeof(SettingsTextBox))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.CUSTOM_DELETE_COLUMN_LABEL), nameof(CleanColumnStrings.CUSTOM_DELETE_COLUMN_DESCRIPTION), SettingControlType = typeof(SettingsTextBox))]
|
||||
public Bindable<string> CustomDeleteColumn { get; } = new Bindable<string>(string.Empty);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.EnableCustomReorder_Label), nameof(EzManiaModStrings.EnableCustomReorder_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.ENABLE_CUSTOM_REORDER_LABEL), nameof(CleanColumnStrings.ENABLE_CUSTOM_REORDER_DESCRIPTION))]
|
||||
public BindableBool EnableCustomReorder { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.UseHealthCapReduction_Label), nameof(EzManiaModStrings.UseHealthCapReduction_Description))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.USE_HEALTH_CAP_REDUCTION_LABEL), nameof(CleanColumnStrings.USE_HEALTH_CAP_REDUCTION_DESCRIPTION))]
|
||||
public BindableBool UseHealthCapReduction { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomReorderColumn_Label), nameof(EzManiaModStrings.CustomReorderColumn_Description), SettingControlType = typeof(SettingsTextBox))]
|
||||
[SettingSource(typeof(CleanColumnStrings), nameof(CleanColumnStrings.CUSTOM_REORDER_COLUMN_LABEL), nameof(CleanColumnStrings.CUSTOM_REORDER_COLUMN_DESCRIPTION), SettingControlType = typeof(SettingsTextBox))]
|
||||
public Bindable<string> CustomReorderColumn { get; } = new Bindable<string>(string.Empty);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -392,4 +389,64 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class CleanColumnStrings
|
||||
{
|
||||
public static readonly LocalisableString CLEAN_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("整理Column, 排序、删除轨道中的note", "Clean Column, Sort, Delete notes in the column.");
|
||||
public static readonly LocalisableString DELETE_S_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("删除S列", "Delete S Column Type");
|
||||
public static readonly LocalisableString DELETE_S_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("开启时删除标记了S Column Type的列", "Delete columns marked with S column type when enabled");
|
||||
public static readonly LocalisableString DELETE_P_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("删除P列", "Delete P Column Type");
|
||||
public static readonly LocalisableString DELETE_P_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("开启时删除标记了P Column Type的列", "Delete columns marked with P column type when enabled");
|
||||
public static readonly LocalisableString DELETE_E_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("删除E列", "Delete E Column Type");
|
||||
public static readonly LocalisableString DELETE_E_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("开启时删除标记了E Column Type的列", "Delete columns marked with E column type when enabled");
|
||||
public static readonly LocalisableString ENABLE_CUSTOM_DELETE_LABEL = new EzLocalizationManager.EzLocalisableString("自定义删除列", "Enable Custom Delete");
|
||||
|
||||
public static readonly LocalisableString ENABLE_CUSTOM_DELETE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"开启后启用自定义删除列功能,支持与其他功能同时使用。输入多个数字如'2468'删除第2、4、6、8列",
|
||||
"Enable custom column deletion when enabled, can be used with other features. Input multiple digits like '2468' to delete columns 2, 4, 6, 8");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_DELETE_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("删除列序号", "Delete Column Indexes");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_DELETE_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"输入要删除的列序号,支持多个数字。如'2468'删除2、4、6、8列。超过谱面列数的数字将被忽略。支持最多10k(0表示第10列)",
|
||||
"Input the column indexes to delete, support multiple digits. E.g. '2468' deletes columns 2, 4, 6, 8. Indexes exceeding the beatmap's column count will be ignored. Support up to 10k (0 means column 10)");
|
||||
|
||||
public static readonly LocalisableString ENABLE_CUSTOM_REORDER_LABEL = new EzLocalizationManager.EzLocalisableString("自定义列重排", "Enable Custom Reorder");
|
||||
|
||||
public static readonly LocalisableString ENABLE_CUSTOM_REORDER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"开启后启用自定义列清洗Column功能,如果更改了列数,需要重开此功能才能正常生效",
|
||||
"Enable custom column reorder when enabled, if the column count is changed, you need to toggle this feature again to take effect");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_REORDER_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("列重排规则", "Column Reorder Rule");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_REORDER_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"处理Column,自定义排序、复制、删除或置空列中的note。"
|
||||
+ "\n执行顺序:先重排,后删除。支持最多10k(0表示第10列);"
|
||||
+ "\n'-'表示该新列位置清空,"
|
||||
+ "\n'|'表示该新列位置放置贯穿全谱面的长按note,"
|
||||
+ "\n'?'表示该新列保持原列位置不变。"
|
||||
+ "\n字符串长度决定新的列数(修改长度必须重新启用开关)。每位数字代表新列使用原谱面的哪一列内容,可重复以复制列。"
|
||||
+ "\n如果输入包含超出原列数的数字,该位会被忽略并保持为空列。"
|
||||
+ "\n示例:原谱面5k,输入 2|30-? 转换为6k:"
|
||||
+ "\n- 新列1=原列2;新列2=锁手长按;新列3=原列3;"
|
||||
+ "\n- 新列4=原列10(超出,忽略,空列);新列5='-'清空;"
|
||||
+ "\n- 新列6=随机的原列",
|
||||
"Process Column: custom reorder, copy, delete, or clear notes in columns."
|
||||
+ "\nExecution order: first reorder, then delete. Support up to 10k (0 means column 10); '-' clears the new column; '|' places a hold note spanning the entire beatmap in that new column; '?' keeps the original column in place."
|
||||
+ "\nString length determines the new column count (must re-enable when changing length). Each digit maps the new column to an original column; duplicates copy columns."
|
||||
+ "\nDigits exceeding the original column count are ignored and remain empty."
|
||||
+ "\nExample: original 5k, input " + '"' + "2|30-1" + '"' + " converts to 6k:"
|
||||
+ "\n- New col1 = orig col2;"
|
||||
+ "\n- New col2 = full-length hold;"
|
||||
+ "\n- New col3 = orig col3;"
|
||||
+ "\n- New col4 = orig col10 (ignored, empty);"
|
||||
+ "\n- New col5 = '-' cleared;"
|
||||
+ "\n- New col6 = orig col1.");
|
||||
|
||||
public static readonly LocalisableString USE_HEALTH_CAP_REDUCTION_LABEL = new EzLocalizationManager.EzLocalisableString("血量上限降低模式", "Health Cap Reduction Mode");
|
||||
|
||||
public static readonly LocalisableString USE_HEALTH_CAP_REDUCTION_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"开启后锁手面的combo break降低血量上限15%而不是直接扣血,最低40%上限",
|
||||
"When enabled, Lock LN's combo breaks reduce the maximum health cap by 15% instead of direct health deduction, down to a minimum of 40%.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,38 +14,37 @@ using osu.Game.Beatmaps;
|
||||
using osu.Game.Beatmaps.ControlPoints;
|
||||
using osu.Game.Beatmaps.Legacy;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Rulesets.Objects.Legacy;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModEz2Settings : Mod, IApplicableToDifficulty, IApplicableToBeatmap //, IApplicableToSample //, IStoryboardElement
|
||||
{
|
||||
public override string Name => "Ez2 Settings";
|
||||
public override string Acronym => "ES";
|
||||
public override LocalisableString Description => EzManiaModStrings.Ez2Settings_Description;
|
||||
public override LocalisableString Description => Ez2SettingsStrings.EZ2_SETTINGS_DESCRIPTION;
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Tools;
|
||||
|
||||
public override bool Ranked => false;
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoScratch_Label), nameof(EzManiaModStrings.NoScratch_Description))]
|
||||
[SettingSource(typeof(Ez2SettingsStrings), nameof(Ez2SettingsStrings.NO_SCRATCH_LABEL), nameof(Ez2SettingsStrings.NO_SCRATCH_DESCRIPTION))]
|
||||
public BindableBool NoScratch { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoPanel_Label), nameof(EzManiaModStrings.NoPanel_Description))]
|
||||
[SettingSource(typeof(Ez2SettingsStrings), nameof(Ez2SettingsStrings.NO_PANEL_LABEL), nameof(Ez2SettingsStrings.NO_PANEL_DESCRIPTION))]
|
||||
public BindableBool NoPanel { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.HealthyScratch_Label), nameof(EzManiaModStrings.HealthyScratch_Description))]
|
||||
[SettingSource(typeof(Ez2SettingsStrings), nameof(Ez2SettingsStrings.HEALTHY_SCRATCH_LABEL), nameof(Ez2SettingsStrings.HEALTHY_SCRATCH_DESCRIPTION))]
|
||||
public BindableBool HealthScratch { get; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.MaxBeat_Label), nameof(EzManiaModStrings.MaxBeat_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(Ez2SettingsStrings), nameof(Ez2SettingsStrings.MAX_BEAT_LABEL), nameof(Ez2SettingsStrings.MAX_BEAT_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> MaxBeat { get; } = new BindableDouble(3)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -294,6 +293,23 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
// { 7, new List<int> { 6 } },
|
||||
// { 6, new List<int> { 5, 4 } },
|
||||
// };
|
||||
|
||||
public static class Ez2SettingsStrings
|
||||
{
|
||||
public static readonly LocalisableString EZ2_SETTINGS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("按固定模版,移除盘子和踏板", "Remove Scratch, Panel.");
|
||||
public static readonly LocalisableString NO_SCRATCH_LABEL = new EzLocalizationManager.EzLocalisableString("无盘", "No Scratch");
|
||||
|
||||
public static readonly LocalisableString NO_SCRATCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"按固定模版,去除Ez街机谱面中的盘子. 用于: 6-9k L-S; 12\\14\\16k LR-S",
|
||||
"No (EZ)Scratch. For: 6-9k L-S; 12\\14\\16k LR-S");
|
||||
|
||||
public static readonly LocalisableString NO_PANEL_LABEL = new EzLocalizationManager.EzLocalisableString("无踏板", "No Panel");
|
||||
public static readonly LocalisableString NO_PANEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("按固定模版,去除Ez街机谱面中的脚踏. 用于: 7\\14\\18k", "No (EZ)Panel. For: 7\\14\\18k");
|
||||
public static readonly LocalisableString HEALTHY_SCRATCH_LABEL = new EzLocalizationManager.EzLocalisableString("健康盘子", "Healthy Scratch");
|
||||
public static readonly LocalisableString HEALTHY_SCRATCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("优化盘子密度,通过特定模版将过快的盘子移动到其他列", "Healthy (EZ)Scratch. Move the fast Scratch to the other columns");
|
||||
public static readonly LocalisableString MAX_BEAT_LABEL = new EzLocalizationManager.EzLocalisableString("最大节拍", "Max Beat");
|
||||
public static readonly LocalisableString MAX_BEAT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("盘子密度的最大节拍间隔, 1/? 拍", "Scratch MAX Beat Space, MAX 1/? Beat");
|
||||
}
|
||||
}
|
||||
}
|
||||
// #pragma warning restore
|
||||
|
||||
@@ -3,91 +3,85 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods.KrrConversion;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModKrrDP : Mod, IApplicableAfterBeatmapConversion, IHasApplyOrder
|
||||
{
|
||||
public override string Name => "Krr DP";
|
||||
public override string Acronym => "DP";
|
||||
public override LocalisableString Description => "[KrrTool] Convert to Dual Play mode";
|
||||
public override string Name => "Krr DP Converter";
|
||||
public override string Acronym => "KDP";
|
||||
public override LocalisableString Description => KrrDPStrings.KRR_DP_DESCRIPTION;
|
||||
public override double ScoreMultiplier => 1;
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
public override bool Ranked => false;
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_EnableModifyKeys_Label), nameof(EzManiaModStrings.KrrDP_EnableModifyKeys_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_ENABLE_MODIFY_KEYS_LABEL), nameof(KrrDPStrings.KRR_DP_ENABLE_MODIFY_KEYS_DESCRIPTION))]
|
||||
public BindableBool EnableModifyKeys { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_TargetKeys_Label), nameof(EzManiaModStrings.KrrDP_TargetKeys_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_TARGET_KEYS_LABEL), nameof(KrrDPStrings.KRR_DP_TARGET_KEYS_DESCRIPTION))]
|
||||
public BindableNumber<int> TargetKeys { get; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 9,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_LeftMirror_Label), nameof(EzManiaModStrings.KrrDP_LeftMirror_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_LEFT_MIRROR_LABEL), nameof(KrrDPStrings.KRR_DP_LEFT_MIRROR_DESCRIPTION))]
|
||||
public BindableBool LMirror { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_LeftDensity_Label), nameof(EzManiaModStrings.KrrDP_LeftDensity_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_LEFT_DENSITY_LABEL), nameof(KrrDPStrings.KRR_DP_LEFT_DENSITY_DESCRIPTION))]
|
||||
public BindableBool LDensity { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_LeftRemove_Label), nameof(EzManiaModStrings.KrrDP_LeftRemove_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_LEFT_REMOVE_LABEL), nameof(KrrDPStrings.KRR_DP_LEFT_REMOVE_DESCRIPTION))]
|
||||
public BindableBool LRemove { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_LeftMax_Label), nameof(EzManiaModStrings.KrrDP_LeftMax_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_LEFT_MAX_LABEL), nameof(KrrDPStrings.KRR_DP_LEFT_MAX_DESCRIPTION))]
|
||||
public BindableNumber<int> LMaxKeys { get; set; } = new BindableInt(5)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_LeftMin_Label), nameof(EzManiaModStrings.KrrDP_LeftMin_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_LEFT_MIN_LABEL), nameof(KrrDPStrings.KRR_DP_LEFT_MIN_DESCRIPTION))]
|
||||
public BindableNumber<int> LMinKeys { get; set; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_RightMirror_Label), nameof(EzManiaModStrings.KrrDP_RightMirror_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_RIGHT_MIRROR_LABEL), nameof(KrrDPStrings.KRR_DP_RIGHT_MIRROR_DESCRIPTION))]
|
||||
public BindableBool RMirror { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_RightDensity_Label), nameof(EzManiaModStrings.KrrDP_RightDensity_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_RIGHT_DENSITY_LABEL), nameof(KrrDPStrings.KRR_DP_RIGHT_DENSITY_DESCRIPTION))]
|
||||
public BindableBool RDensity { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_RightRemove_Label), nameof(EzManiaModStrings.KrrDP_RightRemove_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_RIGHT_REMOVE_LABEL), nameof(KrrDPStrings.KRR_DP_RIGHT_REMOVE_DESCRIPTION))]
|
||||
public BindableBool RRemove { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_RightMax_Label), nameof(EzManiaModStrings.KrrDP_RightMax_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_RIGHT_MAX_LABEL), nameof(KrrDPStrings.KRR_DP_RIGHT_MAX_DESCRIPTION))]
|
||||
public BindableNumber<int> RMaxKeys { get; set; } = new BindableInt(5)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrDP_RightMin_Label), nameof(EzManiaModStrings.KrrDP_RightMin_Description))]
|
||||
[SettingSource(typeof(KrrDPStrings), nameof(KrrDPStrings.KRR_DP_RIGHT_MIN_LABEL), nameof(KrrDPStrings.KRR_DP_RIGHT_MIN_DESCRIPTION))]
|
||||
public BindableNumber<int> RMinKeys { get; set; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -144,4 +138,33 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
maniaBeatmap.Difficulty.CircleSize = finalKeys;
|
||||
}
|
||||
}
|
||||
|
||||
public static class KrrDPStrings
|
||||
{
|
||||
public static readonly LocalisableString KRR_DP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("[KrrTool] DP转换器", "[KrrTool] DP Converter");
|
||||
public static readonly LocalisableString KRR_DP_ENABLE_MODIFY_KEYS_LABEL = new EzLocalizationManager.EzLocalisableString("启用键数修改", "Enable Modify Keys");
|
||||
public static readonly LocalisableString KRR_DP_ENABLE_MODIFY_KEYS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("启用后可指定左右各自的键数", "Enable to set keys per side.");
|
||||
public static readonly LocalisableString KRR_DP_TARGET_KEYS_LABEL = new EzLocalizationManager.EzLocalisableString("目标键数", "Target Keys");
|
||||
public static readonly LocalisableString KRR_DP_TARGET_KEYS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("左右每侧的目标键数", "Target keys per side.");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MIRROR_LABEL = new EzLocalizationManager.EzLocalisableString("左侧镜像", "Left Mirror");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MIRROR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("左侧镜像翻转", "Mirror left side.");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MIRROR_LABEL = new EzLocalizationManager.EzLocalisableString("右侧镜像", "Right Mirror");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MIRROR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("右侧镜像翻转", "Mirror right side.");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_DENSITY_LABEL = new EzLocalizationManager.EzLocalisableString("左侧密度", "Left Density");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_DENSITY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整左侧密度", "Adjust left density.");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_DENSITY_LABEL = new EzLocalizationManager.EzLocalisableString("右侧密度", "Right Density");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_DENSITY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整右侧密度", "Adjust right density.");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_REMOVE_LABEL = new EzLocalizationManager.EzLocalisableString("移除左侧", "Remove Left");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_REMOVE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("移除左侧所有音符", "Remove left side.");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_REMOVE_LABEL = new EzLocalizationManager.EzLocalisableString("移除右侧", "Remove Right");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_REMOVE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("移除右侧所有音符", "Remove right side.");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MAX_LABEL = new EzLocalizationManager.EzLocalisableString("左侧最大键数", "Left Max Keys");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MAX_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("左侧密度最大键数", "Left density max keys.");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MIN_LABEL = new EzLocalizationManager.EzLocalisableString("左侧最小键数", "Left Min Keys");
|
||||
public static readonly LocalisableString KRR_DP_LEFT_MIN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("左侧密度最小键数", "Left density min keys.");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MAX_LABEL = new EzLocalizationManager.EzLocalisableString("右侧最大键数", "Right Max Keys");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MAX_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("右侧密度最大键数", "Right density max keys.");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MIN_LABEL = new EzLocalizationManager.EzLocalisableString("右侧最小键数", "Right Min Keys");
|
||||
public static readonly LocalisableString KRR_DP_RIGHT_MIN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("右侧密度最小键数", "Right density min keys.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,110 +7,107 @@ using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModKrrLN : Mod, IApplicableAfterBeatmapConversion, IHasApplyOrder
|
||||
{
|
||||
public override string Name => "Krr LN";
|
||||
public override string Acronym => "LN";
|
||||
public override LocalisableString Description => "[KrrTool] LN Conversion";
|
||||
public override string Name => "Krr LN Converter";
|
||||
public override string Acronym => "KLN";
|
||||
public override LocalisableString Description => KrrLNStrings.KRR_LN_DESCRIPTION;
|
||||
public override double ScoreMultiplier => 1;
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
public override bool Ranked => false;
|
||||
public override bool ValidForMultiplayer => true;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LongLevel_Label), nameof(EzManiaModStrings.KrrLN_LongLevel_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LONG_LEVEL_LABEL), nameof(KrrLNStrings.KRR_LN_LONG_LEVEL_DESCRIPTION))]
|
||||
public BindableNumber<int> LongLevel { get; } = new BindableInt(50)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_ShortLevel_Label), nameof(EzManiaModStrings.KrrLN_ShortLevel_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_SHORT_LEVEL_LABEL), nameof(KrrLNStrings.KRR_LN_SHORT_LEVEL_DESCRIPTION))]
|
||||
public BindableNumber<int> ShortLevel { get; } = new BindableInt(8)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 256,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_ProcessOriginal_Label), nameof(EzManiaModStrings.KrrLN_ProcessOriginal_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_PROCESS_ORIGINAL_LABEL), nameof(KrrLNStrings.KRR_LN_PROCESS_ORIGINAL_DESCRIPTION))]
|
||||
public BindableBool ProcessOriginalBool { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LengthThreshold_Label), nameof(EzManiaModStrings.KrrLN_LengthThreshold_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LENGTH_THRESHOLD_LABEL), nameof(KrrLNStrings.KRR_LN_LENGTH_THRESHOLD_DESCRIPTION))]
|
||||
public BindableNumber<int> LengthThreshold { get; } = new BindableInt(16)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 65,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LongPercentage_Label), nameof(EzManiaModStrings.KrrLN_LongPercentage_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LONG_PERCENTAGE_LABEL), nameof(KrrLNStrings.KRR_LN_LONG_PERCENTAGE_DESCRIPTION))]
|
||||
public BindableNumber<int> LongPercentage { get; } = new BindableInt(50)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_ShortPercentage_Label), nameof(EzManiaModStrings.KrrLN_ShortPercentage_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_SHORT_PERCENTAGE_LABEL), nameof(KrrLNStrings.KRR_LN_SHORT_PERCENTAGE_DESCRIPTION))]
|
||||
public BindableNumber<int> ShortPercentage { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LongLimit_Label), nameof(EzManiaModStrings.KrrLN_LongLimit_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LONG_LIMIT_LABEL), nameof(KrrLNStrings.KRR_LN_LONG_LIMIT_DESCRIPTION))]
|
||||
public BindableNumber<int> LongLimit { get; } = new BindableInt(10)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 10,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_ShortLimit_Label), nameof(EzManiaModStrings.KrrLN_ShortLimit_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_SHORT_LIMIT_LABEL), nameof(KrrLNStrings.KRR_LN_SHORT_LIMIT_DESCRIPTION))]
|
||||
public BindableNumber<int> ShortLimit { get; } = new BindableInt(10)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 10,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LongRandom_Label), nameof(EzManiaModStrings.KrrLN_LongRandom_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LONG_RANDOM_LABEL), nameof(KrrLNStrings.KRR_LN_LONG_RANDOM_DESCRIPTION))]
|
||||
public BindableNumber<int> LongRandom { get; } = new BindableInt(50)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_ShortRandom_Label), nameof(EzManiaModStrings.KrrLN_ShortRandom_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_SHORT_RANDOM_LABEL), nameof(KrrLNStrings.KRR_LN_SHORT_RANDOM_DESCRIPTION))]
|
||||
public BindableNumber<int> ShortRandom { get; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_Alignment_Label), nameof(EzManiaModStrings.KrrLN_Alignment_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_ALIGNMENT_LABEL), nameof(KrrLNStrings.KRR_LN_ALIGNMENT_DESCRIPTION))]
|
||||
public BindableNumber<int> Alignment { get; } = new BindableInt(5)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 8,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrLN_LNAlignment_Label), nameof(EzManiaModStrings.KrrLN_LNAlignment_Description))]
|
||||
[SettingSource(typeof(KrrLNStrings), nameof(KrrLNStrings.KRR_LN_LN_ALIGNMENT_LABEL), nameof(KrrLNStrings.KRR_LN_LN_ALIGNMENT_DESCRIPTION))]
|
||||
public BindableNumber<int> LNAlignment { get; } = new BindableInt(6)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 8,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>(114514);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -165,6 +162,35 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
|
||||
public static class KrrLNStrings
|
||||
{
|
||||
public static readonly LocalisableString KRR_LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("[KrrTool] LN转换器", "[KrrTool] LN Converter");
|
||||
public static readonly LocalisableString KRR_LN_LONG_LEVEL_LABEL = new EzLocalizationManager.EzLocalisableString("长按等级", "Long Level");
|
||||
public static readonly LocalisableString KRR_LN_LONG_LEVEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("长按长度强度(0-100)", "Long length level (0-100).");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_LEVEL_LABEL = new EzLocalizationManager.EzLocalisableString("短按等级", "Short Level");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_LEVEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("短按长度强度(0-256)", "Short length level (0-256).");
|
||||
public static readonly LocalisableString KRR_LN_PROCESS_ORIGINAL_LABEL = new EzLocalizationManager.EzLocalisableString("处理原始LN", "Process Original LN");
|
||||
public static readonly LocalisableString KRR_LN_PROCESS_ORIGINAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("关闭时跳过原始LN", "Skip original LN when disabled.");
|
||||
public static readonly LocalisableString KRR_LN_LENGTH_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("长度阈值", "Length Threshold");
|
||||
public static readonly LocalisableString KRR_LN_LENGTH_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("长短按判定阈值", "Threshold between long/short.");
|
||||
public static readonly LocalisableString KRR_LN_LONG_PERCENTAGE_LABEL = new EzLocalizationManager.EzLocalisableString("长按比例", "Long Percentage");
|
||||
public static readonly LocalisableString KRR_LN_LONG_PERCENTAGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("长按转换比例", "Percentage of long conversion.");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_PERCENTAGE_LABEL = new EzLocalizationManager.EzLocalisableString("短按比例", "Short Percentage");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_PERCENTAGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("短按转换比例", "Percentage of short conversion.");
|
||||
public static readonly LocalisableString KRR_LN_LONG_LIMIT_LABEL = new EzLocalizationManager.EzLocalisableString("长按上限", "Long Limit");
|
||||
public static readonly LocalisableString KRR_LN_LONG_LIMIT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每行长按上限", "Max long notes per row.");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_LIMIT_LABEL = new EzLocalizationManager.EzLocalisableString("短按上限", "Short Limit");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_LIMIT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每行短按上限", "Max short notes per row.");
|
||||
public static readonly LocalisableString KRR_LN_LONG_RANDOM_LABEL = new EzLocalizationManager.EzLocalisableString("长按随机", "Long Random");
|
||||
public static readonly LocalisableString KRR_LN_LONG_RANDOM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("长按随机强度", "Randomness for long notes.");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_RANDOM_LABEL = new EzLocalizationManager.EzLocalisableString("短按随机", "Short Random");
|
||||
public static readonly LocalisableString KRR_LN_SHORT_RANDOM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("短按随机强度", "Randomness for short notes.");
|
||||
public static readonly LocalisableString KRR_LN_ALIGNMENT_LABEL = new EzLocalizationManager.EzLocalisableString("对齐", "Alignment");
|
||||
public static readonly LocalisableString KRR_LN_ALIGNMENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("普通音符对齐节拍", "Snap normal notes to beat grid.");
|
||||
public static readonly LocalisableString KRR_LN_LN_ALIGNMENT_LABEL = new EzLocalizationManager.EzLocalisableString("LN对齐", "LN Alignment");
|
||||
public static readonly LocalisableString KRR_LN_LN_ALIGNMENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("长按尾部对齐节拍", "Snap hold tails to beat grid.");
|
||||
}
|
||||
|
||||
public class KrrLNOptions
|
||||
{
|
||||
public int LongLevel { get; set; } = 50;
|
||||
|
||||
@@ -9,23 +9,20 @@ using osu.Framework.Logging;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModKrrN2Nc : Mod, IApplicableAfterBeatmapConversion, IHasSeed, IHasApplyOrder
|
||||
{
|
||||
public override string Name => "Krr N2Nc";
|
||||
public override string Name => "Krr N2N Converter";
|
||||
|
||||
public override string Acronym => "N2N";
|
||||
|
||||
public override LocalisableString Description => "[KrrTool] KeyCounts conversion";
|
||||
public override LocalisableString Description => KrrN2NcStrings.KRR_N2N_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -35,38 +32,38 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override bool ValidForMultiplayer => true;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrN2Nc_TargetKeys_Label), nameof(EzManiaModStrings.KrrN2Nc_TargetKeys_Description))]
|
||||
[SettingSource(typeof(KrrN2NcStrings), nameof(KrrN2NcStrings.KRR_N2N_TARGET_KEYS_LABEL), nameof(KrrN2NcStrings.KRR_N2N_TARGET_KEYS_DESCRIPTION))]
|
||||
public BindableNumber<int> TargetKeys { get; } = new BindableInt(8)
|
||||
{
|
||||
MinValue = 1,
|
||||
MaxValue = 18,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrN2Nc_MaxKeys_Label), nameof(EzManiaModStrings.KrrN2Nc_MaxKeys_Description))]
|
||||
[SettingSource(typeof(KrrN2NcStrings), nameof(KrrN2NcStrings.KRR_N2N_MAX_KEYS_LABEL), nameof(KrrN2NcStrings.KRR_N2N_MAX_KEYS_DESCRIPTION))]
|
||||
public BindableNumber<int> MaxKeys { get; } = new BindableInt(6)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 10
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.KrrN2Nc_MinKeys_Label), nameof(EzManiaModStrings.KrrN2Nc_MinKeys_Description))]
|
||||
[SettingSource(typeof(KrrN2NcStrings), nameof(KrrN2NcStrings.KRR_N2N_MIN_KEYS_LABEL), nameof(KrrN2NcStrings.KRR_N2N_MIN_KEYS_DESCRIPTION))]
|
||||
public BindableNumber<int> MinKeys { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 10
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.BeatSpeed_Label), nameof(EzManiaModStrings.BeatSpeed_Description))]
|
||||
[SettingSource(typeof(KrrN2NcStrings), nameof(KrrN2NcStrings.KRR_N2N_BEAT_SPEED_LABEL), nameof(KrrN2NcStrings.BEAT_SPEED_DESCRIPTION))]
|
||||
public BindableNumber<int> BeatSpeed { get; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 0,
|
||||
MaxValue = 8
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>(114514);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -119,6 +116,32 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
|
||||
public static class KrrN2NcStrings
|
||||
{
|
||||
public static readonly LocalisableString KRR_N2N_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("[KrrTool] N2N 转换器", "[KrrTool] N2N Converter");
|
||||
public static readonly LocalisableString KRR_N2N_TARGET_KEYS_LABEL = new EzLocalizationManager.EzLocalisableString("目标键数", "Target Keys");
|
||||
public static readonly LocalisableString KRR_N2N_TARGET_KEYS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("目标键数(用于修改列数)", "Target key count (change columns).");
|
||||
public static readonly LocalisableString KRR_N2N_MAX_KEYS_LABEL = new EzLocalizationManager.EzLocalisableString("密度上限", "Density Max");
|
||||
public static readonly LocalisableString KRR_N2N_MAX_KEYS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每行最大键数", "Max keys per row.");
|
||||
public static readonly LocalisableString KRR_N2N_MIN_KEYS_LABEL = new EzLocalizationManager.EzLocalisableString("密度下限", "Density Min");
|
||||
public static readonly LocalisableString KRR_N2N_MIN_KEYS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每行最小键数", "Min keys per row.");
|
||||
public static readonly LocalisableString KRR_N2N_BEAT_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("转换的节拍速度", "Transform Beat Speed");
|
||||
|
||||
public static readonly LocalisableString BEAT_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"| Index | Beat Length |\n" +
|
||||
"|-------|-------------|\n" +
|
||||
"| 0 | 1/8 Beat |\n" +
|
||||
"| 1 | 1/4 Beat |\n" +
|
||||
"| 2 | 1/2 Beat |\n" +
|
||||
"| 3 | 3/4 Beat |\n" +
|
||||
"| 4 | 1 Beat |\n" +
|
||||
"| 5 | 2 Beats |\n" +
|
||||
"| 6 | 3 Beats |\n" +
|
||||
"| 7 | 4 Beats |\n" +
|
||||
"| 8 | Free |"
|
||||
);
|
||||
}
|
||||
|
||||
public class KrrOptions
|
||||
{
|
||||
public int TargetKeys { get; set; } = 8;
|
||||
|
||||
@@ -12,13 +12,14 @@ using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.UI;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
[Obsolete("已完全由ULP代理,此mod可弃用。以后会删除")]
|
||||
public class ManiaModLoopPlayClip : ModLoopPlayClip,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModNiceBPM : ModNiceBPM
|
||||
{
|
||||
|
||||
@@ -18,12 +18,12 @@ using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShift : Mod, IApplicableAfterBeatmapConversion, IApplicableToBeatmapConverter, IHasSeed, IHasApplyOrder
|
||||
{
|
||||
@@ -33,7 +33,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Magic;
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_KeyCount_Label), nameof(EzManiaModStrings.PatternShift_KeyCount_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_KEY_COUNT_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_KEY_COUNT_DESCRIPTION))]
|
||||
public BindableNumber<int> KeyCount { get; } = new BindableInt(8)
|
||||
{
|
||||
MinValue = 2,
|
||||
@@ -51,7 +51,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Density_Label), nameof(EzManiaModStrings.PatternShift_Density_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_DENSITY_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_DENSITY_DESCRIPTION))]
|
||||
public BindableNumber<int> Density { get; } = new BindableInt(7)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -59,7 +59,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_MaxChord_Label), nameof(EzManiaModStrings.PatternShift_MaxChord_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_MAX_CHORD_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_MAX_CHORD_DESCRIPTION))]
|
||||
public BindableNumber<int> MaxChord { get; } = new BindableInt(5)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -67,7 +67,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_AlignDivisor_Label), nameof(EzManiaModStrings.PatternShift_AlignDivisor_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_ALIGN_DIVISOR_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_ALIGN_DIVISOR_DESCRIPTION))]
|
||||
public BindableNumber<int> AlignDivisor { get; } = new BindableInt
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -75,7 +75,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_DelayLevel_Label), nameof(EzManiaModStrings.PatternShift_DelayLevel_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_DELAY_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_DELAY_LEVEL_DESCRIPTION))]
|
||||
public BindableNumber<int> DelayLevel { get; } = new BindableInt
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -83,10 +83,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Regenerate_Label), nameof(EzManiaModStrings.PatternShift_Regenerate_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_REGENERATE_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_REGENERATE_DESCRIPTION))]
|
||||
public BindableBool Regenerate { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_RegenerateDifficulty_Label), nameof(EzManiaModStrings.PatternShift_RegenerateDifficulty_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_REGENERATE_DIFFICULTY_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_REGENERATE_DIFFICULTY_DESCRIPTION))]
|
||||
public BindableNumber<int> RegenerateDifficulty { get; } = new BindableInt(5)
|
||||
{
|
||||
MinValue = 2,
|
||||
@@ -94,10 +94,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -129,7 +129,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public void ApplyToBeatmap(IBeatmap beatmap)
|
||||
{
|
||||
ApplyToBeatmapInternal((ManiaBeatmap)beatmap, null);
|
||||
applyToBeatmapInternal((ManiaBeatmap)beatmap, null);
|
||||
}
|
||||
|
||||
public void ApplyToWorkingBeatmap(WorkingBeatmap workingBeatmap)
|
||||
@@ -148,7 +148,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
trackLength = 0;
|
||||
}
|
||||
|
||||
ApplyToBeatmapInternal((ManiaBeatmap)workingBeatmap.Beatmap, workingBeatmap.Waveform, trackLength);
|
||||
applyToBeatmapInternal((ManiaBeatmap)workingBeatmap.Beatmap, workingBeatmap.Waveform, trackLength);
|
||||
}
|
||||
|
||||
private static List<PatternShiftChord> buildChords(List<PatternShiftNote> notes)
|
||||
@@ -542,7 +542,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyToBeatmapInternal(ManiaBeatmap maniaBeatmap, Waveform? waveform, double? trackLength = null)
|
||||
private void applyToBeatmapInternal(ManiaBeatmap maniaBeatmap, Waveform? waveform, double? trackLength = null)
|
||||
{
|
||||
Seed.Value ??= RNG.Next();
|
||||
var rng = new Random(Seed.Value.Value);
|
||||
@@ -653,4 +653,73 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PatternShiftStrings
|
||||
{
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("重构谱面列数、密度与多压", "Rebuild the beatmap with new column count, density and chord limit.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION_BRACKET = new EzLocalizationManager.EzLocalisableString("修改/补充键型:切叉", "Rebuild the beatmap with new column count, density and chord limit (with bracket).");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION_CHORD = new EzLocalizationManager.EzLocalisableString("修改/补充键型:拍", "Rebuild the beatmap with new column count, density and chord limit (chord limit).");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION_DELAY = new EzLocalizationManager.EzLocalisableString("修改/补充键型:偏移", "Rebuild the beatmap with new column count, density and chord limit (with delay).");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION_DUMP = new EzLocalizationManager.EzLocalisableString("修改/补充键型:楼梯", "Rebuild the beatmap with new column count, density and chord limit (full).");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DESCRIPTION_JACK = new EzLocalizationManager.EzLocalisableString("修改/补充键型:叠/子弹", "Rebuild the beatmap with new column count, density and chord limit (with Jack).");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_KEY_COUNT_LABEL = new EzLocalizationManager.EzLocalisableString("目标列数", "Target Columns");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_KEY_COUNT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("设置生成后的列数", "Set the output column count.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DENSITY_LABEL = new EzLocalizationManager.EzLocalisableString("密度", "Density");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DENSITY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("密度强度(1-10)", "Density strength (1-10).");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_MAX_CHORD_LABEL = new EzLocalizationManager.EzLocalisableString("和弦上限", "Max Chord");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_MAX_CHORD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每一排最多保留的note数量", "Maximum notes per row.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_ALIGN_DIVISOR_LABEL = new EzLocalizationManager.EzLocalisableString("对齐", "Align");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_ALIGN_DIVISOR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"对齐到节拍网格,0=关闭,1=1/1,2=1/2,4=1/4,8=1/8,16=1/16",
|
||||
"Snap to beat grid. 0=off, 1=1/1, 2=1/2, 4=1/4, 8=1/8, 16=1/16.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DELAY_LEVEL_LABEL = new EzLocalizationManager.EzLocalisableString("Delay", "Delay");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_DELAY_LEVEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"随机将部分note前后偏移,0=关闭。\n1-3: 偏移1/16、3/32、1/8;偏移数量<=等级,且至少保留等级数量不偏移。\n4-6: 同样偏移;至少保留1个不偏移。\n7-10: 偏移1/16、1/12、5/48、1/8;偏移数量<=等级,不强制保留。",
|
||||
"Randomly offset some notes. 0=off.\n1-3: offsets 1/16, 3/32, 1/8; shift up to level, keep at least level unshifted.\n4-6: same offsets; keep at least 1 unshifted.\n7-10: offsets 1/16, 1/12, 5/48, 1/8; shift up to level, no minimum unshifted.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_JACK_LEVEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"Jack 等级说明:\n1: 1/2 源,移动,单侧列。\n2: 1/2 源,移动,仅双侧列(失败时回退到较低等级)。\n3: 1/4 源,移动,单侧列。\n4: 1/4 源,移动,仅双侧列(失败时回退)。\n5: 1/2 源,添加,单侧列。\n6: 1/2 源,添加,仅双侧列(失败时回退)。\n7: 1/4 源,添加,单侧列。\n8: 1/4 源,添加,仅双侧列(失败时回退)。\n9: 等级5 + 等级7。\n10: 等级6 + 等级8.",
|
||||
"Jack level description:\n1: 1/2 sources, move, one-side columns.\n2: 1/2 sources, move, both-sides only (fallback to lower levels on fail).\n3: 1/4 sources, move, one-side columns.\n4: 1/4 sources, move, both-sides only (fallback).\n5: 1/2 sources, add, one-side columns.\n6: 1/2 sources, add, both-sides only (fallback).\n7: 1/4 sources, add, one-side columns.\n8: 1/4 sources, add, both-sides only (fallback).\n9: level 5 + level 7.\n10: level 6 + level 8.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_LABEL = new EzLocalizationManager.EzLocalisableString("窗口最大迭代", "Window Max Iterations");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每个窗口的最大迭代次数", "Max iterations per window.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WAVEFORM_LABEL = new EzLocalizationManager.EzLocalisableString("波形", "Waveform");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WAVEFORM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("振荡器波形,影响键型局部处理时的循环周期", "Oscillator waveform used to vary pattern intensity.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_LEVEL_LABEL = new EzLocalizationManager.EzLocalisableString("等级", "Level");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_LEVEL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("0=off, 1-10。控制每个窗口生成的音符数量", "0=off, 1-10. Controls how many notes are generated per window.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_OSCILLATION_BEATS_LABEL = new EzLocalizationManager.EzLocalisableString("振荡节拍", "Oscillation Beats");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_OSCILLATION_BEATS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("振荡器变化的节拍间隔。1=每拍。", "Beat interval for oscillator changes. 1=every beat.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_INTERVAL_LABEL = new EzLocalizationManager.EzLocalisableString("窗口间隔", "Window Interval");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_INTERVAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每N半拍处理一次。1=每半拍。", "Process every N half-beats. 1=every half-beat.");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_START_OFFSET_LABEL = new EzLocalizationManager.EzLocalisableString("窗口起始偏移", "Window Start Offset");
|
||||
public static readonly LocalisableString PATTERN_SHIFT_WINDOW_START_OFFSET_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("1-4:第一到第四个半拍。", "1-4: first to fourth half-beat.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_SKIP_FINE_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("Bypass高分节拍跳过阈值", "Bypass high-density beat skip threshold");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_SKIP_FINE_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"在1/2节拍之间出现1/4以上(不含1/4)线的note数量阈值,超过则跳过处理。高星图需适当增加。",
|
||||
"Threshold for notes finer than 1/4 within a half-window; exceeding this skips processing. Default = 2.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_SKIP_QUARTER_DIVISOR_LABEL = new EzLocalizationManager.EzLocalisableString("Bypass 1/4线跳过阈值 (1/n)", "Bypass Quarter-line threshold divisor (1/n)");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_SKIP_QUARTER_DIVISOR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"1/4线上的note数量阈值按谱面总列数的1/n计算,默认 n=2,即 k/2 阈值。",
|
||||
"Quarter-line note threshold is totalColumns / n. Default n=2 (k/2).");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_REGENERATE_LABEL = new EzLocalizationManager.EzLocalisableString("重生成", "Regenerate");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_REGENERATE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"在转换时根据音频重新生成完整谱面,而不是使用原始音符",
|
||||
"Regenerate the full beatmap from audio during conversion instead of using original hit objects.");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_REGENERATE_DIFFICULTY_LABEL = new EzLocalizationManager.EzLocalisableString("重生成难度", "Regenerate Difficulty");
|
||||
|
||||
public static readonly LocalisableString PATTERN_SHIFT_REGENERATE_DIFFICULTY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"控制重生成的目标难度(星级),范围 2-10",
|
||||
"Target difficulty (stars) for regeneration, range 2-10.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,19 +8,18 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShiftBracket : ManiaModPatternShiftPatternBase
|
||||
{
|
||||
protected override KeyPatternType PatternType => KeyPatternType.Bracket;
|
||||
protected override string PatternName => "Bracket";
|
||||
protected override string PatternAcronym => "PSB";
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description_Bracket;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION_BRACKET;
|
||||
protected override int DefaultLevel => 4;
|
||||
protected override EzOscillator.EzWaveform DefaultWaveform => EzOscillator.EzWaveform.Sine;
|
||||
protected override int DefaultOscillationBeats => 1;
|
||||
@@ -28,10 +27,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
protected override int DefaultWindowProcessOffset => 0;
|
||||
protected override int DefaultApplyOrder => 50;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Level_Label), nameof(EzManiaModStrings.PatternShift_Level_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_DESCRIPTION))]
|
||||
public new BindableNumber<int> Level => base.Level;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_WindowMaxIterations_Label), nameof(EzManiaModStrings.PatternShift_WindowMaxIterations_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_DESCRIPTION))]
|
||||
public BindableNumber<int> WindowMaxNotes { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
|
||||
@@ -8,19 +8,18 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShiftChord : ManiaModPatternShiftPatternBase
|
||||
{
|
||||
protected override KeyPatternType PatternType => KeyPatternType.Chord;
|
||||
protected override string PatternName => "Chord";
|
||||
protected override string PatternAcronym => "PSC";
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description_Chord;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION_CHORD;
|
||||
protected override int DefaultLevel => 4;
|
||||
protected override EzOscillator.EzWaveform DefaultWaveform => EzOscillator.EzWaveform.Sine;
|
||||
protected override int DefaultOscillationBeats => 1;
|
||||
@@ -28,7 +27,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
protected override int DefaultWindowProcessOffset => 0;
|
||||
protected override int DefaultApplyOrder => 50;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Level_Label), nameof(EzManiaModStrings.PatternShift_Level_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_DESCRIPTION))]
|
||||
public new BindableNumber<int> Level => base.Level;
|
||||
|
||||
protected override void ApplyPatternForWindow(List<ManiaHitObject> windowObjects,
|
||||
|
||||
@@ -8,19 +8,18 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShiftDelay : ManiaModPatternShiftPatternBase
|
||||
{
|
||||
protected override KeyPatternType PatternType => KeyPatternType.Delay;
|
||||
protected override string PatternName => "Delay";
|
||||
protected override string PatternAcronym => "PSD";
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description_Delay;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION_DELAY;
|
||||
protected override int DefaultLevel => 1;
|
||||
protected override EzOscillator.EzWaveform DefaultWaveform => EzOscillator.EzWaveform.Sine;
|
||||
protected override int DefaultOscillationBeats => 1;
|
||||
@@ -28,7 +27,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
protected override int DefaultWindowProcessOffset => 1;
|
||||
protected override int DefaultApplyOrder => 50;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_DelayLevel_Label), nameof(EzManiaModStrings.PatternShift_DelayLevel_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_DELAY_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_DELAY_LEVEL_DESCRIPTION))]
|
||||
public new BindableNumber<int> Level => base.Level;
|
||||
|
||||
protected override void ApplyPatternForWindow(List<ManiaHitObject> windowObjects,
|
||||
|
||||
@@ -8,19 +8,18 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShiftDump : ManiaModPatternShiftPatternBase
|
||||
{
|
||||
protected override KeyPatternType PatternType => KeyPatternType.Dump;
|
||||
protected override string PatternName => "Dump";
|
||||
protected override string PatternAcronym => "PSS";
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description_Dump;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION_DUMP;
|
||||
protected override int DefaultLevel => 3;
|
||||
protected override EzOscillator.EzWaveform DefaultWaveform => EzOscillator.EzWaveform.Sine;
|
||||
protected override int DefaultOscillationBeats => 1;
|
||||
@@ -28,7 +27,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
protected override int DefaultWindowProcessOffset => 1;
|
||||
protected override int DefaultApplyOrder => 50;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Level_Label), nameof(EzManiaModStrings.PatternShift_Level_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_DESCRIPTION))]
|
||||
public new BindableNumber<int> Level => base.Level;
|
||||
|
||||
protected override void ApplyPatternForWindow(List<ManiaHitObject> windowObjects,
|
||||
|
||||
@@ -7,19 +7,16 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModPatternShiftJack : ManiaModPatternShiftPatternBase
|
||||
{
|
||||
protected override KeyPatternType PatternType => KeyPatternType.Jack;
|
||||
protected override string PatternName => "Jack";
|
||||
protected override string PatternAcronym => "PSJ";
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description_Jack;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION_JACK;
|
||||
protected override int DefaultLevel => 5;
|
||||
protected override EzOscillator.EzWaveform DefaultWaveform => EzOscillator.EzWaveform.Sine;
|
||||
protected override int DefaultOscillationBeats => 1;
|
||||
@@ -27,10 +24,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
protected override int DefaultWindowProcessOffset => 0;
|
||||
protected override int DefaultApplyOrder => 50;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Level_Label), nameof(EzManiaModStrings.PatternShift_JackLevel_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_LEVEL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_JACK_LEVEL_DESCRIPTION))]
|
||||
public new BindableNumber<int> Level => base.Level;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_WindowMaxIterations_Label), nameof(EzManiaModStrings.PatternShift_WindowMaxIterations_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_MAX_ITERATIONS_DESCRIPTION))]
|
||||
public BindableNumber<int> WindowMaxIterations { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
|
||||
@@ -13,13 +13,12 @@ using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public abstract class ManiaModPatternShiftPatternBase : Mod, IApplicableAfterBeatmapConversion, IHasSeed, IHasApplyOrder
|
||||
{
|
||||
@@ -51,7 +50,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.PatternShift_Description;
|
||||
public override LocalisableString Description => PatternShiftStrings.PATTERN_SHIFT_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Magic;
|
||||
|
||||
@@ -61,7 +60,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
public override bool ValidForMultiplayer => false;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Waveform_Label), nameof(EzManiaModStrings.PatternShift_Waveform_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_WAVEFORM_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_WAVEFORM_DESCRIPTION))]
|
||||
public Bindable<EzOscillator.EzWaveform> Waveform { get; } = new Bindable<EzOscillator.EzWaveform>(EzOscillator.EzWaveform.Sine);
|
||||
|
||||
public BindableNumber<int> Level { get; } = new BindableInt(0)
|
||||
@@ -71,7 +70,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_OscillationBeats_Label), nameof(EzManiaModStrings.PatternShift_OscillationBeats_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_OSCILLATION_BEATS_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_OSCILLATION_BEATS_DESCRIPTION))]
|
||||
public BindableNumber<int> OscillationBeats { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -79,7 +78,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_WindowInterval_Label), nameof(EzManiaModStrings.PatternShift_WindowInterval_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_INTERVAL_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_INTERVAL_DESCRIPTION))]
|
||||
public BindableNumber<int> WindowInterval { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -87,7 +86,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_WindowStartOffset_Label), nameof(EzManiaModStrings.PatternShift_WindowStartOffset_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_START_OFFSET_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_WINDOW_START_OFFSET_DESCRIPTION))]
|
||||
public BindableNumber<int> WindowStartOffset { get; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -95,7 +94,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Skip_FineThreshold_Label), nameof(EzManiaModStrings.PatternShift_Skip_FineThreshold_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_SKIP_FINE_THRESHOLD_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_SKIP_FINE_THRESHOLD_DESCRIPTION))]
|
||||
public BindableNumber<int> SkipFineThreshold { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -103,7 +102,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PatternShift_Skip_QuarterDivisor_Label), nameof(EzManiaModStrings.PatternShift_Skip_QuarterDivisor_Description))]
|
||||
[SettingSource(typeof(PatternShiftStrings), nameof(PatternShiftStrings.PATTERN_SHIFT_SKIP_QUARTER_DIVISOR_LABEL), nameof(PatternShiftStrings.PATTERN_SHIFT_SKIP_QUARTER_DIVISOR_DESCRIPTION))]
|
||||
public BindableNumber<int> SkipQuarterDivisor { get; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -111,10 +110,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(50)
|
||||
{
|
||||
MinValue = 0,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModReconcile : ModReconcile
|
||||
{
|
||||
|
||||
@@ -7,13 +7,13 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania.Analysis;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public class ManiaModSRAdjust : Mod, IApplicableToDifficulty
|
||||
{
|
||||
@@ -21,7 +21,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override string Acronym => "SRA";
|
||||
|
||||
public override LocalisableString Description => "修正xxySR计算中的一些系数。影响的是难度卡上的SR(月亮星)数值。";
|
||||
public override LocalisableString Description => SRAdjustStrings.SR_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
|
||||
public override bool Ranked => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.SRAdjust_RescaleThreshold_Label), nameof(EzManiaModStrings.SRAdjust_RescaleThreshold_Description),
|
||||
[SettingSource(typeof(SRAdjustStrings), nameof(SRAdjustStrings.SR_ADJUST_RESCALE_THRESHOLD_LABEL), nameof(SRAdjustStrings.SR_ADJUST_RESCALE_THRESHOLD_DESCRIPTION),
|
||||
SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> RescaleThreshold { get; } = new BindableDouble(SRCalculator.RescaleHighThreshold)
|
||||
{
|
||||
@@ -38,7 +38,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.SRAdjust_LnMultiplier_Label), nameof(EzManiaModStrings.SRAdjust_LnMultiplier_Description),
|
||||
[SettingSource(typeof(SRAdjustStrings), nameof(SRAdjustStrings.SR_ADJUST_LN_MULTIPLIER_LABEL), nameof(SRAdjustStrings.SR_ADJUST_LN_MULTIPLIER_DESCRIPTION),
|
||||
SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> LnMultiplier { get; } = new BindableDouble(SRCalculator.LnIntegralMultiplier)
|
||||
{
|
||||
@@ -57,8 +57,8 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
{
|
||||
get
|
||||
{
|
||||
yield return (EzManiaModStrings.SRAdjust_RescaleThreshold_Label, new LocalisableString(RescaleThreshold.Value.ToString(CultureInfo.InvariantCulture)));
|
||||
yield return (EzManiaModStrings.SRAdjust_LnMultiplier_Label, new LocalisableString(LnMultiplier.Value.ToString(CultureInfo.InvariantCulture)));
|
||||
yield return (SRAdjustStrings.SR_ADJUST_RESCALE_THRESHOLD_LABEL, new LocalisableString(RescaleThreshold.Value.ToString(CultureInfo.InvariantCulture)));
|
||||
yield return (SRAdjustStrings.SR_ADJUST_LN_MULTIPLIER_LABEL, new LocalisableString(LnMultiplier.Value.ToString(CultureInfo.InvariantCulture)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,4 +66,16 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static class SRAdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString SR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"调整 SR 计算中的重缩放阈值和 LN 因子, 影响难度卡上的SR(月亮星)数值。",
|
||||
"Adjust rescale threshold and LN multiplier in SR calculation. Affects the SR (star rating) value shown on difficulty cards.");
|
||||
|
||||
public static readonly LocalisableString SR_ADJUST_RESCALE_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("重缩放阈值", "Rescale Threshold");
|
||||
public static readonly LocalisableString SR_ADJUST_RESCALE_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("超过此阈值后将降低难度膨胀速度", "Reduce difficulty inflation speed when above this threshold.");
|
||||
public static readonly LocalisableString SR_ADJUST_LN_MULTIPLIER_LABEL = new EzLocalizationManager.EzLocalisableString("LN 因子", "LN Integral Multiplier");
|
||||
public static readonly LocalisableString SR_ADJUST_LN_MULTIPLIER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN 因子", "LN integral multiplier.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +14,11 @@ using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
/// <summary>
|
||||
/// 需要同时使用IApplicableAfterBeatmapConversion, IHasApplyOrder
|
||||
@@ -30,7 +31,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
public override string Acronym => "SB";
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzModStrings.SpaceBody_Description;
|
||||
public override LocalisableString Description => SpaceBodyStrings.SPACE_BODY_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
|
||||
@@ -39,7 +40,7 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
public override Type[] IncompatibleMods => new[] { typeof(ManiaModHoldOff) };
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.SpaceBody_Label), nameof(EzModStrings.SpaceBodyGap_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(SpaceBodyStrings), nameof(SpaceBodyStrings.SPACE_BODY_LABEL), nameof(SpaceBodyStrings.SPACE_BODY_GAP_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> SpaceBeat { get; } = new BindableDouble(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -47,10 +48,10 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.AddShield_Label), nameof(EzModStrings.AddShield_Description))]
|
||||
[SettingSource(typeof(SpaceBodyStrings), nameof(SpaceBodyStrings.ADD_SHIELD_LABEL), nameof(SpaceBodyStrings.ADD_SHIELD_DESCRIPTION))]
|
||||
public BindableBool Shield { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -154,4 +155,13 @@ namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class SpaceBodyStrings
|
||||
{
|
||||
public static readonly LocalisableString SPACE_BODY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("全LN面海,可调面缝", "Full LN, adjustable gaps");
|
||||
public static readonly LocalisableString SPACE_BODY_LABEL = new EzLocalizationManager.EzLocalisableString("全反键缝隙", "Space Body");
|
||||
public static readonly LocalisableString SPACE_BODY_GAP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整前后两个面之间的间隔缝隙", "Full LN, adjustable gaps");
|
||||
public static readonly LocalisableString ADD_SHIELD_LABEL = new EzLocalizationManager.EzLocalisableString("添加盾型", "Add Shield");
|
||||
public static readonly LocalisableString ADD_SHIELD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("将每个面尾添加盾牌键型", "Add shield notes in the sea");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,9 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Mods.KrrConversion;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.LAsMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods
|
||||
{
|
||||
public static class ManiaNoteCleanupTool
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ using osu.Game.Scoring;
|
||||
using System.Linq;
|
||||
using osu.Game.Beatmaps.Timing;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据 accuracy 改变速度
|
||||
|
||||
@@ -18,8 +18,8 @@ using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
@@ -30,7 +30,7 @@ using osu.Game.Rulesets.UI;
|
||||
using osu.Game.Scoring;
|
||||
using osu.Game.Screens.Play;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModAdjust : ModRateAdjust,
|
||||
IApplicableAfterConversion,
|
||||
@@ -47,7 +47,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public override string Name => @"Adjust";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.Adjust_Description;
|
||||
public override LocalisableString Description => AdjustStrings.ADJUST_DESCRIPTION;
|
||||
|
||||
public override string Acronym => "AJ";
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public BindableDouble OriginalOD = new BindableDouble();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ScoreMultiplier_Label))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.SCORE_MULTIPLIER_LABEL))]
|
||||
public BindableNumber<double> ScoreMultiplierAdjust { get; } = new BindableDouble(1)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -73,7 +73,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public ManiaHitWindows HitWindows { get; set; } = new ManiaHitWindows();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.HPDrain_Label), nameof(EzManiaModStrings.HPDrain_Description), SettingControlType = typeof(DifficultyAdjustSettingsControl))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.HP_DRAIN_LABEL), nameof(AdjustStrings.HP_DRAIN_DESCRIPTION), SettingControlType = typeof(DifficultyAdjustSettingsControl))]
|
||||
public DifficultyBindable DrainRate { get; } = new DifficultyBindable(0)
|
||||
{
|
||||
Precision = 0.1f,
|
||||
@@ -83,7 +83,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
ReadCurrentFromDifficulty = diff => diff.DrainRate
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.AdjustAccuracy_Label), nameof(EzManiaModStrings.AdjustAccuracy_Description), SettingControlType = typeof(DifficultyAdjustSettingsControl))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.ADJUST_ACCURACY_LABEL), nameof(AdjustStrings.ADJUST_ACCURACY_DESCRIPTION), SettingControlType = typeof(DifficultyAdjustSettingsControl))]
|
||||
public DifficultyBindable OverallDifficulty { get; } = new DifficultyBindable(0)
|
||||
{
|
||||
Precision = 0.1f,
|
||||
@@ -93,7 +93,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
ReadCurrentFromDifficulty = diff => diff.OverallDifficulty
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ReleaseLenience_Label), nameof(EzManiaModStrings.ReleaseLenience_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.RELEASE_LENIENCE_LABEL), nameof(AdjustStrings.RELEASE_LENIENCE_DESCRIPTION))]
|
||||
public BindableDouble ReleaseLenience { get; } = new BindableDouble(2)
|
||||
{
|
||||
MaxValue = 4,
|
||||
@@ -101,19 +101,19 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomHP_Label))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.CUSTOM_HP_LABEL))]
|
||||
public BindableBool CustomHP { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomOD_Label))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.CUSTOM_OD_LABEL))]
|
||||
public BindableBool CustomOD { get; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomRelease_Label))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.CUSTOM_RELEASE_LABEL))]
|
||||
public BindableBool CustomRelease { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ExtendedLimits_Label), nameof(EzManiaModStrings.ExtendedLimits_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.EXTENDED_LIMITS_LABEL), nameof(AdjustStrings.EXTENDED_LIMITS_DESCRIPTION))]
|
||||
public BindableBool ExtendedLimits { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.AdjustConstantSpeed_Label), nameof(EzManiaModStrings.AdjustConstantSpeed_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.ADJUST_CONSTANT_SPEED_LABEL), nameof(AdjustStrings.ADJUST_CONSTANT_SPEED_DESCRIPTION))]
|
||||
public BindableBool ConstantSpeed { get; } = new BindableBool(true);
|
||||
|
||||
public override IEnumerable<(LocalisableString setting, LocalisableString value)> SettingDescription
|
||||
@@ -172,7 +172,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string ExtendedIconInformation => "";
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.SpeedChange_Label), nameof(EzModStrings.SpeedChange_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SPEED_CHANGE_LABEL), nameof(EzCommonModStrings.SPEED_CHANGE_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public override BindableNumber<double> SpeedChange { get; } = new BindableDouble(1)
|
||||
{
|
||||
MinValue = 0.1,
|
||||
@@ -180,7 +180,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.025
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.AdjustPitch_Label), nameof(EzModStrings.AdjustPitch_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ADJUST_PITCH_LABEL), nameof(EzCommonModStrings.ADJUST_PITCH_DESCRIPTION))]
|
||||
public virtual BindableBool AdjustPitch { get; } = new BindableBool();
|
||||
|
||||
private readonly RateAdjustModHelper rateAdjustHelper;
|
||||
@@ -273,25 +273,25 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Mirror_Label), nameof(EzModStrings.Mirror_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.MIRROR_LABEL), nameof(EzCommonModStrings.MIRROR_DESCRIPTION))]
|
||||
public BindableBool Mirror { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.RandomMirror_Label), nameof(EzManiaModStrings.RandomMirror_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.RANDOM_MIRROR_LABEL), nameof(AdjustStrings.RANDOM_MIRROR_DESCRIPTION))]
|
||||
public BindableBool RandomMirror { get; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoFail_Label), nameof(EzManiaModStrings.NoFail_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.NO_FAIL_LABEL), nameof(AdjustStrings.NO_FAIL_DESCRIPTION))]
|
||||
public BindableBool NoFail { get; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Restart_Label), nameof(EzManiaModStrings.Restart_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.RESTART_LABEL), nameof(AdjustStrings.RESTART_DESCRIPTION))]
|
||||
public BindableBool Restart { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.RandomSelect_Label), nameof(EzManiaModStrings.RandomSelect_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.RANDOM_SELECT_LABEL), nameof(AdjustStrings.RANDOM_SELECT_DESCRIPTION))]
|
||||
public BindableBool RandomSelect { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.TrueRandom_Label), nameof(EzManiaModStrings.TrueRandom_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.TRUE_RANDOM_LABEL), nameof(AdjustStrings.TRUE_RANDOM_DESCRIPTION))]
|
||||
public BindableBool TrueRandom { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
public void ApplyToBeatmap(IBeatmap beatmap)
|
||||
@@ -398,7 +398,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
triggerFailureDelegate?.Invoke();
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomHitRange_Label), nameof(EzManiaModStrings.CustomHitRange_Description))]
|
||||
[SettingSource(typeof(AdjustStrings), nameof(AdjustStrings.CUSTOM_HIT_RANGE_LABEL), nameof(AdjustStrings.CUSTOM_HIT_RANGE_DESCRIPTION))]
|
||||
public BindableBool CustomHitRange { get; } = new BindableBool();
|
||||
|
||||
[SettingSource("Perfect")]
|
||||
@@ -610,5 +610,62 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override double MaximumJudgementOffset => base.MaximumJudgementOffset / TailNote.RELEASE_WINDOW_LENIENCE * ReleaseLenience;
|
||||
}
|
||||
|
||||
public static class AdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString ADJUST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("凉雨Mod一卡通", "Set your settings.");
|
||||
|
||||
public static readonly LocalisableString RANDOM_MIRROR_LABEL = new EzLocalizationManager.EzLocalisableString("随机镜像", "Random Mirror");
|
||||
public static readonly LocalisableString RANDOM_MIRROR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("随机决定是否镜像音符", "Random Mirror. Mirror or not mirror notes by random.");
|
||||
public static readonly LocalisableString NO_FAIL_LABEL = new EzLocalizationManager.EzLocalisableString("无失败", "No Fail");
|
||||
public static readonly LocalisableString NO_FAIL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("无论如何都不会失败", "No Fail. You can't fail, no matter what.");
|
||||
public static readonly LocalisableString RESTART_LABEL = new EzLocalizationManager.EzLocalisableString("失败重启", "Restart on fail");
|
||||
public static readonly LocalisableString RESTART_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("失败时自动重启", "Restart on fail. Automatically restarts when failed.");
|
||||
public static readonly LocalisableString RANDOM_SELECT_LABEL = new EzLocalizationManager.EzLocalisableString("随机选择", "Random");
|
||||
public static readonly LocalisableString RANDOM_SELECT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("随机排列按键", "Random. Shuffle around the keys.");
|
||||
public static readonly LocalisableString TRUE_RANDOM_LABEL = new EzLocalizationManager.EzLocalisableString("真随机", "True Random");
|
||||
|
||||
public static readonly LocalisableString TRUE_RANDOM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"随机排列所有音符(使用NoLN(LN转换器等级-3),否则可能会重叠)",
|
||||
"True Random. Shuffle all notes(Use NoLN(LN Transformer Level -3), or you will get overlapping notes otherwise).");
|
||||
|
||||
public static readonly LocalisableString BEAT_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("转换的节拍速度", "Transform Beat Speed");
|
||||
|
||||
public static readonly LocalisableString BEAT_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"| Index | Beat Length |\n" +
|
||||
"|-------|-------------|\n" +
|
||||
"| 0 | 1/8 Beat |\n" +
|
||||
"| 1 | 1/4 Beat |\n" +
|
||||
"| 2 | 1/2 Beat |\n" +
|
||||
"| 3 | 3/4 Beat |\n" +
|
||||
"| 4 | 1 Beat |\n" +
|
||||
"| 5 | 2 Beats |\n" +
|
||||
"| 6 | 3 Beats |\n" +
|
||||
"| 7 | 4 Beats |\n" +
|
||||
"| 8 | Free |"
|
||||
);
|
||||
|
||||
public static readonly LocalisableString SCORE_MULTIPLIER_LABEL = new EzLocalizationManager.EzLocalisableString("分数倍数", "Score Multiplier");
|
||||
public static readonly LocalisableString HP_DRAIN_LABEL = new EzLocalizationManager.EzLocalisableString("HP消耗", "HP Drain");
|
||||
public static readonly LocalisableString HP_DRAIN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("覆盖谱面的HP设置", "Override a beatmap's set HP.");
|
||||
public static readonly LocalisableString ADJUST_ACCURACY_LABEL = new EzLocalizationManager.EzLocalisableString("准确度", "Accuracy");
|
||||
public static readonly LocalisableString ADJUST_ACCURACY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("覆盖谱面的OD设置", "Override a beatmap's set OD.");
|
||||
public static readonly LocalisableString RELEASE_LENIENCE_LABEL = new EzLocalizationManager.EzLocalisableString("释放宽容度", "Release Lenience");
|
||||
|
||||
public static readonly LocalisableString RELEASE_LENIENCE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"调整LN尾部释放窗口宽容度。(Score v2中的尾部默认有1.5倍打击窗口)",
|
||||
"Adjust LN tail release window lenience.(Tail in Score v2 has default 1.5x hit window)");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_HP_LABEL = new EzLocalizationManager.EzLocalisableString("自定义HP", "Custom HP");
|
||||
public static readonly LocalisableString CUSTOM_OD_LABEL = new EzLocalizationManager.EzLocalisableString("自定义OD", "Custom OD");
|
||||
public static readonly LocalisableString CUSTOM_RELEASE_LABEL = new EzLocalizationManager.EzLocalisableString("自定义释放", "Custom Release");
|
||||
public static readonly LocalisableString EXTENDED_LIMITS_LABEL = new EzLocalizationManager.EzLocalisableString("扩展限制", "Extended Limits");
|
||||
public static readonly LocalisableString EXTENDED_LIMITS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整难度超出合理限制", "Adjust difficulty beyond sane limits.");
|
||||
public static readonly LocalisableString ADJUST_CONSTANT_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("恒定速度", "Constant Speed");
|
||||
public static readonly LocalisableString ADJUST_CONSTANT_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("不再有棘手的速度变化", "No more tricky speed changes.");
|
||||
|
||||
public static readonly LocalisableString CUSTOM_HIT_RANGE_LABEL = new EzLocalizationManager.EzLocalisableString("自定义打击窗口", "Custom Hit Range");
|
||||
public static readonly LocalisableString CUSTOM_HIT_RANGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("自定义每个判定的打击窗口", "Customize hit windows for each judgement.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,14 +12,13 @@ using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
using osu.Game.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModChangeSpeedByAccuracy : Mod, IUpdatableByPlayfield, IApplicableToScoreProcessor, IApplicableToRate
|
||||
{
|
||||
@@ -27,7 +26,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "SA";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.ChangeSpeedByAccuracy_Description;
|
||||
public override LocalisableString Description => ChangeSpeedByAccuracyStrings.CHANGE_SPEED_BY_ACCURACY_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.YuLiangSSS_Mod;
|
||||
|
||||
@@ -50,7 +49,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
private double targetSpeed = 1;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ChangeSpeedAccuracy_Label), nameof(EzManiaModStrings.ChangeSpeedAccuracy_Description))]
|
||||
[SettingSource(typeof(ChangeSpeedByAccuracyStrings), nameof(ChangeSpeedByAccuracyStrings.CHANGE_SPEED_ACCURACY_LABEL), nameof(ChangeSpeedByAccuracyStrings.CHANGE_SPEED_ACCURACY_DESCRIPTION))]
|
||||
public BindableDouble Accuracy { get; } = new BindableDouble(95)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -58,7 +57,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.MaxSpeed_Label), nameof(EzManiaModStrings.MaxSpeed_Description))]
|
||||
[SettingSource(typeof(ChangeSpeedByAccuracyStrings), nameof(ChangeSpeedByAccuracyStrings.MAX_SPEED_LABEL), nameof(ChangeSpeedByAccuracyStrings.MAX_SPEED_DESCRIPTION))]
|
||||
public BindableDouble MaxSpeed { get; } = new BindableDouble(1.5)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -66,7 +65,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.MinSpeed_Label), nameof(EzManiaModStrings.MinSpeed_Description))]
|
||||
[SettingSource(typeof(ChangeSpeedByAccuracyStrings), nameof(ChangeSpeedByAccuracyStrings.MIN_SPEED_LABEL), nameof(ChangeSpeedByAccuracyStrings.MIN_SPEED_DESCRIPTION))]
|
||||
public BindableDouble MinSpeed { get; } = new BindableDouble(0.5)
|
||||
{
|
||||
MinValue = 0.5,
|
||||
@@ -74,7 +73,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.AdjustPitch_Label), nameof(EzModStrings.AdjustPitch_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ADJUST_PITCH_LABEL), nameof(EzCommonModStrings.ADJUST_PITCH_DESCRIPTION))]
|
||||
public virtual BindableBool AdjustPitch { get; } = new BindableBool();
|
||||
|
||||
public ManiaModChangeSpeedByAccuracy()
|
||||
@@ -141,4 +140,15 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
sample.AddAdjustment(AdjustableProperty.Frequency, SpeedChange);
|
||||
}
|
||||
}
|
||||
|
||||
public static class ChangeSpeedByAccuracyStrings
|
||||
{
|
||||
public static readonly LocalisableString CHANGE_SPEED_BY_ACCURACY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("根据准确度调整游戏速度", "Adapt the speed of the game based on the accuracy.");
|
||||
public static readonly LocalisableString CHANGE_SPEED_ACCURACY_LABEL = new EzLocalizationManager.EzLocalisableString("准确度", "Accuracy");
|
||||
public static readonly LocalisableString CHANGE_SPEED_ACCURACY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("应用速度变化的准确度", "Accuracy. Accuracy for speed change to be applied.");
|
||||
public static readonly LocalisableString MAX_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("最大速度", "Max Speed");
|
||||
public static readonly LocalisableString MAX_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("最大速度", "Max Speed");
|
||||
public static readonly LocalisableString MIN_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("最小速度", "Min Speed");
|
||||
public static readonly LocalisableString MIN_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("最小速度", "Min Speed");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,15 +9,15 @@ using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModCleaner : Mod, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -25,7 +25,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "CL";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.Cleaner_Description;
|
||||
public override LocalisableString Description => CleanerStrings.CLEANER_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Broom;
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Style_Label), nameof(EzManiaModStrings.Style_Description))]
|
||||
[SettingSource(typeof(CleanerStrings), nameof(CleanerStrings.STYLE_LABEL), nameof(CleanerStrings.STYLE_DESCRIPTION))]
|
||||
public BindableNumber<int> Style { get; set; } = new BindableInt(2)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -74,7 +74,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
// 250BPM - 60.00ms 260BPM - 57.69ms 270BPM - 55.55ms
|
||||
// 280BPM - 53.57ms 290BPM - 51.72ms 300BPM - 50.00ms
|
||||
//
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Interval_Label), nameof(EzManiaModStrings.Interval_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.INTERVAL_LABEL), nameof(EzCommonModStrings.INTERVAL_DESCRIPTION))]
|
||||
public BindableNumber<int> Interval { get; set; } = new BindableInt(80)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -82,7 +82,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LNInterval_Label), nameof(EzManiaModStrings.LNInterval_Description))]
|
||||
[SettingSource(typeof(CleanerStrings), nameof(CleanerStrings.LN_INTERVAL_LABEL), nameof(CleanerStrings.LN_INTERVAL_DESCRIPTION))]
|
||||
public BindableNumber<int> LNInterval { get; set; } = new BindableInt(30)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -213,4 +213,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.HitObjects = [.. newObjects.OrderBy(h => h.StartTime)];
|
||||
}
|
||||
}
|
||||
|
||||
public static class CleanerStrings
|
||||
{
|
||||
public static readonly LocalisableString CLEANER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("清理谱面中的子弹或其他音符(例如重叠音符)", "Clean bullet or other notes on map(e.g. Overlap note).");
|
||||
public static readonly LocalisableString STYLE_LABEL = new EzLocalizationManager.EzLocalisableString("样式", "Style");
|
||||
public static readonly LocalisableString STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择你的样式", "Choose your style.");
|
||||
public static readonly LocalisableString LN_INTERVAL_LABEL = new EzLocalizationManager.EzLocalisableString("LN间隔", "LN Interval");
|
||||
public static readonly LocalisableString LN_INTERVAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("你决定的释放和按压速度", "The release & press speed you decide.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,14 +10,14 @@ using osu.Framework.Localisation;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModDoublePlay : Mod, IApplicableToBeatmapConverter, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -45,7 +45,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DoublePlayStyle_Label), nameof(EzManiaModStrings.DoublePlayStyle_Description))]
|
||||
[SettingSource(typeof(DoublePlayStrings), nameof(DoublePlayStrings.DOUBLE_PLAY_STYLE_LABEL), nameof(DoublePlayStrings.DOUBLE_PLAY_STYLE_DESCRIPTION))]
|
||||
public BindableNumber<int> Style { get; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -508,4 +508,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.HitObjects = newObjects;
|
||||
}
|
||||
}
|
||||
|
||||
public static class DoublePlayStrings
|
||||
{
|
||||
public static readonly LocalisableString DOUBLE_PLAY_STYLE_LABEL = new EzLocalizationManager.EzLocalisableString("样式", "Style");
|
||||
|
||||
public static readonly LocalisableString DOUBLE_PLAY_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"1: NM+NM 2: MR+MR 3: NM+MR 4: MR+NM 5: Bracket NM+NM 6: Bracket MR 7: Wide Bracket 8: Wide Bracket MR",
|
||||
"1: NM+NM 2: MR+MR 3: NM+MR 4: MR+NM 5: Bracket NM+NM 6: Bracket MR 7: Wide Bracket 8: Wide Bracket MR");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,12 +16,11 @@ using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModGracer : Mod, IApplicableAfterBeatmapConversion, IHasSeed
|
||||
{
|
||||
@@ -41,7 +40,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.Gracer_Description;
|
||||
public override LocalisableString Description => GracerStrings.GRACER_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.YuLiangSSS_Mod;
|
||||
|
||||
@@ -56,7 +55,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Bias_Label), nameof(EzManiaModStrings.Bias_Description))]
|
||||
[SettingSource(typeof(GracerStrings), nameof(GracerStrings.BIAS_LABEL), nameof(GracerStrings.BIAS_DESCRIPTION))]
|
||||
public BindableNumber<int> Bias { get; set; } = new BindableInt(16)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -65,7 +64,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
};
|
||||
|
||||
// If interval is too high which will have bug taken place.
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Interval_Label), nameof(EzManiaModStrings.Interval_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.INTERVAL_LABEL), nameof(EzCommonModStrings.INTERVAL_DESCRIPTION))]
|
||||
public BindableNumber<double> Interval { get; set; } = new BindableNumber<double>(20)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -73,7 +72,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Probability_Label), nameof(EzManiaModStrings.Probability_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.PROBABILITY_LABEL), nameof(EzCommonModStrings.PROBABILITY_DESCRIPTION))]
|
||||
public BindableNumber<int> Probability { get; set; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -81,7 +80,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 5
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
public void ApplyToBeatmap(IBeatmap beatmap)
|
||||
@@ -197,4 +196,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.HitObjects = [.. newObjects.OrderBy(h => h.StartTime)];
|
||||
}
|
||||
}
|
||||
|
||||
public static class GracerStrings
|
||||
{
|
||||
public static readonly LocalisableString GRACER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("转换为grace", "Convert to grace.");
|
||||
public static readonly LocalisableString BIAS_LABEL = new EzLocalizationManager.EzLocalisableString("偏差", "Bias");
|
||||
public static readonly LocalisableString BIAS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("原始时机的偏差", "Bias. The bias of original timing.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
using osu.Game.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据玩家血量动态调整速度
|
||||
|
||||
@@ -7,16 +7,16 @@ using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModJudgmentsAdjust : Mod, IApplicableToScoreProcessor
|
||||
{
|
||||
@@ -24,7 +24,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "JU";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.JudgmentsAdjust_Description;
|
||||
public override LocalisableString Description => JudgmentsAdjustStrings.JUDGMENTS_ADJUST_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.YuLiangSSS_Mod;
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomHitRange_Label), nameof(EzManiaModStrings.CustomHitRange_Description))]
|
||||
[SettingSource(typeof(JudgmentsAdjustStrings), nameof(JudgmentsAdjustStrings.CUSTOM_HIT_RANGE_LABEL), nameof(JudgmentsAdjustStrings.CUSTOM_HIT_RANGE_DESCRIPTION))]
|
||||
public BindableBool CustomHitRange { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource("Perfect")]
|
||||
@@ -115,7 +115,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 250
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CustomProportionScore_Label), nameof(EzManiaModStrings.CustomProportionScore_Description))]
|
||||
[SettingSource(typeof(JudgmentsAdjustStrings), nameof(JudgmentsAdjustStrings.CUSTOM_PROPORTION_SCORE_LABEL), nameof(JudgmentsAdjustStrings.CUSTOM_PROPORTION_SCORE_DESCRIPTION))]
|
||||
public BindableBool CustomProportionScore { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource("Perfect")]
|
||||
@@ -214,4 +214,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
// mania.HitProportionScore.Miss = Miss.Value;
|
||||
}
|
||||
}
|
||||
|
||||
public static class JudgmentsAdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString JUDGMENTS_ADJUST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("修改你的判定", "Modify your judgement.");
|
||||
public static readonly LocalisableString CUSTOM_HIT_RANGE_LABEL = new EzLocalizationManager.EzLocalisableString("自定义打击范围", "Custom Hit Range");
|
||||
public static readonly LocalisableString CUSTOM_HIT_RANGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整音符的打击范围", "Custom Hit Range. Adjust the hit range of notes.");
|
||||
public static readonly LocalisableString CUSTOM_PROPORTION_SCORE_LABEL = new EzLocalizationManager.EzLocalisableString("自定义比例分数", "Custom Proportion Score");
|
||||
public static readonly LocalisableString CUSTOM_PROPORTION_SCORE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("自定义比例分数", "Custom Proportion Score");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,11 +10,10 @@ using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModLN : Mod, IHasSeed
|
||||
{
|
||||
@@ -22,7 +21,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "LN";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LN_Description;
|
||||
public override LocalisableString Description => LNStrings.LN_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -33,7 +32,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Divide_Label), nameof(EzManiaModStrings.Divide_Description))]
|
||||
[SettingSource(typeof(LNStrings), nameof(LNStrings.DIVIDE_LABEL), nameof(LNStrings.DIVIDE_DESCRIPTION))]
|
||||
public BindableNumber<int> Divide { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -41,7 +40,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Percentage_Label), nameof(EzManiaModStrings.Percentage_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.PERCENTAGE_LABEL), nameof(EzCommonModStrings.PERCENTAGE_DESCRIPTION))]
|
||||
public BindableNumber<int> Percentage { get; set; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 5,
|
||||
@@ -49,10 +48,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 5
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.OriginalLN_Label), nameof(EzManiaModStrings.OriginalLN_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ORIGINAL_LN_LABEL), nameof(EzCommonModStrings.ORIGINAL_LN_DESCRIPTION))]
|
||||
public BindableBool OriginalLN { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ColumnNum_Label), nameof(EzManiaModStrings.ColumnNum_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.COLUMN_NUM_LABEL), nameof(EzCommonModStrings.COLUMN_NUM_DESCRIPTION))]
|
||||
public BindableInt SelectColumn { get; set; } = new BindableInt(10)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -60,7 +59,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Gap_Label), nameof(EzManiaModStrings.Gap_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.GAP_LABEL), nameof(EzCommonModStrings.GAP_DESCRIPTION))]
|
||||
public BindableInt Gap { get; set; } = new BindableInt(12)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -68,7 +67,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LineSpacing_Label), nameof(EzManiaModStrings.LineSpacing_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.LINE_SPACING_LABEL), nameof(EzCommonModStrings.LINE_SPACING_DESCRIPTION))]
|
||||
public BindableInt LineSpacing { get; set; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -76,10 +75,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.InvertLineSpacing_Label), nameof(EzManiaModStrings.InvertLineSpacing_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.INVERT_LINE_SPACING_LABEL), nameof(EzCommonModStrings.INVERT_LINE_SPACING_DESCRIPTION))]
|
||||
public BindableBool InvertLineSpacing { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DurationLimit_Label), nameof(EzManiaModStrings.DurationLimit_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.DURATION_LIMIT_LABEL), nameof(EzCommonModStrings.DURATION_LIMIT_DESCRIPTION))]
|
||||
public BindableDouble DurationLimit { get; set; } = new BindableDouble(5)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -87,7 +86,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.5
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
public override IEnumerable<(LocalisableString setting, LocalisableString value)> SettingDescription
|
||||
@@ -108,4 +107,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN转换器", "LN Transformer");
|
||||
public static readonly LocalisableString DIVIDE_LABEL = new EzLocalizationManager.EzLocalisableString("分割", "Divide");
|
||||
public static readonly LocalisableString DIVIDE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("使用1/?", "Use 1/?");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,12 +15,11 @@ using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModLNDoubleDistribution : Mod, IApplicableAfterBeatmapConversion, IHasSeed
|
||||
{
|
||||
@@ -30,7 +29,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LNDoubleDistribution_Description;
|
||||
public override LocalisableString Description => LNDoubleDistributionStrings.LN_DOUBLE_DISTRIBUTION_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.YinYang;
|
||||
|
||||
@@ -72,7 +71,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Divide1_Label), nameof(EzManiaModStrings.Divide1_Description), 0)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.DIVIDE1_LABEL), nameof(LNDoubleDistributionStrings.DIVIDE1_DESCRIPTION), 0)]
|
||||
public BindableNumber<int> Divide1 { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -80,7 +79,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Divide2_Label), nameof(EzManiaModStrings.Divide2_Description), 1)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.DIVIDE2_LABEL), nameof(LNDoubleDistributionStrings.DIVIDE2_DESCRIPTION), 1)]
|
||||
public BindableNumber<int> Divide2 { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -88,7 +87,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Mu1_Label), nameof(EzManiaModStrings.Mu1_Description), 2)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.MU1_LABEL), nameof(LNDoubleDistributionStrings.MU1_DESCRIPTION), 2)]
|
||||
public BindableNumber<int> Mu1 { get; set; } = new BindableInt(20)
|
||||
{
|
||||
MinValue = -1,
|
||||
@@ -96,7 +95,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Mu2_Label), nameof(EzManiaModStrings.Mu2_Description), 3)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.MU2_LABEL), nameof(LNDoubleDistributionStrings.MU2_DESCRIPTION), 3)]
|
||||
public BindableNumber<int> Mu2 { get; set; } = new BindableInt(70)
|
||||
{
|
||||
MinValue = -1,
|
||||
@@ -104,7 +103,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.MuRatio_Label), nameof(EzManiaModStrings.MuRatio_Description), 4)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.MU_RATIO_LABEL), nameof(LNDoubleDistributionStrings.MU_RATIO_DESCRIPTION), 4)]
|
||||
public BindableInt Mu1DMu2 { get; set; } = new BindableInt(50)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -112,7 +111,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.SigmaInteger_Label), nameof(EzManiaModStrings.SigmaInteger_Description), 5)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.SIGMA_INTEGER_LABEL), nameof(LNDoubleDistributionStrings.SIGMA_INTEGER_DESCRIPTION), 5)]
|
||||
public BindableInt SigmaInteger { get; set; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -120,7 +119,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.SigmaDecimal_Label), nameof(EzManiaModStrings.SigmaDecimal_Description), 6)]
|
||||
[SettingSource(typeof(LNDoubleDistributionStrings), nameof(LNDoubleDistributionStrings.SIGMA_DECIMAL_LABEL), nameof(LNDoubleDistributionStrings.SIGMA_DECIMAL_DESCRIPTION), 6)]
|
||||
public BindableDouble SigmaDouble { get; set; } = new BindableDouble(0.85)
|
||||
{
|
||||
MinValue = 0.01,
|
||||
@@ -128,7 +127,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.01,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Percentage_Label), nameof(EzManiaModStrings.Percentage_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.PERCENTAGE_LABEL), nameof(EzCommonModStrings.PERCENTAGE_DESCRIPTION))]
|
||||
public BindableNumber<int> Percentage { get; set; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -136,10 +135,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.OriginalLN_Label), nameof(EzManiaModStrings.OriginalLN_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ORIGINAL_LN_LABEL), nameof(EzCommonModStrings.ORIGINAL_LN_DESCRIPTION))]
|
||||
public BindableBool OriginalLN { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ColumnNum_Label), nameof(EzManiaModStrings.ColumnNum_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.COLUMN_NUM_LABEL), nameof(EzCommonModStrings.COLUMN_NUM_DESCRIPTION))]
|
||||
public BindableInt SelectColumn { get; set; } = new BindableInt(10)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -147,7 +146,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Gap_Label), nameof(EzManiaModStrings.Gap_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.GAP_LABEL), nameof(EzCommonModStrings.GAP_DESCRIPTION))]
|
||||
public BindableInt Gap { get; set; } = new BindableInt(12)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -155,7 +154,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.DurationLimit_Label), nameof(EzManiaModStrings.DurationLimit_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.DURATION_LIMIT_LABEL), nameof(EzCommonModStrings.DURATION_LIMIT_DESCRIPTION))]
|
||||
public BindableDouble DurationLimit { get; set; } = new BindableDouble(5)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -163,7 +162,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 0.5,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LineSpacing_Label), nameof(EzManiaModStrings.LineSpacing_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.LINE_SPACING_LABEL), nameof(EzCommonModStrings.LINE_SPACING_DESCRIPTION))]
|
||||
public BindableInt LineSpacing { get; set; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -171,10 +170,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.InvertLineSpacing_Label), nameof(EzManiaModStrings.InvertLineSpacing_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.INVERT_LINE_SPACING_LABEL), nameof(EzCommonModStrings.INVERT_LINE_SPACING_DESCRIPTION))]
|
||||
public BindableBool InvertLineSpacing { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
public void ApplyToBeatmap(IBeatmap beatmap)
|
||||
@@ -206,4 +205,23 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.Breaks.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNDoubleDistributionStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_DOUBLE_DISTRIBUTION_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN转换器另一个版本", "LN Transformer another version.");
|
||||
public static readonly LocalisableString DIVIDE1_LABEL = new EzLocalizationManager.EzLocalisableString("分割1", "Divide 1");
|
||||
public static readonly LocalisableString DIVIDE1_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("使用1/?", "Use 1/?");
|
||||
public static readonly LocalisableString DIVIDE2_LABEL = new EzLocalizationManager.EzLocalisableString("分割2", "Divide 2");
|
||||
public static readonly LocalisableString DIVIDE2_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("使用1/?", "Use 1/?");
|
||||
public static readonly LocalisableString MU1_LABEL = new EzLocalizationManager.EzLocalisableString("μ1", "Mu 1");
|
||||
public static readonly LocalisableString MU1_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("分布中的μ(百分比)", "Mu in distribution (Percentage).");
|
||||
public static readonly LocalisableString MU2_LABEL = new EzLocalizationManager.EzLocalisableString("μ2", "Mu 2");
|
||||
public static readonly LocalisableString MU2_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("分布中的μ(百分比)", "Mu in distribution (Percentage).");
|
||||
public static readonly LocalisableString MU_RATIO_LABEL = new EzLocalizationManager.EzLocalisableString("μ1/μ2", "Mu 1 / Mu 2");
|
||||
public static readonly LocalisableString MU_RATIO_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("百分比", "Percentage");
|
||||
public static readonly LocalisableString SIGMA_INTEGER_LABEL = new EzLocalizationManager.EzLocalisableString("σ整数部分", "Sigma Integer Part");
|
||||
public static readonly LocalisableString SIGMA_INTEGER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("σ除数(不是σ)", "Sigma Divisor (not sigma).");
|
||||
public static readonly LocalisableString SIGMA_DECIMAL_LABEL = new EzLocalizationManager.EzLocalisableString("σ小数部分", "Sigma Decimal Part");
|
||||
public static readonly LocalisableString SIGMA_DECIMAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("σ除数(不是σ)", "Sigma Divisor (not sigma).");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
||||
@@ -24,7 +24,7 @@ using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModLNJudgementAdjust : Mod, IApplicableToDifficulty, IApplicableAfterBeatmapConversion, IApplicableToDrawableRuleset<ManiaHitObject>
|
||||
{
|
||||
@@ -32,7 +32,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "LA";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LNJudgementAdjust_Description;
|
||||
public override LocalisableString Description => LNJudgementAdjustStrings.LN_JUDGEMENT_ADJUST_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -44,10 +44,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public HitWindows HitWindows { get; set; } = new ManiaHitWindows();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.BodyJudgementSwitch_Label), nameof(EzManiaModStrings.BodyJudgementSwitch_Description))]
|
||||
[SettingSource(typeof(LNJudgementAdjustStrings), nameof(LNJudgementAdjustStrings.BODY_JUDGEMENT_SWITCH_LABEL), nameof(LNJudgementAdjustStrings.BODY_JUDGEMENT_SWITCH_DESCRIPTION))]
|
||||
public BindableBool BodyJudgementSwitch { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.TailJudgementSwitch_Label), nameof(EzManiaModStrings.TailJudgementSwitch_Description))]
|
||||
[SettingSource(typeof(LNJudgementAdjustStrings), nameof(LNJudgementAdjustStrings.TAIL_JUDGEMENT_SWITCH_LABEL), nameof(LNJudgementAdjustStrings.TAIL_JUDGEMENT_SWITCH_DESCRIPTION))]
|
||||
public BindableBool TailJudgementSwitch { get; } = new BindableBool();
|
||||
|
||||
public void ApplyToBeatmap(IBeatmap beatmap)
|
||||
@@ -349,4 +349,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNJudgementAdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_JUDGEMENT_ADJUST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整LN的判定", "Adjust the judgement of LN.");
|
||||
public static readonly LocalisableString BODY_JUDGEMENT_SWITCH_LABEL = new EzLocalizationManager.EzLocalisableString("主体判定开关", "Body Judgement Switch");
|
||||
public static readonly LocalisableString BODY_JUDGEMENT_SWITCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("开启/关闭主体判定", "Turn on/off body judgement.");
|
||||
public static readonly LocalisableString TAIL_JUDGEMENT_SWITCH_LABEL = new EzLocalizationManager.EzLocalisableString("尾部判定开关", "Tail Judgement Switch");
|
||||
public static readonly LocalisableString TAIL_JUDGEMENT_SWITCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("开启/关闭尾部判定", "Turn on/off tail judgement.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ using osu.Framework.Utils;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModLNLongShortAddition : ManiaModLN, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "LS";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LNLongShortAddition_Description;
|
||||
public override LocalisableString Description => LNLongShortAdditionStrings.LN_LONG_SHORT_ADDITION_DESCRIPTION;
|
||||
public override bool Ranked => false;
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
@@ -43,7 +43,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LongShortPercent_Label), nameof(EzManiaModStrings.LongShortPercent_Description), 0)]
|
||||
[SettingSource(typeof(LNLongShortAdditionStrings), nameof(LNLongShortAdditionStrings.LONG_SHORT_PERCENT_LABEL), nameof(LNLongShortAdditionStrings.LONG_SHORT_PERCENT_DESCRIPTION), 0)]
|
||||
public BindableNumber<int> LongShort { get; set; } = new BindableInt(40)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -150,4 +150,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.Breaks.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNLongShortAdditionStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_LONG_SHORT_ADDITION_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN转换器附加版本", "LN Transformer additional version.");
|
||||
public static readonly LocalisableString LONG_SHORT_PERCENT_LABEL = new EzLocalizationManager.EzLocalisableString("长/短百分比", "Long / Short %");
|
||||
public static readonly LocalisableString LONG_SHORT_PERCENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("形状", "The Shape");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ using osu.Framework.Localisation;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModLNSimplify : Mod, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -28,7 +28,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LNSimplify_Description;
|
||||
public override LocalisableString Description => LNSimplifyStrings.LN_SIMPLIFY_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.YinYang;
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LimitDivide_Label), nameof(EzManiaModStrings.LimitDivide_Description))]
|
||||
[SettingSource(typeof(LNSimplifyStrings), nameof(LNSimplifyStrings.LIMIT_DIVIDE_LABEL), nameof(LNSimplifyStrings.LIMIT_DIVIDE_DESCRIPTION))]
|
||||
public BindableInt LimitDivide { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -59,7 +59,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.EasierDivide_Label), nameof(EzManiaModStrings.EasierDivide_Description))]
|
||||
[SettingSource(typeof(LNSimplifyStrings), nameof(LNSimplifyStrings.EASIER_DIVIDE_LABEL), nameof(LNSimplifyStrings.EASIER_DIVIDE_DESCRIPTION))]
|
||||
public BindableInt EasierDivide { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -67,10 +67,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.LongestLN_Label), nameof(EzManiaModStrings.LongestLN_Description))]
|
||||
[SettingSource(typeof(LNSimplifyStrings), nameof(LNSimplifyStrings.LONGEST_LN_LABEL), nameof(LNSimplifyStrings.LONGEST_LN_DESCRIPTION))]
|
||||
public BindableBool Gap { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ShortestLN_Label), nameof(EzManiaModStrings.ShortestLN_Description))]
|
||||
[SettingSource(typeof(LNSimplifyStrings), nameof(LNSimplifyStrings.SHORTEST_LN_LABEL), nameof(LNSimplifyStrings.SHORTEST_LN_DESCRIPTION))]
|
||||
public BindableBool Len { get; set; } = new BindableBool(true);
|
||||
|
||||
//[SettingSource("Allowable ms", "Minimum ms.")]
|
||||
@@ -191,4 +191,17 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
//maniaBeatmap.Breaks.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNSimplifyStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_SIMPLIFY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("通过转换简化节奏", "Simplifies rhythms by converting.");
|
||||
public static readonly LocalisableString LIMIT_DIVIDE_LABEL = new EzLocalizationManager.EzLocalisableString("限制分割", "Limit Divide");
|
||||
public static readonly LocalisableString LIMIT_DIVIDE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择限制", "Select limit.");
|
||||
public static readonly LocalisableString EASIER_DIVIDE_LABEL = new EzLocalizationManager.EzLocalisableString("简化分割", "Easier Divide");
|
||||
public static readonly LocalisableString EASIER_DIVIDE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择复杂度", "Select complexity.");
|
||||
public static readonly LocalisableString LONGEST_LN_LABEL = new EzLocalizationManager.EzLocalisableString("最长LN", "Longest LN");
|
||||
public static readonly LocalisableString LONGEST_LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("最长LN", "Longest LN.");
|
||||
public static readonly LocalisableString SHORTEST_LN_LABEL = new EzLocalizationManager.EzLocalisableString("最短LN", "Shortest LN");
|
||||
public static readonly LocalisableString SHORTEST_LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("最短LN", "Shortest LN.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,15 +10,15 @@ using osu.Framework.Utils;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
// using osu.Framework.Logging;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModLNTransformer : ManiaModLN, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "LT";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.LNTransformer_Description;
|
||||
public override LocalisableString Description => LNTransformerStrings.LN_TRANSFORMER_DESCRIPTION;
|
||||
public override bool Ranked => false;
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
@@ -396,4 +396,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class LNTransformerStrings
|
||||
{
|
||||
public static readonly LocalisableString LN_TRANSFORMER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN转换", "LN Transformer");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
||||
@@ -21,7 +21,7 @@ using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
internal partial class ManiaModMalodyStyleLN : Mod, IApplicableToDifficulty, IApplicableAfterBeatmapConversion, IApplicableToDrawableRuleset<ManiaHitObject>
|
||||
{
|
||||
@@ -29,7 +29,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "NL";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.MalodyStyleLN_Description;
|
||||
public override LocalisableString Description => MalodyStyleLNStrings.MALODY_STYLE_LN_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -214,4 +214,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class MalodyStyleLNStrings
|
||||
{
|
||||
public static readonly LocalisableString MALODY_STYLE_LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("像Malody一样播放LN!", "Play LN like Malody!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,15 +6,15 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModNewJudgement : Mod, IApplicableToBeatmap
|
||||
{
|
||||
@@ -22,7 +22,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "NJ";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.NewJudgement_Description;
|
||||
public override LocalisableString Description => NewJudgementStrings.NEW_JUDGEMENT_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.YuLiangSSS_Mod;
|
||||
public override bool Ranked => false;
|
||||
@@ -117,4 +117,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
HitWindows.ResetRange();
|
||||
}
|
||||
}
|
||||
|
||||
public static class NewJudgementStrings
|
||||
{
|
||||
public static readonly LocalisableString NEW_JUDGEMENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("根据歌曲BPM设置新的判定", "New judgement set by BPM of the song.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,15 +12,12 @@ using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModNoteAdjust : Mod, IApplicableAfterBeatmapConversion, IHasSeed
|
||||
{
|
||||
@@ -28,7 +25,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "NA";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.NoteAdjust_Description;
|
||||
public override LocalisableString Description => NoteAdjustStrings.NOTE_ADJUST_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.YuLiangSSS_Mod;
|
||||
|
||||
@@ -65,7 +62,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoteAdjustStyle_Label), nameof(EzManiaModStrings.NoteAdjustStyle_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.NOTE_ADJUST_STYLE_LABEL), nameof(NoteAdjustStrings.NOTE_ADJUST_STYLE_DESCRIPTION))]
|
||||
public BindableInt Style { get; set; } = new BindableInt(1)
|
||||
{
|
||||
Precision = 1,
|
||||
@@ -73,7 +70,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 6
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoteAdjustProbability_Label), nameof(EzManiaModStrings.NoteAdjustProbability_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.NOTE_ADJUST_PROBABILITY_LABEL), nameof(NoteAdjustStrings.NOTE_ADJUST_PROBABILITY_DESCRIPTION))]
|
||||
public BindableDouble Probability { get; set; } = new BindableDouble(100)
|
||||
{
|
||||
Precision = 2.5,
|
||||
@@ -81,7 +78,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 100,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Extremum_Label), nameof(EzManiaModStrings.Extremum_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.EXTREMUM_LABEL), nameof(NoteAdjustStrings.EXTREMUM_DESCRIPTION))]
|
||||
public BindableInt Extremum { get; set; } = new BindableInt(10)
|
||||
{
|
||||
Precision = 1,
|
||||
@@ -89,7 +86,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 10
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.ComparisonStyle_Label), nameof(EzManiaModStrings.ComparisonStyle_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.COMPARISON_STYLE_LABEL), nameof(NoteAdjustStrings.COMPARISON_STYLE_DESCRIPTION))]
|
||||
public BindableInt ComparisonStyle { get; set; } = new BindableInt(1)
|
||||
{
|
||||
Precision = 1,
|
||||
@@ -97,7 +94,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 2
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NoteAdjustLine_Label), nameof(EzManiaModStrings.NoteAdjustLine_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.NOTE_ADJUST_LINE_LABEL), nameof(NoteAdjustStrings.NOTE_ADJUST_LINE_DESCRIPTION))]
|
||||
public BindableInt Line { get; set; } = new BindableInt(1)
|
||||
{
|
||||
Precision = 1,
|
||||
@@ -105,7 +102,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 10
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Step_Label), nameof(EzManiaModStrings.Step_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.STEP_LABEL), nameof(NoteAdjustStrings.STEP_DESCRIPTION))]
|
||||
public BindableInt Step { get; set; } = new BindableInt(-1)
|
||||
{
|
||||
Precision = 1,
|
||||
@@ -113,13 +110,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
MaxValue = 10
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.IgnoreComparison_Label), nameof(EzManiaModStrings.IgnoreComparison_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.IGNORE_COMPARISON_LABEL), nameof(NoteAdjustStrings.IGNORE_COMPARISON_DESCRIPTION))]
|
||||
public BindableBool IgnoreComparison { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.IgnoreInterval_Label), nameof(EzManiaModStrings.IgnoreInterval_Description))]
|
||||
[SettingSource(typeof(NoteAdjustStrings), nameof(NoteAdjustStrings.IGNORE_INTERVAL_LABEL), nameof(NoteAdjustStrings.IGNORE_INTERVAL_DESCRIPTION))]
|
||||
public BindableBool IgnoreInterval { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
// Column Number: 0 to n - 1
|
||||
@@ -734,4 +731,41 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static class NoteAdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString NOTE_ADJUST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("制作更多或更少的音符", "To make more or less note.");
|
||||
public static readonly LocalisableString NOTE_ADJUST_STYLE_LABEL = new EzLocalizationManager.EzLocalisableString("样式", "Style");
|
||||
|
||||
public static readonly LocalisableString NOTE_ADJUST_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"1: 适用于Jack模式。2&3: 适用于Stream模式。4&5: 适用于Speed模式(无Jack)。6: DIY(将使用↓↓↓所有选项)(1~5将仅使用↓种子选项)",
|
||||
"1: Applicable to Jack Pattern. 2&3: Applicable to Stream Pattern. 4&5: Applicable to Speed Pattern(No Jack). 6: DIY(Will use ↓↓↓ all options) (1~5 will only use ↓ seed option).");
|
||||
|
||||
public static readonly LocalisableString NOTE_ADJUST_PROBABILITY_LABEL = new EzLocalizationManager.EzLocalisableString("概率", "Probability");
|
||||
public static readonly LocalisableString NOTE_ADJUST_PROBABILITY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("增加音符的概率", "The Probability of increasing note.");
|
||||
public static readonly LocalisableString EXTREMUM_LABEL = new EzLocalizationManager.EzLocalisableString("极值", "Extremum");
|
||||
|
||||
public static readonly LocalisableString EXTREMUM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"取决于你在一行上保留多少音符(可用最大音符或最小音符)",
|
||||
"Depending on how many notes on one line you keep(Available maximum note or minimum note).");
|
||||
|
||||
public static readonly LocalisableString COMPARISON_STYLE_LABEL = new EzLocalizationManager.EzLocalisableString("比较样式", "Comparison Style");
|
||||
|
||||
public static readonly LocalisableString COMPARISON_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"1: 当此行的音符数量>=上一行和下一行时处理一行。2: 当此行的音符数量<=上一行和下一行时处理一行",
|
||||
"1: Dispose a line when this line's note quantity >= Last&Next line. 2: Dispose a line when this line's note quantity <= Last&Next line.");
|
||||
|
||||
public static readonly LocalisableString NOTE_ADJUST_LINE_LABEL = new EzLocalizationManager.EzLocalisableString("线", "Line");
|
||||
|
||||
public static readonly LocalisableString NOTE_ADJUST_LINE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"取决于这张图的难度(0推荐用于Jack,1推荐用于(Jump/Hand/Etc.)Stream,2推荐用于Speed)",
|
||||
"Depending on how heavy about this map(0 is recommended for Jack, 1 is recommended for (Jump/Hand/Etc.)Stream, 2 is recommended for Speed).");
|
||||
|
||||
public static readonly LocalisableString STEP_LABEL = new EzLocalizationManager.EzLocalisableString("步长", "Step");
|
||||
public static readonly LocalisableString STEP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("在一行上成功转换时跳过\"Step\"行", "Skip \"Step\" line when converting successfully on a line.");
|
||||
public static readonly LocalisableString IGNORE_COMPARISON_LABEL = new EzLocalizationManager.EzLocalisableString("忽略比较", "Ignore Comparison");
|
||||
public static readonly LocalisableString IGNORE_COMPARISON_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("忽略比较条件", "Ignore condition of Comparison.");
|
||||
public static readonly LocalisableString IGNORE_INTERVAL_LABEL = new EzLocalizationManager.EzLocalisableString("忽略间隔", "Ignore Interval");
|
||||
public static readonly LocalisableString IGNORE_INTERVAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("忽略音符间隔", "Ignore interval of note.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,17 +12,13 @@ using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModNtoM : Mod, IApplicableAfterBeatmapConversion, IHasSeed, IHasApplyOrder, IApplicableToBeatmapConverter
|
||||
{
|
||||
@@ -32,7 +28,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.NtoM_Description;
|
||||
public override LocalisableString Description => NtoMStrings.NTOM_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Moon;
|
||||
|
||||
@@ -52,7 +48,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Probability_Label), nameof(EzManiaModStrings.Probability_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.PROBABILITY_LABEL), nameof(EzCommonModStrings.PROBABILITY_DESCRIPTION))]
|
||||
public BindableNumber<int> Probability { get; set; } = new BindableInt(70)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -60,7 +56,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 5
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Key_Label), nameof(EzManiaModStrings.Key_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.KEY_LABEL), nameof(EzCommonModStrings.KEY_DESCRIPTION))]
|
||||
public BindableNumber<int> Key { get; set; } = new BindableInt(8)
|
||||
{
|
||||
MinValue = 2,
|
||||
@@ -68,10 +64,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>(114514);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -343,4 +339,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
maniaBeatmap.HitObjects = newObjects;
|
||||
}
|
||||
}
|
||||
|
||||
public static class NtoMStrings
|
||||
{
|
||||
public static readonly LocalisableString NTOM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("转换为更高的按键数模式", "Convert to upper Keys mode.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,16 +12,12 @@ using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModNtoMAnother : Mod, IApplicableToBeatmapConverter, IApplicableAfterBeatmapConversion, IHasSeed, IHasApplyOrder
|
||||
{
|
||||
@@ -37,7 +33,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.NtoMAnother_Description;
|
||||
public override LocalisableString Description => NtoMAnotherStrings.NTOM_ANOTHER_DESCRIPTION;
|
||||
|
||||
public override IconUsage? Icon => FontAwesome.Solid.CloudRain;
|
||||
|
||||
@@ -75,7 +71,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Key_Label), nameof(EzManiaModStrings.Key_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.KEY_LABEL), nameof(EzCommonModStrings.KEY_DESCRIPTION))]
|
||||
public BindableNumber<int> Key { get; set; } = new BindableInt(8)
|
||||
{
|
||||
MinValue = 2,
|
||||
@@ -83,7 +79,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.BlankColumn_Label), nameof(EzManiaModStrings.BlankColumn_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.BLANK_COLUMN_LABEL), nameof(NtoMAnotherStrings.BLANK_COLUMN_DESCRIPTION))]
|
||||
public BindableNumber<int> BlankColumn { get; set; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -91,7 +87,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.NtoMGap_Label), nameof(EzManiaModStrings.NtoMGap_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.NTOM_GAP_LABEL), nameof(NtoMAnotherStrings.NTOM_GAP_DESCRIPTION))]
|
||||
public BindableInt Gap { get; set; } = new BindableInt(10)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -99,10 +95,10 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Clean_Label), nameof(EzManiaModStrings.Clean_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.CLEAN_LABEL), nameof(NtoMAnotherStrings.CLEAN_DESCRIPTION))]
|
||||
public BindableBool Clean { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.CleanDivide_Label), nameof(EzManiaModStrings.CleanDivide_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.CLEAN_DIVIDE_LABEL), nameof(NtoMAnotherStrings.CLEAN_DIVIDE_DESCRIPTION))]
|
||||
public BindableInt CleanDivide { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -110,16 +106,16 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Adjust4Jack_Label), nameof(EzManiaModStrings.Adjust4Jack_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.ADJUST_4_JACK_LABEL), nameof(NtoMAnotherStrings.ADJUST_4_JACK_DESCRIPTION))]
|
||||
public BindableBool Adjust4Jack { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Adjust4Speed_Label), nameof(EzManiaModStrings.Adjust4Speed_Description))]
|
||||
[SettingSource(typeof(NtoMAnotherStrings), nameof(NtoMAnotherStrings.ADJUST_4_SPEED_LABEL), nameof(NtoMAnotherStrings.ADJUST_4_SPEED_DESCRIPTION))]
|
||||
public BindableBool Adjust4Speed { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(0)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -488,4 +484,40 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
return (newObjects, checkColumn);
|
||||
}
|
||||
}
|
||||
|
||||
public static class NtoMAnotherStrings
|
||||
{
|
||||
public static readonly LocalisableString NTOM_ANOTHER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("转Key,来自krrcream的工具(有一些bug,请使用Clean设置来清理)", "From krrcream's Tool (It has some bugs, please use Clean settings to clean it.)");
|
||||
public static readonly LocalisableString BLANK_COLUMN_LABEL = new EzLocalizationManager.EzLocalisableString("空白列", "Blank Column");
|
||||
|
||||
public static readonly LocalisableString BLANK_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"要添加的空白列数。(注意:如果按键数-圆形大小小于空白列数,则不会添加。)",
|
||||
"Number of blank columns to add. (Notice: If the number of Key - CircleSize is less than the number of blank columns, it won't be added.)");
|
||||
|
||||
public static readonly LocalisableString NTOM_GAP_LABEL = new EzLocalizationManager.EzLocalisableString("间隙", "Gap");
|
||||
|
||||
public static readonly LocalisableString NTOM_GAP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"在每个区域重新排列音符。(间隙越大,音符分布越广。)",
|
||||
"Rearrange the notes in every area. (If Gap is bigger, the notes will be more spread out.)");
|
||||
|
||||
public static readonly LocalisableString CLEAN_LABEL = new EzLocalizationManager.EzLocalisableString("清理", "Clean");
|
||||
public static readonly LocalisableString CLEAN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("尝试清理谱面中的一些音符。", "Try to clean some notes in the map.");
|
||||
public static readonly LocalisableString CLEAN_DIVIDE_LABEL = new EzLocalizationManager.EzLocalisableString("清理分割", "Clean Divide");
|
||||
|
||||
public static readonly LocalisableString CLEAN_DIVIDE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"选择清理的分割(0表示不分割清理,4推荐用于流,8推荐用于Jack)。(如果清理为false,此设置不会被使用。)",
|
||||
"Choose the divide(0 For no Divide Clean, 4 is Recommended for Stream, 8 is Recommended for Jack) of cleaning. (If Clean is false, this setting won't be used.)");
|
||||
|
||||
public static readonly LocalisableString ADJUST_4_JACK_LABEL = new EzLocalizationManager.EzLocalisableString("1/4 Jack", "1/4 Jack");
|
||||
|
||||
public static readonly LocalisableString ADJUST_4_JACK_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"(如100+ BPM 1/4 Jack)清理分割 * 1/2,用于1/4 Jack,避免清理1/4 Jack。",
|
||||
"(Like 100+ BPM 1/4 Jack)Clean Divide * 1/2, for 1/4 Jack, avoiding cleaning 1/4 Jack.");
|
||||
|
||||
public static readonly LocalisableString ADJUST_4_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("1/4 Speed", "1/4 Speed");
|
||||
|
||||
public static readonly LocalisableString ADJUST_4_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"(如300+ BPM 1/4 Speed)清理分割 * 2,用于1/4 Speed,避免额外的1/2 Jack。",
|
||||
"(Like 300+ BPM 1/4 Speed)Clean Divide * 2, for 1/4 Speed, avoiding additional 1/2 Jack.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,15 +6,12 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ManiaModO2Health : ModFailCondition, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -35,7 +32,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "OH";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.O2Health_Description;
|
||||
public override LocalisableString Description => O2HealthStrings.O2_HEALTH_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1.0;
|
||||
|
||||
@@ -59,7 +56,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.Difficulty_Label), nameof(EzManiaModStrings.Difficulty_Description))]
|
||||
[SettingSource(typeof(O2HealthStrings), nameof(O2HealthStrings.DIFFICULTY_LABEL), nameof(O2HealthStrings.DIFFICULTY_DESCRIPTION))]
|
||||
public BindableInt Difficulty { get; set; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -106,4 +103,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
return HP.Value <= 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static class O2HealthStrings
|
||||
{
|
||||
public static readonly LocalisableString O2_HEALTH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("为O2JAM玩家设计的生命值系统", "Health system for O2JAM players.");
|
||||
public static readonly LocalisableString DIFFICULTY_LABEL = new EzLocalizationManager.EzLocalisableString("难度", "Difficulty");
|
||||
public static readonly LocalisableString DIFFICULTY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("1: 简单 2: 普通 3: 困难", "1: Easy 2: Normal 3: Hard");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using osu.Framework.Graphics;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
@@ -22,7 +23,7 @@ using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.UI;
|
||||
using osu.Game.Screens.Play;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModO2Judgement : Mod, IApplicableToDifficulty, IApplicableAfterBeatmapConversion, IApplicableToDrawableRuleset<ManiaHitObject>, IApplicableToHUD
|
||||
{
|
||||
@@ -32,7 +33,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "OJ";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.O2Judgement_Description;
|
||||
public override LocalisableString Description => O2JudgementStrings.O2_JUDGEMENT_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1.0;
|
||||
|
||||
@@ -50,7 +51,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.PillSwitch_Label), nameof(EzManiaModStrings.PillSwitch_Description))]
|
||||
[SettingSource(typeof(O2JudgementStrings), nameof(O2JudgementStrings.PILL_SWITCH_LABEL), nameof(O2JudgementStrings.PILL_SWITCH_DESCRIPTION))]
|
||||
public BindableBool PillMode { get; set; } = new BindableBool(true);
|
||||
|
||||
public void ApplyToDrawableRuleset(DrawableRuleset<ManiaHitObject> drawableRuleset)
|
||||
@@ -111,4 +112,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
overlay.Add(pillUI);
|
||||
}
|
||||
}
|
||||
|
||||
public static class O2JudgementStrings
|
||||
{
|
||||
public static readonly LocalisableString O2_JUDGEMENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("为O2JAM玩家设计的判定系统", "Judgement System for O2JAM players.");
|
||||
public static readonly LocalisableString PILL_SWITCH_LABEL = new EzLocalizationManager.EzLocalisableString("药丸开关", "Pill Switch");
|
||||
public static readonly LocalisableString PILL_SWITCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("使用O2JAM药丸功能", "Use O2JAM pill function.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
@@ -20,7 +21,7 @@ using osu.Game.Scoring;
|
||||
using osu.Game.Screens.Play;
|
||||
using osuTK;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModPlayfieldTransformation : Mod, IApplicableToPlayer, IUpdatableByPlayfield, IApplicableToScoreProcessor, IApplicableToDrawableRuleset<ManiaHitObject>
|
||||
{
|
||||
@@ -28,7 +29,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "PS";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.PlayfieldTransformation_Description;
|
||||
public override LocalisableString Description => PlayfieldTransformationStrings.PLAYFIELD_TRANSFORMATION_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1.0;
|
||||
|
||||
@@ -37,7 +38,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
public override bool ValidForMultiplayer => true;
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.MinimumScale_Label), nameof(EzManiaModStrings.MinimumScale_Description))]
|
||||
[SettingSource(typeof(PlayfieldTransformationStrings), nameof(PlayfieldTransformationStrings.MINIMUM_SCALE_LABEL), nameof(PlayfieldTransformationStrings.MINIMUM_SCALE_DESCRIPTION))]
|
||||
public BindableFloat MinScale { get; } = new BindableFloat(0.3f)
|
||||
{
|
||||
MinValue = 0.3f,
|
||||
@@ -118,4 +119,11 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static class PlayfieldTransformationStrings
|
||||
{
|
||||
public static readonly LocalisableString PLAYFIELD_TRANSFORMATION_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("根据连击数调整游戏区域缩放", "Adjusts playfield scale based on combo.");
|
||||
public static readonly LocalisableString MINIMUM_SCALE_LABEL = new EzLocalizationManager.EzLocalisableString("最小缩放", "Minimum scale");
|
||||
public static readonly LocalisableString MINIMUM_SCALE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("游戏区域的最小缩放", "The minimum scale of the playfield.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,9 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
||||
using osu.Game.Rulesets.Mania.UI;
|
||||
@@ -21,7 +19,7 @@ using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModReleaseAdjust : Mod, IApplicableAfterBeatmapConversion, IApplicableToDrawableRuleset<ManiaHitObject>
|
||||
{
|
||||
@@ -29,7 +27,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "RA";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.ReleaseAdjust_Description;
|
||||
public override LocalisableString Description => ReleaseAdjustStrings.RELEASE_ADJUST_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -137,4 +135,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class ReleaseAdjustStrings
|
||||
{
|
||||
public static readonly LocalisableString RELEASE_ADJUST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("不再需要计时长按音符的结尾", "No more timing the end of hold notes.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
@@ -23,7 +24,7 @@ using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public partial class ManiaModRemedy : Mod, IApplicableToDifficulty, IApplicableAfterBeatmapConversion, IApplicableToDrawableRuleset<ManiaHitObject>
|
||||
{
|
||||
@@ -31,7 +32,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "RY";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.Remedy_Description;
|
||||
public override LocalisableString Description => RemedyStrings.REMEDY_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -401,4 +402,9 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class RemedyStrings
|
||||
{
|
||||
public static readonly LocalisableString REMEDY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("修复较低的判定", "Remedy lower judgement.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public static class ManiaModYuModHelper
|
||||
{
|
||||
|
||||
@@ -9,16 +9,13 @@ using osu.Framework.Localisation;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Mods;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class ModStarRatingRebirth : Mod, IApplicableAfterBeatmapConversion
|
||||
{
|
||||
@@ -26,7 +23,7 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
|
||||
public override string Acronym => "SR";
|
||||
|
||||
public override LocalisableString Description => EzManiaModStrings.StarRatingRebirth_Description;
|
||||
public override LocalisableString Description => StarRatingRebirthStrings.STAR_RATING_REBIRTH_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -50,13 +47,13 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
}
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.UseOriginalOD_Label), nameof(EzManiaModStrings.UseOriginalOD_Description))]
|
||||
[SettingSource(typeof(StarRatingRebirthStrings), nameof(StarRatingRebirthStrings.USE_ORIGINAL_OD_LABEL), nameof(StarRatingRebirthStrings.USE_ORIGINAL_OD_DESCRIPTION))]
|
||||
public BindableBool Original { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.UseCustomOD_Label), nameof(EzManiaModStrings.UseCustomOD_Description))]
|
||||
[SettingSource(typeof(StarRatingRebirthStrings), nameof(StarRatingRebirthStrings.USE_CUSTOM_OD_LABEL), nameof(StarRatingRebirthStrings.USE_CUSTOM_OD_DESCRIPTION))]
|
||||
public BindableBool Custom { get; set; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzManiaModStrings), nameof(EzManiaModStrings.OD_Label), nameof(EzManiaModStrings.OD_Description))]
|
||||
[SettingSource(typeof(StarRatingRebirthStrings), nameof(StarRatingRebirthStrings.OD_LABEL), nameof(StarRatingRebirthStrings.OD_DESCRIPTION))]
|
||||
public BindableDouble OD { get; set; } = new BindableDouble(0)
|
||||
{
|
||||
Precision = 0.1,
|
||||
@@ -1668,4 +1665,15 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
return (newObjects, checkColumn);
|
||||
}
|
||||
}
|
||||
|
||||
public static class StarRatingRebirthStrings
|
||||
{
|
||||
public static readonly LocalisableString STAR_RATING_REBIRTH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("sunnyxxy的星级算法,替换官方星级标记", "New algorithm by sunnyxxy.");
|
||||
public static readonly LocalisableString USE_ORIGINAL_OD_LABEL = new EzLocalizationManager.EzLocalisableString("使用原始OD", "Use original OD");
|
||||
public static readonly LocalisableString USE_ORIGINAL_OD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("高优先级", "High Priority");
|
||||
public static readonly LocalisableString USE_CUSTOM_OD_LABEL = new EzLocalizationManager.EzLocalisableString("使用自定义OD", "Use custom OD");
|
||||
public static readonly LocalisableString USE_CUSTOM_OD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("低优先级", "Low Priority");
|
||||
public static readonly LocalisableString OD_LABEL = new EzLocalizationManager.EzLocalisableString("OD", "OD");
|
||||
public static readonly LocalisableString OD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择要重新计算的OD", "Choose the OD you want to recalculate.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using static osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods.ModStarRatingRebirth;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
namespace osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
@@ -107,12 +106,12 @@ namespace osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods
|
||||
return 9 + (sr - 9) * (1 / 1.2);
|
||||
}
|
||||
|
||||
public static EasyObject FindNextNoteInColumn(EasyObject note, int[] times, EasyObject[][] noteSeqByColumn)
|
||||
public static ModStarRatingRebirth.EasyObject FindNextNoteInColumn(ModStarRatingRebirth.EasyObject note, int[] times, ModStarRatingRebirth.EasyObject[][] noteSeqByColumn)
|
||||
{
|
||||
int idx = Array.BinarySearch(times, note.Head);
|
||||
if (idx < 0) idx = ~idx;
|
||||
|
||||
return idx + 1 < noteSeqByColumn[note.Key].Length ? noteSeqByColumn[note.Key][idx + 1] : new EasyObject(0, int.MaxValue, int.MaxValue);
|
||||
return idx + 1 < noteSeqByColumn[note.Key].Length ? noteSeqByColumn[note.Key][idx + 1] : new ModStarRatingRebirth.EasyObject(0, int.MaxValue, int.MaxValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ using osu.Game.Rulesets.Mania.Difficulty;
|
||||
using osu.Game.Rulesets.Mania.Edit;
|
||||
using osu.Game.Rulesets.Mania.Edit.Setup;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Analysis;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.Mods;
|
||||
using osu.Game.Rulesets.Mania.Mods.LAsMods;
|
||||
using osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Mania.Replays;
|
||||
using osu.Game.Rulesets.Mania.Scoring;
|
||||
|
||||
@@ -10,11 +10,11 @@ using osu.Framework.Graphics;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.Graphics.UserInterfaceV2;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
using osu.Game.Localisation;
|
||||
using osu.Game.Overlays.Settings;
|
||||
using osu.Game.Rulesets.Mania.Configuration;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Localization;
|
||||
using osu.Game.Rulesets.Mania.UI;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania
|
||||
@@ -44,8 +44,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
{
|
||||
new SettingsItemV2(new FormEnumDropdown<EzEnumHitMode>
|
||||
{
|
||||
Caption = EzLocalizationManager.HitMode,
|
||||
HintText = EzLocalizationManager.HitModeTooltip,
|
||||
Caption = EzManiaSettingsStrings.HIT_MODE,
|
||||
HintText = EzManiaSettingsStrings.HIT_MODE_TOOLTIP,
|
||||
Current = ezConfig.GetBindable<EzEnumHitMode>(Ez2Setting.HitMode),
|
||||
})
|
||||
{
|
||||
@@ -53,8 +53,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
},
|
||||
new SettingsItemV2(new FormEnumDropdown<EzEnumHealthMode>
|
||||
{
|
||||
Caption = EzLocalizationManager.HealthMode,
|
||||
HintText = EzLocalizationManager.HealthModeTooltip,
|
||||
Caption = EzManiaSettingsStrings.HEALTH_MODE,
|
||||
HintText = EzManiaSettingsStrings.HEALTH_MODE_TOOLTIP,
|
||||
Current = ezConfig.GetBindable<EzEnumHealthMode>(Ez2Setting.CustomHealthMode),
|
||||
})
|
||||
{
|
||||
@@ -62,8 +62,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
},
|
||||
new SettingsItemV2(new FormCheckBox
|
||||
{
|
||||
Caption = EzLocalizationManager.PoorHitResult,
|
||||
HintText = EzLocalizationManager.PoorHitResultTooltip,
|
||||
Caption = EzManiaSettingsStrings.POOR_HIT_RESULT,
|
||||
HintText = EzManiaSettingsStrings.POOR_HIT_RESULT_TOOLTIP,
|
||||
Current = ezConfig.GetBindable<bool>(Ez2Setting.CustomPoorHitResultBool),
|
||||
})
|
||||
{
|
||||
@@ -71,8 +71,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
},
|
||||
new SettingsItemV2(new FormCheckBox
|
||||
{
|
||||
Caption = EzLocalizationManager.ManiaBarLinesBool,
|
||||
HintText = EzLocalizationManager.ManiaBarLinesBoolTooltip,
|
||||
Caption = EzManiaSettingsStrings.MANIA_BAR_LINES_BOOL,
|
||||
HintText = EzManiaSettingsStrings.MANIA_BAR_LINES_BOOL_TOOLTIP,
|
||||
Current = ezConfig.GetBindable<bool>(Ez2Setting.ManiaBarLinesBool),
|
||||
})
|
||||
{
|
||||
@@ -87,7 +87,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
|
||||
new SettingsItemV2(new FormEnumDropdown<EzManiaScrollingStyle>
|
||||
{
|
||||
Caption = "Scrolling style",
|
||||
Caption = EzManiaSettingsStrings.SCROLLING_STYLE,
|
||||
HintText = EzManiaSettingsStrings.SCROLLING_STYLE_TOOLTIP,
|
||||
Current = config.GetBindable<EzManiaScrollingStyle>(ManiaRulesetSetting.ScrollStyle)
|
||||
})
|
||||
{
|
||||
@@ -109,7 +110,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
|
||||
new SettingsItemV2(new FormSliderBar<double>
|
||||
{
|
||||
Caption = "Scroll Base MS (when 200 Speed)",
|
||||
Caption = EzManiaSettingsStrings.SCROLL_BASE_SPEED,
|
||||
HintText = EzManiaSettingsStrings.SCROLL_BASE_SPEED_TOOLTIP,
|
||||
Current = BaseSpeedBindable,
|
||||
KeyboardStep = 1,
|
||||
LabelFormat = v =>
|
||||
@@ -124,7 +126,8 @@ namespace osu.Game.Rulesets.Mania
|
||||
},
|
||||
new SettingsItemV2(new FormSliderBar<double>
|
||||
{
|
||||
Caption = "MS / Speed",
|
||||
Caption = EzManiaSettingsStrings.SCROLL_TIME_PER_SPEED,
|
||||
HintText = EzManiaSettingsStrings.SCROLL_TIME_PER_SPEED_TOOLTIP,
|
||||
Current = TimePerSpeedBindable,
|
||||
KeyboardStep = 1,
|
||||
LabelFormat = v =>
|
||||
|
||||
@@ -8,7 +8,7 @@ using osu.Game.Beatmaps;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania.Helper;
|
||||
using osu.Game.Rulesets.Mania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Mods.YuLiangSSSMods;
|
||||
using osu.Game.Rulesets.Mania.Objects;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
@@ -14,6 +14,7 @@ using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.HUD;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
||||
@@ -17,6 +17,7 @@ using osu.Game.Beatmaps;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Overlays.SkinEditor;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.HUD;
|
||||
using osu.Game.Rulesets.Mania.UI;
|
||||
using osu.Game.Rulesets.UI.Scrolling;
|
||||
using osu.Game.Screens.Play;
|
||||
@@ -25,6 +26,7 @@ using osuTK.Graphics;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Skinning.Ez2
|
||||
{
|
||||
// 警告:此文件没写完,调查创建可能导致程序崩溃。
|
||||
public partial class Ez2KeyAreaPlus : CompositeDrawable, IKeyBindingHandler<ManiaAction>
|
||||
{
|
||||
private readonly IBindable<ScrollingDirection> directionLocal = new Bindable<ScrollingDirection>();
|
||||
|
||||
@@ -10,6 +10,7 @@ using osu.Game.Configuration;
|
||||
using osu.Game.LAsEzExtensions.HUD;
|
||||
using osu.Game.Localisation.SkinComponents;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Helper;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Screens.Play.HUD;
|
||||
using osu.Game.Skinning.Components;
|
||||
|
||||
@@ -9,6 +9,7 @@ using osu.Game.LAsEzExtensions.HUD;
|
||||
using osu.Game.Localisation.SkinComponents;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.Helper;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Screens.Play.HUD.HitErrorMeters;
|
||||
using osu.Game.Skinning.Components;
|
||||
|
||||
@@ -8,6 +8,7 @@ using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
using osu.Game.Rulesets.Mania.LAsEZMania;
|
||||
using osu.Game.Rulesets.Mania.LAsEzMania.HUD;
|
||||
using osu.Game.Screens;
|
||||
using osu.Game.Screens.Play.HUD;
|
||||
using osu.Game.Skinning;
|
||||
|
||||
@@ -10,8 +10,6 @@ using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Colour;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Framework.Logging;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Graphics;
|
||||
@@ -44,10 +42,10 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
[Resolved]
|
||||
private IBindable<WorkingBeatmap> beatmap { get; set; } = null!;
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.ShowJudgement), nameof(FastSlowDisplayStrings.ShowStyleDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SHOW_JUDGEMENT), nameof(FastSlowDisplayStrings.SHOW_STYLE_DESCRIPTION))]
|
||||
public Bindable<ManiaHitResult> Judgement { get; } = new Bindable<ManiaHitResult>(ManiaHitResult.Perfect);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.Gap), nameof(FastSlowDisplayStrings.GapDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.GAP), nameof(FastSlowDisplayStrings.GAP_DESCRIPTION))]
|
||||
public BindableNumber<float> Gap { get; } = new BindableNumber<float>(50)
|
||||
{
|
||||
MinValue = -200,
|
||||
@@ -55,7 +53,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
Precision = 0.1f,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FadeDuration), nameof(FastSlowDisplayStrings.FadeDurationDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FADE_DURATION), nameof(FastSlowDisplayStrings.FADE_DURATION_DESCRIPTION))]
|
||||
public BindableNumber<double> FadeDuration { get; } = new BindableNumber<double>(430)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -66,7 +64,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
[SettingSource(typeof(SkinnableComponentStrings), nameof(SkinnableComponentStrings.Font))]
|
||||
public Bindable<Typeface> Font { get; } = new Bindable<Typeface>(Typeface.Torus);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FontSize), nameof(FastSlowDisplayStrings.FontSizeDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FONT_SIZE), nameof(FastSlowDisplayStrings.FONT_SIZE_DESCRIPTION))]
|
||||
public BindableNumber<float> FontSize { get; } = new BindableNumber<float>(DEFAULT_FONT_SIZE)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -74,34 +72,34 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
Precision = 0.1f,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FastText), nameof(FastSlowDisplayStrings.TextDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FAST_TEXT), nameof(FastSlowDisplayStrings.TEXT_DESCRIPTION))]
|
||||
public Bindable<string> FastText { get; } = new Bindable<string>("Fast");
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SlowText), nameof(FastSlowDisplayStrings.TextDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SLOW_TEXT), nameof(FastSlowDisplayStrings.TEXT_DESCRIPTION))]
|
||||
public Bindable<string> SlowText { get; } = new Bindable<string>("Slow");
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FastColourStyle), nameof(FastSlowDisplayStrings.FastColourStyleDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FAST_COLOUR_STYLE), nameof(FastSlowDisplayStrings.FAST_COLOUR_STYLE_DESCRIPTION))]
|
||||
public Bindable<ColourStyle> FastColourStyle { get; } = new Bindable<ColourStyle>();
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FastColour), nameof(FastSlowDisplayStrings.TextColourDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FAST_COLOUR), nameof(FastSlowDisplayStrings.TEXT_COLOUR_DESCRIPTION))]
|
||||
public BindableColour4 FastColour { get; } = new BindableColour4(Colour4.FromHex("#97A5FF"));
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FastColour), nameof(FastSlowDisplayStrings.TextColourDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FAST_COLOUR), nameof(FastSlowDisplayStrings.TEXT_COLOUR_DESCRIPTION))]
|
||||
public BindableColour4 FastColourGradient { get; } = new BindableColour4(Colour4.LightPink);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SlowColourStyle), nameof(FastSlowDisplayStrings.SlowColourStyleDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SLOW_COLOUR_STYLE), nameof(FastSlowDisplayStrings.SLOW_COLOUR_STYLE_DESCRIPTION))]
|
||||
public Bindable<ColourStyle> SlowColourStyle { get; } = new Bindable<ColourStyle>();
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SlowColour), nameof(FastSlowDisplayStrings.TextColourDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SLOW_COLOUR), nameof(FastSlowDisplayStrings.TEXT_COLOUR_DESCRIPTION))]
|
||||
public BindableColour4 SlowColour { get; } = new BindableColour4(Colour4.FromHex("#D1FF74"));
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SlowColour), nameof(FastSlowDisplayStrings.TextColourDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SLOW_COLOUR), nameof(FastSlowDisplayStrings.TEXT_COLOUR_DESCRIPTION))]
|
||||
public BindableColour4 SlowColourGradient { get; } = new BindableColour4(Colour4.LightCyan);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.DisplayStyle), nameof(FastSlowDisplayStrings.DisplayStyleDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.DISPLAY_STYLE), nameof(FastSlowDisplayStrings.DISPLAY_STYLE_DESCRIPTION))]
|
||||
public BindableBool DisplayStyle { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LowerColumn), nameof(FastSlowDisplayStrings.LowerColumnDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LOWER_COLUMN), nameof(FastSlowDisplayStrings.LOWER_COLUMN_DESCRIPTION))]
|
||||
public BindableNumber<int> LowerColumnBound { get; } = new BindableNumber<int>(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -109,7 +107,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.UpperColumn), nameof(FastSlowDisplayStrings.UpperColumnDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.UPPER_COLUMN), nameof(FastSlowDisplayStrings.UPPER_COLUMN_DESCRIPTION))]
|
||||
public BindableNumber<int> UpperColumnBound { get; } = new BindableNumber<int>(18)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -117,10 +115,10 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
Precision = 1,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.OnlyDisplayOne), nameof(FastSlowDisplayStrings.OnlyDisplayOneDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.ONLY_DISPLAY_ONE), nameof(FastSlowDisplayStrings.ONLY_DISPLAY_ONE_DESCRIPTION))]
|
||||
public BindableBool OnlyDisplayOne { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SelectColumn), nameof(FastSlowDisplayStrings.SelectColumnDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SELECT_COLUMN), nameof(FastSlowDisplayStrings.SELECT_COLUMN_DESCRIPTION))]
|
||||
public Bindable<Column> SelectColumn { get; } = new Bindable<Column>();
|
||||
|
||||
private Container textContainer = null!;
|
||||
@@ -629,43 +627,16 @@ namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
return false;
|
||||
}
|
||||
|
||||
public enum Column
|
||||
{
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.None))]
|
||||
None,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LeftHalf))]
|
||||
LeftHalf,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.RightHalf))]
|
||||
RightHalf,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.Middle))]
|
||||
Middle
|
||||
}
|
||||
|
||||
public enum ColourStyle
|
||||
{
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SingleColour))]
|
||||
SingleColour,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.HorizontalGradient))]
|
||||
HorizontalGradient,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.VerticalGradient))]
|
||||
VerticalGradient
|
||||
}
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LNSwitch), nameof(FastSlowDisplayStrings.LNSwitchDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LN_SWITCH), nameof(FastSlowDisplayStrings.LN_SWITCH_DESCRIPTION))]
|
||||
public BindableBool LNSwitch { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FastTextLN), nameof(FastSlowDisplayStrings.TextDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.FAST_TEXT_LN), nameof(FastSlowDisplayStrings.TEXT_DESCRIPTION))]
|
||||
public Bindable<string> FastTextLN { get; } = new Bindable<string>("Fast");
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SlowTextLN), nameof(FastSlowDisplayStrings.TextDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SLOW_TEXT_LN), nameof(FastSlowDisplayStrings.TEXT_DESCRIPTION))]
|
||||
public Bindable<string> SlowTextLN { get; } = new Bindable<string>("Slow");
|
||||
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.Test), nameof(FastSlowDisplayStrings.TestDescription))]
|
||||
[SettingSource(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.TEST), nameof(FastSlowDisplayStrings.TEST_DESCRIPTION))]
|
||||
public BindableBool Test { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(SkinnableComponentStrings), nameof(SkinnableComponentStrings.TextElementText))]
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Localization;
|
||||
|
||||
namespace osu.Game.Rulesets.Mania.Skinning.Ez2HUD
|
||||
{
|
||||
public partial class YuComFastSlowDisplay
|
||||
{
|
||||
public enum Column
|
||||
{
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.NONE))]
|
||||
None,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.LEFT_HALF))]
|
||||
LeftHalf,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.RIGHT_HALF))]
|
||||
RightHalf,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.MIDDLE))]
|
||||
Middle
|
||||
}
|
||||
|
||||
public enum ColourStyle
|
||||
{
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.SINGLE_COLOUR))]
|
||||
SingleColour,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.HORIZONTAL_GRADIENT))]
|
||||
HorizontalGradient,
|
||||
|
||||
[LocalisableDescription(typeof(FastSlowDisplayStrings), nameof(FastSlowDisplayStrings.VERTICAL_GRADIENT))]
|
||||
VerticalGradient
|
||||
}
|
||||
|
||||
public static class FastSlowDisplayStrings
|
||||
{
|
||||
public static readonly LocalisableString SHOW_JUDGEMENT = new EzLocalizationManager.EzLocalisableString("判定", "Judgement");
|
||||
public static readonly LocalisableString SHOW_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("何时显示快/慢", "When to show fast/slow.");
|
||||
|
||||
public static readonly LocalisableString GAP = new EzLocalizationManager.EzLocalisableString("间隙", "Gap");
|
||||
public static readonly LocalisableString GAP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("快和慢之间的间隙", "The gap between fast and slow.");
|
||||
|
||||
public static readonly LocalisableString FADE_DURATION = new EzLocalizationManager.EzLocalisableString("淡出持续时间", "Fade Duration");
|
||||
public static readonly LocalisableString FADE_DURATION_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("淡出效果的持续时间", "The duration of the fade out effect.");
|
||||
|
||||
public static readonly LocalisableString FONT_SIZE = new EzLocalizationManager.EzLocalisableString("字体大小", "Font Size");
|
||||
public static readonly LocalisableString FONT_SIZE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("文本的大小", "The size of the text.");
|
||||
|
||||
public static readonly LocalisableString FAST_TEXT = new EzLocalizationManager.EzLocalisableString("快文本", "Fast Text");
|
||||
public static readonly LocalisableString SLOW_TEXT = new EzLocalizationManager.EzLocalisableString("慢文本", "Slow Text");
|
||||
public static readonly LocalisableString TEXT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("要显示的文本", "The text to be displayed.");
|
||||
|
||||
public static readonly LocalisableString FAST_COLOUR_STYLE = new EzLocalizationManager.EzLocalisableString("快颜色风格", "Fast Colour Style");
|
||||
public static readonly LocalisableString FAST_COLOUR_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("快颜色的风格", "The style of the fast colour.");
|
||||
|
||||
public static readonly LocalisableString FAST_COLOUR = new EzLocalizationManager.EzLocalisableString("快颜色", "Fast Colour");
|
||||
public static readonly LocalisableString TEXT_COLOUR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("文本的颜色", "The colour of the text.");
|
||||
|
||||
public static readonly LocalisableString SLOW_COLOUR_STYLE = new EzLocalizationManager.EzLocalisableString("慢颜色风格", "Slow Colour Style");
|
||||
public static readonly LocalisableString SLOW_COLOUR_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("慢颜色的风格", "The style of the slow colour.");
|
||||
|
||||
public static readonly LocalisableString SLOW_COLOUR = new EzLocalizationManager.EzLocalisableString("慢颜色", "Slow Colour");
|
||||
|
||||
public static readonly LocalisableString DISPLAY_STYLE = new EzLocalizationManager.EzLocalisableString("水平/垂直", "Horizontal / Vertical");
|
||||
public static readonly LocalisableString DISPLAY_STYLE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("水平或垂直显示文本", "Display the text horizontally or vertically.");
|
||||
|
||||
public static readonly LocalisableString LOWER_COLUMN = new EzLocalizationManager.EzLocalisableString("列下界", "Lower Column Bound");
|
||||
public static readonly LocalisableString LOWER_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("显示文本的列下界", "The lower bound of the column to display the text.");
|
||||
|
||||
public static readonly LocalisableString UPPER_COLUMN = new EzLocalizationManager.EzLocalisableString("列上界", "Upper Column Bound");
|
||||
public static readonly LocalisableString UPPER_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("显示文本的列上界", "The upper bound of the column to display the text.");
|
||||
|
||||
public static readonly LocalisableString ONLY_DISPLAY_ONE = new EzLocalizationManager.EzLocalisableString("仅显示一个", "Only Display One");
|
||||
public static readonly LocalisableString ONLY_DISPLAY_ONE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("一次只显示一个文本", "Display only one text at a time.");
|
||||
|
||||
public static readonly LocalisableString SELECT_COLUMN = new EzLocalizationManager.EzLocalisableString("选择列", "Select Column");
|
||||
public static readonly LocalisableString SELECT_COLUMN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择要显示文本的列", "Select the column to display the text.");
|
||||
|
||||
public static readonly LocalisableString NONE = new EzLocalizationManager.EzLocalisableString("无", "None");
|
||||
public static readonly LocalisableString LEFT_HALF = new EzLocalizationManager.EzLocalisableString("左半", "Left Half");
|
||||
public static readonly LocalisableString RIGHT_HALF = new EzLocalizationManager.EzLocalisableString("右半", "Right Half");
|
||||
public static readonly LocalisableString MIDDLE = new EzLocalizationManager.EzLocalisableString("中间", "Middle");
|
||||
|
||||
public static readonly LocalisableString SINGLE_COLOUR = new EzLocalizationManager.EzLocalisableString("单色", "Single Colour");
|
||||
public static readonly LocalisableString HORIZONTAL_GRADIENT = new EzLocalizationManager.EzLocalisableString("水平渐变", "Horizontal Gradient");
|
||||
public static readonly LocalisableString VERTICAL_GRADIENT = new EzLocalizationManager.EzLocalisableString("垂直渐变", "Vertical Gradient");
|
||||
|
||||
public static readonly LocalisableString LN_SWITCH = new EzLocalizationManager.EzLocalisableString("长条切换", "LN Switch");
|
||||
public static readonly LocalisableString LN_SWITCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("单独显示长条尾部", "Display LN tail individually.");
|
||||
|
||||
public static readonly LocalisableString FAST_TEXT_LN = new EzLocalizationManager.EzLocalisableString("快文本长条", "Fast Text LN");
|
||||
public static readonly LocalisableString SLOW_TEXT_LN = new EzLocalizationManager.EzLocalisableString("慢文本长条", "Slow Text LN");
|
||||
|
||||
public static readonly LocalisableString TEST = new EzLocalizationManager.EzLocalisableString("测试", "Test");
|
||||
public static readonly LocalisableString TEST_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("预览快/慢的显示", "Preview the display of fast/slow.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,9 +23,9 @@ namespace osu.Game.LAsEzExtensions.Configuration
|
||||
{
|
||||
new SettingsItemV2(new FormCheckBox
|
||||
{
|
||||
Caption = EzLocalizationManager.InputAudioLatencyTracker,
|
||||
Caption = EzSettingsStrings.INPUT_AUDIO_LATENCY_TRACKER,
|
||||
Current = ezConfig.GetBindable<bool>(Ez2Setting.InputAudioLatencyTracker),
|
||||
HintText = EzLocalizationManager.InputAudioLatencyTrackerTooltip,
|
||||
HintText = EzSettingsStrings.INPUT_AUDIO_LATENCY_TRACKER_TOOLTIP,
|
||||
})
|
||||
{
|
||||
Keywords = new[] { "latency", "audio", "input" }
|
||||
|
||||
@@ -10,7 +10,7 @@ using osu.Game.Overlays.Settings;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Screens
|
||||
namespace osu.Game.LAsEzExtensions.Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 让按钮支持同时显示两行文本的扩展方法
|
||||
|
||||
49
osu.Game/LAsEzExtensions/Localization/EzColumnStrings.cs
Normal file
49
osu.Game/LAsEzExtensions/Localization/EzColumnStrings.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public static class EzColumnStrings
|
||||
{
|
||||
public static readonly LocalisableString MANIA_PSEUDO_3D_ROTATION = new EzLocalizationManager.EzLocalisableString("Mania 轨道旋转角", "(Mania) Lane Perspective Angle");
|
||||
|
||||
public static readonly LocalisableString MANIA_PSEUDO_3D_ROTATION_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"通过透视映射模拟轨道旋转。0° 为原始效果,角度越大越明显(上窄下宽)。",
|
||||
"Simulate lane rotation using perspective mapping. 0° is the original look, larger angles increase the effect (narrower top and wider bottom).");
|
||||
|
||||
public static readonly LocalisableString STAGE_BACKGROUND_DIM = new EzLocalizationManager.EzLocalisableString("轨道暗度", "Column Dim");
|
||||
|
||||
public static readonly LocalisableString STAGE_BACKGROUND_DIM_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"设置Stage面板背景的暗化程度, 0为完全透明, 1为完全黑色", "Set the dim of each column, 0 is fully transparent, 1 is fully black");
|
||||
|
||||
public static readonly LocalisableString STAGE_BACKGROUND_BLUR = new EzLocalizationManager.EzLocalisableString("轨道虚化", "Column Blur");
|
||||
|
||||
public static readonly LocalisableString STAGE_BACKGROUND_BLUR_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"设置Stage面板背景的虚化程度, 0为不模糊, 1为完全模糊\n"
|
||||
+ "注意,如果铺面中有视频,面板", "Set the blur of each column, 0 is no blur, 1 is fully blurred");
|
||||
|
||||
public static readonly LocalisableString STAGE_PANEL = new EzLocalizationManager.EzLocalisableString("Stage前景面板", "Stage Panel");
|
||||
|
||||
public static readonly LocalisableString STAGE_PANEL_TOOLTIP = new EzLocalizationManager.EzLocalisableString("切换Stage前景面板可见性", "Toggle visibility of the stage foreground");
|
||||
|
||||
public static readonly LocalisableString COLOUR_ENABLE_BUTTON = new EzLocalizationManager.EzLocalisableString("启用颜色配置", "Enable Colour Config");
|
||||
|
||||
public static readonly LocalisableString COLOUR_ENABLE_BUTTON_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"仅支持EzPro, Ez2, Strong Box, 3个皮肤.\n"
|
||||
+ "先修改Base基础颜色,然后定义每一列的类型(一个5种类型,S为Special特殊列,同时还关联特殊列宽度倍率设置)\n"
|
||||
+ "切换tab栏或保存后, 将重置默认颜色为当前设置值。",
|
||||
"Only support EzPro, Ez2, Strong Box skins.\n"
|
||||
+ "First modify the Base color, then define the type of each column (5 types for one column, S is Special column, also related to Special Column Width Factor setting)\n"
|
||||
+ "Switching tabs or saving will reset the default color to the current setting value.");
|
||||
|
||||
public static readonly LocalisableString SAVE_COLOUR_BUTTON = new EzLocalizationManager.EzLocalisableString("保存颜色配置", "Save Colour Config");
|
||||
|
||||
public static readonly LocalisableString SAVE_COLOUR_BUTTON_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"保存当前颜色,并刷新默认值为当前设置值,下次修改设置时,重置控件的目标为本次保存值"
|
||||
+ "\n注意!切换Tab视同保存,如果你不喜欢修改结果,请重置颜色后再切换Tab",
|
||||
"Save the current color and refresh the default value to the current setting value. "
|
||||
+ "\nThe next time you modify the setting, the target of the control will be reset to this saved value.");
|
||||
}
|
||||
}
|
||||
60
osu.Game/LAsEzExtensions/Localization/EzCommonModStrings.cs
Normal file
60
osu.Game/LAsEzExtensions/Localization/EzCommonModStrings.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public static class EzCommonModStrings
|
||||
{
|
||||
public static readonly LocalisableString APPLY_ORDER_LABEL = new EzLocalizationManager.EzLocalisableString("应用顺序", "Apply Order");
|
||||
|
||||
public static readonly LocalisableString APPLY_ORDER_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"此mod在转换过程中应用的顺序。数字越小越先运行。",
|
||||
"The order this mod is applied during transformation. The smaller the number, the earlier it runs.");
|
||||
|
||||
public static readonly LocalisableString SEED_LABEL = new EzLocalizationManager.EzLocalisableString("随机种子", "Random Seed");
|
||||
|
||||
public static readonly LocalisableString SEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"指定自定义种子后,会按这个种子进行可复现的固定随机",
|
||||
"With a custom seed specified, a fixed random with this seed will be applied.");
|
||||
|
||||
public static readonly LocalisableString SPEED_CHANGE_LABEL = new EzLocalizationManager.EzLocalisableString("改变倍速", "Speed Change");
|
||||
|
||||
public static readonly LocalisableString SPEED_CHANGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"改变倍速。不允许叠加其他变速mod。",
|
||||
"Speed Change. The actual decrease to apply. Don't add other rate-mod.");
|
||||
|
||||
public static readonly LocalisableString ADJUST_PITCH_LABEL = new EzLocalizationManager.EzLocalisableString("调整音调", "Adjust pitch");
|
||||
|
||||
public static readonly LocalisableString ADJUST_PITCH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"速度改变时是否调整音调。(变速又变调)",
|
||||
"Whether to adjust pitch when changing speed. (Pitch changes with rate)");
|
||||
|
||||
public static readonly LocalisableString MIRROR_LABEL = new EzLocalizationManager.EzLocalisableString("镜像", "Mirror");
|
||||
public static readonly LocalisableString MIRROR_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("左右镜像处理", "Mirror the beatmap horizontally.");
|
||||
|
||||
public static readonly LocalisableString KEY_LABEL = new EzLocalizationManager.EzLocalisableString("按键数", "Key");
|
||||
public static readonly LocalisableString KEY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("目标按键数(只能从低按键数转换为高按键数)", "Key. To Keys(Can only convert lower keys to higher keys.)");
|
||||
|
||||
public static readonly LocalisableString PROBABILITY_LABEL = new EzLocalizationManager.EzLocalisableString("概率", "Probability");
|
||||
public static readonly LocalisableString PROBABILITY_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("转换概率", "Probability. The Probability of convertion.");
|
||||
public static readonly LocalisableString INTERVAL_LABEL = new EzLocalizationManager.EzLocalisableString("间隔", "Interval");
|
||||
public static readonly LocalisableString INTERVAL_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("音符的最小间隔(防止重叠)", "Interval. The minimum interval of note(To prevent overlap).");
|
||||
|
||||
public static readonly LocalisableString PERCENTAGE_LABEL = new EzLocalizationManager.EzLocalisableString("百分比", "Percentage");
|
||||
public static readonly LocalisableString PERCENTAGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN内容", "LN Content");
|
||||
public static readonly LocalisableString ORIGINAL_LN_LABEL = new EzLocalizationManager.EzLocalisableString("原始LN", "Original LN");
|
||||
public static readonly LocalisableString ORIGINAL_LN_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("原始LN不会被转换", "Original LN won't be converted.");
|
||||
public static readonly LocalisableString COLUMN_NUM_LABEL = new EzLocalizationManager.EzLocalisableString("列数", "Column Num");
|
||||
public static readonly LocalisableString COLUMN_NUM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择要转换的列数", "Select the number of column to transform.");
|
||||
public static readonly LocalisableString GAP_LABEL = new EzLocalizationManager.EzLocalisableString("间隙", "Gap");
|
||||
public static readonly LocalisableString GAP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("转换后改变随机列的音符数量间隙", "For changing random columns after transforming the gap's number of notes.");
|
||||
public static readonly LocalisableString LINE_SPACING_LABEL = new EzLocalizationManager.EzLocalisableString("行间距", "Line Spacing");
|
||||
public static readonly LocalisableString LINE_SPACING_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("设置为0时转换每一行", "Transform every line when set to 0.");
|
||||
public static readonly LocalisableString INVERT_LINE_SPACING_LABEL = new EzLocalizationManager.EzLocalisableString("反转行间距", "Invert Line Spacing");
|
||||
public static readonly LocalisableString INVERT_LINE_SPACING_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("反转行间距", "Invert the Line Spacing.");
|
||||
public static readonly LocalisableString DURATION_LIMIT_LABEL = new EzLocalizationManager.EzLocalisableString("持续时间限制", "Duration Limit");
|
||||
public static readonly LocalisableString DURATION_LIMIT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("LN的最大持续时间(秒)。(设置为0时无限制)", "The max duration(second) of a LN.(No limit when set to 0)");
|
||||
}
|
||||
}
|
||||
@@ -10,19 +10,31 @@ namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public class EzLocalizationManager
|
||||
{
|
||||
static EzLocalizationManager()
|
||||
/// <summary>
|
||||
/// Auto-fills missing English values for <see cref="EzLocalisableString"/> fields.
|
||||
/// Call this in a strings class static constructor when you rely on auto-generated English.
|
||||
/// </summary>
|
||||
/// <param name="type">The strings class type containing public static fields.</param>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// public static class MyStrings
|
||||
/// {
|
||||
/// static MyStrings() => EzLocalizationManager.AutoFillEnglish(typeof(MyStrings));
|
||||
/// public static readonly LocalisableString My_Button = new("我的按钮");
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
internal static void AutoFillEnglish(Type type)
|
||||
{
|
||||
// 使用反射为未设置英文的属性自动生成英文 (属性名替换_为空格)
|
||||
var fields = typeof(EzLocalizationManager).GetFields(BindingFlags.Public | BindingFlags.Static);
|
||||
var fields = type.GetFields(BindingFlags.Public | BindingFlags.Static);
|
||||
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (field.FieldType == typeof(EzLocalisableString))
|
||||
{
|
||||
if (field.GetValue(null) is EzLocalisableString instance && instance.English == null)
|
||||
{
|
||||
instance.English = field.Name.Replace("_", " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,13 +75,6 @@ namespace osu.Game.LAsEzExtensions.Localization
|
||||
English = english;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 便捷构造函数:只提供中文, 英文稍后自动生成或显示中文。
|
||||
/// </summary>
|
||||
/// <param name="chinese">中文文本。</param>
|
||||
public EzLocalisableString(string chinese)
|
||||
: this(chinese, null) { }
|
||||
|
||||
/// <summary>
|
||||
/// 隐式转换为字符串, 根据当前语言返回相应文本。
|
||||
/// </summary>
|
||||
@@ -119,203 +124,5 @@ namespace osu.Game.LAsEzExtensions.Localization
|
||||
return Chinese == ezOther.Chinese && English == ezOther.English;
|
||||
}
|
||||
}
|
||||
|
||||
// 公共属性定义本地化字符串, 直接指定中文和英文
|
||||
public static readonly EzLocalisableString SettingsTitle = new EzLocalisableString("设置", "Settings");
|
||||
public static readonly EzLocalisableString SaveButton = new EzLocalisableString("保存", "Save");
|
||||
public static readonly EzLocalisableString CancelButton = new EzLocalisableString("取消", "Cancel");
|
||||
|
||||
public static readonly EzLocalisableString GlobalTextureName = new EzLocalisableString("全局纹理名称", "Global Texture Name");
|
||||
public static readonly EzLocalisableString GlobalTextureNameTooltip = new EzLocalisableString("(全局纹理名称)统一修改当前皮肤中所有组件的纹理名称", "Set a global texture name for all components in the current skin");
|
||||
|
||||
public static readonly EzLocalisableString StageSet = new EzLocalisableString("Stage套图", "Stage Set");
|
||||
|
||||
public static readonly EzLocalisableString StageSetTooltip = new EzLocalisableString(
|
||||
"统一指定主面板, 如果有动效, 则关联实时BPM。"
|
||||
+ "\n支持在本地EzResources/Stage中增减子文件夹来自定义, 选项会在重载时重新读取文件夹名称。"
|
||||
+ "\n子文件夹可以自己改名, 但内容文件夹及文件的名称必须完全一致。",
|
||||
"Set a stage set for Stage Bottom, related to real-time BPM"
|
||||
+ "\nSupport adding or removing subfolders in the local EzResources/Stage for customization. Options will be reloaded when reloading."
|
||||
+ "\nSubfolders can be renamed, but the names of content folders and files must be exactly the same.");
|
||||
|
||||
public static readonly EzLocalisableString NoteSet = new EzLocalisableString("Note套图", "Note Set Sprite");
|
||||
|
||||
public static readonly EzLocalisableString NoteSetTooltip = new EzLocalisableString(
|
||||
"统一指定整组note套图, 含note和打击光效。"
|
||||
+ "\n支持在本地EzResources/Stage中增减子文件夹来自定义, 选项会在重载时重新读取文件夹名称。"
|
||||
+ "\n子文件夹可以自己改名, 但内容文件夹及文件的名称必须完全一致。",
|
||||
"Set a note set for all notes and hit effects. "
|
||||
+ "\nSupport adding or removing subfolders in the local EzResources/Stage for customization. Options will be reloaded when reloading."
|
||||
+ "\nSubfolders can be renamed, but the names of content folders and files must be exactly the same.");
|
||||
|
||||
public static readonly EzLocalisableString ColumnWidthStyle = new EzLocalisableString("列宽计算风格", "Column Width Calculation Style");
|
||||
|
||||
public static readonly EzLocalisableString ColumnWidthStyleTooltip = new EzLocalisableString(
|
||||
"全局设置可以用在所有皮肤上。"
|
||||
+ "\n全局总列宽=设置值×10, 单列宽度=key数/总列宽。"
|
||||
+ "\n其他是字面意思 (功能不完善!) ",
|
||||
"Global is can be applied to all skins. "
|
||||
+ "\nGlobal Total Column Width = Configured Value × 10"
|
||||
+ "\nOther styles are literal meaning (functionality not perfect!)");
|
||||
|
||||
public static readonly EzLocalisableString ColumnWidth = new EzLocalisableString("单轨宽度", "Column Width");
|
||||
public static readonly EzLocalisableString ColumnWidthTooltip = new EzLocalisableString("设置每列轨道的宽度", "Set the width of each column");
|
||||
|
||||
public static readonly EzLocalisableString SpecialFactor = new EzLocalisableString("特殊轨宽度倍率", "Special Column Width Factor");
|
||||
|
||||
public static readonly EzLocalisableString SpecialFactorTooltip = new EzLocalisableString(
|
||||
"关联ColumnType设置, S列类型为特殊列, 以此实现两种宽度的区分。",
|
||||
"The S column type are Special columns, achieving a distinction between two widths.");
|
||||
|
||||
public static readonly EzLocalisableString GlobalHitPosition = new EzLocalisableString("全局判定线位置", "Global HitPosition");
|
||||
public static readonly EzLocalisableString GlobalHitPositionTooltip = new EzLocalisableString("全局判定线位置开关", "Global HitPosition Toggle");
|
||||
|
||||
public static readonly EzLocalisableString HitPosition = new EzLocalisableString("判定线位置", "Hit Position");
|
||||
public static readonly EzLocalisableString HitPositionTooltip = new EzLocalisableString("设置可视的判定线位置", "Set the visible hit position");
|
||||
|
||||
public static readonly EzLocalisableString HitTargetAlpha = new EzLocalisableString("note命中靶透明度(EzPro专用)", "Hit Target Alpha");
|
||||
|
||||
public static readonly EzLocalisableString HitTargetAlphaTooltip = new EzLocalisableString(
|
||||
"设置Ez Style Pro皮肤中note命中靶的透明度, 可见判定线上与note一样的判定板",
|
||||
"Set the transparency of the note Hit Target in Ez Style Pro skin, making the hit plate on the hit position visible like the note");
|
||||
|
||||
public static readonly EzLocalisableString HitTargetFloatFixed = new EzLocalisableString("命中靶的浮动修正(EzPro专用)", "Hit Target Float Fixed");
|
||||
|
||||
public static readonly EzLocalisableString HitTargetFloatFixedTooltip = new EzLocalisableString(
|
||||
"设置Ez Style Pro皮肤中note命中靶, 修改浮动效果的正弦函数运动范围",
|
||||
"Set the note Hit Target in Ez Style Pro skin, modifying the sine function motion range of the floating effect");
|
||||
|
||||
public static readonly EzLocalisableString NoteHeightScale = new EzLocalisableString("note 高度比例", "Note Height Scale");
|
||||
public static readonly EzLocalisableString NoteHeightScaleTooltip = new EzLocalisableString("统一修改note的高度的比例", "Fixed Height for square notes");
|
||||
|
||||
public static readonly EzLocalisableString ManiaHoldTailAlpha = new EzLocalisableString("Tail面尾透明度(未实装)", "Mania Hold Tail Alpha");
|
||||
public static readonly EzLocalisableString ManiaHoldTailAlphaTooltip = new EzLocalisableString("Mania Tail面尾的透明度", "Modify the transparency of the Mania hold tail");
|
||||
|
||||
public static readonly EzLocalisableString ManiaHoldTailMaskGradientHeight = new EzLocalisableString("调整缩短面尾的距离(投)", "Adjust LN Tail Length (Opportunistic)");
|
||||
|
||||
public static readonly EzLocalisableString ManiaHoldTailMaskGradientHeightTooltip = new EzLocalisableString(
|
||||
"(投皮) 缩短面条中部实现, 不改变面尾形状",
|
||||
"(Opportunistic) Shorten the middle of the hold tail without changing its shape");
|
||||
|
||||
public static readonly EzLocalisableString NoteTrackLine = new EzLocalisableString("Note辅助线", "Note Track Line");
|
||||
public static readonly EzLocalisableString NoteTrackLineTooltip = new EzLocalisableString("(Ez风格)note两侧辅助轨道线的高度", "(Ez Style)note side auxiliary track line height");
|
||||
|
||||
public static readonly EzLocalisableString RefreshSaveSkin = new EzLocalisableString("强制刷新&保存", "Force Refresh & Save Skin");
|
||||
public static readonly EzLocalisableString RefreshSaveSkinTooltip = new EzLocalisableString("没遇到问题不要点,调整用按钮", "If you haven't encountered any issues, don't click this. Use it for adjustments.");
|
||||
|
||||
public static readonly EzLocalisableString SwitchToAbsolute = new EzLocalisableString("强制刷新, 并切换至 绝对位置 (不稳定) ", "Refresh, Switch to Absolute(Unstable)");
|
||||
public static readonly EzLocalisableString SwitchToRelative = new EzLocalisableString("强制刷新, 并切换至 相对位置 (不稳定) ", "Refresh, Switch to Relative(Unstable)");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_BACKGROUND_DIM = new EzLocalisableString("轨道暗度", "Column Dim");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_BACKGROUND_DIM_TOOLTIP = new EzLocalisableString(
|
||||
"设置Stage面板背景的暗化程度, 0为完全透明, 1为完全黑色", "Set the dim of each column, 0 is fully transparent, 1 is fully black");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_BACKGROUND_BLUR = new EzLocalisableString("轨道虚化", "Column Blur");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_BACKGROUND_BLUR_TOOLTIP = new EzLocalisableString(
|
||||
"设置Stage面板背景的虚化程度, 0为不模糊, 1为完全模糊\n"
|
||||
+ "注意,如果铺面中有视频,面板", "Set the blur of each column, 0 is no blur, 1 is fully blurred");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_PANEL = new EzLocalisableString("Stage前景面板", "Stage Panel");
|
||||
|
||||
public static readonly EzLocalisableString STAGE_PANEL_TOOLTIP = new EzLocalisableString("切换Stage前景面板可见性", "Toggle visibility of the stage foreground");
|
||||
|
||||
public static readonly EzLocalisableString COLOUR_ENABLE_BUTTON = new EzLocalisableString("启用颜色配置", "Enable Colour Config");
|
||||
|
||||
public static readonly EzLocalisableString COLOUR_ENABLE_BUTTON_TOOLTIP = new EzLocalisableString(
|
||||
"仅支持EzPro, Ez2, Strong Box, 3个皮肤.\n" +
|
||||
"先修改Base基础颜色,然后定义每一列的类型(一个5种类型,S为Special特殊列,同时还关联特殊列宽度倍率设置)\n"
|
||||
+ "切换tab栏或保存后, 将重置默认颜色为当前设置值。",
|
||||
"Only support EzPro, Ez2, Strong Box skins.\n"
|
||||
+ "First modify the Base color, then define the type of each column (5 types for one column, S is Special column, also related to Special Column Width Factor setting)\n"
|
||||
+ "Switching tabs or saving will reset the default color to the current setting value.");
|
||||
|
||||
public static readonly EzLocalisableString SAVE_COLOUR_BUTTON = new EzLocalisableString("保存颜色配置", "Save Colour Config");
|
||||
|
||||
public static readonly EzLocalisableString SAVE_COLOUR_BUTTON_TOOLTIP = new EzLocalisableString(
|
||||
"保存当前颜色,并刷新默认值为当前设置值,下次修改设置时,重置控件的目标为本次保存值"
|
||||
+ "\n注意!切换Tab视同保存,如果你不喜欢修改结果,请重置颜色后再切换Tab",
|
||||
"Save the current color and refresh the default value to the current setting value. "
|
||||
+ "\nThe next time you modify the setting, the target of the control will be reset to this saved value.");
|
||||
|
||||
public static readonly EzLocalisableString DisableCmdSpace = new EzLocalisableString("游戏时禁用 Cmd+Space (聚焦搜索) ", "Disable Cmd+Space (Spotlight) during gameplay");
|
||||
|
||||
public static readonly EzLocalisableString HitMode = new EzLocalisableString("Mania 判定系统", "(Mania) Hit Mode");
|
||||
|
||||
public static readonly EzLocalisableString HitModeTooltip = new EzLocalisableString(
|
||||
"Mania 判定系统, 获得不同音游的打击体验, 但是不保证所有模式都完全一比一复刻",
|
||||
"(Mania) Hit Mode, get different rhythm game hit experiences, but not guaranteed to perfectly replicate all modes");
|
||||
|
||||
public static readonly EzLocalisableString HealthMode = new EzLocalisableString("Mania 血量系统", "(Mania) Health Mode");
|
||||
|
||||
public static readonly EzLocalisableString HealthModeTooltip = new EzLocalisableString(
|
||||
"\n——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\n 305 300 200 100 50 Miss -"
|
||||
+ "\n0.4% 0.3% 0.1% 0% -1% - 6% -0% Lazer"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\nKool - Good - Bad Miss -"
|
||||
+ "\n0.3% 0.0% 0.2% 0% -1% - 5% -0% O2 Easy"
|
||||
+ "\n0.2% 0.0% 0.1% 0% -7% - 4% -0% O2 Normal"
|
||||
+ "\n0.1% 0.0% 0.0% 0% -5% - 3% -0% O2 Hard"
|
||||
+ "\n——— ——— ——— ——— ——— ——— ——— ——— ——— ———"
|
||||
+ "\nKool Cool Good - Bad Poor []Poor"
|
||||
+ "\n0.4% 0.3% 0.1% 0% -1% - 5% -5% Ez2Ac"
|
||||
+ "\n1.6% 1.6% 0.0% 0% -5% - 9% -5% IIDX Hard"
|
||||
+ "\n1.0% 1.0% 0.5% 0% -6% -10% -2% LR2 Hard"
|
||||
+ "\n1.2% 1.2% 0.6% 0% -3% - 6% -2% raja normal");
|
||||
|
||||
public static readonly EzLocalisableString PoorHitResult = new EzLocalisableString("Mania Poor 判定系统", "(Mania) Poor HitResult Mode");
|
||||
|
||||
public static readonly EzLocalisableString PoorHitResultTooltip = new EzLocalisableString(
|
||||
"Mania增加Pool判定, 范围是比Miss提前150ms范围内时出现, 动态严格扣血(连续累积将加剧, 最大10%)",
|
||||
"Mania add the Poor HitResult, which appears within 150ms before Miss, with dynamic and strict health deduction (continuous accumulation will worsen, up to 10%)");
|
||||
|
||||
public static readonly EzLocalisableString AccuracyCutoffS = new EzLocalisableString("Acc S评级线(Mania)", "Accuracy Cutoff S (Mania)");
|
||||
public static readonly EzLocalisableString AccuracyCutoffA = new EzLocalisableString("Acc A评级线(Mania)", "Accuracy Cutoff A (Mania)");
|
||||
|
||||
// Storage folder messages
|
||||
public static readonly EzLocalisableString StorageFolder_Created = new EzLocalisableString("已创建目录:{0}\n请将文件放入该目录", "Created folder: {0}\nAdd files to the folder");
|
||||
public static readonly EzLocalisableString StorageFolder_Empty = new EzLocalisableString("目录为空:{0}", "Folder is empty: {0}");
|
||||
|
||||
public static readonly EzLocalisableString InputAudioLatencyTracker = new EzLocalisableString("输入音频延迟追踪器", "Input Audio Latency Tracker");
|
||||
|
||||
public static readonly EzLocalisableString InputAudioLatencyTrackerTooltip = new EzLocalisableString(
|
||||
"(测试功能)启用后可追踪按键输入与音频的延迟, 用于调试和优化打击音效的同步性。在游戏结束后会弹出一个统计窗口。更详细的内容可以查看runtime.log文件。"
|
||||
+ "\n延迟检测管线:按键 → 检查打击并应用 → 应用判定结果 → 播放note音频",
|
||||
"(Testing feature) When enabled, it can track the latency between key input and audio, used for debugging and optimizing the synchronization of hit sound effects. "
|
||||
+ "A statistics window will pop up after the game ends. More detailed information can be found in the runtime.log file."
|
||||
+ "\nLatency detection pipeline: Key Press → Check Hit and Apply → Apply Hit Result → Play Note Audio");
|
||||
|
||||
public static readonly EzLocalisableString KeySoundPreview_Tooltip = new EzLocalisableString(
|
||||
"按键音预览:\n0 关闭; \n1 蓝灯开启 (全量音效预览); \n2 黄灯开启 (全量音效预览, 游戏中自动播放 note 音效, 按键不再触发样本播放) ",
|
||||
"Key sound preview: \n0 Off; \n1 BlueLight (keypress triggers samples); \n2 GoldLight (preserve preview in song select; in gameplay auto-play note samples, keypresses no longer trigger sample playback)");
|
||||
|
||||
public static readonly LocalisableString ManiaBarLinesBool = new EzLocalisableString("Mania 强制小节线显示开关", "(Mania) BarLines Boolean Toggle");
|
||||
|
||||
public static readonly LocalisableString ManiaBarLinesBoolTooltip =
|
||||
new EzLocalisableString("强制显示Mania小节线功能的开关, 关闭后仅由皮肤控制", "(Mania) Toggle to force display of bar lines, when off only controlled by skin");
|
||||
|
||||
public static readonly LocalisableString MANIA_PSEUDO_3D_ROTATION = new EzLocalisableString("Mania 轨道旋转角", "(Mania) Lane Perspective Angle");
|
||||
|
||||
public static readonly LocalisableString MANIA_PSEUDO_3D_ROTATION_TOOLTIP = new EzLocalisableString(
|
||||
"通过透视映射模拟轨道旋转。0° 为原始效果,角度越大越明显(上窄下宽)。",
|
||||
"Simulate lane rotation using perspective mapping. 0° is the original look, larger angles increase the effect (narrower top and wider bottom).");
|
||||
|
||||
public static readonly LocalisableString OffsetPlusMania = new EzLocalisableString("高阶Offset修正(Mania)", "Advanced Offset Plus (Mania)");
|
||||
|
||||
public static readonly LocalisableString OffsetPlusManiaTooltip = new EzLocalisableString(
|
||||
"直接修正输入结果的偏移值, 不改变音频、谱面的时间轴。"
|
||||
+ "\n可以根绝所有输入延迟。(测试性功能!锁定成绩上传)",
|
||||
"Directly correct the offset value of input results without changing the timeline of audio and beatmap."
|
||||
+ "\nCan be adjusted for all input delays. (Testing feature! Lock score upload)");
|
||||
|
||||
public static readonly LocalisableString OffsetPlusNonMania = new EzLocalisableString("高阶Offset修正(非Mania)", "Advanced Offset Plus (Non-Mania)");
|
||||
|
||||
public static readonly LocalisableString OffsetPlusNonManiaTooltip = new EzLocalisableString(
|
||||
"直接修正输入结果的偏移值, 不改变音频、谱面的时间轴。"
|
||||
+ "\n可以根绝所有输入延迟。(测试性功能!锁定成绩上传)",
|
||||
"Directly correct the offset value of input results without changing the timeline of audio and beatmap."
|
||||
+ "\nCan be adjusted for all input delays. (Testing feature! Lock score upload)");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
// 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.Reflection;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Game.LAsEzExtensions.Configuration;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public class EzModStrings : EzLocalizationManager
|
||||
{
|
||||
static EzModStrings()
|
||||
{
|
||||
// 使用反射为未设置英文的属性自动生成英文(属性名替换_为空格)
|
||||
var fields = typeof(EzModStrings).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy);
|
||||
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (field.FieldType == typeof(EzLocalisableString))
|
||||
{
|
||||
if (field.GetValue(null) is EzLocalisableString instance && instance.English == null)
|
||||
{
|
||||
instance.English = field.Name.Replace("_", " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 本地化字符串类,直接持有中文和英文
|
||||
public new class EzLocalisableString : EzLocalizationManager.EzLocalisableString
|
||||
{
|
||||
public EzLocalisableString(string chinese, string? english = null)
|
||||
: base(chinese, english) { }
|
||||
|
||||
// 便捷构造函数:如果不提供英文,则稍后通过反射从属性名生成
|
||||
public EzLocalisableString(string chinese)
|
||||
: base(chinese) { }
|
||||
}
|
||||
|
||||
// ====================================================================================================
|
||||
// LAsMods - Mod Descriptions
|
||||
// ====================================================================================================
|
||||
public static readonly LocalisableString ApplyOrder_Label = new EzLocalisableString("应用顺序", "Apply Order");
|
||||
|
||||
public static readonly LocalisableString ApplyOrder_Description = new EzLocalisableString("此mod在谱面转换后应用的顺序。数字越小越先运行。",
|
||||
"Apply Order. Order in which this mod is applied after beatmap conversion. Lower runs earlier.");
|
||||
|
||||
public static readonly LocalisableString LoopPlayClip_Description = new EzLocalisableString("将谱面切割成片段用于循环练习。",
|
||||
"Cut the beatmap into a clip for loop practice. (The original is YuLiangSSS's Duplicate Mod)");
|
||||
|
||||
// SpaceBody
|
||||
public static readonly LocalisableString SpaceBody_Description = new EzLocalisableString("全LN面海,可调面缝", "Full LN, adjustable gaps");
|
||||
public static readonly LocalisableString SpaceBody_Label = new EzLocalisableString("全反键缝隙", "Space Body");
|
||||
public static readonly LocalisableString SpaceBodyGap_Description = new EzLocalisableString("调整前后两个面之间的间隔缝隙", "Full LN, adjustable gaps");
|
||||
public static readonly LocalisableString AddShield_Label = new EzLocalisableString("添加盾型", "Add Shield");
|
||||
public static readonly LocalisableString AddShield_Description = new EzLocalisableString("将每个面尾添加盾牌键型", "Add shield notes in the sea");
|
||||
|
||||
#region LoopPlayClip
|
||||
|
||||
public static readonly LocalisableString LoopCount_Label = new EzLocalisableString("循环次数", "Loop Count");
|
||||
public static readonly LocalisableString LoopCount_Description = new EzLocalisableString("切片循环次数", "Loop Clip Count.");
|
||||
public static readonly LocalisableString SpeedChange_Label = new EzLocalisableString("改变倍速", "Speed Change");
|
||||
public static readonly LocalisableString SpeedChange_Description = new EzLocalisableString("改变倍速。不允许叠加其他变速mod。", "Speed Change. The actual decrease to apply. Don't add other rate-mod.");
|
||||
public static readonly LocalisableString AdjustPitch_Label = new EzLocalisableString("调整音调", "Adjust pitch");
|
||||
public static readonly LocalisableString AdjustPitch_Description = new EzLocalisableString("速度改变时是否调整音调。(变速又变调)", "Adjust pitch. Should pitch be adjusted with speed.(变速又变调)");
|
||||
public static readonly LocalisableString ConstantSpeed_Label = new EzLocalisableString("无SV变速", "Constant Speed");
|
||||
public static readonly LocalisableString ConstantSpeed_Description = new EzLocalisableString("去除SV变速。(恒定速度/忽略谱面中的变速)", "Constant Speed. No more tricky speed changes.(恒定速度/忽略谱面中的变速)");
|
||||
public static readonly LocalisableString CutStartTime_Label = new EzLocalisableString("切片开始时间", "Cut Start Time");
|
||||
public static readonly LocalisableString CutStartTime_Description = new EzLocalisableString("切片开始时间, 默认是秒。推荐通过谱面编辑器A-B控件设置,可自动输入", "Cut StartTime. Default is second.");
|
||||
public static readonly LocalisableString CutEndTime_Label = new EzLocalisableString("切片结束时间", "Cut End Time");
|
||||
public static readonly LocalisableString CutEndTime_Description = new EzLocalisableString("切片结束时间, 默认是秒。推荐通过谱面编辑器A-B控件设置,可自动输入", "Cut EndTime. Default is second.");
|
||||
public static readonly LocalisableString UseMillisecond_Label = new EzLocalisableString("使用毫秒", "Use Millisecond");
|
||||
public static readonly LocalisableString UseMillisecond_Description = new EzLocalisableString("改为使用ms单位", "Use millisecond(ms).");
|
||||
public static readonly LocalisableString UseGlobalABRange_Label = new EzLocalisableString("使用全局A-B范围", "Use Global A-B Range");
|
||||
|
||||
public static readonly LocalisableString UseGlobalABRange_Description = new EzLocalisableString("始终使用谱面编辑器中A/B空间设置的范围(毫秒)。推荐保持开启",
|
||||
"Use global A-B range. Always use the editor A/B range stored for this session (ms).");
|
||||
|
||||
public static readonly LocalisableString BreakTime_Label = new EzLocalisableString("休息时间", "Break Time");
|
||||
public static readonly LocalisableString BreakTime_Description = new EzLocalisableString("设置两个切片循环之间的休息时间(以四分之一拍为单位,范围 1-12,默认 4)", "Set the break between clip loops as multiples of 1/4 beat (1-12, default 4).");
|
||||
public static readonly LocalisableString Random_Label = new EzLocalisableString("随机", "Random");
|
||||
public static readonly LocalisableString Random_Description = new EzLocalisableString("在切片每次重复时进行随机", "Random. Do a Random on every duplicate.");
|
||||
public static readonly LocalisableString Mirror_Label = new EzLocalisableString("镜像", "Mirror");
|
||||
public static readonly LocalisableString Mirror_Description = new EzLocalisableString("在切片每次重复时进行镜像", "Mirror. Mirror next part.");
|
||||
public static readonly LocalisableString MirrorTime_Label = new EzLocalisableString("镜像时间", "Mirror Time");
|
||||
public static readonly LocalisableString MirrorTime_Description = new EzLocalisableString("每隔多少次循环做一次镜像", "Mirror Time. Every next time part will be mirrored.");
|
||||
public static readonly LocalisableString Seed_Label = new EzLocalisableString("种子", "Seed");
|
||||
public static readonly LocalisableString Seed_Description = new EzLocalisableString("使用自定义种子而不是随机种子", "Seed. Use a custom seed instead of a random one");
|
||||
|
||||
public static readonly LocalisableString InfiniteLoop_Label = new EzLocalisableString("无限循环", "Infinite Loop");
|
||||
|
||||
public static readonly LocalisableString InfiniteLoop_Description = new EzLocalisableString("启用无限循环播放。游戏中必须使用Esc退出才能结束,无法获得成绩结算。",
|
||||
"Infinite Loop. Enable infinite loop playback. You must use Esc to exit in the game to end, and you cannot get score settlement.");
|
||||
|
||||
#endregion
|
||||
|
||||
#region NiceBPM
|
||||
|
||||
public static readonly LocalisableString NiceBPM_Description = new EzLocalisableString("自由调整BPM或速度", "Free BPM or Speed");
|
||||
public static readonly LocalisableString InitialRate_Label = new EzLocalisableString("初始速度倍率", "Initial rate");
|
||||
public static readonly LocalisableString InitialRate_Description = new EzLocalisableString("调整初始播放速度倍率", "Initial rate. The starting speed of the track");
|
||||
|
||||
public static readonly LocalisableString FreeBPM_Label = new EzLocalisableString("初始BPM", "Initial BPM");
|
||||
public static readonly LocalisableString FreeBPM_Description = new EzLocalisableString("设置BPM值以调整初始播放速度", "BPM to speed");
|
||||
|
||||
public static readonly LocalisableString EnableDynamicBPM_Label = new EzLocalisableString("启用动态BPM", "Enable Dynamic BPM");
|
||||
public static readonly LocalisableString EnableDynamicBPM_Description = new EzLocalisableString("基于表现启用动态BPM调整", "Enable dynamic BPM adjustment based on performance");
|
||||
|
||||
public static readonly LocalisableString MinAllowableRate_Label = new EzLocalisableString("最小允许速率", "Min Allowable Rate");
|
||||
public static readonly LocalisableString MinAllowableRate_Description = new EzLocalisableString("动态BPM调整的最小速率", "Minimum rate for dynamic BPM adjustment");
|
||||
|
||||
public static readonly LocalisableString MaxAllowableRate_Label = new EzLocalisableString("最大允许速率", "Max Allowable Rate");
|
||||
public static readonly LocalisableString MaxAllowableRate_Description = new EzLocalisableString("动态BPM调整的最大速率", "Maximum rate for dynamic BPM adjustment");
|
||||
|
||||
public static readonly LocalisableString MissCountThreshold_Label = new EzLocalisableString("Miss计数阈值", "Miss Count Threshold");
|
||||
public static readonly LocalisableString MissCountThreshold_Description = new EzLocalisableString("触发降速所需的Miss数量", "Number of misses required to trigger rate decrease");
|
||||
|
||||
public static readonly LocalisableString RateChangeOnMiss_Label = new EzLocalisableString("Miss时的速率变化", "Rate Change On Miss");
|
||||
public static readonly LocalisableString RateChangeOnMiss_Description = new EzLocalisableString("达到Miss阈值时应用的速率倍数", "Rate multiplier applied when miss threshold is reached");
|
||||
|
||||
#endregion
|
||||
|
||||
#region Reconcile
|
||||
|
||||
public static readonly LocalisableString Reconcile_Description = new EzLocalisableString("满足条件时暂停,可选回溯到上一个目标位置。",
|
||||
"Pause when conditions are met, optionally rewinding to the previous target position.");
|
||||
|
||||
public static readonly LocalisableString Reconcile_EnableMiss_Label = new EzLocalisableString("启用判定计数", "Enable judgement count");
|
||||
public static readonly LocalisableString Reconcile_EnableMiss_Description = new EzLocalisableString("当指定判定累计到阈值时触发", "Trigger when the selected judgement reaches the threshold.");
|
||||
public static readonly LocalisableString Reconcile_MissJudgement_Label = new EzLocalisableString("判定类型", "Judgement Type");
|
||||
public static readonly LocalisableString Reconcile_MissJudgement_Description = new EzLocalisableString("选择要计数的判定类型", "Select the judgement to count.");
|
||||
public static readonly LocalisableString Reconcile_MissCount_Label = new EzLocalisableString("判定计数阈值", "Judgement Count Threshold");
|
||||
public static readonly LocalisableString Reconcile_MissCount_Description = new EzLocalisableString("达到该数量时触发暂停", "Trigger pause when this count is reached.");
|
||||
|
||||
public static readonly LocalisableString Reconcile_EnableAcc_Label = new EzLocalisableString("启用Acc条件", "Enable accuracy condition");
|
||||
public static readonly LocalisableString Reconcile_EnableAcc_Description = new EzLocalisableString("当Acc低于阈值时触发", "Trigger when accuracy falls below the threshold.");
|
||||
public static readonly LocalisableString Reconcile_AccThreshold_Label = new EzLocalisableString("Acc阈值(%)", "Accuracy Threshold (%)");
|
||||
public static readonly LocalisableString Reconcile_AccThreshold_Description = new EzLocalisableString("低于此Acc触发暂停", "Trigger pause when accuracy is below this value.");
|
||||
|
||||
public static readonly LocalisableString Reconcile_EnableHealth_Label = new EzLocalisableString("启用血量条件", "Enable health condition");
|
||||
public static readonly LocalisableString Reconcile_EnableHealth_Description = new EzLocalisableString("当血量低于阈值时触发", "Trigger when health falls below the threshold.");
|
||||
public static readonly LocalisableString Reconcile_HealthThreshold_Label = new EzLocalisableString("血量阈值(%)", "Health Threshold (%)");
|
||||
public static readonly LocalisableString Reconcile_HealthThreshold_Description = new EzLocalisableString("低于此血量触发暂停", "Trigger pause when health is below this value.");
|
||||
|
||||
public static readonly LocalisableString Reconcile_RewindEnabled_Label = new EzLocalisableString("启用回溯", "Enable rewind");
|
||||
|
||||
public static readonly LocalisableString Reconcile_RewindEnabled_Description = new EzLocalisableString(
|
||||
"触发后回溯到目标位置再暂停。规则:"
|
||||
+ "\n判定回溯到阈值的2/3处;"
|
||||
+ "\nAcc回溯到阈值+(100-阈值)/3;"
|
||||
+ "\n血量回溯到阈值+(100-阈值)*0.8。",
|
||||
"Rewind to the target position before pausing. Rules: "
|
||||
+ "\nJudgement rewinds to 2/3 of the threshold; "
|
||||
+ "\nAcc rewinds to threshold+(100-threshold)/3; "
|
||||
+ "\nHealth rewinds to threshold+(100-threshold)*0.8.");
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
47
osu.Game/LAsEzExtensions/Localization/EzSettingsStrings.cs
Normal file
47
osu.Game/LAsEzExtensions/Localization/EzSettingsStrings.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public static class EzSettingsStrings
|
||||
{
|
||||
public static readonly EzLocalizationManager.EzLocalisableString INPUT_AUDIO_LATENCY_TRACKER = new EzLocalizationManager.EzLocalisableString("输入音频延迟追踪器", "Input Audio Latency Tracker");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString INPUT_AUDIO_LATENCY_TRACKER_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"(测试功能)启用后可追踪按键输入与音频的延迟, 用于调试和优化打击音效的同步性。在游戏结束后会弹出一个统计窗口。更详细的内容可以查看runtime.log文件。"
|
||||
+ "\n延迟检测管线:按键 → 检查打击并应用 → 应用判定结果 → 播放note音频",
|
||||
"(Testing feature) When enabled, it can track the latency between key input and audio, used for debugging and optimizing the synchronization of hit sound effects. "
|
||||
+ "A statistics window will pop up after the game ends. More detailed information can be found in the runtime.log file."
|
||||
+ "\nLatency detection pipeline: Key Press → Check Hit and Apply → Apply Hit Result → Play Note Audio");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString ACCURACY_CUTOFF_S = new EzLocalizationManager.EzLocalisableString("Acc S评级线(Mania)", "Accuracy Cutoff S (Mania)");
|
||||
public static readonly EzLocalizationManager.EzLocalisableString ACCURACY_CUTOFF_A = new EzLocalizationManager.EzLocalisableString("Acc A评级线(Mania)", "Accuracy Cutoff A (Mania)");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString DISABLE_CMD_SPACE = new EzLocalizationManager.EzLocalisableString("游戏时禁用 Cmd+Space (聚焦搜索) ", "Disable Cmd+Space (Spotlight) during gameplay");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString STORAGE_FOLDER_CREATED = new EzLocalizationManager.EzLocalisableString("已创建目录:{0}\n请将文件放入该目录", "Created folder: {0}\nAdd files to the folder");
|
||||
public static readonly EzLocalizationManager.EzLocalisableString STORAGE_FOLDER_EMPTY = new EzLocalizationManager.EzLocalisableString("目录为空:{0}", "Folder is empty: {0}");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString SETTINGS_TITLE = new EzLocalizationManager.EzLocalisableString("设置", "Settings");
|
||||
public static readonly EzLocalizationManager.EzLocalisableString SAVE_BUTTON = new EzLocalizationManager.EzLocalisableString("保存", "Save");
|
||||
public static readonly EzLocalizationManager.EzLocalisableString CANCEL_BUTTON = new EzLocalizationManager.EzLocalisableString("取消", "Cancel");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString OFFSET_PLUS_MANIA = new EzLocalizationManager.EzLocalisableString("高阶Offset修正(Mania)", "Advanced Offset Plus (Mania)");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString OFFSET_PLUS_MANIA_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"直接修正输入结果的偏移值, 不改变音频、谱面的时间轴。"
|
||||
+ "\n可以根绝所有输入延迟。(测试性功能!锁定成绩上传)",
|
||||
"Directly correct the offset value of input results without changing the timeline of audio and beatmap."
|
||||
+ "\nCan be adjusted for all input delays. (Testing feature! Lock score upload)");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString OFFSET_PLUS_NON_MANIA = new EzLocalizationManager.EzLocalisableString("高阶Offset修正(非Mania)", "Advanced Offset Plus (Non-Mania)");
|
||||
|
||||
public static readonly EzLocalizationManager.EzLocalisableString OFFSET_PLUS_NON_MANIA_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"直接修正输入结果的偏移值, 不改变音频、谱面的时间轴。"
|
||||
+ "\n可以根绝所有输入延迟。(测试性功能!锁定成绩上传)",
|
||||
"Directly correct the offset value of input results without changing the timeline of audio and beatmap."
|
||||
+ "\nCan be adjusted for all input delays. (Testing feature! Lock score upload)");
|
||||
}
|
||||
}
|
||||
91
osu.Game/LAsEzExtensions/Localization/EzSkinStrings.cs
Normal file
91
osu.Game/LAsEzExtensions/Localization/EzSkinStrings.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public static class EzSkinStrings
|
||||
{
|
||||
public static readonly LocalisableString GLOBAL_TEXTURE_NAME = new EzLocalizationManager.EzLocalisableString("全局纹理名称", "Global Texture Name");
|
||||
public static readonly LocalisableString GLOBAL_TEXTURE_NAME_TOOLTIP = new EzLocalizationManager.EzLocalisableString("(全局纹理名称)统一修改当前皮肤中所有组件的纹理名称", "Set a global texture name for all components in the current skin");
|
||||
|
||||
public static readonly LocalisableString STAGE_SET = new EzLocalizationManager.EzLocalisableString("Stage套图", "Stage Set");
|
||||
|
||||
public static readonly LocalisableString STAGE_SET_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"统一指定主面板, 如果有动效, 则关联实时BPM。"
|
||||
+ "\n支持在本地EzResources/Stage中增减子文件夹来自定义, 选项会在重载时重新读取文件夹名称。"
|
||||
+ "\n子文件夹可以自己改名, 但内容文件夹及文件的名称必须完全一致。",
|
||||
"Set a stage set for Stage Bottom, related to real-time BPM"
|
||||
+ "\nSupport adding or removing subfolders in the local EzResources/Stage for customization. Options will be reloaded when reloading."
|
||||
+ "\nSubfolders can be renamed, but the names of content folders and files must be exactly the same.");
|
||||
|
||||
public static readonly LocalisableString NOTE_SET = new EzLocalizationManager.EzLocalisableString("Note套图", "Note Set Sprite");
|
||||
|
||||
public static readonly LocalisableString NOTE_SET_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"统一指定整组note套图, 含note和打击光效。"
|
||||
+ "\n支持在本地EzResources/Stage中增减子文件夹来自定义, 选项会在重载时重新读取文件夹名称。"
|
||||
+ "\n子文件夹可以自己改名, 但内容文件夹及文件的名称必须完全一致。",
|
||||
"Set a note set for all notes and hit effects. "
|
||||
+ "\nSupport adding or removing subfolders in the local EzResources/Stage for customization. Options will be reloaded when reloading."
|
||||
+ "\nSubfolders can be renamed, but the names of content folders and files must be exactly the same.");
|
||||
|
||||
public static readonly LocalisableString COLUMN_WIDTH_STYLE = new EzLocalizationManager.EzLocalisableString("列宽计算风格", "Column Width Calculation Style");
|
||||
|
||||
public static readonly LocalisableString COLUMN_WIDTH_STYLE_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"全局设置可以用在所有皮肤上。"
|
||||
+ "\n全局总列宽=设置值×10, 单列宽度=key数/总列宽。"
|
||||
+ "\n其他是字面意思 (功能不完善!) ",
|
||||
"Global is can be applied to all skins. "
|
||||
+ "\nGlobal Total Column Width = Configured Value × 10"
|
||||
+ "\nOther styles are literal meaning (functionality not perfect!)");
|
||||
|
||||
public static readonly LocalisableString COLUMN_WIDTH = new EzLocalizationManager.EzLocalisableString("单轨宽度", "Column Width");
|
||||
public static readonly LocalisableString COLUMN_WIDTH_TOOLTIP = new EzLocalizationManager.EzLocalisableString("设置每列轨道的宽度", "Set the width of each column");
|
||||
|
||||
public static readonly LocalisableString SPECIAL_FACTOR = new EzLocalizationManager.EzLocalisableString("特殊轨宽度倍率", "Special Column Width Factor");
|
||||
|
||||
public static readonly LocalisableString SPECIAL_FACTOR_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"关联ColumnType设置, S列类型为特殊列, 以此实现两种宽度的区分。",
|
||||
"The S column type are Special columns, achieving a distinction between two widths.");
|
||||
|
||||
public static readonly LocalisableString GLOBAL_HIT_POSITION = new EzLocalizationManager.EzLocalisableString("全局判定线位置", "Global HitPosition");
|
||||
public static readonly LocalisableString GLOBAL_HIT_POSITION_TOOLTIP = new EzLocalizationManager.EzLocalisableString("全局判定线位置开关", "Global HitPosition Toggle");
|
||||
|
||||
public static readonly LocalisableString HIT_POSITION = new EzLocalizationManager.EzLocalisableString("判定线位置", "Hit Position");
|
||||
public static readonly LocalisableString HIT_POSITION_TOOLTIP = new EzLocalizationManager.EzLocalisableString("设置可视的判定线位置", "Set the visible hit position");
|
||||
|
||||
public static readonly LocalisableString HIT_TARGET_ALPHA = new EzLocalizationManager.EzLocalisableString("note命中靶透明度(EzPro专用)", "Hit Target Alpha");
|
||||
|
||||
public static readonly LocalisableString HIT_TARGET_ALPHA_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"设置Ez Style Pro皮肤中note命中靶的透明度, 可见判定线上与note一样的判定板",
|
||||
"Set the transparency of the note Hit Target in Ez Style Pro skin, making the hit plate on the hit position visible like the note");
|
||||
|
||||
public static readonly LocalisableString HIT_TARGET_FLOAT_FIXED = new EzLocalizationManager.EzLocalisableString("命中靶的浮动修正(EzPro专用)", "Hit Target Float Fixed");
|
||||
|
||||
public static readonly LocalisableString HIT_TARGET_FLOAT_FIXED_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"设置Ez Style Pro皮肤中note命中靶, 修改浮动效果的正弦函数运动范围",
|
||||
"Set the note Hit Target in Ez Style Pro skin, modifying the sine function motion range of the floating effect");
|
||||
|
||||
public static readonly LocalisableString NOTE_HEIGHT_SCALE = new EzLocalizationManager.EzLocalisableString("note 高度比例", "Note Height Scale");
|
||||
public static readonly LocalisableString NOTE_HEIGHT_SCALE_TOOLTIP = new EzLocalizationManager.EzLocalisableString("统一修改note的高度的比例", "Fixed Height for square notes");
|
||||
|
||||
public static readonly LocalisableString LN_TAIL_ALPHA = new EzLocalizationManager.EzLocalisableString("Tail面尾透明度(未实装)", "Mania Hold Tail Alpha");
|
||||
public static readonly LocalisableString LN_TAIL_ALPHA_TOOLTIP = new EzLocalizationManager.EzLocalisableString("Mania Tail面尾的透明度", "Modify the transparency of the Mania hold tail");
|
||||
|
||||
public static readonly LocalisableString LN_TAIL_MASK_GRADIENT_HEIGHT = new EzLocalizationManager.EzLocalisableString("调整缩短面尾的距离(投)", "Adjust LN Tail Length (Opportunistic)");
|
||||
|
||||
public static readonly LocalisableString LN_TAIL_MASK_GRADIENT_HEIGHT_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"(投皮) 缩短面条中部实现, 不改变面尾形状",
|
||||
"(Opportunistic) Shorten the middle of the hold tail without changing its shape");
|
||||
|
||||
public static readonly LocalisableString NOTE_TRACK_LINE = new EzLocalizationManager.EzLocalisableString("Note辅助线", "Note Track Line");
|
||||
public static readonly LocalisableString NOTE_TRACK_LINE_TOOLTIP = new EzLocalizationManager.EzLocalisableString("(Ez风格)note两侧辅助轨道线的高度", "(Ez Style)note side auxiliary track line height");
|
||||
|
||||
public static readonly LocalisableString REFRESH_SAVE_SKIN = new EzLocalizationManager.EzLocalisableString("强制刷新&保存", "Force Refresh & Save Skin");
|
||||
public static readonly LocalisableString REFRESH_SAVE_SKIN_TOOLTIP = new EzLocalizationManager.EzLocalisableString("没遇到问题不要点,调整用按钮", "If you haven't encountered any issues, don't click this. Use it for adjustments.");
|
||||
|
||||
public static readonly LocalisableString SWITCH_TO_ABSOLUTE = new EzLocalizationManager.EzLocalisableString("强制刷新, 并切换至 绝对位置 (不稳定) ", "Refresh, Switch to Absolute(Unstable)");
|
||||
public static readonly LocalisableString SWITCH_TO_RELATIVE = new EzLocalizationManager.EzLocalisableString("强制刷新, 并切换至 相对位置 (不稳定) ", "Refresh, Switch to Relative(Unstable)");
|
||||
}
|
||||
}
|
||||
14
osu.Game/LAsEzExtensions/Localization/EzSongSelectStrings.cs
Normal file
14
osu.Game/LAsEzExtensions/Localization/EzSongSelectStrings.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
// 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 osu.Framework.Localisation;
|
||||
|
||||
namespace osu.Game.LAsEzExtensions.Localization
|
||||
{
|
||||
public static class EzSongSelectStrings
|
||||
{
|
||||
public static readonly LocalisableString KEY_SOUND_PREVIEW_TOOLTIP = new EzLocalizationManager.EzLocalisableString(
|
||||
"按键音预览:\n0 关闭; \n1 蓝灯开启 (全量音效预览); \n2 黄灯开启 (全量音效预览, 游戏中自动播放 note 音效, 按键不再触发样本播放) ",
|
||||
"Key sound preview: \n0 Off; \n1 BlueLight (keypress triggers samples); \n2 GoldLight (preserve preview in song select; in gameplay auto-play note samples, keypresses no longer trigger sample playback)");
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
public override string Name => "Loop Play Clip (No Fail)";
|
||||
|
||||
public override string Acronym => "LP";
|
||||
public override LocalisableString Description => EzModStrings.LoopPlayClip_Description;
|
||||
public override LocalisableString Description => LoopPlayClipStrings.LOOP_PLAY_CLIP_DESCRIPTION;
|
||||
|
||||
public override double ScoreMultiplier => 1;
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
return $"{minus}{minute}:{secondLessThan10}{second:N1}";
|
||||
}
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.LoopCount_Label), nameof(EzModStrings.LoopCount_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.LOOP_COUNT_LABEL), nameof(LoopPlayClipStrings.LOOP_COUNT_DESCRIPTION))]
|
||||
public BindableInt LoopCount { get; set; } = new BindableInt(20)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -87,7 +87,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.SpeedChange_Label), nameof(EzModStrings.SpeedChange_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SPEED_CHANGE_LABEL), nameof(EzCommonModStrings.SPEED_CHANGE_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> SpeedChange { get; } = new BindableDouble(1)
|
||||
{
|
||||
MinValue = 0.5,
|
||||
@@ -95,10 +95,10 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 0.01,
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.AdjustPitch_Label), nameof(EzModStrings.AdjustPitch_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ADJUST_PITCH_LABEL), nameof(EzCommonModStrings.ADJUST_PITCH_DESCRIPTION))]
|
||||
public BindableBool AdjustPitch { get; } = new BindableBool();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ConstantSpeed_Label), nameof(EzModStrings.ConstantSpeed_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.CONSTANT_SPEED_LABEL), nameof(LoopPlayClipStrings.CONSTANT_SPEED_DESCRIPTION))]
|
||||
public BindableBool ConstantSpeed { get; } = new BindableBool(true);
|
||||
|
||||
/*[SettingSource("Cut Time Start", "Select your part(second).", SettingControlType = typeof(SettingsSlider<int, CutStart>))]
|
||||
@@ -109,7 +109,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.CutTimeEnd_Label), nameof(EzModStrings.CutTimeEnd_Description), SettingControlType = typeof(SettingsSlider<int, CutEnd>))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.CUT_END_TIME_LABEL), nameof(LoopPlayClipStrings.CUT_END_TIME_DESCRIPTION), SettingControlType = typeof(SettingsSlider<int, CutEnd>))]
|
||||
public BindableInt CutTimeEnd { get; set; } = new BindableInt(1800)
|
||||
{
|
||||
MinValue = -10,
|
||||
@@ -117,19 +117,19 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};*/
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.CutStartTime_Label), nameof(EzModStrings.CutStartTime_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.CUT_START_TIME_LABEL), nameof(LoopPlayClipStrings.CUT_START_TIME_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> CutTimeStart { get; set; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.CutEndTime_Label), nameof(EzModStrings.CutEndTime_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.CUT_END_TIME_LABEL), nameof(LoopPlayClipStrings.CUT_END_TIME_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> CutTimeEnd { get; set; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.UseMillisecond_Label), nameof(EzModStrings.UseMillisecond_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.USE_MILLISECOND_LABEL), nameof(LoopPlayClipStrings.USE_MILLISECOND_DESCRIPTION))]
|
||||
public BindableBool Millisecond { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.UseGlobalABRange_Label), nameof(EzModStrings.UseGlobalABRange_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.USE_GLOBAL_AB_RANGE_LABEL), nameof(LoopPlayClipStrings.USE_GLOBAL_AB_RANGE_DESCRIPTION))]
|
||||
public BindableBool UseGlobalAbRange { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.BreakTime_Label), nameof(EzModStrings.BreakTime_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.BREAK_TIME_LABEL), nameof(LoopPlayClipStrings.BREAK_TIME_DESCRIPTION))]
|
||||
public BindableInt BreakQuarter { get; set; } = new BindableInt(4)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -137,16 +137,16 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Random_Label), nameof(EzModStrings.Random_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.RANDOM_LABEL), nameof(LoopPlayClipStrings.RANDOM_DESCRIPTION))]
|
||||
public BindableBool Rand { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Mirror_Label), nameof(EzModStrings.Mirror_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.MIRROR_LABEL), nameof(EzCommonModStrings.MIRROR_DESCRIPTION))]
|
||||
public BindableBool Mirror { get; set; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.InfiniteLoop_Label), nameof(EzModStrings.InfiniteLoop_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.INFINITE_LOOP_LABEL), nameof(LoopPlayClipStrings.INFINITE_LOOP_DESCRIPTION))]
|
||||
public BindableBool InfiniteLoop { get; set; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.MirrorTime_Label), nameof(EzModStrings.MirrorTime_Description))]
|
||||
[SettingSource(typeof(LoopPlayClipStrings), nameof(LoopPlayClipStrings.MIRROR_TIME_LABEL), nameof(LoopPlayClipStrings.MIRROR_TIME_DESCRIPTION))]
|
||||
public BindableInt MirrorTime { get; set; } = new BindableInt(1)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -165,10 +165,10 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
// Precision = 1
|
||||
//};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Seed_Label), nameof(EzModStrings.Seed_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.SEED_LABEL), nameof(EzCommonModStrings.SEED_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> Seed { get; } = new Bindable<int?>(114514);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.ApplyOrder_Label), nameof(EzModStrings.ApplyOrder_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.APPLY_ORDER_LABEL), nameof(EzCommonModStrings.APPLY_ORDER_DESCRIPTION))]
|
||||
public BindableNumber<int> ApplyOrderIndex { get; } = new BindableInt(100)
|
||||
{
|
||||
MinValue = 0,
|
||||
@@ -458,4 +458,49 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
return (cutTimeStart, cutTimeEnd, length);
|
||||
}
|
||||
}
|
||||
|
||||
public static class LoopPlayClipStrings
|
||||
{
|
||||
public static readonly LocalisableString LOOP_PLAY_CLIP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"将谱面切割成片段用于循环练习。",
|
||||
"Cut the beatmap into a clip for loop practice. (The original is YuLiangSSS's Duplicate Mod)");
|
||||
|
||||
public static readonly LocalisableString LOOP_COUNT_LABEL = new EzLocalizationManager.EzLocalisableString("循环次数", "Loop Count");
|
||||
public static readonly LocalisableString LOOP_COUNT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("切片循环次数", "Loop Clip Count.");
|
||||
|
||||
public static readonly LocalisableString CONSTANT_SPEED_LABEL = new EzLocalizationManager.EzLocalisableString("无SV变速", "Constant Speed");
|
||||
public static readonly LocalisableString CONSTANT_SPEED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("去除SV变速。(恒定速度/忽略谱面中的变速)", "Constant Speed. No more tricky speed changes.(恒定速度/忽略谱面中的变速)");
|
||||
|
||||
public static readonly LocalisableString CUT_START_TIME_LABEL = new EzLocalizationManager.EzLocalisableString("切片开始时间", "Cut Start Time");
|
||||
public static readonly LocalisableString CUT_START_TIME_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("切片开始时间, 默认是秒。推荐通过谱面编辑器A-B控件设置,可自动输入", "Cut StartTime. Default is second.");
|
||||
public static readonly LocalisableString CUT_END_TIME_LABEL = new EzLocalizationManager.EzLocalisableString("切片结束时间", "Cut End Time");
|
||||
public static readonly LocalisableString CUT_END_TIME_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("切片结束时间, 默认是秒。推荐通过谱面编辑器A-B控件设置,可自动输入", "Cut EndTime. Default is second.");
|
||||
|
||||
public static readonly LocalisableString USE_MILLISECOND_LABEL = new EzLocalizationManager.EzLocalisableString("使用毫秒", "Use Millisecond");
|
||||
public static readonly LocalisableString USE_MILLISECOND_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("改为使用ms单位", "Use millisecond(ms).");
|
||||
|
||||
public static readonly LocalisableString USE_GLOBAL_AB_RANGE_LABEL = new EzLocalizationManager.EzLocalisableString("使用全局A-B范围", "Use Global A-B Range");
|
||||
|
||||
public static readonly LocalisableString USE_GLOBAL_AB_RANGE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"始终使用谱面编辑器中A/B空间设置的范围(毫秒)。推荐保持开启",
|
||||
"Use global A-B range. Always use the editor A/B range stored for this session (ms).");
|
||||
|
||||
public static readonly LocalisableString BREAK_TIME_LABEL = new EzLocalizationManager.EzLocalisableString("休息时间", "Break Time");
|
||||
|
||||
public static readonly LocalisableString BREAK_TIME_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"设置两个切片循环之间的休息时间(以四分之一拍为单位,范围 1-12,默认 4)",
|
||||
"Set the break between clip loops as multiples of 1/4 beat (1-12, default 4).");
|
||||
|
||||
public static readonly LocalisableString RANDOM_LABEL = new EzLocalizationManager.EzLocalisableString("随机", "Random");
|
||||
public static readonly LocalisableString RANDOM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("在切片每次重复时进行随机", "Random. Do a Random on every duplicate.");
|
||||
|
||||
public static readonly LocalisableString MIRROR_TIME_LABEL = new EzLocalizationManager.EzLocalisableString("镜像时间", "Mirror Time");
|
||||
public static readonly LocalisableString MIRROR_TIME_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("每隔多少次循环做一次镜像", "Mirror Time. Every next time part will be mirrored.");
|
||||
|
||||
public static readonly LocalisableString INFINITE_LOOP_LABEL = new EzLocalizationManager.EzLocalisableString("无限循环", "Infinite Loop");
|
||||
|
||||
public static readonly LocalisableString INFINITE_LOOP_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"启用无限循环播放。游戏中必须使用Esc退出才能结束,无法获得成绩结算。",
|
||||
"Infinite Loop. Enable infinite loop playback. You must use Esc to exit in the game to end, and you cannot get score settlement.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
|
||||
public override string Acronym => "NB";
|
||||
|
||||
public override LocalisableString Description => EzModStrings.NiceBPM_Description;
|
||||
public override LocalisableString Description => NiceBPMStrings.NICE_BPM_DESCRIPTION;
|
||||
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
|
||||
@@ -39,10 +39,10 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
|
||||
public override Type[] IncompatibleMods => new[] { typeof(ModRateAdjust), typeof(ModTimeRamp), typeof(ModAutoplay) };
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.FreeBPM_Label), nameof(EzModStrings.FreeBPM_Description), SettingControlType = typeof(SettingsNumberBox))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.FREE_BPM_LABEL), nameof(NiceBPMStrings.FREE_BPM_DESCRIPTION), SettingControlType = typeof(SettingsNumberBox))]
|
||||
public Bindable<int?> FreeBPM { get; } = new Bindable<int?>();
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.InitialRate_Label), nameof(EzModStrings.InitialRate_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.INITIAL_RATE_LABEL), nameof(NiceBPMStrings.INITIAL_RATE_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> InitialRate { get; } = new BindableDouble(1)
|
||||
{
|
||||
MinValue = 0.2,
|
||||
@@ -50,13 +50,13 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 0.01
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.EnableDynamicBPM_Label), nameof(EzModStrings.EnableDynamicBPM_Description), SettingControlType = typeof(SettingsCheckbox))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.ENABLE_DYNAMIC_BPM_LABEL), nameof(NiceBPMStrings.ENABLE_DYNAMIC_BPM_DESCRIPTION), SettingControlType = typeof(SettingsCheckbox))]
|
||||
public BindableBool EnableDynamicBPM { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.AdjustPitch_Label), nameof(EzModStrings.AdjustPitch_Description))]
|
||||
[SettingSource(typeof(EzCommonModStrings), nameof(EzCommonModStrings.ADJUST_PITCH_LABEL), nameof(EzCommonModStrings.ADJUST_PITCH_DESCRIPTION))]
|
||||
public BindableBool AdjustPitch { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.MinAllowableRate_Label), nameof(EzModStrings.MinAllowableRate_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.MIN_ALLOWABLE_RATE_LABEL), nameof(NiceBPMStrings.MIN_ALLOWABLE_RATE_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> MinAllowableRate { get; } = new BindableDouble(0.7)
|
||||
{
|
||||
MinValue = 0.1,
|
||||
@@ -64,7 +64,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 0.1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.MaxAllowableRate_Label), nameof(EzModStrings.MaxAllowableRate_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.MAX_ALLOWABLE_RATE_LABEL), nameof(NiceBPMStrings.MAX_ALLOWABLE_RATE_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> MaxAllowableRate { get; } = new BindableDouble(1.5)
|
||||
{
|
||||
MinValue = 1.0,
|
||||
@@ -76,7 +76,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
private const double min_rate_change_factor = 0.9d;
|
||||
private const double max_rate_change_factor = 1.11d;
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.MissCountThreshold_Label), nameof(EzModStrings.MissCountThreshold_Description), SettingControlType = typeof(SettingsSlider<int>))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.MISS_COUNT_THRESHOLD_LABEL), nameof(NiceBPMStrings.MISS_COUNT_THRESHOLD_DESCRIPTION), SettingControlType = typeof(SettingsSlider<int>))]
|
||||
public BindableInt MissThreshold { get; } = new BindableInt(3)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -84,7 +84,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.RateChangeOnMiss_Label), nameof(EzModStrings.RateChangeOnMiss_Description), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
[SettingSource(typeof(NiceBPMStrings), nameof(NiceBPMStrings.RATE_CHANGE_ON_MISS_LABEL), nameof(NiceBPMStrings.RATE_CHANGE_ON_MISS_DESCRIPTION), SettingControlType = typeof(MultiplierSettingsSlider))]
|
||||
public BindableNumber<double> RateChangeOnMiss { get; } = new BindableDouble(0.95)
|
||||
{
|
||||
MinValue = 0.5,
|
||||
@@ -463,4 +463,23 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
targetRate = Interpolation.Lerp(targetRate, recentRates.Average(), Math.Abs(consistency) / (recent_rate_count - 1d));
|
||||
}
|
||||
}
|
||||
|
||||
public static class NiceBPMStrings
|
||||
{
|
||||
public static readonly LocalisableString NICE_BPM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("自由调整BPM或速度", "Free BPM or Speed");
|
||||
public static readonly LocalisableString INITIAL_RATE_LABEL = new EzLocalizationManager.EzLocalisableString("初始速度倍率", "Initial rate");
|
||||
public static readonly LocalisableString INITIAL_RATE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("调整初始播放速度倍率", "Initial rate. The starting speed of the track");
|
||||
public static readonly LocalisableString FREE_BPM_LABEL = new EzLocalizationManager.EzLocalisableString("初始BPM", "Initial BPM");
|
||||
public static readonly LocalisableString FREE_BPM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("设置BPM值以调整初始播放速度", "BPM to speed");
|
||||
public static readonly LocalisableString ENABLE_DYNAMIC_BPM_LABEL = new EzLocalizationManager.EzLocalisableString("启用动态BPM", "Enable Dynamic BPM");
|
||||
public static readonly LocalisableString ENABLE_DYNAMIC_BPM_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("基于表现启用动态BPM调整", "Enable dynamic BPM adjustment based on performance");
|
||||
public static readonly LocalisableString MIN_ALLOWABLE_RATE_LABEL = new EzLocalizationManager.EzLocalisableString("最小允许速率", "Min Allowable Rate");
|
||||
public static readonly LocalisableString MIN_ALLOWABLE_RATE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("动态BPM调整的最小速率", "Minimum rate for dynamic BPM adjustment");
|
||||
public static readonly LocalisableString MAX_ALLOWABLE_RATE_LABEL = new EzLocalizationManager.EzLocalisableString("最大允许速率", "Max Allowable Rate");
|
||||
public static readonly LocalisableString MAX_ALLOWABLE_RATE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("动态BPM调整的最大速率", "Maximum rate for dynamic BPM adjustment");
|
||||
public static readonly LocalisableString MISS_COUNT_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("Miss计数阈值", "Miss Count Threshold");
|
||||
public static readonly LocalisableString MISS_COUNT_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("触发降速所需的Miss数量", "Number of misses required to trigger rate decrease");
|
||||
public static readonly LocalisableString RATE_CHANGE_ON_MISS_LABEL = new EzLocalizationManager.EzLocalisableString("Miss时的速率变化", "Rate Change On Miss");
|
||||
public static readonly LocalisableString RATE_CHANGE_ON_MISS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("达到Miss阈值时应用的速率倍数", "Rate multiplier applied when miss threshold is reached");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
{
|
||||
public override string Name => "Reconcile";
|
||||
public override string Acronym => "RC";
|
||||
public override LocalisableString Description => EzModStrings.Reconcile_Description;
|
||||
public override LocalisableString Description => ReconcileStrings.RECONCILE_DESCRIPTION;
|
||||
public override ModType Type => ModType.LA_Mod;
|
||||
public override double ScoreMultiplier => 1;
|
||||
public override bool Ranked => false;
|
||||
@@ -31,16 +31,16 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
public override bool ValidForFreestyleAsRequiredMod => false;
|
||||
public override IconUsage? Icon => FontAwesome.Solid.Handshake;
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_RewindEnabled_Label), nameof(EzModStrings.Reconcile_RewindEnabled_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_REWIND_ENABLED_LABEL), nameof(ReconcileStrings.RECONCILE_REWIND_ENABLED_DESCRIPTION))]
|
||||
public BindableBool RewindEnabled { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_EnableMiss_Label), nameof(EzModStrings.Reconcile_EnableMiss_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_ENABLE_MISS_LABEL), nameof(ReconcileStrings.RECONCILE_ENABLE_MISS_DESCRIPTION))]
|
||||
public BindableBool EnableMissCondition { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_MissJudgement_Label), nameof(EzModStrings.Reconcile_MissJudgement_Description), SettingControlType = typeof(SettingsEnumDropdown<HitResult>))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_MISS_JUDGEMENT_LABEL), nameof(ReconcileStrings.RECONCILE_MISS_JUDGEMENT_DESCRIPTION), SettingControlType = typeof(SettingsEnumDropdown<HitResult>))]
|
||||
public Bindable<HitResult> MissJudgement { get; } = new Bindable<HitResult>(HitResult.Miss);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_MissCount_Label), nameof(EzModStrings.Reconcile_MissCount_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_MISS_COUNT_LABEL), nameof(ReconcileStrings.RECONCILE_MISS_COUNT_DESCRIPTION))]
|
||||
public BindableNumber<int> MissCountThreshold { get; } = new BindableInt(3)
|
||||
{
|
||||
MinValue = 1,
|
||||
@@ -48,10 +48,10 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_EnableAcc_Label), nameof(EzModStrings.Reconcile_EnableAcc_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_ENABLE_ACC_LABEL), nameof(ReconcileStrings.RECONCILE_ENABLE_ACC_DESCRIPTION))]
|
||||
public BindableBool EnableAccCondition { get; } = new BindableBool(false);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_AccThreshold_Label), nameof(EzModStrings.Reconcile_AccThreshold_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_ACC_THRESHOLD_LABEL), nameof(ReconcileStrings.RECONCILE_ACC_THRESHOLD_DESCRIPTION))]
|
||||
public BindableNumber<double> AccThresholdPercent { get; } = new BindableDouble(94)
|
||||
{
|
||||
MinValue = 50,
|
||||
@@ -59,10 +59,10 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
Precision = 0.1
|
||||
};
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_EnableHealth_Label), nameof(EzModStrings.Reconcile_EnableHealth_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_ENABLE_HEALTH_LABEL), nameof(ReconcileStrings.RECONCILE_ENABLE_HEALTH_DESCRIPTION))]
|
||||
public BindableBool EnableHealthCondition { get; } = new BindableBool(true);
|
||||
|
||||
[SettingSource(typeof(EzModStrings), nameof(EzModStrings.Reconcile_HealthThreshold_Label), nameof(EzModStrings.Reconcile_HealthThreshold_Description))]
|
||||
[SettingSource(typeof(ReconcileStrings), nameof(ReconcileStrings.RECONCILE_HEALTH_THRESHOLD_LABEL), nameof(ReconcileStrings.RECONCILE_HEALTH_THRESHOLD_DESCRIPTION))]
|
||||
public BindableNumber<int> HealthThresholdPercent { get; } = new BindableInt(30)
|
||||
{
|
||||
MinValue = 10,
|
||||
@@ -297,4 +297,38 @@ namespace osu.Game.LAsEzExtensions.Mods
|
||||
public bool ShouldTrigger => MissTriggered || AccTriggered || HealthTriggered;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ReconcileStrings
|
||||
{
|
||||
public static readonly LocalisableString RECONCILE_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"满足条件时暂停,可选回溯到上一个目标位置。",
|
||||
"Pause when conditions are met, optionally rewinding to the previous target position.");
|
||||
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_MISS_LABEL = new EzLocalizationManager.EzLocalisableString("启用判定计数", "Enable judgement count");
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_MISS_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("当指定判定累计到阈值时触发", "Trigger when the selected judgement reaches the threshold.");
|
||||
public static readonly LocalisableString RECONCILE_MISS_JUDGEMENT_LABEL = new EzLocalizationManager.EzLocalisableString("判定类型", "Judgement Type");
|
||||
public static readonly LocalisableString RECONCILE_MISS_JUDGEMENT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("选择要计数的判定类型", "Select the judgement to count.");
|
||||
public static readonly LocalisableString RECONCILE_MISS_COUNT_LABEL = new EzLocalizationManager.EzLocalisableString("判定计数阈值", "Judgement Count Threshold");
|
||||
public static readonly LocalisableString RECONCILE_MISS_COUNT_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("达到该数量时触发暂停", "Trigger pause when this count is reached.");
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_ACC_LABEL = new EzLocalizationManager.EzLocalisableString("启用Acc条件", "Enable accuracy condition");
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_ACC_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("当Acc低于阈值时触发", "Trigger when accuracy falls below the threshold.");
|
||||
public static readonly LocalisableString RECONCILE_ACC_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("Acc阈值(%)", "Accuracy Threshold (%)");
|
||||
public static readonly LocalisableString RECONCILE_ACC_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("低于此Acc触发暂停", "Trigger pause when accuracy is below this value.");
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_HEALTH_LABEL = new EzLocalizationManager.EzLocalisableString("启用血量条件", "Enable health condition");
|
||||
public static readonly LocalisableString RECONCILE_ENABLE_HEALTH_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("当血量低于阈值时触发", "Trigger when health falls below the threshold.");
|
||||
public static readonly LocalisableString RECONCILE_HEALTH_THRESHOLD_LABEL = new EzLocalizationManager.EzLocalisableString("血量阈值(%)", "Health Threshold (%)");
|
||||
public static readonly LocalisableString RECONCILE_HEALTH_THRESHOLD_DESCRIPTION = new EzLocalizationManager.EzLocalisableString("低于此血量触发暂停", "Trigger pause when health is below this value.");
|
||||
|
||||
public static readonly LocalisableString RECONCILE_REWIND_ENABLED_LABEL = new EzLocalizationManager.EzLocalisableString("启用回溯", "Enable rewind");
|
||||
|
||||
public static readonly LocalisableString RECONCILE_REWIND_ENABLED_DESCRIPTION = new EzLocalizationManager.EzLocalisableString(
|
||||
"触发后回溯到目标位置再暂停。规则:"
|
||||
+ "\n判定回溯到阈值的2/3处;"
|
||||
+ "\nAcc回溯到阈值+(100-阈值)/3;"
|
||||
+ "\n血量回溯到阈值+(100-阈值)*0.8。",
|
||||
"Rewind to the target position before pausing. Rules: "
|
||||
+ "\nJudgement rewinds to 2/3 of the threshold; "
|
||||
+ "\nAcc rewinds to threshold+(100-threshold)/3; "
|
||||
+ "\nHealth rewinds to threshold+(100-threshold)*0.8.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,38 +71,38 @@ namespace osu.Game.LAsEzExtensions.Screens
|
||||
{
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.MANIA_PSEUDO_3D_ROTATION,
|
||||
TooltipText = EzLocalizationManager.MANIA_PSEUDO_3D_ROTATION_TOOLTIP,
|
||||
LabelText = EzColumnStrings.MANIA_PSEUDO_3D_ROTATION,
|
||||
TooltipText = EzColumnStrings.MANIA_PSEUDO_3D_ROTATION_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ManiaPseudo3DRotation),
|
||||
KeyboardStep = 1f,
|
||||
DisplayAsPercentage = false
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.STAGE_BACKGROUND_DIM,
|
||||
TooltipText = EzLocalizationManager.STAGE_BACKGROUND_DIM_TOOLTIP,
|
||||
LabelText = EzColumnStrings.STAGE_BACKGROUND_DIM,
|
||||
TooltipText = EzColumnStrings.STAGE_BACKGROUND_DIM_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ColumnDim),
|
||||
KeyboardStep = 0.01f,
|
||||
DisplayAsPercentage = true
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.STAGE_BACKGROUND_BLUR,
|
||||
TooltipText = EzLocalizationManager.STAGE_BACKGROUND_BLUR_TOOLTIP,
|
||||
LabelText = EzColumnStrings.STAGE_BACKGROUND_BLUR,
|
||||
TooltipText = EzColumnStrings.STAGE_BACKGROUND_BLUR_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ColumnBlur),
|
||||
KeyboardStep = 0.01f,
|
||||
DisplayAsPercentage = true
|
||||
},
|
||||
new SettingsCheckbox
|
||||
{
|
||||
LabelText = EzLocalizationManager.STAGE_PANEL,
|
||||
TooltipText = EzLocalizationManager.STAGE_PANEL_TOOLTIP,
|
||||
LabelText = EzColumnStrings.STAGE_PANEL,
|
||||
TooltipText = EzColumnStrings.STAGE_PANEL_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<bool>(Ez2Setting.StagePanelEnabled),
|
||||
},
|
||||
new SettingsCheckbox
|
||||
{
|
||||
LabelText = EzLocalizationManager.COLOUR_ENABLE_BUTTON,
|
||||
TooltipText = EzLocalizationManager.COLOUR_ENABLE_BUTTON_TOOLTIP,
|
||||
LabelText = EzColumnStrings.COLOUR_ENABLE_BUTTON,
|
||||
TooltipText = EzColumnStrings.COLOUR_ENABLE_BUTTON_TOOLTIP,
|
||||
Current = colorSettingsEnabled,
|
||||
},
|
||||
baseColorsContainer = new FillFlowContainer
|
||||
@@ -161,8 +161,8 @@ namespace osu.Game.LAsEzExtensions.Screens
|
||||
},
|
||||
new SettingsButton
|
||||
{
|
||||
Text = EzLocalizationManager.SAVE_COLOUR_BUTTON,
|
||||
TooltipText = EzLocalizationManager.SAVE_COLOUR_BUTTON_TOOLTIP,
|
||||
Text = EzColumnStrings.SAVE_COLOUR_BUTTON,
|
||||
TooltipText = EzColumnStrings.SAVE_COLOUR_BUTTON_TOOLTIP,
|
||||
Action = () =>
|
||||
{
|
||||
skinManager.CurrentSkinInfo.TriggerChange();
|
||||
|
||||
@@ -10,6 +10,7 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Framework.Logging;
|
||||
using osu.Framework.Platform;
|
||||
using osu.Framework.Testing;
|
||||
@@ -47,10 +48,10 @@ namespace osu.Game.LAsEzExtensions.Screens
|
||||
["GameTheme"] = Path.Combine("EzResources", "GameTheme")
|
||||
};
|
||||
|
||||
private static readonly Dictionary<bool, (Color4 Color, string TopText, string BottomText)> position_mode_config = new Dictionary<bool, (Color4 Color, string TopText, string BottomText)>
|
||||
private static readonly Dictionary<bool, (Color4 Color, LocalisableString TopText, LocalisableString BottomText)> position_mode_config = new Dictionary<bool, (Color4 Color, LocalisableString TopText, LocalisableString BottomText)>
|
||||
{
|
||||
[true] = (new Color4(0.2f, 0.4f, 0.8f, 0.3f), EzLocalizationManager.SwitchToAbsolute, EzLocalizationManager.SwitchToAbsolute),
|
||||
[false] = (new Color4(0.8f, 0.2f, 0.4f, 0.3f), EzLocalizationManager.SwitchToRelative, EzLocalizationManager.SwitchToRelative)
|
||||
[true] = (new Color4(0.2f, 0.4f, 0.8f, 0.3f), EzSkinStrings.SWITCH_TO_ABSOLUTE, EzSkinStrings.SWITCH_TO_ABSOLUTE),
|
||||
[false] = (new Color4(0.8f, 0.2f, 0.4f, 0.3f), EzSkinStrings.SWITCH_TO_RELATIVE, EzSkinStrings.SWITCH_TO_RELATIVE)
|
||||
};
|
||||
|
||||
private readonly List<string> availableNoteSets = new List<string>();
|
||||
@@ -83,103 +84,103 @@ namespace osu.Game.LAsEzExtensions.Screens
|
||||
{
|
||||
new SettingsEnumDropdown<EzEnumGameThemeName>
|
||||
{
|
||||
LabelText = EzLocalizationManager.GlobalTextureName,
|
||||
TooltipText = EzLocalizationManager.GlobalTextureNameTooltip,
|
||||
LabelText = EzSkinStrings.GLOBAL_TEXTURE_NAME,
|
||||
TooltipText = EzSkinStrings.GLOBAL_TEXTURE_NAME_TOOLTIP,
|
||||
Current = nameOfGameTheme,
|
||||
},
|
||||
new SettingsDropdown<string>
|
||||
{
|
||||
LabelText = EzLocalizationManager.StageSet,
|
||||
TooltipText = EzLocalizationManager.StageSetTooltip,
|
||||
LabelText = EzSkinStrings.STAGE_SET,
|
||||
TooltipText = EzSkinStrings.STAGE_SET_TOOLTIP,
|
||||
Current = nameOfStage,
|
||||
Items = availableStageSets,
|
||||
},
|
||||
new SettingsDropdown<string>
|
||||
{
|
||||
LabelText = EzLocalizationManager.NoteSet,
|
||||
TooltipText = EzLocalizationManager.NoteSetTooltip,
|
||||
LabelText = EzSkinStrings.NOTE_SET,
|
||||
TooltipText = EzSkinStrings.NOTE_SET_TOOLTIP,
|
||||
Current = nameOfNote,
|
||||
Items = availableNoteSets,
|
||||
},
|
||||
new SettingsEnumDropdown<ColumnWidthStyle>
|
||||
{
|
||||
LabelText = EzLocalizationManager.ColumnWidthStyle,
|
||||
TooltipText = EzLocalizationManager.ColumnWidthStyleTooltip,
|
||||
LabelText = EzSkinStrings.COLUMN_WIDTH_STYLE,
|
||||
TooltipText = EzSkinStrings.COLUMN_WIDTH_STYLE_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<ColumnWidthStyle>(Ez2Setting.ColumnWidthStyle),
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.ColumnWidth,
|
||||
TooltipText = EzLocalizationManager.ColumnWidthTooltip,
|
||||
LabelText = EzSkinStrings.COLUMN_WIDTH,
|
||||
TooltipText = EzSkinStrings.COLUMN_WIDTH_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ColumnWidth),
|
||||
KeyboardStep = 1.0f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.SpecialFactor,
|
||||
TooltipText = EzLocalizationManager.SpecialFactorTooltip,
|
||||
LabelText = EzSkinStrings.SPECIAL_FACTOR,
|
||||
TooltipText = EzSkinStrings.SPECIAL_FACTOR_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.SpecialFactor),
|
||||
KeyboardStep = 0.1f,
|
||||
},
|
||||
new SettingsCheckbox
|
||||
{
|
||||
LabelText = EzLocalizationManager.GlobalHitPosition,
|
||||
TooltipText = EzLocalizationManager.GlobalHitPositionTooltip,
|
||||
LabelText = EzSkinStrings.GLOBAL_HIT_POSITION,
|
||||
TooltipText = EzSkinStrings.GLOBAL_HIT_POSITION_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<bool>(Ez2Setting.GlobalHitPosition),
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.HitPosition,
|
||||
TooltipText = EzLocalizationManager.HitPositionTooltip,
|
||||
LabelText = EzSkinStrings.HIT_POSITION,
|
||||
TooltipText = EzSkinStrings.HIT_POSITION_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.HitPosition),
|
||||
KeyboardStep = 1f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.HitTargetFloatFixed,
|
||||
TooltipText = EzLocalizationManager.HitTargetFloatFixedTooltip,
|
||||
LabelText = EzSkinStrings.HIT_TARGET_FLOAT_FIXED,
|
||||
TooltipText = EzSkinStrings.HIT_TARGET_FLOAT_FIXED_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.HitTargetFloatFixed),
|
||||
KeyboardStep = 0.1f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.HitTargetAlpha,
|
||||
TooltipText = EzLocalizationManager.HitTargetAlphaTooltip,
|
||||
LabelText = EzSkinStrings.HIT_TARGET_ALPHA,
|
||||
TooltipText = EzSkinStrings.HIT_TARGET_ALPHA_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.HitTargetAlpha),
|
||||
KeyboardStep = 0.01f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.NoteHeightScale,
|
||||
TooltipText = EzLocalizationManager.NoteHeightScaleTooltip,
|
||||
LabelText = EzSkinStrings.NOTE_HEIGHT_SCALE,
|
||||
TooltipText = EzSkinStrings.NOTE_HEIGHT_SCALE_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.NoteHeightScaleToWidth),
|
||||
KeyboardStep = 0.1f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.ManiaHoldTailMaskGradientHeight,
|
||||
TooltipText = EzLocalizationManager.ManiaHoldTailMaskGradientHeightTooltip,
|
||||
LabelText = EzSkinStrings.LN_TAIL_MASK_GRADIENT_HEIGHT,
|
||||
TooltipText = EzSkinStrings.LN_TAIL_MASK_GRADIENT_HEIGHT_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ManiaHoldTailMaskGradientHeight),
|
||||
KeyboardStep = 1.0f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.ManiaHoldTailAlpha,
|
||||
TooltipText = EzLocalizationManager.ManiaHoldTailAlphaTooltip,
|
||||
LabelText = EzSkinStrings.LN_TAIL_ALPHA,
|
||||
TooltipText = EzSkinStrings.LN_TAIL_ALPHA_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.ManiaHoldTailAlpha),
|
||||
KeyboardStep = 0.1f,
|
||||
},
|
||||
new SettingsSlider<double>
|
||||
{
|
||||
LabelText = EzLocalizationManager.NoteTrackLine,
|
||||
TooltipText = EzLocalizationManager.NoteTrackLineTooltip,
|
||||
LabelText = EzSkinStrings.NOTE_TRACK_LINE,
|
||||
TooltipText = EzSkinStrings.NOTE_TRACK_LINE_TOOLTIP,
|
||||
Current = ezSkinConfig.GetBindable<double>(Ez2Setting.NoteTrackLineHeight),
|
||||
},
|
||||
refreshSkinButton = new SettingsButton
|
||||
{
|
||||
Action = refreshSkin,
|
||||
Text = EzLocalizationManager.RefreshSaveSkin,
|
||||
TooltipText = EzLocalizationManager.RefreshSaveSkinTooltip
|
||||
Text = EzSkinStrings.REFRESH_SAVE_SKIN,
|
||||
TooltipText = EzSkinStrings.REFRESH_SAVE_SKIN_TOOLTIP
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user