This commit is contained in:
SoulliesOfficial
2026-07-14 09:35:37 -04:00
parent c16c2480ff
commit dbe7d99a90
15 changed files with 353 additions and 256 deletions

View File

@@ -11,6 +11,7 @@ namespace Ichni.RhythmGame.Beatmap
public List<string> badAudioList;
public List<string> missAudioList;
public List<string> holdStartAudioList;
public List<string> holdEndAudioList;
public NoteAudioSubmodule_BM()
{
@@ -25,20 +26,23 @@ namespace Ichni.RhythmGame.Beatmap
badAudioList = noteAudioSubmodule.badAudioList;
missAudioList = noteAudioSubmodule.missAudioList;
holdStartAudioList = noteAudioSubmodule.holdStartAudioList;
holdEndAudioList = noteAudioSubmodule.holdEndAudioList;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attachedElement as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList);
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList,
holdStartAudioList, holdEndAudioList);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
(attached as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attached as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList);
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList,
holdStartAudioList, holdEndAudioList);
}
#endregion
}

View File

@@ -42,6 +42,9 @@ namespace Ichni.RhythmGame
builder.Button("Hold Start", () =>
inspection.GenerateCompositeParameterWindow(this, "Hold Start Sound List",
nameof(holdStartAudioList)).SetAsStringList());
builder.Button("Hold End", () =>
inspection.GenerateCompositeParameterWindow(this, "Hold End Sound List",
nameof(holdEndAudioList)).SetAsStringList());
}
builder.Build();

View File

@@ -19,6 +19,8 @@ MonoBehaviour:
- {fileID: 8300000, guid: 659cb798f955c8f4bb530bf89f54e2cc, type: 3}
- {fileID: 8300000, guid: 617b904af4f9aa4479b11e83947d02fd, type: 3}
- {fileID: 8300000, guid: 2f7fd91efed73944e8bff00715bd1202, type: 3}
- {fileID: 8300000, guid: 6fe5a0c30cc449445b852ff0463a4205, type: 3}
- {fileID: 8300000, guid: eeef95cf1b0383642a5b27217fa0e681, type: 3}
SerializedBytesString:
Prefab: {fileID: 0}
PrefabModificationsReferencedUnityObjects: []
@@ -82,7 +84,7 @@ MonoBehaviour:
Data: DefaultStartHold
- Name: $v
Entry: 10
Data: 0
Data: 3
- Name:
Entry: 8
Data:
@@ -94,7 +96,7 @@ MonoBehaviour:
Data: DefaultEndHold
- Name: $v
Entry: 10
Data: 0
Data: 4
- Name:
Entry: 8
Data:

View File

@@ -14,6 +14,7 @@ namespace Ichni.RhythmGame
public List<string> badAudioList;
public List<string> missAudioList;
public List<string> holdStartAudioList;
public List<string> holdEndAudioList;
private NoteBase note => attachedGameElement as NoteBase;
#endregion
@@ -27,6 +28,7 @@ namespace Ichni.RhythmGame
badAudioList = new List<string>();
missAudioList = new List<string>();
holdStartAudioList = new List<string>();
holdEndAudioList = new List<string>();
generalJudgeAudioList.Add(defaultAudio);
@@ -38,14 +40,16 @@ namespace Ichni.RhythmGame
public NoteAudioSubmodule(NoteBase attachedGameElement, List<string> generalJudgeAudioList,
List<string> perfectAudioList, List<string> goodAudioList, List<string> badAudioList,
List<string> missAudioList, List<string> holdStartAudioList) : base(attachedGameElement)
List<string> missAudioList, List<string> holdStartAudioList,
List<string> holdEndAudioList = null) : base(attachedGameElement)
{
this.generalJudgeAudioList = generalJudgeAudioList;
this.perfectAudioList = perfectAudioList;
this.goodAudioList = goodAudioList;
this.badAudioList = badAudioList;
this.missAudioList = missAudioList;
this.generalJudgeAudioList = generalJudgeAudioList ?? new List<string>();
this.perfectAudioList = perfectAudioList ?? new List<string>();
this.goodAudioList = goodAudioList ?? new List<string>();
this.badAudioList = badAudioList ?? new List<string>();
this.missAudioList = missAudioList ?? new List<string>();
this.holdStartAudioList = holdStartAudioList ?? new List<string>();
this.holdEndAudioList = holdEndAudioList ?? new List<string>();
if (!HaveSameSubmodule)
{
@@ -59,6 +63,17 @@ namespace Ichni.RhythmGame
{
PlayAudio(holdStartAudioList);
}
public void PlayHoldEndAudio()
{
if (holdEndAudioList != null && holdEndAudioList.Count > 0)
{
PlayAudio(holdEndAudioList);
return;
}
PlayAudio(generalJudgeAudioList);
}
public void PlayNoteJudgeAudios(NoteBase.NoteJudgeType judgeType)
{
@@ -93,4 +108,4 @@ namespace Ichni.RhythmGame
}
#endregion
}
}
}

View File

@@ -82,10 +82,11 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules()
{
base.SetDefaultSubmodules();
noteAudioSubmodule ??= new NoteAudioSubmodule(this, new List<string>() { "DefaultEndHold" },
noteAudioSubmodule ??= new NoteAudioSubmodule(this, new List<string>(),
new List<string>(), new List<string>(),
new List<string>(), new List<string>(),
new List<string>() { "DefaultStartHold" });
new List<string>() { "DefaultStartHold" },
new List<string>() { "DefaultEndHold" });
}
#endregion
@@ -161,6 +162,7 @@ namespace Ichni.RhythmGame
{
isHolding = false;
isFinalJudged = true;
noteAudioSubmodule?.PlayHoldEndAudio();
}
}
@@ -172,7 +174,7 @@ namespace Ichni.RhythmGame
// 检查是否可以开始hold
if (songTime <= holdEndTime)
{
noteAudioSubmodule?.PlayNoteJudgeAudios(EditorManager.instance.currentJudgeType);
noteAudioSubmodule?.PlayHoldStartAudio();
isHolding = true;
holdingTime = songTime - exactJudgeTime;
}
@@ -252,4 +254,4 @@ namespace Ichni.RhythmGame
}
#endregion
}
}
}