internal bool Use(Player player, Transform transform, ProjectileShotDirection direction, out RecordableAction resultingAction)
        {
            if (Uses > 0)
            {
                PlayerShot shot = new PlayerShot(PowerupType, player, transform.Pos.Xy, direction);
                shot.Do();

                resultingAction = shot;

                Uses--;
                return(true);
            }

            resultingAction = null;
            return(false);
        }