Posted by: Froggiest1982
« on: December 23, 2020, 03:18:02 PM »Can't you let us live with the consequences of our bad decisions?
Yes, if I didn't have to live with them too
Standing Ovation
Can't you let us live with the consequences of our bad decisions?
Yes, if I didn't have to live with them too
Can't you let us live with the consequences of our bad decisions?
The code will currently only let you create valid orders, which includes checking previous orders, cargo, etc. so you can't unload something you don't have for example. That means any single template has valid orders.
However, it is isn't as simple as checking the first order of template B vs last order of template A because there are a lot of checks before the potential order list is created. There are 110 potential orders and you normally see a small subset. The existing order check code wouldn't be able to handle an order that would not normally have been an option in the first place.
Ultimately, I don't want to spend time chasing bugs caused by incompatible orders that I will never be able to find, so it is much simpler to avoid concatenated templates.
- Perhaps the issue is that the orders make a call to the database. Thus Order Template A and Order Template B could cause potentially game crashing issues. After all, Sol doesn't come up as a valid target in the Centauri Backwoods system... unless you place an order to jump to it first.
- Thus Order Template A being set somewhere outside the system could cause a problem on account of database shenanigans., perhaps?
Its because there is no guarantee that the orders in template B would make sense following the orders in template A. The amount of code required to check that would be huge. It's the same reason you can't delete an order from the middle of the list.
I've been wondering about this for a while. It seems like orders must be able to deal with being unable to complete already - anything that targets a transient object like a fleet or waypoint may find that its target doesn't exist. Any order that requires a colony to be on a body must handle the colony being deleted, or one that requires a component to be on a ship in the fleet must deal with it being destroyed. And you can cause all sorts of failures by setting orders to repeat.
So couldn't you just not check? If a fleet finds it can't perform its next order, it errors out and the player has to fix the problem they caused.
Its because there is no guarantee that the orders in template B would make sense following the orders in template A. The amount of code required to check that would be huge. It's the same reason you can't delete an order from the middle of the list.
To my surprise they are not. I had an order template where I load the 10 minerals in small quantity, ready to be delivered somewhere, but if you add the template, and then another, the 2nd erase everything. Meaning you can't have a ship service several planets by adding templates one by one.
Now consider the other possibility, that templates are additive. If you don't want that, just click on 'Remove All'. If you want that, do nothing. So clearly it seems there is only a benefit to have them additive and not replacing everything