Add Nod 10b mission

This commit is contained in:
dtluna
2018-12-11 15:45:48 +03:00
committed by reaperrr
parent a0089d97e6
commit 809f57e48d
6 changed files with 949 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,722 @@
MapFormat: 11
RequiresMod: cnc
Title: 10b: Destroy the Mammoth Tank Facility
Author: Westwood Studios
Tileset: DESERT
MapSize: 64,64
Bounds: 5,8,56,51
Visibility: MissionSelector
Categories: Campaign
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: gdi
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Faction: Random
PlayerReference@GDI:
Name: GDI
Faction: gdi
Color: F6D679
Enemies: Nod
PlayerReference@Nod:
Name: Nod
AllowBots: False
Playable: True
Required: True
Faction: nod
LockColor: True
Color: FE1100
LockSpawn: True
LockTeam: True
Enemies: GDI
Actors:
Actor0: brik
Location: 38,55
Owner: Neutral
Actor1: brik
Location: 37,55
Owner: Neutral
Actor2: brik
Location: 36,55
Owner: Neutral
Actor3: brik
Location: 35,55
Owner: Neutral
Actor4: brik
Location: 34,55
Owner: Neutral
Actor5: brik
Location: 33,55
Owner: Neutral
Actor6: brik
Location: 32,55
Owner: Neutral
Actor7: brik
Location: 31,55
Owner: Neutral
Actor8: brik
Location: 30,55
Owner: Neutral
Actor9: brik
Location: 29,55
Owner: Neutral
Actor10: brik
Location: 28,55
Owner: Neutral
Actor11: brik
Location: 27,55
Owner: Neutral
Actor12: brik
Location: 26,55
Owner: Neutral
Actor13: brik
Location: 25,55
Owner: Neutral
Actor14: brik
Location: 24,55
Owner: Neutral
Actor15: brik
Location: 23,55
Owner: Neutral
Actor16: brik
Location: 22,55
Owner: Neutral
Actor17: brik
Location: 21,55
Owner: Neutral
Actor18: brik
Location: 20,55
Owner: Neutral
Actor19: brik
Location: 19,55
Owner: Neutral
Actor20: brik
Location: 18,55
Owner: Neutral
Actor21: brik
Location: 17,55
Owner: Neutral
Actor22: brik
Location: 38,54
Owner: Neutral
Actor23: brik
Location: 37,54
Owner: Neutral
Actor24: cycl
Location: 30,54
Owner: Neutral
Actor25: cycl
Location: 29,54
Owner: Neutral
Actor26: cycl
Location: 28,54
Owner: Neutral
Actor27: cycl
Location: 27,54
Owner: Neutral
Actor28: cycl
Location: 26,54
Owner: Neutral
Actor29: cycl
Location: 25,54
Owner: Neutral
Actor30: cycl
Location: 24,54
Owner: Neutral
Actor31: cycl
Location: 23,54
Owner: Neutral
Actor32: brik
Location: 17,54
Owner: Neutral
Actor33: brik
Location: 38,53
Owner: Neutral
Actor34: cycl
Location: 30,53
Owner: Neutral
Actor35: cycl
Location: 23,53
Owner: Neutral
Actor36: brik
Location: 17,53
Owner: Neutral
Actor37: brik
Location: 38,52
Owner: Neutral
Actor38: cycl
Location: 30,52
Owner: Neutral
Actor39: cycl
Location: 23,52
Owner: Neutral
Actor40: brik
Location: 17,52
Owner: Neutral
Actor41: brik
Location: 38,51
Owner: Neutral
Actor42: cycl
Location: 30,51
Owner: Neutral
Actor43: cycl
Location: 23,51
Owner: Neutral
Actor44: brik
Location: 18,51
Owner: Neutral
Actor45: brik
Location: 17,51
Owner: Neutral
Actor46: brik
Location: 38,50
Owner: Neutral
Actor47: cycl
Location: 30,50
Owner: Neutral
Actor48: cycl
Location: 29,50
Owner: Neutral
Actor49: cycl
Location: 28,50
Owner: Neutral
Actor50: cycl
Location: 25,50
Owner: Neutral
Actor51: cycl
Location: 24,50
Owner: Neutral
Actor52: cycl
Location: 23,50
Owner: Neutral
Actor53: brik
Location: 18,50
Owner: Neutral
Actor54: brik
Location: 17,50
Owner: Neutral
Actor55: brik
Location: 38,49
Owner: Neutral
Actor56: brik
Location: 38,48
Owner: Neutral
Actor57: brik
Location: 37,48
Owner: Neutral
Actor58: brik
Location: 38,47
Owner: Neutral
Actor59: brik
Location: 37,47
Owner: Neutral
Actor60: brik
Location: 36,47
Owner: Neutral
Actor61: brik
Location: 35,47
Owner: Neutral
Actor62: brik
Location: 18,47
Owner: Neutral
Actor63: brik
Location: 17,47
Owner: Neutral
Actor64: brik
Location: 35,46
Owner: Neutral
Actor65: brik
Location: 18,46
Owner: Neutral
Actor66: brik
Location: 17,46
Owner: Neutral
Actor67: brik
Location: 35,45
Owner: Neutral
Actor68: brik
Location: 17,45
Owner: Neutral
Actor69: brik
Location: 35,44
Owner: Neutral
Actor70: brik
Location: 17,44
Owner: Neutral
Actor71: brik
Location: 35,43
Owner: Neutral
Actor72: brik
Location: 17,43
Owner: Neutral
Actor73: brik
Location: 35,42
Owner: Neutral
Actor74: brik
Location: 34,42
Owner: Neutral
Actor75: brik
Location: 29,42
Owner: Neutral
Actor76: brik
Location: 28,42
Owner: Neutral
Actor77: brik
Location: 23,42
Owner: Neutral
Actor78: brik
Location: 22,42
Owner: Neutral
Actor79: brik
Location: 18,42
Owner: Neutral
Actor80: brik
Location: 17,42
Owner: Neutral
Actor81: brik
Location: 35,41
Owner: Neutral
Actor82: brik
Location: 34,41
Owner: Neutral
Actor83: brik
Location: 33,41
Owner: Neutral
Actor84: brik
Location: 32,41
Owner: Neutral
Actor85: brik
Location: 31,41
Owner: Neutral
Actor86: brik
Location: 30,41
Owner: Neutral
Actor87: brik
Location: 29,41
Owner: Neutral
Actor88: brik
Location: 28,41
Owner: Neutral
Actor89: brik
Location: 23,41
Owner: Neutral
Actor90: brik
Location: 22,41
Owner: Neutral
Actor91: brik
Location: 21,41
Owner: Neutral
Actor92: brik
Location: 20,41
Owner: Neutral
Actor93: brik
Location: 19,41
Owner: Neutral
Actor94: brik
Location: 18,41
Owner: Neutral
Actor95: brik
Location: 17,41
Owner: Neutral
Actor96: t18
Location: 43,54
Owner: Neutral
Actor97: t08
Location: 42,56
Owner: Neutral
Actor98: t18
Location: 5,29
Owner: Neutral
Actor99: t18
Location: 13,31
Owner: Neutral
Actor100: t18
Location: 17,18
Owner: Neutral
Actor101: t18
Location: 30,15
Owner: Neutral
Actor102: t18
Location: 57,12
Owner: Neutral
Actor103: t18
Location: 36,23
Owner: Neutral
Actor104: t18
Location: 18,55
Owner: Neutral
Actor105: t18
Location: 35,45
Owner: Neutral
Actor106: t18
Location: 42,48
Owner: Neutral
Actor107: t18
Location: 54,48
Owner: Neutral
Actor108: t08
Location: 57,48
Owner: Neutral
Actor109: t08
Location: 57,51
Owner: Neutral
Actor110: t08
Location: 53,50
Owner: Neutral
Actor111: t08
Location: 54,51
Owner: Neutral
Actor112: t08
Location: 49,50
Owner: Neutral
Actor113: t08
Location: 48,49
Owner: Neutral
Actor114: t08
Location: 51,53
Owner: Neutral
Actor115: t08
Location: 46,52
Owner: Neutral
Silo1: silo
Location: 22,43
Owner: GDI
Silo2: silo
Location: 23,45
Owner: GDI
WeaponsFactory: weap
Location: 35,49
Owner: GDI
Actor119: v20
Location: 56,46
Owner: Neutral
Actor120: v21
Location: 54,47
Owner: Neutral
Actor121: v22
Location: 48,47
Owner: Neutral
Actor122: v23
Location: 52,44
Owner: Neutral
Actor123: v24
Location: 57,48
Owner: Neutral
Actor124: v25
Location: 57,51
Owner: Neutral
Actor125: v26
Location: 47,50
Owner: Neutral
Actor126: v27
Location: 50,50
Owner: Neutral
Actor127: v27
Location: 51,50
Owner: Neutral
Actor128: v27
Location: 59,49
Owner: Neutral
Actor129: v30
Location: 59,52
Owner: Neutral
Actor130: v31
Location: 43,47
Owner: Neutral
Actor131: v32
Location: 42,48
Owner: Neutral
Actor132: v20
Location: 47,51
Owner: Neutral
Actor133: v21
Location: 52,51
Owner: Neutral
Actor134: v22
Location: 54,52
Owner: Neutral
Actor135: v23
Location: 44,48
Owner: Neutral
Actor136: v24
Location: 46,48
Owner: Neutral
Actor137: v26
Location: 54,50
Owner: Neutral
CommCenter: hq
Location: 30,42
Owner: GDI
ConYard: fact
Location: 32,44
Owner: GDI
PowerPlant1: nuke
Location: 33,47
Owner: GDI
PowerPlant2: nuke
Location: 18,43
Owner: GDI
PowerPlant3: nuke
Location: 35,52
Owner: GDI
PowerPlant4: nuke
Location: 20,42
Owner: GDI
Barracks: pyle
Location: 30,45
Owner: GDI
PowerPlant5: nuke
Location: 18,52
Owner: GDI
GuardTower1: gtwr
Location: 23,40
Owner: GDI
GuardTower2: gtwr
Location: 28,40
Owner: GDI
Actor148: jeep
Location: 56,17
Owner: GDI
Facing: 159
Mammoth1: htnk
Location: 29,53
Owner: GDI
Mammoth2: htnk
Location: 26,52
Owner: GDI
Mammoth3: htnk
Location: 24,53
Owner: GDI
PatrollingMammoth: htnk
Location: 59,42
Owner: GDI
Facing: 31
Actor153: arty
Location: 27,28
Owner: Nod
MediumTank1: mtnk
Location: 43,28
Owner: GDI
Facing: 191
MediumTank2: mtnk
Location: 43,29
Owner: GDI
Facing: 191
Rifleman1: e1
Location: 16,54
Owner: GDI
SubCell: 3
Rifleman2: e1
Location: 16,54
Owner: GDI
SubCell: 1
Rifleman3: e1
Location: 16,54
Owner: GDI
SubCell: 2
Rifleman4: e1
Location: 16,54
Owner: GDI
SubCell: 4
Actor160: e1
Location: 17,14
Owner: GDI
Facing: 191
SubCell: 3
Actor161: e1
Location: 17,15
Owner: GDI
Facing: 191
SubCell: 1
Actor162: e1
Location: 17,15
Owner: GDI
Facing: 191
SubCell: 2
Actor163: e1
Location: 17,14
Owner: GDI
Facing: 191
SubCell: 4
Actor164: e2
Location: 15,28
Owner: GDI
SubCell: 2
Actor165: e2
Location: 15,28
Owner: GDI
SubCell: 1
Actor166: e2
Location: 15,28
Owner: GDI
SubCell: 3
Actor167: e2
Location: 15,28
Owner: GDI
SubCell: 4
Actor168: e2
Location: 36,9
Owner: GDI
Facing: 159
SubCell: 4
Actor169: e2
Location: 36,9
Owner: GDI
Facing: 159
SubCell: 3
Actor170: e2
Location: 32,16
Owner: GDI
SubCell: 1
Actor171: e2
Location: 32,16
Owner: GDI
SubCell: 2
Actor172: e2
Location: 57,18
Owner: GDI
Facing: 159
SubCell: 2
Actor173: e2
Location: 57,18
Owner: GDI
Facing: 159
SubCell: 0
Actor174: c8
Location: 57,54
Owner: Neutral
SubCell: 0
Actor175: c3
Location: 56,49
Owner: Neutral
Facing: 95
SubCell: 2
Actor176: c4
Location: 56,49
Owner: Neutral
Facing: 223
SubCell: 3
Actor177: e3
Location: 26,27
Owner: Nod
SubCell: 1
Actor178: e3
Location: 26,27
Owner: Nod
SubCell: 3
Actor179: e3
Location: 26,27
Owner: Nod
SubCell: 2
Actor180: e3
Location: 26,27
Owner: Nod
SubCell: 4
Actor181: e3
Location: 28,27
Owner: Nod
SubCell: 2
Actor182: e3
Location: 29,27
Owner: Nod
SubCell: 1
Actor183: e3
Location: 29,27
Owner: Nod
SubCell: 3
Actor184: e3
Location: 28,27
Owner: Nod
SubCell: 4
Actor185: e6
Location: 27,27
Owner: Nod
SubCell: 2
Actor186: e3
Location: 29,45
Owner: GDI
SubCell: 3
Actor187: e3
Location: 29,45
Owner: GDI
SubCell: 4
Grenadier1: e2
Location: 40,19
Owner: GDI
Facing: 191
SubCell: 2
Grenadier2: e2
Location: 40,18
Owner: GDI
Facing: 191
SubCell: 4
Grenadier3: e2
Location: 41,19
Owner: GDI
Facing: 191
SubCell: 1
Grenadier4: e2
Location: 41,18
Owner: GDI
Facing: 191
SubCell: 3
Actor192: e3
Location: 19,51
Owner: GDI
SubCell: 2
Actor193: e3
Location: 20,51
Owner: GDI
SubCell: 1
Actor194: e3
Location: 37,52
Owner: GDI
Facing: 31
SubCell: 4
Actor195: e3
Location: 33,54
Owner: GDI
SubCell: 4
Actor196: e3
Location: 34,54
Owner: GDI
SubCell: 3
DefaultCameraPosition: waypoint
Location: 20,21
Owner: Neutral
ChinookEntry: waypoint
Location: 20, 8
Owner: Neutral
ChinookTarget: waypoint
Location: 27,25
Owner: Neutral
MammothWaypoint1: waypoint
Location: 9,37
Owner: Neutral
MammothWaypoint2: waypoint
Location: 54,14
Owner: Neutral
NorthEntrance: waypoint
Location: 29,36
Owner: Neutral
RiflemenWaypoint1: waypoint
Location: 16,41
Owner: Neutral
RiflemenWaypoint2: waypoint
Location: 16,54
Owner: Neutral
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -0,0 +1,172 @@
--[[
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, PowerPlant5, Barracks,
Silo1, Silo2, WeaponsFactory, CommCenter, GuardTower1, GuardTower2}
function RepairBuilding(building, attacker)
if not building.IsDead and building.Owner == enemy then
building.StartBuildingRepairs(enemy)
end
end
Mammoths = {Mammoth1, Mammoth2, Mammoth3}
Grenadiers = {Grenadier1, Grenadier2, Grenadier3, Grenadier4}
MediumTanks = {MediumTank1, MediumTank2}
Riflemen = {Rifleman1, Rifleman2, Rifleman3, Rifleman4}
MammothPatrolPath = {MammothWaypoint1.Location, MammothWaypoint2.Location}
RiflemenPatrolPath = {RiflemenWaypoint1.Location, RiflemenWaypoint2.Location}
DamageTrigger = false
function TankDamaged(tank, attacker)
if not DamageTrigger then
DamageTrigger = true
Utils.Do(Grenadiers, function(grenadier)
if not grenadier.IsDead then
grenadier.AttackMove(tank.Location)
end
end)
end
end
function GrenadierDamaged(grenadier, attacker)
if not DamageTrigger then
DamageTrigger = true
Utils.Do(MediumTanks, function(tank)
if not tank.IsDead then
tank.AttackMove(grenadier.Location)
end
end)
end
end
InfantrySquad = {"e1", "e1", "e1", "e1", "e1"}
function MoveToNorthEntrance(squad)
Utils.Do(squad, function(unit)
if not unit.IsDead then
unit.AttackMove(NorthEntrance.Location)
end
end)
end
function EnteredFromNorth(actor, id)
if actor.Owner == player then
Trigger.RemoveFootprintTrigger(id)
if not Barracks.IsDead and Barracks.Owner == enemy then
Barracks.Build(InfantrySquad, MoveToNorthEntrance)
end
end
end
function DeliverCommando()
Media.PlaySpeechNotification(player, "Reinforce")
units = Reinforcements.ReinforceWithTransport(player, 'tran.in', {Rambo}, {ChinookEntry.Location, ChinookTarget.Location}, {ChinookEntry.Location})
rambo = units[2][1]
Trigger.OnKilled(rambo, function(a, k)
player.MarkFailedObjective(keepRamboAliveObjective)
end)
Trigger.OnPlayerWon(player, function(player)
if not rambo.IsDead then
player.MarkCompletedObjective(keepRamboAliveObjective)
end
end)
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)
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area.")
warFactoryObjective = player.AddPrimaryObjective("Destroy or capture the Weapons Factory.")
destroyTanksObjective = player.AddPrimaryObjective("Destroy the Mammoth tanks in the R&D base.")
keepRamboAliveObjective = player.AddSecondaryObjective("Keep your Commando alive.")
Trigger.OnKilledOrCaptured(WeaponsFactory, function()
player.MarkCompletedObjective(warFactoryObjective)
end)
Trigger.OnAllKilled(Mammoths, function()
player.MarkCompletedObjective(destroyTanksObjective)
end)
Trigger.AfterDelay(DateTime.Seconds(1), DeliverCommando)
Utils.Do(Mammoths, function(mammoth)
mammoth.Stance = "HoldFire"
end)
Utils.Do(MediumTanks, function(tank)
Trigger.OnDamaged(tank, TankDamaged)
end)
Utils.Do(Grenadiers, function(grenadier)
Trigger.OnDamaged(grenadier, GrenadierDamaged)
end)
Utils.Do(GDIBuildings, function(building)
Trigger.OnDamaged(building, RepairBuilding)
end)
Trigger.OnEnteredFootprint({NorthEntrance.Location}, EnteredFromNorth)
Utils.Do(Riflemen, function(rifleman)
rifleman.Patrol(RiflemenPatrolPath)
end)
PatrollingMammoth.Patrol(MammothPatrolPath)
end
function Tick()
if DateTime.GameTime > 2 then
if player.HasNoRequiredUnits() then
enemy.MarkCompletedObjective(gdiObjective)
end
end
end

View File

@@ -0,0 +1,54 @@
World:
LuaScript:
Scripts: nod10b.lua
MissionData:
Briefing: GDI is developing a new, heavily armored tank. Our spies have located the GDI R&D base.\n\nUse your small strike force to locate and penetrate the center. Be sure to destroy the tanks in the base and the factory.
BackgroundVideo: kanepre.vqa
LossVideo: deskill.vqa
WinVideo: tankkill.vqa
BriefingVideo: nod10b.vqa
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: Difficulty
Values:
easy: Easy
normal: Normal
hard: Hard
Default: easy
-LegacyBridgeLayer:
Player:
PlayerResources:
DefaultCash: 0
TRAN.IN:
Inherits: TRAN
RejectsOrders:
-Selectable:
RenderSprites:
Image: TRAN
Buildable:
Prerequisites: ~disabled
Interactable:
-RevealsShroud:
RMBO.easy:
Inherits: RMBO
Health:
HP: 30000
SelfHealing:
Step: 500
Delay: 10
HealIfBelow: 50
DamageCooldown: 200
RenderSprites:
Image: RMBO
RMBO.hard:
Inherits: RMBO
-AutoTarget:
-AutoTargetPriority@DEFAULT:
-AutoTargetPriority@ATTACKANYTHING:
-AttackMove:
RenderSprites:
Image: RMBO

View File

@@ -28,6 +28,7 @@ Nod Campaign:
./mods/cnc/maps/nod08a
./mods/cnc/maps/nod08b
./mods/cnc/maps/nod09
./mods/cnc/maps/nod10b
Funpark Campaign:
./mods/cnc/maps/funpark01