修改本体,添加CrossTrackPoint兼容层,兼容StaticTrack Hold,为难度选项扩增全屏可选,添加和调整某些谱面

Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-07-18 11:39:55 +08:00
parent 40fa80cd70
commit db5dbe246a
125 changed files with 1510 additions and 1571 deletions

View File

@@ -20,26 +20,26 @@ namespace Ichni.Menu
public Color themeColor;
public Sprite avatar;
public Switch chapterSwitch;
[Searchable]
public List<SongItemData> songs = new List<SongItemData>();
[Button]
public void SetUpDefaultDifficulties()
{
foreach (SongItemData song in songs)
{
if(song.difficultyDataList.All(d => d.difficultyName != "Easy"))
if (song.difficultyDataList.All(d => d.difficultyName != "Easy"))
{
song.difficultyDataList.Add(new DifficultyData(
0, "Easy","Easy", 0, "",
0, "Easy", "Easy", 0, "",
new Color(0f, 0.7f, 0.2f, 1f)));
}
if (song.difficultyDataList.All(d => d.difficultyName != "Hard"))
{
song.difficultyDataList.Add(new DifficultyData(
1,"Hard", "Hard", 0, "",
1, "Hard", "Hard", 0, "",
new Color(1f, 0.2f, 0.2f, 1f)));
}
}
@@ -58,7 +58,7 @@ namespace Ichni.Menu
{
return (from song in songs where song.storyUnlockKey == key select song.songName).ToList();
}
public (int, int, int, int, int) GetChapterSaveInfo()
{
int beatmapCount = 0;
@@ -66,7 +66,7 @@ namespace Ichni.Menu
int finishedBeatmapCount = 0;
int fullComboCount = 0;
int allPerfectCount = 0;
foreach (SongItemData song in songs)
{
if (GameSaveManager.instance.SongSaveModule.songStatusSaves.TryGetValue(song.songName, out var songStatus))
@@ -79,65 +79,65 @@ namespace Ichni.Menu
{
thisSongFinished = true;
finishedBeatmapCount++;
if (beatmapSave.isFullCombo)
{
fullComboCount++;
}
if (beatmapSave.isAllPerfect)
{
allPerfectCount++;
}
}
}
if (thisSongFinished)
{
finishedSongCount++;
}
}
}
return (beatmapCount, finishedSongCount, finishedBeatmapCount, fullComboCount, allPerfectCount);
}
}
[InlineProperty]
[Serializable]
public class SongItemData
{
[FoldoutGroup("$songName", false)]
public string songName;
[FoldoutGroup("$songName")]
public string displaySongName;
[FoldoutGroup("$songName")]
public string composer;
[FoldoutGroup("$songName")]
public Switch songSwitch;
[FoldoutGroup("$songName")]
public Sprite illustration;
[FoldoutGroup("$songName")]
public string illustratorName;
[FoldoutGroup("$songName")]
public string additionalInformation;
[FoldoutGroup("$songName")]
public List<DifficultyData> difficultyDataList;
[FoldoutGroup("$songName")]
[FoldoutGroup("$songName")]
public string storyUnlockKey;
[FoldoutGroup("$songName")]
[FoldoutGroup("$songName")]
public string paymentUnlockKey;
}
[Serializable]
public class DifficultyData
{
@@ -148,13 +148,13 @@ namespace Ichni.Menu
public string charterName;
public Color color;
public bool isAvailable;
public bool ForceFullScreenJudge = false;
public DifficultyData()
{
}
public DifficultyData(int difficultyIndex, string difficultyName, string displayDifficultyName, int difficultyValue, string charterName, Color color)
public DifficultyData(int difficultyIndex, string difficultyName, string displayDifficultyName, int difficultyValue, string charterName, Color color, bool ForceFullScreenJudge = false)
{
this.difficultyIndex = difficultyIndex;
this.difficultyName = difficultyName;
@@ -163,8 +163,9 @@ namespace Ichni.Menu
this.difficultyValue = difficultyValue;
this.color = color;
this.isAvailable = true;
this.ForceFullScreenJudge = ForceFullScreenJudge;
}
public string GetDifficultyName()
{
return string.IsNullOrEmpty(displayDifficultyName) ? difficultyName : displayDifficultyName;