Add Aftermath mission In the Nick of Time

This commit is contained in:
Smittytron
2021-01-23 19:31:23 -06:00
committed by reaperrr
parent d2039a14e1
commit ce277481c3
6 changed files with 1463 additions and 0 deletions

View File

@@ -0,0 +1,414 @@
--[[
Copyright 2007-2021 The OpenRA Developers (see AUTHORS)
This file is part of OpenRA, which is free software. It is made
available to you under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version. For more
information, see COPYING.
]]
StartUnits = { "jeep", "jeep", "1tnk", "1tnk", "1tnk", "1tnk", "2tnk", "2tnk" }
StartingPlanes = { Yak1, Yak2 }
ReinforcementFootprint1 = { CPos.New(93,78), CPos.New(94,78), CPos.New(95,78) }
InfantrySquad = { "e1", "e1", "e1", "e3", "e3" }
ReinforcementFootprint2 = { CPos.New(63,84), CPos.New(63,85), CPos.New(63,86), CPos.New(63,87) }
SouthWaterPath1 = { SouthWaterEntry.Location, SouthWaterLanding1.Location }
SouthWaterPath2 = { SouthWaterEntry.Location, SouthWaterLanding2.Location }
SouthWaterTeam = { "dtrk", "1tnk", "1tnk", "2tnk", "2tnk" }
SouthChinookPath = { ChinookEntry1.Location, ChinookLZ1.Location }
SouthChinookChalk = { "e3", "e3", "e3", "e1", "e1" }
MammothAttackFootprint = { CPos.New(49,81), CPos.New(50,81), CPos.New(51,81), CPos.New(52,81), CPos.New(53,81) }
BridgeMammoths = { Mammoth2, Mammoth3 }
ReinforcementFootprint3 = { CPos.New(60,74), CPos.New(61,74) }
MoneyTrucks = { "truk", "truk" }
SovietHouseSquad = { "e2", "e2", "e2", "e3", "e3" }
AlliedHouseSquad = { "e6", "e6", "medi", "spy", "mech" }
MediumTanks = { Medium1, Medium2, Medium3, Medium4 }
ReinforcementFootprint4 = { CPos.New(77,64), CPos.New(78,64), CPos.New(79,64), CPos.New(85,67), CPos.New(85,68), CPos.New(85,69) }
LightTanks = { LightTank1, LightTank2 }
ReinforcementFootprint5 = { CPos.New(92,54), CPos.New(92,55), CPos.New(92,56), CPos.New(92,57), CPos.New(96,62), CPos.New(97,62), CPos.New(98,62), CPos.New(99,62) }
ReinforcementFootprint6 = { CPos.New(97,51), CPos.New(98,51) }
NorthChinookPath = { ChinookEntry2.Location, ChinookLZ2.Location }
NorthChinookChalk = { "e3", "e3", "e3", "e3", "e3" }
Scientists = { "einstein", "chan", "chan", "chan", "chan" }
NorthWaterPath1 = { NorthWaterEntry.Location, NorthWaterLanding1.Location }
NorthWaterPath2 = { NorthWaterEntry.Location, NorthWaterLanding2.Location }
NorthWaterPath3 = { NorthWaterEntry.Location, NorthWaterLanding3.Location }
NorthWaterTeam = { "1tnk", "1tnk", "1tnk", "2tnk", "2tnk" }
BoatofMammoths = { "4tnk", "4tnk", "4tnk", "4tnk", "4tnk" }
EvacuateFootprint = { CPos.New(93,92), CPos.New(94,92), CPos.New(95,92), CPos.New(96,92), CPos.New(97,92), CPos.New(98,92), CPos.New(99,92) }
TimerTicks = DateTime.Minutes(54)
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
AlliedReinforcements = function()
Reinforcements.Reinforce(Greece, StartUnits, { AlliesEntry.Location, AlliesRally.Location }, 6)
Trigger.AfterDelay(DateTime.Seconds(1), function()
UnitsArrived = true
end)
local foot1Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint1, function(actor, id)
if actor.Owner == Greece and not foot1Triggered then
Trigger.RemoveFootprintTrigger(id)
foot1Triggered = true
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
Reinforcements.Reinforce(Greece, InfantrySquad, { InfantrySquadEntry.Location, InfantrySquadStop.Location }, 2)
end
end)
local foot2Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint2, function(actor, id)
if actor.Owner == Greece and not foot2Triggered then
Trigger.RemoveFootprintTrigger(id)
foot2Triggered = true
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
local demoTeam = Reinforcements.ReinforceWithTransport(Greece, "lst.reinforcement", SouthWaterTeam, SouthWaterPath1, { SouthWaterPath1[1] })
local chinookChalk1 = Reinforcements.ReinforceWithTransport(Greece, "tran.reinforcement", SouthChinookChalk, SouthChinookPath, { SouthChinookPath[1] })
end
end)
local foot3Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint3, function(actor, id)
if actor.Owner == Greece and not foot3Triggered then
Trigger.RemoveFootprintTrigger(id)
foot3Triggered = true
Media.PlaySound("chrono2.aud")
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoBeam1.Location })
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoBeam1.Location + CVec.New(1,1) })
Reinforcements.Reinforce(USSR, MoneyTrucks, { AlliesEntry.Location, TruckStop1.Location }, 0)
Utils.Do(StartingPlanes, function(yaks)
InitializeAttackAircraft(yaks, Greece)
end)
if not USSRHouse.IsDead then
local houseSquad = Reinforcements.Reinforce(USSR, SovietHouseSquad, { VillageSpawnUSSR.Location }, 0)
Utils.Do(houseSquad, IdleHunt)
Trigger.OnAllKilled(houseSquad, function()
if not AlliesHouse.IsDead then
Media.PlaySoundNotification(Greece, "AlertBleep")
Media.DisplayMessage("Friendlies coming out!", "Medic")
Reinforcements.Reinforce(Greece, AlliedHouseSquad, { VillageSpawnAllies.Location, VillageRally.Location }, 0)
end
end)
end
end
end)
local foot4Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint4, function(actor, id)
if actor.Owner == Greece and not foot4Triggered then
Trigger.RemoveFootprintTrigger(id)
foot4Triggered = true
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
Paradrop3.TargetParatroopers(ParaLZ3.CenterPosition, Angle.New(935))
end
end)
local foot5Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint5, function(actor, id)
if actor.Owner == Greece and not foot5Triggered then
Trigger.RemoveFootprintTrigger(id)
foot5Triggered = true
Media.PlaySound("chrono2.aud")
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoBeam2.Location })
Actor.Create("ctnk", true, { Owner = Greece, Location = ChronoBeam2.Location + CVec.New(1,1) })
Utils.Do(LightTanks, IdleHunt)
end
end)
local foot6Triggered
Trigger.OnEnteredFootprint(ReinforcementFootprint6, function(actor, id)
if actor.Owner == Greece and not foot6Triggered then
Trigger.RemoveFootprintTrigger(id)
foot6Triggered = true
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
local chinookChalk2 = Reinforcements.ReinforceWithTransport(Greece, "tran.reinforcement", NorthChinookChalk, NorthChinookPath, { NorthChinookPath[1] })
InfantryProduction()
TankProduction()
end
end)
Trigger.OnEnteredProximityTrigger(ScientistEscape.CenterPosition, WDist.FromCells(3), function(actor, id)
if actor.Owner == Greece then
Trigger.RemoveProximityTrigger(id)
ScientistsFreed = true
Media.PlaySpeechNotification(Greece, "TargetFreed")
VIPs = Reinforcements.Reinforce(Greece, Scientists, { ScientistEscape.Location, ScientistRally.Location }, 2)
Actor.Create("flare", true, { Owner = Greece, Location = DefaultCameraPosition.Location })
Trigger.OnAnyKilled(VIPs, function()
Greece.MarkFailedObjective(RescueScientists)
end)
-- Add the footprint trigger in a frame end task (delay 0) to avoid crashes
local left = #VIPs
Trigger.AfterDelay(0, function()
Trigger.OnEnteredFootprint(EvacuateFootprint, function(a, id)
if a.Type == "chan" or a.Type == "einstein" then
a.Owner = GoodGuy
a.Stop()
a.Move(AlliesEntry.Location)
-- in case units get stuck
Trigger.OnIdle(a, function()
a.Move(AlliesEntry.Location)
end)
end
end)
Trigger.OnEnteredFootprint({ AlliesEntry.Location }, function(a, id)
if a.Type == "chan" or a.Type == "einstein" then
a.Stop()
a.Destroy()
left = left - 1
if left == 0 then
if not Greece.IsObjectiveCompleted(RescueScientists) and not Greece.IsObjectiveFailed(RescueScientists) then
Greece.MarkCompletedObjective(RescueScientists)
end
end
else
a.Stop()
a.Destroy()
end
end)
end)
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.PlaySpeechNotification(Greece, "ReinforcementsArrived")
Media.DisplayMessage("Commander, we're detecting Soviet transports headed your way. Get those scientists back to the extraction point in the southeast!", "LANDCOM 16")
local northTeam = Reinforcements.ReinforceWithTransport(Greece, "lst.reinforcement", NorthWaterTeam, NorthWaterPath1, { NorthWaterPath1[1] })
end)
Trigger.AfterDelay(DateTime.Seconds(10), function()
Media.PlaySpeechNotification(Greece, "SovietForcesApproaching")
local mammoths1 = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", BoatofMammoths, NorthWaterPath2, { NorthWaterPath2[1] })[2]
Utils.Do(mammoths1, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
local mammoths2 = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", BoatofMammoths, NorthWaterPath3, { NorthWaterPath3[1] })[2]
Utils.Do(mammoths2, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
end)
local footMammoth2Triggered
Trigger.OnEnteredFootprint(MammothAttackFootprint, function(actor, id)
if actor.Type == "chan" and not footMammoth2Triggered then
Trigger.RemoveFootprintTrigger(id)
footMammoth2Triggered = true
Trigger.AfterDelay(DateTime.Seconds(10), function()
Media.PlaySpeechNotification(Greece, "SovietForcesApproaching")
local mammoths3 = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", BoatofMammoths, SouthWaterPath1, { SouthWaterPath1[1] })[2]
Utils.Do(mammoths3, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
local mammoths4 = Reinforcements.ReinforceWithTransport(USSR, "lst.reinforcement", BoatofMammoths, SouthWaterPath2, { SouthWaterPath2[1] })[2]
Utils.Do(mammoths4, function(unit)
Trigger.OnAddedToWorld(unit, IdleHunt)
end)
end)
end
end)
end
end)
end
EnemyActions = function()
Utils.Do(StartingPlanes, function(a)
a.ReturnToBase()
end)
local firstDrop = Paradrop1.TargetParatroopers(ParaLZ1.CenterPosition, Angle.New(214))
Utils.Do(firstDrop, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
local footMammothTriggered
Trigger.OnEnteredFootprint(MammothAttackFootprint, function(actor, id)
if actor.Owner == Greece and not footMammothTriggered then
Trigger.RemoveFootprintTrigger(id)
footMammothTriggered = true
Utils.Do(BridgeMammoths, IdleHunt)
local secondDrop = Paradrop2.TargetParatroopers(ParaLZ2.CenterPosition, Angle.New(808))
Utils.Do(secondDrop, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
end
end)
Trigger.OnKilled(Tesla2, function()
Utils.Do(MediumTanks, function(tank)
if not tank.IsDead then
IdleHunt(tank)
end
end)
end)
end
EnemyInfantry = { "e1", "e1", "e3" }
Tanks = { "1tnk", "3tnk" }
AttackGroupSize = 4
ProductionDelay = DateTime.Seconds(10)
IdlingUnits = { }
InfantryProduction = function()
if (Tent1.IsDead or Tent1.Owner ~= USSR) and (Tent2.IsDead or Tent2.Owner ~= USSR) then
return
end
local toBuild = { Utils.Random(EnemyInfantry) }
USSR.Build(toBuild, function(unit)
IdlingUnits[#IdlingUnits + 1] = unit[1]
Trigger.AfterDelay(ProductionDelay, InfantryProduction)
if #IdlingUnits >= (AttackGroupSize * 1.5) then
SendAttack()
end
end)
end
TankProduction = function()
if WarFactory.IsDead or WarFactory.Owner ~= USSR then
return
end
local toBuild = { Utils.Random(Tanks) }
USSR.Build(toBuild, function(unit)
IdlingUnits[#IdlingUnits + 1] = unit[1]
Trigger.AfterDelay(ProductionDelay, TankProduction)
if #IdlingUnits >= (AttackGroupSize * 1.5) then
SendAttack()
end
end)
end
SendAttack = function()
local units = { }
for i = 0, AttackGroupSize, 1 do
local number = Utils.RandomInteger(1, #IdlingUnits)
if IdlingUnits[number] and not IdlingUnits[number].IsDead then
units[i] = IdlingUnits[number]
table.remove(IdlingUnits, number)
end
end
Utils.Do(units, function(unit)
if not unit.IsDead then
IdleHunt(unit)
end
end)
end
LoseTriggers = function()
Trigger.OnKilled(ForwardCommand, function()
if not ScientistsFreed then
Greece.MarkFailedObjective(RescueScientists)
Media.DisplayMessage("The scientists were in the Command Center!", "LANDCOM 16")
end
end)
Trigger.OnKilled(Chronosphere, function()
Greece.MarkFailedObjective(RescueScientists)
end)
Trigger.OnCapture(Chronosphere, function()
Chronosphere.Kill()
end)
end
ticked = TimerTicks
Tick = function()
if Greece.HasNoRequiredUnits() and UnitsArrived then
USSR.MarkCompletedObjective(SovietObj)
end
if ticked > 0 then
UserInterface.SetMissionText("Chronosphere explodes in " .. Utils.FormatTime(ticked), TimerColor)
ticked = ticked - 1
elseif ticked == 0 then
UserInterface.SetMissionText("We're too late!", USSR.Color)
USSR.MarkCompletedObjective(SovietObj)
end
end
WorldLoaded = function()
Greece = Player.GetPlayer("Greece")
USSR = Player.GetPlayer("USSR")
GoodGuy = Player.GetPlayer("GoodGuy")
Trigger.OnObjectiveAdded(Greece, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
SovietObj = USSR.AddObjective("Defeat Allies.")
RescueScientists = Greece.AddObjective("Rescue the scientists and escort them back to the\nextraction point.")
Trigger.OnObjectiveCompleted(Greece, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(Greece, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerLost(Greece, function()
Media.PlaySpeechNotification(Greece, "Lose")
end)
Trigger.OnPlayerWon(Greece, function()
Media.PlaySpeechNotification(Greece, "Win")
end)
Camera.Position = DefaultCameraPosition.CenterPosition
Paradrop1 = Actor.Create("paradrop1", false, { Owner = USSR })
Paradrop2 = Actor.Create("paradrop2", false, { Owner = USSR })
Paradrop3 = Actor.Create("paradrop3", false, { Owner = Greece })
TimerColor = Greece.Color
Tent1.IsPrimaryBuilding = true
AlliedReinforcements()
EnemyActions()
LoseTriggers()
Trigger.AfterDelay(DateTime.Minutes(24), function()
Media.PlaySpeechNotification(Greece, "ThirtyMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(34), function()
Media.PlaySpeechNotification(Greece, "TwentyMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(44), function()
Media.PlaySpeechNotification(Greece, "TenMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(49), function()
Media.PlaySpeechNotification(Greece, "WarningFiveMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(50), function()
Media.PlaySpeechNotification(Greece, "WarningFourMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(51), function()
Media.PlaySpeechNotification(Greece, "WarningThreeMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(52), function()
Media.PlaySpeechNotification(Greece, "WarningTwoMinutesRemaining")
end)
Trigger.AfterDelay(DateTime.Minutes(53), function()
Media.PlaySpeechNotification(Greece, "WarningOneMinuteRemaining")
end)
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,957 @@
MapFormat: 11
RequiresMod: ra
Title: In the Nick of Time
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 29,32,71,67
Visibility: MissionSelector
Categories: Mission
LockPreview: True
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: england
PlayerReference@USSR:
Name: USSR
Faction: soviet
Color: FF1400
Enemies: Greece
PlayerReference@GoodGuy:
Name: GoodGuy
Faction: allies
Color: E2E6F6
Allies: Greece
Enemies: USSR
PlayerReference@Greece:
Name: Greece
AllowBots: False
Playable: True
Required: True
LockFaction: True
Faction: allies
LockColor: True
Color: E2E6F6
LockSpawn: True
LockTeam: True
Allies: GoodGuy
Enemies: USSR
Actors:
Actor0: brik
Location: 50,41
Owner: USSR
Actor1: brik
Location: 51,41
Owner: USSR
Actor2: brik
Location: 56,41
Owner: USSR
Actor3: brik
Location: 57,41
Owner: USSR
Actor4: brik
Location: 36,42
Owner: USSR
Actor5: brik
Location: 37,42
Owner: USSR
Actor6: brik
Location: 38,42
Owner: USSR
Actor7: brik
Location: 39,42
Owner: USSR
Actor8: brik
Location: 40,42
Owner: USSR
Actor9: brik
Location: 41,42
Owner: USSR
Actor10: brik
Location: 42,42
Owner: USSR
Actor11: brik
Location: 43,42
Owner: USSR
Actor12: brik
Location: 44,42
Owner: USSR
Actor13: brik
Location: 45,42
Owner: USSR
Actor14: brik
Location: 46,42
Owner: USSR
Actor15: brik
Location: 47,42
Owner: USSR
Actor16: brik
Location: 48,42
Owner: USSR
Actor17: brik
Location: 49,42
Owner: USSR
Actor18: brik
Location: 50,42
Owner: USSR
Actor19: brik
Location: 51,42
Owner: USSR
Actor20: brik
Location: 56,42
Owner: USSR
Actor21: brik
Location: 57,42
Owner: USSR
Actor22: brik
Location: 36,43
Owner: USSR
Actor23: brik
Location: 57,43
Owner: USSR
Actor24: brik
Location: 36,44
Owner: USSR
Actor25: brik
Location: 57,44
Owner: USSR
Actor26: brik
Location: 36,45
Owner: USSR
Actor27: brik
Location: 57,45
Owner: USSR
Actor28: brik
Location: 36,46
Owner: USSR
Actor29: brik
Location: 57,46
Owner: USSR
Actor30: brik
Location: 36,47
Owner: USSR
Actor31: brik
Location: 57,47
Owner: USSR
Actor32: brik
Location: 36,48
Owner: USSR
Actor33: brik
Location: 57,48
Owner: USSR
Actor34: brik
Location: 36,49
Owner: USSR
Actor35: brik
Location: 57,49
Owner: USSR
Actor36: brik
Location: 36,50
Owner: USSR
Actor37: brik
Location: 57,50
Owner: USSR
Actor38: brik
Location: 36,51
Owner: USSR
Actor39: brik
Location: 57,51
Owner: USSR
Actor40: brik
Location: 36,52
Owner: USSR
Actor41: brik
Location: 46,52
Owner: USSR
Actor42: brik
Location: 47,52
Owner: USSR
Actor43: brik
Location: 48,52
Owner: USSR
Actor44: brik
Location: 49,52
Owner: USSR
Actor45: brik
Location: 57,52
Owner: USSR
Actor46: brik
Location: 58,52
Owner: USSR
Actor47: brik
Location: 36,53
Owner: USSR
Actor48: brik
Location: 46,53
Owner: USSR
Actor49: brik
Location: 49,53
Owner: USSR
Actor50: brik
Location: 57,53
Owner: USSR
Actor51: brik
Location: 58,53
Owner: USSR
Actor52: brik
Location: 36,54
Owner: USSR
Actor53: brik
Location: 46,54
Owner: USSR
Actor54: brik
Location: 49,54
Owner: USSR
Actor55: brik
Location: 36,55
Owner: USSR
Actor56: brik
Location: 46,55
Owner: USSR
Actor57: brik
Location: 47,55
Owner: USSR
Actor58: brik
Location: 48,55
Owner: USSR
Actor59: brik
Location: 49,55
Owner: USSR
Actor60: brik
Location: 36,56
Owner: USSR
Actor61: brik
Location: 36,57
Owner: USSR
Actor62: brik
Location: 36,58
Owner: USSR
Actor63: brik
Location: 57,58
Owner: USSR
Actor64: brik
Location: 58,58
Owner: USSR
Actor65: brik
Location: 36,59
Owner: USSR
Actor66: brik
Location: 57,59
Owner: USSR
Actor67: brik
Location: 58,59
Owner: USSR
Actor68: brik
Location: 36,60
Owner: USSR
Actor69: brik
Location: 57,60
Owner: USSR
Actor70: brik
Location: 36,61
Owner: USSR
Actor71: brik
Location: 37,61
Owner: USSR
Actor72: brik
Location: 38,61
Owner: USSR
Actor73: brik
Location: 39,61
Owner: USSR
Actor74: brik
Location: 40,61
Owner: USSR
Actor75: brik
Location: 57,61
Owner: USSR
Actor76: brik
Location: 39,62
Owner: USSR
Actor77: brik
Location: 40,62
Owner: USSR
Actor78: brik
Location: 45,62
Owner: USSR
Actor79: brik
Location: 46,62
Owner: USSR
Actor80: brik
Location: 47,62
Owner: USSR
Actor81: brik
Location: 57,62
Owner: USSR
Actor82: brik
Location: 39,63
Owner: USSR
Actor83: brik
Location: 40,63
Owner: USSR
Actor84: brik
Location: 45,63
Owner: USSR
Actor85: brik
Location: 46,63
Owner: USSR
Actor86: brik
Location: 47,63
Owner: USSR
Actor87: brik
Location: 57,63
Owner: USSR
Actor88: brik
Location: 47,64
Owner: USSR
Actor89: brik
Location: 57,64
Owner: USSR
Actor90: brik
Location: 47,65
Owner: USSR
Actor91: brik
Location: 48,65
Owner: USSR
Actor92: brik
Location: 49,65
Owner: USSR
Actor93: brik
Location: 50,65
Owner: USSR
Actor94: brik
Location: 51,65
Owner: USSR
Actor95: brik
Location: 52,65
Owner: USSR
Actor96: brik
Location: 53,65
Owner: USSR
Actor97: brik
Location: 54,65
Owner: USSR
Actor98: brik
Location: 55,65
Owner: USSR
Actor99: brik
Location: 56,65
Owner: USSR
Actor100: brik
Location: 57,65
Owner: USSR
Actor288: fenc
Owner: USSR
Location: 94,32
Actor289: fenc
Owner: USSR
Location: 95,32
Actor290: fenc
Owner: USSR
Location: 96,32
Actor291: fenc
Owner: USSR
Location: 97,32
Actor292: fenc
Owner: USSR
Location: 98,32
Actor293: fenc
Owner: USSR
Location: 99,32
Actor294: fenc
Owner: USSR
Location: 99,33
Actor295: fenc
Owner: USSR
Location: 99,34
Actor296: fenc
Owner: USSR
Location: 99,35
Actor297: fenc
Owner: USSR
Location: 99,36
Actor298: fenc
Owner: USSR
Location: 98,36
Actor299: fenc
Owner: USSR
Location: 94,33
Actor300: fenc
Owner: USSR
Location: 94,34
Actor301: fenc
Owner: USSR
Location: 94,35
Actor302: fenc
Owner: USSR
Location: 94,36
Actor303: fenc
Owner: USSR
Location: 95,36
Actor103: t11
Location: 98,73
Owner: Neutral
Actor104: tc01
Location: 91,75
Owner: Neutral
Actor105: t17
Location: 99,72
Owner: Neutral
Actor106: t15
Location: 89,75
Owner: Neutral
Actor107: tc04
Location: 98,75
Owner: Neutral
Actor108: t16
Location: 87,75
Owner: Neutral
Actor109: t17
Location: 99,76
Owner: Neutral
Actor110: t08
Location: 84,82
Owner: Neutral
Actor111: t11
Location: 83,80
Owner: Neutral
Actor112: t13
Location: 84,79
Owner: Neutral
Actor113: t14
Location: 84,78
Owner: Neutral
Actor114: t12
Location: 79,91
Owner: Neutral
Actor115: t12
Location: 85,95
Owner: Neutral
Actor116: t08
Location: 85,97
Owner: Neutral
Actor117: t11
Location: 83,94
Owner: Neutral
Actor118: tc01
Location: 81,94
Owner: Neutral
Actor119: tc01
Location: 80,93
Owner: Neutral
Actor120: t17
Location: 82,93
Owner: Neutral
Actor121: t16
Location: 80,92
Owner: Neutral
Actor122: t16
Location: 84,95
Owner: Neutral
Actor123: t11
Location: 85,72
Owner: Neutral
Actor124: t12
Location: 81,75
Owner: Neutral
Actor125: t13
Location: 82,76
Owner: Neutral
Actor126: t12
Location: 82,77
Owner: Neutral
Actor127: tc03
Location: 82,74
Owner: Neutral
Actor128: t16
Location: 84,74
Owner: Neutral
Actor129: t08
Location: 86,72
Owner: Neutral
Actor130: t07
Location: 84,73
Owner: Neutral
Actor131: ice01
Location: 36,85
Owner: Neutral
Actor132: ice02
Location: 33,38
Owner: Neutral
Actor133: t13
Location: 54,86
Owner: Neutral
Actor134: t11
Location: 55,82
Owner: Neutral
Actor135: t06
Location: 55,83
Owner: Neutral
Actor136: t07
Location: 55,84
Owner: Neutral
Actor137: mine
Location: 44,77
Owner: Neutral
Actor138: mine
Location: 38,74
Owner: Neutral
Actor139: t01
Location: 74,59
Owner: Neutral
Actor140: t01
Location: 82,61
Owner: Neutral
Actor141: tc04
Location: 91,62
Owner: Neutral
Actor142: t17
Location: 83,62
Owner: Neutral
Actor143: ice03
Location: 29,98
Owner: Neutral
Actor144: ice03
Location: 31,32
Owner: Neutral
Actor145: t01
Location: 71,62
Owner: Neutral
Actor146: t03
Location: 70,62
Owner: Neutral
Actor147: tc02
Location: 69,61
Owner: Neutral
Actor148: tc03
Location: 58,67
Owner: Neutral
Actor149: tc04
Location: 55,68
Owner: Neutral
Actor150: tc05
Location: 84,46
Owner: Neutral
Actor151: tc05
Location: 61,42
Owner: Neutral
Actor152: tc03
Location: 61,48
Owner: Neutral
Actor153: tc03
Location: 83,48
Owner: Neutral
Actor154: tc01
Location: 98,40
Owner: Neutral
Actor155: t17
Location: 90,39
Owner: Neutral
Actor156: tc02
Location: 69,35
Owner: Neutral
Actor157: tc03
Location: 70,37
Owner: Neutral
Actor158: t15
Location: 68,36
Owner: Neutral
Actor159: t15
Location: 85,44
Owner: Neutral
Actor160: apwr
Location: 37,51
Owner: USSR
Actor161: apwr
Location: 37,43
Owner: USSR
Actor162: apwr
Location: 37,47
Owner: USSR
Actor163: fix
Location: 47,47
Owner: USSR
Tent2: tent
Location: 46,58
Owner: USSR
Actor165: proc
Location: 37,57
Owner: USSR
Actor166: proc
Location: 53,50
Owner: USSR
Actor167: dome
Location: 38,54
Owner: USSR
Chronosphere: pdox
Location: 47,53
Owner: USSR
Health: 50
WarFactory: weap
Location: 49,43
Owner: USSR
USSRHouse: v03
Location: 67,76
Owner: Neutral
AlliesHouse: v02
Location: 76,77
Owner: Neutral
Actor172: v01
Location: 75,79
Owner: Neutral
Actor173: v05
Location: 73,76
Owner: Neutral
Actor174: v06
Location: 71,80
Owner: Neutral
Actor175: v07
Location: 68,79
Owner: Neutral
Actor176: tsla
Location: 54,88
Owner: USSR
Health: 56
Tesla2: tsla
Location: 86,64
Owner: USSR
Health: 51
Actor178: tsla
Location: 86,42
Owner: USSR
Health: 51
Barracks: barr
Location: 51,58
Owner: USSR
Actor180: kenn
Location: 49,58
Owner: USSR
Actor181: apwr
Location: 41,47
Owner: USSR
Actor182: apwr
Location: 41,43
Owner: USSR
Actor183: apwr
Location: 41,51
Owner: USSR
Actor184: apwr
Location: 54,62
Owner: USSR
Actor185: brl3
Location: 85,63
Owner: USSR
Actor186: barl
Location: 87,63
Owner: USSR
Actor187: brl3
Location: 87,64
Owner: USSR
Actor188: barl
Location: 87,62
Owner: USSR
Actor189: barl
Location: 88,63
Owner: USSR
Actor190: brl3
Location: 86,63
Owner: USSR
Tent1: tent
Location: 97,33
Owner: USSR
Health: 56
Actor192: v03
Location: 45,82
Owner: Neutral
Actor193: v02
Location: 41,82
Owner: Neutral
Actor194: v01
Location: 40,86
Owner: Neutral
Actor195: v04
Location: 45,84
Owner: Neutral
Actor196: v05
Location: 42,90
Owner: Neutral
ForwardCommand: fcom
Location: 48,62
Owner: USSR
Actor198: powr
Location: 51,62
Owner: USSR
Actor199: apwr
Location: 45,43
Owner: USSR
Actor200: brl3
Location: 85,42
Owner: USSR
Actor201: brl3
Location: 86,43
Owner: USSR
Actor202: barl
Location: 85,43
Owner: USSR
Actor203: barl
Location: 86,44
Owner: USSR
Actor204: barl
Location: 85,44
Owner: USSR
Actor205: barl
Location: 84,43
Owner: USSR
Actor206: v09
Location: 62,64
Owner: Neutral
Actor207: v10
Location: 64,61
Owner: Neutral
Actor208: v03
Location: 66,63
Owner: Neutral
Actor209: v02
Location: 67,59
Owner: Neutral
Actor210: minv
Location: 88,38
Owner: USSR
Actor211: minv
Location: 87,37
Owner: USSR
Actor212: minv
Location: 88,36
Owner: USSR
Actor213: minv
Location: 87,35
Owner: USSR
Actor214: minv
Location: 88,34
Owner: USSR
Actor217: powr
Location: 95,33
Owner: USSR
Health: 56
Actor218: minv
Location: 87,39
Owner: USSR
Actor219: pbox
Location: 72,47
Owner: USSR
Actor220: pbox
Location: 72,51
Owner: USSR
Actor221: 2tnk
Location: 82,86
Owner: USSR
Health: 50
Facing: 764
Actor222: 2tnk
Location: 82,90
Owner: USSR
Health: 50
Facing: 764
Actor223: v2rl
Location: 72,87
Owner: USSR
Facing: 764
Mammoth2: 4tnk
Location: 61,72
Owner: USSR
Health: 62
Facing: 380
Mammoth3: 4tnk
Location: 64,72
Owner: USSR
Health: 62
Facing: 380
Medium4: 2tnk
Location: 88,69
Owner: USSR
Health: 50
Facing: 252
Medium3: 2tnk
Location: 88,67
Owner: USSR
Health: 50
Facing: 252
LightTank1: 1tnk
Location: 96,50
Owner: USSR
Facing: 508
LightTank2: 1tnk
Location: 98,50
Owner: USSR
Facing: 508
Medium1: 2tnk
Location: 77,61
Owner: USSR
Health: 50
Facing: 508
Medium2: 2tnk
Location: 79,61
Owner: USSR
Health: 50
Facing: 508
Actor234: 3tnk
Location: 91,40
Owner: USSR
Health: 47
Facing: 636
Actor235: 3tnk
Location: 97,41
Owner: USSR
Health: 50
Facing: 380
Mammoth1: 4tnk
Location: 43,86
Owner: USSR
Health: 64
Facing: 636
Actor237: 3tnk
Location: 79,88
Owner: USSR
Health: 50
Facing: 764
Actor238: dog
Location: 79,42
Owner: USSR
Facing: 124
SubCell: 1
Actor239: dog
Location: 73,35
Owner: USSR
Facing: 636
SubCell: 4
Actor240: dog
Location: 47,51
Owner: USSR
Facing: 892
SubCell: 4
Actor241: ss
Location: 30,33
Owner: USSR
Facing: 636
Actor242: ss
Location: 34,63
Owner: USSR
Facing: 124
Actor243: ss
Location: 34,93
Owner: USSR
Facing: 764
Actor244: ss
Location: 36,97
Owner: USSR
Facing: 764
Actor304: afld
Owner: USSR
Location: 79,49
Actor305: afld
Owner: USSR
Location: 79,47
Yak2: yak
Owner: USSR
Location: 77,44
Facing: 384
Yak1: yak
Owner: USSR
Location: 77,45
Facing: 384
DefaultCameraPosition: waypoint
Location: 95,96
Owner: Neutral
AlliesEntry: waypoint
Location: 95,98
Owner: Neutral
AlliesRally: waypoint
Location: 95,93
Owner: Neutral
ParaLZ1: waypoint
Location: 69,86
Owner: Neutral
ParaLZ2: waypoint
Location: 87,86
Owner: Neutral
ParaLZ3: waypoint
Location: 84,57
Owner: Neutral
InfantrySquadEntry: waypoint
Location: 99,75
Owner: Neutral
InfantrySquadStop: waypoint
Location: 94,80
Owner: Neutral
SouthWaterEntry: waypoint
Location: 29,84
Owner: Neutral
SouthWaterLanding1: waypoint
Location: 43,97
Owner: Neutral
SouthWaterLanding2: waypoint
Location: 44,93
Owner: Neutral
ChinookEntry1: waypoint
Location: 99,58
Owner: Neutral
ChinookLZ1: waypoint
Location: 47,90
Owner: Neutral
ChronoBeam1: waypoint
Location: 65,69
Owner: Neutral
TruckStop1: waypoint
Location: 95,38
Owner: Neutral
VillageSpawnUSSR: waypoint
Location: 67,77
Owner: Neutral
VillageSpawnAllies: waypoint
Location: 76,78
Owner: Neutral
VillageRally: waypoint
Location: 66,78
Owner: Neutral
ChronoBeam2: waypoint
Location: 96,56
Owner: Neutral
ChinookEntry2: waypoint
Location: 64,98
Owner: Neutral
ChinookLZ2: waypoint
Location: 82,45
Owner: Neutral
ScientistEscape: waypoint
Location: 48,62
Owner: Neutral
ScientistRally: waypoint
Location: 49,60
Owner: Neutral
NorthWaterEntry: waypoint
Location: 29,43
Owner: Neutral
NorthWaterLanding1: waypoint
Location: 48,34
Owner: Neutral
NorthWaterLanding2: waypoint
Location: 41,37
Owner: Neutral
NorthWaterLanding3: waypoint
Location: 46,38
Owner: Neutral
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -0,0 +1,91 @@
World:
LuaScript:
Scripts: campaign-global.lua, in-the-nick-of-time.lua
MissionData:
WinVideo: cronfail.vqa
LossVideo: sfrozen.vqa
Briefing: The situation is critical! The Soviets have taken over a small research base in the north. During the conflict, a chronosphere was badly damaged. We fear it could explode.\n\nInside the base is a group of scientists that were captured during the takeover. They must be rescued before the chronosphere explodes. Fight your way back into the base and retrieve them.\n\nBe careful -- there is only one way in and out of the base, a lone bridge. It must be protected to ensure evacuation.
LST.Reinforcement:
Inherits: LST
RejectsOrders:
-Buildable:
-Selectable:
RenderSprites:
Image: lst
Interactable:
TRAN.Reinforcement:
Inherits: TRAN
RevealsShroud:
Range: 0c0
-RevealsShroud@GAPGEN:
RejectsOrders:
-Selectable:
RenderSprites:
Image: tran
Interactable:
PARADROP1:
ParatroopersPower:
DropItems: E2, E2, E2, E3, E3
AlwaysVisible:
PARADROP2:
ParatroopersPower:
DropItems: E1, E1, SHOK, E4, E4
AlwaysVisible:
PARADROP3:
ParatroopersPower:
DisplayBeacon: False
DropItems: 1TNK, 2TNK
AlwaysVisible:
V01:
SpawnActorOnDeath:
Actor: healcrate
1TNK:
Buildable:
Prerequisites: ~vehicles.soviet
2TNK:
Buildable:
Prerequisites: ~vehicles.soviet
4TNK:
Buildable:
Prerequisites: ~disabled
TRUK:
Buildable:
Prerequisites: ~disabled
QTNK:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
FTRK:
Buildable:
Prerequisites: ~disabled
APC:
Buildable:
Prerequisites: ~disabled
E7:
Buildable:
Prerequisites: ~disabled
E7.noautotarget:
Buildable:
Prerequisites: ~disabled
MIG:
Buildable:
Prerequisites: ~disabled

View File

@@ -42,6 +42,7 @@ Counterstrike Soviet Missions:
soviet-soldier-volkov-n-chitzkoi
top-o-the-world
Aftermath Allied Missions:
in-the-nick-of-time
production-disruption
monster-tank-madness
Aftermath Soviet Missions: