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:
Matija Hustić
2015-06-16 22:49:41 +01:00
parent 50679cd6c4
commit 03c80fb9c6
8 changed files with 96 additions and 5 deletions

View File

@@ -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)