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:
BIN
mods/cnc/maps/nod01/map.bin
Normal file
BIN
mods/cnc/maps/nod01/map.bin
Normal file
Binary file not shown.
9
mods/cnc/maps/nod01/map.ftl
Normal file
9
mods/cnc/maps/nod01/map.ftl
Normal file
@@ -0,0 +1,9 @@
|
||||
## rules.yaml
|
||||
briefing =
|
||||
In order for the Brotherhood to gain a foothold, we must begin by eliminating certain elements.
|
||||
|
||||
Nikoomba, the nearby village's leader, is one such element.
|
||||
|
||||
His views and ours do not coincide.
|
||||
|
||||
He and his whole group must be eliminated.
|
||||
BIN
mods/cnc/maps/nod01/map.png
Normal file
BIN
mods/cnc/maps/nod01/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
236
mods/cnc/maps/nod01/map.yaml
Normal file
236
mods/cnc/maps/nod01/map.yaml
Normal file
@@ -0,0 +1,236 @@
|
||||
MapFormat: 12
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
Title: 01: Nikoomba's Demise
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: DESERT
|
||||
|
||||
MapSize: 64,64
|
||||
|
||||
Bounds: 21,14,37,24
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: gdi
|
||||
PlayerReference@Villagers:
|
||||
Name: Villagers
|
||||
NonCombatant: True
|
||||
Faction: gdi
|
||||
Bot: campaign
|
||||
PlayerReference@GDI:
|
||||
Name: GDI
|
||||
Faction: gdi
|
||||
Color: F5D378
|
||||
Allies: Villagers
|
||||
Enemies: Nod
|
||||
Bot: campaign
|
||||
PlayerReference@Nod:
|
||||
Name: Nod
|
||||
Playable: True
|
||||
AllowBots: False
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: nod
|
||||
LockColor: True
|
||||
Color: FE1100
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Enemies: GDI, Villagers
|
||||
|
||||
Actors:
|
||||
Actor46: e1
|
||||
Location: 28,28
|
||||
Owner: GDI
|
||||
Actor47: e1
|
||||
Location: 29,28
|
||||
Owner: GDI
|
||||
Actor48: e1
|
||||
Location: 29,30
|
||||
Owner: GDI
|
||||
Actor49: e1
|
||||
Location: 33,35
|
||||
Owner: GDI
|
||||
Actor50: e1
|
||||
Location: 34,36
|
||||
Owner: GDI
|
||||
Actor51: e1
|
||||
Location: 41,19
|
||||
Owner: GDI
|
||||
Actor52: e1
|
||||
Location: 40,19
|
||||
Owner: GDI
|
||||
Actor53: e1
|
||||
Location: 40,18
|
||||
Owner: GDI
|
||||
Actor54: e1
|
||||
Location: 40,31
|
||||
Owner: GDI
|
||||
Actor55: e1
|
||||
Location: 43,34
|
||||
Owner: GDI
|
||||
Actor56: e1
|
||||
Location: 46,22
|
||||
Owner: GDI
|
||||
Actor57: e1
|
||||
Location: 51,25
|
||||
Owner: GDI
|
||||
Actor58: e1
|
||||
Location: 51,30
|
||||
Owner: GDI
|
||||
Actor59: e1
|
||||
Location: 55,33
|
||||
Owner: GDI
|
||||
Actor60: e1
|
||||
Location: 56,32
|
||||
Owner: GDI
|
||||
Actor0: rock2
|
||||
Location: 54,14
|
||||
Owner: Neutral
|
||||
Actor1: t08
|
||||
Location: 47,15
|
||||
Owner: Neutral
|
||||
Actor2: t18
|
||||
Location: 32,16
|
||||
Owner: Neutral
|
||||
Actor3: t08
|
||||
Location: 47,16
|
||||
Owner: Neutral
|
||||
Actor4: t08
|
||||
Location: 21,18
|
||||
Owner: Neutral
|
||||
Actor5: t18
|
||||
Location: 32,21
|
||||
Owner: Neutral
|
||||
Actor6: t08
|
||||
Location: 27,22
|
||||
Owner: Neutral
|
||||
Actor7: t08
|
||||
Location: 23,24
|
||||
Owner: Neutral
|
||||
Actor8: rock1
|
||||
Location: 21,25
|
||||
Owner: Neutral
|
||||
Actor9: t08
|
||||
Location: 56,25
|
||||
Owner: Neutral
|
||||
Actor10: t08
|
||||
Location: 23,26
|
||||
Owner: Neutral
|
||||
Actor11: t08
|
||||
Location: 24,26
|
||||
Owner: Neutral
|
||||
Actor12: t08
|
||||
Location: 28,30
|
||||
Owner: Neutral
|
||||
Actor13: t08
|
||||
Location: 50,30
|
||||
Owner: Neutral
|
||||
Actor14: t08
|
||||
Location: 39,31
|
||||
Owner: Neutral
|
||||
Actor15: rock1
|
||||
Location: 31,34
|
||||
Owner: Neutral
|
||||
Actor16: t08
|
||||
Location: 55,37
|
||||
Owner: Neutral
|
||||
Actor27: jeep
|
||||
Location: 31,28
|
||||
Owner: GDI
|
||||
Actor28: jeep
|
||||
Location: 28,29
|
||||
Owner: GDI
|
||||
Vil01: v21
|
||||
Location: 29,23
|
||||
Owner: Villagers
|
||||
Vil02: v24
|
||||
Location: 22,24
|
||||
Owner: Villagers
|
||||
Vil03: v24
|
||||
Location: 21,16
|
||||
Owner: Villagers
|
||||
Vil04: v32
|
||||
Location: 21,20
|
||||
Owner: Villagers
|
||||
Vil05: v27
|
||||
Location: 22,21
|
||||
Owner: Villagers
|
||||
Vil06: v20
|
||||
Location: 21,21
|
||||
Owner: Villagers
|
||||
Vil07: v26
|
||||
Location: 22,23
|
||||
Owner: Villagers
|
||||
Vil08: v20
|
||||
Location: 27,23
|
||||
Owner: Villagers
|
||||
Vil09: v22
|
||||
Location: 26,23
|
||||
Owner: Villagers
|
||||
Vil10: v23
|
||||
Location: 26,22
|
||||
Owner: Villagers
|
||||
Vil11: v26
|
||||
Location: 26,21
|
||||
Owner: Villagers
|
||||
Vil12: v25
|
||||
Location: 29,21
|
||||
Owner: Villagers
|
||||
Vil13: v30
|
||||
Location: 32,18
|
||||
Owner: Villagers
|
||||
Civ01: c9
|
||||
Location: 28,20
|
||||
Owner: Villagers
|
||||
Civ02: c6
|
||||
Location: 28,19
|
||||
Owner: Villagers
|
||||
Civ03: c8
|
||||
Location: 27,19
|
||||
Owner: Villagers
|
||||
Civ04: c7
|
||||
Location: 29,20
|
||||
Owner: Villagers
|
||||
Civ05: c4
|
||||
Location: 31,19
|
||||
Owner: Villagers
|
||||
Civ06: c2
|
||||
Location: 30,19
|
||||
Owner: Villagers
|
||||
Civ07: c5
|
||||
Location: 29,19
|
||||
Owner: Villagers
|
||||
Nikoomba: c10
|
||||
Location: 29,16
|
||||
Owner: Villagers
|
||||
StartSpawnPointLeft: waypoint
|
||||
Location: 50,14
|
||||
Owner: Neutral
|
||||
StartSpawnPointRight: waypoint
|
||||
Location: 52,14
|
||||
Owner: Neutral
|
||||
StartRallyPoint: waypoint
|
||||
Location: 53,17
|
||||
Owner: Neutral
|
||||
VillageSpawnPoint: waypoint
|
||||
Location: 24,14
|
||||
Owner: Neutral
|
||||
VillageRallyPoint: waypoint
|
||||
Location: 24,17
|
||||
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
|
||||
77
mods/cnc/maps/nod01/nod01.lua
Normal file
77
mods/cnc/maps/nod01/nod01.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
--[[
|
||||
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.
|
||||
]]
|
||||
|
||||
InitialForcesA = { "bggy", "e1", "e1", "e1", "e1" }
|
||||
InitialForcesB = { "e1", "e1", "bggy", "e1", "e1" }
|
||||
|
||||
RifleInfantryReinforcements = { "e1", "e1" }
|
||||
RocketInfantryReinforcements = { "e3", "e3", "e3", "e3", "e3" }
|
||||
|
||||
SendInitialForces = function()
|
||||
Media.PlaySpeechNotification(Nod, "Reinforce")
|
||||
Reinforcements.Reinforce(Nod, InitialForcesA, { StartSpawnPointLeft.Location, StartRallyPoint.Location }, 5)
|
||||
Reinforcements.Reinforce(Nod, InitialForcesB, { StartSpawnPointRight.Location, StartRallyPoint.Location }, 10)
|
||||
end
|
||||
|
||||
SendFirstInfantryReinforcements = function()
|
||||
Media.PlaySpeechNotification(Nod, "Reinforce")
|
||||
Reinforcements.Reinforce(Nod, RifleInfantryReinforcements, { StartSpawnPointRight.Location, StartRallyPoint.Location }, 15)
|
||||
end
|
||||
|
||||
SendSecondInfantryReinforcements = function()
|
||||
Media.PlaySpeechNotification(Nod, "Reinforce")
|
||||
Reinforcements.Reinforce(Nod, RifleInfantryReinforcements, { StartSpawnPointLeft.Location, StartRallyPoint.Location }, 15)
|
||||
end
|
||||
|
||||
SendLastInfantryReinforcements = function()
|
||||
Media.PlaySpeechNotification(Nod, "Reinforce")
|
||||
Reinforcements.Reinforce(Nod, RocketInfantryReinforcements, { VillageSpawnPoint.Location, VillageRallyPoint.Location }, 8)
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
Nod = Player.GetPlayer("Nod")
|
||||
GDI = Player.GetPlayer("GDI")
|
||||
Villagers = Player.GetPlayer("Villagers")
|
||||
|
||||
InitObjectives(Nod)
|
||||
|
||||
KillNikoomba = AddPrimaryObjective(Nod, "kill-nikoomba")
|
||||
DestroyVillage = AddPrimaryObjective(Nod, "destroy-village")
|
||||
DestroyGDI = AddSecondaryObjective(Nod, "destroy-gdi-troops-area")
|
||||
GDIObjective = AddPrimaryObjective(GDI, "")
|
||||
|
||||
Trigger.OnKilled(Nikoomba, function()
|
||||
Nod.MarkCompletedObjective(KillNikoomba)
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
SendLastInfantryReinforcements()
|
||||
end)
|
||||
end)
|
||||
|
||||
Camera.Position = StartRallyPoint.CenterPosition
|
||||
|
||||
SendInitialForces()
|
||||
Trigger.AfterDelay(DateTime.Seconds(30), SendFirstInfantryReinforcements)
|
||||
Trigger.AfterDelay(DateTime.Seconds(60), SendSecondInfantryReinforcements)
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if DateTime.GameTime > 2 then
|
||||
if Nod.HasNoRequiredUnits() then
|
||||
GDI.MarkCompletedObjective(GDIObjective)
|
||||
end
|
||||
|
||||
if Villagers.HasNoRequiredUnits() then
|
||||
Nod.MarkCompletedObjective(DestroyVillage)
|
||||
end
|
||||
|
||||
if GDI.HasNoRequiredUnits() then
|
||||
Nod.MarkCompletedObjective(DestroyGDI)
|
||||
end
|
||||
end
|
||||
end
|
||||
37
mods/cnc/maps/nod01/rules.yaml
Normal file
37
mods/cnc/maps/nod01/rules.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: campaign.lua, utils.lua, nod01.lua
|
||||
MusicPlaylist:
|
||||
StartingMusic: nomercy
|
||||
VictoryMusic: nod_win1
|
||||
MissionData:
|
||||
Briefing: briefing
|
||||
BackgroundVideo: intro2.vqa
|
||||
BriefingVideo: nod1.vqa
|
||||
LossVideo: nodlose.vqa
|
||||
|
||||
^Palettes:
|
||||
IndexedPlayerPalette:
|
||||
PlayerIndex:
|
||||
Villagers: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
|
||||
IndexedPlayerPalette@units:
|
||||
PlayerIndex:
|
||||
Villagers: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
|
||||
|
||||
Player:
|
||||
PlayerResources:
|
||||
DefaultCash: 0
|
||||
|
||||
C10:
|
||||
Tooltip:
|
||||
Name: actor-c10-name
|
||||
|
||||
^Bridge:
|
||||
DamageMultiplier@INVULNERABLE:
|
||||
Modifier: 0
|
||||
|
||||
^CivBuilding:
|
||||
MustBeDestroyed:
|
||||
|
||||
^CivInfantry:
|
||||
MustBeDestroyed:
|
||||
Reference in New Issue
Block a user