using Cielonos.MainGame.Characters;
using Cielonos.MainGame.Effects.Feedback;
using SLSUtilities.Feedback;
using SLSUtilities.FunctionalAnimation;
namespace Cielonos.MainGame.Inventory.Collections
{
public partial class FutureWand
{
///
/// 播放轻攻击连段动画,并消耗轻攻击功能。
///
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;
}
///
/// 播放重攻击连段动画,并消耗重攻击功能。
///
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("Time");
if (timeScaleModifierClip != null)
{
timeScaleModifierClip.duration = duration;
}
});
}
functionSm["Lightning"].Execute();
}
return played;
}
}
}