ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

Upgrades

From ModEnc
Revision as of 04:27, 20 July 2024 by Testid123 (talk | contribs) (→‎What Upgrades CANNOT Have or Do)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Tiberian Dawn The Covert Operations Red Alert Counterstrike Aftermath Tiberian Sun Firestorm HyperPatch Red Alert 2 Yuri's Revenge Ares Generals Zero Hour Tiberium Wars Kane's Wrath
Flag: Upgrades
File(s): Rules(md).ini
Values: unsigned integers
Default: 0
Applicable to: BuildingTypes


This flag specifies the number of upgrades this BuildingType can accept.

Tutorial

If you have ever played Tiberian Sun, you should remember the upgrade system that GDI had. Upgrades are buildable animations placed on top of buildings that provide additional features such as extra power or different weapons. Although not used, this system also works in RA2 and YR.

;Rules(md).ini
[Animations]
xx= (whatever you call your PowerUp#Anim)

; Rules(md).ini
[PARENT_BUILDING]
Upgrades=3  ;how many upgrade slots does this building have?

[UPGRADE_BUILDING]
PowersUpBuilding=parent_building  ;which building can be upgraded by this upgrade? Takes one building and one building only.
PowersUpToLevel=-1  ;-1 means "take first available slot", whereas positive values specify the exact slot# to use.

; Art(md).ini
[PARENT_BUILDING]
PowerUp#Anim=  ;The animation to add to this building when powered up by one level
PowerUp#DamagedAnim=  ;Damaged version of the animation to add to this building when powered up by one level
PowerUp#LocXX=  ;The x offset from the buildings draw position for this powerup animation
PowerUp#LocYY=  ;The y offset from the buildings draw position for this powerup animation
PowerUp#LocZZ=  ;Adjustment to normal Z when rendering this animation. This could be used to make the animation appear behind the building.
PowerUp#YSort=  ;Amount to add to anims sorting position so that it renders in the correct order relative to other objects

Where # references a specific upgrade slot (numbered from 1 to rules(md).ini -> [PARENT] -> Upgrades= ).

If the PowerUp#Anim(Damaged) is not specified, it will simply use [UPGRADE]Image= animation. The PowerUp#Anim(Damaged) should be omitted, because specifying the Image= on the upgrade itself is the correct way to do this.

If the Location is unspecified, (0,0,0) will be used.

What Upgrades CAN Have or Do

  • Superweapons (this will add to the structure's superweapons, not override them)
  • Power output/drain
  • Weapon (Note: Superweapons override weapons, so structures may not have both)
  • AIBuildThis: In TS it works. In YR, AI has problem in building/rebuilding this if the parent building does not have positive power or being powerplants.
  • AIBasePlanningSide (in RA2 and beyond)

What Upgrades CANNOT Have or Do

Known Upgrade Problems

  • Upgrades can not add/override the DeploysInto/UndeploysInto= on their parent building.
  • Upgrades can not have two different weapons. Both Primary and Secondary must point to the same weapon if the upgrade is to provide it. If you set them to be two different weapons, they will fire only if both weapons can hit the target.
  • Upgrades with no Secondary defined will not fire when attacking. If you wish to use just the Primary weapon, you must specify "Secondary=none"
  • Upgrades can not give the player ability to build new unit(s). If you attempt to do so, each building built after the plugin causes the new unit(s) to disappear from the sidebar, making them unbuildable again.
  • The AuxBuilding superweapon logic does not work when upgrades are involved (either AuxBuilding=upgrade or the upgrade has the superweapon itself).
  • A building can provide a maximum of two superweapons - if a building has more than two superweapons when adding up the superweapons from the building itself with those provided from upgrades, only the first two superweapons will get considered.
  • Although unused in the vanilla games, the flags PowerUp#DamagedAnim are listed in art(md).ini – albeit with a spelling error. The last two words of the flags are switched around: e.g. they are listed as PowerUp#AnimDamaged while the correct format is PowerUp#DamagedAnim. The flags themselves, when typed in correctly, work as expected.