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 *.config
*.resources *.resources
*.kate-swp

View File

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

View File

@@ -259,7 +259,9 @@ namespace OpenRA
var variantExt = (vi.Variants.ContainsKey(variant) && !vi.DisableVariants.Contains(phrase)) ? var variantExt = (vi.Variants.ContainsKey(variant) && !vi.DisableVariants.Contains(phrase)) ?
vi.Variants[variant][voicedUnit.ActorID % vi.Variants[variant].Length] : vi.DefaultVariant; 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; 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\D2kExtractGameFilesLogic.cs" />
<Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" /> <Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" />
<Compile Include="Widgets\Logic\D2kDownloadPackagesLogic.cs" /> <Compile Include="Widgets\Logic\D2kDownloadPackagesLogic.cs" />
<Compile Include="BuildingCaptureNotification.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup> <PropertyGroup>

View File

@@ -59,14 +59,21 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
var PathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets"); var PathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets");
var ExtractGameFiles = new string[][] 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, "40", "101", Path.Combine(PathToSHPs, "shadow")},
new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToSHPs, "crates")}, 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, "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, "114", "129", Path.Combine(PathToSHPs, "rockcrater1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToSHPs, "rockcrater2")}, 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, "146", "161", Path.Combine(PathToSHPs, "sandcrater1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToSHPs, "sandcrater2")}, 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, "206", "381", Path.Combine(PathToSHPs, "rifle"), "--infantry"},
new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"}, new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"},
new string[] {"--r8", PathToDataR8, PathToPalette, "458", "693", Path.Combine(PathToSHPs, "bazooka"), "--infantry"}, 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, "2996", "2997", Path.Combine(PathToSHPs, "palaceo"), "--building"},
new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--vehicle"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--vehicle"},
//explosions //explosions
new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "sandwormmouth")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "wormjaw")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "sandwormdust")}, 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, "3586", "3600", Path.Combine(PathToSHPs, "wormsigns1")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")},
new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToSHPs, "wormsigns3")}, 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[][] var SHPsToCreate = new string[][]
{ {
new string[] {"--shp", Path.Combine(PathToSHPs, "overlay.png"), "32"}, 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, "crates.png"), "32"},
//new string[] {"--shp", Path.Combine(PathToSHPs, "shadow.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, "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, "rockcrater1.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater1.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, "lighto.png"), "96"},
new string[] {"--shp", Path.Combine(PathToSHPs, "palaceo.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, "unload.png"), "48"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormmouth.png"), "68"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormjaw.png"), "68"},
new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormdust.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, "wormsigns1.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"},
new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"},

View File

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

View File

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

View File

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

View File

@@ -1,21 +1,22 @@
# make structures appear earlier when errecting from ground # make structures appear earlier when errecting from ground
# too few DATA.R8 frames? # 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 # windtrap animations missing
# outpost animations missing # outpost animations missing
# construction yard crane animations missing # construction yard crane animations missing
# welding animation (factories) missing # welding animation (factories) missing
# chimney animation (refinery) 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 more spice tiles and make them fit
# add game logic for concrete plates (use terrain overlay from bridges/ressources) # add game logic for concrete plates (use terrain overlay from bridges/ressources)
# allow placing turrets on walls # allow placing turrets on walls
# RenderBuildingTurreted does not support separate turret sequence # RenderBuildingTurreted does not support separate turret sequence
# ornithocopter should flap (might need new RenderOrni code for proper animation) # R8 converter needs infantry/ornithocopter frame resorter
# R8 converter needs infantry frame resorter
# add grenade thrower # add grenade thrower
# add sandworm (behave like a moving anti-vehicle mine) # make sandworm behave like a moving anti-vehicle mine
# add thumper which deploys and really attracts sandworms
# add neutral buildings: emperor palace, fremen siech, smugglers factory # add neutral buildings: emperor palace, fremen siech, smugglers factory
# add deathhand missile (nuke) # add deathhand missile (nuke)
# maybe add ornithocopter strikes (they are currently directly contrallable units with non-reloading machine guns as in Dune II) # 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 # rework chrome UI, dialoges, tabs
# add sonic tank weapon (currently uses tesla) # add sonic tank weapon (currently uses tesla)
# make deviator change the allegiance of ememy units (currently shoots rockets) # 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 # 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) # 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 # black spots on buildings should be fading team colors
# gamefile extraction (setup/setup.z) from CD fails # 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 # 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 # 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) # 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

View File

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

View File

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

View File

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

View File

@@ -33,14 +33,13 @@ ENGINEER:
Name: Engineer Name: Engineer
Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything
Selectable: Selectable:
# Voice: EngineerVoice
Bounds: 12,17,0,-9 Bounds: 12,17,0,-9
Voice: EngineerVoice
Health: Health:
HP: 25 HP: 25
Mobile: Mobile:
Speed: 4 Speed: 4
Passenger: Passenger:
PipType: Yellow
EngineerRepair: EngineerRepair:
Captures: Captures:
TakeCover: TakeCover:
@@ -71,4 +70,56 @@ BAZOOKA:
PrimaryOffset: 0,0,0,-13 PrimaryOffset: 0,0,0,-13
TakeCover: TakeCover:
-RenderInfantry: -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 IntoActor: mcvo
Offset:1,1 Offset:1,1
Facing: 270 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: PWRO:
Inherits: ^POWER Inherits: ^POWER
@@ -26,12 +38,24 @@ BARRO:
Buildable: Buildable:
Prerequisites: pwro Prerequisites: pwro
Owner: ordos 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: HIGHTECHO:
Inherits: ^HIGHTECH Inherits: ^HIGHTECH
Buildable: Buildable:
Prerequisites: radaro Prerequisites: radaro
Owner: ordos 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: RESEARCHO:
Inherits: ^RESEARCH Inherits: ^RESEARCH
@@ -58,6 +82,12 @@ LIGHTO:
Owner: ordos Owner: ordos
RenderBuildingWarFactory: RenderBuildingWarFactory:
Image: LIGHTO 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: HEAVYO:
Inherits: ^HEAVY Inherits: ^HEAVY
@@ -66,6 +96,12 @@ HEAVYO:
Owner: ordos Owner: ordos
RenderBuildingWarFactory: RenderBuildingWarFactory:
Image: HEAVYO 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: RADARO:
Inherits: ^RADAR Inherits: ^RADAR
@@ -78,11 +114,14 @@ STARPORTO:
Buildable: Buildable:
Prerequisites: radaro Prerequisites: radaro
Owner: ordos Owner: ordos
ProductionQueue: ProductionAirdrop:
QueuedAudio: OI_ORDER.AUD
ReadyAudio: OI_REINF.AUD ReadyAudio: OI_REINF.AUD
ProductionQueue@Vehicle:
QueuedAudio: OI_ORDER.AUD
ReadyAudio:
OnHoldAudio: OI_HOLD.AUD OnHoldAudio: OI_HOLD.AUD
CancelledAudio: OI_CANCL.AUD CancelledAudio: OI_CANCL.AUD
BlockedAudio: OI_NROOM.AUD
REPAIRO: REPAIRO:
Inherits: ^REPAIR Inherits: ^REPAIR
@@ -99,7 +138,6 @@ MCVO:
Facing: 10 Facing: 10
IntoActor: conyardo IntoActor: conyardo
Offset:-1,-1 Offset:-1,-1
TransformSounds:
NoTransformSounds: OI_DPLOY.AUD NoTransformSounds: OI_DPLOY.AUD
RenderUnit: RenderUnit:
Image: DMCV Image: DMCV
@@ -181,7 +219,7 @@ SABOTEUR:
Name: Saboteur Name: Saboteur
Description: Sneaky infantry, armed with explosives.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings Description: Sneaky infantry, armed with explosives.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings
Selectable: Selectable:
# Voice: TanyaVoice Voice: SaboteurVoice
Bounds: 12,17,0,-9 Bounds: 12,17,0,-9
Health: Health:
HP: 100 HP: 100

View File

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

View File

@@ -1,56 +1,19 @@
#TODO: Currently only uses the Atreides voices.
Player: Player:
TechTree: 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: PlaceBuilding:
SupportPowerManager: SupportPowerManager:
ConquestVictoryConditions: ConquestVictoryConditions@Atreides:
WinNotification:AI_MWIN.AUD Race: atreides
LoseNotification:AI_MFAIL.AUD 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: PowerManager:
AllyRepair: AllyRepair:
PlayerResources: PlayerResources:
@@ -102,8 +65,15 @@ Player:
PlayerColorPalette: PlayerColorPalette:
BasePalette: d2k BasePalette: d2k
RemapIndex: 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 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 Audio: AI_ATACK.AUD
BaseAttackNotifier@Harkonnen:
Race: harkonnen
Audio: HI_ATACK.AUD
BaseAttackNotifier@Ordos:
Race: ordos
Audio: OI_ATACK.AUD
World: World:
OpenWidgetAtGameStart: OpenWidgetAtGameStart:
@@ -185,7 +155,7 @@ World:
SpriteNames: spice0 SpriteNames: spice0
ValuePerUnit: 35 ValuePerUnit: 35
Name: Spice Name: Spice
PipColor: Yellow PipColor: Green
AllowedTerrainTypes: Sand AllowedTerrainTypes: Sand
AllowUnderActors: false AllowUnderActors: false
SmudgeLayer@CRATER: SmudgeLayer@CRATER:
@@ -216,7 +186,7 @@ World:
SilosNeeded: AI_SILOS.AUD SilosNeeded: AI_SILOS.AUD
PrimaryBuildingSelected: AI_PRMRY.AUD PrimaryBuildingSelected: AI_PRMRY.AUD
AbilityInsufficientPower: AbilityInsufficientPower:
LevelUp: LevelUp: SCORTIK1.aud
SpatialBins: SpatialBins:
BinSize: 4 BinSize: 4
Shroud: Shroud:
@@ -246,17 +216,60 @@ CRATE:
RevealMapCrateAction: RevealMapCrateAction:
SelectionShares: 1 SelectionShares: 1
Effect: reveal-map Effect: reveal-map
#TODO: Currently only gives you an Atreides MCV GiveMcvCrateAction@Atreides:
GiveMcvCrateAction:
SelectionShares: 2 SelectionShares: 2
NoBaseSelectionShares: 9001 NoBaseSelectionShares: 9001
Unit: mcva Unit: mcva
GiveUnitCrateAction@trike: GiveMcvCrateAction@Harkonnen:
SelectionShares: 2
NoBaseSelectionShares: 9001
Unit: mcvh
GiveMcvCrateAction@Ordos:
SelectionShares: 2
NoBaseSelectionShares: 9001
Unit: mcvo
GiveUnitCrateAction@Trike:
SelectionShares: 7 SelectionShares: 7
Unit: trike Unit: trike
GiveUnitCrateAction@quad: GiveUnitCrateAction@Quad:
SelectionShares: 6 SelectionShares: 6
Unit: quad 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: RenderSimple:
BelowUnits: BelowUnits:
ProximityCaptor: ProximityCaptor:
@@ -290,7 +303,6 @@ SPICEBLOOM:
Terrain: Spice Terrain: Spice
SANDWORM: SANDWORM:
Inherits: ^Infantry
Buildable: Buildable:
Owner: Creep Owner: Creep
Valued: Valued:
@@ -298,18 +310,29 @@ SANDWORM:
Tooltip: Tooltip:
Name: Sandworm Name: Sandworm
Description: Attracted by vibrations in the sand. Will eat units whole and has a large appetite. Description: Attracted by vibrations in the sand. Will eat units whole and has a large appetite.
Icon: sandwormdust Icon: wormjaw
Health: Health:
HP: 10000 HP: 10000
Radius: 3
Armor:
Type: None
Mobile: Mobile:
Speed: 5 Speed: 5
TerrainSpeeds: TerrainSpeeds:
Sand: 100 Sand: 100
Dune: 100 Dune: 100
Spice: 100
TargetableUnit:
TargetTypes: Ground
AutoTarget: AutoTarget:
AttackMove:
JustMove: true
AttackWander: AttackWander:
AttackLeap: AttackLeap:
PrimaryWeapon: WormJaw PrimaryWeapon: WormJaw
CanAttackGround: no CanAttackGround: no
RenderInfantry: RenderInfantry:
BelowUnits: BelowUnits:
GivesExperience:
GivesBounty:
DrawLineToTarget:

View File

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

View File

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

View File

@@ -1,19 +1,56 @@
# requires Dune 2000/DATA/GAMESFX copied to ~/.openra/Content/d2k # requires Dune 2000/DATA/GAMESFX copied to ~/.openra/Content/d2k
GenericVoice: GenericVoice:
Variants: DefaultVariant: .AUD
atreides: .AUD
harkonnen: .AUD
ordos: .AUD
Voices: Voices:
Select: G_SSEL1,G_SSEL2,G_SSEL3 Select: G_SSEL1,G_SSEL2,G_SSEL3
Move: G_SCONF1,G_SCONF2,G_SCONF3 Move: G_SCONF1,G_SCONF2,G_SCONF3
Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9
VehicleVoice: VehicleVoice:
Variants: DefaultVariant: .AUD
atreides: .AUD Prefixes:
harkonnen: .AUD atreides: A
ordos: .AUD ordos: O
harkonnen: H
Voices: Voices:
Select: G_SSEL1,G_SSEL2,G_SSEL3 Select: _VSEL1,_VSEL2,_VSEL3
Move: G_SCONF1,G_SCONF2,G_SCONF3 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: M1Carbine:
ROF: 20 ROF: 20
Range: 5 Range: 5
Report: GUN11 Report: MGUN2
Projectile: Bullet Projectile: Bullet
Speed: 100 Speed: 100
Warhead: Warhead:
@@ -18,7 +18,7 @@ M1Carbine:
Dragon: Dragon:
ROF: 50 ROF: 50
Range: 5 Range: 5
Report: MISSILE6 Report: BAZOOK1
ValidTargets: Ground ValidTargets: Ground
Projectile: Missile Projectile: Missile
Speed: 25 Speed: 25
@@ -49,7 +49,7 @@ Dragon:
QuadRockets: QuadRockets:
ROF: 60 ROF: 60
Range: 7 Range: 7
Report: MISSILE6 Report: BAZOOK1
ValidTargets: Ground, Air ValidTargets: Ground, Air
Burst: 2 Burst: 2
BurstDelay: 0 BurstDelay: 0
@@ -101,7 +101,7 @@ TurretGun:
25mm: 25mm:
ROF: 13 ROF: 13
Range: 4 Range: 4
Report: CANNON2 Report: MEDTANK1
Projectile: Bullet Projectile: Bullet
Speed: 50 Speed: 50
Image: 120MM Image: 120MM
@@ -121,7 +121,7 @@ TurretGun:
90mm: 90mm:
ROF: 50 ROF: 50
Range: 4.75 Range: 4.75
Report: CANNON1 Report: MEDTANK1
Projectile: Bullet Projectile: Bullet
Speed: 40 Speed: 40
Image: 120MM Image: 120MM
@@ -141,7 +141,7 @@ TurretGun:
105mm: 105mm:
ROF: 70 ROF: 70
Range: 4.75 Range: 4.75
Report: CANNON1 Report: MEDTANK1
Burst: 2 Burst: 2
BurstDelay: 4 BurstDelay: 4
Projectile: Bullet Projectile: Bullet
@@ -163,7 +163,7 @@ TurretGun:
120mm: 120mm:
ROF: 90 ROF: 90
Range: 4.75 Range: 4.75
Report: CANNON1 Report: TANKHVY1
Burst: 2 Burst: 2
Projectile: Bullet Projectile: Bullet
Speed: 40 Speed: 40
@@ -187,7 +187,7 @@ TurretGun:
MinRange: 2 MinRange: 2
Burst: 6 Burst: 6
BurstDelay: 1 BurstDelay: 1
Report: MISSILE6 Report: MISSLE1
ValidTargets: Ground ValidTargets: Ground
Projectile: Bullet Projectile: Bullet
Arm: 5 Arm: 5
@@ -217,7 +217,7 @@ TurretGun:
MammothTusk: MammothTusk:
ROF: 60 ROF: 60
Range: 8 Range: 8
Report: MISSILE6 Report: MISSLE1
Burst: 2 Burst: 2
ValidTargets: Ground, Air ValidTargets: Ground, Air
Projectile: Missile Projectile: Missile
@@ -249,7 +249,7 @@ MammothTusk:
ROF: 85 ROF: 85
Range: 14 Range: 14
MinRange: 3 MinRange: 3
Report: TANK5 Report: MORTAR1
Projectile: Bullet Projectile: Bullet
Speed: 12 Speed: 12
High: true High: true
@@ -274,7 +274,7 @@ MammothTusk:
TTankZap: TTankZap:
ROF: 120 ROF: 120
Range: 7 Range: 7
Report: TESLA1 Report: SONIC1
Charges: yes Charges: yes
Projectile: TeslaZap Projectile: TeslaZap
Warhead: Warhead:
@@ -286,7 +286,7 @@ ChainGun:
ROF: 10 ROF: 10
Range: 5 Range: 5
MinRange: 1 MinRange: 1
Report: GUN13 Report: 20MMGUN1
Projectile: Bullet Projectile: Bullet
Speed: 100 Speed: 100
High: true High: true
@@ -305,7 +305,7 @@ ChainGun:
M60mg: M60mg:
ROF: 30 ROF: 30
Range: 4 Range: 4
Report: PILLBOX1 Report: 20MMGUN1
Burst: 5 Burst: 5
Projectile: Bullet Projectile: Bullet
Speed: 100 Speed: 100
@@ -328,7 +328,7 @@ Demolish:
Crush: Crush:
Warhead: Warhead:
ImpactSound: squishy2 ImpactSound: CRUSH1
Damage: 100 Damage: 100
Atomic: Atomic:
@@ -342,9 +342,8 @@ Atomic:
Heavy: 25% Heavy: 25%
Concrete: 50% Concrete: 50%
Explosion: nuke Explosion: nuke
WaterExplosion: nuke
InfDeath: 4 InfDeath: 4
ImpactSound: kaboom1 ImpactSound: EXPLSML2
Warhead@areanuke: Warhead@areanuke:
DamageModel: PerCell DamageModel: PerCell
Damage: 250 Damage: 250
@@ -358,7 +357,7 @@ Atomic:
Concrete: 50% Concrete: 50%
Delay: 4 Delay: 4
InfDeath: 4 InfDeath: 4
ImpactSound: kaboom22 ImpactSound: EXPLLG2
CrateNuke: CrateNuke:
Warhead@impact: Warhead@impact:
@@ -371,9 +370,8 @@ CrateNuke:
Heavy: 25% Heavy: 25%
Concrete: 50% Concrete: 50%
Explosion: nuke Explosion: nuke
WaterExplosion: nuke
InfDeath: 4 InfDeath: 4
ImpactSound: kaboom1 ImpactSound: EXPLSML2
Warhead@areanuke: Warhead@areanuke:
DamageModel: PerCell DamageModel: PerCell
Damage: 250 Damage: 250
@@ -387,7 +385,7 @@ CrateNuke:
Concrete: 50% Concrete: 50%
Delay: 4 Delay: 4
InfDeath: 4 InfDeath: 4
ImpactSound: kaboom22 ImpactSound: EXPLLG2
CrateExplosion: CrateExplosion:
Warhead: Warhead:
@@ -401,7 +399,7 @@ CrateExplosion:
Explosion: self_destruct Explosion: self_destruct
WaterExplosion: self_destruct WaterExplosion: self_destruct
InfDeath: 3 InfDeath: 3
ImpactSound: kaboom15 ImpactSound: EXPLSML4
UnitExplode: UnitExplode:
Warhead: Warhead:
@@ -415,7 +413,7 @@ UnitExplode:
Explosion: self_destruct Explosion: self_destruct
WaterExplosion: large_splash WaterExplosion: large_splash
InfDeath: 3 InfDeath: 3
ImpactSound: kaboom22 ImpactSound: EXPLMD1
UnitExplodeSmall: UnitExplodeSmall:
Warhead: Warhead:
@@ -428,12 +426,12 @@ UnitExplodeSmall:
Heavy: 25% Heavy: 25%
Explosion: large_explosion Explosion: large_explosion
InfDeath: 3 InfDeath: 3
ImpactSound: kaboom15 ImpactSound: EXPLSML2
WormJaw: WormJaw:
ROF: 10 ROF: 10
Range: 3 Range: 3
Report: AI_WATTK Report: WORM
Warhead: Warhead:
Spread: 5 Spread: 5
Versus: Versus:
@@ -470,7 +468,7 @@ RedEye:
Damage: 40 Damage: 40
Sniper: Sniper:
Report: GUN11 Report: FREMODD1
ROF: 40 ROF: 40
Range: 7 Range: 7
Projectile: Bullet Projectile: Bullet
@@ -488,7 +486,7 @@ Sniper:
Vulcan: Vulcan:
ROF: 30 ROF: 30
Range: 6 Range: 6
Report: GUN13 Report: 20MMGUN1
Projectile: Bullet Projectile: Bullet
Speed: 100 Speed: 100
ContrailLength: 1000 ContrailLength: 1000