add soviet-01
This commit is contained in:
83
mods/ra/maps/soviet-01/soviet01.lua
Normal file
83
mods/ra/maps/soviet-01/soviet01.lua
Normal file
@@ -0,0 +1,83 @@
|
||||
Yaks = { "yak", "yak", "yak" }
|
||||
Airfields = { Airfield1, Airfield2, Airfield3 }
|
||||
|
||||
InsertYaks = function()
|
||||
local i = 1
|
||||
Utils.Do(Yaks, function(yakType)
|
||||
local start = YakEntry.CenterPosition + WVec.New(0, (i - 1) * 1536, Actor.CruiseAltitude(yakType))
|
||||
local dest = StartJeep.Location + CVec.New(0, 2 * i)
|
||||
local yak = Actor.Create(yakType, true, { CenterPosition = start, Owner = player, Facing = (Map.CenterOfCell(dest) - start).Facing })
|
||||
yak.Move(dest)
|
||||
yak.ReturnToBase(Airfields[i])
|
||||
i = i + i
|
||||
end)
|
||||
end
|
||||
|
||||
JeepDemolishingBridge = function()
|
||||
StartJeep.Move(StartJeepMovePoint.Location)
|
||||
|
||||
Trigger.OnIdle(StartJeep, function()
|
||||
if not BridgeBarrel.IsDead then
|
||||
BridgeBarrel.Kill()
|
||||
end
|
||||
|
||||
local bridge = Map.ActorsInBox(BridgeWaypoint.CenterPosition, Airfield1.CenterPosition,
|
||||
function(self) return self.Type == "bridge1" end)[1]
|
||||
|
||||
if not bridge.IsDead then
|
||||
bridge.Kill()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
player = Player.GetPlayer("USSR")
|
||||
france = Player.GetPlayer("France")
|
||||
germany = Player.GetPlayer("Germany")
|
||||
turkey = Player.GetPlayer("Turkey")
|
||||
|
||||
Trigger.OnObjectiveAdded(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||
end)
|
||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||
end)
|
||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||
end)
|
||||
|
||||
Media.PlayMovieFullscreen("flare.vqa", function()
|
||||
CivilProtectionObjective = france.AddPrimaryObjective("Protect the civilians.")
|
||||
VillageRaidObjective = player.AddPrimaryObjective("Raze the village.")
|
||||
JeepDemolishingBridge()
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Media.PlaySpeechNotification(player, "StartGame")
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.OnPlayerWon(player, function()
|
||||
Media.PlaySpeechNotification(player, "Win")
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Media.PlayMovieFullscreen("snstrafe.vqa")
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.OnPlayerLost(player, function()
|
||||
Media.PlaySpeechNotification(player, "Lose")
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Media.PlayMovieFullscreen("sfrozen.vqa")
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(2), InsertYaks)
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if france.HasNoRequiredUnits() and germany.HasNoRequiredUnits() and turkey.HasNoRequiredUnits() then
|
||||
player.MarkCompletedObjective(VillageRaidObjective)
|
||||
end
|
||||
|
||||
if player.HasNoRequiredUnits() then
|
||||
france.MarkCompletedObjective(CivilProtectionObjective)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user