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); }