6
AUTHORS
6
AUTHORS
@@ -17,23 +17,29 @@ Also thanks to:
|
||||
* Christer Ulfsparre (Holloweye)
|
||||
* Cody Brittain (Generalcamo)
|
||||
* Daniel Derejvanik (Harisson)
|
||||
* Danny (Dan9550)
|
||||
* Erasmus Schroder (rasco)
|
||||
* Igor Popov (ihptru)
|
||||
* Iran
|
||||
* James Dunne (jsd)
|
||||
* Jeff Harris (jeff_1amstudios)
|
||||
* Jes (-Jes-)
|
||||
* Joakim Lindberg (booom3)
|
||||
* JOo
|
||||
* Kenny Hoxworth (hoxworth)
|
||||
* Krishnakanth Mallik
|
||||
* Kyrre Soerensen (zypres)
|
||||
* Lawrence Wang
|
||||
* Mark Olson (markolson)
|
||||
* Matthew Gatland (mgatland)
|
||||
* Matthias Mailänder (Mailaender)
|
||||
* Maarten Meuris (Nyerguds)
|
||||
* Max Ugrumov (katzsmile)
|
||||
* Max621
|
||||
* Nukem
|
||||
* Paolo Chiodi (paolochiodi)
|
||||
* Paul Dovydaitis (pdovy)
|
||||
* Psydev
|
||||
* Raymond Martineau (mart0258)
|
||||
* Riderr3
|
||||
* Tim Mylemans (gecko)
|
||||
|
||||
@@ -129,8 +129,9 @@ namespace OpenRA.Graphics
|
||||
}
|
||||
|
||||
var clipRect = Game.viewport.WorldBounds(wr.world);
|
||||
DrawShroud(wr, clipRect, fogSprites, fogPalette);
|
||||
DrawShroud(wr, clipRect, sprites, shroudPalette);
|
||||
if (wr.world.WorldActor.HasTrait<Fog>())
|
||||
DrawShroud(wr, clipRect, fogSprites, fogPalette);
|
||||
}
|
||||
|
||||
void DrawShroud(WorldRenderer wr, Rectangle clip, Sprite[,] s, PaletteReference pal)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
@@ -178,6 +178,7 @@
|
||||
<Compile Include="Traits\ValidateOrder.cs" />
|
||||
<Compile Include="Traits\Waypoint.cs" />
|
||||
<Compile Include="Traits\World\Country.cs" />
|
||||
<Compile Include="Traits\World\Fog.cs" />
|
||||
<Compile Include="Traits\World\PlayerColorPalette.cs" />
|
||||
<Compile Include="Traits\World\ResourceLayer.cs" />
|
||||
<Compile Include="Traits\World\ResourceType.cs" />
|
||||
@@ -194,7 +195,7 @@
|
||||
<Compile Include="Widgets\DropDownButtonWidget.cs" />
|
||||
<Compile Include="Widgets\GridLayout.cs" />
|
||||
<Compile Include="Widgets\ImageWidget.cs" />
|
||||
<Compile Include="Widgets\LabelWidget.cs" />
|
||||
<Compile Include="Widgets\LabelWidget.cs" />
|
||||
<Compile Include="Widgets\LineGraphWidget.cs" />
|
||||
<Compile Include="Widgets\ListLayout.cs" />
|
||||
<Compile Include="Widgets\MapPreviewWidget.cs" />
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Traits
|
||||
public interface INotifyOwnerChanged { void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner); }
|
||||
public interface INotifyCapture { void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner); }
|
||||
public interface INotifyOtherCaptured { void OnActorCaptured(Actor self, Actor captured, Actor captor, Player oldOwner, Player newOwner); }
|
||||
public interface IAcceptSpy { void OnInfiltrate(Actor self, Actor spy); }
|
||||
public interface IAcceptInfiltrator { void OnInfiltrate(Actor self, Actor infiltrator); }
|
||||
public interface IStoreOre { int Capacity { get; } }
|
||||
public interface IToolTip
|
||||
{
|
||||
|
||||
22
OpenRA.Game/Traits/World/Fog.cs
Normal file
22
OpenRA.Game/Traits/World/Fog.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2013 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. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
public class FogInfo : TraitInfo<Fog>
|
||||
{
|
||||
/*
|
||||
* This tag trait will enable fog of war in ShroudRenderer.
|
||||
* Don't forget about HiddenUnderFog and FrozenUnderFog.
|
||||
*/
|
||||
}
|
||||
|
||||
public class Fog { }
|
||||
}
|
||||
@@ -17,10 +17,11 @@ using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Mods.RA.Move;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Widgets;
|
||||
using OpenRA.Scripting;
|
||||
|
||||
namespace OpenRA.Mods.Cnc
|
||||
namespace OpenRA.Mods.Cnc.Missions
|
||||
{
|
||||
class Gdi01ScriptInfo : TraitInfo<Gdi01Script>, Requires<LoadWidgetAtGameStartInfo> { }
|
||||
class Gdi01ScriptInfo : TraitInfo<Gdi01Script> { }
|
||||
|
||||
class Gdi01Script: IWorldLoaded, ITick
|
||||
{
|
||||
@@ -34,44 +35,37 @@ namespace OpenRA.Mods.Cnc
|
||||
var b = w.Map.Bounds;
|
||||
Game.MoveViewport(new CPos(b.Left + b.Width/2, b.Top + b.Height/2).ToFloat2());
|
||||
|
||||
Scripting.Media.PlayFMVFullscreen(w, "gdi1.vqa",
|
||||
() => Scripting.Media.PlayFMVFullscreen(w, "landing.vqa", () =>
|
||||
{
|
||||
Sound.PlayMusic(Rules.Music["aoi"]);
|
||||
started = true;
|
||||
}));
|
||||
Action afterFMV = () =>
|
||||
{
|
||||
Sound.PlayMusic(Rules.Music["aoi"]);
|
||||
started = true;
|
||||
};
|
||||
Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "gdi1.vqa", () =>
|
||||
Media.PlayFMVFullscreen(w, "landing.vqa", afterFMV)));
|
||||
}
|
||||
|
||||
public void OnVictory(World w)
|
||||
{
|
||||
started = false;
|
||||
Sound.PlayToPlayer(Players["GoodGuy"], "accom1.aud");
|
||||
Players["GoodGuy"].WinState = WinState.Won;
|
||||
|
||||
Action afterFMV = () =>
|
||||
{
|
||||
Players["GoodGuy"].WinState = WinState.Won;
|
||||
started = false;
|
||||
Sound.StopMusic();
|
||||
Game.Disconnect();
|
||||
Ui.ResetAll();
|
||||
Game.LoadShellMap();
|
||||
Sound.PlayToPlayer(Players["GoodGuy"], "accom1.aud");
|
||||
};
|
||||
Game.RunAfterDelay(5000, () => Scripting.Media.PlayFMVFullscreen(w, "consyard.vqa", afterFMV));
|
||||
Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "consyard.vqa", afterFMV));
|
||||
}
|
||||
|
||||
public void OnLose(World w)
|
||||
{
|
||||
started = false;
|
||||
Sound.PlayToPlayer(Players["GoodGuy"], "fail1.aud");
|
||||
Players["GoodGuy"].WinState = WinState.Lost;
|
||||
|
||||
Action afterFMV = () =>
|
||||
{
|
||||
Players["GoodGuy"].WinState = WinState.Lost;
|
||||
started = false;
|
||||
Sound.StopMusic();
|
||||
Game.Disconnect();
|
||||
Ui.ResetAll();
|
||||
Game.LoadShellMap();
|
||||
Sound.PlayToPlayer(Players["GoodGuy"], "fail1.aud");
|
||||
};
|
||||
Game.RunAfterDelay(5000, () => Scripting.Media.PlayFMVFullscreen(w, "gameover.vqa", afterFMV));
|
||||
Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "gameover.vqa", afterFMV));
|
||||
}
|
||||
|
||||
int ticks = 0;
|
||||
@@ -93,14 +87,14 @@ namespace OpenRA.Mods.Cnc
|
||||
{
|
||||
var a = self.World.CreateActor(i.ToLowerInvariant(), new TypeDictionary
|
||||
{
|
||||
new OwnerInit( Players["BadGuy"] ),
|
||||
new FacingInit( 0 ),
|
||||
new LocationInit ( Actors["nod0"].Location ),
|
||||
new OwnerInit(Players["BadGuy"]),
|
||||
new FacingInit(0),
|
||||
new LocationInit(Actors["nod0"].Location),
|
||||
});
|
||||
var mobile = a.Trait<Mobile>();
|
||||
a.QueueActivity( mobile.MoveTo( Actors["nod1"].Location, 2 ) );
|
||||
a.QueueActivity( mobile.MoveTo( Actors["nod2"].Location, 2 ) );
|
||||
a.QueueActivity( mobile.MoveTo( Actors["nod3"].Location, 2 ) );
|
||||
a.QueueActivity(mobile.MoveTo(Actors["nod1"].Location, 2 ));
|
||||
a.QueueActivity(mobile.MoveTo(Actors["nod2"].Location, 2 ));
|
||||
a.QueueActivity(mobile.MoveTo(Actors["nod3"].Location, 2 ));
|
||||
// Todo: Queue hunt order
|
||||
}
|
||||
});
|
||||
@@ -172,8 +166,9 @@ namespace OpenRA.Mods.Cnc
|
||||
{
|
||||
var self = Actors[ "Gunboat" ];
|
||||
var mobile = self.Trait<Mobile>();
|
||||
self.QueueActivity(mobile.ScriptedMove( Actors["gunboatLeft"].Location ));
|
||||
self.QueueActivity(mobile.ScriptedMove( Actors["gunboatRight"].Location ));
|
||||
self.Trait<AutoTarget>().stance = UnitStance.AttackAnything; //TODO: this is ignored
|
||||
self.QueueActivity(mobile.ScriptedMove(Actors["gunboatLeft"].Location));
|
||||
self.QueueActivity(mobile.ScriptedMove(Actors["gunboatRight"].Location));
|
||||
self.QueueActivity(new CallFunc(() => SetGunboatPath()));
|
||||
}
|
||||
|
||||
|
||||
216
OpenRA.Mods.Cnc/Missions/Nod01Script.cs
Normal file
216
OpenRA.Mods.Cnc/Missions/Nod01Script.cs
Normal file
@@ -0,0 +1,216 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2012 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. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.Mods.Cnc;
|
||||
using OpenRA.Mods.RA;
|
||||
using OpenRA.Mods.RA.Move;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Scripting;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.Cnc.Missions
|
||||
{
|
||||
class Nod01ScriptInfo : TraitInfo<Nod01Script>, Requires<SpawnMapActorsInfo> { }
|
||||
|
||||
class Nod01Script : IWorldLoaded, ITick
|
||||
{
|
||||
static readonly string[] Objectives =
|
||||
{
|
||||
"Assasinate Nikoomba.",
|
||||
"Level the village."
|
||||
};
|
||||
|
||||
int currentObjective;
|
||||
|
||||
Player gdi;
|
||||
Player nod;
|
||||
//actors and the likes go here
|
||||
Actor nikoomba;
|
||||
Actor vil01;
|
||||
Actor vil02;
|
||||
Actor vil03;
|
||||
Actor vil04;
|
||||
Actor vil05;
|
||||
Actor vil06;
|
||||
Actor vil07;
|
||||
Actor vil08;
|
||||
Actor vil09;
|
||||
Actor vil10;
|
||||
Actor vil11;
|
||||
Actor vil12;
|
||||
Actor vil13;
|
||||
Actor civ01;
|
||||
Actor civ02;
|
||||
Actor civ03;
|
||||
Actor civ04;
|
||||
Actor civ05;
|
||||
Actor civ06;
|
||||
Actor civ07;
|
||||
//waypoints
|
||||
Actor nr1;
|
||||
Actor nr2;
|
||||
Actor gr1;
|
||||
|
||||
World world;
|
||||
|
||||
//in the allies01 script stuff was here not needed for me so far
|
||||
const string NRName = "E1";
|
||||
const string GRName = "E2";
|
||||
const string GRName2 = "JEEP";
|
||||
|
||||
void DisplayObjective()
|
||||
{
|
||||
Game.AddChatLine(Color.LimeGreen, "Objective", Objectives[currentObjective]);
|
||||
}
|
||||
|
||||
void MissionFailed(string text)
|
||||
{
|
||||
if (nod.WinState != WinState.Undefined)
|
||||
{
|
||||
return;
|
||||
}
|
||||
nod.WinState = WinState.Lost;
|
||||
foreach (var actor in world.Actors.Where(a => a.IsInWorld && a.Owner == nod && !a.IsDead()))
|
||||
{
|
||||
actor.Kill(actor);
|
||||
}
|
||||
Game.AddChatLine(Color.Red, "Mission failed", text);
|
||||
Sound.Play("fail1.aud");
|
||||
}
|
||||
|
||||
void MissionAccomplished(string text)
|
||||
{
|
||||
if (nod.WinState != WinState.Undefined)
|
||||
{
|
||||
return;
|
||||
}
|
||||
nod.WinState = WinState.Won;
|
||||
Game.AddChatLine(Color.Green, "Mission accomplished", text);
|
||||
Sound.Play("accom1.aud");
|
||||
}
|
||||
|
||||
public void Tick(Actor self)
|
||||
{
|
||||
if (nod.WinState != WinState.Undefined)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// display current objective every so often
|
||||
if (world.FrameNumber % 1500 == 1)
|
||||
{
|
||||
DisplayObjective();
|
||||
}
|
||||
//spawns nod reinf
|
||||
if (world.FrameNumber == 700)
|
||||
{
|
||||
NODReinforceNthA();
|
||||
Sound.Play("reinfor1.aud");
|
||||
}
|
||||
if (world.FrameNumber == 1400)
|
||||
{
|
||||
NODReinforceNthB();
|
||||
Sound.Play("reinfor1.aud");
|
||||
}
|
||||
// objectives
|
||||
if (currentObjective == 0)
|
||||
{
|
||||
if (nikoomba.Destroyed)
|
||||
{
|
||||
currentObjective++;
|
||||
DisplayObjective();
|
||||
GDIReinforceNth();
|
||||
}
|
||||
}
|
||||
else if (currentObjective == 1)
|
||||
{
|
||||
if (vil01.Destroyed && vil02.Destroyed && vil03.Destroyed && vil04.Destroyed && vil05.Destroyed && vil06.Destroyed &&
|
||||
vil07.Destroyed && vil08.Destroyed && vil09.Destroyed && vil10.Destroyed && vil11.Destroyed && vil12.Destroyed &&
|
||||
vil13.Destroyed && civ01.Destroyed && civ02.Destroyed && civ03.Destroyed && civ04.Destroyed && civ05.Destroyed &&
|
||||
civ06.Destroyed && civ07.Destroyed)
|
||||
{
|
||||
MissionAccomplished("Nikoomba was killed and the Village was Destroyed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerable<Actor> UnitsNearActor(Actor actor, int range)
|
||||
{
|
||||
return world.FindUnitsInCircle(actor.CenterLocation, Game.CellSize * range)
|
||||
.Where(a => a.IsInWorld && a != world.WorldActor && !a.Destroyed && a.HasTrait<IMove>() && !a.Owner.NonCombatant);
|
||||
}
|
||||
|
||||
void NODReinforceNthA()
|
||||
{
|
||||
nr1 = world.CreateActor(true, NRName, new TypeDictionary { new OwnerInit(nod), new LocationInit(nr1.Location) });
|
||||
nr1 = world.CreateActor(true, NRName, new TypeDictionary { new OwnerInit(nod), new LocationInit(nr1.Location) });
|
||||
//nr1.QueueActivity(new Move.Move(nr1.Location - new CVec(0, 2)));
|
||||
}
|
||||
|
||||
void NODReinforceNthB()
|
||||
{
|
||||
nr2 = world.CreateActor(true, NRName, new TypeDictionary { new OwnerInit(nod), new LocationInit(nr2.Location) });
|
||||
nr2 = world.CreateActor(true, NRName, new TypeDictionary { new OwnerInit(nod), new LocationInit(nr2.Location) });
|
||||
//nr1.QueueActivity(new Move.Move(nr1.Location - new CVec(0, 2)));
|
||||
}
|
||||
|
||||
void GDIReinforceNth()
|
||||
{
|
||||
gr1 = world.CreateActor(true, GRName, new TypeDictionary { new OwnerInit(gdi), new LocationInit(gr1.Location) });
|
||||
gr1 = world.CreateActor(true, GRName, new TypeDictionary { new OwnerInit(gdi), new LocationInit(gr1.Location) });
|
||||
gr1 = world.CreateActor(true, GRName2, new TypeDictionary { new OwnerInit(gdi), new LocationInit(gr1.Location) });
|
||||
//nr1.QueueActivity(new Move.Move(nr1.Location - new CVec(0, 2)));
|
||||
}
|
||||
|
||||
public void WorldLoaded(World w)
|
||||
{
|
||||
world = w;
|
||||
gdi = w.Players.Single(p => p.InternalName == "GDI");
|
||||
nod = w.Players.Single(p => p.InternalName == "NOD");
|
||||
var actors = w.WorldActor.Trait<SpawnMapActors>().Actors;
|
||||
nikoomba = actors["Nikoomba"];
|
||||
vil01 = actors["Vil01"];
|
||||
vil02 = actors["Vil02"];
|
||||
vil03 = actors["Vil03"];
|
||||
vil04 = actors["Vil04"];
|
||||
vil05 = actors["Vil05"];
|
||||
vil06 = actors["Vil06"];
|
||||
vil07 = actors["Vil07"];
|
||||
vil08 = actors["Vil08"];
|
||||
vil09 = actors["Vil09"];
|
||||
vil10 = actors["Vil10"];
|
||||
vil11 = actors["Vil11"];
|
||||
vil12 = actors["Vil12"];
|
||||
vil13 = actors["Vil13"];
|
||||
civ01 = actors["Civ01"];
|
||||
civ02 = actors["Civ02"];
|
||||
civ03 = actors["Civ03"];
|
||||
civ04 = actors["Civ04"];
|
||||
civ05 = actors["Civ05"];
|
||||
civ06 = actors["Civ06"];
|
||||
civ07 = actors["Civ07"];
|
||||
nr1 = actors["NODReinforceNthA"];
|
||||
nr2 = actors["NODReinforceNthB"];
|
||||
gr1 = actors["GDIReinforceNth"];
|
||||
Game.MoveViewport(nr1.Location.ToFloat2());
|
||||
Action afterFMV = () =>
|
||||
{
|
||||
Sound.PlayMusic(Rules.Music["aoi"]);
|
||||
};
|
||||
Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "nod1pre.vqa", () =>
|
||||
Media.PlayFMVFullscreen(w, "nod1.vqa", afterFMV)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,6 +81,7 @@
|
||||
<Compile Include="IonCannonPower.cs" />
|
||||
<Compile Include="Missions\CncShellmapScript.cs" />
|
||||
<Compile Include="Missions\Gdi01Script.cs" />
|
||||
<Compile Include="Missions\Nod01Script.cs" />
|
||||
<Compile Include="PoisonedByTiberium.cs" />
|
||||
<Compile Include="ProductionAirdrop.cs" />
|
||||
<Compile Include="ProductionQueueFromSelection.cs" />
|
||||
|
||||
@@ -22,9 +22,16 @@ namespace OpenRA.Mods.RA.Activities
|
||||
|
||||
public override Activity Tick(Actor self)
|
||||
{
|
||||
if (IsCanceled) return NextActivity;
|
||||
if (target == null || !target.IsInWorld || target.IsDead()) return NextActivity;
|
||||
if (target.Owner == self.Owner) return NextActivity;
|
||||
var capturesInfo = self.Info.Traits.Get<CapturesInfo>();
|
||||
var health = target.Trait<Health>();
|
||||
int damage = (int)(0.25 * health.MaxHP);
|
||||
|
||||
if (IsCanceled)
|
||||
return NextActivity;
|
||||
if (target == null || !target.IsInWorld || target.IsDead())
|
||||
return NextActivity;
|
||||
if (target.Owner == self.Owner)
|
||||
return NextActivity;
|
||||
|
||||
// Need to be next to building, TODO: stop capture when going away
|
||||
var mobile = self.Trait<Mobile>();
|
||||
@@ -32,10 +39,14 @@ namespace OpenRA.Mods.RA.Activities
|
||||
if ((nearest - mobile.toCell).LengthSquared > 2)
|
||||
return Util.SequenceActivities(new MoveAdjacentTo(Target.FromActor(target)), this);
|
||||
|
||||
if (!target.Trait<Capturable>().BeginCapture(target, self))
|
||||
return NextActivity;
|
||||
if (!capturesInfo.Sabotage || (capturesInfo.Sabotage && health.DamageState == DamageState.Heavy))
|
||||
{
|
||||
if (!target.Trait<Capturable>().BeginCapture(target, self))
|
||||
return NextActivity;
|
||||
}
|
||||
else
|
||||
target.InflictDamage(self, damage, null);
|
||||
|
||||
var capturesInfo = self.Info.Traits.Get<CapturesInfo>();
|
||||
if (capturesInfo != null && capturesInfo.WastedAfterwards)
|
||||
self.World.AddFrameEndTask(w => self.Destroy());
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
if( !target.OccupiesSpace.OccupiedCells().Any( x => x.First == self.Location ) )
|
||||
return NextActivity;
|
||||
|
||||
foreach (var t in target.TraitsImplementing<IAcceptSpy>())
|
||||
foreach (var t in target.TraitsImplementing<IAcceptInfiltrator>())
|
||||
t.OnInfiltrate(target, self);
|
||||
|
||||
if (self.HasTrait<DontDestroyWhenInfiltrating>())
|
||||
|
||||
@@ -16,8 +16,25 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
|
||||
public class CustomBuildTimeValueInfo : TraitInfo<CustomBuildTimeValue>
|
||||
{
|
||||
public readonly int Value = 0; //in milisecons
|
||||
public readonly int Value = 0;
|
||||
}
|
||||
|
||||
public class CustomBuildTimeValue { }
|
||||
|
||||
public static class CustomBuildTimeValueExts
|
||||
{
|
||||
public static int GetBuildTime(this ActorInfo a)
|
||||
{
|
||||
var csv = a.Traits.GetOrDefault<CustomBuildTimeValueInfo>();
|
||||
if (csv != null)
|
||||
return csv.Value;
|
||||
|
||||
var cost = a.Traits.Contains<ValuedInfo>() ? a.Traits.Get<ValuedInfo>().Cost : 0;
|
||||
var time = cost
|
||||
* (25 * 60) /* frames per min */
|
||||
/ 1000;
|
||||
return
|
||||
time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
public string[] CaptureTypes = {"building"};
|
||||
public bool WastedAfterwards = true;
|
||||
public bool Sabotage = false;
|
||||
public object Create(ActorInitializer init) { return new Captures(init.self, this); }
|
||||
}
|
||||
|
||||
|
||||
@@ -25,16 +25,16 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new InfiltrateForCash(this); }
|
||||
}
|
||||
|
||||
class InfiltrateForCash : IAcceptSpy
|
||||
class InfiltrateForCash : IAcceptInfiltrator
|
||||
{
|
||||
InfiltrateForCashInfo info;
|
||||
|
||||
public InfiltrateForCash(InfiltrateForCashInfo info) { this.info = info; }
|
||||
|
||||
public void OnInfiltrate(Actor self, Actor spy)
|
||||
public void OnInfiltrate(Actor self, Actor infiltrator)
|
||||
{
|
||||
var targetResources = self.Owner.PlayerActor.Trait<PlayerResources>();
|
||||
var spyResources = spy.Owner.PlayerActor.Trait<PlayerResources>();
|
||||
var spyResources = infiltrator.Owner.PlayerActor.Trait<PlayerResources>();
|
||||
|
||||
var toTake = (targetResources.Cash + targetResources.Ore) * info.Percentage / 100;
|
||||
var toGive = Math.Max(toTake, info.Minimum);
|
||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA
|
||||
Sound.PlayToPlayer(self.Owner, info.SoundToVictim);
|
||||
|
||||
self.World.AddFrameEndTask(w => w.Add(new CashTick(toGive, 30, 2, self.CenterLocation,
|
||||
spy.Owner.ColorRamp.GetColor(0))));
|
||||
infiltrator.Owner.ColorRamp.GetColor(0))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
class InfiltrateForExplorationInfo : TraitInfo<InfiltrateForExploration> {}
|
||||
|
||||
class InfiltrateForExploration : IAcceptSpy
|
||||
class InfiltrateForExploration : IAcceptInfiltrator
|
||||
{
|
||||
public void OnInfiltrate(Actor self, Actor spy)
|
||||
public void OnInfiltrate(Actor self, Actor infiltrator)
|
||||
{
|
||||
spy.Owner.Shroud.MergeShroud(self.Owner.Shroud);
|
||||
infiltrator.Owner.Shroud.MergeShroud(self.Owner.Shroud);
|
||||
if (!self.Owner.HasFogVisibility())
|
||||
self.Owner.Shroud.ResetExploration();
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new InfiltrateForSupportPower(this); }
|
||||
}
|
||||
|
||||
class InfiltrateForSupportPower : IAcceptSpy
|
||||
class InfiltrateForSupportPower : IAcceptInfiltrator
|
||||
{
|
||||
InfiltrateForSupportPowerInfo Info;
|
||||
|
||||
@@ -29,11 +29,11 @@ namespace OpenRA.Mods.RA
|
||||
Info = info;
|
||||
}
|
||||
|
||||
public void OnInfiltrate(Actor self, Actor spy)
|
||||
public void OnInfiltrate(Actor self, Actor infiltrator)
|
||||
{
|
||||
spy.World.AddFrameEndTask(w => w.CreateActor(Info.Proxy, new TypeDictionary
|
||||
infiltrator.World.AddFrameEndTask(w => w.CreateActor(Info.Proxy, new TypeDictionary
|
||||
{
|
||||
new OwnerInit( spy.Owner )
|
||||
new OwnerInit(infiltrator.Owner)
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
114
OpenRA.Mods.RA/Infiltrates.cs
Normal file
114
OpenRA.Mods.RA/Infiltrates.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2012 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. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.RA.Missions;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class InfiltratesInfo : ITraitInfo
|
||||
{
|
||||
public string[] InfiltrateTypes = {"Cash", "SupportPower", "Exploration"};
|
||||
public object Create(ActorInitializer init) { return new Infiltrates(this); }
|
||||
}
|
||||
|
||||
class Infiltrates : IIssueOrder, IResolveOrder, IOrderVoice
|
||||
{
|
||||
public readonly InfiltratesInfo Info;
|
||||
|
||||
public Infiltrates(InfiltratesInfo info)
|
||||
{
|
||||
Info = info;
|
||||
|
||||
}
|
||||
|
||||
public IEnumerable<IOrderTargeter> Orders
|
||||
{
|
||||
get
|
||||
{
|
||||
yield return new InfiltratorOrderTargeter(target => CanInfiltrate(target));
|
||||
}
|
||||
}
|
||||
|
||||
public Order IssueOrder(Actor self, IOrderTargeter order, Target target, bool queued)
|
||||
{
|
||||
if (order.OrderID == "Infiltrate")
|
||||
return new Order(order.OrderID, self, queued) { TargetActor = target.Actor };
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public string VoicePhraseForOrder(Actor self, Order order)
|
||||
{
|
||||
return (order.OrderString == "Infiltrate" && CanInfiltrate(order.TargetActor)) ? "Attack" : null;
|
||||
}
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
if (order.OrderString == "Infiltrate")
|
||||
{
|
||||
if (!CanInfiltrate(order.TargetActor))
|
||||
return;
|
||||
|
||||
self.SetTargetLine(Target.FromOrder(order), Color.Red);
|
||||
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new Enter(order.TargetActor));
|
||||
self.QueueActivity(new Infiltrate(order.TargetActor));
|
||||
}
|
||||
}
|
||||
|
||||
bool CanInfiltrate(Actor target)
|
||||
{
|
||||
if (Info.InfiltrateTypes.Contains("Cash") && target.HasTrait<InfiltrateForCash>())
|
||||
return true;
|
||||
|
||||
if (Info.InfiltrateTypes.Contains("SupportPower") && target.HasTrait<InfiltrateForSupportPower>())
|
||||
return true;
|
||||
|
||||
if (Info.InfiltrateTypes.Contains("Exploration") && target.HasTrait<InfiltrateForExploration>())
|
||||
return true;
|
||||
|
||||
if (Info.InfiltrateTypes.Contains("MissionObjective") && target.HasTrait<InfiltrateForMissionObjective>())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
class InfiltratorOrderTargeter : UnitTraitOrderTargeter<IAcceptInfiltrator>
|
||||
{
|
||||
readonly Func<Actor, bool> useEnterCursor;
|
||||
|
||||
public InfiltratorOrderTargeter(Func<Actor, bool> useEnterCursor) : base("Infiltrate", 7, "enter", true, false)
|
||||
{
|
||||
ForceAttack=false;
|
||||
this.useEnterCursor = useEnterCursor;
|
||||
}
|
||||
|
||||
public override bool CanTargetActor(Actor self, Actor target, bool forceAttack, bool forceQueued, ref string cursor)
|
||||
{
|
||||
if (!base.CanTargetActor(self, target, forceAttack, forceQueued, ref cursor))
|
||||
return false;
|
||||
|
||||
if (!useEnterCursor(target))
|
||||
cursor = "enter-blocked";
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -410,7 +410,7 @@ namespace OpenRA.Mods.RA.Missions
|
||||
};
|
||||
|
||||
lab = actors["Lab"];
|
||||
lab.AddTrait(new InfiltrateAction(OnLabInfiltrated));
|
||||
lab.AddTrait(new InfiltrateForMissionObjective(OnLabInfiltrated));
|
||||
lab.AddTrait(new TransformedAction(self => lab = self));
|
||||
|
||||
reinforcementsEntryPoint = actors["ReinforcementsEntryPoint"];
|
||||
@@ -456,13 +456,17 @@ namespace OpenRA.Mods.RA.Missions
|
||||
public object Create(ActorInitializer init) { return new Allies04Hijackable(init.self); }
|
||||
}
|
||||
|
||||
class Allies04Hijackable : IAcceptSpy, INotifyPassengerExited
|
||||
class Allies04Hijackable : IAcceptInfiltrator, INotifyPassengerExited
|
||||
{
|
||||
public Player OldOwner;
|
||||
|
||||
void OnTruckHijacked(Actor spy) { }
|
||||
|
||||
public Allies04Hijackable(Actor self)
|
||||
{
|
||||
OldOwner = self.Owner;
|
||||
|
||||
self.AddTrait(new InfiltrateForMissionObjective(OnTruckHijacked));
|
||||
}
|
||||
|
||||
public void OnInfiltrate(Actor self, Actor spy)
|
||||
|
||||
@@ -230,11 +230,11 @@ namespace OpenRA.Mods.RA.Missions
|
||||
}
|
||||
}
|
||||
|
||||
class InfiltrateAction : IAcceptSpy
|
||||
class InfiltrateForMissionObjective : IAcceptInfiltrator
|
||||
{
|
||||
Action<Actor> a;
|
||||
|
||||
public InfiltrateAction(Action<Actor> a)
|
||||
public InfiltrateForMissionObjective(Action<Actor> a)
|
||||
{
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ namespace OpenRA.Mods.RA.Missions
|
||||
world.CreateActor("camera", greece, provingGroundsCameraPoint.Location, null);
|
||||
|
||||
superTankDome = actors["SuperTankDome"];
|
||||
superTankDome.AddTrait(new InfiltrateAction(OnSuperTankDomeInfiltrated));
|
||||
superTankDome.AddTrait(new InfiltrateForMissionObjective(OnSuperTankDomeInfiltrated));
|
||||
superTankDome.AddTrait(new TransformedAction(self => superTankDome = self));
|
||||
|
||||
Game.MoveViewport(startEntryPoint.Location.ToFloat2());
|
||||
|
||||
@@ -409,6 +409,7 @@
|
||||
<Compile Include="CloakPaletteEffect.cs" />
|
||||
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
||||
<Compile Include="FogPalette.cs" />
|
||||
<Compile Include="Infiltrates.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
@@ -17,13 +18,21 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class ClassicProductionQueueInfo : ProductionQueueInfo, Requires<TechTreeInfo>, Requires<PowerManagerInfo>, Requires<PlayerResourcesInfo>
|
||||
{
|
||||
public readonly float SpeedUp = 0;
|
||||
public readonly float MaxSpeedUp = 0;
|
||||
|
||||
public override object Create(ActorInitializer init) { return new ClassicProductionQueue(init.self, this); }
|
||||
}
|
||||
|
||||
public class ClassicProductionQueue : ProductionQueue, ISync
|
||||
{
|
||||
public ClassicProductionQueue( Actor self, ClassicProductionQueueInfo info )
|
||||
: base(self, self, info) {}
|
||||
public new ClassicProductionQueueInfo Info;
|
||||
|
||||
public ClassicProductionQueue(Actor self, ClassicProductionQueueInfo info)
|
||||
: base(self, self, info)
|
||||
{
|
||||
this.Info = info;
|
||||
}
|
||||
|
||||
[Sync] bool isActive = false;
|
||||
|
||||
@@ -71,5 +80,29 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public override int GetBuildTime(String unitString)
|
||||
{
|
||||
var unit = Rules.Info[unitString];
|
||||
if (unit == null || ! unit.Traits.Contains<BuildableInfo>())
|
||||
return 0;
|
||||
|
||||
if (self.World.LobbyInfo.GlobalSettings.AllowCheats && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild)
|
||||
return 0;
|
||||
|
||||
var selfsameBuildings = self.World.ActorsWithTrait<Production>()
|
||||
.Where(p => p.Trait.Info.Produces.Contains(unit.Traits.Get<BuildableInfo>().Queue))
|
||||
.Where(p => p.Actor.Owner == self.Owner).ToArray();
|
||||
|
||||
var selfsameQueue = Rules.Info["player"].Traits.WithInterface<ClassicProductionQueueInfo>()
|
||||
.First(p => selfsameBuildings.First().Trait.Info.Produces.Contains(p.Type));
|
||||
|
||||
var speedUp = 1 - (selfsameQueue.SpeedUp * (selfsameBuildings.Count() - 1)).Clamp(0, selfsameQueue.MaxSpeedUp);
|
||||
|
||||
var time = unit.GetBuildTime() * Info.BuildSpeed * speedUp;
|
||||
|
||||
|
||||
return (int) time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,21 +253,16 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
}
|
||||
|
||||
public int GetBuildTime(String unitString)
|
||||
virtual public int GetBuildTime(String unitString)
|
||||
{
|
||||
var unit = Rules.Info[unitString];
|
||||
if (unit == null || ! unit.Traits.Contains<BuildableInfo>())
|
||||
return 0;
|
||||
|
||||
if (self.World.LobbyInfo.GlobalSettings.AllowCheats && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild) return 0;
|
||||
var cost = unit.Traits.Contains<ValuedInfo>() ? unit.Traits.Get<ValuedInfo>().Cost : 0;
|
||||
var time = cost
|
||||
* Info.BuildSpeed
|
||||
* (25 * 60) /* frames per min */ /* todo: build acceleration, if we do that */
|
||||
/ 1000;
|
||||
if (self.World.LobbyInfo.GlobalSettings.AllowCheats && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild)
|
||||
return 0;
|
||||
|
||||
if (unit.Traits.Contains<CustomBuildTimeValueInfo>())
|
||||
time = unit.Traits.Get<CustomBuildTimeValueInfo>().Value * (1 / Info.BuildSpeed);
|
||||
var time = unit.GetBuildTime() * Info.BuildSpeed;
|
||||
|
||||
return (int) time;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA
|
||||
r = Game.Renderer;
|
||||
if (r == null) return;
|
||||
|
||||
var s = new Sheet("mods/ra/uibits/loadscreen.png");
|
||||
var s = new Sheet(Info["LoadScreenImage"]);
|
||||
Logo = new Sprite(s, new Rectangle(0,0,256,256), TextureChannel.Alpha);
|
||||
Stripe = new Sprite(s, new Rectangle(256,0,256,256), TextureChannel.Alpha);
|
||||
StripeRect = new Rectangle(0, Renderer.Resolution.Height/2 - 128, Renderer.Resolution.Width, 256);
|
||||
|
||||
@@ -84,15 +84,12 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
get
|
||||
{
|
||||
yield return new UnitTraitOrderTargeter<IAcceptSpy>( "SpyInfiltrate", 7, "enter", true, false ) { ForceAttack=false };
|
||||
yield return new UnitTraitOrderTargeter<RenderInfantry>( "Disguise", 7, "ability", true, true ) { ForceAttack=false };
|
||||
yield return new UnitTraitOrderTargeter<RenderInfantry>("Disguise", 7, "ability", true, true) { ForceAttack=false };
|
||||
}
|
||||
}
|
||||
|
||||
public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued )
|
||||
{
|
||||
if( order.OrderID == "SpyInfiltrate" )
|
||||
return new Order(order.OrderID, self, queued) { TargetActor = target.Actor };
|
||||
if( order.OrderID == "Disguise" )
|
||||
return new Order(order.OrderID, self, queued) { TargetActor = target.Actor };
|
||||
return null;
|
||||
@@ -100,14 +97,6 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
if (order.OrderString == "SpyInfiltrate")
|
||||
{
|
||||
self.SetTargetLine(Target.FromOrder(order), Color.Red);
|
||||
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new Enter(order.TargetActor));
|
||||
self.QueueActivity(new Infiltrate(order.TargetActor));
|
||||
}
|
||||
if (order.OrderString == "Disguise")
|
||||
{
|
||||
var target = order.TargetActor == self ? null : order.TargetActor;
|
||||
@@ -121,8 +110,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public string VoicePhraseForOrder(Actor self, Order order)
|
||||
{
|
||||
return (order.OrderString == "Disguise"
|
||||
|| order.OrderString == "SpyInfiltrate") ? "Attack" : null;
|
||||
return (order.OrderString == "Disguise") ? "Attack" : null;
|
||||
}
|
||||
|
||||
public Color RadarColorOverride(Actor self)
|
||||
|
||||
528
mods/cnc-classic/chrome.yaml
Normal file
528
mods/cnc-classic/chrome.yaml
Normal file
@@ -0,0 +1,528 @@
|
||||
chrome-gdi: chrome-gdi.png
|
||||
specialbin-top: 0,0,30,51
|
||||
specialbin-middle: 0,51,30,51
|
||||
specialbin-bottom: 0,153,30,39
|
||||
moneybin: 192,0,320,32
|
||||
tooltip-bg: 0,288,272,136
|
||||
|
||||
radar-gdi: chrome-gdi.png
|
||||
left: 297,31,9,192
|
||||
right: 498,31,9,192
|
||||
bottom: 297,223,210,30
|
||||
bg: 306,31,192,192
|
||||
|
||||
power-gdi: chrome-gdi.png
|
||||
power-indicator: 187,4,4,7
|
||||
|
||||
palette-gdi: chrome-gdi.png
|
||||
top: 297,288,201,9
|
||||
dock-top: 498,274,14,23
|
||||
bottom: 297,489,201,9
|
||||
dock-bottom: 498,489,14,23
|
||||
bg-0: 297,297,201,48
|
||||
dock-0: 498,297,14,48
|
||||
bg-1: 297,345,201,48
|
||||
dock-1: 498,345,14,48
|
||||
bg-2: 297,393,201,48
|
||||
dock-2: 498,393,14,48
|
||||
bg-3: 297,441,201,48
|
||||
dock-3: 498,441,14,48
|
||||
|
||||
digits-gdi: chrome-gdi.png
|
||||
0: 32,0,13,17
|
||||
1: 45,0,13,17
|
||||
2: 58,0,13,17
|
||||
3: 71,0,13,17
|
||||
4: 84,0,13,17
|
||||
5: 97,0,13,17
|
||||
6: 110,0,13,17
|
||||
7: 123,0,13,17
|
||||
8: 136,0,13,17
|
||||
9: 149,0,13,17
|
||||
|
||||
chrome-nod: chrome-nod.png
|
||||
specialbin-top: 0,0,30,51
|
||||
specialbin-middle: 0,51,30,51
|
||||
specialbin-bottom: 0,153,30,39
|
||||
moneybin: 192,0,320,32
|
||||
tooltip-bg: 0,288,272,136
|
||||
|
||||
radar-nod: chrome-nod.png
|
||||
left: 297,31,9,192
|
||||
right: 498,31,9,192
|
||||
bottom: 297,223,210,30
|
||||
bg: 306,31,192,192
|
||||
power-indicator: 187,4,4,7
|
||||
|
||||
power-nod: chrome-nod.png
|
||||
power-indicator: 187,4,4,7
|
||||
|
||||
palette-nod: chrome-nod.png
|
||||
top: 297,288,201,9
|
||||
dock-top: 498,274,14,23
|
||||
bottom: 297,489,201,9
|
||||
dock-bottom: 498,489,14,23
|
||||
bg-0: 297,297,201,48
|
||||
dock-0: 498,297,14,48
|
||||
bg-1: 297,345,201,48
|
||||
dock-1: 498,345,14,48
|
||||
bg-2: 297,393,201,48
|
||||
dock-2: 498,393,14,48
|
||||
bg-3: 297,441,201,48
|
||||
dock-3: 498,441,14,48
|
||||
|
||||
digits-nod: chrome-nod.png
|
||||
0: 32,0,13,17
|
||||
1: 45,0,13,17
|
||||
2: 58,0,13,17
|
||||
3: 71,0,13,17
|
||||
4: 84,0,13,17
|
||||
5: 97,0,13,17
|
||||
6: 110,0,13,17
|
||||
7: 123,0,13,17
|
||||
8: 136,0,13,17
|
||||
9: 149,0,13,17
|
||||
|
||||
tabs-selected: tabs.png
|
||||
gdi-Building: 0,0,27,41
|
||||
gdi-Defense: 0,40,27,41
|
||||
gdi-Infantry: 0,80,27,41
|
||||
gdi-Vehicle: 0,120,27,41
|
||||
gdi-Aircraft: 0,160,27,41
|
||||
gdi-Ship: 0,200,27,41
|
||||
nod-Building: 80,0,27,41
|
||||
nod-Defense: 80,40,27,41
|
||||
nod-Infantry: 80,80,27,41
|
||||
nod-Vehicle: 80,120,27,41
|
||||
nod-Aircraft: 80,160,27,41
|
||||
nod-Ship: 80,200,27,41
|
||||
|
||||
tabs-ready: tabs.png
|
||||
gdi-Building: 27,0,27,41
|
||||
gdi-Defense: 27,40,27,41
|
||||
gdi-Infantry: 27,80,27,41
|
||||
gdi-Vehicle: 27,120,27,41
|
||||
gdi-Aircraft: 27,160,27,41
|
||||
gdi-Ship: 27,200,27,41
|
||||
nod-Building: 107,0,27,41
|
||||
nod-Defense: 107,40,27,41
|
||||
nod-Infantry: 107,80,27,41
|
||||
nod-Vehicle: 107,120,27,41
|
||||
nod-Aircraft: 107,160,27,41
|
||||
nod-Ship: 107,200,27,41
|
||||
|
||||
tabs-normal: tabs.png
|
||||
gdi-Building: 54,0,27,41
|
||||
gdi-Defense: 54,40,27,41
|
||||
gdi-Infantry: 54,80,27,41
|
||||
gdi-Vehicle: 54,120,27,41
|
||||
gdi-Aircraft: 54,160,27,41
|
||||
gdi-Ship: 54,200,27,41
|
||||
nod-Building: 134,0,27,41
|
||||
nod-Defense: 134,40,27,41
|
||||
nod-Infantry: 134,80,27,41
|
||||
nod-Vehicle: 134,120,27,41
|
||||
nod-Aircraft: 134,160,27,41
|
||||
nod-Ship: 134,200,27,41
|
||||
|
||||
dialog2: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
dialog3: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
dialog4: dialog.png
|
||||
border-t: 773,0,52,6
|
||||
border-b: 773,58,52,6
|
||||
border-l: 768,5,6,54
|
||||
border-r: 826,5,6,54
|
||||
corner-tl: 768,0,6,6
|
||||
corner-tr: 826,0,6,6
|
||||
corner-bl: 768,58,6,6
|
||||
corner-br: 826,58,6,6
|
||||
background: 773,5,52,52
|
||||
|
||||
dialog: dialog.png
|
||||
background: 0,0,480,480
|
||||
border-r: 489,0,9,192
|
||||
border-l: 480,0,9,192
|
||||
border-b: 0,489,191,9
|
||||
border-t: 0,480,191,9
|
||||
corner-tl: 191,480,9,9
|
||||
corner-tr: 200,480,9,9
|
||||
corner-bl: 191,489,9,9
|
||||
corner-br: 200,489,9,9
|
||||
|
||||
spawnpoints: spawnpoints.png
|
||||
unowned: 528,128,16,16
|
||||
owned: 512,128,16,16
|
||||
|
||||
strategic: strategic.png
|
||||
unowned: 0,0,32,32
|
||||
critical_unowned: 0,32,32,32
|
||||
enemy_owned: 32,32,32,32
|
||||
player_owned: 96,0,32,32
|
||||
|
||||
sell-button: buttons.png
|
||||
normal: 0,0,34,28
|
||||
pressed: 34,0,34,28
|
||||
disabled: 68,0,34,28
|
||||
|
||||
repair-button: buttons.png
|
||||
normal: 0,28,34,28
|
||||
pressed: 34,28,34,28
|
||||
disabled: 68,28,34,28
|
||||
|
||||
power-button: buttons.png
|
||||
normal: 0,56,34,28
|
||||
pressed: 34,56,34,28
|
||||
disabled: 68,56,34,28
|
||||
|
||||
flags: buttons.png
|
||||
gdi: 30,84,30,15
|
||||
nod: 0,84,30,15
|
||||
random: 60,84,30,15
|
||||
spectator: 60,84,30,15
|
||||
|
||||
music: musicplayer.png
|
||||
pause: 0,0,25,25
|
||||
stop: 28,0,25,25
|
||||
play: 56,0,25,25
|
||||
next: 84,0,25,25
|
||||
prev: 112,0,25,25
|
||||
|
||||
scrollbar: buttons.png
|
||||
down_arrow: 16,112,16,16
|
||||
down_pressed: 16,112,16,16
|
||||
up_arrow: 32,112,16,16
|
||||
up_pressed: 32,112,16,16
|
||||
|
||||
# A copy of dialog3
|
||||
progressbar-bg: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
progressbar-thumb: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
button: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
button-highlighted: dialog.png
|
||||
background: 513,145,126,126
|
||||
border-r: 639,145,1,126
|
||||
border-l: 512,145,1,126
|
||||
border-b: 513,271,126,1
|
||||
border-t: 513,144,126,1
|
||||
corner-tl: 512,144,1,1
|
||||
corner-tr: 594,144,1,1
|
||||
corner-bl: 512,271,1,1
|
||||
corner-br: 594,271,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
button-hover: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
button-hover-highlighted: dialog.png
|
||||
background: 513,145,126,126
|
||||
border-r: 639,145,1,126
|
||||
border-l: 512,145,1,126
|
||||
border-b: 513,271,126,1
|
||||
border-t: 513,144,126,1
|
||||
corner-tl: 512,144,1,1
|
||||
corner-tr: 594,144,1,1
|
||||
corner-bl: 512,271,1,1
|
||||
corner-br: 594,271,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
button-disabled: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
button-disabled-highlighted: dialog.png
|
||||
background: 513,145,126,126
|
||||
border-r: 639,145,1,126
|
||||
border-l: 512,145,1,126
|
||||
border-b: 513,271,126,1
|
||||
border-t: 513,144,126,1
|
||||
corner-tl: 512,144,1,1
|
||||
corner-tr: 594,144,1,1
|
||||
corner-bl: 512,271,1,1
|
||||
corner-br: 594,271,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
button-pressed: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
button-pressed-highlighted: dialog.png
|
||||
background: 641,145,126,126
|
||||
border-r: 767,145,1,126
|
||||
border-l: 640,145,1,126
|
||||
border-b: 641,271,126,1
|
||||
border-t: 641,144,126,1
|
||||
corner-tl: 640,144,1,1
|
||||
corner-tr: 722,144,1,1
|
||||
corner-bl: 640,271,1,1
|
||||
corner-br: 722,271,1,1
|
||||
|
||||
scrollthumb: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
scrollthumb-hover: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
scrollthumb-disabled: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
scrollthumb-pressed: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
textfield: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
textfield-hover: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
textfield-disabled: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
textfield-focused: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
scrollpanel-bg: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
|
||||
# A copy of dialog2
|
||||
slider-tick: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
slider-track: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
checkbox: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
checkbox-bits: buttons.png
|
||||
checked: 0,112,16,16
|
||||
|
||||
# A copy of dialog3
|
||||
checkbox-hover: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
checkbox-disabled: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog3
|
||||
scrollitem-selected: dialog.png
|
||||
background: 641,1,126,126
|
||||
border-r: 767,1,1,126
|
||||
border-l: 640,1,1,126
|
||||
border-b: 641,127,126,1
|
||||
border-t: 641,0,126,1
|
||||
corner-tl: 640,0,1,1
|
||||
corner-tr: 722,0,1,1
|
||||
corner-bl: 640,82,1,1
|
||||
corner-br: 722,82,1,1
|
||||
|
||||
# A copy of dialog2
|
||||
scrollitem-hover: dialog.png
|
||||
background: 513,1,126,126
|
||||
border-r: 639,1,1,126
|
||||
border-l: 512,1,1,126
|
||||
border-b: 513,127,126,1
|
||||
border-t: 513,0,126,1
|
||||
corner-tl: 512,0,1,1
|
||||
corner-tr: 594,0,1,1
|
||||
corner-bl: 512,82,1,1
|
||||
corner-br: 594,82,1,1
|
||||
|
||||
misc: misc.png
|
||||
isadmin: 0,0,10,15
|
||||
94
mods/cnc-classic/explosions.yaml
Normal file
94
mods/cnc-classic/explosions.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
UnitExplodeSmall:
|
||||
Warhead:
|
||||
# Damage: 40
|
||||
# Spread: 10
|
||||
# Versus:
|
||||
# None: 90%
|
||||
# Wood: 75%
|
||||
# Light: 60%
|
||||
# Heavy: 25%
|
||||
Explosion: 4
|
||||
InfDeath: 4
|
||||
ImpactSound: xplobig4
|
||||
|
||||
UnitExplode:
|
||||
Warhead:
|
||||
Damage: 500
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: 8
|
||||
InfDeath: 4
|
||||
ImpactSound: xplobig6
|
||||
|
||||
NapalmExplode:
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
InfDeath: 5
|
||||
Explosion: 3
|
||||
# Explosion: big_napalm
|
||||
ImpactSound: xplobig6
|
||||
SmudgeType: Scorch
|
||||
Damage: 50
|
||||
|
||||
BigNapalmExplode: # For Flame tank, etc.
|
||||
Warhead:
|
||||
Damage: 50
|
||||
Spread: 18
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
InfDeath: 5
|
||||
Explosion: big_napalm
|
||||
ImpactSound: xplobig6
|
||||
SmudgeType: Scorch
|
||||
|
||||
GrenadierExplode:
|
||||
Warhead:
|
||||
Damage: 25
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: 5
|
||||
InfDeath: 3
|
||||
ImpactSound: xplosml2
|
||||
|
||||
MammothExplode: #Big artillery explosion, without as much damage
|
||||
Warhead:
|
||||
Damage: 50
|
||||
Spread: 18
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: 8
|
||||
InfDeath: 4
|
||||
ImpactSound: xplobig6
|
||||
|
||||
McvExplode:
|
||||
Warhead:
|
||||
Explosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: xplobig6
|
||||
|
||||
HeliExplode:
|
||||
Warhead:
|
||||
Explosion: veh1
|
||||
InfDeath: 4
|
||||
ImpactSound: xplos
|
||||
BIN
mods/cnc-classic/maps/a_long_way_from_home.oramap
Normal file
BIN
mods/cnc-classic/maps/a_long_way_from_home.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/cactus_valley.oramap
Normal file
BIN
mods/cnc-classic/maps/cactus_valley.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/desert_madness.oramap
Normal file
BIN
mods/cnc-classic/maps/desert_madness.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/diverse_region.oramap
Normal file
BIN
mods/cnc-classic/maps/diverse_region.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/emerald_highlands.oramap
Normal file
BIN
mods/cnc-classic/maps/emerald_highlands.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/eye_of_the_storm.oramap
Normal file
BIN
mods/cnc-classic/maps/eye_of_the_storm.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/four_corners.oramap
Normal file
BIN
mods/cnc-classic/maps/four_corners.oramap
Normal file
Binary file not shown.
@@ -1,12 +1,12 @@
|
||||
Selectable: False
|
||||
Selectable: True
|
||||
|
||||
MapFormat: 5
|
||||
|
||||
RequiresMod: cnc
|
||||
RequiresMod: cnc-classic
|
||||
|
||||
Title: Storm the Beachhead
|
||||
|
||||
Description: Remake of the first GDI Mission
|
||||
Description: Conversion of the first GDI Mission
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
@@ -18,7 +18,7 @@ Bounds: 35,39,27,23
|
||||
|
||||
UseAsShellmap: False
|
||||
|
||||
Type: Conquest
|
||||
Type: Campaign
|
||||
|
||||
Players:
|
||||
PlayerReference@BadGuy:
|
||||
@@ -450,6 +450,8 @@ Rules:
|
||||
Gdi01Script:
|
||||
Player:
|
||||
-ConquestVictoryConditions:
|
||||
PROC:
|
||||
-Buildable:
|
||||
SILO:
|
||||
-Buildable:
|
||||
WEAP:
|
||||
@@ -460,13 +462,11 @@ Rules:
|
||||
-Buildable:
|
||||
FIX:
|
||||
-Buildable:
|
||||
HPAD:
|
||||
HPAD.GDI:
|
||||
-Buildable:
|
||||
EYE:
|
||||
-Buildable:
|
||||
SBAG:
|
||||
-Buildable:
|
||||
BRIK:
|
||||
GUN:
|
||||
-Buildable:
|
||||
GTWR:
|
||||
-Buildable:
|
||||
@@ -480,6 +480,9 @@ Rules:
|
||||
-Buildable:
|
||||
RMBO:
|
||||
-Buildable:
|
||||
BOAT:
|
||||
Mobile:
|
||||
OnRails: false # workaround a crash
|
||||
|
||||
Sequences:
|
||||
|
||||
BIN
mods/cnc-classic/maps/green_acres.oramap
Normal file
BIN
mods/cnc-classic/maps/green_acres.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/king_of_the_mountain.oramap
Normal file
BIN
mods/cnc-classic/maps/king_of_the_mountain.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/king_takes_pawn.oramap
Normal file
BIN
mods/cnc-classic/maps/king_takes_pawn.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/lakefront_clash.oramap
Normal file
BIN
mods/cnc-classic/maps/lakefront_clash.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/lost_arena.oramap
Normal file
BIN
mods/cnc-classic/maps/lost_arena.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/marooned.oramap
Normal file
BIN
mods/cnc-classic/maps/marooned.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/monkey_in_the_middle.oramap
Normal file
BIN
mods/cnc-classic/maps/monkey_in_the_middle.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/moosehead_barrens.oramap
Normal file
BIN
mods/cnc-classic/maps/moosehead_barrens.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/nod01/map.bin
Normal file
BIN
mods/cnc-classic/maps/nod01/map.bin
Normal file
Binary file not shown.
299
mods/cnc-classic/maps/nod01/map.yaml
Normal file
299
mods/cnc-classic/maps/nod01/map.yaml
Normal file
@@ -0,0 +1,299 @@
|
||||
Selectable: True
|
||||
|
||||
MapFormat: 5
|
||||
|
||||
Title: Nikoomba's Demise
|
||||
|
||||
Description: Conversion of first Nod mission from Cnc
|
||||
|
||||
Author: Dan9550
|
||||
|
||||
Tileset: DESERT
|
||||
|
||||
MapSize: 64,64
|
||||
|
||||
Bounds: 21,14,37,24
|
||||
|
||||
UseAsShellmap: False
|
||||
|
||||
Type: Campaign
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Race: gdi
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Race: gdi
|
||||
PlayerReference@GDI:
|
||||
Name: GDI
|
||||
Race: gdi
|
||||
ColorRamp: 31,222,183,24
|
||||
Allies: Creeps
|
||||
Enemies: NOD
|
||||
PlayerReference@NOD:
|
||||
Name: NOD
|
||||
Playable: True
|
||||
AllowBots: False
|
||||
LockRace: True
|
||||
Race: nod
|
||||
LockColor: True
|
||||
ColorRamp: 3,255,127,28
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Enemies: GDI,Neutral
|
||||
|
||||
Actors:
|
||||
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
|
||||
Actor17: t08
|
||||
Location: 30,51
|
||||
Owner: Neutral
|
||||
Actor18: t08
|
||||
Location: 58,53
|
||||
Owner: Neutral
|
||||
Actor19: t08
|
||||
Location: 43,56
|
||||
Owner: Neutral
|
||||
Actor20: rock1
|
||||
Location: 24,58
|
||||
Owner: Neutral
|
||||
Actor21: t08
|
||||
Location: 52,58
|
||||
Owner: Neutral
|
||||
Actor22: rock1
|
||||
Location: 55,58
|
||||
Owner: Neutral
|
||||
Actor23: t08
|
||||
Location: 29,59
|
||||
Owner: Neutral
|
||||
Actor24: rock2
|
||||
Location: 31,61
|
||||
Owner: Neutral
|
||||
Vil01: v21
|
||||
Location: 29,23
|
||||
Owner: Neutral
|
||||
Vil02: v24
|
||||
Location: 22,24
|
||||
Owner: Neutral
|
||||
Vil03: v24
|
||||
Location: 21,16
|
||||
Owner: Neutral
|
||||
Vil04: v32
|
||||
Location: 21,20
|
||||
Owner: Neutral
|
||||
Vil05: v27
|
||||
Location: 22,21
|
||||
Owner: Neutral
|
||||
Vil06: v20
|
||||
Location: 21,21
|
||||
Owner: Neutral
|
||||
Vil07: v26
|
||||
Location: 22,23
|
||||
Owner: Neutral
|
||||
Vil08: v20
|
||||
Location: 27,23
|
||||
Owner: Neutral
|
||||
Vil09: v22
|
||||
Location: 26,23
|
||||
Owner: Neutral
|
||||
Vil10: v23
|
||||
Location: 26,22
|
||||
Owner: Neutral
|
||||
Vil11: v26
|
||||
Location: 26,21
|
||||
Owner: Neutral
|
||||
Vil12: v25
|
||||
Location: 29,21
|
||||
Owner: Neutral
|
||||
Vil13: v30
|
||||
Location: 32,18
|
||||
Owner: Neutral
|
||||
Civ01: c9
|
||||
Location: 28,20
|
||||
Owner: Neutral
|
||||
Civ02: c6
|
||||
Location: 28,19
|
||||
Owner: Neutral
|
||||
Civ03: c8
|
||||
Location: 27,19
|
||||
Owner: Neutral
|
||||
Civ04: c7
|
||||
Location: 29,20
|
||||
Owner: Neutral
|
||||
Civ05: c4
|
||||
Location: 31,19
|
||||
Owner: Neutral
|
||||
Civ06: c2
|
||||
Location: 30,19
|
||||
Owner: Neutral
|
||||
Civ07: c5
|
||||
Location: 29,19
|
||||
Owner: Neutral
|
||||
Nikoomba: c10
|
||||
Location: 29,16
|
||||
Owner: Neutral
|
||||
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
|
||||
Actor61: e1
|
||||
Location: 52,17
|
||||
Owner: NOD
|
||||
Actor62: e1
|
||||
Location: 51,17
|
||||
Owner: NOD
|
||||
Actor63: e1
|
||||
Location: 51,16
|
||||
Owner: NOD
|
||||
Actor64: e1
|
||||
Location: 52,16
|
||||
Owner: NOD
|
||||
Actor65: e1
|
||||
Location: 55,17
|
||||
Owner: NOD
|
||||
Actor66: e1
|
||||
Location: 56,17
|
||||
Owner: NOD
|
||||
Actor67: e1
|
||||
Location: 56,16
|
||||
Owner: NOD
|
||||
Actor68: e1
|
||||
Location: 55,16
|
||||
Owner: NOD
|
||||
Actor69: bggy
|
||||
Location: 53,16
|
||||
Owner: NOD
|
||||
Actor70: bggy
|
||||
Location: 54,16
|
||||
Owner: NOD
|
||||
NODReinforceNthA: waypoint
|
||||
Location: 52,18
|
||||
Owner: NOD
|
||||
GDIReinforceNth: waypoint
|
||||
Location: 24,15
|
||||
Owner: GDI
|
||||
NODReinforceNthB: waypoint
|
||||
Location: 55,18
|
||||
Owner: NOD
|
||||
Actor27: jeep
|
||||
Location: 31,28
|
||||
Owner: GDI
|
||||
Actor28: jeep
|
||||
Location: 28,29
|
||||
Owner: GDI
|
||||
|
||||
Smudges:
|
||||
|
||||
Rules:
|
||||
Player:
|
||||
-ConquestVictoryConditions:
|
||||
World:
|
||||
-CrateSpawner:
|
||||
-SpawnMPUnits:
|
||||
-MPStartLocations:
|
||||
Nod01Script:
|
||||
C10:
|
||||
Tooltip:
|
||||
Name: Nikoomba
|
||||
|
||||
Sequences:
|
||||
|
||||
Weapons:
|
||||
|
||||
Voices:
|
||||
|
||||
Notifications:
|
||||
BIN
mods/cnc-classic/maps/northern_explosion.oramap
Normal file
BIN
mods/cnc-classic/maps/northern_explosion.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/nowhere_to_hide.oramap
Normal file
BIN
mods/cnc-classic/maps/nowhere_to_hide.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/one_pass_fits_all.oramap
Normal file
BIN
mods/cnc-classic/maps/one_pass_fits_all.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/pitfall.oramap
Normal file
BIN
mods/cnc-classic/maps/pitfall.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/red_sands.oramap
Normal file
BIN
mods/cnc-classic/maps/red_sands.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/river_raid.oramap
Normal file
BIN
mods/cnc-classic/maps/river_raid.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/sand_trap.oramap
Normal file
BIN
mods/cnc-classic/maps/sand_trap.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/shellmap/map.bin
Executable file
BIN
mods/cnc-classic/maps/shellmap/map.bin
Executable file
Binary file not shown.
1028
mods/cnc-classic/maps/shellmap/map.yaml
Executable file
1028
mods/cnc-classic/maps/shellmap/map.yaml
Executable file
File diff suppressed because it is too large
Load Diff
BIN
mods/cnc-classic/maps/straight_and_narrow.oramap
Normal file
BIN
mods/cnc-classic/maps/straight_and_narrow.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/surgical_incision.oramap
Normal file
BIN
mods/cnc-classic/maps/surgical_incision.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/tiberium_garden.oramap
Normal file
BIN
mods/cnc-classic/maps/tiberium_garden.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/village_of_the_unfortunate.oramap
Normal file
BIN
mods/cnc-classic/maps/village_of_the_unfortunate.oramap
Normal file
Binary file not shown.
BIN
mods/cnc-classic/maps/winter_waterland.oramap
Normal file
BIN
mods/cnc-classic/maps/winter_waterland.oramap
Normal file
Binary file not shown.
138
mods/cnc-classic/mod.yaml
Normal file
138
mods/cnc-classic/mod.yaml
Normal file
@@ -0,0 +1,138 @@
|
||||
Metadata:
|
||||
Title: C&C: TD Classic (WIP)
|
||||
Description: An emulation of the Original Tiberian Dawn
|
||||
Version: {DEV_VERSION}
|
||||
Author: The OpenRA Developers
|
||||
|
||||
Folders:
|
||||
.
|
||||
./mods/cnc
|
||||
./mods/cnc/bits
|
||||
./mods/cnc-classic/uibits
|
||||
./mods/cnc/uibits
|
||||
./mods/ra/uibits
|
||||
~^/Content/cnc
|
||||
|
||||
Packages:
|
||||
overrides.mix
|
||||
bluetib.mix
|
||||
speech.mix
|
||||
conquer.mix
|
||||
sounds.mix
|
||||
tempicnh.mix
|
||||
temperat.mix
|
||||
winter.mix
|
||||
desert.mix
|
||||
snow.mix
|
||||
~movies-gdi.mix
|
||||
~movies-nod.mix
|
||||
~movies.mix
|
||||
~scores.mix
|
||||
~transit.mix
|
||||
|
||||
Rules:
|
||||
mods/cnc-classic/rules/defaults.yaml
|
||||
mods/cnc-classic/rules/system.yaml
|
||||
mods/cnc-classic/rules/structures.yaml
|
||||
mods/cnc-classic/rules/infantry.yaml
|
||||
mods/cnc-classic/rules/vehicles.yaml
|
||||
mods/cnc-classic/rules/trees.yaml
|
||||
mods/cnc-classic/rules/civilian.yaml
|
||||
mods/cnc-classic/rules/civilian-desert.yaml
|
||||
mods/cnc-classic/rules/tech.yaml
|
||||
mods/cnc-classic/rules/ships.yaml
|
||||
mods/cnc-classic/rules/aircraft.yaml
|
||||
|
||||
Sequences:
|
||||
mods/cnc/sequences/structures.yaml
|
||||
mods/cnc/sequences/vehicles.yaml
|
||||
mods/cnc/sequences/infantry.yaml
|
||||
mods/cnc/sequences/map.yaml
|
||||
mods/cnc/sequences/misc.yaml
|
||||
# Low priority sequences that break the batch when used
|
||||
mods/cnc/sequences/civilian.yaml
|
||||
mods/cnc-classic/sequences/campaign.yaml
|
||||
Cursors:
|
||||
mods/cnc/cursors.yaml
|
||||
|
||||
Chrome:
|
||||
mods/cnc-classic/chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
mods/ra/OpenRA.Mods.RA.dll
|
||||
mods/cnc/OpenRA.Mods.Cnc.dll
|
||||
|
||||
ChromeLayout:
|
||||
mods/ra/chrome/gameinit.yaml
|
||||
mods/ra/chrome/ingame.yaml
|
||||
mods/ra/chrome/mainmenu.yaml
|
||||
mods/ra/chrome/settings.yaml
|
||||
mods/ra/chrome/lobby.yaml
|
||||
mods/ra/chrome/map-chooser.yaml
|
||||
mods/ra/chrome/create-server.yaml
|
||||
mods/ra/chrome/serverbrowser.yaml
|
||||
mods/ra/chrome/replaybrowser.yaml
|
||||
mods/ra/chrome/dropdowns.yaml
|
||||
mods/ra/chrome/modchooser.yaml
|
||||
mods/ra/chrome/cheats.yaml
|
||||
mods/ra/chrome/objectives.yaml
|
||||
|
||||
Weapons:
|
||||
mods/cnc-classic/weapons.yaml
|
||||
mods/cnc-classic/explosions.yaml
|
||||
|
||||
Movies:
|
||||
mods/cnc/movies-gdi.yaml
|
||||
mods/cnc/movies-nod.yaml
|
||||
|
||||
Voices:
|
||||
mods/cnc/voices.yaml
|
||||
|
||||
Notifications:
|
||||
mods/cnc-classic/notifications.yaml
|
||||
|
||||
Music:
|
||||
mods/cnc/music.yaml
|
||||
|
||||
TileSets:
|
||||
mods/cnc/tilesets/desert.yaml
|
||||
mods/cnc/tilesets/winter.yaml
|
||||
mods/cnc/tilesets/snow.yaml
|
||||
mods/cnc/tilesets/temperat.yaml
|
||||
|
||||
|
||||
LoadScreen: RALoadScreen
|
||||
InstallerMenuWidget: INSTALL_PANEL
|
||||
TestFile: conquer.mix
|
||||
LoadScreenImage: mods/cnc-classic/uibits/loadscreen.png
|
||||
PackageURL: http://open-ra.org/get-dependency.php?file=cnc-packages
|
||||
|
||||
ServerTraits:
|
||||
LobbyCommands
|
||||
MasterServerPinger
|
||||
|
||||
ChromeMetrics:
|
||||
mods/ra/metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Regular:
|
||||
Font:FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:FreeSansBold.ttf
|
||||
Size:14
|
||||
Title:
|
||||
Font:titles.ttf
|
||||
Size:48
|
||||
MediumBold:
|
||||
Font:FreeSansBold.ttf
|
||||
Size:18
|
||||
BigBold:
|
||||
Font:FreeSansBold.ttf
|
||||
Size:24
|
||||
Tiny:
|
||||
Font:FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:FreeSansBold.ttf
|
||||
Size:10
|
||||
38
mods/cnc-classic/notifications.yaml
Normal file
38
mods/cnc-classic/notifications.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
Speech:
|
||||
Notifications:
|
||||
Repairing: repair1
|
||||
LowPower: lopower1
|
||||
SilosNeeded: silos1
|
||||
PrimaryBuildingSelected: pribldg1
|
||||
BuildingCannotPlaceAudio: deploy1
|
||||
NewOptions: newopt1
|
||||
AbilityInsufficientPower: nopower1
|
||||
Win: accom1
|
||||
Lose: fail1
|
||||
BaseAttack: baseatk1
|
||||
HarvesterAttack:
|
||||
Leave: batlcon1
|
||||
UnitReady: unitredy
|
||||
NoBuild: nobuild1
|
||||
Training: bldging1
|
||||
OnHold: onhold1
|
||||
Cancelled: cancel1
|
||||
Building: bldging1
|
||||
ConstructionComplete: constru1
|
||||
Reinforce: reinfor1
|
||||
|
||||
Sounds:
|
||||
Notifications:
|
||||
RadarUp: comcntr1
|
||||
RadarDown: powrdn1
|
||||
CashTickUp:
|
||||
CashTickDown:
|
||||
LevelUp: text2
|
||||
DisablePower: button
|
||||
EnablePower: button
|
||||
ChatLine: scold1
|
||||
BuildPaletteOpen: button
|
||||
BuildPaletteClose: button
|
||||
TabClick: button
|
||||
ClickSound: button
|
||||
ClickDisabledSound: scold2
|
||||
169
mods/cnc-classic/rules/aircraft.yaml
Normal file
169
mods/cnc-classic/rules/aircraft.yaml
Normal file
@@ -0,0 +1,169 @@
|
||||
TRAN:
|
||||
Inherits: ^Helicopter
|
||||
Valued:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Chinook Transport
|
||||
Icon:tranicnh
|
||||
Description: Fast Infantry Transport Helicopter.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
Prerequisites: hpad
|
||||
BuiltAt: hpad
|
||||
Owner: gdi,nod
|
||||
Selectable:
|
||||
Bounds: 41,41
|
||||
Helicopter:
|
||||
LandWhenIdle: true
|
||||
ROT: 5
|
||||
Speed: 15
|
||||
InitialFacing: 0
|
||||
LandableTerrainTypes: Clear,Rough,Road,Ore,Beach
|
||||
Health:
|
||||
HP: 90
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
RenderUnit:
|
||||
WithRotor@PRIMARY:
|
||||
Offset: 0,14,0,-4
|
||||
WithRotor@SECONDARY:
|
||||
Id: rotor_2
|
||||
Offset: 0,-14,0,-2
|
||||
WithShadow:
|
||||
Cargo:
|
||||
Types: Infantry
|
||||
MaxWeight: 10
|
||||
PipCount: 10
|
||||
FallsToEarth:
|
||||
|
||||
HELI:
|
||||
Inherits: ^Helicopter
|
||||
Valued:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Apache Longbow
|
||||
Icon: heliicnh
|
||||
Description: Helicopter Gunship with Chainguns.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: hpad, hq
|
||||
BuiltAt: hpad
|
||||
Owner: nod
|
||||
Selectable:
|
||||
Bounds: 30,24
|
||||
Helicopter:
|
||||
ROT: 4
|
||||
Speed: 20
|
||||
RearmBuildings: hpad.nod
|
||||
Health:
|
||||
HP: 125
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
AttackHeli:
|
||||
PrimaryWeapon: HeliAGGun
|
||||
PrimaryOffset: 0,-3,0,2
|
||||
PrimaryLocalOffset: -5,0,0,0,0, 5,0,0,0,0
|
||||
FacingTolerance: 20
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
PipCount: 5
|
||||
ReloadTicks: 10
|
||||
RenderUnit:
|
||||
WithRotor:
|
||||
Offset: 0,0,0,-2
|
||||
WithMuzzleFlash:
|
||||
WithShadow:
|
||||
FallsToEarth:
|
||||
AutoTarget:
|
||||
|
||||
ORCA:
|
||||
Inherits: ^Helicopter
|
||||
Valued:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Orca
|
||||
Icon: orcaicnh
|
||||
Description: Helicopter Gunship with AG Missiles.\n Strong vs Buildings, Tanks\n Weak vs Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: hpad, hq
|
||||
BuiltAt: hpad
|
||||
Owner: gdi
|
||||
Selectable:
|
||||
Bounds: 30,24
|
||||
Helicopter:
|
||||
ROT: 4
|
||||
Speed: 20
|
||||
RearmBuildings: hpad.gdi
|
||||
Health:
|
||||
HP: 100
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
AttackHeli:
|
||||
PrimaryWeapon: OrcaAGMissiles
|
||||
PrimaryOffset: 0,-10,0,5
|
||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
FacingTolerance: 20
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
PipCount: 5
|
||||
ReloadTicks: 10
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
FallsToEarth:
|
||||
AutoTarget:
|
||||
|
||||
C17:
|
||||
ParaDrop:
|
||||
LZRange: 1
|
||||
Inherits: ^Plane
|
||||
Tooltip:
|
||||
Name: Supply Aircraft
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 35
|
||||
Health:
|
||||
HP: 25
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
Cargo:
|
||||
# Types: Infantry, Vehicle
|
||||
MaxWeight: 10
|
||||
PipCount: 10
|
||||
Invulnerable:
|
||||
-Selectable:
|
||||
-TargetableUnit:
|
||||
FlyAwayOnIdle:
|
||||
|
||||
A10:
|
||||
Inherits: ^Plane
|
||||
Tooltip:
|
||||
Name: A10 Bomber
|
||||
Icon: a10icnh
|
||||
Plane:
|
||||
ROT: 4
|
||||
Speed: 40
|
||||
Health:
|
||||
HP: 60
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
CarpetBomb:
|
||||
Weapon: Napalm
|
||||
Range: 3
|
||||
-Selectable:
|
||||
FlyAwayOnIdle:
|
||||
|
||||
124
mods/cnc-classic/rules/civilian-desert.yaml
Normal file
124
mods/cnc-classic/rules/civilian-desert.yaml
Normal file
@@ -0,0 +1,124 @@
|
||||
V20:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V21:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V22:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V23:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V24:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V25:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Tooltip:
|
||||
Name: Church
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V26:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V27:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V28:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V29:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V30:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V31:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V32:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V33:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V34:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V35:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V36:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
|
||||
V37:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: __xx_ ___xx
|
||||
Dimensions: 5,2
|
||||
EditorTilesetFilter:
|
||||
RequireTilesets: DESERT
|
||||
254
mods/cnc-classic/rules/civilian.yaml
Normal file
254
mods/cnc-classic/rules/civilian.yaml
Normal file
@@ -0,0 +1,254 @@
|
||||
V01:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Tooltip:
|
||||
Name: Church
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V02:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V03:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V04:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V05:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V06:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V07:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V08:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V09:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V10:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V11:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V12:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V13:
|
||||
Inherits: ^CivBuilding
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V14:
|
||||
Inherits: ^CivField
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V15:
|
||||
Inherits: ^CivField
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V16:
|
||||
Inherits: ^CivField
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V17:
|
||||
Inherits: ^CivField
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
V18:
|
||||
Inherits: ^CivField
|
||||
EditorTilesetFilter:
|
||||
ExcludeTilesets: DESERT
|
||||
|
||||
ARCO:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
|
||||
BARB:
|
||||
Inherits: ^Wall
|
||||
Health:
|
||||
HP: 100
|
||||
Armor:
|
||||
Type: Light
|
||||
Tooltip:
|
||||
Name: Wire Fence
|
||||
Icon: barbicnh
|
||||
|
||||
WOOD:
|
||||
Inherits: ^Wall
|
||||
Health:
|
||||
HP: 100
|
||||
Armor:
|
||||
Type: Wood
|
||||
Tooltip:
|
||||
Name: Wooden Fence
|
||||
Icon: woodicnh
|
||||
|
||||
BRIDGE1:
|
||||
Inherits: ^Bridge
|
||||
Bridge:
|
||||
Template: 165
|
||||
DestroyedTemplate: 166
|
||||
Building:
|
||||
Footprint: ____ ____ ____ ____
|
||||
Dimensions: 4,4
|
||||
|
||||
BRIDGE2:
|
||||
Inherits: ^Bridge
|
||||
Bridge:
|
||||
Template: 167
|
||||
DestroyedTemplate: 168
|
||||
Building:
|
||||
Footprint: _____ _____ _____ _____ _____
|
||||
Dimensions: 5,5
|
||||
|
||||
BRIDGE3:
|
||||
Inherits: ^Bridge
|
||||
Bridge:
|
||||
Template: 169
|
||||
DestroyedTemplate: 170
|
||||
Building:
|
||||
Footprint: ______ ______ ______ ______ ______
|
||||
Dimensions: 6,5
|
||||
|
||||
BRIDGE4:
|
||||
Inherits: ^Bridge
|
||||
Bridge:
|
||||
Template: 171
|
||||
DestroyedTemplate: 172
|
||||
Building:
|
||||
Footprint: ______ ______ ______ ______
|
||||
Dimensions: 6,4
|
||||
|
||||
C1:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianMaleVoice
|
||||
|
||||
C2:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianFemaleVoice
|
||||
|
||||
C3:
|
||||
Inherits: ^CivInfantry
|
||||
|
||||
C4:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianFemaleVoice
|
||||
|
||||
C5:
|
||||
Inherits: ^CivInfantry
|
||||
|
||||
C6:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianFemaleVoice
|
||||
|
||||
C7:
|
||||
Inherits: ^CivInfantry
|
||||
|
||||
C8:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianFemaleVoice
|
||||
|
||||
C9:
|
||||
Inherits: ^CivInfantry
|
||||
|
||||
C10:
|
||||
Inherits: ^CivInfantry
|
||||
Selectable:
|
||||
Voice: CivilianFemaleVoice
|
||||
|
||||
VICE:
|
||||
AppearsOnRadar:
|
||||
Health:
|
||||
Radius: 3
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Wood
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
Mobile:
|
||||
Speed: 5
|
||||
TerrainSpeeds:
|
||||
Clear: 90
|
||||
Rough: 80
|
||||
Road: 100
|
||||
Tiberium: 70
|
||||
BlueTiberium: 70
|
||||
Beach: 80
|
||||
Selectable:
|
||||
Voice: GenericVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Ground
|
||||
AutoTarget:
|
||||
ScanRadius: 4
|
||||
AttackMove:
|
||||
HiddenUnderFog:
|
||||
GainsExperience:
|
||||
GivesExperience:
|
||||
Valued:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Viceroid
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
AttackWander:
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
389
mods/cnc-classic/rules/defaults.yaml
Normal file
389
mods/cnc-classic/rules/defaults.yaml
Normal file
@@ -0,0 +1,389 @@
|
||||
^Vehicle:
|
||||
AppearsOnRadar:
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Mobile:
|
||||
Crushes: crate
|
||||
TerrainSpeeds:
|
||||
Clear: 25
|
||||
Rough: 25
|
||||
Road: 25
|
||||
Tiberium: 25
|
||||
BlueTiberium: 25
|
||||
Beach: 25
|
||||
ROT: 5
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Ground
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
Repairable:
|
||||
Passenger:
|
||||
CargoType: Vehicle
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
AttackMove:
|
||||
AcceptsCloakCrate:
|
||||
WithSmoke:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSmall
|
||||
|
||||
^Tank:
|
||||
AppearsOnRadar:
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Mobile:
|
||||
Crushes: wall, crate, infantry
|
||||
TerrainSpeeds:
|
||||
Clear: 25
|
||||
Rough: 25
|
||||
Road: 25
|
||||
Tiberium: 25
|
||||
BlueTiberium: 25
|
||||
Beach: 25
|
||||
ROT: 5
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Ground
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
Passenger:
|
||||
CargoType: Vehicle
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
AttackMove:
|
||||
AcceptsCloakCrate:
|
||||
WithSmoke:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSmall
|
||||
|
||||
^Helicopter:
|
||||
AppearsOnRadar:
|
||||
UseLocation: yes
|
||||
TargetableUnit:
|
||||
TargetTypes: Air
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
Helicopter:
|
||||
RepairBuildings: fix
|
||||
RearmBuildings: hpad
|
||||
LandWhenIdle: false
|
||||
Buildable:
|
||||
Queue: Aircraft
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
|
||||
^Infantry:
|
||||
AppearsOnRadar:
|
||||
Health:
|
||||
Radius: 3
|
||||
Armor:
|
||||
Type: None
|
||||
RevealsShroud:
|
||||
# Range: 4
|
||||
Range: 3
|
||||
# default range value for infantry is 1 in C&C, but OpenRA renders vision slightly differently.
|
||||
AutoTarget:
|
||||
ScanRadius: 4
|
||||
Mobile:
|
||||
Crushes: crate
|
||||
SharesCell: true
|
||||
TerrainSpeeds:
|
||||
Clear: 90
|
||||
Rough: 90
|
||||
Road: 90
|
||||
Tiberium: 90
|
||||
PathingCost: 1000
|
||||
BlueTiberium: 90
|
||||
PathingCost: 1000
|
||||
Beach: 90
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: GenericVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Ground
|
||||
Buildable:
|
||||
Queue: Infantry
|
||||
TakeCover:
|
||||
BarrelOffset: 0,-2,0,4
|
||||
RenderInfantryProne:
|
||||
AttackMove:
|
||||
Passenger:
|
||||
CargoType: Infantry
|
||||
PoisonedByTiberium:
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
SpawnViceroid:
|
||||
Probability: 2
|
||||
CrushableInfantry:
|
||||
DetectCloaked:
|
||||
Range: 1
|
||||
|
||||
^CivInfantry:
|
||||
Inherits: ^Infantry
|
||||
-Buildable:
|
||||
-AutoTarget:
|
||||
-TakeCover:
|
||||
-RenderInfantryProne:
|
||||
AppearsOnRadar:
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: CivilianMaleVoice
|
||||
Bounds: 12,17,0,-9
|
||||
Valued:
|
||||
Cost: 10
|
||||
Tooltip:
|
||||
Name: Civilian
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
# HP: 25
|
||||
HP: 5
|
||||
RevealsShroud:
|
||||
Range: 3 #arbitrary. Assuming it should be 1, like infantry.
|
||||
# In practice, it seems that OpenRA renders vision range differently. Assuming it should be 1 for this unit.
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Pistol
|
||||
ActorLostNotification:
|
||||
Notification: civdead1.aud
|
||||
NotifyAll: true
|
||||
ScaredyCat:
|
||||
RenderInfantryPanic:
|
||||
AttackMove:
|
||||
JustMove: yes
|
||||
CrushableInfantry:
|
||||
|
||||
^Plane:
|
||||
AppearsOnRadar:
|
||||
UseLocation: yes
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: GenericVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Air
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
|
||||
^Ship:
|
||||
AppearsOnRadar:
|
||||
Mobile:
|
||||
Crushes: crate
|
||||
TerrainSpeeds:
|
||||
Water: 100
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Voice: GenericVoice
|
||||
TargetableUnit:
|
||||
TargetTypes: Ground, Water
|
||||
ActorLostNotification:
|
||||
Notification: unitlost.aud
|
||||
AttackMove:
|
||||
|
||||
^Building:
|
||||
AppearsOnRadar:
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Priority: 3
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground
|
||||
Armor:
|
||||
Type: Wood
|
||||
RepairableBuilding:
|
||||
RepairPercent: 40
|
||||
RepairStep: 14
|
||||
Building:
|
||||
Dimensions: 1,1
|
||||
Footprint: x
|
||||
BuildSounds: constru2.aud, hvydoor1.aud
|
||||
SellSounds: cashturn.aud
|
||||
TerrainTypes: Clear,Road
|
||||
SoundOnDamageTransition:
|
||||
DamagedSound: xplos.aud
|
||||
DestroyedSound: crumble.aud
|
||||
Buildable:
|
||||
Queue: Building
|
||||
GivesBuildableArea:
|
||||
RenderBuilding:
|
||||
WithBuildingExplosion:
|
||||
DeadBuildingState:
|
||||
EmitInfantryOnSell:
|
||||
ValuePercent: 40
|
||||
ActorTypes: e6,e1
|
||||
MustBeDestroyed:
|
||||
CaptureNotification@GDI:
|
||||
Race: gdi
|
||||
Notification: gdicapt1.aud
|
||||
CaptureNotification@NOD:
|
||||
Race: nod
|
||||
Notification: nodcapt1.aud
|
||||
ActorLostNotification:
|
||||
Notification: strclost.aud
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
AutoTargetIgnore:
|
||||
ShakeOnDeath:
|
||||
Sellable:
|
||||
Capturable:
|
||||
CaptureCompleteTime: 0
|
||||
CapturableBar:
|
||||
|
||||
^CivBuilding:
|
||||
Inherits: ^Building
|
||||
-DeadBuildingState:
|
||||
-Buildable:
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Wood
|
||||
Building:
|
||||
RenderBuilding:
|
||||
WithBuildingExplosion:
|
||||
-RepairableBuilding:
|
||||
-Capturable:
|
||||
-CapturableBar:
|
||||
-Sellable:
|
||||
Tooltip:
|
||||
Name: Civilian Building
|
||||
|
||||
^CivBuildingHusk:
|
||||
AppearsOnRadar:
|
||||
Building:
|
||||
Dimensions: 1,1
|
||||
Footprint: x
|
||||
RenderBuilding:
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
Tooltip:
|
||||
Name: Civilian Building (Destroyed)
|
||||
|
||||
^TechBuilding:
|
||||
Inherits: ^CivBuilding
|
||||
Capturable:
|
||||
CaptureCompleteTime: 0
|
||||
CapturableBar:
|
||||
RepairableBuilding:
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
|
||||
^CivField:
|
||||
Inherits: ^CivBuilding
|
||||
-Selectable:
|
||||
Tooltip:
|
||||
Name: Field
|
||||
-WithBuildingExplosion:
|
||||
|
||||
^CivFieldHusk:
|
||||
AppearsOnRadar:
|
||||
Building:
|
||||
Dimensions: 1,1
|
||||
Footprint: _
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
Tooltip:
|
||||
Name: Field (Destroyed)
|
||||
BelowUnits:
|
||||
|
||||
^Wall:
|
||||
AppearsOnRadar:
|
||||
Building:
|
||||
Dimensions: 1,1
|
||||
Footprint: x
|
||||
BuildSounds: hvydoor1.aud
|
||||
Adjacent: 7
|
||||
TerrainTypes: Clear,Road
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground, Wall
|
||||
Wall:
|
||||
CrushClasses: wall
|
||||
CrushSound: sandbag2.aud
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Priority: 1
|
||||
RenderBuildingWall:
|
||||
HasMakeAnimation: false
|
||||
Palette: staticterrain
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
AutoTargetIgnore:
|
||||
Sellable:
|
||||
|
||||
^HeavyWall:
|
||||
AppearsOnRadar:
|
||||
Building:
|
||||
Dimensions: 1,1
|
||||
Footprint: x
|
||||
BuildSounds: hvydoor1.aud
|
||||
Adjacent: 7
|
||||
TerrainTypes: Clear,Road
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground, Wall
|
||||
Wall:
|
||||
CrushClasses: wall
|
||||
CrushSound: sandbag2.aud
|
||||
LineBuild:
|
||||
Range: 8
|
||||
SelectionDecorations:
|
||||
Selectable:
|
||||
Priority: 1
|
||||
RenderBuildingWall:
|
||||
HasMakeAnimation: false
|
||||
Palette: staticterrain
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
AutoTargetIgnore:
|
||||
Sellable:
|
||||
|
||||
^Tree:
|
||||
Tooltip:
|
||||
Name: Tree
|
||||
RenderBuilding:
|
||||
Palette: staticterrain
|
||||
Building:
|
||||
Footprint: __ x_
|
||||
Dimensions: 2,2
|
||||
AppearsOnRadar:
|
||||
RadarColorFromTerrain:
|
||||
Terrain: Tree
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
|
||||
^Rock:
|
||||
Tooltip:
|
||||
Name: Rock
|
||||
RenderBuilding:
|
||||
Palette: staticterrain
|
||||
Building:
|
||||
Footprint: __ x_
|
||||
Dimensions: 2,2
|
||||
AppearsOnRadar:
|
||||
RadarColorFromTerrain:
|
||||
Terrain: Tree
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
|
||||
^Bridge:
|
||||
Tooltip:
|
||||
Name: Bridge
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground, Water
|
||||
BelowUnits:
|
||||
Health:
|
||||
HP: 500
|
||||
SoundOnDamageTransition:
|
||||
DamagedSound: xplos.aud
|
||||
DestroyedSound: xplobig4.aud
|
||||
Building:
|
||||
Footprint: ______ ______ ______ ______
|
||||
Dimensions: 6,4
|
||||
210
mods/cnc-classic/rules/infantry.yaml
Normal file
210
mods/cnc-classic/rules/infantry.yaml
Normal file
@@ -0,0 +1,210 @@
|
||||
E1:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 100
|
||||
Tooltip:
|
||||
Name: Minigunner
|
||||
Description: General-purpose infantry.\n Strong vs Infantry\n Weak vs Vehicles
|
||||
Icon: e1icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
Owner: gdi, nod
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 50
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M16
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3,idle4
|
||||
|
||||
E2:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 160
|
||||
Tooltip:
|
||||
Name: Grenadier
|
||||
Description: Infantry armed with grenades. \n Strong vs Buildings, Infantry\n Weak vs Vehicles
|
||||
Icon: e2icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: pyle
|
||||
Owner: gdi
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 50
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Grenade
|
||||
PrimaryOffset: 0,0,0,-10
|
||||
FireDelay: 15
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
Explodes:
|
||||
Weapon: GrenadierExplode
|
||||
Chance: 50
|
||||
|
||||
E3:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Rocket Soldier
|
||||
Description: Anti-tank/Anti-aircraft infantry. \n Strong vs Tanks, Aircraft\n Weak vs Infantry
|
||||
Icon: e3icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Owner: nod, gdi
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 3
|
||||
TerrainSpeeds:
|
||||
Clear: 100
|
||||
Rough: 100
|
||||
Road: 100
|
||||
Tiberium: 100
|
||||
PathingCost: 1000
|
||||
BlueTiberium: 100
|
||||
PathingCost: 1000
|
||||
Beach: 100
|
||||
Health:
|
||||
HP: 25
|
||||
RevealsShroud:
|
||||
Range: 3
|
||||
# range value is 1 in C&C, but OpenRA renders vision slightly differently
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Rockets
|
||||
PrimaryOffset: 1,-6,0,-8
|
||||
FireDelay: 5
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
|
||||
E4:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 200
|
||||
Tooltip:
|
||||
Name: Flamethrower
|
||||
Description: Advanced Anti-infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
|
||||
Icon: e4icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Owner: nod
|
||||
Prerequisites: hand
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 70
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Flamethrower
|
||||
PrimaryOffset: 0,-2,2,-4
|
||||
FireDelay: 3
|
||||
WithMuzzleFlash:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
#explodes somehow
|
||||
|
||||
E5:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Chem Warrior
|
||||
Description: Advanced Anti-infantry unit.\n Strong vs Infantry\n Weak vs Vehicles
|
||||
Icon: e5icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Owner: nod
|
||||
Prerequisites: tmpl
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 4
|
||||
TerrainSpeeds:
|
||||
Tiberium: 100
|
||||
PathingCost: 100
|
||||
BlueTiberium: 100
|
||||
PathingCost: 100
|
||||
Health:
|
||||
HP: 70
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
PrimaryOffset: 0,-2,2,-9
|
||||
FireDelay: 3
|
||||
WithMuzzleFlash:
|
||||
-PoisonedByTiberium:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
|
||||
E6:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Engineer
|
||||
Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything
|
||||
Icon: e6icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Owner: gdi,nod
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 25
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# range value is 2 in C&C, but OpenRA renders vision slightly differently
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
EngineerRepair:
|
||||
Captures:
|
||||
CaptureTypes: building, husk
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
JustMove: true
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
|
||||
RMBO:
|
||||
Inherits: ^Infantry
|
||||
Valued:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Icon: rmboicnh
|
||||
Name: Commando
|
||||
Description: Elite sniper infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Owner: gdi, nod
|
||||
Prerequisites: techbuilding
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Voice: CommandoVoice
|
||||
Mobile:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 100
|
||||
Passenger:
|
||||
PipType: Red
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
# range value is 5 in C&C, but OpenRA renders vision slightly differently
|
||||
AutoTarget:
|
||||
ScanRadius: 5
|
||||
C4Demolition:
|
||||
C4Delay: 45
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Sniper
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3
|
||||
AnnounceOnBuild:
|
||||
AnnounceOnKill:
|
||||
65
mods/cnc-classic/rules/ships.yaml
Normal file
65
mods/cnc-classic/rules/ships.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
BOAT:
|
||||
Inherits: ^Ship
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Gunboat
|
||||
Icon: boaticnh
|
||||
Health:
|
||||
HP: 700
|
||||
Armor:
|
||||
Type: Heavy
|
||||
Mobile:
|
||||
InitialFacing:64
|
||||
ROT: 4
|
||||
Speed: 2
|
||||
OnRails: true
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Turreted:
|
||||
ROT: 7
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: BoatMissile
|
||||
PrimaryOffset: 0,-15,0,-4
|
||||
PrimaryLocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
||||
RenderGunboat:
|
||||
AutoTarget:
|
||||
AllowMovement: false
|
||||
WithSmoke:
|
||||
|
||||
LST:
|
||||
Inherits: ^Ship
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Landing Craft
|
||||
Mobile:
|
||||
Crushes: crate
|
||||
TerrainSpeeds:
|
||||
Clear: 100
|
||||
Rough: 100
|
||||
Road: 100
|
||||
Water: 100
|
||||
Tiberium: 100
|
||||
BlueTiberium: 100
|
||||
Beach: 100
|
||||
River: 100
|
||||
InitialFacing:0
|
||||
ROT: 4
|
||||
Speed: 10
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
RenderUnit:
|
||||
RenderCargo:
|
||||
-Selectable:
|
||||
Cargo:
|
||||
Types: Infantry, Vehicle
|
||||
MaxWeight: 5
|
||||
PipCount: 5
|
||||
AttackMove:
|
||||
JustMove: true
|
||||
|
||||
810
mods/cnc-classic/rules/structures.yaml
Normal file
810
mods/cnc-classic/rules/structures.yaml
Normal file
@@ -0,0 +1,810 @@
|
||||
FACT:
|
||||
Inherits: ^Building
|
||||
-Buildable:
|
||||
Valued:
|
||||
Cost: 5000
|
||||
Tooltip:
|
||||
Name: Construction Yard
|
||||
Icon: mcvicnh
|
||||
Description: Builds structures
|
||||
Building:
|
||||
Power: 15
|
||||
Footprint: xxx xxx
|
||||
Dimensions: 3,2
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Production:
|
||||
Produces: Building,Defense
|
||||
Transforms:
|
||||
IntoActor: mcv
|
||||
Offset:1,1
|
||||
Facing: 108
|
||||
BaseBuilding:
|
||||
ProductionBar:
|
||||
Bib:
|
||||
|
||||
NUKE:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Power Plant
|
||||
Icon: nukeicnh
|
||||
Description: Provides power for other structures
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anypower
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: 100
|
||||
Footprint: x_ xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 400
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
|
||||
PROC:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Tiberium Refinery
|
||||
Icon: procicnh
|
||||
Description: Processes raw Tiberium to sell it for cash.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: anypower
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: -30
|
||||
Footprint: _x_ xxx ===
|
||||
Dimensions: 3,3
|
||||
Health:
|
||||
HP: 900
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
TiberiumRefinery:
|
||||
DockOffset: 0,2
|
||||
TickLifetime: 30
|
||||
TickVelocity: 1
|
||||
TickRate: 125
|
||||
StoresOre:
|
||||
PipColor: Green
|
||||
PipCount: 10
|
||||
Capacity: 1000
|
||||
Selectable:
|
||||
Bounds: 73,72
|
||||
CustomSellValue:
|
||||
Value: 600
|
||||
CustomBuildTimeValue:
|
||||
Value: 900
|
||||
FreeActor:
|
||||
Actor: HARV
|
||||
InitialActivity: FindResources
|
||||
SpawnOffset: 1,2
|
||||
Facing: 64
|
||||
-RenderBuilding:
|
||||
RenderBuildingRefinery:
|
||||
|
||||
NUK2:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 700
|
||||
Tooltip:
|
||||
Name: Advanced Power Plant
|
||||
Icon:nuk2icnh
|
||||
Description: Provides more power, cheaper than the \nstandard Power Plant
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anypower
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: nuke
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: 200
|
||||
Footprint: x_ xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 600
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
|
||||
SILO:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 150
|
||||
Tooltip:
|
||||
Name: Tiberium Silo
|
||||
Icon: siloicnh
|
||||
Description: Stores processed Tiberium
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 15
|
||||
Prerequisites: proc
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: -10
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
GivesBuildableArea:
|
||||
Health:
|
||||
HP: 300
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
RenderBuildingSilo:
|
||||
StoresOre:
|
||||
PipCount: 15
|
||||
PipColor: Green
|
||||
Capacity: 1500
|
||||
Selectable:
|
||||
Bounds: 49,24
|
||||
-RenderBuilding:
|
||||
-EmitInfantryOnSell:
|
||||
Bib:
|
||||
|
||||
PYLE:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Barracks
|
||||
Icon: pyleicnh
|
||||
Description: Trains infantry
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: barracks
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: anypower
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -20
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
RallyPoint:
|
||||
Exit@1:
|
||||
SpawnOffset: -10,2
|
||||
ExitCell: 0,1
|
||||
Exit@2:
|
||||
SpawnOffset: 7,7
|
||||
ExitCell: 1,1
|
||||
Production:
|
||||
Produces: Infantry
|
||||
ProductionBar:
|
||||
|
||||
HAND:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Hand of Nod
|
||||
Icon: handicnh
|
||||
Description: Trains infantry
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: barracks
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: anypower
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -20
|
||||
Footprint: __ xx xx
|
||||
Dimensions: 2,3
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
RallyPoint:
|
||||
Exit@1:
|
||||
SpawnOffset: 12,24
|
||||
ExitCell: 1,2
|
||||
Production:
|
||||
Produces: Infantry
|
||||
ProductionBar:
|
||||
|
||||
AFLD:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Airstrip
|
||||
Icon: afldicnh
|
||||
Description: Provides a dropzone for vehicle reinforcements
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: vehicleproduction
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: proc
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -30
|
||||
Footprint: xxxx xxxx
|
||||
Dimensions: 4,2
|
||||
Health:
|
||||
HP: 1000
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
# Range: 5
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
RallyPoint:
|
||||
RallyPoint: 4,2
|
||||
BelowUnits:
|
||||
Exit@1:
|
||||
SpawnOffset: -24,0
|
||||
ExitCell: 3,1
|
||||
ProductionAirdrop:
|
||||
Produces: Vehicle
|
||||
ProductionBar:
|
||||
|
||||
WEAP:
|
||||
#light
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Weapons Factory
|
||||
Icon: weapicnh
|
||||
Description: Assembly point for vehicle reinforcements
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: vehicleproduction
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: proc
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -30
|
||||
Footprint: ___ xxx ===
|
||||
Dimensions: 3,3
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
-RenderBuilding:
|
||||
RenderBuildingWarFactory:
|
||||
RallyPoint:
|
||||
RallyPoint: 0,3
|
||||
Exit@1:
|
||||
SpawnOffset: -8,-8
|
||||
ExitCell: 0,2
|
||||
Production:
|
||||
Produces: Vehicle
|
||||
ProductionBar:
|
||||
|
||||
HPAD.GDI:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 1500
|
||||
CustomSellValue:
|
||||
Value: 300
|
||||
Tooltip:
|
||||
Name: Helipad (GDI)
|
||||
Icon:hpadicnh
|
||||
Description: Produces and reloads helicopters
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: hpad
|
||||
RenderBuilding:
|
||||
Image: hpad
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: barracks
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -10
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
FreeActor:
|
||||
Actor: ORCA
|
||||
Facing: 3
|
||||
SpawnOffset: 1,2
|
||||
Exit@1:
|
||||
# SpawnOffset: 0,0
|
||||
SpawnOffset: 0,-6
|
||||
Production:
|
||||
Produces: Aircraft
|
||||
BelowUnits:
|
||||
Reservable:
|
||||
RepairsUnits:
|
||||
RallyPoint:
|
||||
ProductionBar:
|
||||
Bib:
|
||||
|
||||
HPAD.NOD:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 1500
|
||||
CustomSellValue:
|
||||
Value: 300
|
||||
Tooltip:
|
||||
Name: Helipad (Nod)
|
||||
Icon:hpadicnh
|
||||
Description: Produces and reloads helicopters
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: hpad
|
||||
RenderBuilding:
|
||||
Image: hpad
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: barracks
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -10
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
FreeActor:
|
||||
Actor: HELI
|
||||
SpawnOffset: 1,1
|
||||
Exit@1:
|
||||
SpawnOffset: 0,0
|
||||
# SpawnOffset: 0,-6
|
||||
Production:
|
||||
Produces: Aircraft
|
||||
BelowUnits:
|
||||
Reservable:
|
||||
RepairsUnits:
|
||||
RallyPoint:
|
||||
ProductionBar:
|
||||
Bib:
|
||||
|
||||
HQ:
|
||||
RequiresPower:
|
||||
CanPowerDown:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Communications Center
|
||||
Icon: hqicnh
|
||||
Description: Provides an overview of the battlefield.\n Requires power to operate.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 70
|
||||
Prerequisites: proc
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: -40
|
||||
Footprint: x_ xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 1000
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
# Range: 10
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
ProvidesRadar:
|
||||
|
||||
FIX:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Repair Facility
|
||||
Icon: fixicnh
|
||||
Description: Repairs vehicles and allows the\nconstruction of additional bases.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 80
|
||||
Prerequisites: vehicleproduction
|
||||
Owner: gdi,nod
|
||||
Building:
|
||||
Power: -30
|
||||
Footprint: _x_ xxx _x_
|
||||
Dimensions: 3,3
|
||||
Health:
|
||||
HP: 800
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
BelowUnits:
|
||||
Reservable:
|
||||
RepairsUnits:
|
||||
RallyPoint:
|
||||
|
||||
EYE:
|
||||
#wood
|
||||
RequiresPower:
|
||||
CanPowerDown:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 2800
|
||||
Tooltip:
|
||||
Name: Advanced Communications Center
|
||||
Icon: eyeicnh
|
||||
Description: Provides access to the Ion Cannon.\n Requires power to operate.
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: techbuilding
|
||||
Buildable:
|
||||
BuildPaletteOrder: 100
|
||||
Prerequisites: hq
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -200
|
||||
Footprint: x_ xx
|
||||
Dimensions: 2,2
|
||||
Health:
|
||||
HP: 1000
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
# Range: 10
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
ProvidesRadar:
|
||||
IonCannonPower:
|
||||
Image: ionicnh
|
||||
ChargeTime: 280
|
||||
Description: Ion Cannon
|
||||
LongDesc: Initiate an Ion Cannon strike.\nApplies instant damage to a small area.
|
||||
BeginChargeSound: ionchrg1.aud
|
||||
EndChargeSound: ionredy1.aud
|
||||
LaunchSound: ion1.aud
|
||||
SelectTargetSound: select1.aud
|
||||
SupportPowerChargeBar:
|
||||
|
||||
TMPL:
|
||||
RequiresPower:
|
||||
CanPowerDown:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 3000
|
||||
Tooltip:
|
||||
Name: Temple of Nod
|
||||
Icon: tmplicnh
|
||||
Description: Place of worship and secret missile silo.\nRequires power to operate.
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: techbuilding
|
||||
Buildable:
|
||||
BuildPaletteOrder: 100
|
||||
Prerequisites: hq
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -150
|
||||
Footprint: ___ xxx xxx
|
||||
Dimensions: 3,3
|
||||
Health:
|
||||
HP: 2000
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from what we want for now, to properly emulate
|
||||
Bib:
|
||||
NukePower:
|
||||
Image: atomicnh
|
||||
ChargeTime: 405
|
||||
Description: Nuclear Strike
|
||||
LongDesc: Launch a tactical nuke.\nApplies heavy damage over a large area.
|
||||
BeginChargeSound:
|
||||
EndChargeSound: nukavail.aud
|
||||
SelectTargetSound: select1.aud
|
||||
LaunchSound: nukemisl.aud
|
||||
MissileWeapon: atomic
|
||||
SupportPowerChargeBar:
|
||||
|
||||
OBLI:
|
||||
RequiresPower:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Obelisk of Light
|
||||
Icon:obliicnh
|
||||
Description: Advanced base defense. Requires power\nto operate.\n Strong vs Tanks, Infantry\n Weak vs Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: hq
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -150
|
||||
Footprint: _ x
|
||||
Dimensions: 1,2
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 9
|
||||
# Range: 5
|
||||
# RevealShroud range was set to equal 1 + its weapon range (due to possible rendering issues with shroud for OpenRA).
|
||||
# (Range of Obelisk laser is 7.5)
|
||||
RenderBuildingCharge:
|
||||
ChargeAudio: obelpowr.aud
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Laser
|
||||
PrimaryOffset: 0,0,-2,-17
|
||||
FireDelay: 8
|
||||
Turreted:
|
||||
ROT:255
|
||||
AutoTarget:
|
||||
-RenderBuilding:
|
||||
RenderRangeCircle:
|
||||
-EmitInfantryOnSell:
|
||||
# RenderDetectionCircle:
|
||||
DetectCloaked:
|
||||
Range: 5
|
||||
|
||||
CYCL:
|
||||
Inherits: ^Wall
|
||||
Valued:
|
||||
Cost: 75
|
||||
# CustomSellValue:
|
||||
# Value: 0
|
||||
Tooltip:
|
||||
Name: Chain Link Barrier
|
||||
Icon:cyclicnh
|
||||
Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: fact
|
||||
Owner: gdi, nod
|
||||
Health:
|
||||
HP: 50
|
||||
Armor:
|
||||
Type: Wall
|
||||
|
||||
SBAG:
|
||||
Inherits: ^Wall
|
||||
Valued:
|
||||
Cost: 50
|
||||
# CustomSellValue:
|
||||
# Value: 0
|
||||
Tooltip:
|
||||
Name: Sandbag Barrier
|
||||
Icon:sbagicnh
|
||||
Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: fact
|
||||
Owner: gdi, nod
|
||||
Health:
|
||||
HP: 25
|
||||
Armor:
|
||||
Type: Wall
|
||||
|
||||
BRIK:
|
||||
Inherits: ^HeavyWall
|
||||
Valued:
|
||||
Cost: 100
|
||||
# CustomSellValue:
|
||||
# Value: 0
|
||||
Tooltip:
|
||||
Name: Concrete Barrier
|
||||
Icon:brikicnh
|
||||
Description: Stop units and blocks enemy fire.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: vehicleproduction
|
||||
Owner: gdi,nod
|
||||
Health:
|
||||
HP: 200
|
||||
Armor:
|
||||
Type: Concrete
|
||||
Wall:
|
||||
CrushClasses: heavywall
|
||||
-CrushSound:
|
||||
SoundOnDamageTransition:
|
||||
DestroyedSound: crumble.aud
|
||||
|
||||
GUN:
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Turret
|
||||
Icon: gunicnh
|
||||
Description: Anti-Armor base defense.\n Strong vs Tanks\n Weak vs Infantry, Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: barracks
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -20
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
# Range: 5
|
||||
# RevealShroud range was set to equal 1 + its weapon range (6) (due to possible rendering issues with shroud for OpenRA)
|
||||
Turreted:
|
||||
ROT: 12
|
||||
InitialFacing: 50
|
||||
RenderBuildingTurreted:
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
PrimaryLocalOffset: 0,4,0,-2,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
-RenderBuilding:
|
||||
-DeadBuildingState:
|
||||
RenderRangeCircle:
|
||||
# RenderDetectionCircle:
|
||||
DetectCloaked:
|
||||
Range: 5
|
||||
|
||||
SAM:
|
||||
Inherits: ^Building
|
||||
RequiresPower:
|
||||
Valued:
|
||||
Cost: 750
|
||||
Tooltip:
|
||||
Name: SAM Site
|
||||
Icon: samicnh
|
||||
Description: Anti-Air base defense.\n Strong vs Aircraft\n Weak vs Infantry, Tanks
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: hand
|
||||
Owner: nod
|
||||
Building:
|
||||
Power: -20
|
||||
Footprint: xx
|
||||
Dimensions: 2,1
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
# Range: 3
|
||||
Range: 5
|
||||
# Range set to arbitrary length more in line with what you would expect from a guard tower. (SAM missile's range is 15)
|
||||
Turreted:
|
||||
ROT: 7
|
||||
InitialFacing: 0
|
||||
RenderBuildingTurreted:
|
||||
AttackPopupTurreted:
|
||||
PrimaryWeapon: SAMMissile
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
-RenderBuilding:
|
||||
RenderRangeCircle:
|
||||
|
||||
GTWR:
|
||||
#wood
|
||||
Inherits: ^Building
|
||||
Valued:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Guard Tower
|
||||
Icon: gtwricnh
|
||||
Description: Basic defensive structure.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: barracks
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -10
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 400
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 3
|
||||
# RevealShroud range was set to equal 1 + its weapon range (due to possible rendering issues with shroud for OpenRA)
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: HighV
|
||||
PrimaryOffset: 0,0,0,-6
|
||||
PrimaryLocalOffset: 0,-6,0,0,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
DetectCloaked:
|
||||
Range: 3
|
||||
# RenderDetectionCircle:
|
||||
RenderRangeCircle:
|
||||
WithMuzzleFlash:
|
||||
Turreted:
|
||||
ROT:255
|
||||
|
||||
ATWR:
|
||||
Inherits: ^Building
|
||||
RequiresPower:
|
||||
Valued:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Advanced Guard Tower
|
||||
Icon: atwricnh
|
||||
Description: Anti-armor defensive structure.\n Strong vs Light Vehicles, Tanks\n Weak vs Infantry
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: hq
|
||||
Owner: gdi
|
||||
Building:
|
||||
Power: -20
|
||||
Footprint: _ x
|
||||
Dimensions: 1,2
|
||||
-GivesBuildableArea:
|
||||
Health:
|
||||
HP: 600
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
# Range: 4
|
||||
# RevealShroud range was set to equal its weapon range +1 (due to possible rendering issues with shroud for OpenRA)
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TowerMissle
|
||||
PrimaryOffset: 0,0,5,2
|
||||
PrimaryLocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
||||
Turreted:
|
||||
ROT:255
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
DetectCloaked:
|
||||
Range: 4
|
||||
|
||||
# custom prerequisites:
|
||||
BARRACKS:
|
||||
Tooltip:
|
||||
Name: Infantry Production
|
||||
Description: Infantry Production
|
||||
|
||||
VEHICLEPRODUCTION:
|
||||
Tooltip:
|
||||
Name: Vehicle Production
|
||||
Description: Vehicle Production
|
||||
|
||||
ANYPOWER:
|
||||
Tooltip:
|
||||
Name: Power Plant
|
||||
Description: Power Plant
|
||||
|
||||
HPAD:
|
||||
Tooltip:
|
||||
Name: Helipad
|
||||
Description: Helipad
|
||||
245
mods/cnc-classic/rules/system.yaml
Normal file
245
mods/cnc-classic/rules/system.yaml
Normal file
@@ -0,0 +1,245 @@
|
||||
Player:
|
||||
TechTree:
|
||||
ClassicProductionQueue@Building:
|
||||
Type: Building
|
||||
BuildSpeed: .4
|
||||
LowPowerSlowdown: 3
|
||||
QueuedAudio: Building
|
||||
ReadyAudio: ConstructionComplete
|
||||
SpeedUp: 0.25
|
||||
MaxSpeedUp: 0.75
|
||||
ClassicProductionQueue@Defense:
|
||||
Type: Defense
|
||||
BuildSpeed: .4
|
||||
LowPowerSlowdown: 3
|
||||
QueuedAudio: Building
|
||||
ReadyAudio: ConstructionComplete
|
||||
SpeedUp: 0.25
|
||||
MaxSpeedUp: 0.75
|
||||
ClassicProductionQueue@Vehicle:
|
||||
Type: Vehicle
|
||||
BuildSpeed: .4
|
||||
LowPowerSlowdown: 3
|
||||
SpeedUp: 0.25
|
||||
MaxSpeedUp: 0.75
|
||||
ClassicProductionQueue@Infantry:
|
||||
Type: Infantry
|
||||
BuildSpeed: .4
|
||||
LowPowerSlowdown: 3
|
||||
SpeedUp: 0.25
|
||||
MaxSpeedUp: 0.75
|
||||
ClassicProductionQueue@Aircraft:
|
||||
Type: Aircraft
|
||||
BuildSpeed: .4
|
||||
LowPowerSlowdown: 3
|
||||
SpeedUp: 0.25
|
||||
MaxSpeedUp: 0.75
|
||||
PlaceBuilding:
|
||||
SupportPowerManager:
|
||||
ConquestVictoryConditions:
|
||||
PowerManager:
|
||||
AllyRepair:
|
||||
PlayerResources:
|
||||
InitialCash: 5000
|
||||
AdviceInterval: 500
|
||||
ActorGroupProxy:
|
||||
DeveloperMode:
|
||||
HackyAI@Default:
|
||||
Name:Easy AI
|
||||
BuildingFractions:
|
||||
proc: 20%
|
||||
nuke: 9%
|
||||
pyle: 5%
|
||||
hand: 5%
|
||||
hq: 4%
|
||||
nuk2: 9%
|
||||
weap: 9%
|
||||
afld: 9%
|
||||
gtwr: 5%
|
||||
gun: 5%
|
||||
atwr: 9%
|
||||
obli: 7%
|
||||
sam: 7%
|
||||
eye: 1%
|
||||
tmpl: 1%
|
||||
silo: 4%
|
||||
fix: 1%
|
||||
hpad: 2%
|
||||
UnitsToBuild:
|
||||
e1: 14%
|
||||
e3: 7%
|
||||
e2: 10%
|
||||
e4: 7%
|
||||
e5: 5%
|
||||
harv: 1%
|
||||
bggy: 5%
|
||||
bike: 40%
|
||||
ltnk: 25%
|
||||
ftnk: 10%
|
||||
arty: 60%
|
||||
stnk: 40%
|
||||
jeep: 5%
|
||||
mtnk: 20%
|
||||
msam: 40%
|
||||
htnk: 50%
|
||||
heli: 5%
|
||||
orca: 5%
|
||||
PlayerColorPalette:
|
||||
BasePalette: terrain
|
||||
RemapIndex: 176, 178, 180, 182, 184, 186, 189, 191, 177, 179, 181, 183, 185, 187, 188, 190
|
||||
DebugResourceCash:
|
||||
DebugResourceOre:
|
||||
DebugResourceOreCapacity:
|
||||
Shroud:
|
||||
BaseAttackNotifier:
|
||||
PlayerStatistics:
|
||||
|
||||
World:
|
||||
OpenWidgetAtGameStart:
|
||||
Widget: INGAME_ROOT
|
||||
ObserverWidget: OBSERVER_ROOT
|
||||
CloakPaletteEffect:
|
||||
ScreenShaker:
|
||||
WaterPaletteRotation:
|
||||
NukePaletteEffect:
|
||||
BuildingInfluence:
|
||||
ChooseBuildTabOnSelect:
|
||||
BridgeLayer:
|
||||
Bridges: bridge1, bridge2, bridge3, bridge4
|
||||
CrateSpawner:
|
||||
Minimum: 1
|
||||
Maximum: 3
|
||||
SpawnInterval: 120
|
||||
WaterChance: 0
|
||||
PaletteFromCurrentTileset@terrain:
|
||||
Name: terrain
|
||||
ShadowIndex: 4
|
||||
PaletteFromCurrentTileset@static:
|
||||
Name: staticterrain
|
||||
ShadowIndex: 4
|
||||
PaletteFromFile@chrome:
|
||||
Name: chrome
|
||||
Filename: temperat.pal
|
||||
ShadowIndex: 3
|
||||
PaletteFromFile@effect:
|
||||
Name: effect
|
||||
Filename: temperat.pal
|
||||
ShadowIndex: 4
|
||||
PaletteFromFile@colorpicker:
|
||||
Name: colorpicker
|
||||
Filename: temperat.pal
|
||||
ShadowIndex: 4
|
||||
AllowModifiers: false
|
||||
PaletteFromRGBA@shadow:
|
||||
Name: shadow
|
||||
R: 0
|
||||
G: 0
|
||||
B: 0
|
||||
A: 140
|
||||
PaletteFromRGBA@cloak:
|
||||
Name: cloak
|
||||
R: 0
|
||||
G: 0
|
||||
B: 0
|
||||
A: 140
|
||||
PaletteFromRGBA@highlight:
|
||||
Name: highlight
|
||||
R: 255
|
||||
G: 255
|
||||
B: 255
|
||||
A: 128
|
||||
PaletteFromRGBA@disabled:
|
||||
Name: disabled
|
||||
R: 0
|
||||
G: 0
|
||||
B: 0
|
||||
A: 180
|
||||
ShroudPalette:
|
||||
FogPalette:
|
||||
Country@gdi:
|
||||
Name: GDI
|
||||
Race: gdi
|
||||
Country@nod:
|
||||
Name: Nod
|
||||
Race: nod
|
||||
BibLayer:
|
||||
ResourceLayer:
|
||||
ResourceClaimLayer:
|
||||
ResourceType@green-tib:
|
||||
ResourceType: 1
|
||||
Palette: staticterrain
|
||||
TerrainType: Tiberium
|
||||
SpriteNames: ti1,ti2,ti3,ti4,ti5,ti6,ti7,ti8,ti9,ti10,ti11,ti12
|
||||
ValuePerUnit: 35
|
||||
Name: Tiberium
|
||||
PipColor: Green
|
||||
AllowedTerrainTypes: Clear,Road
|
||||
AllowUnderActors: false
|
||||
ResourceType@blue-tib:
|
||||
ResourceType: 2
|
||||
Palette: staticterrain
|
||||
TerrainType: BlueTiberium
|
||||
SpriteNames: bti1,bti2,bti3,bti4,bti5,bti6,bti7,bti8,bti9,bti10,bti11,bti12
|
||||
ValuePerUnit: 75
|
||||
Name: Blue Tiberium
|
||||
PipColor: Blue
|
||||
AllowedTerrainTypes: Clear,Road
|
||||
AllowUnderActors: false
|
||||
SmudgeLayer@SCORCH:
|
||||
Type:Scorch
|
||||
SmokePercentage:50
|
||||
Types:sc1,sc2,sc3,sc4,sc5,sc6
|
||||
Depths:1,1,1,1,1,1
|
||||
SmudgeLayer@CRATER:
|
||||
Type:Crater
|
||||
Types:cr1,cr2,cr3,cr4,cr5,cr6
|
||||
Depths:5,5,5,5,5,5
|
||||
SpawnMapActors:
|
||||
CreateMPPlayers:
|
||||
MPStartLocations:
|
||||
SpawnMPUnits:
|
||||
SpatialBins:
|
||||
BinSize: 4
|
||||
Shroud:
|
||||
PathFinder:
|
||||
ValidateOrder:
|
||||
|
||||
CRATE:
|
||||
Tooltip:
|
||||
Name: Crate
|
||||
Crate:
|
||||
Lifetime: 120
|
||||
TerrainTypes: Clear, Rough, Road, Tiberium, BlueTiberium, Beach
|
||||
GiveCashCrateAction:
|
||||
Amount: 2000
|
||||
SelectionShares: 20
|
||||
UseCashTick: yes
|
||||
RevealMapCrateAction:
|
||||
SelectionShares: 1
|
||||
Effect: reveal-map
|
||||
LevelUpCrateAction:
|
||||
SelectionShares: 20
|
||||
CloakCrateAction:
|
||||
SelectionShares: 5
|
||||
InitialDelay: 15
|
||||
CloakDelay: 125
|
||||
CloakSound: trans1.aud
|
||||
UncloakSound: appear1.aud
|
||||
Effect: cloak
|
||||
GiveMcvCrateAction:
|
||||
SelectionShares: 2
|
||||
NoBaseSelectionShares: 9001
|
||||
Unit: mcv
|
||||
RenderSimple:
|
||||
BelowUnits:
|
||||
ProximityCaptor:
|
||||
Types:Crate
|
||||
Passenger:
|
||||
|
||||
mpspawn:
|
||||
Waypoint:
|
||||
RenderEditorOnly:
|
||||
|
||||
waypoint:
|
||||
Waypoint:
|
||||
RenderEditorOnly:
|
||||
49
mods/cnc-classic/rules/tech.yaml
Normal file
49
mods/cnc-classic/rules/tech.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
# Oil Derrick
|
||||
V19:
|
||||
Inherits: ^TechBuilding
|
||||
CashTrickler:
|
||||
Building:
|
||||
Footprint: x
|
||||
Dimensions: 1,1
|
||||
Tooltip:
|
||||
Name: Oil Derrick
|
||||
LeavesHusk:
|
||||
HuskActor: V19.Husk
|
||||
|
||||
V19.Husk:
|
||||
Inherits: ^CivBuildingHusk
|
||||
WithFire:
|
||||
Building:
|
||||
Footprint: x
|
||||
Dimensions: 1,1
|
||||
Tooltip:
|
||||
Name: Oil Derrick (Destroyed)
|
||||
|
||||
# Hospital
|
||||
HOSP:
|
||||
Inherits: ^CivBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Tooltip:
|
||||
Name: Hospital
|
||||
RepairsUnits:
|
||||
|
||||
# Bio Lab
|
||||
BIO:
|
||||
Inherits: ^TechBuilding
|
||||
Building:
|
||||
Footprint: xx xx
|
||||
Dimensions: 2,2
|
||||
Tooltip:
|
||||
Name: Biological Lab
|
||||
|
||||
# Prison / Tech Center
|
||||
MISS:
|
||||
Inherits: ^CivBuilding
|
||||
RenderBuilding:
|
||||
Building:
|
||||
Footprint: xxx xxx
|
||||
Dimensions: 3,2
|
||||
Tooltip:
|
||||
Name: Tech Center
|
||||
139
mods/cnc-classic/rules/trees.yaml
Normal file
139
mods/cnc-classic/rules/trees.yaml
Normal file
@@ -0,0 +1,139 @@
|
||||
SPLIT2:
|
||||
Inherits: ^Tree
|
||||
RenderBuilding:
|
||||
Palette: staticterrain
|
||||
SeedsResource:
|
||||
ResourceType:Tiberium
|
||||
Interval: 55
|
||||
Tooltip:
|
||||
Name: Blossom Tree
|
||||
RadarColorFromTerrain:
|
||||
Terrain: Tiberium
|
||||
|
||||
SPLIT3:
|
||||
Inherits: ^Tree
|
||||
RenderBuilding:
|
||||
Palette: staticterrain
|
||||
SeedsResource:
|
||||
ResourceType:Tiberium
|
||||
Interval: 55
|
||||
Tooltip:
|
||||
Name: Blossom Tree
|
||||
RadarColorFromTerrain:
|
||||
Terrain: Tiberium
|
||||
|
||||
ROCK1:
|
||||
Inherits: ^Rock
|
||||
ROCK2:
|
||||
Inherits: ^Rock
|
||||
ROCK3:
|
||||
Inherits: ^Rock
|
||||
ROCK4:
|
||||
Inherits: ^Rock
|
||||
ROCK5:
|
||||
Inherits: ^Rock
|
||||
ROCK6:
|
||||
Inherits: ^Rock
|
||||
ROCK7:
|
||||
Inherits: ^Rock
|
||||
|
||||
T01:
|
||||
Inherits: ^Tree
|
||||
|
||||
T02:
|
||||
Inherits: ^Tree
|
||||
|
||||
T03:
|
||||
Inherits: ^Tree
|
||||
|
||||
T04:
|
||||
Inherits: ^Tree
|
||||
|
||||
T05:
|
||||
Inherits: ^Tree
|
||||
|
||||
T06:
|
||||
Inherits: ^Tree
|
||||
|
||||
T07:
|
||||
Inherits: ^Tree
|
||||
|
||||
T08:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: x_
|
||||
Dimensions: 2,1
|
||||
|
||||
T09:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: x_
|
||||
Dimensions: 2,1
|
||||
|
||||
T10:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: __ xx
|
||||
T11:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: __ xx
|
||||
|
||||
T12:
|
||||
Inherits: ^Tree
|
||||
|
||||
T13:
|
||||
Inherits: ^Tree
|
||||
|
||||
T14:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: ___ xx_
|
||||
Dimensions: 3,2
|
||||
|
||||
T15:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: ___ xx_
|
||||
Dimensions: 3,2
|
||||
|
||||
T16:
|
||||
Inherits: ^Tree
|
||||
|
||||
T17:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: ___ xx_
|
||||
Dimensions: 3,2
|
||||
T18:
|
||||
Inherits: ^Tree
|
||||
|
||||
TC01:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: ___ xx_
|
||||
Dimensions: 3,2
|
||||
|
||||
TC02:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: _x_ xx_
|
||||
Dimensions: 3,2
|
||||
|
||||
TC03:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: xx_ xx_
|
||||
Dimensions: 3,2
|
||||
|
||||
TC04:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: ____ xxx_ x___
|
||||
Dimensions: 4,3
|
||||
|
||||
TC05:
|
||||
Inherits: ^Tree
|
||||
Building:
|
||||
Footprint: __x_ xxx_ _xx_
|
||||
Dimensions: 4,3
|
||||
488
mods/cnc-classic/rules/vehicles.yaml
Normal file
488
mods/cnc-classic/rules/vehicles.yaml
Normal file
@@ -0,0 +1,488 @@
|
||||
MCV:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 5000
|
||||
Tooltip:
|
||||
Name: Mobile Construction Vehicle
|
||||
Icon: mcvicnh
|
||||
Description: Deploys into another Construction Yard.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 70
|
||||
Prerequisites: fix
|
||||
Owner: gdi,nod
|
||||
Selectable:
|
||||
Priority: 3
|
||||
Mobile:
|
||||
Speed: 12
|
||||
Health:
|
||||
HP: 600
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Transforms:
|
||||
IntoActor: fact
|
||||
Offset:-1,-1
|
||||
Facing: 108
|
||||
TransformSounds: constru2.aud, hvydoor1.aud
|
||||
NoTransformSounds: deploy1.aud
|
||||
RenderUnit:
|
||||
MustBeDestroyed:
|
||||
AttackMove:
|
||||
JustMove:true
|
||||
BaseBuilding:
|
||||
-AcceptsCloakCrate:
|
||||
Explodes:
|
||||
Weapon: McvExplode
|
||||
|
||||
HARV:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 1400
|
||||
Tooltip:
|
||||
Name: Harvester
|
||||
Icon: harvicnh
|
||||
Description: Collects Tiberium for processing.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
Prerequisites: proc
|
||||
Owner: gdi,nod
|
||||
Selectable:
|
||||
Priority: 7
|
||||
Bounds: 44,44
|
||||
Harvester:
|
||||
Resources: Tiberium, Blue Tiberium
|
||||
PipCount: 7
|
||||
Capacity: 28
|
||||
UnloadTicksPerBale: 16
|
||||
FullyLoadedSpeed: 100%
|
||||
Mobile:
|
||||
Speed: 12
|
||||
Health:
|
||||
HP: 600
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
RenderUnit:
|
||||
AttackMove:
|
||||
JustMove:true
|
||||
Explodes:
|
||||
Weapon: McvExplode
|
||||
|
||||
JEEP:
|
||||
Inherits: ^Vehicle
|
||||
Valued:
|
||||
Cost: 400
|
||||
Tooltip:
|
||||
Name: Hum-Vee
|
||||
Icon: jeepicnh
|
||||
Description: Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: weap
|
||||
Owner: gdi
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 30
|
||||
Health:
|
||||
HP: 150
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,2,0,-4
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
|
||||
APC:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 700
|
||||
Tooltip:
|
||||
Name: Armored Personnel Carrier
|
||||
Icon: apcicnh
|
||||
Description: Armored infantry transport and mobile AA\n Strong vs Aircraft\n Weak vs Tanks, Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: pyle
|
||||
Owner: gdi
|
||||
Mobile:
|
||||
ROT: 5
|
||||
Speed: 26
|
||||
Health:
|
||||
HP: 200
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,0,0,0
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Cargo:
|
||||
Types: Infantry
|
||||
MaxWeight: 5
|
||||
PipCount: 5
|
||||
UnloadFacing: 220
|
||||
|
||||
BGGY:
|
||||
Inherits: ^Vehicle
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Nod Buggy
|
||||
Icon: bggyicnh
|
||||
Description: Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Prerequisites: afld
|
||||
Owner: nod
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 30
|
||||
Health:
|
||||
HP: 140
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,1,0,-3
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
|
||||
BIKE:
|
||||
Inherits: ^Vehicle
|
||||
Valued:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Recon Bike
|
||||
Icon: bikeicnh
|
||||
Description: Fast scout vehicle, armed with \nrockets.\n Strong vs Vehicles, Aircraft\n Weak vs Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: afld
|
||||
Owner: nod
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 40
|
||||
Health:
|
||||
HP: 160
|
||||
Armor:
|
||||
Type: Wood
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
# Range: 2
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BikeRockets
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
|
||||
ARTY:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 450
|
||||
Tooltip:
|
||||
Name: Artillery
|
||||
Icon:artyicnh
|
||||
Description: Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: hq
|
||||
Owner: nod
|
||||
Mobile:
|
||||
ROT: 2
|
||||
Speed: 12
|
||||
Health:
|
||||
HP: 75
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: ArtilleryShell
|
||||
PrimaryOffset: 0,-7,0,-3
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
Weapon: UnitExplode
|
||||
EmptyWeapon: UnitExplode
|
||||
|
||||
FTNK:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 800
|
||||
Tooltip:
|
||||
Name: Flame Tank
|
||||
Icon: ftnkicnh
|
||||
Description: Heavily armored flame-throwing vehicle.\n Strong vs Infantry, Buildings\n Weak vs Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: hq
|
||||
Owner: nod
|
||||
Mobile:
|
||||
ROT: 5
|
||||
Speed: 18
|
||||
Health:
|
||||
HP: 300
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BigFlamer
|
||||
PrimaryOffset: 0,-5,3,2
|
||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
WithMuzzleFlash:
|
||||
Explodes:
|
||||
Weapon: BigNapalmExplode
|
||||
EmptyWeapon: BigNapalmExplode
|
||||
|
||||
LTNK:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Light Tank
|
||||
Icon: ltnkicnh
|
||||
Description: Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: afld
|
||||
Owner: nod
|
||||
Mobile:
|
||||
Speed: 18
|
||||
Health:
|
||||
HP: 300
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 5
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 70mm
|
||||
PrimaryRecoil: 2
|
||||
PrimaryRecoilRecovery: 0.4
|
||||
PrimaryLocalOffset: 0,3,0,-2,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
|
||||
MTNK:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 800
|
||||
Tooltip:
|
||||
Name: Medium Tank
|
||||
Icon: mtnkicnh
|
||||
Description: General-Purpose GDI Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Prerequisites: weap
|
||||
Owner: gdi
|
||||
Mobile:
|
||||
Speed: 18
|
||||
Health:
|
||||
HP: 400
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
# Range: 3
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 5
|
||||
AttackTurreted:
|
||||
# PrimaryWeapon: 120mm
|
||||
PrimaryWeapon: 105mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.6
|
||||
PrimaryLocalOffset: 0,0,0,-1,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Selectable:
|
||||
Bounds: 34,34
|
||||
|
||||
HTNK:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Mammoth Tank
|
||||
Icon: htnkicnh
|
||||
Description: Heavily armored GDI Tank.\n Strong vs Everything
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: fix
|
||||
Owner: gdi
|
||||
Mobile:
|
||||
Crushes: wall, heavywall, crate, infantry
|
||||
Speed: 12
|
||||
Health:
|
||||
HP: 600
|
||||
Armor:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 2
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 120mmDual
|
||||
SecondaryWeapon: MammothMissiles
|
||||
PrimaryLocalOffset: -5,-5,0,-10,0, 5,-5,0,-10,0
|
||||
SecondaryLocalOffset: -9,2,0,0,25, 9,2,0,0,-25
|
||||
PrimaryRecoil: 4
|
||||
SecondaryRecoil: 1
|
||||
PrimaryRecoilRecovery: 1
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
SelfHealing:
|
||||
Ticks: 10
|
||||
DamageCooldown: 200
|
||||
Explodes:
|
||||
Weapon: MammothExplode
|
||||
Selectable:
|
||||
Bounds: 40,38,0,-3
|
||||
|
||||
MSAM:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 800
|
||||
Tooltip:
|
||||
Name: Rocket Launcher
|
||||
Icon: msamicnh
|
||||
Description: Long range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Prerequisites: techbuilding
|
||||
Owner: gdi, nod
|
||||
Mobile:
|
||||
Speed: 18
|
||||
Health:
|
||||
HP: 100
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 255
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm
|
||||
PrimaryOffset: 0,6,0,-3
|
||||
PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
Weapon: MammothExplode
|
||||
|
||||
MLRS:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 750
|
||||
Tooltip:
|
||||
Name: SSM Launcher
|
||||
Icon: mlrsicnh
|
||||
Description: Long range artillery.\n Strong vs Infantry, Aircraft\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
Prerequisites: obli
|
||||
Owner: nod
|
||||
Mobile:
|
||||
Speed: 18
|
||||
Health:
|
||||
HP: 120
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Turreted:
|
||||
ROT: 5
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: HonestJohn
|
||||
SecondaryWeapon: HonestJohn
|
||||
PrimaryOffset: 0,3,0,-3
|
||||
PrimaryLocalOffset: -4,0,0,0,0
|
||||
SecondaryLocalOffset: 4,0,0,0,0
|
||||
# AlignIdleTurrets: true
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
Weapon: BigNapalmExplode
|
||||
EmptyWeapon: BigNapalmExplode
|
||||
|
||||
STNK:
|
||||
Inherits: ^Tank
|
||||
Valued:
|
||||
Cost: 900
|
||||
Tooltip:
|
||||
Name: Stealth Tank
|
||||
Icon: stnkicnh
|
||||
Description: Missile tank that can bend light around \nitself to become invisible\n Strong vs Infantry, Aircraft\n Weak vs Tanks
|
||||
Buildable:
|
||||
BuildPaletteOrder: 90
|
||||
Prerequisites: hq
|
||||
Owner: nod
|
||||
Mobile:
|
||||
Speed: 30
|
||||
Health:
|
||||
HP: 110
|
||||
Armor:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
# Range: 4
|
||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||
Cloak:
|
||||
InitialDelay: 125
|
||||
CloakDelay: 125
|
||||
CloakSound: trans1.aud
|
||||
UncloakSound: appear1.aud
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm.stnk
|
||||
PrimaryOffset: 0,-5,0,-3
|
||||
PrimaryLocalOffset: 1,0,0,0,0, -1,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
TargetableUnit:
|
||||
31
mods/cnc-classic/sequences/campaign.yaml
Normal file
31
mods/cnc-classic/sequences/campaign.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
lst:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 4
|
||||
unload:
|
||||
Start: 0
|
||||
Facings: 4
|
||||
|
||||
boat:
|
||||
left:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
left-damaged:
|
||||
Start: 32
|
||||
left-critical:
|
||||
Start: 64
|
||||
left-wake: wake
|
||||
Start: 6
|
||||
Length: 6
|
||||
right:
|
||||
Start: 96
|
||||
Facings: 32
|
||||
right-damaged:
|
||||
Start: 128
|
||||
Facings: 32
|
||||
right-critical:
|
||||
Start: 160
|
||||
Facings: 32
|
||||
right-wake: wake
|
||||
Start: 0
|
||||
Length: 6
|
||||
251
mods/cnc-classic/sequences/misc.yaml
Normal file
251
mods/cnc-classic/sequences/misc.yaml
Normal file
@@ -0,0 +1,251 @@
|
||||
fire:
|
||||
1: fire1
|
||||
Start: 0
|
||||
Length: *
|
||||
2: fire2
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
120mm:
|
||||
idle:
|
||||
Start: 0
|
||||
|
||||
smoke_m:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
loop:
|
||||
Start: 49
|
||||
Length: 42
|
||||
end:
|
||||
Start: 0
|
||||
Length: 26
|
||||
|
||||
laserfire:
|
||||
idle:veh-hit3
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
dragon:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
|
||||
smokey:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
bomb:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
missile:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
|
||||
patriot:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
|
||||
explosion:
|
||||
1: piff
|
||||
Start: 0
|
||||
Length: *
|
||||
2: piffpiff
|
||||
Start: 0
|
||||
Length: *
|
||||
3: napalm2 #napalm explosion
|
||||
Start: 0
|
||||
Length: *
|
||||
4: veh-hit3 #small vehicle explosion
|
||||
Start: 0
|
||||
Length: *
|
||||
5: veh-hit2 #grenadier pop - like artillery explosion but smaller
|
||||
Start: 0
|
||||
Length: *
|
||||
1w: piff
|
||||
Start: 0
|
||||
Length: *
|
||||
2w: piffpiff
|
||||
Start: 0
|
||||
Length: *
|
||||
3w: napalm2
|
||||
Start: 0
|
||||
Length: *
|
||||
4w: veh-hit3
|
||||
Start: 0
|
||||
Length: *
|
||||
5w: veh-hit2
|
||||
Start: 0
|
||||
Length: *
|
||||
8: art-exp1 #artillery explosion
|
||||
Start: 0
|
||||
Length: *
|
||||
big_napalm: napalm3 #biggest napalm explosion
|
||||
Start: 0
|
||||
Length: *
|
||||
veh1: veh-hit1 # resembles building explosion, but smaller. For Orcas, etc.
|
||||
Start: 0
|
||||
Length: *
|
||||
building: fball1
|
||||
Start: 0
|
||||
Length: *
|
||||
6: atomsfx
|
||||
Start: 0
|
||||
Length: *
|
||||
6w: atomsfx
|
||||
Start: 0
|
||||
Length: *
|
||||
chemball: chemball
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
rank:
|
||||
rank:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
rallypoint:
|
||||
flag:flagfly
|
||||
Start: 0
|
||||
Length: *
|
||||
circles:fpls
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
select:
|
||||
repair:
|
||||
Start: 2
|
||||
|
||||
allyrepair:
|
||||
repair:
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 160
|
||||
|
||||
crate:
|
||||
idle: wcrate
|
||||
Start: 0
|
||||
land: wcrate
|
||||
Start: 0
|
||||
|
||||
crate-effects:
|
||||
airstrike: deviator
|
||||
Start: 0
|
||||
Length: *
|
||||
nuke: missile2
|
||||
Start: 0
|
||||
Length: *
|
||||
dollar: dollar
|
||||
Start: 0
|
||||
Length: *
|
||||
reveal-map: radarcrate
|
||||
Start: 0
|
||||
Length: *
|
||||
hide-map: empulse
|
||||
Start: 0
|
||||
Length: *
|
||||
heal: healcrate
|
||||
Start: 0
|
||||
Length: *
|
||||
mine: mine
|
||||
Start: 0
|
||||
Length: *
|
||||
redskull: rapid
|
||||
Start: 0
|
||||
Length: *
|
||||
cloak: cloakcrate
|
||||
Start: 0
|
||||
Length: *
|
||||
levelup: levelup
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 200
|
||||
|
||||
miss:
|
||||
idle:
|
||||
Start: 0
|
||||
damaged-idle:
|
||||
Start: 2
|
||||
|
||||
atomicup:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
atomicdn:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
atomic:
|
||||
up: atomicup
|
||||
Start: 0
|
||||
Length: *
|
||||
down: atomicdn
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
ionsfx:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
bomblet:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
mpspawn:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
waypoint:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
clock:
|
||||
idle: hclock
|
||||
Start: 0
|
||||
Length: *
|
||||
pips:
|
||||
pip-empty:
|
||||
Start: 0
|
||||
pip-green:
|
||||
Start: 1
|
||||
pip-yellow:
|
||||
Start: 2
|
||||
pip-gray:
|
||||
Start: 3
|
||||
pip-red:
|
||||
Start: 4
|
||||
pip-blue:
|
||||
Start: 5
|
||||
groups: pdigits
|
||||
Start: 0
|
||||
Length: *
|
||||
tag-primary: hpips
|
||||
Start: 2
|
||||
|
||||
overlay:
|
||||
build-valid:
|
||||
Start: 0
|
||||
build-invalid:
|
||||
Start: 1
|
||||
target-select:
|
||||
Start: 2
|
||||
target-valid:
|
||||
Start: 0
|
||||
target-invalid:
|
||||
Start: 1
|
||||
|
||||
moveflsh:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: *
|
||||
BIN
mods/cnc-classic/uibits/buttons.png
Normal file
BIN
mods/cnc-classic/uibits/buttons.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
BIN
mods/cnc-classic/uibits/chrome-gdi.png
Normal file
BIN
mods/cnc-classic/uibits/chrome-gdi.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
BIN
mods/cnc-classic/uibits/chrome-nod.png
Normal file
BIN
mods/cnc-classic/uibits/chrome-nod.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
BIN
mods/cnc-classic/uibits/dialog.png
Normal file
BIN
mods/cnc-classic/uibits/dialog.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
mods/cnc-classic/uibits/loadscreen.png
Normal file
BIN
mods/cnc-classic/uibits/loadscreen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
mods/cnc-classic/uibits/tabs.png
Normal file
BIN
mods/cnc-classic/uibits/tabs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
755
mods/cnc-classic/weapons.yaml
Normal file
755
mods/cnc-classic/weapons.yaml
Normal file
@@ -0,0 +1,755 @@
|
||||
# cleaned up the file a bit.
|
||||
# is in order from simple to advanced: infantry, vehicles, tanks, air, sea, buildings, superweapons, misc.
|
||||
|
||||
Pistol:
|
||||
ROF: 7
|
||||
Range: 1.75
|
||||
Report: GUN18
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
Concrete: 25%
|
||||
InfDeath: 2
|
||||
Explosion: 1
|
||||
Damage: 1
|
||||
|
||||
M16:
|
||||
ROF: 20
|
||||
Range: 2
|
||||
Report: MGUN2
|
||||
ValidTargets: Ground, -Wall
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
Conrete: 25%
|
||||
Explosion: 1
|
||||
InfDeath: 1
|
||||
Damage: 15
|
||||
|
||||
Rockets:
|
||||
ROF: 60
|
||||
Range: 4
|
||||
Report: BAZOOK1
|
||||
ValidTargets: Ground, Air
|
||||
Projectile: Missile
|
||||
Arm: 0
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
# ^ 35 in 0504
|
||||
RangeLimit: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 30
|
||||
|
||||
Grenade:
|
||||
ROF: 50
|
||||
Range: 3.5
|
||||
Projectile: Bullet
|
||||
Speed: 8
|
||||
High: yes
|
||||
Angle: .1
|
||||
# weapon is "lobbed" in C&C. Looks close enough.
|
||||
Inaccuracy: 5
|
||||
# no information on inaccuracy in cncrules.ini
|
||||
Image: BOMB
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
InfDeath: 3
|
||||
Explosion: 5
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 50
|
||||
|
||||
Flamethrower:
|
||||
ROF: 50
|
||||
Range: 2
|
||||
Report: FLAMER2
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
InfDeath: 5
|
||||
ImpactSound: flamer2
|
||||
SmudgeType: Scorch
|
||||
Damage: 35
|
||||
|
||||
Chemspray:
|
||||
ROF: 70
|
||||
Range: 2
|
||||
Report: FLAMER2
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Damage: 80
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
InfDeath: 6
|
||||
# ^InfDeath was 2 in original. Chemical death looks kind of cooler, though.
|
||||
SmudgeType: Scorch
|
||||
ImpactSound: xplos
|
||||
|
||||
|
||||
Sniper:
|
||||
Report: RAMGUN2
|
||||
ROF: 40
|
||||
Range: 5.5
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Damage: 100
|
||||
Spread: 1
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 5%
|
||||
Light: 5%
|
||||
Heavy: 5%
|
||||
Concrete: 5%
|
||||
InfDeath: 1
|
||||
|
||||
|
||||
MachineGun:
|
||||
ROF: 30
|
||||
Range: 4
|
||||
Report: MGUN11
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
Concrete: 25%
|
||||
InfDeath: 2
|
||||
Explosion: 1
|
||||
Damage: 15
|
||||
|
||||
BikeRockets:
|
||||
ROF: 60
|
||||
Range: 4
|
||||
Report: BAZOOK1
|
||||
ValidTargets: Ground, Air
|
||||
Projectile: Missile
|
||||
Arm: 2
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 5
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
RangeLimit: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 30
|
||||
|
||||
BigFlamer:
|
||||
ROF: 42
|
||||
Range: 2
|
||||
Report: FLAMER2
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Burst:2
|
||||
BurstDelay: 8
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
InfDeath: 5
|
||||
# Explosion: 3
|
||||
ImpactSound: flamer2
|
||||
SmudgeType: Scorch
|
||||
Damage: 50
|
||||
|
||||
ArtilleryShell:
|
||||
ROF: 65
|
||||
Range: 6
|
||||
MinRange: 2
|
||||
Report: TNKFIRE2
|
||||
Projectile: Bullet
|
||||
Speed: 12
|
||||
High: yes
|
||||
Angle: .09
|
||||
Inaccuracy: 30
|
||||
Image: 120MM
|
||||
Warhead:
|
||||
Damage: 150
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
InfDeath: 3
|
||||
Explosion: 8
|
||||
SmudgeType: Crater
|
||||
ImpactSound: XPLOSML2
|
||||
|
||||
70mm:
|
||||
ROF: 60
|
||||
Range: 4
|
||||
Report: TNKFIRE3
|
||||
Projectile: Bullet
|
||||
Image: 120MM
|
||||
Speed: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 25
|
||||
|
||||
105mm:
|
||||
ROF: 50
|
||||
Range: 4.75
|
||||
Report: TNKFIRE4
|
||||
Projectile: Bullet
|
||||
Image: 120MM
|
||||
Speed: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 30
|
||||
|
||||
120mm:
|
||||
ROF: 80
|
||||
Range: 4.75
|
||||
Report: TNKFIRE6
|
||||
Projectile: Bullet
|
||||
Image: 120MM
|
||||
Speed: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 40
|
||||
|
||||
120mmDual:
|
||||
ROF: 72
|
||||
Range: 4.75
|
||||
Report: TNKFIRE6
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
Projectile: Bullet
|
||||
Image: 120MM
|
||||
Speed: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 40
|
||||
|
||||
MammothMissiles:
|
||||
ROF: 72
|
||||
Range: 5
|
||||
Report: ROCKET1
|
||||
ValidTargets: Ground, Air
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
Projectile: Missile
|
||||
Arm: 0
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
RangeLimit: 35
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 75
|
||||
|
||||
227mm:
|
||||
ROF: 72
|
||||
Range: 6
|
||||
# MinRange: 2
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
Report: ROCKET1
|
||||
ValidTargets: Ground, Air
|
||||
Projectile: Missile
|
||||
Arm: 2
|
||||
High: yes
|
||||
Shadow: no
|
||||
Inaccuracy: 20
|
||||
#inaccuracy only has "yes" for Heatseeker
|
||||
Angle: 0.1
|
||||
Image: DRAGON
|
||||
ROT: 5
|
||||
Trail: smokey
|
||||
Speed: 20
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
#ora InfDeath: 4
|
||||
InfDeath: 3
|
||||
Explosion: 4
|
||||
# Explosion: frag3
|
||||
ImpactSound: xplobig4
|
||||
SmudgeType: Crater
|
||||
Damage: 75
|
||||
|
||||
227mm.stnk:
|
||||
ROF: 52
|
||||
Range: 4
|
||||
# Report: ROCKET1
|
||||
Report: BZAOOK1
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
ValidTargets: Ground, Air
|
||||
Projectile: Missile
|
||||
Arm: 2
|
||||
High: no
|
||||
Shadow: yes
|
||||
Proximity: yes
|
||||
Inaccuracy: 5
|
||||
#no hard value for inaccuracy given in cncrules.ini
|
||||
Image: DRAGON
|
||||
ROT: 5
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
RangeLimit: 55
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 5
|
||||
#cnc haven't confirmed what explosion it does
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 30
|
||||
|
||||
HonestJohn:
|
||||
ROF: 200
|
||||
#fires every 14 seconds
|
||||
# fires once, then 8 seconds later, then at 16 seconds, then at 30.
|
||||
Range: 10
|
||||
Report: ROCKET1
|
||||
Projectile: Bullet
|
||||
Arm: 10
|
||||
High: yes
|
||||
Shadow: yes
|
||||
Proximity: yes
|
||||
Inaccuracy: 5
|
||||
#no inaccuracy info is provided in cncrules.ini
|
||||
Image: patriot
|
||||
Trail: smokey
|
||||
Speed: 15
|
||||
RangeLimit: 35
|
||||
Angle: .15
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
InfDeath: 5
|
||||
Explosion: 3
|
||||
# Explosion: big_napalm
|
||||
ImpactSound: flamer2
|
||||
SmudgeType: Crater
|
||||
Damage: 100
|
||||
|
||||
OrcaAGMissiles:
|
||||
ROF: 52
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
Range: 4
|
||||
Report: BAZOOK1
|
||||
ValidTargets: Ground
|
||||
Projectile: Missile
|
||||
Arm: 0
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
RangeLimit: 30
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
# Explosion: 4
|
||||
Explosion: 5
|
||||
# ^ it looks like small arty explosion in C&C Gold
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 30
|
||||
|
||||
HeliAGGun:
|
||||
ROF: 50
|
||||
# ROF: 20
|
||||
# Burst: 2
|
||||
# BurstDelay: 0
|
||||
Range: 4
|
||||
ValidTargets: Ground
|
||||
Report: gun5
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Damage: 25
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
InfDeath: 2
|
||||
Explosion: 2
|
||||
|
||||
Napalm:
|
||||
ROF: 2
|
||||
Projectile: GravityBomb
|
||||
Image: BOMBLET
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
InfDeath: 5
|
||||
Explosion: 3
|
||||
ImpactSound: flamer2
|
||||
SmudgeType: Scorch
|
||||
Damage: 100
|
||||
|
||||
BoatMissile:
|
||||
ROF: 35
|
||||
Range: 8
|
||||
Burst: 2
|
||||
BurstDelay: 7
|
||||
Report: ROCKET2
|
||||
Projectile: Missile
|
||||
Arm: 0
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 5
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 20
|
||||
RangeLimit: 60
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
InfDeath: 3
|
||||
Explosion: 4
|
||||
# Explosion: frag3
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 60
|
||||
|
||||
HighV:
|
||||
ROF: 40
|
||||
Range: 5
|
||||
Report: GUN8
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Damage: 40
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
InfDeath: 2
|
||||
Explosion: 1
|
||||
|
||||
TurretGun:
|
||||
ROF: 50
|
||||
Range: 6
|
||||
Report: TNKFIRE6
|
||||
Projectile: Bullet
|
||||
Image: 120MM
|
||||
Speed: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 40
|
||||
|
||||
SAMMissile:
|
||||
ROF: 50
|
||||
Range: 15
|
||||
Report: ROCKET2
|
||||
ValidTargets: Air
|
||||
Projectile: Missile
|
||||
Arm: 3
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Image: MISSILE
|
||||
ROT: 20
|
||||
Speed: 40
|
||||
RangeLimit: 50
|
||||
Trail: smokey
|
||||
Warhead: AP
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
InfDeath: 4
|
||||
Explosion: 4
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 50
|
||||
|
||||
TowerMissle:
|
||||
ROF: 32
|
||||
Range: 6
|
||||
Report: ROCKET2
|
||||
ValidTargets: Ground, Air
|
||||
Burst: 2
|
||||
BurstDelay: 8
|
||||
Projectile: Missile
|
||||
Arm: 2
|
||||
High: yes
|
||||
Shadow: no
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 25
|
||||
RangeLimit: 40
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 100%
|
||||
InfDeath: 3
|
||||
Explosion: 4
|
||||
# Explosion: frag3
|
||||
ImpactSound: xplos
|
||||
SmudgeType: Crater
|
||||
Damage: 60
|
||||
|
||||
Laser:
|
||||
ROF: 90
|
||||
Range: 7.5
|
||||
Charges: true
|
||||
Report: OBELRAY1
|
||||
Projectile: LaserZap
|
||||
BeamRadius: 1
|
||||
Warhead:
|
||||
Spread: 1
|
||||
InfDeath: 5
|
||||
SmudgeType: Scorch
|
||||
Damage: 200
|
||||
|
||||
IonCannon:
|
||||
Warhead@impact:
|
||||
Damage: 600
|
||||
Spread: 6
|
||||
Ore: true
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 60%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
InfDeath: 5
|
||||
Warhead@area:
|
||||
DamageModel: PerCell
|
||||
Damage: 200
|
||||
SmudgeType: Scorch
|
||||
Size: 2,1
|
||||
Ore: true
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 60%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Delay: 3
|
||||
InfDeath: 5
|
||||
|
||||
|
||||
Atomic:
|
||||
Warhead@impact:
|
||||
Damage: 1000
|
||||
Spread: 6
|
||||
Ore: true
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 60%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: 6
|
||||
InfDeath: 5
|
||||
ImpactSound: nukexplo
|
||||
Warhead@areanuke:
|
||||
DamageModel: PerCell
|
||||
Damage: 250
|
||||
SmudgeType: Scorch
|
||||
Size: 5
|
||||
Ore: true
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 60%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Delay: 3
|
||||
InfDeath: 5
|
||||
ImpactSound: xplobig4
|
||||
|
||||
Tiberium:
|
||||
ROF: 4
|
||||
Warhead:
|
||||
Spread: 1
|
||||
InfDeath: 6
|
||||
Damage: 1
|
||||
PreventProne: yes
|
||||
|
||||
TiberiumHeal:
|
||||
ROF: 4
|
||||
Warhead:
|
||||
Spread: 1
|
||||
InfDeath: 6
|
||||
Damage: -2
|
||||
PreventProne: yes
|
||||
@@ -158,6 +158,7 @@ World:
|
||||
SpatialBins:
|
||||
BinSize: 4
|
||||
Shroud:
|
||||
Fog:
|
||||
CrateSpawner:
|
||||
Minimum: 1
|
||||
Maximum: 6
|
||||
|
||||
@@ -353,6 +353,7 @@ World:
|
||||
SpatialBins:
|
||||
BinSize: 4
|
||||
Shroud:
|
||||
Fog:
|
||||
PathFinder:
|
||||
ValidateOrder:
|
||||
|
||||
|
||||
BIN
mods/ra-classic/maps/4-corners.oramap
Normal file
BIN
mods/ra-classic/maps/4-corners.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/a-pattern-of-islands.oramap
Normal file
BIN
mods/ra-classic/maps/a-pattern-of-islands.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/africa.oramap
Normal file
BIN
mods/ra-classic/maps/africa.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/alaska-anarchy.oramap
Normal file
BIN
mods/ra-classic/maps/alaska-anarchy.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/all-that-glitters....oramap
Normal file
BIN
mods/ra-classic/maps/all-that-glitters....oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/apres-peace.oramap
Normal file
BIN
mods/ra-classic/maps/apres-peace.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/arena-valley-extreme.oramap
Normal file
BIN
mods/ra-classic/maps/arena-valley-extreme.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/armourgarden.oramap
Normal file
BIN
mods/ra-classic/maps/armourgarden.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/artic-wasteland.oramap
Normal file
BIN
mods/ra-classic/maps/artic-wasteland.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/ashes-to-ashes.oramap
Normal file
BIN
mods/ra-classic/maps/ashes-to-ashes.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/australia-warlord.oramap
Normal file
BIN
mods/ra-classic/maps/australia-warlord.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/barrier-to-entry.oramap
Normal file
BIN
mods/ra-classic/maps/barrier-to-entry.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/bavarian-blast.oramap
Normal file
BIN
mods/ra-classic/maps/bavarian-blast.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/be-shore.oramap
Normal file
BIN
mods/ra-classic/maps/be-shore.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/big-fish-small-pond.oramap
Normal file
BIN
mods/ra-classic/maps/big-fish-small-pond.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/blow-holes.oramap
Normal file
BIN
mods/ra-classic/maps/blow-holes.oramap
Normal file
Binary file not shown.
BIN
mods/ra-classic/maps/booby-traps.oramap
Normal file
BIN
mods/ra-classic/maps/booby-traps.oramap
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user