//  Overloads TechnoTypeClass::GetCost 
int BuildingTypeClass::GetCost() {

  int Price = (TechnoTypeClass *)this->GetCost();
  
  vector<AircraftTypeClass *> padAir = Rules->PadAircraft;
  if( this == padAir[0]->Dock[0] ) {
    if( !Rules->SeparateAircraft ) {
      int extraPrice = padAir[1]->GetCost();
      extraPrice += padAir[0]->GetCost();
      Price -= extraPrice / 2;
    }
  }
  
  if( this->FreeUnit ) {
    int delta = Price - this->FreeUnit->GetCost();
    Price = max(delta, 0); // if delta < 0, Price = 0
  }
  
  return Price;
}