Added tesla boost capabilities.
Shock troopers and tesla tanks standing near a tesla coil will charge it up, enhancing its range, modifying the zap animation and allowing it to work even when player's power is down. The sound for charger weapons edited from https://www.freesound.org/people/JoelAudio/sounds/136542/
This commit is contained in:
@@ -13,23 +13,24 @@ using OpenRA.Traits;
|
||||
namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
[Desc("Needs power to operate.")]
|
||||
class RequiresPowerInfo : ITraitInfo
|
||||
class RequiresPowerInfo : UpgradableTraitInfo, ITraitInfo
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new RequiresPower(init.Self); }
|
||||
public override object Create(ActorInitializer init) { return new RequiresPower(init.Self, this); }
|
||||
}
|
||||
|
||||
class RequiresPower : IDisable, INotifyOwnerChanged
|
||||
class RequiresPower : UpgradableTrait<RequiresPowerInfo>, IDisable, INotifyOwnerChanged
|
||||
{
|
||||
PowerManager playerPower;
|
||||
|
||||
public RequiresPower(Actor self)
|
||||
public RequiresPower(Actor self, RequiresPowerInfo info)
|
||||
: base(info)
|
||||
{
|
||||
playerPower = self.Owner.PlayerActor.Trait<PowerManager>();
|
||||
}
|
||||
|
||||
public bool Disabled
|
||||
{
|
||||
get { return playerPower.PowerProvided < playerPower.PowerDrained; }
|
||||
get { return playerPower.PowerProvided < playerPower.PowerDrained && !IsTraitDisabled; }
|
||||
}
|
||||
|
||||
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
|
||||
|
||||
BIN
mods/ra/bits/litningupg.shp
Normal file
BIN
mods/ra/bits/litningupg.shp
Normal file
Binary file not shown.
BIN
mods/ra/bits/teslacharge.aud
Normal file
BIN
mods/ra/bits/teslacharge.aud
Normal file
Binary file not shown.
@@ -475,6 +475,17 @@ SHOK:
|
||||
Armament@GARRISONED:
|
||||
Name: garrisoned
|
||||
Weapon: PortaTesla
|
||||
Armament@CHARGE:
|
||||
Weapon: PortaCharge
|
||||
LocalOffset: 427,0,341
|
||||
TargetStances: Ally
|
||||
ForceTargetStances: None
|
||||
Cursor: ability
|
||||
OutsideRangeCursor: ability
|
||||
AmmoPool:
|
||||
PipCount: 0
|
||||
SelfReloads: true
|
||||
SelfReloadTicks: 70
|
||||
AttackFrontal:
|
||||
Voice: Attack
|
||||
AttackMove:
|
||||
|
||||
@@ -387,6 +387,9 @@ TSLA:
|
||||
Footprint: _ x
|
||||
Dimensions: 1,2
|
||||
RequiresPower:
|
||||
UpgradeTypes: tesla
|
||||
UpgradeMaxEnabledLevel: 2
|
||||
UpgradeMaxAcceptedLevel: 3
|
||||
Selectable:
|
||||
Bounds: 24,24,0,16
|
||||
SelectionDecorations:
|
||||
@@ -403,8 +406,17 @@ TSLA:
|
||||
HasMinibib: Yes
|
||||
WithChargeAnimation:
|
||||
Armament:
|
||||
UpgradeTypes: tesla
|
||||
UpgradeMaxEnabledLevel: 1
|
||||
UpgradeMaxAcceptedLevel: 3
|
||||
Weapon: TeslaZap
|
||||
LocalOffset: 0,0,427
|
||||
Armament@Upgraded:
|
||||
UpgradeTypes: tesla
|
||||
UpgradeMinEnabledLevel: 2
|
||||
UpgradeMaxAcceptedLevel: 3
|
||||
Weapon: TeslaZap.Upgraded
|
||||
LocalOffset: 0,0,427
|
||||
AttackCharge:
|
||||
ChargeAudio: tslachg2.aud
|
||||
MaxCharges: 3
|
||||
@@ -414,6 +426,8 @@ TSLA:
|
||||
DetectCloaked:
|
||||
Range: 8c0
|
||||
ProvidesPrerequisite@buildingname:
|
||||
Targetable:
|
||||
TargetTypes: Ground, C4, DetonateAttack, Structure, TeslaBoost
|
||||
|
||||
AGUN:
|
||||
Inherits: ^Defense
|
||||
|
||||
@@ -563,6 +563,17 @@ TTNK:
|
||||
Armament:
|
||||
Weapon: TTankZap
|
||||
LocalOffset: 0,0,213
|
||||
Armament@charge:
|
||||
Weapon: TTankCharge
|
||||
LocalOffset: 0,0,213
|
||||
TargetStances: Ally
|
||||
ForceTargetStances: None
|
||||
Cursor: ability
|
||||
OutsideRangeCursor: ability
|
||||
AmmoPool:
|
||||
PipCount: 0
|
||||
SelfReloads: true
|
||||
SelfReloadTicks: 120
|
||||
AttackFrontal:
|
||||
WithIdleOverlay@SPINNER:
|
||||
Sequence: spinner
|
||||
|
||||
@@ -160,6 +160,13 @@ litning:
|
||||
Start: 4
|
||||
Length: 4
|
||||
|
||||
litningupg:
|
||||
bright:
|
||||
Length: 4
|
||||
dim: litning
|
||||
Start: 4
|
||||
Length: 4
|
||||
|
||||
fb1:
|
||||
idle:
|
||||
Length: *
|
||||
|
||||
@@ -151,6 +151,21 @@ TeslaZap:
|
||||
Wood: 60
|
||||
DamageTypes: Prone50Percent, TriggerProne, ElectricityDeath
|
||||
|
||||
TeslaZap.Upgraded:
|
||||
ReloadDelay: 3
|
||||
Charges: true
|
||||
Range: 9c512
|
||||
Report: TESLA1.AUD
|
||||
Projectile: TeslaZap
|
||||
Image: litningupg
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 42
|
||||
Damage: 120
|
||||
Versus:
|
||||
None: 1000
|
||||
Wood: 60
|
||||
DamageTypes: Prone50Percent, TriggerProne, ElectricityDeath
|
||||
|
||||
PortaTesla:
|
||||
ReloadDelay: 70
|
||||
Range: 6c0
|
||||
@@ -164,6 +179,22 @@ PortaTesla:
|
||||
None: 1000
|
||||
DamageTypes: Prone50Percent, TriggerProne, ElectricityDeath
|
||||
|
||||
PortaCharge:
|
||||
ReloadDelay: 70
|
||||
Range: 2c0
|
||||
Report: teslacharge.aud
|
||||
Charges: yes
|
||||
ValidStances: Ally
|
||||
ValidTargets: TeslaBoost
|
||||
Projectile: TeslaZap
|
||||
Image: litningupg
|
||||
Warhead@charge: GrantUpgrade
|
||||
Range: 42
|
||||
Duration: 75
|
||||
Upgrades: tesla
|
||||
ValidStances: Ally
|
||||
ValidTargets: TeslaBoost
|
||||
|
||||
TTankZap:
|
||||
ReloadDelay: 120
|
||||
Range: 7c0
|
||||
@@ -177,6 +208,22 @@ TTankZap:
|
||||
None: 1000
|
||||
DamageTypes: Prone50Percent, TriggerProne, ElectricityDeath
|
||||
|
||||
TTankCharge:
|
||||
ReloadDelay: 120
|
||||
Range: 2c0
|
||||
Report: teslacharge.aud
|
||||
Charges: yes
|
||||
ValidStances: Ally
|
||||
ValidTargets: TeslaBoost
|
||||
Projectile: TeslaZap
|
||||
Image: litningupg
|
||||
Warhead@charge: GrantUpgrade
|
||||
Range: 42
|
||||
Duration: 125
|
||||
Upgrades: tesla, tesla, tesla
|
||||
ValidStances: Ally
|
||||
ValidTargets: TeslaBoost
|
||||
|
||||
DogJaw:
|
||||
ValidTargets: Infantry
|
||||
ReloadDelay: 10
|
||||
|
||||
Reference in New Issue
Block a user