Initial commit: OpenRA game engine
Some checks failed
Continuous Integration / Linux (.NET 8.0) (push) Has been cancelled
Continuous Integration / Windows (.NET 8.0) (push) Has been cancelled

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:
let5sne.win10
2026-01-10 21:46:54 +08:00
commit 9cf6ebb986
4065 changed files with 635973 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
--[[
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.
]]
MCVReinforcements = { "mcv" }
InfantryReinforcements = { "e1", "e1", "e1" }
VehicleReinforcements = { "jeep" }
NodPatrol = { "e1", "e1" }
GDIBaseBuildings = { "pyle", "fact", "nuke" }
SendNodPatrol = function()
Reinforcements.Reinforce(Nod, NodPatrol, { nod0.Location, nod1.Location }, 15, function(soldier)
soldier.AttackMove(nod2.Location)
soldier.AttackMove(nod3.Location)
IdleHunt(soldier)
end)
end
Reinforce = function(units)
Media.PlaySpeechNotification(GDI, "Reinforce")
ReinforceWithLandingCraft(GDI, units, lstStart.Location, lstEnd.Location, reinforcementsTarget.Location)
end
WorldLoaded = function()
GDI = Player.GetPlayer("GDI")
Nod = Player.GetPlayer("Nod")
InitObjectives(GDI)
SecureAreaObjective = AddPrimaryObjective(GDI, "eliminate-nod")
BeachheadObjective = AddSecondaryObjective(GDI, "establish-beachhead")
ReinforceWithLandingCraft(GDI, MCVReinforcements, lstStart.Location + CVec.New(2, 0), lstEnd.Location + CVec.New(2, 0), mcvTarget.Location)
Reinforce(InfantryReinforcements)
SendNodPatrol()
Trigger.AfterDelay(DateTime.Seconds(10), function() Reinforce(InfantryReinforcements) end)
Trigger.AfterDelay(DateTime.Seconds(60), function() Reinforce(VehicleReinforcements) end)
end
Tick = function()
if Nod.HasNoRequiredUnits() then
GDI.MarkCompletedObjective(SecureAreaObjective)
end
if DateTime.GameTime > DateTime.Seconds(5) and GDI.HasNoRequiredUnits() then
GDI.MarkFailedObjective(BeachheadObjective)
GDI.MarkFailedObjective(SecureAreaObjective)
end
if DateTime.GameTime % DateTime.Seconds(1) == 0 and not GDI.IsObjectiveCompleted(BeachheadObjective) and CheckForBase(GDI, GDIBaseBuildings) then
GDI.MarkCompletedObjective(BeachheadObjective)
end
end

BIN
mods/cnc/maps/gdi01/map.bin Normal file

Binary file not shown.

View File

@@ -0,0 +1,9 @@
## rules.yaml
briefing =
Use the units provided to protect the Mobile Construction Vehicle (MCV).
Deploy the MCV by left-clicking to select it, then right-clicking on it to deploy.
Start your base construction with a Power Plant.
Once you have built up a sizeable force, search out and destroy all enemy Nod units in the surrounding area.

BIN
mods/cnc/maps/gdi01/map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,240 @@
MapFormat: 12
RequiresMod: cnc
Title: 01: Storm the Beachhead
Author: Westwood Studios
Tileset: TEMPERAT
MapSize: 64,64
Bounds: 35,39,27,23
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@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: gdi
Actors:
Actor0: sbag
Location: 48,55
Owner: Neutral
Actor1: sbag
Location: 47,55
Owner: Neutral
Actor2: sbag
Location: 49,54
Owner: Neutral
Actor3: sbag
Location: 48,54
Owner: Neutral
Actor42: tc01
Location: 59,39
Owner: Neutral
Actor45: tc02
Location: 33,31
Owner: Neutral
Actor47: tc02
Location: 55,44
Owner: Neutral
Actor59: tc01
Location: 58,31
Owner: Neutral
Actor60: tc01
Location: 60,37
Owner: Neutral
Actor61: tc02
Location: 48,39
Owner: Neutral
Actor62: t01
Location: 48,37
Owner: Neutral
Actor63: t06
Location: 41,52
Owner: Neutral
Actor64: t06
Location: 40,54
Owner: Neutral
Actor65: tc01
Location: 46,50
Owner: Neutral
Actor66: tc01
Location: 42,41
Owner: Neutral
Actor67: tc05
Location: 45,40
Owner: Neutral
Actor68: tc04
Location: 42,43
Owner: Neutral
Actor69: tc02
Location: 44,47
Owner: Neutral
Actor70: t02
Location: 45,44
Owner: Neutral
Actor71: t01
Location: 44,46
Owner: Neutral
Actor72: t07
Location: 44,44
Owner: Neutral
Actor73: t01
Location: 47,46
Owner: Neutral
Actor74: t16
Location: 45,50
Owner: Neutral
Actor75: tc02
Location: 48,47
Owner: Neutral
Actor76: t01
Location: 49,48
Owner: Neutral
Actor77: t01
Location: 56,45
Owner: Neutral
Actor78: tc05
Location: 56,41
Owner: Neutral
Actor79: tc04
Location: 58,45
Owner: Neutral
Actor80: t16
Location: 57,45
Owner: Neutral
Actor81: t01
Location: 39,51
Owner: Neutral
Actor82: t02
Location: 39,48
Owner: Neutral
Actor83: gun
Location: 46,55
Owner: Nod
Health: 50
Facing: 640
Actor84: gun
Location: 41,55
Owner: Nod
Health: 50
Facing: 640
Actor85: gun
Location: 49,55
Owner: Nod
Health: 19
Facing: 640
Actor92: e1
Location: 57,45
Owner: Nod
Facing: 640
SubCell: 2
Actor93: e1
Location: 56,41
Owner: Nod
Facing: 768
SubCell: 2
Actor94: e1
Location: 48,41
Owner: Nod
Facing: 384
SubCell: 3
Actor95: e1
Location: 59,45
Owner: Nod
Facing: 640
SubCell: 1
Actor96: e1
Location: 46,50
Owner: Nod
Facing: 384
SubCell: 3
Actor97: e1
Location: 48,47
Owner: Nod
Facing: 384
SubCell: 1
Actor98: e1
Location: 38,43
Owner: Nod
Facing: 512
SubCell: 4
Actor99: e1
Location: 38,43
Owner: Nod
Facing: 512
SubCell: 1
Actor100: e1
Location: 48,41
Owner: Nod
Facing: 384
SubCell: 2
Actor101: e1
Location: 41,39
Owner: Nod
Facing: 384
SubCell: 4
Gunboat: boat
Location: 51,59
Owner: GDI
Facing: 256
nod0: waypoint
Location: 36,39
Owner: Neutral
nod1: waypoint
Location: 37,46
Owner: Neutral
nod2: waypoint
Location: 38,55
Owner: Neutral
nod3: waypoint
Location: 52,52
Owner: Neutral
lstStart: waypoint
Location: 54,61
Owner: Neutral
lstEnd: waypoint
Location: 54,57
Owner: Neutral
mcvTarget: waypoint
Location: 56,53
Owner: Neutral
reinforcementsTarget: waypoint
Location: 54,53
Owner: Neutral
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
Weapons: weapons.yaml
FluentMessages: cnc|fluent/lua.ftl, cnc|fluent/campaign.ftl, map.ftl

View File

@@ -0,0 +1,111 @@
World:
LuaScript:
Scripts: campaign.lua, utils.lua, gdi01.lua
MusicPlaylist:
StartingMusic: aoi
MissionData:
Briefing: briefing
BackgroundVideo: intro2.vqa
BriefingVideo: gdi1.vqa
StartVideo: landing.vqa
WinVideo: consyard.vqa
LossVideo: gameover.vqa
NUKE:
-Sellable:
Demolishable:
-Condition:
Buildable:
BuildLimit: 1
PYLE:
-Sellable:
Demolishable:
-Condition:
Buildable:
BuildLimit: 1
FACT:
-Sellable:
PROC:
Buildable:
Prerequisites: ~disabled
SILO:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
HQ:
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:
-Crushable:
Buildable:
Prerequisites: ~disabled
CYCL:
-Crushable:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
E2:
Buildable:
Prerequisites: ~disabled
E3:
Buildable:
Prerequisites: ~disabled
E6:
Buildable:
Prerequisites: ~disabled
RMBO:
Buildable:
Prerequisites: ~disabled
BOAT:
Health:
HP: 150000
AutoTarget:
InitialStance: AttackAnything
RejectsOrders:
Except: Attack

View File

@@ -0,0 +1,13 @@
BoatMissile:
Warhead@Bonus: SpreadDamage
Spread: 128
Damage: 2000
Versus:
None: 50
Wood: 100
Light: 100
Heavy: 100
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
TurretGun:
ReloadDelay: 40