When a BuildLimit on an actor type is set and nearly reached, you could
shift-click the build palette and it would show it had five more items
queued when really less are allowed to be built. This fixes it so that
only the allowed number of items is enqueued, and thus showing the
correct number on the build palette.
The build time for a unit/structure was previously set at the time that
item was added to a production queue. This meant modifiers of the
production time (multiple production facilities in ClassicProductionQueue
or "instant build" in debug) were not applied to items already in a queue.
This change modifies ProductionQueue so that build time is set at the
instant an item starts building (reaches the front of it's queue). This was
done primarily to make the production bonuses in ClassicProductionQueue
more apparent, though it also makes the "instant build" debug option more
responsive when items are queued prior to enabling.
This also implements support for a per-provider
cooldown between placing structures, allowing mods
with multiple structure queues to rate-limit
placement around a single provider.
An initial delay parameter is included to
support units that deploy into a base provider and
require an initial setup time (e.g. the Surveyor
unit from C&C TW).
The range and time restrictions are not applied to
walls as a balance choice.
- avoid float modifiers because of rounding errors and desync
- try not to crash when the last production building is gone
- don't do LINQ queries on selfsame buildings if not required
ClassicProductionQueue gets support for new notification system
d2k now uses the ClassicProductionQueue system to avoid spamming
Starport has cheaper threshold prices
adds a new production queue but has long delivery times
also no starport price fluctuation to improve balancing
outsourced into notifications.yaml
triggered with PlayNotification(...)
(v2: less redundant code for PlayVoice/Notifications)
added harvester under attack and battlecontrol terminated