Upgradeable traits are notified whenever an upgrade of their declared types are granted or revoked. The traits maintain their own internal level counter, which is then used to enable or disable the trait functionality. A trait can register for multiple upgrade types which then all affect the internal level counter.
IDisabledTrait for identifying (and filtering) disabled traits
UpgradableTrait provides an abstract base for traits to support upgrade levels
Added IDisabledTrait support to GlobalButtonOrderGenerator
Includes rework by pchote with alterations.
In playtesting, the Flame Tank has shown to be too powerful, especially when combined en masse with recon bikes. This is because its cost was reduced to $600 from $800. Reducing a few traits in further playtesting has made it more balanced.
"Weak vs. Aircraft" is kind of ambiguous, so I replaced it. Instead, I specified which units can attack aircraft by giving them a separate line reading "Can attack Aircraft". All entries of "weak vs. aircraft" have been removed.
The values for loading and unloading time for harvesters are swapped.
This will keep the total amount of time for the harvest/unload cycle, but they will spend less time at the refinery. This will allow a refinery to support 3 harvesters operating from a nearby field, instead of the current 2.
One effect of this is that it will make buying a factory early game a bit more economical (though still a bit less so than buying only refineries with no factory), since more harvesters can be used per refinery, increasing demand for harvester production.
Artillery, MLRS and Mobile SAM all have visual range capped at 8. This makes scouts more useful to fire beyond visual range.
Buggy given visual range of 8 to match Humvee and Bike.
Capping light vehicle rotation speeds at 10.
Light Tank turret rotation will match vehicle rotation.
Stealth Tank rotation increased to keep it maneuverable vs. tough enemies like Mammoth.
HP reduced to 300 to compensate for new Heavy armor.
Flame tank does good damage but often dies before it can be cost-effective.
Since it is supposed to hunt infantry and light vehicles, this will help it do its job better. It will also be more resistant to flame infantry, which seems fitting. ;)
This is to make opening with a factory instead of more refineries a bit more feasible.
Given that there is a maximum limit of how many harvesters can operate from a refinery in TD, lowering the price shouldn't be a problem, since there can't be harvester spam. How many refineries you have will limit how many harvesters you can effectively use.
By comparison, RA harvester is $1100.
This wasn't fixable through offsets alone, I had to fix the flame shps. I accidentally used clock-wise ordering when renaming the flame anim frames, hence the "negative" facing.
The GDI APC and the Nod Mobile SAM Launcher are the premier anti-air units that are needed to defend each side from air attacks. Due to the problems of orca spam, they should be given a more prominent role.
Currently the APC is $700 and the M-SAM $750. This might be reasonable against a small amount of vehicles, but anti-air units need to be able to deal with spam. So they will be reduced in cost so they can be bought cheaper. This is important for the M-SAM especially since it's a dedicated anti-air unit.
To avoid the GDI APC being too good, the damage vs. heavy armor will be reduced a bit more, so it cannot serve the role of "light tank". It will still be able to fight light vehicles well, however.