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; } } }