From f6cd289338c64548d66e1b4f23bc1a692295c51f Mon Sep 17 00:00:00 2001 From: beedee Date: Sat, 7 Jul 2007 05:08:31 +0000 Subject: [PATCH] git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1124 993157c7-ee19-0410-b2c4-bb4e9862e678 --- OpenRa.TechTreeTest/Form1.Designer.cs | 39 + OpenRa.TechTreeTest/Form1.cs | 18 + .../OpenRa.TechTreeTest.csproj | 74 + OpenRa.TechTreeTest/Program.cs | 20 + .../Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 71 + OpenRa.TechTreeTest/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + OpenRa.TechTreeTest/TechTree.cs | 75 + rules.ini | 2979 +++++++++++++++++ 11 files changed, 3463 insertions(+) create mode 100644 OpenRa.TechTreeTest/Form1.Designer.cs create mode 100644 OpenRa.TechTreeTest/Form1.cs create mode 100644 OpenRa.TechTreeTest/OpenRa.TechTreeTest.csproj create mode 100644 OpenRa.TechTreeTest/Program.cs create mode 100644 OpenRa.TechTreeTest/Properties/AssemblyInfo.cs create mode 100644 OpenRa.TechTreeTest/Properties/Resources.Designer.cs create mode 100644 OpenRa.TechTreeTest/Properties/Resources.resx create mode 100644 OpenRa.TechTreeTest/Properties/Settings.Designer.cs create mode 100644 OpenRa.TechTreeTest/Properties/Settings.settings create mode 100644 OpenRa.TechTreeTest/TechTree.cs create mode 100644 rules.ini diff --git a/OpenRa.TechTreeTest/Form1.Designer.cs b/OpenRa.TechTreeTest/Form1.Designer.cs new file mode 100644 index 0000000000..f820b7a20c --- /dev/null +++ b/OpenRa.TechTreeTest/Form1.Designer.cs @@ -0,0 +1,39 @@ +namespace OpenRa.TechTreeTest +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Text = "Form1"; + } + + #endregion + } +} + diff --git a/OpenRa.TechTreeTest/Form1.cs b/OpenRa.TechTreeTest/Form1.cs new file mode 100644 index 0000000000..9602c31201 --- /dev/null +++ b/OpenRa.TechTreeTest/Form1.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenRa.TechTreeTest +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/OpenRa.TechTreeTest/OpenRa.TechTreeTest.csproj b/OpenRa.TechTreeTest/OpenRa.TechTreeTest.csproj new file mode 100644 index 0000000000..4a474598e2 --- /dev/null +++ b/OpenRa.TechTreeTest/OpenRa.TechTreeTest.csproj @@ -0,0 +1,74 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + 0a435def-c144-460f-bc7c-668a73a29b4c + WinExe + Properties + OpenRa.TechTreeTest + OpenRa.TechTreeTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/OpenRa.TechTreeTest/Program.cs b/OpenRa.TechTreeTest/Program.cs new file mode 100644 index 0000000000..44e7ef8b1f --- /dev/null +++ b/OpenRa.TechTreeTest/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace OpenRa.TechTreeTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/OpenRa.TechTreeTest/Properties/AssemblyInfo.cs b/OpenRa.TechTreeTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..038d70ecc1 --- /dev/null +++ b/OpenRa.TechTreeTest/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenRa.TechTreeTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("TOSHIBA")] +[assembly: AssemblyProduct("OpenRa.TechTreeTest")] +[assembly: AssemblyCopyright("Copyright © TOSHIBA 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0a435def-c144-460f-bc7c-668a73a29b4c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRa.TechTreeTest/Properties/Resources.Designer.cs b/OpenRa.TechTreeTest/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..28397356e6 --- /dev/null +++ b/OpenRa.TechTreeTest/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenRa.TechTreeTest.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRa.TechTreeTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenRa.TechTreeTest/Properties/Resources.resx b/OpenRa.TechTreeTest/Properties/Resources.resx new file mode 100644 index 0000000000..c40a448a31 --- /dev/null +++ b/OpenRa.TechTreeTest/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenRa.TechTreeTest/Properties/Settings.Designer.cs b/OpenRa.TechTreeTest/Properties/Settings.Designer.cs new file mode 100644 index 0000000000..952ab2e907 --- /dev/null +++ b/OpenRa.TechTreeTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenRa.TechTreeTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenRa.TechTreeTest/Properties/Settings.settings b/OpenRa.TechTreeTest/Properties/Settings.settings new file mode 100644 index 0000000000..abf36c5d3d --- /dev/null +++ b/OpenRa.TechTreeTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/OpenRa.TechTreeTest/TechTree.cs b/OpenRa.TechTreeTest/TechTree.cs new file mode 100644 index 0000000000..9aed014a6c --- /dev/null +++ b/OpenRa.TechTreeTest/TechTree.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; +using OpenRa.FileFormats; +using System.IO; +using System.Text.RegularExpressions; + +namespace OpenRa.TechTreeTest +{ + class TechTree + { + Dictionary buildings = new Dictionary(); + public TechTree() + { + LoadBuildings(); + LoadRules(); + } + + void LoadRules() + { + IniFile rulesFile; + rulesFile = new IniFile(File.OpenRead("rules.ini")); + foreach (string key in buildings.Keys) + { + IniSection section = rulesFile.GetSection(key); + Building b = buildings[key]; + string s = section.GetValue("Prerequisite", "").ToUpper(); + b.Prerequisites = s.Split(','); + b.TechLevel = int.Parse(section.GetValue("TechLevel", "-1")); + } + } + + void LoadBuildings() + { + foreach (string line in File.ReadAllLines("buildings.txt")) + { + Regex pattern = new Regex(@"^(\w+),([\w ]+)$"); + Match m = pattern.Match(line); + if (!m.Success) continue; + buildings.Add(m.Groups[0].Value, new Building(m.Groups[1].Value)); + } + } + } + + class Building + { + readonly string friendlyName; + + public string FriendlyName + { + get { return friendlyName; } + } + + string[] prerequisites; + + public string[] Prerequisites + { + get { return prerequisites; } + set { prerequisites = value; } + } + + int techLevel; + + public int TechLevel + { + get { return techLevel; } + set { techLevel = value; } + } + + public Building(string friendlyName) + { + this.friendlyName = friendlyName; + } + } +} diff --git a/rules.ini b/rules.ini new file mode 100644 index 0000000000..5750e949f0 --- /dev/null +++ b/rules.ini @@ -0,0 +1,2979 @@ +; RULES.INI +; If placed in game directory, it will override built in values. Values to be used as multipliers +; or percentages can be specified as either a simple floating point number (embed ".") or as a +; conventional percentage number (append "%"). Values used as cell distances or time delays +; are specified as simple floating point number. Distance values are expressed in cells. Time +; values are expressed in minutes. + +[General] + +; crates +CrateMinimum=1 ; crates are normally one per human player but never below this number +CrateMaximum=255 ; crates can never exceed this quantity +CrateRadius=3.0 ; radius (cells) for area effect crate powerup bonuses +CrateRegen=3 ; average minutes between random powerup crate regeneration +UnitCrateType=none ; specifies specific unit type for unit type crate ['none' means pick randomly] +WaterCrateChance=20% ; chance that a water crate will be generated rather than land crate [multiplay only] +SoloCrateMoney=2000 ; money to give for money crate in solo play missions +SilverCrate=HealBase ; solo play silver crate bonus +WaterCrate=Money ; solo play water crate bonus +WoodCrate=Money ; solo play wood crate bonus + +; special weapons +ChronoDuration=3 ; time that a unit will remain chronoshifted before returning to start location +ChronoKillCargo=yes ; Should cargo be destroyed when object is chronoshifted? +ChronoTechLevel=12 ; Tech level at which Chrono facility can create Chrono effect +GPSTechLevel=8 ; tech level at which GPS satelite becomes available +GapRadius=10 ; radius of gap generator (cells) +GapRegenInterval=.1 ; gap generators will regenerate their shroud at this time interval +IronCurtain=.75 ; minutes that Iron Curtain invulnerability lasts +ParaTech=5 ; tech level when free para-infantry appears from airstrip +ParabombTech=8 ; tech level that parabomb appears free with airfield +RadarJamRadius=15 ; cell radius distance that mobile radar jammer is effective +SpyPlaneTech=5 ; tech level when free spy plane appears from airstrip +BadgerBombCount=1 ; number of badgers used to drop parabombs + +; Chrono side effects +QuakeChance=20% ; percentage chance time quake will occur with each chronoshift use +QuakeDamage=33% ; percentage damage to inflict when time quake occurs +VortexChance=20% ; percent chance that chronal vortex occurs with each chronoshift use +VortexDamage=200 ; damage inflicted by vortex discharge +VortexRange=10 ; scan for victims up to this distance away [in cells] +VortexSpeed=10 ; speed of vortex movement + +; repair and refit +RefundPercent=50% ; percent of original cost to refund when building/unit is sold +ReloadRate=.04 ; minutes to reload each ammo point for aircraft or helicopters +RepairPercent=20% ; percent cost to fully repair as ratio of full cost +RepairRate=.016 ; minutes between applying repair step +RepairStep=7 ; hit points to heal per repair 'tick' for buildings +URepairPercent=20% ; [units only] percent cost to fully repair as ratio of full cost +URepairStep=10 ; [units only] hit points to heal per repair 'tick' for units + +; combat and damage +TurboBoost=1.5 ; speed multiplier for turbo-boosted weapons when firing upon aircraft +APMineDamage=1000 ; damage to inflict when anti-personnel mine explodes +AVMineDamage=1200 ; damage to inflict when anti-vehicle mine explodes +AtomDamage=1000 ; damage points when nuclear bomb explodes (regardless of source) +BallisticScatter=1.0 ; maximum scatter distance (cells) for inaccurate ballistic projectiles +BridgeStrength=1000 ; strength of bridge [smaller means more easily destroyed] +C4Delay=.03 ; minutes to delay after placing C4 before building will explode +Crush=1.5 ; if this close (cells) to crushable target, then crush instead of firing upon it (computer only) +ExpSpread=.3 ; cell damage spread per 256 damage points for exploding object types [if Explodes=yes] +FireSupress=1 ; radius from target to look for friendlies and thus discourage firing upon, if found +HomingScatter=2.0 ; maximum scatter distance (cells) for inaccurate homing projectiles +MaxDamage=1000 ; maximum damage (after adjustments) per shot +MinDamage=1 ; minimum damage (after adjustments) per shot +OreExplosive=no ; Does the harvester explode big time when destroyed? +PlayerAutoCrush=no ; Will player controlled units automatically try to crush enemy infantry? +PlayerReturnFire=no ; More aggressive return fire from player controlled objects? +PlayerScatter=no ; Will player units scatter, of their own accord, from threats and damage? +ProneDamage=50% ; when infantry is prone, damage is reduced to this percentage +TreeTargeting=no ; Automatically show target cursor when over trees? +Incoming=10 ; If an incoming projectile is as slow or slower than this, then + ; object in the target location will try to run away. Grenades and + ; parachute bombs have this characteristic. + +; income and production +BailCount=28 ; number of 'bails' carried by a harvester +BuildSpeed=.8 ; general build speed [time (in minutes) to produce a 1000 credit cost item] +BuildupTime=.06 ; average minutes that building build-up animation runs +GemValue=50 ; gem credits per 'bail' carried by a harvester +GoldValue=25 ; gold credits per 'bail' carried by a harvester +GrowthRate=.3 ; minutes between ore (Tiberium) growth +OreGrows=yes ; Does ore grow denser over time? +OreSpreads=yes ; Does ore spread into adjacent areas? +OreTruckRate=1 ; speed that harvester truck manages ore [larger means slower] +SeparateAircraft=no ; Is first helicopter to be purchased separately from helipad? +SurvivorRate=.4 ; fraction of building cost to be converted to survivors when sold + +; audio/visual map controls +AllyReveal=yes ; Allies automatically reveal radar maps to each other? +ConditionRed=25% ; when damaged to this percentage, health bar turns red +ConditionYellow=50% ; when damaged to this percentage, health bar turns yellow +DropZoneRadius=4 ; distance around drop zone flair that map reveals itself +EnemyHealth=yes ; Show enemy health bar graph when selected? +Gravity=3 ; gravity constant for ballistic projectiles +IdleActionFrequency=.1 ; average minutes between infantry performing idle actions +MessageDelay=.6 ; time duration of multiplayer messages displayed over map +MovieTime=.06 ; minutes that movie recorder will record when activated (debug version only) +NamedCivilians=no ; Show true names over civilians and civilian buildings? +SavourDelay=.03 ; delay between scenario end and ending movie [keep the delay short] +ShroudRate=4 ; minutes between each shroud creep process [0 means no shadow creep] +SpeakDelay=2 ; minutes between EVA repeating advice to the player +TimerWarning=2 ; if mission timer is less than this many minutes, then display in red +FlashLowPower=yes ; Flash the power bar when power is low? + +; computer and movement controls +CurleyShuffle=no ; Should helicopter shuffle position between shots (as in C&C)? +BaseBias=2 ; multiplier to threat target value when enemy is close to friendly base +BaseDefenseDelay=.25 ; minutes delay between sending response teams to deal with base threat +CloseEnough=2.75 ; If distance to destination less than this, then abort movement if otherwise blocked. +DamageDelay=1 ; minutes between applying trivial structure damage when low on power +GameSpeeBias=1 ; multiplier to overall game object movement speed +LZScanRadius=16 ; maximum radius to scan for alternate landing zone if otherwise occupied +MineAware=yes ; Are friendly units smart enough to avoid friendly mines? +Stray=2.0 ; radius distance (cells) that team members may stray without causing regroup action +SubmergeDelay=.02 ; forced delay that subs will remain on surface before allowing to submerge +SuspendDelay=2 ; minutes that suspended teams will remain suspended +SuspendPriority=20 ; teams with less than this priority will suspend during base defense ops +TeamDelay=.6 ; interval between checking for and creating teams + +; misc +FineDiffControl=no ; Allow 5 difficulty settings instead of only 3 settings? +MCVUndeploy=yes ; Allow construction yard to undeploy back into MCV? + + +; ******* Theme Controls ******* +; Controls when each theme becomes available in solo play. Each +; theme identifier is given a scenario and owner. The theme will +; become available at that scenario or later and for the specified +; owner only. If no owner is specified, it is presumed to be available +; for all sides. +[ThemeControl] +BIGF226M=1,Soviet +CRUS226M=1,Allies +FAC1226M=1,Soviet +HELL226M=1 +FAC2226M=2,Soviet +RUN1226M=2,Soviet +TREN226M=3,Soviet +WORK226M=3,Allies +AWAIT=4 +DENSE_R=5,Soviet +FOGGER1A=5,Allies +MUD1A=6 +RADIO2=7,Soviet +ROLLOUT=7,Allies +SNAKE=8 +TERMINAT=9,Soviet +TWIN=9,Allies +VECTOR1A=10 +SMSH226M=11 + + +; ******* Multiplayer Settings ******* +; These are the multiplayer dialog default settings. Does not apply to +; Westwood chat, only to the in-game dialogs. +[MultiplayerDefaults] +Money=10000 +MaxMoney=10000 +ShadowGrow=no +Bases=yes +OreGrows=yes +Crates=yes +AIPlayers=no +CaptureTheFlag=no + + +; ******* Special weapon charge times ******* +; The time (minutes) for recharge of these special weapons. +[Recharge] +Chrono=7 ; chronosphere +GPS=8 ; satellite radar +IronCurtain=11 ; invulnerability device +Nuke=13 ; nuclear missile +ParaBomb=14 ; parachute bombs +Paratrooper=7 ; paratroopers +Saboteur=14 ; para-saboteur +Sonar=10 ; sonar pulse +SpyPlane=3 ; recon mission + + +; ******* Object Heap Maximums ******* +; These are the absolute maximum number of these object types +; allowed in the game (at any one time). +[Maximums] +Players=8 ; ipx layer limits this to 8 maximum +Aircraft=100 +Anim=100 +Building=500 +Bullet=50 +Factory=32 ; 32 is minimum for 8 player game +Infantry=500 +Overlay=1 ; special case -- only needs one +Projectile=20 ; projectile types, not actual projectiles +Smudge=1 ; special case -- only needs one +Team=60 +TeamType=60 +Template=1 ; special case -- only needs one +Terrain=500 ; trees and rocks +TrigType=80 ; trigger types +Trigger=200 ; triggers themselves +Unit=500 +Vessel=100 +Warhead=10 ; warhead types, not actual warheads +Weapon=55 ; weapon types, not actual weapons + + +; ******* AI Controls ******* +; Computer Skirmish-Mode behavior controls. The ratio values are based on the +; number of buildings in the computer base that should be of the type specified. +; The ratio total should exceed 100% so that the base will always try to grow as +; it vainly attempts to achieve the specified percentage composition. + +; Take note: The computer AI in Red Alert is merely a warmed over version +; of the AI experiment I wrote during the unallocated time in the month +; following C&C's release. It was more than adequate at that time (even +; difficult to beat), but since Red Alert is a very different game, the skirmish +; mode AI is somewhat under-effective. In order to improve the AI +; over this initial experiment, the following controls are provided. It might +; be possible to manipulate these values to achieve a greater challenge when +; playing the computer opponent. +[AI] +AttackInterval=3 ; average delay between computer attacks +AttackDelay=5 ; average delay time before computer begins first attack +PatrolScan=.016 ; minute interval between scanning for enemys while patrolling. +CreditReserve=100 ; Structure repair will not begin if available cash falls below this amount. +PathDelay=.01 ; Delay (minutes) between retrying when path is blocked. +OreNearScan=6 ; cell radius to scan when harvesting a single patch of ore +OreFarScan=48 ; cells radius to scan when looking for a new ore patch to harvest +AutocreateTime=5 ; average minutes between creating an 'autocreate' team +InfantryReserve=3000 ; always build infantry if cash reserve is greater than this +InfantryBaseMult=1 ; build infantry if building count times this number is less than current infantry quantity +PowerSurplus=50 ; build power plants until power surplus is at least this amount +BaseSizeAdd=3 ; computer base size can be no larger than the largest human opponent, plus this quantity +RefineryRatio=.16 ; ratio of base that should be composed of refineries +RefineryLimit=4 ; never build more than this many refineries +BarracksRatio=.16 ; ratio of base that should be composed of barracks +BarracksLimit=2 ; never build more than this many barracks +WarRatio=.1 ; ratio of base that should be composed of war factories +WarLimit=2 ; never build more than this many war factories +DefenseRatio=.4 ; ratio of base that should be defensive structures +DefenseLimit=40 ; maximum number of defensive buildings to build +AARatio=.14 ; ratio of base that should be anti-aircraft defense +AALimit=10 ; maximum number of anti-aircraft buildings to build +TeslaRatio=.16 ; ratio of base that should be telsa coils +TeslaLimit=10 ; maximum number of tesla coils to build +HelipadRatio=.12 ; ratio of base that should be composed of helipads +HelipadLimit=5 ; maximum number of helipads to build +AirstripRatio=.12 ; ratio of base that should be composed of airstrips +AirstripLimit=5 ; maximum number of airstrips to build +CompEasyBonus=yes ; When more than one human in game, computer player goes to "easy" mode? +Paranoid=yes ; Will computer players ally with each other if the situation looks bleak? +PowerEmergency=75% ; sell buildings to raise power level if it falls below this percentage + + +; ******* IQ setting for computer activity ******* +; Each player (computer controlled or otherwise) is given an IQ rating that is used +; to control what the computer is allowed to automatically control. This is +; distinct from the difficulty setting. The higher the IQ setting, the more autonomous +; and intelligent the side will behave. Each ability is given a rating that +; indicates the IQ level (or above) that the ability will be granted. Because such +; abilities are automatically performed by the computer, giving a human controlled +; country a high IQ is not recommended. Otherwise the player's units will start to +; automatically "do their own thing"! A human controlled country is presumed to have +; an IQ rating of zero. A computer controlled country has an IQ of 1 or higher. +; When in skirmish mode or when multiplayer AIs are active, the computer IQ is set to +; the maximum. +[IQ] +MaxIQLevels=5 ; the maximum number of discrete IQ levels +SuperWeapons=4 ; super weapons are automatically fired by computer +Production=5 ; building/unit production is automatically controlled by computer +GuardArea=4 ; newly produced units start in guard area mode +RepairSell=1 ; allowed to choose repair or sell of damaged buildings +AutoCrush=2 ; automatically try to crush antogonists if possible +Scatter=3 ; will scatter from incoming threats [grenades and such] +ContentScan=4 ; will consider contents of transport when picking good target +Aircraft=4 ; automatically replace aircraft or helicopters +Harvester=2 ; automatically replace lost harvesters +SellBack=2 ; allowed to sell buildings + + +; ******* Country Statistics ******* +; Certain countries have special adjustments to their unit and building +; values. These are global values that affect ALL units and buildings owned +; by that country. This applies only to multiplayer games and skirmish mode. In +; normal game play, all values are "1.0". + +; Airspeed = multiplier to speed for all air units [larger means faster] (def=1.0) +; Armor = multiplier to armor strength for all units and buildings [larger means stronger] (def=1.0) +; Cost = multiplier to cost for all units and buildings [larger means costlier] (def=1.0) +; Firepower = multiplier to firepower for all weapons [larger means more damage] (def=1.0) +; Groundspeed = multiplier to speed for all ground units [larger means faster] (def=1.0) +; ROF = multiplier to Rate Of Fire for all weapons [larger means slower ROF] (def=1.0) +; BuildTime = multiplier to general object build time [larger means longer to build] (def=1.0) + +[England] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.1 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + +[Germany] +Firepower=1.1 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + +[France] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.1 +Cost=1.0 +BuildTime=1.0 + +[Ukraine] +Firepower=1.0 +Groundspeed=1.1 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + +[USSR] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=0.9 +BuildTime=1.0 + +[Greece] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + +[Turkey] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + +[Spain] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +Armor=1.0 +ROF=1.0 +Cost=1.0 +BuildTime=1.0 + + +; ******* Difficulty Settings ******* +; Game difficulty is controlled by these factors. Some of these factors will +; only affect a computer player. The computer and the player are handicapped by +; individual settings. Thus the computer may be playing at 'difficult' level while the +; player may be playing at 'easy' level. + +; Airspeed = multiplier to speed for all air units (def=1.0) +; Armor = multiplier to armor strength for all units and buildings (def=1.0) +; Cost = multiplier to cost for all units and buildings (def=1.0) +; Firepower = multiplier to firepower for all weapons (def=1.0) +; Groundspeed = multiplier to speed for all ground units (def=1.0) +; ROF = multiplier to Rate Of Fire for all weapons [larger means slower ROF] (def=1.0) +; BuildSlowdown = Should the computer build slower than the player (def=no)? +; <<< affects the computer player, not the human player >>> +; ContentScan = Should the contents of a transport be considered when picking best target (def=no)? +; RepairDelay = average delay (minutes) between initiating building repair +; BuildDelay = average delay (minutes) between initiating construction +; DestroyWalls = Allow scanning for nearby enemy walls and destroy them (def=yes)? + +[Easy] +Firepower=1.2 +Groundspeed=1.2 +Airspeed=1.2 +BuildTime=.8 +Armor=1.2 +ROF=.8 +Cost=.8 +RepairDelay=.001 +BuildDelay=.001 +DestroyWalls=yes +ContentScan=yes + +[Normal] +Firepower=1.0 +Groundspeed=1.0 +Airspeed=1.0 +BuildTime=1 +Armor=1.0 +ROF=1.0 +Cost=1.0 +RepairDelay=.02 +BuildDelay=.03 +BuildSlowdown=yes +DestroyWalls=yes +ContentScan=yes + +[Difficult] +Firepower=.8 +Groundspeed=.8 +Airspeed=.8 +BuildTime=1.0 +Armor=.8 +ROF=1.2 +Cost=1.0 +RepairDelay=.05 +BuildDelay=.1 +BuildSlowdown=yes +DestroyWalls=no + + +; ******* Unit Statistics ******* +; Specifies the characteristics of the various game objects. + +; Ammo = number of rounds carried between reloads [-1 means unlimited] (def=-1) +; Armor = the armor type of this object [none,wood,light,heavy,concrete] (def=none) +; Cloakable = Is it equipped with a cloaking device (def=no)? +; Cost = cost to build object (in credits) +; Explodes = Does it explode violently when destroyed [i.e., does it do collateral damage] (def=no)? +; GuardRange = distance to scan for enemies to attack (def=use weapon range) +; Image = name of graphic data to use for this object (def=same as object identifier) +; Invisible = Is completely and always invisible to enemy (def=no)? +; Owner = who can build this [Allies or Soviet] (def="allies,soviet", i.e., all) +; Points = point value for scoring purposes (def=0) +; Prerequisite = list of buildings needed before this can be manufactured (def=no requirement) +; Primary = primary weapon equipped with (def=none) +; Secondary = secondary weapon equipped with (def=none) +; ROT = Rate Of Turn for body (if present) and turret (if present) (def=0) +; Reload = time delay between reloads (def=0) +; SelfHealing = Does the object heal automatically up to half strength (def=no)? +; Sight = sight range, in cells (def=1) +; Strength = strength (hit points) of this object +; TechLevel = tech level required to build this [-1 means can't build] (def=-1) +; Sensors = Has sensors to detect nearby cloaked objects (def=no)? +; DoubleOwned = Can be built/owned by all countries in a multiplayer game (def=no)? +; <<< applies only to infantry types >>> +; C4 = Equipped with building sabotage explosives [presumes Infiltrate is true] (def=no)? +; Fraidycat = Is it inherently afraid and will panic easily (def=no)? +; Infiltrate = Can it enter a building like a spy or thief (def=no)? +; IsCanine = Should special case dog logic be applied to this? +; <<< applies only to moving units (not buildings) >>> +; Passengers = number of passengers it may carry (def=0) +; Speed = speed of this object [n/a for buildings] (def=0) +; <<< applies only to terrestrial driving vehicle types >>> +; Crushable = Can it be crushed by a heavy tracked vehicle (def=no)? +; Tracked = Is this vehicle tracked [as opposed to wheeled] (def=no)? +; NoMovingFire = The vehicle must stop before it can fire (def=no)? +; <<< applies only to building types >>> +; BaseNormal = Considered for building adjacency checks (def=yes)? +; Adjacent = distance allowed to place from other buildings (def=1) +; Bib = Should the building have an attached bib (def=no)? +; Capturable = Can this building be infiltrated by a spy/engineer (def=no)? +; Crewed = Does it contain a crew that can escape (def=no)? +; Power = power output [positive for output, negative for drain] (def=0) +; Powered = Does it require power to function (def=no)? +; Repairable = Can it be repaired (def=yes)? +; Storage = the number of credits this building can store (def=0) +; Unsellable = Cannot sell this building (even if it can be built)? +; WaterBound = Is this building placed on water only (def=no)? + +; ******* terrestrial driving vehicle types ******* +; SCUD launcher +[V2RL] +Prerequisite=weap,dome +Primary=SCUD +Strength=150 +Armor=light +TechLevel=4 +Sight=5 +Speed=7 +Owner=soviet +Cost=700 +Points=40 +ROT=5 +Tracked=yes +Ammo=1 +Crewed=yes +NoMovingFire=yes + +; light tank +[1TNK] +Prerequisite=weap +Primary=75mm +Strength=300 +Armor=heavy +TechLevel=4 +Sight=4 +Speed=9 +Owner=allies +Cost=700 +Points=30 +ROT=5 +Tracked=yes +Crewed=yes + +; heavy tank +[3TNK] +Prerequisite=weap +Primary=105mm +Secondary=105mm +Strength=400 +Armor=heavy +TechLevel=4 +Sight=5 +Speed=7 +Owner=soviet +Cost=950 +Points=50 +ROT=5 +Tracked=yes +Crewed=yes + +; medium tank +[2TNK] +Prerequisite=weap +Primary=90mm +Strength=400 +Armor=heavy +TechLevel=6 +Sight=5 +Speed=8 +Owner=allies +Cost=800 +Points=40 +ROT=5 +Tracked=yes +Crewed=yes + +; Mammoth tank +[4TNK] +Prerequisite=weap,stek +Primary=120mm +Secondary=MammothTusk +Strength=600 +Armor=heavy +TechLevel=10 +Sight=6 +Speed=4 +Owner=soviet +Cost=1700 +Points=60 +ROT=5 +Tracked=yes +SelfHealing=yes +Crewed=yes + +; mobile radar jammer +[MRJ] +Prerequisite=weap,dome +Strength=110 +Armor=light +TechLevel=12 +Sight=7 +Speed=9 +Owner=allies +Cost=600 +Points=30 +ROT=5 +Tracked=yes +Crewed=yes + +; mobile gap generator +[MGG] +Prerequisite=weap,atek +Strength=110 +Armor=light +TechLevel=11 +Sight=4 +Speed=9 +Owner=allies +Cost=600 +Points=40 +ROT=5 +Crewed=yes + +; mobile artillery +[ARTY] +Prerequisite=weap +Primary=155mm +Strength=75 +Armor=light +TechLevel=8 +Sight=5 +Speed=6 +Owner=allies +Cost=600 +Points=35 +ROT=2 +Tracked=yes +Crewed=yes +NoMovingFire=yes + +; harvester +[HARV] +Prerequisite=weap,proc +Strength=600 +Armor=heavy +TechLevel=1 +Sight=4 +Speed=6 +Owner=allies,soviet +Cost=1400 +Points=55 +ROT=5 +Tracked=yes +Crewed=yes +SelfHealing=yes + +; Mobile Construction Vehicle +[MCV] +Prerequisite=weap,fix +Strength=600 +Armor=light +TechLevel=11 +Sight=4 +Speed=6 +Owner=allies,soviet +Cost=2500 +Points=60 +ROT=5 +Crewed=yes + +; Ranger (as in "Ford", not "W.W. II Commando") +[JEEP] +Prerequisite=weap +Primary=M60mg +Strength=150 +Armor=light +TechLevel=3 +Sight=6 +Speed=10 +Owner=allies +Cost=600 +Points=20 +ROT=10 +Crewed=yes + +; Armored Personnel Carrier +[APC] +Prerequisite=weap,tent +Primary=M60mg +Strength=200 +Armor=heavy +TechLevel=5 +Sight=5 +Speed=10 +Owner=allies +Cost=800 +Points=25 +ROT=5 +Tracked=yes +Passengers=5 + +; mine layer +[MNLY] +Prerequisite=weap,fix +Strength=100 +Armor=heavy +TechLevel=3 +Sight=5 +Speed=9 +Owner=allies,soviet +Cost=800 +Points=50 +ROT=5 +Tracked=yes +Ammo=5 ; number of mines carried +Crewed=yes + +; convoy truck +[TRUK] +Strength=110 +Armor=light +Owner=soviet,allies +TechLevel=-1 +Sight=3 +Speed=10 +Cost=500 +Points=5 +ROT=5 +Passengers=1 + +; ******* ship types ******* +; submarine +[SS] +Prerequisite=spen +Primary=TorpTube +Strength=120 +Armor=light +TechLevel=5 +Sight=6 +Speed=6 +Owner=soviet +Cost=950 +Points=45 +ROT=7 +Cloakable=yes +Passengers=10 ; cjf hax + +; destroyer +[DD] +Prerequisite=syrd +Primary=Stinger +Secondary=DepthCharge +Strength=400 +Armor=heavy +TechLevel=7 +Sight=6 +Speed=6 +Owner=allies +Cost=1000 +Points=50 +ROT=7 +Sensors=Yes + +; cruiser +[CA] +Prerequisite=syrd,atek +Primary=8Inch +Secondary=8Inch +Strength=700 +Armor=heavy +TechLevel=10 +Sight=7 +Speed=4 +Owner=allies +Cost=2000 +Points=60 +ROT=5 +Sensors=Yes + +; transport +[LST] +Strength=350 +Armor=heavy +TechLevel=3 +Sight=6 +Speed=14 +Owner=allies,soviet +Cost=700 +Points=25 +ROT=10 +Passengers=5 + +; gun boat +[PT] +Prerequisite=syrd +Primary=2Inch +Secondary=DepthCharge +Strength=200 +Armor=heavy +TechLevel=5 +Sight=7 +Speed=9 +Owner=allies +Cost=500 +Points=30 +ROT=7 +Sensors=Yes + +; ******* infantry types ******* +; attack dog +[DOG] +Prerequisite=kenn +Primary=DogJaw +Strength=12 +;Strength=5 +Armor=none +TechLevel=3 +Sight=5 +Speed=4 +Owner=soviet +Cost=200 +Points=5 +IsCanine=yes +GuardRange=7 + +; rifle soldier +[E1] +Primary=M1Carbine +Strength=50 +Armor=none +TechLevel=1 +Sight=4 +Speed=4 +Owner=allies,soviet +Cost=100 +Points=5 + +; grenadier +[E2] +Primary=Grenade +Strength=50 +Armor=none +TechLevel=1 +Sight=4 +Speed=5 +Owner=soviet +Cost=160 +Points=10 +Explodes=yes + +; rocket soldier +[E3] +Primary=RedEye +Secondary=Dragon +Strength=45 +Armor=none +TechLevel=2 +Sight=4 +Speed=3 +Owner=allies +Cost=300 +Points=10 +DoubleOwned=yes + +; Flamethrower +[E4] +Prerequisite=stek +Primary=Flamer +Strength=40 +Armor=none +TechLevel=6 +Sight=4 +Speed=3 +Owner=soviet +Cost=300 +Points=15 +Explodes=yes + +; engineer +[E6] +Strength=25 +Armor=none +TechLevel=5 +Sight=4 +Speed=4 +Owner=soviet,allies +Cost=500 +Points=20 +Infiltrate=yes + +; spy +[SPY] +Prerequisite=dome +Strength=25 +Armor=none +TechLevel=6 +Sight=5 +Speed=4 +Owner=allies +Cost=500 +Points=15 +Infiltrate=yes + +; thief +[THF] +Prerequisite=atek +Strength=25 +Armor=none +TechLevel=11 +Sight=5 +Speed=4 +Owner=allies +Cost=500 +Points=10 +Infiltrate=yes + +; Tanya +[E7] +Prerequisite=atek +Primary=Colt45 +Secondary=Colt45 +Strength=100 +Armor=none +TechLevel=11 +Sight=6 +Speed=5 +Owner=allies,soviet +Cost=1200 +Points=25 +Infiltrate=yes +C4=yes +DoubleOwned=yes + +; field medic +[MEDI] +Primary=Heal +Strength=80 +Armor=none +TechLevel=2 +Sight=3 +Speed=4 +Owner=allies +Cost=800 +Points=15 + +; field marshal +[GNRL] +Primary=Pistol +Strength=80 +Armor=none +TechLevel=-1 +Sight=3 +Speed=5 +Owner=allies,soviet +Cost=0 +Points=15 +Infiltrate=yes + +; civilians +[C1] +Image=C1 +Primary=Pistol +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Ammo=10 +Fraidycat=yes + +[C2] +Image=C1 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C3] +Image=C2 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C4] +Image=C2 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C5] +Image=C2 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C6] +Image=C1 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C7] +Image=C1 +Primary=Pistol +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Ammo=10 +Fraidycat=yes + +[C8] +Image=C1 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C9] +Image=C1 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +[C10] +Image=C1 +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Fraidycat=yes + +; professor Einstein +[EINSTEIN] +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies +Cost=10 +Points=1 +Fraidycat=yes + +; special agent +[DELPHI] +Primary=Pistol +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 +Ammo=10 + +; special agent +[CHAN] +Strength=25 +Armor=none +TechLevel=-1 +Sight=2 +Speed=5 +Owner=allies,soviet +Cost=10 +Points=1 + +; ******* aircraft types ******* +; Badger bomber +[BADR] +Prerequisite=afld +Primary=ParaBomb +Strength=60 +Armor=light +TechLevel=-1 +Sight=0 +Speed=16 +Owner=soviet +Cost=10 +Points=20 +ROT=5 +Ammo=5 +Passengers=5 + +; spy photo-recon plane +[U2] +Prerequisite=afld +Primary=Camera +Strength=2000 +Armor=heavy +TechLevel=-1 +Sight=0 +Speed=40 +Owner=soviet +Cost=10 +Points=5 +ROT=7 +Ammo=1 ; snapshot film + +; jet attack plane +[MIG] +Prerequisite=afld +Primary=Maverick +Secondary=Maverick +Strength=50 +Armor=light +TechLevel=10 +Sight=0 +Speed=20 +Owner=soviet +Cost=1200 +Points=50 +ROT=5 +Ammo=3 +GuardRange=30 + +; prop attack plane +[YAK] +Prerequisite=afld +Primary=ChainGun +Secondary=ChainGun +Strength=60 +Armor=light +TechLevel=5 +Sight=0 +Speed=16 +Owner=soviet +Cost=800 +Points=25 +ROT=5 +Ammo=15 +Crewed=yes +GuardRange=30 + +; transport helicopter +[TRAN] +Prerequisite=hpad +Strength=90 +Armor=light +TechLevel=11 +Sight=0 +Speed=12 +Owner=soviet +Cost=1200 +Points=35 +ROT=5 +Passengers=5 + +; Longbow attack helicopter +[HELI] +Prerequisite=hpad +Primary=Hellfire +Secondary=Hellfire +Strength=225 +Armor=heavy +TechLevel=9 +Sight=0 +Speed=16 +Owner=allies +Cost=1200 +Points=50 +ROT=4 +Ammo=6 +Crewed=yes +GuardRange=30 + +; Hind attack helicopter +[HIND] +Prerequisite=hpad +Primary=ChainGun +Strength=225 +Armor=heavy +TechLevel=9 +Sight=0 +Speed=12 +Owner=soviet +Cost=1200 +Points=40 +ROT=4 +Ammo=12 +Crewed=yes +GuardRange=30 + +; ******* building types ******* +; Iron Curtain +[IRON] +Prerequisite=stek +Strength=400 +Armor=wood +TechLevel=12 +Sight=10 +Owner=soviet +Cost=2800 +Points=100 +Power=-200 +Powered=true +Capturable=true +Crewed=yes + +; forward command center +[FCOM] +Strength=400 +Armor=wood +TechLevel=-1 +Sight=10 +Owner=soviet +Cost=0 +Points=40 +Power=-200 +Bib=yes +Capturable=true +Crewed=yes + +; advanced tech center +[ATEK] +Prerequisite=weap,dome +Strength=400 +Armor=wood +TechLevel=10 +Sight=10 +Owner=allies +Cost=1500 +Points=85 +Power=-200 +Bib=yes +Capturable=true +Crewed=yes + +; paradox device +[PDOX] +Prerequisite=atek +Strength=400 +Armor=wood +TechLevel=12 +Sight=10 +Owner=allies +Cost=2800 +Points=100 +Power=-200 +Powered=true +Capturable=true +Crewed=yes + +; weapons factory +[WEAP] +Prerequisite=proc +Strength=1000 +Armor=light +TechLevel=3 +Sight=4 +Owner=soviet,allies +Cost=2000 +Points=80 +Power=-30 +Bib=yes +Capturable=true +Crewed=yes + +; ship yard +[SYRD] +Prerequisite=powr +Strength=1000 +Armor=light +TechLevel=3 +Sight=4 +Owner=allies +Cost=650 +Points=80 +Power=-30 +Adjacent=8 +WaterBound=yes +Capturable=true +BaseNormal=no + +; sub pen +[SPEN] +Prerequisite=powr +Strength=1000 +Armor=light +TechLevel=3 +Sight=4 +Owner=soviet +Cost=650 +Points=80 +Power=-30 +Adjacent=8 +WaterBound=yes +Capturable=true +BaseNormal=no + +; pill box +[PBOX] +Prerequisite=tent +Primary=Vulcan +Strength=400 +Armor=wood +TechLevel=2 +Sight=5 +Owner=allies +Cost=400 +Points=50 +Power=-15 +Sensors=yes +Crewed=yes + +; camouflaged pill box +[HBOX] +Prerequisite=tent +Primary=Vulcan +Strength=600 +Armor=wood +TechLevel=3 +Sight=5 +Owner=allies +Cost=600 +Points=60 +Power=-15 +Sensors=yes +Crewed=yes + +; Tesla coil +[TSLA] +Prerequisite=weap +Primary=TeslaZap +Strength=400 +Armor=heavy +TechLevel=7 +Sight=8 +Owner=soviet +Cost=1500 +Points=80 +Power=-150 +Ammo=3 +Powered=true +Sensors=yes +Crewed=yes + +; gun turret +[GUN] +Prerequisite=tent +Primary=TurretGun +Strength=400 +Armor=heavy +TechLevel=4 +Sight=6 +Owner=allies +Cost=600 +Points=50 +Power=-40 +Sensors=yes +Crewed=yes +ROT=12 + +; anti-aircraft artillery +[AGUN] +Prerequisite=dome +Primary=ZSU-23 +Secondary=ZSU-23 +Strength=400 +Armor=heavy +TechLevel=5 +Sight=6 +Owner=allies +Cost=600 +Points=50 +Power=-50 +Crewed=yes +ROT=15 +Powered=true + +; flame turret +[FTUR] +Prerequisite=barr +Primary=FireballLauncher +Strength=400 +Armor=heavy +TechLevel=2 +Sight=6 +Owner=soviet +Cost=600 +Points=65 +Power=-20 +Sensors=yes +Explodes=no +Crewed=yes + +; construction yard +[FACT] +Strength=1000 +Armor=heavy +TechLevel=-1 +Sight=5 +Owner=allies,soviet +Cost=2500 +Points=80 +Power=0 +Bib=yes +Capturable=true +Crewed=yes + +; refinery +[PROC] +Prerequisite=powr +Strength=900 +Armor=wood +TechLevel=1 +Sight=6 +Owner=allies,soviet +Cost=2000 +Points=80 +Power=-30 +Storage=2000 +Bib=yes +Capturable=true +Crewed=yes + +; storage silo +[SILO] +Prerequisite=proc +Strength=300 +Armor=wood +TechLevel=1 +Sight=4 +Owner=allies,soviet +Cost=150 +Points=25 +Power=-10 +Storage=1500 +Capturable=true + +; helipad +[HPAD] +Prerequisite=dome +Strength=800 +Armor=wood +TechLevel=9 +Sight=5 +Owner=allies,soviet +Cost=1500 +Points=70 +Power=-10 +Bib=yes +Capturable=true +Crewed=yes + +; radar building +[DOME] +Prerequisite=proc +Strength=1000 +Armor=wood +TechLevel=3 +Sight=10 +Owner=allies,soviet +Cost=1000 +Points=60 +Power=-40 +Bib=yes +Powered=true +Capturable=true +Sensors=yes +Crewed=yes + +; gap generator +[GAP] +Prerequisite=atek +Strength=1000 +Armor=wood +TechLevel=10 +Sight=10 +Owner=allies +Cost=500 +Points=35 +Power=-60 +Powered=true +Capturable=true +Crewed=yes + +; Surface to Air Missile launcher +[SAM] +Prerequisite=dome +Primary=Nike +Strength=400 +Armor=heavy +TechLevel=9 +Sight=5 +Owner=soviet +Cost=750 +Points=50 +Power=-20 +Crewed=yes +ROT=30 + +; big missile silo +[MSLO] +Prerequisite=stek +Primary=none +Strength=400 +Armor=heavy +TechLevel=13 +Sight=5 +Owner=soviet,allies +Cost=2500 +Points=90 +Power=-100 +Crewed=yes + +; airstrip +[AFLD] +Prerequisite=dome +Strength=1000 +Armor=heavy +TechLevel=5 +Sight=7 +Owner=soviet +Cost=600 +Points=70 +Power=-30 +Capturable=true +Crewed=yes + +; normal power plant +[POWR] +Prerequisite=fact +Strength=400 +Armor=wood +TechLevel=1 +Sight=4 +Owner=allies,soviet +Cost=300 +Points=40 +Power=100 +Bib=yes +Capturable=true +Crewed=yes + +; advanced power plant +[APWR] +Prerequisite=powr +Strength=700 +Armor=wood +TechLevel=8 +Sight=4 +Owner=allies,soviet +Cost=500 +Points=50 +Power=200 +Bib=yes +Capturable=true +Crewed=yes + +; Soviet tech center +[STEK] +Prerequisite=weap,dome +Strength=600 +Armor=wood +TechLevel=6 +Sight=4 +Owner=soviet +Cost=1500 +Points=85 +Power=-100 +Bib=yes +Capturable=true +Crewed=yes + +; hospital (obsolete?) +[HOSP] +Strength=400 +Armor=wood +TechLevel=-1 +Sight=4 +Owner= +Cost= +Points=20 +Power=-20 +Bib=yes +Capturable=true +Crewed=yes + +; bio-research laboratory (obsolete?) +[BIO] +Strength=600 +Armor=wood +TechLevel=-1 +Sight=4 +Owner= +Cost= +Points=30 +Power=-40 +Bib=yes +Crewed=yes + +; Soviet barracks +[BARR] +Prerequisite=powr +Strength=800 +Armor=wood +TechLevel=1 +Sight=5 +Owner=soviet +Cost=300 +Points=30 +Power=-20 +Bib=yes +Crewed=yes +Capturable=true + +; Allied training tent +[TENT] +Prerequisite=powr +Strength=800 +Armor=wood +TechLevel=1 +Sight=5 +Owner=allies +Cost=300 +Points=30 +Power=-20 +Bib=yes +Crewed=yes +Capturable=true + +; attack dog training facility +[KENN] +Prerequisite=barr +Strength=400 +Armor=wood +TechLevel=3 +Sight=4 +Owner=soviet +Cost=200 +Points=25 +Power=-10 + +; service depot +[FIX] +Prerequisite=weap +Strength=800 +Armor=wood +TechLevel=3 +Sight=5 +Owner=allies,soviet +Cost=1200 +Points=80 +Power=-30 +Capturable=true +Crewed=yes + +; sandbag wall +[SBAG] +Strength=1 +Armor=none +TechLevel=2 +Sight=0 +Owner=allies +Cost=25 +Points=1 +Repairable=false +Adjacent=1 + +; concrete wall +[BRIK] +Strength=1 +Armor=none +TechLevel=8 +Sight=0 +Owner=allies,soviet +Cost=100 +Points=5 +Repairable=false +Adjacent=1 + +; wire fence +[FENC] +Strength=1 +Armor=none +TechLevel=2 +Sight=0 +Owner=soviet +Cost=25 +Points=1 +Repairable=false +Adjacent=1 + +; auxiliary decorative building +[MISS] +Strength=400 +Points=5 +Armor=wood +Bib=yes +Capturable=true + +; chain link fence +[CYCL] +Strength=1 +Points=1 +Armor=none +Cost=75 +Repariable=false +Adjacent=1 +Sight=0 + +; barb wire fence +[BARB] +Strength=1 +Points=1 +Armor=wood +Cost=25 +Repariable=false +Adjacent=1 +Sight=0 + +; wood fence +[WOOD] +Strength=1 +Points=1 +Repariable=false +Adjacent=1 +Sight=0 + +; barrels +[BARL] +Strength=10 +Repairable=false +Adjacent=0 +BaseNormal=no + +[BRL3] +Strength=10 +Repairable=false +Adjacent=0 +BaseNormal=no + +; anti-vehicle mine +[MINV] +Strength=1 +Repairable=false +Adjacent=0 +Invisible=yes +Unsellable=yes +BaseNormal=no + +; anti-personnel mine +[MINP] +Strength=1 +Repairable=false +Adjacent=0 +Invisible=yes +Unsellable=yes +BaseNormal=no + +; fakes +[FACF] +Image=FACT +Owner=allies +TechLevel=1 +Strength=30 +Cost=50 +Sight=4 +Power=-2 +Points=15 +Bib=yes +Capturable=true +BaseNormal=no + +[WEAF] +Prerequisite=proc +Image=WEAP +Owner=allies +TechLevel=3 +Cost=50 +Strength=30 +Sight=4 +Points=15 +Power=-2 +Bib=yes +Capturable=true +BaseNormal=no + +[SYRF] +Prerequisite=powr +Image=SYRD +Strength=30 +TechLevel=3 +Sight=4 +Cost=50 +Owner=allies +Power=-2 +Points=15 +WaterBound=yes +Capturable=true +BaseNormal=no +Adjacent=8 + +[SPEF] +Image=SPEN +Strength=30 +TechLevel=-1 +Sight=4 +Cost=50 +Owner=soviet +Power=-2 +Points=15 +WaterBound=yes +Capturable=true +BaseNormal=no +Adjacent=8 + +[DOMF] +Prerequisite=proc +Image=DOME +Strength=30 +Sight=4 +TechLevel=3 +Cost=50 +Owner=allies +Power=-2 +Points=15 +Bib=yes +Capturable=true +BaseNormal=no + +; civilian structures +[V01] +Strength=400 +Points=5 +Armor=wood +Repariable=false +Capturable=true + +[V02] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V03] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V04] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V05] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V06] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V07] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V08] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V09] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V10] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V11] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V12] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V13] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V14] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V15] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V16] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V17] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V18] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V19] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V20] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V21] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V22] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V23] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V24] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V25] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V26] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V27] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V28] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V29] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V30] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V31] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V32] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V33] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V34] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V35] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V36] +Strength=400 +Points=5 +Armor=wood +Repariable=false + +[V37] +Strength=400 +Points=5 +Armor=wood +Repariable=false + + +; ******* Weapon Statistics ******* +; The weapons specified here are attached to the various combat +; units and buildings. + +; Anim = animation to display as a firing effect +; Burst = number of rapid succession shots from this weapon (def=1) +; Camera = Reveals area around firer (def=no)? +; Charges = Does it have charge-up-before-firing logic (def=no)? +; Damage = the amount of damage (unattenuated) dealt with every bullet +; Projectile = projectile characteristic to use +; ROF = delay between shots [15 = 1 second at middle speed setting] +; Range = maximum cell range +; Report = sound to play when firing +; Speed = speed of projectile to target (100 is maximum) +; Warhead = warhead to attach to projectile +; Supress = Should nearby friendly buildings be scanned for and if found, discourage firing on target (def=no)? +; TurboBoost = Should the weapon get a boosted speed bonus when firing upon aircraft? + +; Tanya pistol +[Colt45] +Damage=50 +ROF=5 +Range=5.75 +Projectile=Invisible +Speed=100 +Warhead=HollowPoint +Report=GUN5 + +; anti-aircraft multiple cannon +[ZSU-23] +Damage=25 +ROF=10 +Range=6 +Projectile=Ack +Speed=100 +Warhead=AP +Anim=GUNFIRE +Report=AACANON3 + +; rapid fire machine gun +[Vulcan] +Damage=40 +ROF=40 +Range=5 +Projectile=Invisible +Speed=100 +Warhead=SA +Report=GUN13 +Anim=MINIGUN + +; air-to-surface homing missile (launched from jet) +[Maverick] +Damage=50 +ROF=3 +Range=6 +Projectile=HeatSeeker +Speed=30 +Warhead=AP +Report=MISSILE7 + +; camera +[Camera] +Damage=0 +ROF=10 +Range=2.75 +Projectile=Inivisble +Speed=100 +Warhead=Super +Camera=yes + +; fireball from flame turret +[FireballLauncher] +Damage=125 +ROF=50 +Range=4 +Projectile=Fireball +Speed=12 +Warhead=Fire + +; hand-held flame thrower type +[Flamer] +Damage=70 +ROF=50 +Range=3.5 +Projectile=Fireball +Speed=12 +Warhead=Fire + +; sniper rifle +[Sniper] +Damage=100 +ROF=5 +Range=3.75 +Projectile=Invisible +Speed=100 +Warhead=HollowPoint +Report=SILENCER + +; rapid fire aircraft gun +[ChainGun] +Damage=40 +ROF=3 +Range=5 +Projectile=Invisible +Speed=100 +Warhead=SA +Report=GUN13 +Anim=MINIGUN + +; civilian pistol +[Pistol] +Damage=1 +ROF=7 +Range=1.75 +Projectile=Invisible +Speed=100 +Warhead=SA +Report=GUN27 + +; rifle soldier weapons (multiple shots) +[M1Carbine] +Damage=15 +ROF=20 +Range=3 +Projectile=Invisible +Speed=100 +Warhead=SA +Report=GUN11 + +; man-packed anti-tank missile (bazooka type) +[Dragon] +Damage=35 +ROF=50 +Range=5 +Projectile=HeatSeeker +Speed=25 +Warhead=AP +Report=MISSILE6 + +; air-to-surface homing missile (launched from helicopter) +[Hellfire] +Damage=40 +ROF=60 +Range=4 +Projectile=HeatSeeker +Speed=30 +Warhead=AP +Report=MISSILE6 + +; hand grenade +[Grenade] +Damage=50 +ROF=60 +Range=4 +Projectile=Lobbed +Speed=5 +Warhead=HE + +; small anti-armor cannon +[75mm] +Damage=25 +ROF=40 +Range=4 +Projectile=Cannon +Speed=40 +Warhead=AP +Report=CANNON2 +Anim=GUNFIRE + +; light anti-armor cannon +[90mm] +Damage=30 +ROF=50 +Range=4.75 +Projectile=Cannon +Speed=40 +Warhead=AP +Report=CANNON1 +Anim=GUNFIRE + +; medium anti-armor cannon +[105mm] +Damage=30 +ROF=70 +Range=4.75 +Projectile=Cannon +Speed=40 +Warhead=AP +Report=CANNON1 +Anim=GUNFIRE + +; large anti-armor cannon +[120mm] +Damage=40 +ROF=80 +Range=4.75 +Projectile=Cannon +Speed=40 +Warhead=AP +Report=CANNON1 +Anim=GUNFIRE +Burst=2 + +; turret cannon +[TurretGun] +Damage=40 +ROF=50 +Range=6 +Projectile=Cannon +Speed=40 +Warhead=AP +Report=TURRET1 +Anim=GUNFIRE + +; Vehicle carried anti-tank missile +[MammothTusk] +Damage=75 +ROF=80 +Range=5 +Projectile=HeatSeeker +Speed=30 +Warhead=HE +Report=MISSILE6 +Burst=2 + +; artillery cannon +[155mm] +Damage=150 +ROF=65 +Range=6 +Projectile=Ballistic +Speed=12 +Warhead=HE +Report=TANK5 +Anim=GUNFIRE + +; vehicle mounted machine gun +[M60mg] +Damage=15 +ROF=20 +Range=4 +Projectile=Invisible +Speed=100 +Warhead=SA +Report=PILLBOX1 +Anim=MINIGUN + +; napalm bomblets (dropped from plane) +[Napalm] +Damage=100 +ROF=20 +Range=4.5 +Projectile=Bomblet +Speed=5 +Warhead=Fire + +; Tesla coil zap +[TeslaZap] +Damage=100 +ROF=120 +Range=8.5 +Projectile=Invisible +Speed=100 +Warhead=Super +Report=TESLA1 +Charges=yes + +; anti-aircraft missile (fired from SAM site) +[Nike] +Damage=50 +ROF=20 +Range=7.5 +Projectile=AAMissile +Speed=50 +Warhead=AP +Report=MISSILE1 +Anim=SAMFIRE + +; man-packed surface to air missile +[RedEye] +Damage=50 +ROF=50 +Range=7.5 +Projectile=AAMissile +Speed=50 +Warhead=AP +Report=MISSILE1 +Anim=SAMFIRE + +; 8 inch cruiser cannon +[8Inch] +Damage=500 +ROF=160 +Range=22 +Projectile=Ballistic +Speed=6 +Warhead=HE +Report=TURRET1 +Anim=GUNFIRE +Supress=yes + +; gunboat mounted anti-aircraft rocket +[Stinger] +Damage=30 +ROF=60 +Range=9 +Projectile=LaserGuided +Speed=20 +Warhead=AP +Report=MISSILE6 +Burst=2 +TurboBoost=yes + +; torpedo tube +[TorpTube] +Damage=90 +ROF=60 +Range=9 +Projectile=Torpedo +Speed=15 +Warhead=AP +Report=TORPEDO1 + +; destroyer mounted 2 inch cannon +[2Inch] +Damage=25 +ROF=60 +Range=5.5 +Projectile=Cannon +Speed=25 +Warhead=AP +Report=CANNON2 +Anim=GUNFIRE + +; anti-submarine weapon +[DepthCharge] +Damage=80 +ROF=60 +Range=5 +Projectile=Catapult +Speed=5 +Warhead=AP + +; parachute bomb +[ParaBomb] +Damage=300 +ROF=4 +Range=4.5 +Projectile=Parachute +Speed=5 +Warhead=Nuke +Report=CHUTE1 + +; dog bite +[DogJaw] +Damage=100 +ROF=10 +Range=2.2 +Projectile=LeapDog +Speed=20 +Warhead=Organic +Report=DOGG5P + +; medic healing +[Heal] +Damage=-50 +ROF=80 +Range=1.83 +Projectile=Invisible +Speed=100 +Warhead=Organic +Report=HEAL2 + +; SCUD launcher +[SCUD] +Damage=600 +ROF=400 +Range=10 +Projectile=FROG +Speed=25 +Warhead=HE +Report=MISSILE1 + + +; ******* Projectile Statistics ******* +; Projectiles describe how and what image to use as the weapon flies +; to its target. Think of the projectile as the "delivery method" used +; to get the warhead to the desired target. + +; AA = Can this weapon fire upon flying aircraft (def=no)? +; AG = Can this weapon fire upon ground objects (def=yes)? +; ASW = Is this an Anti-Submarine-Warfare projectile (def=no)? +; Animates = Does it animate [this means smoke puffs] (def=no)? +; Arcing = Does it have a ballistic trajectory (def=no)? +; Arm = arming delay (def=0) +; Degenerates = Does the bullet strength weaken as it travels (def=no)? +; Dropping = Does it fall from a starting height (def=no)? +; Frames = number of image frames for animation purposes (def=1) +; Gigundo = Is the projectile larger than normal (def=no)? +; High = Can it fly over walls (def=no)? +; Image = image to use during flight +; Inaccurate = Is it inherently inaccurate (def=no)? +; Inviso = Is the projectile invisible as it travels (def=no)? +; Parachuted = Equipped with a parachute for dropping from plane (def=no)? +; Proximity = Does it blow up when near its target (def=no)? +; ROT = Rate Of Turn [non zero implies homing] (def=0) +; Ranged = Can it run out of fuel (def=no)? +; Rotates = Does the projectile have rotation specific imagery (def=no)? +; Shadow = If High, does this bullet need to have a shadow drawn? (def = yes) +; Translucent = Are translucent colors used in artwork (def=no)? +; UnderWater = Does the projectile travel under water? + +; invisible flight to target +[Invisible] +Inviso=yes +Image=none + +; special case for dog +[LeapDog] +Image=DOGBULLT +Translucent=yes +Rotates=yes +Proximity=yes +ROT=20 + +; straight high-speed ballistic shot +[Cannon] +Image=120MM + +; anti aircraft artillery projectile +[Ack] +Image=none +Inviso=yes +AA=true +AG=false + +; Sub-surface projectile. +[Torpedo] +UnderWater=yes +Image=MISSILE +Rotates=yes +ASW=yes + +; Free Rocket Over Ground +[FROG] +Arm=10 +High=yes +Shadow=no +Proximity=yes +Animates=yes +Ranged=yes +Inaccurate=yes +Image=V2 +Rotates=yes + +; small homing missile (targets vehicles best) +[HeatSeeker] +Arm=2 +High=yes +Shadow=no +Proximity=yes +Animates=yes +Ranged=yes +Inaccurate=yes +AA=yes +Image=DRAGON +ROT=5 +Rotates=yes +Translucent=yes + +; small missile with deadly accuracy +[LaserGuided] +Arm=3 +High=yes +Shadow=no +Proximity=yes +Animates=yes +Ranged=yes +AA=yes +Image=DRAGON +ROT=20 +Rotates=yes +Translucent=yes + +; anti aircraft missile +[AAMissile] +Arm=3 +High=yes +Shadow=no +Proximity=yes +Animates=yes +Ranged=yes +AA=yes +AG=no +Image=MISSILE +ROT=20 +Rotates=yes +Translucent=yes + +; lobbed tumbling grenade +[Lobbed] +High=yes +Arcing=yes +Inaccurate=yes +Image=BOMB +Frames=8 +Translucent=yes + +; Depth charge catapult +[Catapult] +High=yes +Arcing=yes +Inaccurate=yes +Image=BOMB +Frames=8 +ASW=yes +AG=no +Translucent=yes + +; dropped from plane tumbling object +[Bomblet] +Arm=24 +RangeLimit=24 +High=yes +Dropping=yes +Image=BOMBLET +Frames=6 +Translucent=yes + +; arcing ballistic projectile +[Ballistic] +High=yes +Arcing=yes +Inaccurate=yes +Image=120MM + +; parachute bomb +[Parachute] +Arm=24 +RangeLimit=24 +High=yes +Dropping=yes +Parachuted=yes +;Image=PARABOMB + +; Allied free radar (GPS satellite) +[GPSSatellite] +Gigundo=yes +High=yes +Image=SPUTNIK +Frames=4 + +; Nuclear missile, flying up +[NukeUp] +Gigundo=yes +High=yes +Image=ATOMICUP +Frames=4 + +; Nuclear missile, flying down +[NukeDown] +Gigundo=yes +High=yes +Image=ATOMICDN +Frames=4 + +; wizard's fireball +[Fireball] +Animates=yes +Image=FB1 +Frames=8 + + +; ******* Warhead Characteristics ******* +; This is what gives the "rock, paper, scissors" character to the game. +; It describes how the damage is to be applied to the target. The +; values should take into consideration the 'area of effect'. +; example: Although an armor piercing tank round would instantly +; kill a soldier IF it hit, the anti-infantry rating is still +; very low because the tank round has such a limited area of +; effect, lacks pinpoint accuracy, and acknowledges the fact that +; tanks pose little threat to infantry that take cover. + +; Spread = damage spread factor [larger means greater spread] (def=1) +; [A value of 1 means the damage is halved every pixel distant from center point. +; a value of 2 means damage is halved every 2 pixels, etc.] +; Wall = Does this warhead damage concrete walls (def=no)? +; Wood = Does this warhead damage wood walls (def=no)? +; Ore = Does this warhead destroy ore (def=no)? +; Verses = damage value verses various armor types (as percentage of full damage)... +; -vs- none, wood (buildings), light armor, heavy armor, concrete +; Explosion = which explosion set to use when warhead of this type impacts (def=0) +; 0=none, 1=piff, 2=piffs, 3=fire, 4=frags, 5=pops, 6=nuke +; InfDeath = which infantry death animation to use (def=0) +; 0=instant die, 1=twirl die, 2=explodes, 3=flying death, 4=burn death, 5=electro + +; general multiple small arms fire +[SA] +Spread=3 +Verses=100%,50%,60%,25%,25% +Explosion=2 +InfDeath=1 + +; high explosive (shrapnel) +[HE] +Spread=6 +Wall=yes +Wood=yes +Verses=90%,75%,60%,25%,100% +Explosion=5 +InfDeath=2 + +; armor piercing (discarding sabot, narrow effect) +[AP] +Spread=3 +Wall=yes +Wood=yes +Verses=30%,75%,75%,100%,50% +Explosion=4 +InfDeath=3 + +; napalm and fire in general +[Fire] +Spread=8 +Wood=yes +Verses=90%,100%,60%,25%,50% +Explosion=3 +InfDeath=4 + +; anti-infantry rifle bullet (single shot -- very effective verses infantry) +[HollowPoint] +Spread=1 +Verses=100%,5%,5%,5%,5% +Explosion=1 +InfDeath=1 + +; special case damage effect (do not use for regular weapons) +[Super] +Spread=1 +Verses=100%,100%,100%,100%,100% +InfDeath=5 + +; special case to only affect infantry (do not use for regular weapons) +[Organic] +Spread=0 +Verses=100%,0%,0%,0%,0% +InfDeath=0 + +; Nuclear warhead (same as fire) +[Nuke] +Spread=6 +Wall=yes +Wood=yes +Ore=yes +Verses=90%,100%,60%,25%,50% +Explosion=6 +InfDeath=4 + + +; ******* Land Characteristics ******* +; This section specifies the characteristics of the various +; terrain types. The primary purpose is to differentiate the +; movement capabilities. + +; Float = % of full speed for ships [0 means impassable] (def=100) +; Foot = % of full speed for foot soldiers [0 means impassable] (def=100) +; Track = % of full speed for tracked vehicles [0 means impassable] (def=100) +; Wheel = % of full speed for wheeled vehicles [0 means impassable] (def=100) +; Buildable = Can buildings be built upon this terrain (def=no)? + +; clear grassy terrain +[Clear] +Foot=90% +Track=80% +Wheel=60% +Float=0% +Buildable=yes + +; rocky terrain +[Rough] +Foot=80% +Track=70% +Wheel=40% +Float=0% +Buildable=no + +; roads +[Road] +Foot=100% +Track=100% +Wheel=100% +Float=0% +Buildable=yes + +; open water +[Water] +Foot=0% +Track=0% +Wheel=0% +Float=100% +Buildable=no + +; cliffs +[Rock] +Foot=0% +Track=0% +Wheel=0% +Float=0% +Buildable=no + +; walls and other man made obstacles +[Wall] +Foot=0% +Track=0% +Wheel=0% +Float=0% +Buildable=no + +; ore (Tiberium) +[Ore] +Foot=90% +Track=70% +Wheel=50% +Float=0% +Buildable=no + +; sandy beach +[Beach] +Foot=80% +Track=70% +Wheel=40% +Float=0% +Buildable=no + +; craggy riverbed +[River] +Foot=0% +Track=0% +Wheel=0% +Float=0% +Buildable=no + + +; ******* Random Crate Powerups ******* +; This specifies the chance for the specified crate powerup to appear +; in a 'random' crate. The chance is expressed in the form of 'shares' +; out of the total shares specified. The second parameter is the animation +; to use when this crate is picked up. The third parameter, if present, specifies +; the data value needed for that crate powerup. They mean different things +; for the different powerups. +[Powerups] +Armor=10,ARMOR,2.0 ; armor of nearby objects increased (armor multiplier) +Cloak=0,STEALTH2 ; enable cloaking on nearby objects +Darkness=1,EMPULSE ; cloak entire radar map +Explosion=5,NONE,500 ; high explosive baddie (damage per explosion) +Firepower=10,FPOWER,2.0 ; firepower of nearby objects increased (firepower multiplier) +HealBase=1,INVUN ; all buildings to full strength +ICBM=1,MISSILE2 ; nuke missile one time shot +Money=50,DOLLAR,2000 ; a chunk o' cash (maximum cash) +Napalm=5,NONE,600 ; fire explosion baddie (damage) +ParaBomb=3,PARABOX ; para-bomb raid one time shot +Reveal=1,EARTH ; reveal entire radar map +Sonar=3,SONARBOX ; one time sonar pulse +Speed=10,SPEED,1.7 ; speed of nearby objects increased (speed multiplier) +Squad=20,NONE ; squad of random infantry +Unit=20,NONE ; vehicle +Invulnerability=3,INVULBOX,1.0 ; invulnerability (duration in minutes) +TimeQuake=3,TQUAKE ; time quake + + +; ******* Mission Control ******* +; This specifies the various general behavior characteristics of +; the missions that objects can be assigned. Each of the game objects must +; be in a mission. The mission behavior is generally hard coded into +; the program, but there are some behavior characteristics that can +; be overridden. Don't modify these. + +; NoThreat = Is its weapons disabled and thus ignored as a potential target until fired upon (def=no)? +; Zombie = Is forced to sit there like a zombie and never recovers (def=no)? +; Recruitable = Can it be recruited into a team or base defense (def=yes)? +; Paralyzed = Is the object frozen in place but can still fire and function (def=no)? +; Retaliate = Is allowed to retaliate while on this mission (def=yes)? +; Scatter = Is allowed to scatter from threats (def=yes)? +; Rate = delay between normal processing (larger = faster game, less responsiveness) +; AARate = anti-aircraft delay rate (if not specifed it uses regular rate). + +; Unit sits still and plays dead. +[Sleep] +Recruitable=no +Zombie=yes +Retaliate=no +Scatter=no +Rate=1 + +; Unit doesn't fire and is not considered a threat. +[Harmless] +Recruitable=no +NoThreat=yes +Retaliate=no +Rate=.5 + +; Just like guard mode, but cannot move. +[Sticky] +Recruitable=no +Paralyzed=yes +Scatter=no +Rate=.016 + +; Special attack mission used by team logic. +[Attack] +Rate=.016 +AARate=.016 + +; Move to destination. +[Move] +Rate=.016 + +; Special move to destination after all other queued moves occur. +[QMove] +Rate=.016 + +; Run away (possibly leave the map). +[Retreat] +Recruitable=no +Retaliate=no +Rate=.1 + +; Sit around and engage any enemy that wanders within weapon range. +[Guard] +Rate=.050 +AARate=.016 + +; Enter building or transport for loading purposes. +[Enter] +Retaliate=no +Recruitable=no +Rate=.016 + +; Engineer entry logic. +[Capture] +Retaliate=no +Recruitable=no +Scatter=no +Rate=.016 + +; Handle harvest ore - dump at refinery loop. +[Harvest] +Retaliate=no +Recruitable=no +Scatter=no +Rate=.016 + +; Guard the general area where the unit starts at. +[Area Guard] +Recruitable=no +Rate=.080 +AARate=.032 + +; +[Return] + +; Stop moving and firing at the first available opportunity. +[Stop] + +; +[Ambush] + +; Scan for and attack any enemies whereever they may be. +[Hunt] +Recruitable=no +Retaliate=no +Rate=.016 + +; While dropping off cargo (e.g., APC unloading passengers). +[Unload] +Recruitable=no +Retaliate=no +Scatter=no +Rate=.016 + +; Tanya running to place bomb in building. +[Sabotage] +Recruitable=no +Rate=.016 + +; Buildings use this when building up after initial placement. +[Construction] +Recruitable=no +Retaliate=no +Scatter=no + +; Buildings use this when deconstruction after being sold. +[Selling] +Recruitable=no +NoThreat=yes +Retaliate=no +Scatter=no + +; Service depot uses this mission to repair attached object. +[Repair] +Rate=.08 + +; Special team override mission. +[Rescue] +Rate=.016 + +; Missile silo special launch missile mission. +[Missile] +Rate=.1 +