From 8c189498618f93d542f6ca264ab12734bbb585f4 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 23 Mar 2011 21:07:11 +1300 Subject: [PATCH] Change C4Demolition from minutes to ticks; actually use this value. --- OpenRA.Mods.RA/Activities/Demolish.cs | 11 ++++++++--- OpenRA.Mods.RA/C4Demolition.cs | 15 +++++++++++---- mods/cnc/rules/infantry.yaml | 2 +- mods/ra/rules/infantry.yaml | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/Demolish.cs b/OpenRA.Mods.RA/Activities/Demolish.cs index 7ca4e69aac..b423a14457 100644 --- a/OpenRA.Mods.RA/Activities/Demolish.cs +++ b/OpenRA.Mods.RA/Activities/Demolish.cs @@ -18,8 +18,13 @@ namespace OpenRA.Mods.RA.Activities class Demolish : CancelableActivity { Actor target; - - public Demolish( Actor target ) { this.target = target; } + int delay; + + public Demolish( Actor target, int delay ) + { + this.target = target; + this.delay = delay; + } public override IActivity Tick(Actor self) { @@ -29,7 +34,7 @@ namespace OpenRA.Mods.RA.Activities if( !target.Trait().OccupiedCells().Any( x => x.First == self.Location ) ) return NextActivity; - self.World.AddFrameEndTask(w => w.Add(new DelayedAction(25 * 2, + self.World.AddFrameEndTask(w => w.Add(new DelayedAction(delay, () => { if (target.IsInWorld) target.Kill(self); }))); return NextActivity; } diff --git a/OpenRA.Mods.RA/C4Demolition.cs b/OpenRA.Mods.RA/C4Demolition.cs index 7bdb9ce367..fe53ccfa90 100644 --- a/OpenRA.Mods.RA/C4Demolition.cs +++ b/OpenRA.Mods.RA/C4Demolition.cs @@ -19,13 +19,21 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - class C4DemolitionInfo : TraitInfo + class C4DemolitionInfo : ITraitInfo { - public readonly float C4Delay = 0; + public readonly int C4Delay = 45; // 1.8 seconds + public object Create(ActorInitializer init) { return new C4Demolition(this); } } class C4Demolition : IIssueOrder, IResolveOrder, IOrderVoice { + readonly C4DemolitionInfo Info; + + public C4Demolition(C4DemolitionInfo info) + { + Info = info; + } + public IEnumerable Orders { get { yield return new UnitTraitOrderTargeter( "C4", 6, "c4", true, false ); } @@ -48,8 +56,7 @@ namespace OpenRA.Mods.RA var mobile = self.Trait(); self.CancelActivity(); self.QueueActivity(new Enter(order.TargetActor)); - //self.QueueActivity(new Move(order.TargetActor.Location, order.TargetActor)); - self.QueueActivity(new Demolish(order.TargetActor)); + self.QueueActivity(new Demolish(order.TargetActor, Info.C4Delay)); self.QueueActivity(mobile.MoveTo(self.Location, 0)); } } diff --git a/mods/cnc/rules/infantry.yaml b/mods/cnc/rules/infantry.yaml index ac5dd9616b..e9e94c5a07 100644 --- a/mods/cnc/rules/infantry.yaml +++ b/mods/cnc/rules/infantry.yaml @@ -175,7 +175,7 @@ RMBO: AutoTarget: ScanRadius: 5 C4Demolition: - C4Delay: .03 + C4Delay: 45 AttackFrontal: PrimaryWeapon: Sniper RenderInfantryProne: diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 9f00b17a9e..047d20ca5d 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -218,7 +218,7 @@ E7: RevealsShroud: Range: 6 C4Demolition: - C4Delay: .03 + C4Delay: 45 Passenger: PipType: Red AttackFrontal: