-
-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cancel previous template when producing a new template in factories #4151
Cancel previous template when producing a new template in factories #4151
Conversation
1feb8fe
to
5cb9151
Compare
5cb9151
to
14f1833
Compare
I don't know if it applies to queues that are looping (inf, 1 per) but it sure seems wasteful to cancel unit that could be moments away from being built, especially noticeable on high skilled multiplayer battles where every production cycle counts and cancelling something would have an impact. To be specific:
I rely daily on such mechanic of being able to quickly load those templates in and change their components without losing minute long production cycles. Either fix such condition to retain queue on such component change or do not break it, addition of a switch in settings and bind to toggle it (likely unset by default) would work. Video of thing I am talking about: https://github.com/user-attachments/assets/5aa522ff-6d70-46f4-a0a3-cc34848a91a4 Ideally in the video above I should not had to re-order template with new component, it should've picked it up automatically, at least that's what I expect from the game. I am not sure what people that do not use infinite repeat are smoking (instead they prefer to additionally keep an eye on factory orders to not run out for some reason, like they have nothing to do or what) but I hear complaints from them that factory actually retains the count of units even if new order of 9 is presented, if this is the "fix" then it only makes me easier to defeat them. Video of non-repeat orders that people dislike: https://github.com/user-attachments/assets/5817dc75-c7d5-4b97-94ba-0fc586ad057a |
Canceling units already in production has no impact at all, I do it all the time, or wait for old ones to finish being made. However, that's not the point, it's that clicking on a newer template increases the counter of an already non-existent droid template. You either don't notice it, or you have to cancel production by hand (which erases the entire queue) and it's a lot of useless clicks that take extra time. Also, It looks like a bug, so I reworked this mechanic the way it's supposed to work. If you don't want to lose a unit that is already being built then you should either wait or create a new template and delete the old one, I only change the mechanics of changing an existing template. BTW, if you update the template and click in the factory on another one, it will also cancel the droid in the queue (that's the way it's now): demo3.mp4I basically did the same thing for the updated template in this PR. |
What do you mean by that? losing partially produced unit is a very big deal actually.
No, this mechanic of not losing unit being built has been in-game for ages, I disagree with your opinion that it is a bug, such behaviour should be preserved. I would immediately open regression revert in case such mechanic being lost without adequate replacement. I will not even attempt to read cursed code that is behind production queues, I failed at it multiple times already, I don't know what counters you are talking about. Please replicate actions I took and publish a video of what happens (I am too lazy to build it myself). I would suggest to move to Russian speaking Discord server or Vaut's local TeamSpeak server (in case you did not figured out how to bypass DPI) for further communications on the matter (primarily in voice) because it seems like you are missing the pain point of majority of the players and changing "bug" for just bad mechanic (aka bad for bad exchange). Templates, queues and their modification can and should be properly implemented and customizable in the settings since it is being completely client-side as far as I checked. |
You're exaggerating. You can wait until the droid is completed, but in general I almost always cancel the process of manufacturing the old template because I want new droids to replace old ones as quickly as possible (especially since there's a unit limit). In constant energy shortage situations, it has no effect at all.
Did you even read what I wrote? If you change the template and choose another one in the list, the current droid in the queue will be canceled. This behavior is already there, but it doesn't work if you click on the updated template, which for some reason increments the counter of the old one and this is weird. |
No I am not gonna, I want factories to figure that out for me like they do right now.
You do you, but you are not the only guy playing the game and for me that behaviour is important. I want a tiger track tank-killer with 15 seconds left out of 45 or how long it produces to finish instead of being cancelled and losing bunch of production time, sometimes you are playing for different target point, sometimes goals differ in the game and you need mass of army rather than asap upgraded weapons.
Yes it will be and that is acceptable, but if template id or however it identifies them is the same and I click on same template it should remain producing old unit until it is done producing that one unit and then begin producing next one as per infinite repeat mode.
Not gonna argue that, something clearly should be done about it but it should be done properly. Production queue is handled on the client, give players ability to chose what they want, clearing partially produced old one or finishing it up and then producing next one, it should not be hard at all. As I said, ideally make it a hot-toggle that can be quickly changed mid-game, just like formation speed limiting. Bug becomes a feature when people start relying on it and at least I do rely on it so it is a feature. Do not break features. Just make so that when template is changed it keeps the queue count and client-side switch on cancel/finish production of old one and be done with it. Everyone will be happy, everyone will understand how it works and expect it to work. If you want you can even make another switch to retain "counter" or to clear it out on template change. So far I see this pr as just mangling what's already mangled without introducing clean and proper implementation as well as changing long standing feature behaviour. I still urge you to come into voice chat for further discussion in Russian, this discussion is getting too long for a github pr. |
This is complete nonsense, why would you want to increase the counter of a template that doesn't exist anymore, especially through a button that belongs to a different template? You either wait until the old one is completed or clear the queue through the right click and select a new one (which is not a good thing, that's also why I made this PR in the first place). Having said all that, choosing a completely different template already does the same thing as with this PR. This is not a feature at all, don't be absurd.
If you haven't realized how it works yet, the point is that factories don't store a pointer to a template, they store a full copy of it. But the pointer to the actual template is stored in the queue, and when you click on its updated version, it just increments the counter in the queue. It's possible to make a feature that the factory has an extra field for the old remaining template and it switches to it when selecting an updated one, and then to the actual template, but this is a new feature (and not a simple one, there are a lot of places where you have to change the code), it can be done after this PR which fixes the counter bug is merged. |
1e14cd0
to
14f1833
Compare
Less clicks, or else you have to click and cancel the entire production run manually. The behavior when you click on a new droid template, and it updates the counter at the old one is weird to say the least.
demo.mp4
If there are other templates in the queue, in this case the new template will be added to the end of the queue.
demo2.mp4