diff --git a/OpenRA.Mods.RA/Missions/Allies04Script.cs b/OpenRA.Mods.RA/Missions/Allies04Script.cs index f4b0b6b8fd..cbd7e95f14 100644 --- a/OpenRA.Mods.RA/Missions/Allies04Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies04Script.cs @@ -38,7 +38,11 @@ namespace OpenRA.Mods.RA.Missions Actor lstUnloadPoint; Actor lstExitPoint; Actor hijackTruck; - Actor hijackTruckGuard; + Actor baseGuard; + Actor baseGuardMovePos; + Actor baseGuardTruckPos; + int baseGuardWait = 100; + bool baseGuardMoved; Actor allies1Spy; Actor allies2Spy; @@ -80,6 +84,7 @@ namespace OpenRA.Mods.RA.Missions PatrolTick(ref patrol4, ref currentPatrolPoint4, soviets, DogPatrol, patrolPoints4); PatrolTick(ref patrol5, ref currentPatrolPoint5, soviets, DogPatrol, patrolPoints5); ManageSovietOre(); + BaseGuardTick(); } void ManageSovietOre() @@ -89,6 +94,25 @@ namespace OpenRA.Mods.RA.Missions res.TakeCash(res.Cash); } + void BaseGuardTick() + { + if (!baseGuardMoved && !baseGuard.IsDead() && baseGuard.IsInWorld) + { + if (hijackTruck.Location == baseGuardTruckPos.Location) + { + if (--baseGuardWait <= 0) + { + baseGuard.QueueActivity(new Move.Move(baseGuardMovePos.Location)); + baseGuardMoved = true; + } + } + else + { + baseGuardWait = 100; + } + } + } + void PatrolTick(ref Actor[] patrolActors, ref int currentPoint, Player owner, string[] actorNames, CPos[] points) { if (patrolActors == null) @@ -163,7 +187,9 @@ namespace OpenRA.Mods.RA.Missions lstUnloadPoint = actors["LstUnloadPoint"]; lstExitPoint = actors["LstExitPoint"]; hijackTruck = actors["HijackTruck"]; - hijackTruckGuard = actors["HijackTruckGuard"]; + baseGuard = actors["BaseGuard"]; + baseGuardMovePos = actors["BaseGuardMovePos"]; + baseGuardTruckPos = actors["BaseGuardTruckPos"]; patrolPoints1 = new[] { actors["PatrolPoint11"].Location, diff --git a/mods/ra/maps/allies-04/map.yaml b/mods/ra/maps/allies-04/map.yaml index 1841940fa6..272d9964e5 100644 --- a/mods/ra/maps/allies-04/map.yaml +++ b/mods/ra/maps/allies-04/map.yaml @@ -768,8 +768,8 @@ Actors: Actor229: v2rl Location: 96,19 Owner: Soviets - HijackTruckGuard: e1 - Location: 65,34 + Actor137: e1 + Location: 66,34 Owner: Soviets Actor50: fenc Location: 81,68 @@ -1419,6 +1419,36 @@ Actors: Location: 99,34 Owner: Soviets Facing: 160 + BaseGuard: e1 + Location: 63,36 + Owner: Soviets + Actor429: cycl + Location: 63,33 + Owner: Soviets + Actor428: cycl + Location: 63,34 + Owner: Soviets + Actor230: cycl + Location: 63,35 + Owner: Soviets + Actor430: sbag + Location: 68,34 + Owner: Soviets + Actor431: sbag + Location: 68,33 + Owner: Soviets + Actor432: cycl + Location: 63,32 + Owner: Soviets + Actor433: sbag + Location: 63,37 + Owner: Soviets + BaseGuardMovePos: waypoint + Location: 62,37 + Owner: Neutral + BaseGuardTruckPos: waypoint + Location: 64,36 + Owner: Neutral Smudges: @@ -1494,6 +1524,7 @@ Sequences: unload: Start: 0 Facings: 32 + Weapons: Voices: