diff --git a/data/json/items/vehicle/solar.json b/data/json/items/vehicle/solar.json index 925119485e0e5..b01b4c53e3d35 100644 --- a/data/json/items/vehicle/solar.json +++ b/data/json/items/vehicle/solar.json @@ -11,6 +11,7 @@ "material": [ "glass" ], "volume": "3 L", "bashing": 1, + "flags": [ "NO_REPAIR" ], "category": "veh_parts", "price": 90000 }, diff --git a/data/json/vehicleparts/vehicle_parts.json b/data/json/vehicleparts/vehicle_parts.json index 16f8fc2cb33dd..a97fe8adb7a9c 100644 --- a/data/json/vehicleparts/vehicle_parts.json +++ b/data/json/vehicleparts/vehicle_parts.json @@ -1737,7 +1737,7 @@ "item": "solar_panel", "difficulty": 4, "location": "on_roof", - "flags": [ "SOLAR_PANEL", "TOOL_WRENCH" ], + "flags": [ "SOLAR_PANEL", "TOOL_WRENCH", "NO_REPAIR" ], "breaks_into": [ { "item": "steel_lump", "count": [ 2, 4 ] }, { "item": "steel_chunk", "count": [ 2, 4 ] }, diff --git a/src/veh_type.cpp b/src/veh_type.cpp index 2dfdad49f69fa..dd665e618ed36 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -520,18 +520,21 @@ void vpart_info::check() if( part.has_flag( "TOOL_WRENCH" ) || part.has_flag( "WHEEL" ) ) { part.install_reqs = { { requirement_id( "vehicle_bolt" ), 1 } }; part.removal_reqs = { { requirement_id( "vehicle_bolt" ), 1 } }; - part.repair_reqs = { { requirement_id( "welding_standard" ), 5 } }; - + if( !part.has_flag( "NO_REPAIR" ) ) { + part.repair_reqs = { { requirement_id( "welding_standard" ), 5 } }; + } } else if( part.has_flag( "TOOL_SCREWDRIVER" ) ) { part.install_reqs = { { requirement_id( "vehicle_screw" ), 1 } }; part.removal_reqs = { { requirement_id( "vehicle_screw" ), 1 } }; - part.repair_reqs = { { requirement_id( "adhesive" ), 1 } }; - + if( !part.has_flag( "NO_REPAIR" ) ) { + part.repair_reqs = { { requirement_id( "adhesive" ), 1 } }; + } } else if( part.has_flag( "NAILABLE" ) ) { part.install_reqs = { { requirement_id( "vehicle_nail_install" ), 1 } }; part.removal_reqs = { { requirement_id( "vehicle_nail_removal" ), 1 } }; - part.repair_reqs = { { requirement_id( "adhesive" ), 2 } }; - + if( !part.has_flag( "NO_REPAIR" ) ) { + part.repair_reqs = { { requirement_id( "adhesive" ), 2 } }; + } } else if( part.has_flag( "TOOL_NONE" ) ) { // no-op