From 03c80fb9c634b8def72c450e6974359740e0a136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matija=20Husti=C4=87?= Date: Tue, 16 Jun 2015 22:49:41 +0100 Subject: [PATCH] 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/ --- .../Traits/Power/RequiresPower.cs | 11 ++-- mods/ra/bits/litningupg.shp | Bin 0 -> 504 bytes mods/ra/bits/teslacharge.aud | Bin 0 -> 5054 bytes mods/ra/rules/infantry.yaml | 11 ++++ mods/ra/rules/structures.yaml | 14 ++++++ mods/ra/rules/vehicles.yaml | 11 ++++ mods/ra/sequences/misc.yaml | 7 +++ mods/ra/weapons/other.yaml | 47 ++++++++++++++++++ 8 files changed, 96 insertions(+), 5 deletions(-) create mode 100644 mods/ra/bits/litningupg.shp create mode 100644 mods/ra/bits/teslacharge.aud diff --git a/OpenRA.Mods.Common/Traits/Power/RequiresPower.cs b/OpenRA.Mods.Common/Traits/Power/RequiresPower.cs index 335da3efb7..d3ea5c4da9 100644 --- a/OpenRA.Mods.Common/Traits/Power/RequiresPower.cs +++ b/OpenRA.Mods.Common/Traits/Power/RequiresPower.cs @@ -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, IDisable, INotifyOwnerChanged { PowerManager playerPower; - public RequiresPower(Actor self) + public RequiresPower(Actor self, RequiresPowerInfo info) + : base(info) { playerPower = self.Owner.PlayerActor.Trait(); } 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) diff --git a/mods/ra/bits/litningupg.shp b/mods/ra/bits/litningupg.shp new file mode 100644 index 0000000000000000000000000000000000000000..c57e2cc7cf9be42242dea4c072e6debf7c305d7f GIT binary patch literal 504 zcmYLFJ1;~*6#gazjm*TGO6idZjaniRH2#6VprIMabJ1Mu*G1_?4Chqzyf;d3uZOBf!WTnPVRweF2J3^?@EVXAJdxC+O(IB zVKrJKVva9idXqg^s>GNX0q$zo9wy@MFAib7e)HrX(9EO-O z5V6ExAp)c)B(N%Ew;76|Fl!dQ0nB)1LT#|P1>?$`8lIyU_^aR`$5{TJM;_L>C#1Ki z8D%LQQJapL-20fS-@xbpb}OgwZ6b1$#?nI(lcSNW`7UV^1kdnO;Ue+Pu}gPQ%OfqJ t_5|N2l%v-kRe!|W1^j;SEH*#<2-RZH6UTTx1ea0Q(xP#IbVd1a>JQgA#kv3h literal 0 HcmV?d00001 diff --git a/mods/ra/bits/teslacharge.aud b/mods/ra/bits/teslacharge.aud new file mode 100644 index 0000000000000000000000000000000000000000..f46ad675b154560870f26d86109404e027ea24c8 GIT binary patch literal 5054 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 hgvmgBiVeM0Pu}@)bCTM%)uICxx_#vo%P