diff --git a/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs b/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs index 54b4a480dc..81e15a9118 100644 --- a/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs +++ b/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs @@ -15,7 +15,6 @@ using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Air; using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Move; -using OpenRA.Network; using OpenRA.Scripting; using OpenRA.Traits; @@ -46,12 +45,23 @@ namespace OpenRA.Mods.RA.Missions Actor startJeep; Actor startJeepMovePoint; + Actor church; + bool startJeepParadropped; + bool churchParadropped; + + Actor paradropPoint1; + Actor paradropEntryPoint1; + Actor paradropPoint2; + Actor paradropEntryPoint2; Actor airfield1; Actor airfield2; Actor airfield3; Actor[] airfields; + const string BadgerName = "badr"; + static readonly string[] Reinforcements = { "e1", "e1", "e1", "e2", "e2" }; + void MissionFailed() { if (ussr.WinState != WinState.Undefined) @@ -89,6 +99,18 @@ namespace OpenRA.Mods.RA.Missions objectives[DestroyID].Status = ObjectiveStatus.Failed; MissionFailed(); } + if (!startJeepParadropped && startJeep.IsDead()) + { + Sound.Play("reinfor1.aud"); + MissionUtils.Paradrop(world, ussr, Reinforcements, paradropEntryPoint1.Location, paradropPoint1.Location); + startJeepParadropped = true; + } + if (!churchParadropped && church.IsDead()) + { + Sound.Play("reinfor1.aud"); + MissionUtils.Paradrop(world, ussr, Reinforcements, paradropEntryPoint2.Location, paradropPoint2.Location); + churchParadropped = true; + } } void LandYaks() @@ -111,7 +133,8 @@ namespace OpenRA.Mods.RA.Missions void MoveJeep() { - startJeep.QueueActivity(new MoveAdjacentTo(Target.FromActor(startJeepMovePoint))); + startJeep.QueueActivity(new Move.Move(startJeepMovePoint.Location, 0)); + startJeep.QueueActivity(new Turn(128)); startJeep.QueueActivity(new CallFunc(() => { var bridge = world.Actors @@ -132,6 +155,11 @@ namespace OpenRA.Mods.RA.Missions var actors = w.WorldActor.Trait().Actors; startJeep = actors["StartJeep"]; startJeepMovePoint = actors["StartJeepMovePoint"]; + paradropPoint1 = actors["ParadropPoint1"]; + paradropEntryPoint1 = actors["ParadropEntryPoint1"]; + paradropPoint2 = actors["ParadropPoint2"]; + paradropEntryPoint2 = actors["ParadropEntryPoint2"]; + church = actors["Church"]; airfield1 = actors["Airfield1"]; airfield2 = actors["Airfield2"]; airfield3 = actors["Airfield3"]; diff --git a/mods/ra/maps/soviet-01-classic/map.yaml b/mods/ra/maps/soviet-01-classic/map.yaml index 1cb85964b0..0bbf9c9844 100644 --- a/mods/ra/maps/soviet-01-classic/map.yaml +++ b/mods/ra/maps/soviet-01-classic/map.yaml @@ -575,7 +575,7 @@ Actors: Owner: France Health: 0.4140625 Facing: 0 - Actor122: v01 + Church: v01 Location: 40,63 Owner: France Health: 0.5390625 @@ -585,7 +585,7 @@ Actors: Owner: France Health: 0.6640625 Facing: 96 - StartJeep: jeep + StartJeep: jeep.explodes Location: 44,76 Owner: France Health: 0.5195313 @@ -759,10 +759,10 @@ Actors: waypoint15: waypoint Location: 58,54 Owner: Neutral - waypoint16: waypoint + StartJeepMovePoint: waypoint Location: 47,66 Owner: Neutral - StartJeepMovePoint: waypoint + waypoint17: waypoint Location: 49,68 Owner: Neutral waypoint18: waypoint @@ -771,7 +771,7 @@ Actors: waypoint19: waypoint Location: 55,64 Owner: Neutral - waypoint20: waypoint + ParadropEntryPoint1: waypoint Location: 67,65 Owner: Neutral waypoint21: waypoint @@ -816,13 +816,13 @@ Actors: waypoint82: waypoint Location: 44,77 Owner: Neutral - waypoint84: waypoint + ParadropEntryPoint2: waypoint Location: 32,70 Owner: Neutral - waypoint94: waypoint + ParadropPoint2: waypoint Location: 47,65 Owner: Neutral - waypoint95: waypoint + ParadropPoint1: waypoint Location: 47,67 Owner: Neutral waypoint96: waypoint @@ -910,6 +910,13 @@ Rules: YAK: Plane: RearmBuildings: afld.noproduction + JEEP.Explodes: + Inherits: JEEP + RenderUnitTurreted: + Image: JEEP + Tooltip: + Icon: jeepicon + Explodes: Sequences: