Added IDisabledTrait & rewrote upgrade code using a level-based approach.
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.
This commit is contained in:
@@ -34,7 +34,8 @@
|
||||
GenericName: Vehicle
|
||||
UpdatesPlayerStatistics:
|
||||
Cloak:
|
||||
RequiresUpgrade: cloak
|
||||
UpgradeTypes: cloak
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 15
|
||||
CloakDelay: 90
|
||||
CloakSound: trans1.aud
|
||||
@@ -47,7 +48,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Tank:
|
||||
@@ -89,7 +91,8 @@
|
||||
GenericName: Tank
|
||||
UpdatesPlayerStatistics:
|
||||
Cloak:
|
||||
RequiresUpgrade: cloak
|
||||
UpgradeTypes: cloak
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 15
|
||||
CloakDelay: 90
|
||||
CloakSound: trans1.aud
|
||||
@@ -102,7 +105,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Helicopter:
|
||||
@@ -142,7 +146,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Infantry:
|
||||
@@ -201,7 +206,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: hospitalheal
|
||||
UpgradeTypes: hospitalheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GlobalUpgradable:
|
||||
Upgrades: hospitalheal
|
||||
Prerequisites: hosp
|
||||
@@ -224,7 +230,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^CivInfantry:
|
||||
@@ -330,7 +337,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Ship:
|
||||
@@ -363,7 +371,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Building:
|
||||
|
||||
@@ -533,7 +533,7 @@ STNK:
|
||||
RevealsShroud:
|
||||
Range: 7c0
|
||||
Cloak:
|
||||
-RequiresUpgrade:
|
||||
-UpgradeTypes:
|
||||
InitialDelay: 90
|
||||
CloakDelay: 90
|
||||
CloakSound: trans1.aud
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Tank:
|
||||
@@ -93,7 +94,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Husk:
|
||||
@@ -217,7 +219,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Plane:
|
||||
@@ -249,7 +252,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Helicopter:
|
||||
|
||||
@@ -1300,14 +1300,16 @@ Rules:
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
^Tank:
|
||||
GivesBounty:
|
||||
Percentage: 0
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
^Infantry:
|
||||
GivesBounty:
|
||||
Percentage: 0
|
||||
@@ -1320,24 +1322,28 @@ Rules:
|
||||
DeathSounds@ZAPPED:
|
||||
VolumeMultiplier: 0.1
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
^Ship:
|
||||
GivesBounty:
|
||||
Percentage: 0
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
^Plane:
|
||||
GivesBounty:
|
||||
Percentage: 0
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
^Building:
|
||||
GivesBounty:
|
||||
Percentage: 0
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
E7:
|
||||
-Selectable:
|
||||
|
||||
|
||||
@@ -658,7 +658,8 @@ Rules:
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
InvulnerabilityUpgrade@UNKILLABLE:
|
||||
RequiresUpgrade: unkillable
|
||||
UpgradeTypes: unkillable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
SPY:
|
||||
Inherits: ^Infantry
|
||||
Buildable:
|
||||
|
||||
@@ -59,12 +59,16 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
|
||||
@@ -129,12 +133,16 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
|
||||
@@ -192,7 +200,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: hospitalheal
|
||||
UpgradeTypes: hospitalheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GlobalUpgradable:
|
||||
Upgrades: hospitalheal
|
||||
Prerequisites: hosp
|
||||
@@ -221,7 +230,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
|
||||
^Ship:
|
||||
@@ -263,14 +273,19 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
|
||||
^Plane:
|
||||
AppearsOnRadar:
|
||||
@@ -314,12 +329,16 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
|
||||
@@ -382,9 +401,12 @@
|
||||
ScriptTriggers:
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar:
|
||||
Upgrade: invulnerability
|
||||
|
||||
|
||||
@@ -655,7 +655,8 @@ DTRK:
|
||||
DemoTruck:
|
||||
-InvulnerabilityUpgrade@IRONCURTAIN:
|
||||
KillsSelf:
|
||||
RequiresUpgrade: invulnerability
|
||||
UpgradeTypes: invulnerability
|
||||
UpgradeMinEnabledLevel: 1
|
||||
Chronoshiftable:
|
||||
ExplodeInstead: yes
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
WithMakeAnimation:
|
||||
UpgradeManager:
|
||||
Cloak@CLOAKGENERATOR:
|
||||
RequiresUpgrade: cloakgenerator
|
||||
UpgradeTypes: cloakgenerator
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
|
||||
@@ -87,7 +88,8 @@
|
||||
ScriptTriggers:
|
||||
UpgradeManager:
|
||||
Cloak@CLOAKGENERATOR:
|
||||
RequiresUpgrade: cloakgenerator
|
||||
UpgradeTypes: cloakgenerator
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
|
||||
@@ -138,7 +140,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GivesExperience:
|
||||
DrawLineToTarget:
|
||||
ActorLostNotification:
|
||||
@@ -167,7 +170,8 @@
|
||||
DeathTypes: 6
|
||||
UpgradeManager:
|
||||
Cloak@CLOAKGENERATOR:
|
||||
RequiresUpgrade: cloakgenerator
|
||||
UpgradeTypes: cloakgenerator
|
||||
UpgradeMinEnabledLevel: 1
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
|
||||
@@ -238,7 +242,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GivesExperience:
|
||||
DrawLineToTarget:
|
||||
ActorLostNotification:
|
||||
@@ -258,15 +263,21 @@
|
||||
EmptyWeapon: UnitExplodeSmall
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@EMPDISABLE:
|
||||
RequiresUpgrade: empdisable
|
||||
UpgradeTypes: empdisable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
Palette: disabled
|
||||
DisableUpgrade@EMPDISABLE:
|
||||
RequiresUpgrade: empdisable
|
||||
UpgradeTypes: empdisable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar@EMPDISABLE:
|
||||
Upgrade: empdisable
|
||||
Color: 255,255,255
|
||||
Cloak@CLOAKGENERATOR:
|
||||
RequiresUpgrade: cloakgenerator
|
||||
UpgradeTypes: cloakgenerator
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
|
||||
@@ -310,7 +321,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GivesExperience:
|
||||
DrawLineToTarget:
|
||||
ActorLostNotification:
|
||||
@@ -330,15 +342,21 @@
|
||||
EmptyWeapon: UnitExplodeSmall
|
||||
UpgradeManager:
|
||||
UpgradeOverlay@EMPDISABLE:
|
||||
RequiresUpgrade: empdisable
|
||||
UpgradeTypes: empdisable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
Palette: disabled
|
||||
DisableUpgrade@EMPDISABLE:
|
||||
RequiresUpgrade: empdisable
|
||||
UpgradeTypes: empdisable
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
TimedUpgradeBar@EMPDISABLE:
|
||||
Upgrade: empdisable
|
||||
Color: 255,255,255
|
||||
Cloak@CLOAKGENERATOR:
|
||||
RequiresUpgrade: cloakgenerator
|
||||
UpgradeTypes: cloakgenerator
|
||||
UpgradeMinEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 2
|
||||
InitialDelay: 0
|
||||
CloakDelay: 90
|
||||
|
||||
@@ -375,7 +393,8 @@
|
||||
Ticks: 100
|
||||
HealIfBelow: 1
|
||||
DamageCooldown: 125
|
||||
RequiresUpgrade: selfheal
|
||||
UpgradeTypes: selfheal
|
||||
UpgradeMinEnabledLevel: 1
|
||||
GivesExperience:
|
||||
DrawLineToTarget:
|
||||
ActorLostNotification:
|
||||
|
||||
@@ -17,10 +17,13 @@ E1:
|
||||
Speed: 71
|
||||
Armament@PRIMARY:
|
||||
Weapon: Minigun
|
||||
RestrictedByUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
UpgradeMaxAcceptedLevel: 1
|
||||
Armament@ELITE:
|
||||
Weapon: M1Carbine
|
||||
RequiresUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMinEnabledLevel: 1
|
||||
AttackFrontal:
|
||||
TakeCover:
|
||||
RenderInfantry:
|
||||
|
||||
@@ -501,12 +501,15 @@ GATICK:
|
||||
Armament@PRIMARY:
|
||||
Weapon: 90mm
|
||||
LocalOffset: 384,0,128
|
||||
RestrictedByUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
UpgradeMaxAcceptedLevel: 1
|
||||
MuzzleSequence: muzzle
|
||||
Armament@ELITE:
|
||||
Weapon: 120mmx
|
||||
LocalOffset: 384,0,128
|
||||
RequiresUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMinEnabledLevel: 1
|
||||
MuzzleSequence: muzzle
|
||||
AttackTurreted:
|
||||
BodyOrientation:
|
||||
|
||||
@@ -624,11 +624,14 @@ BIKE:
|
||||
Range: 5c0
|
||||
Armament@PRIMARY:
|
||||
Weapon: BikeMissile
|
||||
RestrictedByUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
UpgradeMaxAcceptedLevel: 1
|
||||
LocalOffset: -128,-170,213, -128,170,213
|
||||
Armament@ELITE:
|
||||
Weapon: HoverMissile
|
||||
RequiresUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMinEnabledLevel: 1
|
||||
LocalOffset: -128,-170,213, -128,170,213
|
||||
AttackFrontal:
|
||||
AutoTarget:
|
||||
@@ -785,12 +788,15 @@ TTNK:
|
||||
Armament@PRIMARY:
|
||||
Weapon: 90mm
|
||||
LocalOffset: 256,0,256
|
||||
RestrictedByUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
UpgradeMaxAcceptedLevel: 1
|
||||
MuzzleSequence: muzzle
|
||||
Armament@ELITE:
|
||||
Weapon: 120mmx
|
||||
LocalOffset: 256,0,256
|
||||
RequiresUpgrade: eliteweapon
|
||||
UpgradeTypes: eliteweapon
|
||||
UpgradeMinEnabledLevel: 1
|
||||
MuzzleSequence: muzzle
|
||||
WithMuzzleFlash:
|
||||
RevealsShroud:
|
||||
|
||||
Reference in New Issue
Block a user