Merge commit 'matt/dune^'

Conflicts:
	.gitignore
	mods/d2k/rules/system.yaml
This commit is contained in:
Chris Forbes
2012-06-25 09:05:49 +12:00
31 changed files with 585 additions and 196 deletions

1
.gitignore vendored
View File

@@ -55,3 +55,4 @@ OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.mode1v3
*.config
*.resources
*.kate-swp

View File

@@ -18,9 +18,12 @@ namespace OpenRA.GameRules
public class VoiceInfo
{
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Variants;
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Prefixes;
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Voices;
public readonly string DefaultVariant = ".aud" ;
public readonly string DefaultPrefix = "" ;
public readonly string[] DisableVariants = { };
public readonly string[] DisablePrefixes = { };
static Dictionary<string, string[]> Load( MiniYaml y, string name )
{
@@ -37,6 +40,7 @@ namespace OpenRA.GameRules
{
FieldLoader.Load( this, y );
Variants = Load(y, "Variants");
Prefixes = Load(y, "Prefixes");
Voices = Load(y, "Voices");
if (!Voices.ContainsKey("Attack"))

View File

@@ -259,7 +259,9 @@ namespace OpenRA
var variantExt = (vi.Variants.ContainsKey(variant) && !vi.DisableVariants.Contains(phrase)) ?
vi.Variants[variant][voicedUnit.ActorID % vi.Variants[variant].Length] : vi.DefaultVariant;
Play(clip + variantExt);
var prefix = (vi.Prefixes.ContainsKey(variant) && !vi.DisablePrefixes.Contains(phrase)) ?
vi.Prefixes[variant][voicedUnit.ActorID % vi.Prefixes[variant].Length] : vi.DefaultPrefix;
Play(prefix + clip + variantExt);
return true;
}
}

View File

@@ -0,0 +1,43 @@
#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 OpenRA.Traits;
namespace OpenRA.Mods.RA
{
class CaptureNotificationInfo : ITraitInfo
{
public readonly string Race = null;
public readonly string Notification = null;
public object Create(ActorInitializer init) { return new CaptureNotification(this); }
}
class CaptureNotification : INotifyCapture
{
CaptureNotificationInfo Info;
public CaptureNotification(CaptureNotificationInfo info)
{
Info = info;
}
public void OnCapture (Actor self, Actor captor, Player oldOwner, Player newOwner)
{
if (captor.World.LocalPlayer != captor.Owner)
return;
if (Info.Race != null && Info.Race != newOwner.Country.Race)
return;
Sound.PlayToPlayer(captor.World.LocalPlayer, Info.Notification);
}
}
}

View File

@@ -62,6 +62,7 @@
<Compile Include="Widgets\Logic\D2kExtractGameFilesLogic.cs" />
<Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" />
<Compile Include="Widgets\Logic\D2kDownloadPackagesLogic.cs" />
<Compile Include="BuildingCaptureNotification.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>

View File

@@ -59,14 +59,21 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
var PathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets");
var ExtractGameFiles = new string[][]
{ new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToSHPs, "overlay")},
{
new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToSHPs, "overlay")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3", "3", Path.Combine(PathToSHPs, "repairing")},
new string[] {"--r8", PathToDataR8, PathToPalette, "15", "16", Path.Combine(PathToSHPs, "dots")},
new string[] {"--r8", PathToDataR8, PathToPalette, "17", "26", Path.Combine(PathToSHPs, "numbers")},
//new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToSHPs, "shadow")},
new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToSHPs, "crates")},
new string[] {"--r8", PathToDataR8, PathToPalette, "107", "109", Path.Combine(PathToSHPs, "spicebloom")},
new string[] {"--r8", PathToDataR8, PathToPalette, "110", "111", Path.Combine(PathToSHPs, "stars")},
new string[] {"--r8", PathToDataR8, PathToPalette, "112", "112", Path.Combine(PathToSHPs, "greenuparrow")},
new string[] {"--r8", PathToDataR8, PathToPalette, "114", "129", Path.Combine(PathToSHPs, "rockcrater1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToSHPs, "rockcrater2")},
new string[] {"--r8", PathToDataR8, PathToPalette, "146", "161", Path.Combine(PathToSHPs, "sandcrater1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToSHPs, "sandcrater2")},
// ?
new string[] {"--r8", PathToDataR8, PathToPalette, "206", "381", Path.Combine(PathToSHPs, "rifle"), "--infantry"},
new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"},
new string[] {"--r8", PathToDataR8, PathToPalette, "458", "693", Path.Combine(PathToSHPs, "bazooka"), "--infantry"},
@@ -154,8 +161,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
new string[] {"--r8", PathToDataR8, PathToPalette, "2996", "2997", Path.Combine(PathToSHPs, "palaceo"), "--building"},
new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--vehicle"},
//explosions
new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "sandwormmouth")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "sandwormdust")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "wormjaw")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "wormdust")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3586", "3600", Path.Combine(PathToSHPs, "wormsigns1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToSHPs, "wormsigns3")},
@@ -269,9 +276,14 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
var SHPsToCreate = new string[][]
{
new string[] {"--shp", Path.Combine(PathToSHPs, "overlay.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "repairing.png"), "24"},
new string[] {"--shp", Path.Combine(PathToSHPs, "numbers.png"), "8"},
new string[] {"--shp", Path.Combine(PathToSHPs, "dots.png"), "4"},
new string[] {"--shp", Path.Combine(PathToSHPs, "crates.png"), "32"},
//new string[] {"--shp", Path.Combine(PathToSHPs, "shadow.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "spicebloom.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "stars.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "greenuparrow.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater1.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater1.png"), "32"},
@@ -357,8 +369,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
new string[] {"--shp", Path.Combine(PathToSHPs, "lighto.png"), "96"},
new string[] {"--shp", Path.Combine(PathToSHPs, "palaceo.png"), "96"},
new string[] {"--shp", Path.Combine(PathToSHPs, "unload.png"), "48"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormmouth.png"), "68"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormdust.png"), "68"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormjaw.png"), "68"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormdust.png"), "68"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns1.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"},

View File

@@ -14,6 +14,7 @@ namespace OpenRA.Mods.RA
{
class ActorLostNotificationInfo : ITraitInfo
{
public readonly string Race = null;
public readonly string Notification = null;
public readonly bool NotifyAll = false;
@@ -31,6 +32,8 @@ namespace OpenRA.Mods.RA
public void Killed(Actor self, AttackInfo e)
{
var player = (Info.NotifyAll) ? self.World.LocalPlayer : self.Owner;
if (Info.Race != null && Info.Race != self.Owner.Country.Race)
return;
Sound.PlayToPlayer(player, Info.Notification);
}
}

View File

@@ -18,6 +18,8 @@ namespace OpenRA.Mods.RA
public string WinNotification = null;
public string LoseNotification = null;
public int NotificationDelay = 1500; // Milliseconds
public readonly string Race = null;
public object Create(ActorInitializer init) { return new ConquestVictoryConditions(this); }
}
@@ -53,6 +55,7 @@ namespace OpenRA.Mods.RA
public void Lose(Actor self)
{
if (Info.Race != null && Info.Race != self.Owner.Country.Race) return;
if (self.Owner.WinState == WinState.Lost) return;
self.Owner.WinState = WinState.Lost;
@@ -74,6 +77,7 @@ namespace OpenRA.Mods.RA
public void Win(Actor self)
{
if (Info.Race != null && Info.Race != self.Owner.Country.Race) return;
if (self.Owner.WinState == WinState.Won) return;
self.Owner.WinState = WinState.Won;

View File

@@ -19,6 +19,7 @@ namespace OpenRA.Mods.RA
{
public readonly int NotifyInterval = 30; /* seconds */
public readonly string Audio = "baseatk1.aud";
public readonly string Race = null;
public object Create(ActorInitializer init) { return new BaseAttackNotifier(this); }
}
@@ -34,6 +35,7 @@ namespace OpenRA.Mods.RA
public void Damaged(Actor self, AttackInfo e)
{
if (info.Race != null && info.Race != self.Owner.Country.Race) return;
/* only track last hit against our base */
if (!self.HasTrait<Building>())
return;

View File

@@ -1,21 +1,22 @@
# make structures appear earlier when errecting from ground
# too few DATA.R8 frames?
# carryalls should automatically transport harvesters (needs complex logic)
# carryalls should pickup vehicles not land so that things can roll in
# carryalls should automatically transport harvesters
# carryalls should automatically transport vehicles to repair pad if player uses the repair cursor
# windtrap animations missing
# outpost animations missing
# construction yard crane animations missing
# welding animation (factories) missing
# chimney animation (refinery) missing
# harvester unload and harvest animation missing
# harvest animation missing
# harvester unload animation ugly
# add more spice tiles and make them fit
# add game logic for concrete plates (use terrain overlay from bridges/ressources)
# allow placing turrets on walls
# RenderBuildingTurreted does not support separate turret sequence
# ornithocopter should flap (might need new RenderOrni code for proper animation)
# R8 converter needs infantry frame resorter
# R8 converter needs infantry/ornithocopter frame resorter
# add grenade thrower
# add sandworm (behave like a moving anti-vehicle mine)
# add thumper which deploys and really attracts sandworms
# make sandworm behave like a moving anti-vehicle mine
# add neutral buildings: emperor palace, fremen siech, smugglers factory
# add deathhand missile (nuke)
# maybe add ornithocopter strikes (they are currently directly contrallable units with non-reloading machine guns as in Dune II)
@@ -26,14 +27,10 @@
# rework chrome UI, dialoges, tabs
# add sonic tank weapon (currently uses tesla)
# make deviator change the allegiance of ememy units (currently shoots rockets)
# allow frigate to deliver 5 units at once to starport
# starport prices should vary
# reinforcements have arrived is played twice when ordering via starport
# fix shroud, currently falls back to 24x24 shadow from RA (Dune's 32x32 tiles differ completely from RA/CnC)
# black spots on buildings should be fading team colors
# gamefile extraction (setup/setup.z) from CD fails
# support patch 1.06 gamefiles: DATA.R8 has more frames and currently fails to extract, also featuring new terrain with white houses and new unit: grenade thrower
# mouse cursor has no transparency and is a little pixelish
# infantry-only areas (Rough) do not show the dark-green mouse cursor
# put TilesetBuilder.Export into OpenRA.Utility to call the functions directly when extracting game-files (instead of opening a GUI)
# replace RA sounds by Dune 2000 ones
# put TilesetBuilder.Export into OpenRA.Utility to call the functions directly when extracting game-files (instead of opening a GUI)

View File

@@ -6,6 +6,18 @@ CONYARDA:
IntoActor: mcva
Offset:1,1
Facing: 270
ProductionQueue@Building:
QueuedAudio: AI_BUILD.AUD
OnHoldAudio: AI_HOLD.AUD
ReadyAudio: AI_BDRDY.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
ProductionQueue@Defense:
QueuedAudio: AI_BUILD.AUD
OnHoldAudio: AI_HOLD.AUD
ReadyAudio: AI_BDRDY.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
PWRA:
Inherits: ^POWER
@@ -26,12 +38,24 @@ BARRA:
Buildable:
Prerequisites: pwra
Owner: atreides
ProductionQueue@Infantry:
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
HIGHTECHA:
Inherits: ^HIGHTECH
Buildable:
Prerequisites: radara
Owner: atreides
ProductionQueue@Plane:
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
RESEARCHA:
Inherits: ^RESEARCH
@@ -58,6 +82,12 @@ LIGHTA:
Owner: atreides
RenderBuildingWarFactory:
Image: LIGHTA
ProductionQueue@Vehicle:
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
HEAVYA:
Inherits: ^HEAVY
@@ -66,6 +96,12 @@ HEAVYA:
Owner: atreides
RenderBuildingWarFactory:
Image: HEAVYA
ProductionQueue@Vehicle:
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
RADARA:
Inherits: ^RADAR
@@ -78,11 +114,14 @@ STARPORTA:
Buildable:
Prerequisites: radara
Owner: atreides
ProductionQueue:
QueuedAudio: AI_ORDER.AUD
ProductionAirdrop:
ReadyAudio: AI_REINF.AUD
ProductionQueue@Vehicle:
QueuedAudio: AI_ORDER.AUD
ReadyAudio:
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
REPAIRA:
Inherits: ^REPAIR
@@ -99,7 +138,6 @@ MCVA:
Facing: 10
IntoActor: conyarda
Offset:-1,-1
TransformSounds: BUILD1.aud
NoTransformSounds: AI_DPLOY.AUD
RenderUnit:
Image: DMCV
@@ -152,13 +190,12 @@ FREMEN:
Prerequisites: palacea
Selectable:
Bounds: 12,17,0,-6
# Voice: CommandoVoice
Voice: FremenVoice
Mobile:
Speed: 5
Health:
HP: 200
Passenger:
PipType: Red
RevealsShroud:
Range: 6
AutoTarget:
@@ -171,5 +208,5 @@ FREMEN:
Cloak:
InitialDelay: 125
CloakDelay: 125
CloakSound:
UncloakSound:
CloakSound: STEALTH1.aud
UncloakSound: STEALTH2.aud

View File

@@ -23,9 +23,15 @@
GainsExperience:
GivesExperience:
DrawLineToTarget:
#TODO: not race specific
ActorLostNotification:
ActorLostNotification@Atreides:
Race: atreides
Notification: AI_ULOST.AUD
ActorLostNotification@Harkonnen:
Race: harkonnen
Notification: HI_ULOST.AUD
ActorLostNotification@Ordos:
Race: ordos
Notification: OI_ULOST.AUD
ProximityCaptor:
Types:Vehicle
GivesBounty:
@@ -58,8 +64,15 @@
GainsExperience:
GivesExperience:
DrawLineToTarget:
ActorLostNotification:
ActorLostNotification@Atreides:
Race: atreides
Notification: AI_ULOST.AUD
ActorLostNotification@Harkonnen:
Race: harkonnen
Notification: HI_ULOST.AUD
ActorLostNotification@Ordos:
Race: ordos
Notification: OI_ULOST.AUD
ProximityCaptor:
Types:Tank
GivesBounty:
@@ -89,7 +102,7 @@
Rough: 60
SelectionDecorations:
Selectable:
Voice: GenericVoice
Voice: InfantryVoice
TargetableUnit:
TargetTypes: Ground
RenderInfantry:
@@ -101,8 +114,15 @@
GainsExperience:
GivesExperience:
DrawLineToTarget:
ActorLostNotification:
ActorLostNotification@Atreides:
Race: atreides
Notification: AI_ULOST.AUD
ActorLostNotification@Harkonnen:
Race: harkonnen
Notification: HI_ULOST.AUD
ActorLostNotification@Ordos:
Race: ordos
Notification: OI_ULOST.AUD
ProximityCaptor:
Types:Infantry
GivesBounty:
@@ -122,17 +142,21 @@
GainsExperience:
GivesExperience:
DrawLineToTarget:
ActorLostNotification:
ActorLostNotification@Atreides:
Race: atreides
Notification: AI_ULOST.AUD
ActorLostNotification@Harkonnen:
Race: harkonnen
Notification: HI_ULOST.AUD
ActorLostNotification@Ordos:
Race: ordos
Notification: OI_ULOST.AUD
DebugAircraftFacing:
DebugAircraftSubPxX:
DebugAircraftSubPxY:
DebugAircraftAltitude:
ProximityCaptor:
Types:Plane
EjectOnDeath:
PilotActor: RIFLE
SuccessRate: 50
GivesBounty:
^Helicopter:
@@ -149,17 +173,19 @@
Dimensions: 1,1
Footprint: x
TerrainTypes: Rock, Concrete
BuildSounds: BUILD1.aud
SellSounds: BUILD1.aud
GivesBuildableArea:
Capturable:
CapturableBar:
SoundOnDamageTransition:
DamagedSound:
DestroyedSound:
DamagedSound: EXPLSML1.aud
DestroyedSound: EXPLHG1.aud
RenderBuilding:
WithBuildingExplosion:
RepairableBuilding:
EmitInfantryOnSell:
ActorTypes: rifle,rifle,rifle,rifle,rifle,rifle
ActorTypes: rifle,rifle,rifle,bazooka,bazooka,engineer
MustBeDestroyed:
GivesExperience:
# FrozenUnderFog:
@@ -172,14 +198,19 @@
CaptureNotification@Ordos:
Race: ordos
Notification: OI_CAPT.AUD
#TODO: not Race-specific
ActorLostNotification:
ActorLostNotification@Atreides:
Race: atreides
Notification: AI_BLOST.AUD
ActorLostNotification@Harkonnen:
Race: harkonnen
Notification: HI_BLOST.AUD
ActorLostNotification@Ordos:
Race: ordos
Notification: OI_BLOST.AUD
EditorAppearance:
RelativeToTopLeft: yes
ShakeOnDeath:
ProximityCaptor:
Types:Building
Sellable:
AcceptsSupplies:
GivesBounty:

View File

@@ -6,6 +6,18 @@ CONYARDH:
IntoActor: mcvh
Offset:1,1
Facing: 270
ProductionQueue@Building:
QueuedAudio: HI_BUILD.AUD
OnHoldAudio: HI_HOLD.AUD
ReadyAudio: HI_BDRDY.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
ProductionQueue@Defense:
QueuedAudio: HI_BUILD.AUD
OnHoldAudio: HI_HOLD.AUD
ReadyAudio: HI_BDRDY.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
PWRH:
Inherits: ^POWER
@@ -26,12 +38,24 @@ BARRH:
Buildable:
Prerequisites: pwrh
Owner: harkonnen
ProductionQueue@Infantry:
ReadyAudio: HI_UNRDY.AUD
QueuedAudio:HI_TRAIN.AUD
OnHoldAudio: HI_HOLD.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
HIGHTECHH:
Inherits: ^HIGHTECH
Buildable:
Prerequisites: radarh
Owner: harkonnen
ProductionQueue@Plane:
ReadyAudio: HI_UNRDY.AUD
QueuedAudio:HI_TRAIN.AUD
OnHoldAudio: HI_HOLD.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
RESEARCHH:
Inherits: ^RESEARCH
@@ -58,6 +82,12 @@ LIGHTH:
Owner: harkonnen
RenderBuildingWarFactory:
Image: LIGHTH
ProductionQueue@Vehicle:
ReadyAudio: HI_UNRDY.AUD
QueuedAudio:HI_TRAIN.AUD
OnHoldAudio: HI_HOLD.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
HEAVYH:
Inherits: ^HEAVY
@@ -66,6 +96,12 @@ HEAVYH:
Owner: harkonnen
RenderBuildingWarFactory:
Image: HEAVYH
ProductionQueue@Vehicle:
ReadyAudio: HI_UNRDY.AUD
QueuedAudio:HI_TRAIN.AUD
OnHoldAudio: HI_HOLD.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
RADARH:
Inherits: ^RADAR
@@ -78,11 +114,14 @@ STARPORTH:
Buildable:
Prerequisites: radarh
Owner: harkonnen
ProductionQueue:
QueuedAudio: HI_ORDER.AUD
ProductionAirdrop:
ReadyAudio: HI_REINF.AUD
ProductionQueue@Vehicle:
QueuedAudio: HI_ORDER.AUD
ReadyAudio:
OnHoldAudio: HI_HOLD.AUD
CancelledAudio: HI_CANCL.AUD
BlockedAudio: HI_NROOM.AUD
REPAIRH:
Inherits: ^REPAIR
@@ -99,7 +138,6 @@ MCVH:
Facing: 10
IntoActor: conyardh
Offset:-1,-1
TransformSounds:
NoTransformSounds: HI_DPLOY.AUD
RenderUnit:
Image: DMCV
@@ -158,7 +196,6 @@ SARDAUKAR:
Name: Sardaukar
Description: Heavy infantry.
Selectable:
# Voice: TanyaVoice
Bounds: 12,17,0,-9
Health:
HP: 150

View File

@@ -33,14 +33,13 @@ ENGINEER:
Name: Engineer
Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything
Selectable:
# Voice: EngineerVoice
Bounds: 12,17,0,-9
Voice: EngineerVoice
Health:
HP: 25
Mobile:
Speed: 4
Passenger:
PipType: Yellow
EngineerRepair:
Captures:
TakeCover:
@@ -71,4 +70,56 @@ BAZOOKA:
PrimaryOffset: 0,0,0,-13
TakeCover:
-RenderInfantry:
RenderInfantryProne:
RenderInfantryProne:
THUMPER:
Inherits: ^Infantry
Buildable:
Queue: Infantry
BuildPaletteOrder: 50
Owner: atreides,harkonnen,ordos
Valued:
Cost: 400
Tooltip:
Name: Thumper
Description: Attracts sandsworm through vibrations.\n Strong vs Nothing\n Weak vs Everything
Selectable:
Bounds: 12,17,0,-9
Health:
HP: 25
Mobile:
Speed: 4
Passenger:
-AutoTarget:
AttackMove:
JustMove: true
Transforms:
IntoActor: thumping
Offset:1,1
Facing: 1
THUMPING:
Inherits: ^Building
Building:
Power: 0
Footprint: x
Dimensions: 1,1
TerrainTypes: Sand, Dune
Health:
HP: 25
Armor:
Type: None
RevealsShroud:
Range: 5
Valued:
Cost: 400
Tooltip:
Name: Thumper
-Capturable:
-CapturableBar:
-Sellable:
-GivesBuildableArea:
FreeActor:
Actor: SANDWORM
SpawnOffset: 1,2
Facing: 1

View File

@@ -6,6 +6,18 @@ CONYARDO:
IntoActor: mcvo
Offset:1,1
Facing: 270
ProductionQueue@Building:
QueuedAudio: OI_BUILD.AUD
OnHoldAudio: OI_HOLD.AUD
ReadyAudio: OI_BDRDY.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
ProductionQueue@Defense:
QueuedAudio: OI_BUILD.AUD
OnHoldAudio: OI_HOLD.AUD
ReadyAudio: OI_BDRDY.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
PWRO:
Inherits: ^POWER
@@ -26,12 +38,24 @@ BARRO:
Buildable:
Prerequisites: pwro
Owner: ordos
ProductionQueue@Infantry:
ReadyAudio: OI_UNRDY.AUD
QueuedAudio:OI_TRAIN.AUD
OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
HIGHTECHO:
Inherits: ^HIGHTECH
Buildable:
Prerequisites: radaro
Owner: ordos
ProductionQueue@Plane:
ReadyAudio: OI_UNRDY.AUD
QueuedAudio:OI_TRAIN.AUD
OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
RESEARCHO:
Inherits: ^RESEARCH
@@ -58,6 +82,12 @@ LIGHTO:
Owner: ordos
RenderBuildingWarFactory:
Image: LIGHTO
ProductionQueue@Vehicle:
ReadyAudio: OI_UNRDY.AUD
QueuedAudio:OI_TRAIN.AUD
OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
HEAVYO:
Inherits: ^HEAVY
@@ -66,6 +96,12 @@ HEAVYO:
Owner: ordos
RenderBuildingWarFactory:
Image: HEAVYO
ProductionQueue@Vehicle:
ReadyAudio: OI_UNRDY.AUD
QueuedAudio:OI_TRAIN.AUD
OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
RADARO:
Inherits: ^RADAR
@@ -78,11 +114,14 @@ STARPORTO:
Buildable:
Prerequisites: radaro
Owner: ordos
ProductionQueue:
QueuedAudio: OI_ORDER.AUD
ProductionAirdrop:
ReadyAudio: OI_REINF.AUD
ProductionQueue@Vehicle:
QueuedAudio: OI_ORDER.AUD
ReadyAudio:
OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
REPAIRO:
Inherits: ^REPAIR
@@ -99,7 +138,6 @@ MCVO:
Facing: 10
IntoActor: conyardo
Offset:-1,-1
TransformSounds:
NoTransformSounds: OI_DPLOY.AUD
RenderUnit:
Image: DMCV
@@ -181,7 +219,7 @@ SABOTEUR:
Name: Saboteur
Description: Sneaky infantry, armed with explosives.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings
Selectable:
# Voice: TanyaVoice
Voice: SaboteurVoice
Bounds: 12,17,0,-9
Health:
HP: 100

View File

@@ -21,6 +21,14 @@
Value: 2500
BaseBuilding:
ProductionBar:
ProductionQueue@Building:
Type: Building
BuildSpeed: .4
LowPowerSlowdown: 3
ProductionQueue@Defense:
Type: Defense
BuildSpeed: .4
LowPowerSlowdown: 3
^POWER:
Inherits: ^Building
@@ -81,6 +89,10 @@
Produces: Infantry
PrimaryBuilding:
ProductionBar:
ProductionQueue@Infantry:
Type: Infantry
BuildSpeed: .4
LowPowerSlowdown: 3
^HIGHTECH:
Inherits: ^Building
@@ -113,6 +125,10 @@
Produces: Plane
PrimaryBuilding:
ProductionBar:
ProductionQueue@Plane:
Type: Plane
BuildSpeed: .4
LowPowerSlowdown: 3
^RESEARCH:
Inherits: ^Building
@@ -186,7 +202,8 @@
-RenderBuilding:
OreRefinery:
StoresOre:
PipCount: 17
PipColor: Green
PipCount: 20
Capacity: 2000
CustomSellValue:
Value: 600
@@ -218,6 +235,7 @@
-RenderBuilding:
RenderBuildingSilo:
StoresOre:
PipColor: Green
PipCount: 5
Capacity: 1500
-EmitInfantryOnSell:
@@ -254,6 +272,10 @@
Produces: Vehicle
PrimaryBuilding:
ProductionBar:
ProductionQueue@Vehicle:
Type: Vehicle
BuildSpeed: .4
LowPowerSlowdown: 3
^HEAVY:
Inherits: ^Building
@@ -287,6 +309,10 @@
Produces: Vehicle
PrimaryBuilding:
ProductionBar:
ProductionQueue@Vehicle:
Type: Vehicle
BuildSpeed: .4
LowPowerSlowdown: 3
^RADAR:
RequiresPower:
@@ -344,11 +370,9 @@
ExitCell: 3,1
ProductionAirdrop:
Produces: Vehicle
ReadyAudio: AI_REINF.AUD
ActorType: frigate
ProductionQueue:
ProductionQueue@Vehicle:
Type: Vehicle
Group: Vehicle
BuildSpeed: .4
LowPowerSlowdown: 3
ProductionBar:
@@ -372,7 +396,8 @@ WALL:
Building:
Dimensions: 1,1
Footprint: x
BuildSounds:
BuildSounds: CHUNG.aud
SellSounds: CHUNG.aud
Adjacent: 7
TerrainTypes: Rock
Health:
@@ -390,7 +415,6 @@ WALL:
TargetTypes: Ground
RenderBuildingWall:
HasMakeAnimation: false
Palette: d2k
GivesExperience:
EditorAppearance:
RelativeToTopLeft: yes
@@ -429,6 +453,8 @@ GUNTOWER:
AttackTurreted:
PrimaryWeapon: TurretGun
AutoTarget:
RequiresPower:
CanPowerDown:
^REPAIR:
Inherits: ^Building

View File

@@ -1,56 +1,19 @@
#TODO: Currently only uses the Atreides voices.
Player:
TechTree:
ClassicProductionQueue@Building:
Type: Building
BuildSpeed: .4
LowPowerSlowdown: 3
QueuedAudio: AI_BUILD.AUD
OnHoldAudio: AI_HOLD.AUD
ReadyAudio: AI_BDRDY.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
ClassicProductionQueue@Defense:
Type: Defense
BuildSpeed: .4
LowPowerSlowdown: 3
QueuedAudio: AI_BUILD.AUD
OnHoldAudio: AI_HOLD.AUD
ReadyAudio: AI_BDRDY.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
ClassicProductionQueue@Vehicle:
Type: Vehicle
BuildSpeed: .4
LowPowerSlowdown: 3
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
ClassicProductionQueue@Infantry:
Type: Infantry
BuildSpeed: .4
LowPowerSlowdown: 3
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
ClassicProductionQueue@Plane:
Type: Plane
BuildSpeed: .4
LowPowerSlowdown: 3
ReadyAudio: AI_UNRDY.AUD
QueuedAudio:AI_TRAIN.AUD
OnHoldAudio: AI_HOLD.AUD
CancelledAudio: AI_CANCL.AUD
BlockedAudio: AI_NROOM.AUD
PlaceBuilding:
SupportPowerManager:
ConquestVictoryConditions:
WinNotification:AI_MWIN.AUD
LoseNotification:AI_MFAIL.AUD
ConquestVictoryConditions@Atreides:
Race: atreides
WinNotification: AI_MWIN.AUD
LoseNotification: AI_MFAIL.AUD
ConquestVictoryConditions@Harkonnen:
Race: harkonnen
WinNotification: HI_MWIN.AUD
LoseNotification: HI_MFAIL.AUD
ConquestVictoryConditions@Ordos:
Race: ordos
WinNotification: OI_MWIN.AUD
LoseNotification: OI_MFAIL.AUD
PowerManager:
AllyRepair:
PlayerResources:
@@ -102,8 +65,15 @@ Player:
PlayerColorPalette:
BasePalette: d2k
RemapIndex: 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
BaseAttackNotifier:
BaseAttackNotifier@Atreides:
Race: atreides
Audio: AI_ATACK.AUD
BaseAttackNotifier@Harkonnen:
Race: harkonnen
Audio: HI_ATACK.AUD
BaseAttackNotifier@Ordos:
Race: ordos
Audio: OI_ATACK.AUD
World:
OpenWidgetAtGameStart:
@@ -185,7 +155,7 @@ World:
SpriteNames: spice0
ValuePerUnit: 35
Name: Spice
PipColor: Yellow
PipColor: Green
AllowedTerrainTypes: Sand
AllowUnderActors: false
SmudgeLayer@CRATER:
@@ -216,7 +186,7 @@ World:
SilosNeeded: AI_SILOS.AUD
PrimaryBuildingSelected: AI_PRMRY.AUD
AbilityInsufficientPower:
LevelUp:
LevelUp: SCORTIK1.aud
SpatialBins:
BinSize: 4
Shroud:
@@ -246,17 +216,60 @@ CRATE:
RevealMapCrateAction:
SelectionShares: 1
Effect: reveal-map
#TODO: Currently only gives you an Atreides MCV
GiveMcvCrateAction:
GiveMcvCrateAction@Atreides:
SelectionShares: 2
NoBaseSelectionShares: 9001
Unit: mcva
GiveUnitCrateAction@trike:
GiveMcvCrateAction@Harkonnen:
SelectionShares: 2
NoBaseSelectionShares: 9001
Unit: mcvh
GiveMcvCrateAction@Ordos:
SelectionShares: 2
NoBaseSelectionShares: 9001
Unit: mcvo
GiveUnitCrateAction@Trike:
SelectionShares: 7
Unit: trike
GiveUnitCrateAction@quad:
GiveUnitCrateAction@Quad:
SelectionShares: 6
Unit: quad
GiveUnitCrateAction@Raider:
SelectionShares: 6
Unit: raider
GiveUnitCrateAction@SiegeTank:
SelectionShares: 6
Unit: siegetank
GiveUnitCrateAction@MissileTank:
SelectionShares: 6
Unit: missiletank
GiveUnitCrateAction@CombatA:
SelectionShares: 5
Unit: combata
GiveUnitCrateAction@CombatH:
SelectionShares: 5
Unit: combath
GiveUnitCrateAction@CombatO:
SelectionShares: 5
Unit: combato
GiveUnitCrateAction@Fremen:
SelectionShares: 4
Unit: fremen
GiveUnitCrateAction@Sardaukar:
SelectionShares: 4
Unit: sardaukar
GiveUnitCrateAction@Saboteur:
SelectionShares: 4
Unit: saboteur
GiveUnitCrateAction@SonicTank:
SelectionShares: 3
Unit: sonictank
GiveUnitCrateAction@Devast:
SelectionShares: 3
Unit: devast
GiveUnitCrateAction@deviatortank:
SelectionShares: 3
Unit: deviatortank
RenderSimple:
BelowUnits:
ProximityCaptor:
@@ -290,7 +303,6 @@ SPICEBLOOM:
Terrain: Spice
SANDWORM:
Inherits: ^Infantry
Buildable:
Owner: Creep
Valued:
@@ -298,18 +310,29 @@ SANDWORM:
Tooltip:
Name: Sandworm
Description: Attracted by vibrations in the sand. Will eat units whole and has a large appetite.
Icon: sandwormdust
Icon: wormjaw
Health:
HP: 10000
Radius: 3
Armor:
Type: None
Mobile:
Speed: 5
TerrainSpeeds:
Sand: 100
Dune: 100
Spice: 100
TargetableUnit:
TargetTypes: Ground
AutoTarget:
AttackMove:
JustMove: true
AttackWander:
AttackLeap:
PrimaryWeapon: WormJaw
CanAttackGround: no
RenderInfantry:
BelowUnits:
BelowUnits:
GivesExperience:
GivesBounty:
DrawLineToTarget:

View File

@@ -24,6 +24,8 @@
MustBeDestroyed:
BaseBuilding:
-AttackMove:
Transforms:
TransformSounds: BUILD1.aud
HARVESTER:
Inherits: ^Vehicle

View File

@@ -11,11 +11,11 @@ harvester:
Start: 0
Length: 0
Facings: 8
dock:
Start: 0
Length: 1
dock-loop:
dock: unload
Start: 0
Length: 10
dock-loop: unload
Start: 10
Length: 1
wall:
@@ -44,6 +44,8 @@ orni:
idle:
Start: 0
Facings: 32
Length: 3
Tick: 160
trike:
idle:
@@ -246,6 +248,53 @@ engineer:
Length: 22
Tick: 1600
thumper:
stand:
Start: 0
Facings: 8
stand2:
Start: 0
Facings: 8
run:
Start: 8
Length: 6
Facings: 8
die1: rifledeath
Start: 0
Length: 5
die2: rifledeath
Start: 5
Length: 7
die3: rifledeath
Start: 12
Length: 7
die4: rifledeath
Start: 19
Length: 7
die5: rifledeath
Start: 26
Length: 7
die6: rifledeath
Start: 26
Length: 7
die-crushed: rifledeath
Start: 54
Length: 22
Tick: 1600
thumping:
idle: thumper
Start: 57
Length: 4
Tick: 150
make: thumper
Start: 56
Length: 5
damaged-idle: thumper
Start: 57
Length: 4
Tick: 150
fremen:
stand:
Start: 0
@@ -861,48 +910,41 @@ deviatortank:
Start: 0
Facings: 32
#ready/hold falls back to RA, but look ok
pips:
groups:
Start: 8
groups: numbers
Start: 0
Length: 10
medic:
Start: 20
ready:
Start: 3
hold:
Start: 4
tag-fake:
Start: 18
tag-primary:
Start: 2
pip-empty: pips2
tag-primary: greenuparrow
Start: 0
pip-green: pips2
pip-empty: dots
Start: 0
pip-green: dots
Start: 1
pip-yellow: pips2
Start: 2
pip-gray: pips2
Start: 3
pip-red: pips2
Start: 4
pip-blue: pips2
Start: 5
#falls back to RA, but look ok
clock:
idle:
Start: 0
Length: *
#falls back to RA, but look ok
powerdown:
disabled: speed
Start: 3
#TODO: falls back to RA, different palette
poweroff:
offline:
Start: 0
Length: *
Tick: 160
#falls back to RA, but looks okay
rank:
rank:
Start: 0
@@ -920,6 +962,7 @@ overlay:
target-invalid:
Start: 1
#TODO: falls back to RA, different palette
rallypoint:
flag:flagfly
Start: 0
@@ -928,11 +971,13 @@ rallypoint:
Start: 0
Length: *
#TODO: falls back to RA
dragon:
idle:
Start: 0
Facings: 32
#TODO: falls back to RA
explosion:
piff: piff
Start: 0
@@ -974,11 +1019,13 @@ explosion:
Start: 0
Length: *
#TODO: falls back to RA
smokey:
idle:
Start: 0
Length: *
#TODO: falls back to RA
smoke_m:
idle:
Start: 0
@@ -990,10 +1037,12 @@ smoke_m:
Start: 0
Length: 26
#TODO: falls back to RA
120mm:
idle:
Start: 0
#TODO: falls back to RA
litning:
bright:
Start: 0
@@ -1008,6 +1057,7 @@ crate:
land: crates
Start: 0
#TODO: falls back to RA
crate-effects:
speed: speed
Start: 0
@@ -1063,19 +1113,11 @@ crate-effects:
Tick: 200
allyrepair:
repair:
repair: repairing
Start: 0
Length: *
Tick: 160
parach:
open:
Start: 0
Length: 5
idle:
Start: 5
Length: 11
missile:
idle:
Start: 0
@@ -1092,37 +1134,35 @@ spicebloom:
Start: 2
sandworm:
stand: wormsigns2
stand: wormsigns1
Start: 0
Length: *
Tick: 150
run: sandwormdust
run: wormsigns2
Start: 0
Facings: 4
Length: 5
Tick: 150
die1: sandwormdust
Facings: 15
Length: 1
die1: wormsigns3
Start: 0
Length: 1
die2: sandwormdust
die2: wormsigns3
Start: 0
Length: 1
die3: sandwormdust
die3: wormsigns3
Start: 0
Length: 1
die4: sandwormdust
die4: wormsigns3
Start: 0
Length: 1
die5: sandwormdust
die5: wormsigns3
Start: 0
Length: 1
die6: sandwormdust
die6: wormsigns3
Start: 0
Length: 1
die-crushed: sandwormdust
die-crushed: wormsigns3
Start: 0
Length: 1
Tick: 1600
wormattack: sandwormmouth
wormattack: wormjaw
Start: 0
Length: 15

View File

@@ -1,19 +1,56 @@
# requires Dune 2000/DATA/GAMESFX copied to ~/.openra/Content/d2k
GenericVoice:
Variants:
atreides: .AUD
harkonnen: .AUD
ordos: .AUD
DefaultVariant: .AUD
Voices:
Select: G_SSEL1,G_SSEL2,G_SSEL3
Move: G_SCONF1,G_SCONF2,G_SCONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9
VehicleVoice:
Variants:
atreides: .AUD
harkonnen: .AUD
ordos: .AUD
DefaultVariant: .AUD
Prefixes:
atreides: A
ordos: O
harkonnen: H
Voices:
Select: G_SSEL1,G_SSEL2,G_SSEL3
Move: G_SCONF1,G_SCONF2,G_SCONF3
Select: _VSEL1,_VSEL2,_VSEL3
Move: _VCONF1,_VCONF2,_VCONF3
InfantryVoice:
DefaultVariant: .AUD
Prefixes:
atreides: A
ordos: O
harkonnen: H
Voices:
Select: _ISEL1,_ISEL2,_ISEL3
Move: _ICONF1,_ICONF2,_ICONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9
DisablePrefixes: Die
EngineerVoice:
DefaultVariant: .AUD
Prefixes:
atreides: A
ordos: O
harkonnen: H
Voices:
Select: _ESEL1,_ESEL2,_ESEL3
Move: _ECONF1,_ECONF2,_ECONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9
DisablePrefixes: Die
FremenVoice:
DefaultVariant: .AUD
Voices:
Select: A_FSEL1,A_FSEL2,A_FSEL3
Move: A_FCONF1,A_FCONF2,A_FCONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9
SaboteurVoice:
DefaultVariant: .AUD
Voices:
Select: O_SSEL1,O_SSEL2,O_SSEL3
Move: O_SCONF1,O_SCONF2,O_SCONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9

View File

@@ -1,7 +1,7 @@
M1Carbine:
ROF: 20
Range: 5
Report: GUN11
Report: MGUN2
Projectile: Bullet
Speed: 100
Warhead:
@@ -18,7 +18,7 @@ M1Carbine:
Dragon:
ROF: 50
Range: 5
Report: MISSILE6
Report: BAZOOK1
ValidTargets: Ground
Projectile: Missile
Speed: 25
@@ -49,7 +49,7 @@ Dragon:
QuadRockets:
ROF: 60
Range: 7
Report: MISSILE6
Report: BAZOOK1
ValidTargets: Ground, Air
Burst: 2
BurstDelay: 0
@@ -101,7 +101,7 @@ TurretGun:
25mm:
ROF: 13
Range: 4
Report: CANNON2
Report: MEDTANK1
Projectile: Bullet
Speed: 50
Image: 120MM
@@ -121,7 +121,7 @@ TurretGun:
90mm:
ROF: 50
Range: 4.75
Report: CANNON1
Report: MEDTANK1
Projectile: Bullet
Speed: 40
Image: 120MM
@@ -141,7 +141,7 @@ TurretGun:
105mm:
ROF: 70
Range: 4.75
Report: CANNON1
Report: MEDTANK1
Burst: 2
BurstDelay: 4
Projectile: Bullet
@@ -163,7 +163,7 @@ TurretGun:
120mm:
ROF: 90
Range: 4.75
Report: CANNON1
Report: TANKHVY1
Burst: 2
Projectile: Bullet
Speed: 40
@@ -187,7 +187,7 @@ TurretGun:
MinRange: 2
Burst: 6
BurstDelay: 1
Report: MISSILE6
Report: MISSLE1
ValidTargets: Ground
Projectile: Bullet
Arm: 5
@@ -217,7 +217,7 @@ TurretGun:
MammothTusk:
ROF: 60
Range: 8
Report: MISSILE6
Report: MISSLE1
Burst: 2
ValidTargets: Ground, Air
Projectile: Missile
@@ -249,7 +249,7 @@ MammothTusk:
ROF: 85
Range: 14
MinRange: 3
Report: TANK5
Report: MORTAR1
Projectile: Bullet
Speed: 12
High: true
@@ -274,7 +274,7 @@ MammothTusk:
TTankZap:
ROF: 120
Range: 7
Report: TESLA1
Report: SONIC1
Charges: yes
Projectile: TeslaZap
Warhead:
@@ -286,7 +286,7 @@ ChainGun:
ROF: 10
Range: 5
MinRange: 1
Report: GUN13
Report: 20MMGUN1
Projectile: Bullet
Speed: 100
High: true
@@ -305,7 +305,7 @@ ChainGun:
M60mg:
ROF: 30
Range: 4
Report: PILLBOX1
Report: 20MMGUN1
Burst: 5
Projectile: Bullet
Speed: 100
@@ -328,7 +328,7 @@ Demolish:
Crush:
Warhead:
ImpactSound: squishy2
ImpactSound: CRUSH1
Damage: 100
Atomic:
@@ -342,9 +342,8 @@ Atomic:
Heavy: 25%
Concrete: 50%
Explosion: nuke
WaterExplosion: nuke
InfDeath: 4
ImpactSound: kaboom1
ImpactSound: EXPLSML2
Warhead@areanuke:
DamageModel: PerCell
Damage: 250
@@ -358,7 +357,7 @@ Atomic:
Concrete: 50%
Delay: 4
InfDeath: 4
ImpactSound: kaboom22
ImpactSound: EXPLLG2
CrateNuke:
Warhead@impact:
@@ -371,9 +370,8 @@ CrateNuke:
Heavy: 25%
Concrete: 50%
Explosion: nuke
WaterExplosion: nuke
InfDeath: 4
ImpactSound: kaboom1
ImpactSound: EXPLSML2
Warhead@areanuke:
DamageModel: PerCell
Damage: 250
@@ -387,7 +385,7 @@ CrateNuke:
Concrete: 50%
Delay: 4
InfDeath: 4
ImpactSound: kaboom22
ImpactSound: EXPLLG2
CrateExplosion:
Warhead:
@@ -401,7 +399,7 @@ CrateExplosion:
Explosion: self_destruct
WaterExplosion: self_destruct
InfDeath: 3
ImpactSound: kaboom15
ImpactSound: EXPLSML4
UnitExplode:
Warhead:
@@ -415,7 +413,7 @@ UnitExplode:
Explosion: self_destruct
WaterExplosion: large_splash
InfDeath: 3
ImpactSound: kaboom22
ImpactSound: EXPLMD1
UnitExplodeSmall:
Warhead:
@@ -428,12 +426,12 @@ UnitExplodeSmall:
Heavy: 25%
Explosion: large_explosion
InfDeath: 3
ImpactSound: kaboom15
ImpactSound: EXPLSML2
WormJaw:
ROF: 10
Range: 3
Report: AI_WATTK
Report: WORM
Warhead:
Spread: 5
Versus:
@@ -470,7 +468,7 @@ RedEye:
Damage: 40
Sniper:
Report: GUN11
Report: FREMODD1
ROF: 40
Range: 7
Projectile: Bullet
@@ -488,7 +486,7 @@ Sniper:
Vulcan:
ROF: 30
Range: 6
Report: GUN13
Report: 20MMGUN1
Projectile: Bullet
Speed: 100
ContrailLength: 1000