Merge pull request #6556 from pchote/upgrade-all-the-things

Add support for time-limited actor upgrades.
This commit is contained in:
Matthias Mailänder
2014-10-03 11:46:20 +02:00
43 changed files with 912 additions and 371 deletions

View File

@@ -568,7 +568,7 @@ Rules:
-GiveMcvCrateAction:
-GiveCashCrateAction:
-ExplodeCrateAction@fire:
-UnitUpgradeCrateAction@cloak:
-GrantUpgradeCrateAction@cloak:
ScriptTriggers:
Sequences:

View File

@@ -650,7 +650,7 @@ Rules:
-GiveMcvCrateAction:
-GiveCashCrateAction:
-ExplodeCrateAction@fire:
-UnitUpgradeCrateAction@cloak:
-GrantUpgradeCrateAction@cloak:
Sequences:

View File

@@ -211,7 +211,7 @@ Rules:
-GiveMcvCrateAction:
-RevealMapCrateAction:
-HideMapCrateAction:
-UnitUpgradeCrateAction@cloak:
-GrantUpgradeCrateAction@cloak:
-ExplodeCrateAction@nuke:
-ExplodeCrateAction@boom:
-ExplodeCrateAction@fire:

View File

@@ -19,7 +19,6 @@
Chronoshiftable:
Passenger:
CargoType: Vehicle
IronCurtainable:
HiddenUnderFog:
GainsExperience:
GivesExperience:
@@ -48,6 +47,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Tank:
AppearsOnRadar:
@@ -70,7 +70,6 @@
Chronoshiftable:
Passenger:
CargoType: Vehicle
IronCurtainable:
HiddenUnderFog:
GainsExperience:
GivesExperience:
@@ -102,6 +101,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Helicopter:
AppearsOnRadar:
@@ -140,6 +140,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Infantry:
AppearsOnRadar:
@@ -220,6 +221,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^CivInfantry:
Inherits: ^Infantry
@@ -326,6 +328,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Ship:
AppearsOnRadar:
@@ -359,6 +362,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Building:
AppearsOnRadar:

View File

@@ -14,7 +14,7 @@ CRATE:
ExplodeCrateAction@fire:
Weapon: Napalm.Crate
SelectionShares: 5
UnitUpgradeCrateAction@cloak:
GrantUpgradeCrateAction@cloak:
SelectionShares: 5
Effect: cloak
Upgrades: cloak

View File

@@ -46,6 +46,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Tank:
AppearsOnRadar:
@@ -95,6 +96,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Husk:
Health:
@@ -221,6 +223,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Plane:
AppearsOnRadar:
@@ -253,6 +256,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Helicopter:
Inherits: ^Plane

View File

@@ -11,7 +11,8 @@
Name: Concrete
Description: Provides a strong foundation that prevents\ndamage from the terrain.
RenderSprites:
RemoveOnConditions:
KillsSelf:
RemoveInstead: true
CONCRETEA:
Inherits: ^CONCRETE

View File

@@ -862,16 +862,17 @@ Rules:
Duration: 999999
KillCargo: yes
Range: 3
IronCurtainPower:
GrantUpgradePower@IRONCURTAIN:
Icon: invuln
ChargeTime: 30
Description: Invulnerability
LongDesc: Makes a unit invulnerable\nfor 3 seconds.
Duration: 3
Duration: 75
SelectTargetSound: slcttgt1.aud
BeginChargeSound: ironchg1.aud
EndChargeSound: ironrdy1.aud
Range: 1
Upgrades: invulnerability
Power:
Amount: 0
MINVV:
@@ -928,16 +929,17 @@ Rules:
Duration: 999999
KillCargo: yes
Range: 3
IronCurtainPower:
GrantUpgradePower@IRONCURTAIN:
Icon: invuln
ChargeTime: 30
Description: Invulnerability
LongDesc: Makes a unit invulnerable\nfor 3 seconds.
Duration: 3
Duration: 75
SelectTargetSound: slcttgt1.aud
BeginChargeSound: ironchg1.aud
EndChargeSound: ironrdy1.aud
Range: 1
Upgrades: invulnerability
Sequences:
miner:

View File

@@ -109,8 +109,8 @@ end
SetupAlliedUnits = function()
Utils.Do(Map.NamedActors, function(a)
if a.Owner == allies and a.HasProperty("Invulnerable") then
a.Invulnerable = true
if a.Owner == allies and a.HasProperty("AcceptsUpgrade") and a.AcceptsUpgrade("unkillable") then
a.GrantUpgrade("unkillable")
a.Stance = "Defend"
end
end)

View File

@@ -1295,19 +1295,20 @@ Rules:
Health:
HP: 200
^Vehicle:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
GainsExperience:
Upgrades:
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
^Tank:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
GainsExperience:
Upgrades:
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
^Infantry:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
GainsExperience:
@@ -1318,20 +1319,25 @@ Rules:
VolumeMultiplier: 0.1
DeathSounds@ZAPPED:
VolumeMultiplier: 0.1
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
^Ship:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
GainsExperience:
Upgrades:
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
^Plane:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
^Building:
ScriptInvulnerable:
GivesBounty:
Percentage: 0
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
Sequences:

View File

@@ -147,7 +147,7 @@ WorldLoaded = function()
Utils.Do(Snipers, function(a)
if a.Owner == soviets then
a.Invulnerable = true
a.GrantUpgrade("unkillable")
end
end)

View File

@@ -665,7 +665,8 @@ Rules:
HP: 200
AutoTarget:
InitialStance: Defend
ScriptInvulnerable:
InvulnerabilityUpgrade@UNKILLABLE:
RequiresUpgrade: unkillable
SPY:
Inherits: ^Infantry
Buildable:

View File

@@ -1,7 +1,7 @@
BADR:
Inherits: ^Plane
ParaDrop:
DropRange: 4c0
Inherits: ^Plane
Health:
HP: 300
Armor:
@@ -12,7 +12,6 @@ BADR:
Repulsable: False
RenderUnit:
WithShadow:
IronCurtainable:
Cargo:
MaxWeight: 10
-Selectable:
@@ -36,10 +35,10 @@ BADR:
RejectsOrders:
BADR.Bomber:
Inherits: ^Plane
AttackBomber:
Armament:
Weapon: ParaBomb
Inherits: ^Plane
Health:
HP: 300
Armor:
@@ -53,7 +52,6 @@ BADR.Bomber:
RenderUnit:
Image: badr
WithShadow:
IronCurtainable:
-Selectable:
-GainsExperience:
Tooltip:
@@ -113,7 +111,6 @@ MIG:
WithShadow:
LimitedAmmo:
Ammo: 8
IronCurtainable:
ReturnOnIdle:
Selectable:
Bounds: 40,29,0,1
@@ -173,7 +170,6 @@ YAK:
Ammo: 18
PipCount: 6
ReloadTicks: 11
IronCurtainable:
ReturnOnIdle:
Selectable:
Bounds: 30,28,0,2
@@ -224,7 +220,6 @@ TRAN:
Types: Infantry
MaxWeight: 8
PipCount: 8
IronCurtainable:
LeavesHusk:
HuskActor: TRAN.Husk
@@ -270,7 +265,6 @@ HELI:
WithShadow:
LimitedAmmo:
Ammo: 8
IronCurtainable:
Selectable:
Bounds: 36,28,0,0
LeavesHusk:
@@ -324,7 +318,6 @@ HIND:
Ammo: 24
PipCount: 6
ReloadTicks: 8
IronCurtainable:
Selectable:
Bounds: 38,32,0,0
WithMuzzleFlash:
@@ -345,7 +338,6 @@ U2:
Repulsable: False
RenderUnit:
WithShadow:
IronCurtainable:
AttackBomber:
-Selectable:
-GainsExperience:

View File

@@ -20,7 +20,6 @@
Chronoshiftable:
Passenger:
CargoType: Vehicle
IronCurtainable:
AttackMove:
HiddenUnderFog:
GainsExperience:
@@ -60,6 +59,13 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
UpgradeOverlay@IRONCURTAIN:
RequiresUpgrade: invulnerability
InvulnerabilityUpgrade@IRONCURTAIN:
RequiresUpgrade: invulnerability
TimedUpgradeBar:
Upgrade: invulnerability
^Tank:
AppearsOnRadar:
@@ -83,7 +89,6 @@
Chronoshiftable:
Passenger:
CargoType: Vehicle
IronCurtainable:
AttackMove:
HiddenUnderFog:
GainsExperience:
@@ -123,6 +128,13 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
UpgradeOverlay@IRONCURTAIN:
RequiresUpgrade: invulnerability
InvulnerabilityUpgrade@IRONCURTAIN:
RequiresUpgrade: invulnerability
TimedUpgradeBar:
Upgrade: invulnerability
^Infantry:
AppearsOnRadar:
@@ -207,6 +219,7 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
^Ship:
AppearsOnRadar:
@@ -247,6 +260,13 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
UpgradeOverlay@IRONCURTAIN:
RequiresUpgrade: invulnerability
InvulnerabilityUpgrade@IRONCURTAIN:
RequiresUpgrade: invulnerability
TimedUpgradeBar:
Upgrade: invulnerability
^Plane:
AppearsOnRadar:
@@ -290,6 +310,13 @@
HealIfBelow: 1
DamageCooldown: 125
RequiresUpgrade: selfheal
UpgradeManager:
UpgradeOverlay@IRONCURTAIN:
RequiresUpgrade: invulnerability
InvulnerabilityUpgrade@IRONCURTAIN:
RequiresUpgrade: invulnerability
TimedUpgradeBar:
Upgrade: invulnerability
^Helicopter:
Inherits: ^Plane
@@ -345,7 +372,14 @@
LuaScriptEvents:
Demolishable:
ScriptTriggers:
UpgradeManager:
UpgradeOverlay@IRONCURTAIN:
RequiresUpgrade: invulnerability
InvulnerabilityUpgrade@IRONCURTAIN:
RequiresUpgrade: invulnerability
TimedUpgradeBar:
Upgrade: invulnerability
^Defense:
Inherits: ^Building
TargetableBuilding:

View File

@@ -147,6 +147,12 @@ CRATE:
Units: e1,e1,e4,e4,e3,e3,e3
ValidRaces: soviet
TimeDelay: 4500
GrantUpgradeCrateAction@invuln:
SelectionShares: 5
Effect: invuln
Notification: ironcur9.aud
Upgrades: invulnerability
Duration: 600
RenderSprites:
Palette: effect
WithCrateBody:

View File

@@ -38,7 +38,6 @@ SS:
Selectable:
Bounds: 38,38
Chronoshiftable:
IronCurtainable:
RepairableNear:
AutoTarget:
InitialStance: ReturnFire
@@ -90,7 +89,6 @@ MSUB:
Selectable:
Bounds: 44,44
Chronoshiftable:
IronCurtainable:
RepairableNear:
AutoTarget:
InitialStance: ReturnFire
@@ -141,7 +139,6 @@ DD:
WithTurret:
AutoTarget:
Chronoshiftable:
IronCurtainable:
RepairableNear:
DetectCloaked:
CloakTypes: Underwater
@@ -206,7 +203,6 @@ CA:
Turret: secondary
AutoTarget:
Chronoshiftable:
IronCurtainable:
RepairableNear:
Explodes:
Weapon: UnitExplodeShip
@@ -238,7 +234,6 @@ LST:
Types: Infantry, Vehicle
MaxWeight: 5
PipCount: 5
IronCurtainable:
RepairableNear:
Explodes:
Weapon: UnitExplodeShip
@@ -284,7 +279,6 @@ PT:
WithTurret:
AutoTarget:
Chronoshiftable:
IronCurtainable:
RepairableNear:
DetectCloaked:
CloakTypes: Underwater

View File

@@ -19,7 +19,6 @@ MSLO:
Type: Wood
RevealsShroud:
Range: 5c0
IronCurtainable:
NukePower:
Icon: abomb
ChargeTime: 540
@@ -75,7 +74,6 @@ GAP:
HasMinibib: Yes
CreatesShroud:
Range: 6c0
IronCurtainable:
RenderShroudCircle:
Power:
Amount: -60
@@ -127,7 +125,6 @@ SPEN:
Production:
Produces: Ship, Submarine
PrimaryBuilding:
IronCurtainable:
-EmitInfantryOnSell:
RepairsUnits:
RallyPoint:
@@ -181,7 +178,6 @@ SYRD:
Production:
Produces: Ship, Boat
PrimaryBuilding:
IronCurtainable:
-EmitInfantryOnSell:
RepairsUnits:
RallyPoint:
@@ -217,18 +213,18 @@ IRON:
Range: 10c0
Bib:
HasMinibib: Yes
IronCurtainable:
IronCurtainPower:
GrantUpgradePower@IRONCURTAIN:
Icon: invuln
ChargeTime: 120
Description: Invulnerability
LongDesc: Makes a group of units invulnerable\nfor 20 seconds.
Duration: 20
Duration: 500
SelectTargetSound: slcttgt1.aud
InsufficientPowerSound: nopowr1.aud
BeginChargeSound: ironchg1.aud
EndChargeSound: ironrdy1.aud
DisplayRadarPing: True
Upgrades: invulnerability
SupportPowerChargeBar:
Power:
Amount: -200
@@ -260,7 +256,6 @@ PDOX:
Range: 10c0
Bib:
HasMinibib: Yes
IronCurtainable:
ChronoshiftPower:
Icon: chrono
ChargeTime: 120
@@ -314,7 +309,6 @@ TSLA:
MaxCharges: 3
ReloadTime: 120
AutoTarget:
IronCurtainable:
-RenderBuilding:
RenderRangeCircle:
-AcceptsSupplies:
@@ -361,7 +355,6 @@ AGUN:
AttackTurreted:
WithMuzzleFlash:
AutoTarget:
IronCurtainable:
-RenderBuilding:
RenderRangeCircle:
RangeCircleType: aa
@@ -399,7 +392,6 @@ DOME:
Range: 10c0
Bib:
ProvidesRadar:
IronCurtainable:
InfiltrateForExploration:
DetectCloaked:
Range: 10
@@ -428,7 +420,6 @@ PBOX:
Range: 6c0
Bib:
HasMinibib: Yes
IronCurtainable:
-AcceptsSupplies:
Turreted:
ROT: 255
@@ -476,7 +467,6 @@ HBOX:
Cloak:
InitialDelay: 125
CloakDelay: 60
IronCurtainable:
-AcceptsSupplies:
Turreted:
ROT: 255
@@ -534,7 +524,6 @@ GUN:
AttackTurreted:
WithMuzzleFlash:
AutoTarget:
IronCurtainable:
-RenderBuilding:
RenderRangeCircle:
-AcceptsSupplies:
@@ -575,7 +564,6 @@ FTUR:
BodyOrientation:
QuantizedFacings: 8
AutoTarget:
IronCurtainable:
RenderRangeCircle:
-AcceptsSupplies:
DrawLineToTarget:
@@ -620,7 +608,6 @@ SAM:
AttackTurreted:
WithMuzzleFlash:
AutoTarget:
IronCurtainable:
-RenderBuilding:
RenderRangeCircle:
RangeCircleType: aa
@@ -654,7 +641,6 @@ ATEK:
RevealsShroud:
Range: 10c0
Bib:
IronCurtainable:
GpsPower:
Icon: gps
OneShot: yes
@@ -712,7 +698,6 @@ WEAP:
RequiresPrerequisites: structures.soviet
Prerequisite: vehicles.soviet
PrimaryBuilding:
IronCurtainable:
ProductionBar:
Power:
Amount: -30
@@ -741,7 +726,6 @@ FACT:
Bib:
Production:
Produces: Building,Defense
IronCurtainable:
Valued:
Cost: 2500
Tooltip:
@@ -793,7 +777,6 @@ PROC:
StoresResources:
PipCount: 17
Capacity: 2000
IronCurtainable:
DrawLineToTarget:
CustomSellValue:
Value: 600
@@ -837,7 +820,6 @@ SILO:
StoresResources:
PipCount: 5
Capacity: 1500
IronCurtainable:
-RenderBuilding:
-EmitInfantryOnSell:
Power:
@@ -872,7 +854,6 @@ HPAD:
Production:
Produces: Aircraft, Helicopter
Reservable:
IronCurtainable:
ProductionBar:
PrimaryBuilding:
Power:
@@ -907,7 +888,6 @@ AFLD:
Production:
Produces: Aircraft, Plane
Reservable:
IronCurtainable:
AirstrikePower:
Icon: spyplane
ChargeTime: 180
@@ -962,7 +942,6 @@ POWR:
RevealsShroud:
Range: 4c0
Bib:
IronCurtainable:
DeadBuildingState:
Power:
Amount: 100
@@ -996,7 +975,6 @@ APWR:
RevealsShroud:
Range: 4c0
Bib:
IronCurtainable:
DeadBuildingState:
Power:
Amount: 200
@@ -1030,7 +1008,6 @@ STEK:
RevealsShroud:
Range: 4c0
Bib:
IronCurtainable:
Power:
Amount: -100
@@ -1065,7 +1042,6 @@ BARR:
Production:
Produces: Infantry, Soldier
PrimaryBuilding:
IronCurtainable:
ProductionBar:
ProvidesCustomPrerequisite:
Prerequisite: barracks
@@ -1101,7 +1077,6 @@ KENN:
Production:
Produces: Infantry, Dog
PrimaryBuilding:
IronCurtainable:
ProductionBar:
-EmitInfantryOnSell:
Power:
@@ -1138,7 +1113,6 @@ TENT:
Production:
Produces: Infantry, Soldier
PrimaryBuilding:
IronCurtainable:
ProductionBar:
ProvidesCustomPrerequisite:
Prerequisite: barracks
@@ -1169,7 +1143,6 @@ FIX:
HasMinibib: Yes
Reservable:
RallyPoint:
IronCurtainable:
RepairsUnits:
Interval: 10
WithRepairAnimation:
@@ -1200,7 +1173,6 @@ FACF:
RenderBuilding:
Image: FACT
Fake:
IronCurtainable:
-EmitInfantryOnSell:
Power:
Amount: -2
@@ -1231,7 +1203,6 @@ WEAF:
RenderBuildingWarFactory:
Image: WEAP
Fake:
IronCurtainable:
-EmitInfantryOnSell:
Power:
Amount: -2

View File

@@ -652,7 +652,9 @@ DTRK:
Weapon: MiniNuke
EmptyWeapon: MiniNuke
DemoTruck:
-IronCurtainable:
-InvulnerabilityUpgrade@IRONCURTAIN:
KillsSelf:
RequiresUpgrade: invulnerability
Chronoshiftable:
ExplodeInstead: yes

View File

@@ -157,6 +157,7 @@
DeathSounds@ZAPPED:
DeathSound: Zapped
DeathTypes: 6
UpgradeManager:
^CivilianInfantry:
Inherits: ^Infantry
@@ -243,6 +244,15 @@
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
UpgradeManager:
UpgradeOverlay@EMPDISABLE:
RequiresUpgrade: empdisable
Palette: disabled
DisableUpgrade@EMPDISABLE:
RequiresUpgrade: empdisable
TimedUpgradeBar@EMPDISABLE:
Upgrade: empdisable
Color: 255,255,255
^Tank:
AppearsOnRadar:
@@ -302,6 +312,15 @@
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
UpgradeManager:
UpgradeOverlay@EMPDISABLE:
RequiresUpgrade: empdisable
Palette: disabled
DisableUpgrade@EMPDISABLE:
RequiresUpgrade: empdisable
TimedUpgradeBar@EMPDISABLE:
Upgrade: empdisable
Color: 255,255,255
^Helicopter:
AppearsOnRadar:
@@ -348,6 +367,7 @@
ScriptTriggers:
Guard:
Guardable:
UpgradeManager:
^BlossomTree:
Tooltip:

View File

@@ -113,7 +113,6 @@ GAPILE:
Production:
Produces: Infantry
PrimaryBuilding:
IronCurtainable:
ProductionBar:
WithProductionOverlay@LIGHTS:
Sequence: production-lights
@@ -338,7 +337,6 @@ NAHAND:
Production:
Produces: Infantry
PrimaryBuilding:
IronCurtainable:
ProductionBar:
WithIdleOverlay@LIGHTS:
Sequence: idle-lights
@@ -1183,6 +1181,46 @@ NAOBEL:
Power:
Amount: -150
NAPULS:
Inherits: ^Building
Valued:
Cost: 1000
Tooltip:
Name: EMP Cannon
Description: Disables vehicles. \nRequires power to operate.\n Strong vs all ground units\n Cannot target Aircraft
Buildable:
Queue: Defense
BuildPaletteOrder: 90
Prerequisites: radar
Owner: nod,gdi
Building:
Footprint: xx xx
Dimensions: 2,2
RequiresPower:
DisabledOverlay:
-GivesBuildableArea:
Health:
HP: 500
Armor:
Type: Heavy
RevealsShroud:
Range: 8c0
Turreted:
ROT: 10
InitialFacing: 300
AttackTurreted:
Armament:
Weapon: EMPulseCannon
AutoTarget:
RenderRangeCircle:
RenderDetectionCircle:
DetectCloaked:
Range: 5
WithTurret:
Sequence: turret
Power:
Amount: -150
ANYPOWER:
Tooltip:
Name: Power Plant

View File

@@ -161,7 +161,6 @@ explosion:
pulse_explosion: pulsefx2
Start: 0
Length: *
Tick: 160
BlendMode: Additive
small_watersplash: h2o_exp2
Start: 0
@@ -279,6 +278,11 @@ canister:
Start: 0
Length: *
pulsball:
idle:
Start: 0
Length: *
dragon:
idle:
Start: 0

View File

@@ -698,6 +698,26 @@ nasam:
icon: samicon
Start: 0
napuls:
idle: ntpuls
Start: 0
ShadowStart: 3
damaged-idle: ntpuls
Start: 1
ShadowStart: 4
critical-idle: ntpuls
Start: 2
ShadowStart: 5
turret: ntpuls_a
Start: 0
Facings: 32
make: ntpulsmk
Start: 0
Length: 20
ShadowStart: 20
icon: pulsicon
Start: 0
gavulc:
idle: gtctwr
Start: 0

View File

@@ -1114,6 +1114,27 @@ TurretLaser:
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
EMPulseCannon:
ReloadDelay: 100
Range: 10c0
Report: PLSECAN2.AUD
Projectile: Bullet
Speed: 425
High: yes
Shadow: true
Angle: 62
Image: pulsball
Warhead@2Eff: CreateEffect
Explosion: pulse_explosion
# Dummy warhead to allow targeting
Warhead@target: SpreadDamage
Spread: 0
Damage: 0
Warhead@emp: GrantUpgrade
Range: 3c0
Duration: 250
Upgrades: empdisable
TiberiumExplosion:
Warhead@1Dam: SpreadDamage
Spread: 9