Add Nod 10a mission

This commit is contained in:
dtluna
2018-11-24 01:51:59 +03:00
committed by reaperrr
parent 809f57e48d
commit 7608922ff0
7 changed files with 1509 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
--[[
Copyright 2007-2018 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.
]]
if Map.LobbyOption("difficulty") == "easy" then
Rambo = "rmbo.easy"
elseif Map.LobbyOption("difficulty") == "hard" then
Rambo = "rmbo.hard"
else
Rambo = "rmbo"
end
GDIBuildings = { ConYard, PowerPlant1, PowerPlant2, PowerPlant3, PowerPlant4,
Barracks, CommCenter, WeaponsFactory, GuardTower1, GuardTower2, GuardTower3 }
function RepairBuilding(building, attacker)
if not building.IsDead and building.Owner == enemy then
building.StartBuildingRepairs(enemy)
end
end
ChinookTrigger = false
function ReinforceWithChinook(_, discoverer)
if not ChinookTrigger and discoverer == player then
ChinookTrigger = true
Trigger.AfterDelay(DateTime.Seconds(1), function()
TransportFlare = Actor.Create('flare', true, { Owner = player, Location = DefaultFlareLocation.Location })
Media.PlaySpeechNotification(player, "Reinforce")
Reinforcements.ReinforceWithTransport(player, 'tran', nil, { ChinookEntry.Location, ChinookTarget.Location })
end)
end
end
function CreateScientist()
scientist = Actor.Create('CHAN', true, { Owner = enemy, Location = ScientistLocation.Location })
killScientistObjective = player.AddPrimaryObjective("Kill the GDI scientist.")
Trigger.OnKilled(scientist, function()
player.MarkCompletedObjective(killScientistObjective)
end)
player.MarkCompletedObjective(destroyTechCenterObjective)
end
function WorldLoaded()
player = Player.GetPlayer("Nod")
enemy = Player.GetPlayer("GDI")
enemy.Cash = 10000
Camera.Position = DefaultCameraPosition.CenterPosition
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)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "Win")
end)
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "Lose")
end)
Utils.Do(GDIBuildings, function(building)
Trigger.OnDamaged(building, RepairBuilding)
end)
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area.")
destroyTechCenterObjective = player.AddPrimaryObjective("Destroy the GDI R&D center.")
Actor.Create(Rambo, true, { Owner = player, Location = RamboLocation.Location })
Trigger.OnDiscovered(TechCenter, ReinforceWithChinook)
Trigger.OnKilled(TechCenter, CreateScientist)
end
function Tick()
if DateTime.GameTime > 2 then
if player.HasNoRequiredUnits() then
enemy.MarkCompletedObjective(gdiObjective)
end
end
end