Files
Cielonos/Assets/Scripts/MainGame/Items/MainWeapons/FutureWand/FutureWand_Combat.cs
SoulliesOfficial b047eb5e6d 引雷标记extender
2026-07-26 09:42:03 -04:00

93 lines
2.9 KiB
C#

using Cielonos.MainGame.Characters;
using Cielonos.MainGame.Effects.Feedback;
using SLSUtilities.Feedback;
using SLSUtilities.FunctionalAnimation;
namespace Cielonos.MainGame.Inventory.Collections
{
public partial class FutureWand
{
/// <summary>
/// 播放轻攻击连段动画,并消耗轻攻击功能。
/// </summary>
private bool PlayNormalAttackL(CharacterBase target, string nextNodeName)
{
bool played = PlayTargetedAnimation("Attack" + nextNodeName, target, 5f);
if (played)
{
functionSm["LightAttack"].Execute();
}
return played;
}
private bool PlayCubicAttack(CharacterBase target)
{
bool played = PlayTargetedAnimation("GenerateCubicBolts", target, 5f);
if (played)
{
functionSm["CubicAttack"].Execute();
}
return played;
}
private bool PlayHoldAttackStart(CharacterBase target)
{
bool played = PlayTargetedAnimation("HoldAttackStart", target);
return played;
}
private bool PlayHoldAttackEnd()
{
return PlayTargetedAnimation("HoldAttackEnd");
}
private bool PlayReleaseSpinArea()
{
if (PlayTargetedAnimation("ReleaseSpinArea"))
{
functionSm["SpinArea"].Execute();
return true;
}
return false;
}
/// <summary>
/// 播放重攻击连段动画,并消耗重攻击功能。
/// </summary>
private bool PlayNormalAttackR(CharacterBase target, string nextNodeName)
{
bool played = PlayTargetedAnimation("Attack" + nextNodeName, target, 5f);
if (played)
{
functionSm["HeavyAttack"].Execute();
}
return played;
}
private bool PlayLightning(CharacterBase target, bool playStartupFeedback = false)
{
bool played = PlayTargetedAnimation("GenerateLightning", target);
if (played)
{
if (_hasLightningConcentrator && playStartupFeedback)
{
float duration = fullBodyFuncAnimSm.collection["GenerateLightning"]
.Interval(IntervalType.Startup).Duration * 2f;
player.feedbackSc.PlayFeedback("DisruptionStartup", runtimeFeedback =>
{
FeedbackClip timeScaleModifierClip = runtimeFeedback.Clip<TimeScaleModifierAction>("Time");
if (timeScaleModifierClip != null)
{
timeScaleModifierClip.duration = duration;
}
});
}
functionSm["Lightning"].Execute();
}
return played;
}
}
}