From 28412cd1b674ea85cc430b8c32390e13d393d6bf Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 12 Apr 2010 19:11:57 +1200 Subject: [PATCH] made parabombs work --- OpenRA.Game/Effects/GravityBomb.cs | 5 ++- OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj | 2 -- .../AirstrikePower.cs | 5 +-- .../CarpetBomb.cs | 5 ++- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 4 ++- mods/cnc/system.yaml | 1 + mods/ra/sequences.xml | 34 +++++++++++-------- mods/ra/system.yaml | 12 +++++++ mods/ra/vehicles.yaml | 20 +++++++++++ mods/ra/weapons.yaml | 13 +++---- 10 files changed, 71 insertions(+), 30 deletions(-) rename {OpenRA.Mods.Cnc => OpenRA.Mods.RA}/AirstrikePower.cs (90%) rename {OpenRA.Mods.Cnc => OpenRA.Mods.RA}/CarpetBomb.cs (91%) diff --git a/OpenRA.Game/Effects/GravityBomb.cs b/OpenRA.Game/Effects/GravityBomb.cs index 64fbe7f467..959e67a5c3 100644 --- a/OpenRA.Game/Effects/GravityBomb.cs +++ b/OpenRA.Game/Effects/GravityBomb.cs @@ -43,7 +43,10 @@ namespace OpenRA.Effects altitude = args.srcAltitude; anim = new Animation(info.Image); - anim.PlayRepeating("idle"); + if (anim.HasSequence("open")) + anim.PlayThen("open", () => anim.PlayRepeating("idle")); + else + anim.PlayRepeating("idle"); } public void Tick(World world) diff --git a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj index e81ec72a2a..ee510261e8 100644 --- a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj +++ b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj @@ -45,8 +45,6 @@ - - diff --git a/OpenRA.Mods.Cnc/AirstrikePower.cs b/OpenRA.Mods.RA/AirstrikePower.cs similarity index 90% rename from OpenRA.Mods.Cnc/AirstrikePower.cs rename to OpenRA.Mods.RA/AirstrikePower.cs index 0dd25bbf46..c40b7f1da0 100644 --- a/OpenRA.Mods.Cnc/AirstrikePower.cs +++ b/OpenRA.Mods.RA/AirstrikePower.cs @@ -22,10 +22,11 @@ using OpenRA.Orders; using OpenRA.Traits; using OpenRA.Traits.Activities; -namespace OpenRA.Mods.Cnc +namespace OpenRA.Mods.RA { class AirstrikePowerInfo : SupportPowerInfo { + public readonly string UnitType = "badr.bomber"; public override object Create(Actor self) { return new AirstrikePower(self, this); } } @@ -46,7 +47,7 @@ namespace OpenRA.Mods.Cnc Owner.World.AddFrameEndTask(w => { - var a = w.CreateActor("a10", startPos, Owner); + var a = w.CreateActor((Info as AirstrikePowerInfo).UnitType, startPos, Owner); a.traits.Get().Facing = Util.GetFacing(order.TargetLocation - startPos, 0); a.traits.Get().Altitude = a.Info.Traits.Get().CruiseAltitude; a.traits.Get().SetTarget(order.TargetLocation); diff --git a/OpenRA.Mods.Cnc/CarpetBomb.cs b/OpenRA.Mods.RA/CarpetBomb.cs similarity index 91% rename from OpenRA.Mods.Cnc/CarpetBomb.cs rename to OpenRA.Mods.RA/CarpetBomb.cs index 828f600e5e..468c47ebc0 100644 --- a/OpenRA.Mods.Cnc/CarpetBomb.cs +++ b/OpenRA.Mods.RA/CarpetBomb.cs @@ -21,7 +21,7 @@ using OpenRA.GameRules; using OpenRA.Traits; -namespace OpenRA.Mods.Cnc +namespace OpenRA.Mods.RA { class CarpetBombInfo : ITraitInfo { @@ -68,6 +68,9 @@ namespace OpenRA.Mods.Cnc }; self.World.Add(args.weapon.Projectile.Create(args)); + + if (!string.IsNullOrEmpty(args.weapon.Report)) + Sound.Play(args.weapon.Report + ".aud"); } } } diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index c85884d0bb..0726092b1f 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -1,4 +1,4 @@ - + Debug @@ -53,7 +53,9 @@ + + diff --git a/mods/cnc/system.yaml b/mods/cnc/system.yaml index 091ab80b8a..2b54aa2423 100644 --- a/mods/cnc/system.yaml +++ b/mods/cnc/system.yaml @@ -35,6 +35,7 @@ Player: TechLevel: 8 EndChargeSound: airredy1.aud SelectTargetSound: select1.aud + UnitType: a10 World: GlobalDefaults: diff --git a/mods/ra/sequences.xml b/mods/ra/sequences.xml index 48c13e9b53..50135d5884 100644 --- a/mods/ra/sequences.xml +++ b/mods/ra/sequences.xml @@ -122,11 +122,11 @@ - - + + - - + + @@ -900,15 +900,19 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mods/ra/system.yaml b/mods/ra/system.yaml index d357922be3..4a027f0577 100644 --- a/mods/ra/system.yaml +++ b/mods/ra/system.yaml @@ -66,6 +66,18 @@ Player: TechLevel: 5 GivenAuto: no OneShot: yes + AirstrikePower: + Image: pbmbicon + ChargeTime: .2 + Description: Parabombs + LongDesc: A Badger drops a load of parachuted bombs on your target. + TechLevel: 5 + Prerequisites: POWR +# GivenAuto: no +# OneShot: yes + UnitType: badr.bomber + SelectTargetSound: slcttgt1.aud + World: GlobalDefaults: diff --git a/mods/ra/vehicles.yaml b/mods/ra/vehicles.yaml index 43d60ae1be..15d5de7a38 100644 --- a/mods/ra/vehicles.yaml +++ b/mods/ra/vehicles.yaml @@ -61,6 +61,26 @@ BADR: Cargo: Passengers: 10 -Selectable: + +BADR.bomber: + CarpetBomb: + Range: 3 + Weapon: ParaBomb + Inherits: ^Plane + Unit: + HP: 60 + Armor: light + ROT: 5 + Sight: 0 + Speed: 16 + Plane: + LimitedAmmo: + Ammo: 7 + RenderUnit: + Image: badr + WithShadow: + IronCurtainable: + -Selectable: V2RL: Inherits: ^Vehicle diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index 181a57b836..dddac8ae6c 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -556,24 +556,21 @@ DepthCharge: Damage: 80 ParaBomb: - ROF: 4 + ROF: 10 Range: 4.5 Report: CHUTE1 - Bullet: - Arm: 24 - RangeLimit: 24 - High: true + GravityBomb: Image: PARABOMB - Speed: 5 Warhead: Spread: 3 Wall: true Wood: true Verses: 30%,75%,75%,100%,50% - Explosion: 4 + Explosion: 8 InfDeath: 3 SmudgeType: Crater - Damage: 300 + Damage: 500 + ImpactSound: kaboom15 DogJaw: ROF: 10