public sealed override Boolean CanExecute(GenericSkill skillSlot)
        {
            var data = skillSlot.skillInstanceData as SniperPrimaryInstanceData;
            EntityStateMachine mach = data.isReloading ? data.reloadStatemachine : skillSlot.stateMachine;

            return(this.IsReady(skillSlot) &&
                   mach &&
                   !mach.HasPendingState() &&
                   mach.CanInterruptState(data.isReloading ? this.reloadInterruptPriority : base.interruptPriority));
        }