Initial commit: OpenRA game engine
Fork from OpenRA/OpenRA with one-click launch script (start-ra.cmd) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
188
mods/cnc/maps/gdi05a/gdi05a.lua
Normal file
188
mods/cnc/maps/gdi05a/gdi05a.lua
Normal file
@@ -0,0 +1,188 @@
|
||||
--[[
|
||||
Copyright (c) The OpenRA Developers and Contributors
|
||||
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.
|
||||
]]
|
||||
|
||||
RepairThreshold = { easy = 0.3, normal = 0.6, hard = 0.9 }
|
||||
|
||||
ActorRemovals =
|
||||
{
|
||||
easy = { Actor167, Actor168, Actor190, Actor191, Actor193, Actor194, Actor196, Actor198, Actor200 },
|
||||
normal = { Actor167, Actor194, Actor196, Actor197 },
|
||||
hard = { },
|
||||
}
|
||||
|
||||
GdiTanks = { "mtnk", "mtnk" }
|
||||
GdiApc = { "apc" }
|
||||
GdiInfantry = { "e1", "e1", "e1", "e1", "e1", "e2", "e2", "e2", "e2", "e2" }
|
||||
GDIBase = { GdiNuke1, GdiNuke2, GdiProc, GdiSilo1, GdiSilo2, GdiPyle, GdiWeap, GdiHarv }
|
||||
NodSams = { Sam1, Sam2, Sam3, Sam4 }
|
||||
CoreNodBase = { NodConYard, NodRefinery, HandOfNod, Airfield }
|
||||
|
||||
Guard1UnitTypes = { "bggy" }
|
||||
Guard1Path = { waypoint4.Location, waypoint5.Location, waypoint10.Location }
|
||||
Guard1Delay = { easy = DateTime.Minutes(2), normal = DateTime.Minutes(1), hard = DateTime.Seconds(30) }
|
||||
Guard2UnitTypes = { "bggy" }
|
||||
Guard2Path = { waypoint0.Location, waypoint1.Location, waypoint2.Location }
|
||||
Guard3Path = { waypoint4.Location, waypoint5.Location, waypoint9.Location }
|
||||
|
||||
AttackDelayMin = { easy = DateTime.Minutes(1), normal = DateTime.Seconds(45), hard = DateTime.Seconds(30) }
|
||||
AttackDelayMax = { easy = DateTime.Minutes(2), normal = DateTime.Seconds(90), hard = DateTime.Minutes(1) }
|
||||
AttackUnitTypes =
|
||||
{
|
||||
easy =
|
||||
{
|
||||
{ factory = HandOfNod, types = { "e1", "e1" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e3", "e3" } },
|
||||
},
|
||||
normal =
|
||||
{
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e3", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e3", "e3" } },
|
||||
{ factory = Airfield, types = { "bggy" } },
|
||||
},
|
||||
hard =
|
||||
{
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e3", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e1", "e3", "e3" } },
|
||||
{ factory = HandOfNod, types = { "e1", "e1", "e3", "e3", "e3" } },
|
||||
{ factory = Airfield, types = { "bggy" } },
|
||||
{ factory = Airfield, types = { "ltnk" } },
|
||||
}
|
||||
}
|
||||
|
||||
AttackPaths =
|
||||
{
|
||||
{ waypoint0.Location, waypoint1.Location, waypoint2.Location, waypoint3.Location },
|
||||
{ waypoint4.Location, waypoint9.Location, waypoint7.Location, waypoint8.Location },
|
||||
}
|
||||
|
||||
Attack = function()
|
||||
local production = Utils.Random(AttackUnitTypes[Difficulty])
|
||||
local path = Utils.Random(AttackPaths)
|
||||
local toBuild = function() return production.types end
|
||||
ProduceUnits(Nod, production.factory, nil, toBuild, function(units)
|
||||
Utils.Do(units, function(unit)
|
||||
unit.Patrol(path, false)
|
||||
IdleHunt(unit)
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(Utils.RandomInteger(AttackDelayMin[Difficulty], AttackDelayMax[Difficulty]), Attack)
|
||||
end
|
||||
|
||||
Guard1Action = function()
|
||||
ProduceUnits(Nod, Airfield, nil, function() return Guard1UnitTypes end, function(units)
|
||||
Trigger.OnAllKilled(units, function()
|
||||
Trigger.AfterDelay(Guard1Delay[Difficulty], Guard1Action)
|
||||
end)
|
||||
|
||||
Utils.Do(units, function(unit)
|
||||
unit.Patrol(Guard1Path, true, DateTime.Seconds(7))
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
Guard2Action = function()
|
||||
ProduceUnits(Nod, Airfield, nil, function() return Guard2UnitTypes end, function(units)
|
||||
Utils.Do(units, function(unit)
|
||||
unit.Patrol(Guard2Path, true, DateTime.Seconds(5))
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
DiscoverGDIBase = function(actor, discoverer)
|
||||
if BaseDiscovered or not discoverer == GDI then
|
||||
return
|
||||
end
|
||||
|
||||
Utils.Do(GDIBase, function(actor)
|
||||
actor.Owner = GDI
|
||||
end)
|
||||
|
||||
BaseDiscovered = true
|
||||
|
||||
EliminateNod = AddPrimaryObjective(GDI, "eliminate-nod")
|
||||
GDI.MarkCompletedObjective(FindBase)
|
||||
|
||||
Attack()
|
||||
end
|
||||
|
||||
SetupWorld = function()
|
||||
Utils.Do(ActorRemovals[Difficulty], function(unit)
|
||||
unit.Destroy()
|
||||
end)
|
||||
|
||||
Media.PlaySpeechNotification(GDI, "Reinforce")
|
||||
Reinforcements.Reinforce(GDI, GdiTanks, { GdiTankEntry.Location, GdiTankRallyPoint.Location }, DateTime.Seconds(1), function(actor) actor.Stance = "Defend" end)
|
||||
Reinforcements.Reinforce(GDI, GdiApc, { GdiApcEntry.Location, GdiApcRallyPoint.Location }, DateTime.Seconds(1), function(actor) actor.Stance = "Defend" end)
|
||||
Reinforcements.Reinforce(GDI, GdiInfantry, { GdiInfantryEntry.Location, GdiInfantryRallyPoint.Location }, 15, function(actor) actor.Stance = "Defend" end)
|
||||
|
||||
Trigger.OnPlayerDiscovered(AbandonedBase, DiscoverGDIBase)
|
||||
|
||||
RepairNamedActors(Nod, RepairThreshold[Difficulty])
|
||||
|
||||
Trigger.OnAllKilled(NodSams, function()
|
||||
GDI.MarkCompletedObjective(DestroySAMs)
|
||||
Actor.Create("airstrike.proxy", true, { Owner = GDI })
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(0, function()
|
||||
GdiHarv.Stop()
|
||||
end)
|
||||
|
||||
if Difficulty ~= "easy" then
|
||||
Trigger.OnDamaged(NodHarv, function()
|
||||
Utils.Do(Nod.GetGroundAttackers(), function(unit)
|
||||
unit.AttackMove(NodHarv.Location)
|
||||
if Difficulty == "hard" then
|
||||
IdleHunt(unit)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(45), Guard1Action)
|
||||
Trigger.AfterDelay(DateTime.Minutes(3), Guard2Action)
|
||||
|
||||
Trigger.OnKilled(GuardTank1, function()
|
||||
if not GuardTank2.IsDead then
|
||||
GuardTank2.Patrol(Guard3Path, true, DateTime.Seconds(11))
|
||||
end
|
||||
end)
|
||||
|
||||
GuardTank1.Patrol(Guard3Path, true, DateTime.Seconds(11))
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
AbandonedBase = Player.GetPlayer("AbandonedBase")
|
||||
GDI = Player.GetPlayer("GDI")
|
||||
Nod = Player.GetPlayer("Nod")
|
||||
|
||||
InitObjectives(GDI)
|
||||
|
||||
NodObjective = AddPrimaryObjective(Nod, "")
|
||||
FindBase = AddPrimaryObjective(GDI, "find-gdi-base")
|
||||
DestroySAMs = AddSecondaryObjective(GDI, "destroy-sams")
|
||||
|
||||
SetupWorld()
|
||||
|
||||
Camera.Position = GdiTankRallyPoint.CenterPosition
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if DateTime.GameTime > 2 and GDI.HasNoRequiredUnits() then
|
||||
Nod.MarkCompletedObjective(NodObjective)
|
||||
end
|
||||
|
||||
if BaseDiscovered and Nod.HasNoRequiredUnits() then
|
||||
GDI.MarkCompletedObjective(EliminateNod)
|
||||
end
|
||||
end
|
||||
BIN
mods/cnc/maps/gdi05a/map.bin
Normal file
BIN
mods/cnc/maps/gdi05a/map.bin
Normal file
Binary file not shown.
7
mods/cnc/maps/gdi05a/map.ftl
Normal file
7
mods/cnc/maps/gdi05a/map.ftl
Normal file
@@ -0,0 +1,7 @@
|
||||
## rules.yaml
|
||||
briefing =
|
||||
A GDI field base is under attack. They have fended off one attack but will not survive another.
|
||||
|
||||
Move to the base, repair the structures, then launch a strike force to destroy the Nod base in the area.
|
||||
|
||||
Destroy all Nod units and structures.
|
||||
BIN
mods/cnc/maps/gdi05a/map.png
Normal file
BIN
mods/cnc/maps/gdi05a/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
761
mods/cnc/maps/gdi05a/map.yaml
Normal file
761
mods/cnc/maps/gdi05a/map.yaml
Normal file
@@ -0,0 +1,761 @@
|
||||
MapFormat: 12
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
Title: 05a: Repair the GDI base
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: TEMPERAT
|
||||
|
||||
MapSize: 64,64
|
||||
|
||||
Bounds: 8,21,49,39
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Nod:
|
||||
Name: Nod
|
||||
Faction: nod
|
||||
Color: FE1100
|
||||
Allies: Nod
|
||||
Enemies: GDI
|
||||
Bot: campaign
|
||||
PlayerReference@GDI:
|
||||
Name: GDI
|
||||
Playable: True
|
||||
AllowBots: False
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: gdi
|
||||
LockColor: True
|
||||
Color: F5D378
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Allies: GDI
|
||||
Enemies: Nod
|
||||
PlayerReference@AbandonedBase:
|
||||
Name: AbandonedBase
|
||||
NonCombatant: True
|
||||
Color: F5D378
|
||||
Faction: gdi
|
||||
Bot: campaign
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: gdi
|
||||
|
||||
Actors:
|
||||
Actor0: sbag
|
||||
Location: 53,59
|
||||
Owner: GDI
|
||||
Actor1: sbag
|
||||
Location: 52,59
|
||||
Owner: GDI
|
||||
Actor2: sbag
|
||||
Location: 51,59
|
||||
Owner: GDI
|
||||
Actor3: sbag
|
||||
Location: 50,59
|
||||
Owner: GDI
|
||||
Actor4: sbag
|
||||
Location: 49,59
|
||||
Owner: GDI
|
||||
Actor5: sbag
|
||||
Location: 45,59
|
||||
Owner: GDI
|
||||
Actor6: sbag
|
||||
Location: 44,59
|
||||
Owner: GDI
|
||||
Actor7: sbag
|
||||
Location: 43,59
|
||||
Owner: GDI
|
||||
Actor8: sbag
|
||||
Location: 42,59
|
||||
Owner: GDI
|
||||
Actor9: sbag
|
||||
Location: 41,59
|
||||
Owner: GDI
|
||||
Actor10: sbag
|
||||
Location: 41,57
|
||||
Owner: GDI
|
||||
Actor11: sbag
|
||||
Location: 41,56
|
||||
Owner: GDI
|
||||
Actor12: sbag
|
||||
Location: 41,53
|
||||
Owner: GDI
|
||||
Actor13: sbag
|
||||
Location: 41,52
|
||||
Owner: GDI
|
||||
Actor14: sbag
|
||||
Location: 44,51
|
||||
Owner: GDI
|
||||
Actor15: sbag
|
||||
Location: 43,51
|
||||
Owner: GDI
|
||||
Actor16: sbag
|
||||
Location: 42,51
|
||||
Owner: GDI
|
||||
Actor17: sbag
|
||||
Location: 41,51
|
||||
Owner: GDI
|
||||
Actor18: sbag
|
||||
Location: 54,50
|
||||
Owner: GDI
|
||||
Actor19: sbag
|
||||
Location: 53,50
|
||||
Owner: GDI
|
||||
Actor20: sbag
|
||||
Location: 52,50
|
||||
Owner: GDI
|
||||
Actor21: sbag
|
||||
Location: 46,50
|
||||
Owner: GDI
|
||||
Actor22: sbag
|
||||
Location: 45,50
|
||||
Owner: GDI
|
||||
Actor23: sbag
|
||||
Location: 44,50
|
||||
Owner: GDI
|
||||
Actor24: sbag
|
||||
Location: 15,31
|
||||
Owner: Nod
|
||||
Actor25: sbag
|
||||
Location: 14,31
|
||||
Owner: Nod
|
||||
Actor26: sbag
|
||||
Location: 13,31
|
||||
Owner: Nod
|
||||
Actor27: sbag
|
||||
Location: 12,31
|
||||
Owner: Nod
|
||||
Actor28: sbag
|
||||
Location: 8,31
|
||||
Owner: Nod
|
||||
Actor29: sbag
|
||||
Location: 15,30
|
||||
Owner: Nod
|
||||
Actor30: sbag
|
||||
Location: 8,30
|
||||
Owner: Nod
|
||||
Actor31: sbag
|
||||
Location: 25,29
|
||||
Owner: Nod
|
||||
Actor32: sbag
|
||||
Location: 24,29
|
||||
Owner: Nod
|
||||
Actor33: sbag
|
||||
Location: 23,29
|
||||
Owner: Nod
|
||||
Actor34: sbag
|
||||
Location: 22,29
|
||||
Owner: Nod
|
||||
Actor35: sbag
|
||||
Location: 21,29
|
||||
Owner: Nod
|
||||
Actor36: sbag
|
||||
Location: 20,29
|
||||
Owner: Nod
|
||||
Actor37: sbag
|
||||
Location: 19,29
|
||||
Owner: Nod
|
||||
Actor38: sbag
|
||||
Location: 18,29
|
||||
Owner: Nod
|
||||
Actor39: sbag
|
||||
Location: 17,29
|
||||
Owner: Nod
|
||||
Actor40: sbag
|
||||
Location: 16,29
|
||||
Owner: Nod
|
||||
Actor41: sbag
|
||||
Location: 15,29
|
||||
Owner: Nod
|
||||
Actor42: sbag
|
||||
Location: 8,29
|
||||
Owner: Nod
|
||||
Actor43: sbag
|
||||
Location: 25,28
|
||||
Owner: Nod
|
||||
Actor44: sbag
|
||||
Location: 8,28
|
||||
Owner: Nod
|
||||
Actor45: sbag
|
||||
Location: 25,27
|
||||
Owner: Nod
|
||||
Actor46: sbag
|
||||
Location: 8,27
|
||||
Owner: Nod
|
||||
Actor47: sbag
|
||||
Location: 8,26
|
||||
Owner: Nod
|
||||
Actor48: sbag
|
||||
Location: 8,25
|
||||
Owner: Nod
|
||||
Actor49: sbag
|
||||
Location: 25,24
|
||||
Owner: Nod
|
||||
Actor50: sbag
|
||||
Location: 8,24
|
||||
Owner: Nod
|
||||
Actor51: sbag
|
||||
Location: 25,23
|
||||
Owner: Nod
|
||||
Actor52: sbag
|
||||
Location: 8,23
|
||||
Owner: Nod
|
||||
Actor53: sbag
|
||||
Location: 25,22
|
||||
Owner: Nod
|
||||
Actor54: sbag
|
||||
Location: 8,22
|
||||
Owner: Nod
|
||||
Actor55: sbag
|
||||
Location: 25,21
|
||||
Owner: Nod
|
||||
Actor56: sbag
|
||||
Location: 24,21
|
||||
Owner: Nod
|
||||
Actor57: sbag
|
||||
Location: 23,21
|
||||
Owner: Nod
|
||||
Actor58: sbag
|
||||
Location: 22,21
|
||||
Owner: Nod
|
||||
Actor59: sbag
|
||||
Location: 21,21
|
||||
Owner: Nod
|
||||
Actor60: sbag
|
||||
Location: 20,21
|
||||
Owner: Nod
|
||||
Actor61: sbag
|
||||
Location: 19,21
|
||||
Owner: Nod
|
||||
Actor62: sbag
|
||||
Location: 18,21
|
||||
Owner: Nod
|
||||
Actor63: sbag
|
||||
Location: 17,21
|
||||
Owner: Nod
|
||||
Actor64: sbag
|
||||
Location: 16,21
|
||||
Owner: Nod
|
||||
Actor65: sbag
|
||||
Location: 15,21
|
||||
Owner: Nod
|
||||
Actor66: sbag
|
||||
Location: 14,21
|
||||
Owner: Nod
|
||||
Actor67: sbag
|
||||
Location: 13,21
|
||||
Owner: Nod
|
||||
Actor68: sbag
|
||||
Location: 12,21
|
||||
Owner: Nod
|
||||
Actor69: sbag
|
||||
Location: 11,21
|
||||
Owner: Nod
|
||||
Actor70: sbag
|
||||
Location: 10,21
|
||||
Owner: Nod
|
||||
Actor71: sbag
|
||||
Location: 9,21
|
||||
Owner: Nod
|
||||
Actor72: sbag
|
||||
Location: 8,21
|
||||
Owner: Nod
|
||||
Actor73: t01
|
||||
Location: 12,38
|
||||
Owner: Neutral
|
||||
Actor74: t01
|
||||
Location: 44,34
|
||||
Owner: Neutral
|
||||
Actor75: tc01
|
||||
Location: 43,36
|
||||
Owner: Neutral
|
||||
Actor76: tc01
|
||||
Location: 39,33
|
||||
Owner: Neutral
|
||||
Actor77: t05
|
||||
Location: 8,37
|
||||
Owner: Neutral
|
||||
Actor78: t03
|
||||
Location: 8,34
|
||||
Owner: Neutral
|
||||
Actor79: t03
|
||||
Location: 33,56
|
||||
Owner: Neutral
|
||||
Actor80: tc04
|
||||
Location: 13,46
|
||||
Owner: Neutral
|
||||
Actor81: tc02
|
||||
Location: 8,50
|
||||
Owner: Neutral
|
||||
Actor82: t02
|
||||
Location: 10,49
|
||||
Owner: Neutral
|
||||
Actor83: t01
|
||||
Location: 36,34
|
||||
Owner: Neutral
|
||||
Actor84: t01
|
||||
Location: 37,39
|
||||
Owner: Neutral
|
||||
Actor85: tc01
|
||||
Location: 27,21
|
||||
Owner: Neutral
|
||||
Actor86: tc02
|
||||
Location: 26,23
|
||||
Owner: Neutral
|
||||
Actor87: tc04
|
||||
Location: 23,29
|
||||
Owner: Neutral
|
||||
Actor88: tc02
|
||||
Location: 20,30
|
||||
Owner: Neutral
|
||||
Actor89: t07
|
||||
Location: 37,44
|
||||
Owner: Neutral
|
||||
Actor90: t12
|
||||
Location: 38,44
|
||||
Owner: Neutral
|
||||
Actor91: tc04
|
||||
Location: 35,43
|
||||
Owner: Neutral
|
||||
Actor92: tc02
|
||||
Location: 14,39
|
||||
Owner: Neutral
|
||||
Actor93: tc01
|
||||
Location: 10,46
|
||||
Owner: Neutral
|
||||
Actor94: tc04
|
||||
Location: 10,44
|
||||
Owner: Neutral
|
||||
Actor95: t01
|
||||
Location: 10,43
|
||||
Owner: Neutral
|
||||
Actor96: t01
|
||||
Location: 11,47
|
||||
Owner: Neutral
|
||||
Actor97: t05
|
||||
Location: 8,49
|
||||
Owner: Neutral
|
||||
Actor98: t06
|
||||
Location: 16,48
|
||||
Owner: Neutral
|
||||
Actor99: tc01
|
||||
Location: 13,49
|
||||
Owner: Neutral
|
||||
Actor100: tc01
|
||||
Location: 15,57
|
||||
Owner: Neutral
|
||||
Actor101: tc02
|
||||
Location: 9,54
|
||||
Owner: Neutral
|
||||
Actor102: tc05
|
||||
Location: 11,55
|
||||
Owner: Neutral
|
||||
Actor103: tc04
|
||||
Location: 9,57
|
||||
Owner: Neutral
|
||||
Actor104: tc04
|
||||
Location: 40,46
|
||||
Owner: Neutral
|
||||
Actor105: t01
|
||||
Location: 38,49
|
||||
Owner: Neutral
|
||||
Actor106: t01
|
||||
Location: 30,46
|
||||
Owner: Neutral
|
||||
Actor107: t01
|
||||
Location: 16,44
|
||||
Owner: Neutral
|
||||
Actor108: t02
|
||||
Location: 33,45
|
||||
Owner: Neutral
|
||||
Actor109: t02
|
||||
Location: 21,44
|
||||
Owner: Neutral
|
||||
Actor110: t05
|
||||
Location: 21,37
|
||||
Owner: Neutral
|
||||
Actor111: t06
|
||||
Location: 20,37
|
||||
Owner: Neutral
|
||||
Actor112: tc02
|
||||
Location: 30,44
|
||||
Owner: Neutral
|
||||
Actor113: tc01
|
||||
Location: 30,42
|
||||
Owner: Neutral
|
||||
Actor114: tc01
|
||||
Location: 21,39
|
||||
Owner: Neutral
|
||||
Actor115: tc04
|
||||
Location: 21,40
|
||||
Owner: Neutral
|
||||
Actor116: tc02
|
||||
Location: 24,40
|
||||
Owner: Neutral
|
||||
Actor117: t07
|
||||
Location: 25,41
|
||||
Owner: Neutral
|
||||
Actor118: t07
|
||||
Location: 50,38
|
||||
Owner: Neutral
|
||||
Actor119: t07
|
||||
Location: 44,35
|
||||
Owner: Neutral
|
||||
Actor120: t07
|
||||
Location: 42,36
|
||||
Owner: Neutral
|
||||
Actor121: t16
|
||||
Location: 45,43
|
||||
Owner: Neutral
|
||||
Actor122: tc02
|
||||
Location: 43,44
|
||||
Owner: Neutral
|
||||
Actor123: tc02
|
||||
Location: 48,39
|
||||
Owner: Neutral
|
||||
Actor124: tc04
|
||||
Location: 41,34
|
||||
Owner: Neutral
|
||||
Actor125: t17
|
||||
Location: 29,37
|
||||
Owner: Neutral
|
||||
Actor126: tc04
|
||||
Location: 35,38
|
||||
Owner: Neutral
|
||||
Actor127: tc01
|
||||
Location: 33,38
|
||||
Owner: Neutral
|
||||
Actor128: tc04
|
||||
Location: 9,35
|
||||
Owner: Neutral
|
||||
Actor129: t01
|
||||
Location: 22,55
|
||||
Owner: Neutral
|
||||
Actor130: t02
|
||||
Location: 32,56
|
||||
Owner: Neutral
|
||||
Actor131: t05
|
||||
Location: 29,50
|
||||
Owner: Neutral
|
||||
Actor132: t06
|
||||
Location: 36,47
|
||||
Owner: Neutral
|
||||
Actor133: tc01
|
||||
Location: 36,51
|
||||
Owner: Neutral
|
||||
Actor134: tc02
|
||||
Location: 27,58
|
||||
Owner: Neutral
|
||||
Actor135: tc02
|
||||
Location: 31,55
|
||||
Owner: Neutral
|
||||
Actor140: gun
|
||||
Location: 24,23
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
Actor141: gun
|
||||
Location: 24,28
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
Actor152: silo
|
||||
Location: 19,22
|
||||
Owner: Nod
|
||||
Actor153: silo
|
||||
Location: 17,22
|
||||
Owner: Nod
|
||||
Actor154: silo
|
||||
Location: 14,27
|
||||
Owner: Nod
|
||||
Actor155: silo
|
||||
Location: 12,28
|
||||
Owner: Nod
|
||||
Actor156: nuke
|
||||
Location: 11,22
|
||||
Owner: Nod
|
||||
Actor157: nuke
|
||||
Location: 9,22
|
||||
Owner: Nod
|
||||
Actor159: nuke
|
||||
Location: 13,22
|
||||
Owner: Nod
|
||||
Actor162: ltnk
|
||||
Location: 9,34
|
||||
Owner: Nod
|
||||
Facing: 768
|
||||
Actor164: ltnk
|
||||
Location: 29,37
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
Actor167: bggy
|
||||
Location: 19,27
|
||||
Owner: Nod
|
||||
Actor168: bggy
|
||||
Location: 19,28
|
||||
Owner: Nod
|
||||
Actor169: bggy
|
||||
Location: 44,34
|
||||
Owner: Nod
|
||||
Facing: 128
|
||||
Actor171: e3
|
||||
Location: 21,28
|
||||
Owner: Nod
|
||||
SubCell: 3
|
||||
Actor172: e3
|
||||
Location: 20,28
|
||||
Owner: Nod
|
||||
SubCell: 3
|
||||
Actor173: e3
|
||||
Location: 20,28
|
||||
Owner: Nod
|
||||
SubCell: 4
|
||||
Actor174: e1
|
||||
Location: 20,28
|
||||
Owner: Nod
|
||||
SubCell: 1
|
||||
Actor175: e1
|
||||
Location: 20,28
|
||||
Owner: Nod
|
||||
SubCell: 2
|
||||
Actor176: e1
|
||||
Location: 21,28
|
||||
Owner: Nod
|
||||
SubCell: 1
|
||||
Actor177: e1
|
||||
Location: 29,40
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 1
|
||||
Actor178: e3
|
||||
Location: 26,43
|
||||
Owner: Nod
|
||||
Facing: 256
|
||||
SubCell: 3
|
||||
Actor187: e1
|
||||
Location: 27,27
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 3
|
||||
Actor188: e3
|
||||
Location: 28,21
|
||||
Owner: Nod
|
||||
SubCell: 3
|
||||
Actor189: e3
|
||||
Location: 26,23
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 2
|
||||
Actor190: e3
|
||||
Location: 33,56
|
||||
Owner: Nod
|
||||
SubCell: 3
|
||||
Actor191: e3
|
||||
Location: 33,38
|
||||
Owner: Nod
|
||||
Facing: 640
|
||||
SubCell: 4
|
||||
Actor192: e3
|
||||
Location: 26,27
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 1
|
||||
Actor193: e3
|
||||
Location: 36,51
|
||||
Owner: Nod
|
||||
SubCell: 4
|
||||
Actor194: e3
|
||||
Location: 37,51
|
||||
Owner: Nod
|
||||
SubCell: 3
|
||||
Actor195: e3
|
||||
Location: 23,55
|
||||
Owner: Nod
|
||||
Facing: 896
|
||||
SubCell: 3
|
||||
Actor196: e3
|
||||
Location: 30,44
|
||||
Owner: Nod
|
||||
Facing: 768
|
||||
SubCell: 0
|
||||
Actor197: e3
|
||||
Location: 32,49
|
||||
Owner: Nod
|
||||
Facing: 640
|
||||
SubCell: 4
|
||||
Actor198: e3
|
||||
Location: 28,48
|
||||
Owner: Nod
|
||||
Facing: 640
|
||||
SubCell: 3
|
||||
Actor199: e1
|
||||
Location: 24,56
|
||||
Owner: Nod
|
||||
Facing: 896
|
||||
SubCell: 4
|
||||
Actor200: e1
|
||||
Location: 25,55
|
||||
Owner: Nod
|
||||
SubCell: 1
|
||||
Actor201: e1
|
||||
Location: 17,46
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 0
|
||||
Actor202: e1
|
||||
Location: 15,48
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 2
|
||||
Actor203: e1
|
||||
Location: 17,46
|
||||
Owner: Nod
|
||||
Facing: 384
|
||||
SubCell: 4
|
||||
waypoint27: waypoint
|
||||
Location: 32,41
|
||||
Owner: Neutral
|
||||
waypoint26: waypoint
|
||||
Location: 8,50
|
||||
Owner: Neutral
|
||||
waypoint19: waypoint
|
||||
Location: 17,28
|
||||
Owner: Neutral
|
||||
waypoint18: waypoint
|
||||
Location: 22,28
|
||||
Owner: Neutral
|
||||
waypoint10: waypoint
|
||||
Location: 10,34
|
||||
Owner: Neutral
|
||||
waypoint9: waypoint
|
||||
Location: 28,45
|
||||
Owner: Neutral
|
||||
waypoint8: waypoint
|
||||
Location: 37,54
|
||||
Owner: Neutral
|
||||
waypoint7: waypoint
|
||||
Location: 26,54
|
||||
Owner: Neutral
|
||||
waypoint6: waypoint
|
||||
Location: 37,31
|
||||
Owner: Neutral
|
||||
waypoint5: waypoint
|
||||
Location: 30,31
|
||||
Owner: Neutral
|
||||
waypoint4: waypoint
|
||||
Location: 31,25
|
||||
Owner: Neutral
|
||||
waypoint3: waypoint
|
||||
Location: 52,46
|
||||
Owner: Neutral
|
||||
waypoint2: waypoint
|
||||
Location: 53,31
|
||||
Owner: Neutral
|
||||
waypoint1: waypoint
|
||||
Location: 42,29
|
||||
Owner: Neutral
|
||||
waypoint0: waypoint
|
||||
Location: 36,28
|
||||
Owner: Neutral
|
||||
GdiProc: proc
|
||||
Location: 50,51
|
||||
Owner: AbandonedBase
|
||||
Health: 31
|
||||
FreeActor: False
|
||||
GdiHarv: harv
|
||||
Location: 48,53
|
||||
Owner: AbandonedBase
|
||||
Facing: 256
|
||||
GdiWeap: weap
|
||||
Location: 50,55
|
||||
Owner: AbandonedBase
|
||||
Health: 27
|
||||
GdiNuke1: nuke
|
||||
Location: 53,55
|
||||
Owner: AbandonedBase
|
||||
Health: 29
|
||||
GdiPyle: pyle
|
||||
Location: 46,55
|
||||
Owner: AbandonedBase
|
||||
Health: 25
|
||||
GdiSilo1: silo
|
||||
Location: 53,51
|
||||
Owner: AbandonedBase
|
||||
Health: 33
|
||||
GdiSilo2: silo
|
||||
Location: 53,53
|
||||
Owner: AbandonedBase
|
||||
Health: 25
|
||||
GdiNuke2: nuke
|
||||
Location: 48,56
|
||||
Owner: AbandonedBase
|
||||
Health: 21
|
||||
NodConYard: fact
|
||||
Location: 9,29
|
||||
Owner: Nod
|
||||
NodRefinery: proc
|
||||
Location: 21,22
|
||||
Owner: Nod
|
||||
FreeActor: False
|
||||
HandOfNod: hand
|
||||
Location: 15,23
|
||||
Owner: Nod
|
||||
Airfield: afld
|
||||
Location: 9,25
|
||||
Owner: Nod
|
||||
Sam1: sam
|
||||
Location: 21,39
|
||||
Owner: Nod
|
||||
Sam2: sam
|
||||
Location: 41,34
|
||||
Owner: Nod
|
||||
Sam3: sam
|
||||
Location: 24,31
|
||||
Owner: Nod
|
||||
Sam4: sam
|
||||
Location: 13,30
|
||||
Owner: Nod
|
||||
NodHarv: harv
|
||||
Location: 22,26
|
||||
Owner: Nod
|
||||
Facing: 256
|
||||
GuardTank1: ltnk
|
||||
Location: 18,27
|
||||
Owner: Nod
|
||||
GuardTank2: ltnk
|
||||
Location: 18,28
|
||||
Owner: Nod
|
||||
GdiTankEntry: waypoint
|
||||
Location: 8,59
|
||||
Owner: Neutral
|
||||
GdiApcEntry: waypoint
|
||||
Location: 11,59
|
||||
Owner: Neutral
|
||||
GdiInfantryEntry: waypoint
|
||||
Location: 8,53
|
||||
Owner: Neutral
|
||||
GdiTankRallyPoint: waypoint
|
||||
Location: 14,54
|
||||
Owner: Neutral
|
||||
GdiApcRallyPoint: waypoint
|
||||
Location: 15,56
|
||||
Owner: Neutral
|
||||
GdiInfantryRallyPoint: waypoint
|
||||
Location: 12,53
|
||||
Owner: Neutral
|
||||
MoneyCrate: MoneyCrate
|
||||
Location: 44,40
|
||||
Owner: Neutral
|
||||
|
||||
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
|
||||
|
||||
FluentMessages: cnc|fluent/lua.ftl, cnc|fluent/campaign.ftl, map.ftl
|
||||
169
mods/cnc/maps/gdi05a/rules.yaml
Normal file
169
mods/cnc/maps/gdi05a/rules.yaml
Normal file
@@ -0,0 +1,169 @@
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: campaign.lua, utils.lua, gdi05a.lua
|
||||
MusicPlaylist:
|
||||
StartingMusic: rain
|
||||
MissionData:
|
||||
Briefing: briefing
|
||||
BackgroundVideo: podium.vqa
|
||||
BriefingVideo: gdi5.vqa
|
||||
StartVideo: seige.vqa
|
||||
WinVideo: nodlose.vqa
|
||||
LossVideo: gdilose.vqa
|
||||
MapOptions:
|
||||
ShortGameCheckboxLocked: True
|
||||
ShortGameCheckboxEnabled: False
|
||||
SmudgeLayer@SCORCH:
|
||||
InitialSmudges:
|
||||
41,55: sc4,0
|
||||
48,51: sc5,0
|
||||
53,50: sc2,0
|
||||
51,50: sc3,0
|
||||
45,50: sc4,0
|
||||
49,48: sc6,0
|
||||
SmudgeLayer@CRATER:
|
||||
InitialSmudges:
|
||||
41,54: cr1,0
|
||||
13,52: cr1,0
|
||||
11,51: cr1,0
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: dropdown-difficulty.label
|
||||
Description: dropdown-difficulty.description
|
||||
Values:
|
||||
easy: options-difficulty.easy
|
||||
normal: options-difficulty.normal
|
||||
hard: options-difficulty.hard
|
||||
Default: normal
|
||||
|
||||
Player:
|
||||
EnemyWatcher:
|
||||
PlayerResources:
|
||||
DefaultCash: 2000
|
||||
|
||||
^Palettes:
|
||||
IndexedPlayerPalette:
|
||||
PlayerIndex:
|
||||
AbandonedBase: 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191
|
||||
IndexedPlayerPalette@units:
|
||||
PlayerIndex:
|
||||
AbandonedBase: 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191
|
||||
|
||||
^Building:
|
||||
AnnounceOnSeen:
|
||||
|
||||
E2:
|
||||
Buildable:
|
||||
Prerequisites: ~pyle
|
||||
|
||||
E3:
|
||||
Buildable:
|
||||
Queue: Infantry.Nod
|
||||
|
||||
E4:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
E5:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
RMBO:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
HARV:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MCV:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MTNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
HTNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MSAM:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
ARTY:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MLRS:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
FTNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
STNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
WEAP:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
NUK2:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
FIX:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
HPAD:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
EYE:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
GUN:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
GTWR:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
ATWR:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
SBAG:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
CYCL:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
BRIK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
TMPL:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
OBLI:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MoneyCrate:
|
||||
GiveCashCrateAction:
|
||||
Amount: 500
|
||||
|
||||
airstrike.proxy:
|
||||
AirstrikePower:
|
||||
SquadSize: 1
|
||||
Reference in New Issue
Block a user