整合SLSUtilities

This commit is contained in:
SoulliesOfficial
2026-01-17 11:35:49 -05:00
parent d94241f36c
commit 7ee2894a63
1338 changed files with 3051541 additions and 507034 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Cielonos.MainGame.Characters;
using Sirenix.OdinInspector;
using SLSUtilities.FunctionalAnimation;
@@ -68,6 +69,31 @@ namespace Cielonos.MainGame
{
private static readonly int ActionSpeed = Animator.StringToHash("ActionSpeed");
public bool CheckPlayability(RuntimeFuncAnim oldFuncAnim, RuntimeFuncAnim newFuncAnim)
{
if (oldFuncAnim != null)
{
var oldData = oldFuncAnim.funcAnimData;
var newData = newFuncAnim.funcAnimData;
FuncAnimInterval specifiedInterval = oldData.intervals.FirstOrDefault(interval =>
interval.intervalType == IntervalType.Custom && interval.intervalName == "SpecifiedActionDisruption");
if (specifiedInterval != null)
{
if (oldData.interactions.TryGetValue("SpecifiedActionDisruption", out List<string> interactions))
{
if (interactions.Contains(newData.animInfo.animationName))
{
return animationSc.currentIntervals.Any(interval => interval == specifiedInterval);
}
}
}
}
return CheckPlayability(newFuncAnim.funcAnimData.animInfo.disruptionType);
}
public bool CheckPlayability(DisruptionType disruptionType = DisruptionType.NormalAction)
{
if (character.statusSm.isDead)
@@ -130,7 +156,7 @@ namespace Cielonos.MainGame
var newRtFuncAnim = new RuntimeFuncAnim(funcAnimData, character);
if (!CheckPlayability(newRtFuncAnim.funcAnimData.animInfo.disruptionType))
if (!CheckPlayability(currentRuntimeFuncAnim, newRtFuncAnim))
{
return false;
}