diff --git a/.gitignore b/.gitignore index 318756313cfd..aa58b211cde0 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.mode1v3 *.config *.resources +*.kate-swp diff --git a/OpenRA.Game/GameRules/VoiceInfo.cs b/OpenRA.Game/GameRules/VoiceInfo.cs index f77c5399b915..17b85d87e70a 100644 --- a/OpenRA.Game/GameRules/VoiceInfo.cs +++ b/OpenRA.Game/GameRules/VoiceInfo.cs @@ -18,9 +18,12 @@ namespace OpenRA.GameRules public class VoiceInfo { [FieldLoader.Ignore] public readonly Dictionary Variants; + [FieldLoader.Ignore] public readonly Dictionary Prefixes; [FieldLoader.Ignore] public readonly Dictionary Voices; public readonly string DefaultVariant = ".aud" ; + public readonly string DefaultPrefix = "" ; public readonly string[] DisableVariants = { }; + public readonly string[] DisablePrefixes = { }; static Dictionary Load( MiniYaml y, string name ) { @@ -37,6 +40,7 @@ public VoiceInfo( MiniYaml y ) { FieldLoader.Load( this, y ); Variants = Load(y, "Variants"); + Prefixes = Load(y, "Prefixes"); Voices = Load(y, "Voices"); if (!Voices.ContainsKey("Attack")) diff --git a/OpenRA.Game/Sound.cs b/OpenRA.Game/Sound.cs index b2f34c447374..a557a7fde3da 100644 --- a/OpenRA.Game/Sound.cs +++ b/OpenRA.Game/Sound.cs @@ -259,7 +259,9 @@ public static bool PlayVoice(string phrase, Actor voicedUnit, string variant) 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; } } diff --git a/OpenRA.Mods.D2k/BuildingCaptureNotification.cs b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs new file mode 100644 index 000000000000..ceaaf8a240a7 --- /dev/null +++ b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs @@ -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); + } + } +} + diff --git a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj index 8a55f226ee14..7c2c351809f5 100644 --- a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj +++ b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj @@ -62,6 +62,7 @@ + diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 7f40854a1ac2..2f45eaef1d70 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -59,14 +59,21 @@ void Extract() 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 @@ void Extract() 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 @@ void Extract() 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 @@ void Extract() 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"}, diff --git a/OpenRA.Mods.RA/ActorLostNotification.cs b/OpenRA.Mods.RA/ActorLostNotification.cs index 3d6e2c4b7c53..827c8afe3038 100644 --- a/OpenRA.Mods.RA/ActorLostNotification.cs +++ b/OpenRA.Mods.RA/ActorLostNotification.cs @@ -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 @@ public ActorLostNotification(ActorLostNotificationInfo info) 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); } } diff --git a/OpenRA.Mods.RA/ConquestVictoryConditions.cs b/OpenRA.Mods.RA/ConquestVictoryConditions.cs index 7e57c7effd0e..334562f7519b 100644 --- a/OpenRA.Mods.RA/ConquestVictoryConditions.cs +++ b/OpenRA.Mods.RA/ConquestVictoryConditions.cs @@ -18,6 +18,8 @@ public class ConquestVictoryConditionsInfo : ITraitInfo 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 @@ public void ResolveOrder(Actor self, Order order) 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 @@ public void Lose(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; self.Owner.WinState = WinState.Won; diff --git a/OpenRA.Mods.RA/Player/BaseAttackNotifier.cs b/OpenRA.Mods.RA/Player/BaseAttackNotifier.cs index 021d106b069d..d0b4ac68e7a8 100644 --- a/OpenRA.Mods.RA/Player/BaseAttackNotifier.cs +++ b/OpenRA.Mods.RA/Player/BaseAttackNotifier.cs @@ -19,6 +19,7 @@ public class BaseAttackNotifierInfo : ITraitInfo { 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 @@ public class BaseAttackNotifier : INotifyDamage 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()) return; diff --git a/mods/d2k/TODO b/mods/d2k/TODO index f0abe4cb87fc..07e33dff5f25 100644 --- a/mods/d2k/TODO +++ b/mods/d2k/TODO @@ -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 \ No newline at end of file +# put TilesetBuilder.Export into OpenRA.Utility to call the functions directly when extracting game-files (instead of opening a GUI) \ No newline at end of file diff --git a/mods/d2k/bits/KILLGUY0.aud b/mods/d2k/bits/KILLGUY0.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY0.aud rename to mods/d2k/bits/KILLGUY0.AUD diff --git a/mods/d2k/bits/KILLGUY1.aud b/mods/d2k/bits/KILLGUY1.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY1.aud rename to mods/d2k/bits/KILLGUY1.AUD diff --git a/mods/d2k/bits/KILLGUY2.aud b/mods/d2k/bits/KILLGUY2.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY2.aud rename to mods/d2k/bits/KILLGUY2.AUD diff --git a/mods/d2k/bits/KILLGUY3.aud b/mods/d2k/bits/KILLGUY3.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY3.aud rename to mods/d2k/bits/KILLGUY3.AUD diff --git a/mods/d2k/bits/KILLGUY4.aud b/mods/d2k/bits/KILLGUY4.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY4.aud rename to mods/d2k/bits/KILLGUY4.AUD diff --git a/mods/d2k/bits/KILLGUY5.aud b/mods/d2k/bits/KILLGUY5.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY5.aud rename to mods/d2k/bits/KILLGUY5.AUD diff --git a/mods/d2k/bits/KILLGUY6.aud b/mods/d2k/bits/KILLGUY6.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY6.aud rename to mods/d2k/bits/KILLGUY6.AUD diff --git a/mods/d2k/bits/KILLGUY7.aud b/mods/d2k/bits/KILLGUY7.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY7.aud rename to mods/d2k/bits/KILLGUY7.AUD diff --git a/mods/d2k/bits/KILLGUY8.aud b/mods/d2k/bits/KILLGUY8.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY8.aud rename to mods/d2k/bits/KILLGUY8.AUD diff --git a/mods/d2k/bits/KILLGUY9.aud b/mods/d2k/bits/KILLGUY9.AUD similarity index 100% rename from mods/d2k/bits/KILLGUY9.aud rename to mods/d2k/bits/KILLGUY9.AUD diff --git a/mods/d2k/rules/atreides.yaml b/mods/d2k/rules/atreides.yaml index 4b670ac1efc5..e1b3971657e0 100644 --- a/mods/d2k/rules/atreides.yaml +++ b/mods/d2k/rules/atreides.yaml @@ -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: \ No newline at end of file + CloakSound: STEALTH1.aud + UncloakSound: STEALTH2.aud \ No newline at end of file diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index b1e22ffd960a..f1dfede62d70 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -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: \ No newline at end of file diff --git a/mods/d2k/rules/harkonnen.yaml b/mods/d2k/rules/harkonnen.yaml index ac276902ce44..b30d20a11c3c 100644 --- a/mods/d2k/rules/harkonnen.yaml +++ b/mods/d2k/rules/harkonnen.yaml @@ -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 diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 0e0f1955b32f..4ea72a513055 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -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: \ No newline at end of file + 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 \ No newline at end of file diff --git a/mods/d2k/rules/ordos.yaml b/mods/d2k/rules/ordos.yaml index a305f4bc634e..681c8e911b12 100644 --- a/mods/d2k/rules/ordos.yaml +++ b/mods/d2k/rules/ordos.yaml @@ -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 diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 917399c02172..e6cffea51310 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -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 diff --git a/mods/d2k/rules/system.yaml b/mods/d2k/rules/system.yaml index 2c27208c52af..eee34b2bd764 100644 --- a/mods/d2k/rules/system.yaml +++ b/mods/d2k/rules/system.yaml @@ -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: \ No newline at end of file + BelowUnits: + GivesExperience: + GivesBounty: + DrawLineToTarget: diff --git a/mods/d2k/rules/vehicles.yaml b/mods/d2k/rules/vehicles.yaml index a3201d69b17e..61fedf2c3094 100644 --- a/mods/d2k/rules/vehicles.yaml +++ b/mods/d2k/rules/vehicles.yaml @@ -24,6 +24,8 @@ MustBeDestroyed: BaseBuilding: -AttackMove: + Transforms: + TransformSounds: BUILD1.aud HARVESTER: Inherits: ^Vehicle diff --git a/mods/d2k/sequences.yaml b/mods/d2k/sequences.yaml index 7b9f28e32ea8..5941b3d32c0f 100644 --- a/mods/d2k/sequences.yaml +++ b/mods/d2k/sequences.yaml @@ -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-empty: dots Start: 0 - pip-green: pips2 + 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 \ No newline at end of file diff --git a/mods/d2k/voices.yaml b/mods/d2k/voices.yaml index 43d6e6a85c25..8f05dc29981e 100644 --- a/mods/d2k/voices.yaml +++ b/mods/d2k/voices.yaml @@ -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 \ No newline at end of file + 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 \ No newline at end of file diff --git a/mods/d2k/weapons.yaml b/mods/d2k/weapons.yaml index e30d1ca6635c..3b80ad5936ee 100644 --- a/mods/d2k/weapons.yaml +++ b/mods/d2k/weapons.yaml @@ -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