protected override void ComputeVelocity() { move = Vector2.zero; if (isControllingLaser) { //Special stuff for lasering // player control switches to geyser // do nothing? } else if (isAttacking && !canMoveWhileAttacking) { attackMovementDelegate?.Invoke(); } else if (isAttacking && canMoveWhileAttacking) { DetectBasicHorizontalMovement(); attackMovementDelegate?.Invoke(); } else { DetectBasicHorizontalMovement(); DetectJump(); DetectDash(); } targetVelocity = move * maxSpeed; }