#include "Luftfahrzeug.h"
#include "PKW.h"
#include "Radfahrzeug.h"
#include "Verkehrsmittel.h"
#include <sstream>
#include <string>
// Verkehrsmittel - Position x: 0; Position y: 0
int Verkehrsmittel::getX() { return posX; }
int Verkehrsmittel::getY() { return posY; }
int Radfahrzeug::getRäder() { return anzahlRäder; }

void Verkehrsmittel::bewege(int x, int y) {
  this->posX = x;
  this->posY = y;
}

std::string Verkehrsmittel::text() {
  std::string Xstring = std::to_string(getX());
  std::string Ystring = std::to_string(getY());
  std::string Fahrzeug = "Verkehrsmittel";
  std::stringstream output;
  output << Fahrzeug << " - " << "Position x: " << Xstring
         << "; Position y: " << Ystring;
  return output.str();
}

std::string Luftfahrzeug::text() {
  std::string Xstring = std::to_string(getX());
  std::string Ystring = std::to_string(getY());
  std::string FlughöheString = std::to_string(maxFlughöhe);
  std::string Fahrzeug = "Luftfahrzeug";
  std::stringstream output;
  output << Fahrzeug << " - " << "Position x: " << Xstring
         << "; Position y: " << Ystring << "; max. Höhe: " << FlughöheString;
  return output.str();
}

std::string Radfahrzeug::text() {
  std::string Xstring = std::to_string(getX());
  std::string Ystring = std::to_string(getY());
  std::string RäderString = std::to_string(anzahlRäder);
  std::string Fahrzeug = "Radfahrzeug";
  std::stringstream output;
  output << Fahrzeug << " - " << "Position x: " << Xstring
         << "; Position y: " << Ystring << "; Anzahl Räder: " << RäderString;
  return output.str();
}

std::string PKW::text() {
  std::string Xstring = std::to_string(getX());
  std::string Ystring = std::to_string(getY());
  std::string Räderstring = std::to_string(getRäder());
  std::string TürenString = std::to_string(anzahlTüren);
  std::string Fahrzeug = "PKW";
  std::stringstream output;
  output << Fahrzeug << " - " << "Position x: " << Xstring
         << "; Position y: " << Ystring << "; Anzahl Räder: " << Räderstring
         << "; Anzahl Türen: " << TürenString;
  return output.str();
}
