57 lines
1.2 KiB
C#
57 lines
1.2 KiB
C#
using RoR2;
|
|
using UnityEngine;
|
|
|
|
namespace EntityStates.Toolbot;
|
|
|
|
public class CooldownSpear : BaseToolbotPrimarySkillState
|
|
{
|
|
public static float baseDuration;
|
|
|
|
public static string enterSoundString;
|
|
|
|
private float duration;
|
|
|
|
private uint soundID;
|
|
|
|
private static int CooldownSpearStateHash = Animator.StringToHash("CooldownSpear");
|
|
|
|
private static int CooldownSpearParamHash = Animator.StringToHash("CooldownSpear.playbackRate");
|
|
|
|
public override void OnEnter()
|
|
{
|
|
base.OnEnter();
|
|
duration = baseDuration / attackSpeedStat;
|
|
if (!base.isInDualWield)
|
|
{
|
|
PlayAnimation("Gesture, Additive", CooldownSpearStateHash, CooldownSpearParamHash, duration);
|
|
}
|
|
soundID = Util.PlaySound(enterSoundString, base.gameObject);
|
|
}
|
|
|
|
public override void FixedUpdate()
|
|
{
|
|
base.FixedUpdate();
|
|
if (base.fixedAge >= duration)
|
|
{
|
|
outer.SetNextStateToMain();
|
|
}
|
|
}
|
|
|
|
public override void OnExit()
|
|
{
|
|
AkSoundEngine.StopPlayingID(soundID);
|
|
base.OnExit();
|
|
}
|
|
|
|
public override void Update()
|
|
{
|
|
base.Update();
|
|
base.characterBody.SetSpreadBloom(1f - base.age / duration, canOnlyIncreaseBloom: false);
|
|
}
|
|
|
|
public override InterruptPriority GetMinimumInterruptPriority()
|
|
{
|
|
return InterruptPriority.Skill;
|
|
}
|
|
}
|