Cataclysm-dda: enable more parts salvageable from vehicles

Created on 19 Sep 2016  ·  17Comments  ·  Source: CleverRaven/Cataclysm-DDA

Im sure this has been discussed before but i wanted to make a ticket for reference. Just a suggestion.

rubber hose - so many hoses on a car
spring - hood latches, suspension coils on some (though not easy to extract, possible by bashing though)
horn - (amplifier circuit)
radio - radio, amplifier circuit, wiring, etc

<Enhancement / Feature> Good First Issue Vehicles [JSON]

Most helpful comment

There definitely should be copper wire and copper pipes, aluminum, plastic chunks, ect.
The problem is you would have to up the cost of building vehicle parts to include the salvaged components.

All 17 comments

A generally good idea. Even if you can't code it this would be a reasonably concrete issue on which someone could write a specification.

Couldn't this be achieved just by having disassemble recipes on the most likely components? Pretty sure the stereo is already disassembable (Yes, I just invented that word.)

Engines should be possible to break down into various goodies, including the spare parts that are needed to fix faulty engines. (But maybe that would make it too easy to fix faulty engines?)

Perhaps doors and trunks should have more specialized components than they have today, so that they both can break down into more interesting stuff, and require a bit more work to create?

In general, this might mess up balance for certain components, since vehicles are so plentiful.

There definitely should be copper wire and copper pipes, aluminum, plastic chunks, ect.
The problem is you would have to up the cost of building vehicle parts to include the salvaged components.

Closing - old and no movement. Feel free to ping me here if there's still interest, or make a new issue.

we got labels and participants, do they not imply interest

labels are real

I do think this one is desirable to keep around, it's a major piece of the vehicle faults system.

@kevingranade
@busterbogheart

Is there a good place we can record information on what should be possible to obtain?

Thoughts:

  • Hoses
  • Wires (Everywhere)
  • Fuses
  • LCD Screens (In radios and some entertainment units)
  • Knobs (Not sure we even have those in game yet?)
  • Springs (Small ones from various components, large ones from suspension system)
  • Shocks (Suspension system)
  • Capacitors (Radios, likely elsewhere)
  • Seats (Cloth, leather, etc)
  • All the components of an internal combustion engine and the components it needs to operate smoothly

    • Air filter

    • Oil filter

    • Radiators

    • Water pumps

    • Oil pumps

    • Fuel Pumps

    • Spark plugs

    • Etc.

Github doesn't really have a decent mechanism for this, issues shouldn't accumulate lists like that because the issues attached to them will get closed, the repository isn't a great place because design docs end up going out of sync...
Add a page on the wiki and stash it there?

@kevingranade

I can see about doing that in the short term, in the medium term it may be prudent to figure out a better method for handling such discussions and design documents (Jira, Trello, something else)

I'll be chatting with some people in project management to see if they have any suggestions for such a project.

Hey, this looks like it just requires adding an engines.json file in /uncraft/vehicle. That's about my speed. Here's my first shot at uncraft code for a v8 gas engine. Does this look about right? I'm handier than most but I haven't broken down an engine.

[
{
"type": "uncraft",
"result": "v8_combustion",
"skill_used": "mechanics",
"difficulty": 4,
"time": 60000,
"qualities": [
{ "id": "SCREW","level": 1 },
{ "id": "WRENCH","level": 1 },
{ "id": "WRENCH_FINE”,”level": 1 },
{ "id": "SAW_M","level": 1 }
],
"tools": [ [ [ "soldering_iron", 40 ], [ "toolset", 40 ] ] ],
"components": [
[ [ "drivebelt", 1 ] ],
[ [ "filter_air", 1 ] ],
[ [ "drivebelt", 1 ] ],
[ [ "filter_liquid", 1 ] ],
[ [ "motor_small", 1 ] ],
[ [ "power_supply", 1 ] ],
[ [ "cable", 40 ] ],
[ [ "bearing", 20 ] ],
[ [ "scrap", 8 ] ],
[ [ "steel_chunk", 8 ] ]
]
},

That looks like a goid start, but it seems pretty light.
I think our best bet is having @Rivet-the-Zombie take a look at it.

Thank you, @kevingranade.
It looks like a very good start indeed! The various components feel right already, but I wonder how much scrap is being recovered here versus being lost. Is the overall weight of the output close to the original weight? Might want to include some aluminum in the smaller gasoline engines too.
I'd probably include tools for prying and hammering as well.

What if we disassemble in stages, like stage 1 is remove everything held on
by bolts, leaving an "engine block" part?
I think if you replace the scrap with an engine block and add something to
represent the radiator it'll be pretty close.

I like that idea of creating engine blocks to absorb the missing weight and volume. Looking through the gas and diesel engine types, we only have five size classes of engine blocks. I'm having trouble convincing the game to see this though. I've created the engine blocks in items/generic/spares like so:

,
{
"id": "engine_block_massive",
"copy-from": "spare_part",
"type":"GENERIC",
"name": "large engine block",
"description": "The beginnings of a massive gas or diesel engine. It's not good for much of anything on its own.",
"material": "iron",
"weight": 280000,
"volume": 25,
"price": 30000,
},
{
"id": "engine_block_large",
"copy-from": "spare_part",
"type":"GENERIC",
"name": "large engine block",
"description": "The beginnings of a large gas or diesel engine. It's not good for much of anything on its own.",
"material": "iron",
"weight": 190000,
"volume": 20,
"price": 20000,
},
{
"id": "engine_block_medium",
"copy-from": "spare_part",
"type":"GENERIC",
"name": "medium engine block",
"description": "The beginnings of a medium size gas or diesel engine. It's not good for much of anything on its own.",
"material": "iron",
"weight": 90000,
"volume": 10,
"price": 10000,
},
{
"id": "engine_block_small",
"copy-from": "spare_part",
"type":"GENERIC",
"name": "medium engine block",
"description": "The beginnings of a medium size gas or diesel engine. It's not good for much of anything on its own.",
"material": "iron",
"weight": 40000,
"volume": 5,
"price": 5000,
},
{
"id": "engine_block_tiny",
"copy-from": "spare_part",
"type":"GENERIC",
"name": "tiny engine block",
"description": "The beginnings of a tiny size gas or diesel engine. It's not good for much of anything on its own.",
"material": "iron",
"weight": 8000,
"volume": 2,
"price": 3500,
}

...but I can't debug them into existence and I can't disassemble using the proper tools. Is there a third step I'm missing? This is my first effort at recipes. These are the disassemble recipes I've created:

[
{
"type": "uncraft",
"result": "v8_combustion",
"skill_used": "mechanics",
"difficulty": 4,
"time": 40000,
"qualities": [
{ "id": "SCREW","level": 1 },
{ "id": "WRENCH","level": 1 },
{ "id": "WRENCH_FINE","level": 1 }
],
"components": [
[ [ "drivebelt", 1 ] ],
[ [ "filter_air", 1 ] ],
[ [ "drivebelt", 1 ] ],
[ [ "filter_liquid", 1 ] ],
[ [ "motor_small", 1 ] ],
[ [ "well_pump", 2 ] ],
[ [ "power_supply", 1 ] ],
[ [ "cable", 40 ] ],
[ [ "engine_block_large", 1 ] ],
[ [ "metal_tank_little", 1 ] ]
]
},{
"type": "uncraft",
"result": "v8_diesel",
"skill_used": "mechanics",
"difficulty": 4,
"time": 50000,
"qualities": [
{ "id": "SCREW","level": 1 },
{ "id": "WRENCH","level": 1 },
{ "id": "WRENCH_FINE","level": 1 }
],
"components": [
[ [ "drivebelt", 1 ] ],
[ [ "filter_air", 1 ] ],
[ [ "drivebelt", 1 ] ],
[ [ "filter_liquid", 1 ] ],
[ [ "motor_small", 1 ] ],
[ [ "well_pump", 1 ] ],
[ [ "pump_complex", 1 ] ],
[ [ "power_supply", 1 ] ],
[ [ "cable", 40 ] ],
[ [ "glowplug", 1 ] ],
[ [ "engine_block_large", 1 ] ],
[ [ "metal_tank_little", 1 ] ]
]
},

]

Thanks, I think this will be a good feature for the game.

Odd that it won't let you debug one, when you start cataclysm, does it print any errors, or perhaps stall while starting up?
The item loader is pretty good about throwing an error if an item definition has a problem.

Looks like you just have some misplaced commas.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

railmonkey picture railmonkey  ·  43Comments

nexusmrsep picture nexusmrsep  ·  64Comments

Coolthulhu picture Coolthulhu  ·  42Comments

eirikwang picture eirikwang  ·  38Comments

chriseich21 picture chriseich21  ·  67Comments