Skip to content

Commit

Permalink
[+] Add config entries for new patches (#77)
Browse files Browse the repository at this point in the history
  • Loading branch information
clansty committed Oct 27, 2024
1 parent de3d376 commit 0af137b
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 34 deletions.
87 changes: 77 additions & 10 deletions AquaMai/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,41 @@ 不可以和 FontFix 一起使用
public bool CustomFont { get; set; }

[ConfigComment(
en: "Provide the ability to use custom note skins (advanced feature)",
zh: "提供自定义音符皮肤的能力(高级功能)")]
public bool CustomNoteSkin { get; set; }
en: """
Provide the ability to use custom skins (advanced feature)
Load skin textures from LocalAssets\Skins
""",
zh: """
提供自定义皮肤的能力(高级功能)
从 LocalAssets\Skins 中加载皮肤贴图
""")]
public bool CustomSkins { get; set; }

[ConfigComment(
en: """
More detailed judgment display
Requires CustomSkins to be enabled and the resource file to be downloaded
https://github.com/hykilpikonna/AquaDX/releases/download/nightly/JudgeDisplay4B.7z
""",
zh: """
更精细的判定表示
需开启 CustomSkins 并下载资源文件
https://github.com/hykilpikonna/AquaDX/releases/download/nightly/JudgeDisplay4B.7z
""")]
public bool JudgeDisplay4B { get; set; }

[ConfigComment(
en: """
Custom track start difficulty image (not really custom difficulty)
Requires CustomSkins to be enabled
Will load four image resources through custom skins: musicBase, musicTab, musicLvBase, musicLvText
""",
zh: """
自定义在歌曲开始界面上显示的难度贴图 (并不是真的自定义难度)
需要启用自定义皮肤功能
会通过自定义皮肤加载四个图片资源: musicBase, musicTab, musicLvBase, musicLvText
""")]
public bool CustomTrackStartDiff { get; set; }

[ConfigComment(
en: "Map touch actions to buttons",
Expand All @@ -200,16 +232,25 @@ 不可以和 FontFix 一起使用
[ConfigComment(
en: """
Delayed the animation of the song start screen
Hide "TRACK X" text and DX/Standard chart display box
For recording chart confirmation
""",
zh: """
推迟了歌曲开始界面的动画
隐藏“TRACK X”字样和 DX/标准谱面的显示框
录制谱面确认用
""")]
public bool TrackStartProcessTweak { get; set; }

[ConfigComment(
en: """
Disable the TRACK X text, DX/Standard display box, and the derakkuma at the bottom of the screen in the song start screen
For recording chart confirmation
""",
zh: """
在歌曲开始界面, 把 TRACK X 字样, DX/标准谱面的显示框, 以及画面下方的滴蜡熊隐藏掉
录制谱面确认用
""")]
public bool DisableTrackStartTabs { get; set; }

[ConfigComment(
en: "Cannot be used together with HanabiFix",
zh: """
Expand Down Expand Up @@ -303,14 +344,40 @@ 不可以和 CustomFont 一起使用

[ConfigComment(
en: """
Make the Critical judgment of BreakSlide flash like BreakTap
Align the judgment display of arc-shaped Slide with the judgment line accurately (it was slightly off before)
Make the judgment display of Wifi Slide different in up and down (originally all Wifi judgment displays are towards the center), just like in majdata
The reason for this bug is that SEGA forgot to assign EndButtonId to Wifi
""",
zh: """
这个 Patch 让 Wifi Slide 的判定显示有上下的区别 (原本所有 Wifi 的判定显示都是朝向圆心的), 就像 majdata 里那样
这个 bug 产生的原因是 SBGA 忘记给 Wifi 的 EndButtonId 赋值了
""")]
public bool FanJudgeFlip { get; set; }

[ConfigComment(
en: """
This Patch makes the Critical judgment of BreakSlide also flicker like BreakTap
Recommended to use with custom skins (otherwise the visual effect may not be good)
""",
zh: """
这个 Patch 让 BreakSlide 的 Critical 判定也可以像 BreakTap 一样闪烁
推荐与自定义皮肤一起使用 (否则视觉效果可能并不好)
""")]
public bool BreakSlideJudgeBlink { get; set; }

[ConfigComment(
en: """
Make the AutoPlay random judgment mode really randomize all judgments (down to sub-judgments)
// The original random judgment will only produce all 15 judgment results from Miss(TooFast) ~ Critical ~ Miss(TooLate)
// Here, it is changed to a triangular distribution to produce all 15 judgment results from Miss(TooFast) ~ Critical ~ Miss(TooLate)
// Of course, it will not consider whether the original Note really has a corresponding judgment (such as Slide should not have non-Critical Prefect)
""",
zh: """
让 BreakSlide 的 Critical 判定也可以像 BreakTap 一样闪烁
让圆弧形的 Slide 的判定显示与判定线精确对齐 (原本会有一点歪)
让 AutoPlay 的随机判定模式真的会随机产生所有的判定 (精确到子判定)
// 原本的随机判定只会等概率产生 Critical, LateGreat1st, LateGood, Miss(TooLate)
// 这里改成三角分布产生从 Miss(TooFast) ~ Critical ~ Miss(TooLate) 的所有 15 种判定结果
// 当然, 此处并不会考虑原本那个 Note 是不是真的有对应的判定 (比如 Slide 实际上不应该有小 p 之类的)
""")]
public bool SlideJudgeTweak { get; set; }
public bool RealisticRandomJudge { get; set; }

[ConfigComment(
en: "Cannot be used together with HideHanabi",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
using HarmonyLib;
using Manager;

namespace AquaMai.UX;
namespace AquaMai.Fix;

public class RealisticRandomJudge
{
// 让 AutoPlay 的随机判定模式真的会随机产生所有的判定 (精确到子判定)
// 原本的随机判定只会等概率产生 Critical, LateGreat1st, LateGood, Miss(TooLate)
// 这里改成三角分布产生从 Miss(TooFast) ~ Critical ~ Miss(TooLate) 的所有 15 种判定结果
// 当然, 此处并不会考虑原本那个 Note 是不是真的有对应的判定 (比如 Slide 实际上不应该有小 p 之类的)

[HarmonyPostfix]
[HarmonyPatch(typeof(GameManager), "AutoJudge")]
private static NoteJudge.ETiming RealAutoJudgeRandom(NoteJudge.ETiming retval)
Expand All @@ -22,4 +22,4 @@ private static NoteJudge.ETiming RealAutoJudgeRandom(NoteJudge.ETiming retval)
}
return retval;
}
}
}
22 changes: 1 addition & 21 deletions AquaMai/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ public override void OnInitializeMelon()
Patch(typeof(DebugFeature));
Patch(typeof(FixConnSlide));
Patch(typeof(FixSlideAutoPlay)); // Rename: SlideAutoPlayTweak -> FixSlideAutoPlay, 不过这个应该无副作用所以不需要改配置文件
Patch(typeof(FixCircleSlideJudge)); // 这个我觉得算无副作用, 可以常开
Patch(typeof(FixLevelDisplay));
// UX
Patch(typeof(CustomVersionString));
Expand All @@ -177,27 +178,6 @@ public override void OnInitializeMelon()
Patch(typeof(JudgeAdjust));
Patch(typeof(TouchPanelBaudRate));

// New Features & Changes
// 现在自定义皮肤相关的功能应该有 CustomSkin, JudgeDisplay4B, CustomTrackStartDiff
// 后续应该还会接着做, 所以也许可以考虑把自定义皮肤相关的部分单独分一类 ?
// Patch(typeof(CustomSkins)); // Rename: CustomNoteSkin -> CustomSkins
// Patch(typeof(JudgeDisplay4B));
// Patch(typeof(CustomTrackStartDiff));

// Patch(typeof(RealisticRandomJudge)); // 本来是用来调试判定显示4B的, 觉得还挺有趣就单独做成功能了

// Patch(typeof(DisableTrackStartTabs)); // 从 TrackStartProcessTweak 里单独拆出来了

// 以下三项拆分自 SlideJudgeTweak
// Patch(typeof(FanJudgeFlip));
// Patch(typeof(BreakSlideJudgeBlink));
// Patch(typeof(FixCircleSlideJudge)); // 这个我觉得算无副作用, 可以常开

// 这是一项往 Sinmai 里加各种新 note 的企划, 目前只完成了可高度自定义形状的星星
// 未来还会缓慢更新, 我建议单开一个功能分类
// 注意需要往 UserLib 里放入 System.Numeric.dll
// Patch(typeof(CustomNoteTypePatch));

# if DEBUG
Patch(typeof(LogNetworkErrors));
# endif
Expand Down

0 comments on commit 0af137b

Please sign in to comment.