endless-sky / endless-sky

Space exploration, trading, and combat game.
https://endless-sky.github.io/
GNU General Public License v3.0
5.83k stars 1.03k forks source link

Cargo delivery mission conflicts #2404

Closed ghost closed 6 years ago

ghost commented 7 years ago

System was not allowing me to accept a "pickup and return" mission as well as a straight "cargo delivery" mission.

Cargo Delivery mission: Deliver 25t (my hold is 40t) to Miaplacidus Pickup and Return: Pick up 18t from Miaplacidus and return it to Sol

Ideally, I should be able to accept both missions, but the second option grays out when I accept the first, because I cannot hold 25t+18t simultaneously. However, the way the missions are set up, I would be dropping off the 25t in Miaplacidus and thus should be able to carry the 18t back. The Pickup and Return type quests should allow you to accept if your max capacity meets the requirements, regardless of your current capacity. Just my $0.02

Amazinite commented 7 years ago

Pick up and return?

ghost commented 7 years ago

Yes. The mission title read something like "Party Supplies for Luna" It showed the mission source as the Sol system, where I was currently docked. When I select it, the mission highlighted the Miaplacidus system as well as Sol. The mission asked me to travel to the Miaplacidus system, pick up 18t of party supplies, then bring them back to Luna by a certain date.

tehhowch commented 7 years ago

This is to prevent a United Airlines-esque "overbooked" scenario.

here's the mission: https://github.com/endless-sky/endless-sky/blob/26bcb6a0f273bed791e36393ecd37c902e6c3534/data/paradise%20world%20jobs.txt#L240

It may be possible to move the give cargo/passengers action to within the on stopover block, but I don't know of a way to verify that the player has available cargo space to receive the cargo. Moving the cargo line without such a check would probably make a full hold have negative space remaining, and then before liftoff you would have to sell regular commodities/fire crew/abort other jobs.

edit: moving the cargo line to within on stopover results in an unrecognized condition expression when starting the game. So, without changes to source, you are forbidden from over-promising your bunks and cargo hold to multiple parties.

EndrosG commented 7 years ago

@tehhowch : AFAIK the game has currently no mechanics to add the mission cargo anywhere else when on the source. The Wiki says:

If you want to retrieve passengers or cargo by boarding a ship, set up the mission so that you are considered to be carrying them from the very start (for example, the cargo might be called "reserved mission space" or "mission cargo"). Otherwise, it would be possible for the player to board a ship and then discover they do not have enough cargo or passenger space to complete the mission.

This is not exactly the topic of this issue, but related. Regarding your comment: the game checks upon TakeOff, whether the active fleet of a player has enough cargo space free. It will sell any commodities first, and if that is not enough, it will fail some mission(s). Look for "TakeOff" in the code. I just read it earlier today because I was again thinking about my request #2355. I checked if I eventually might do it myself and did read the current code for this first. Right now I prefer thinking about in-space-cargo-transfer instead of a different on-takeoff-distribution.

EndrosG commented 7 years ago

@MD-BoD : the "problem" with the current game implementation is, that such a job would immediately fail because the player would be missing the mission (job) cargo. As if you would have lost the ship carrying it. Mission failed. The same "problem" also might need to be addressed for mining jobs / missions, issue #2101.