OpenLoco / OpenLoco

An open source re-implementation of Chris Sawyer's Locomotion
https://openloco.io/
MIT License
1.22k stars 151 forks source link

Replace engines/cars without deleting all cargo #2499

Open ethan-xd opened 3 weeks ago

ethan-xd commented 3 weeks ago

Describe the solution you'd like It would be great to be able to delete and replace aging engines without destroying the cargo they are currently holding. Cargo should only be destroyed if the car that is holding the cargo is sold.

Describe alternatives you've considered Waiting for the train to unload at a station, stopping it when its en route with no cargo or just stopped at a loading zone before it has a chance to load. This can take a long time if I'm replacing an entire fleet.

Additional context This wouldn't change how picking up a vehicle loses its cargo.

duncanspumpkin commented 3 weeks ago

Changing engines involves picking up and picking up clears the cargo not much can do about that. Also feels a bit cheaty

ethan-xd commented 3 weeks ago

@duncanspumpkin I'm able to delete cars from and add cars to trains which are stopped (either with the red flag or otherwise) on the tracks without picking them up. I meant in this case, where the train stays on the tracks and you can't move it to it's destination as a cheat, don't clear the cargo.

https://github.com/OpenLoco/OpenLoco/assets/24442053/8456ca6c-3df4-46c6-9b96-90ff868cdb0c

LeftofZen commented 3 weeks ago

If you didn't pick up the train to replace the engine, then what happens when a train is on a piece of track that is exactly the same length as the old train, and the new engine is longer than the old? The train would technically crash because it isn't on the tracks any more. I think this edge case means you must always pick up the train

ethan-xd commented 3 weeks ago

@LeftofZen The game picks it up when it's too long so I reckon it would be fair to clear the cargo in that case.

LeftofZen commented 3 weeks ago

My point was more, you want this very specific behavior for a very specific circumstance, and you want a different behavior for other similar circumstances. This is usually an indication of poor game design as players might not know what inputs trigger one behavior and which inputs trigger another behavior, which leads to confusion and is not fun or enjoyable. Consistent and intuitive behavior is the goal and I don't yet see how to achieve that with what you want. If you have any ideas how to achieve it, let me know. Personally I think just having a cheat option to keep cargo on train pickup is good enough here, what do you think?

ethan-xd commented 3 weeks ago

Ah, I see what you mean. You make a good point.

A cheat option for it could be good, as it could just be a pinky promise with yourself to not cheat by putting the train down by the destination.

A potential solution to work around the problem could be to just not let you add a new car if it's too long? But that's probably a more annoying experience.

Anyway, thanks for talking with me about it.

duncanspumpkin commented 3 weeks ago

@duncanspumpkin I'm able to delete cars from and add cars to trains which are stopped (either with the red flag or otherwise) on the tracks without picking them up. I meant in this case, where the train stays on the tracks and you can't move it to it's destination as a cheat, don't clear the cargo.

Loco_2024-06-10_14-05-42.-.Trim.mp4

Underneath the game is picking up the train and placing it back down again. It's just you don't see this.