setMouseScreenPosition(screenLocation) {
    if (screenLocation != null) {
      this.mouseScreenPosition = cc.p(screenLocation.x, screenLocation.y);
      this.mouseGlobalScaleInvertedScreenPosition = UtilsEngine.transformPositionFromGlobalScale(this.mouseScreenPosition);
      this.mouseBoardUnroundedPosition = UtilsEngine.transformTileMapToBoard(this.mouseGlobalScaleInvertedScreenPosition);
      const mouseBoardPosition = UtilsEngine.transformTileMapToBoardIndex(this.mouseGlobalScaleInvertedScreenPosition);
      this.setMouseBoardPosition(mouseBoardPosition);

      // check state of dragging
      if (this.mouseDown && !this.mouseDragging && Date.now() - CONFIG.DRAGGING_DELAY * 1000.0 >= this.mouseDownAt) {
        const dx = this.mouseScreenPosition.x - this.mouseScreenDownPosition.x;
        const dy = this.mouseScreenPosition.y - this.mouseScreenDownPosition.y;
        if (Math.sqrt(dx * dx + dy * dy) >= CONFIG.DRAGGING_DISTANCE) {
          this.mouseDragging = true;
        }
      }

      this._updateFollowupFX();
      this._updateAttackFX();
    }
  }
Sets mouse screen position, board index position, and board position.
@param {Vec2} screenLocation