message: Adjust road cost based on state and integrity
diff: @@ -578,9 +578,22 @@ void TileMap::AdjacentCost(void* state, std::vector<micropather::StateCost>* adj
  cost *= static_cast<float>(adjacentTile.index()) + 1.0f;
  }
  else if (adjacentTile.thingIsStructure() && adjacentTile.structure()->structureId() == StructureID::SID_ROAD)
  + {
  + Structure& road = *adjacentTile.structure();
  +
  + if (road.state() != StructureState::Operational)
  + {
  + cost *= static_cast<float>(TerrainType::Difficult) + 1.0f;
  + }
  + else if (road.integrity() < 80)
  + {
  + cost = 0.75f;
  + }
  + else
  {
  cost = 0.5f;
  }
  + }
  else
  {
  cost = FLT_MAX;
  