diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 7d7e1e05a4..6b2a4edab5 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -114,16 +114,16 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "2521", "2522", Path.Combine(PathToSHPs, "radara"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2523", "2524", Path.Combine(PathToSHPs, "pwra"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2525", "2526", Path.Combine(PathToSHPs, "barra"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2527", "2558", Path.Combine(PathToSHPs, "wall"), "--wall"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2527", "2558", Path.Combine(PathToSHPs, "walla"), "--wall"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2559", "2560", Path.Combine(PathToSHPs, "conyarda"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2561", "2563", Path.Combine(PathToSHPs, "refa"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2564", "2565", Path.Combine(PathToSHPs, "hightecha"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2566", "2570", Path.Combine(PathToSHPs, "siloa"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2571", "2572", Path.Combine(PathToSHPs, "repaira"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2573", "2588", Path.Combine(PathToSHPs, "guntower"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2589", "2620", Path.Combine(PathToSHPs, "gunturret"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2621", "2636", Path.Combine(PathToSHPs, "rockettower"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2637", "2668", Path.Combine(PathToSHPs, "rocketturreta"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2573", "2588", Path.Combine(PathToSHPs, "guntowera"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2589", "2620", Path.Combine(PathToSHPs, "gunturreta"), "--turret"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2621", "2636", Path.Combine(PathToSHPs, "rockettowera"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2637", "2668", Path.Combine(PathToSHPs, "rocketturreta"), "--turret"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2669", "2670", Path.Combine(PathToSHPs, "researcha"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2671", "2672", Path.Combine(PathToSHPs, "starporta"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2673", "2675", Path.Combine(PathToSHPs, "lighta"), "--building"}, @@ -132,15 +132,16 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "2681", "2682", Path.Combine(PathToSHPs, "radarh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2683", "2684", Path.Combine(PathToSHPs, "pwrh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2685", "2686", Path.Combine(PathToSHPs, "barrh"), "--building"}, - // identical wall + new string[] {"--r8", PathToDataR8, PathToPalette, "2687", "2718", Path.Combine(PathToSHPs, "wallh"), "--wall"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2719", "2720", Path.Combine(PathToSHPs, "conyardh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2721", "2723", Path.Combine(PathToSHPs, "refh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2724", "2725", Path.Combine(PathToSHPs, "hightechh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2726", "2730", Path.Combine(PathToSHPs, "siloh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2731", "2732", Path.Combine(PathToSHPs, "repairh"), "--building"}, - // identical guntower - new string[] {"--r8", PathToDataR8, PathToPalette, "2749", "2780", Path.Combine(PathToSHPs, "gunturreth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2797", "2828", Path.Combine(PathToSHPs, "rocketturreth"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2733", "2748", Path.Combine(PathToSHPs, "guntowerh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2749", "2780", Path.Combine(PathToSHPs, "gunturreth"), "--turret"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2781", "2796", Path.Combine(PathToSHPs, "rockettowerh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2797", "2828", Path.Combine(PathToSHPs, "rocketturreth"), "--turret"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2829", "2830", Path.Combine(PathToSHPs, "researchh"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2831", "2832", Path.Combine(PathToSHPs, "starporth"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2833", "2835", Path.Combine(PathToSHPs, "lighth"), "--building"}, @@ -149,15 +150,16 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "2841", "2842", Path.Combine(PathToSHPs, "radaro"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2843", "2844", Path.Combine(PathToSHPs, "pwro"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2845", "2846", Path.Combine(PathToSHPs, "barro"), "--building"}, - // identical wall + new string[] {"--r8", PathToDataR8, PathToPalette, "2847", "2878", Path.Combine(PathToSHPs, "wallo"), "--wall"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2879", "2880", Path.Combine(PathToSHPs, "conyardo"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2881", "2883", Path.Combine(PathToSHPs, "refo"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2884", "2885", Path.Combine(PathToSHPs, "hightecho"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2886", "2890", Path.Combine(PathToSHPs, "siloo"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2891", "2892", Path.Combine(PathToSHPs, "repairo"), "--building"}, - // identical guntower - new string[] {"--r8", PathToDataR8, PathToPalette, "2909", "2940", Path.Combine(PathToSHPs, "gunturreto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2957", "2988", Path.Combine(PathToSHPs, "rocketturreto"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2893", "2908", Path.Combine(PathToSHPs, "guntowero"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2909", "2940", Path.Combine(PathToSHPs, "gunturreto"), "--turret"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2941", "2956", Path.Combine(PathToSHPs, "rockettowero"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2957", "2988", Path.Combine(PathToSHPs, "rocketturreto"), "--turret"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2989", "2990", Path.Combine(PathToSHPs, "researcho"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2991", "2992", Path.Combine(PathToSHPs, "starporto"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2993", "2995", Path.Combine(PathToSHPs, "lighto"), "--building"}, @@ -327,15 +329,15 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "radara.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwra.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barra.png"), "80"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wall.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "walla.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "conyarda.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refa.png"), "120"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightecha.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "siloa.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "repaira.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntower.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "gunturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettower.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntowera.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreta.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowera.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreta.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "researcha.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "starporta.png"), "96"}, @@ -344,13 +346,16 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "heavyh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "radarh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwrh.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wallh.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barrh.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "conyardh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refh.png"), "120"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightechh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "siloh.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "repairh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntowerh.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreth.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowerh.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreth.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "researchh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "starporth.png"), "96"}, @@ -360,12 +365,15 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "radaro.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwro.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barro.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wallo.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "conyardo.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refo.png"), "120"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightecho.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "siloo.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "repairo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntowero.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreto.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowero.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreto.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "researcho.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "starporto.png"), "96"}, diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index 5feb93dabb..6857e757e6 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -128,7 +128,6 @@ namespace OpenRA.Utility frame = srcImage[startFrame]; - //TODO: This is not enough as the run and shoot animation are next to each other for each sequence in RA/CnC. if (args.Contains("--infantry")) //resorting to RA/CnC compatible counter-clockwise frame order { endFrame = startFrame-1; @@ -189,6 +188,34 @@ namespace OpenRA.Utility frame = srcImage[f]; } } + else if (args.Contains("--turret")) //resorting to RA/CnC compatible counter-clockwise frame order + { + frame = srcImage[startFrame]; + + for (int f = endFrame-1; f > startFrame-1; f--) + { + if (frame.OffsetX < 0) { frame.OffsetX = 0 - frame.OffsetX; } + if (frame.OffsetY < 0) { frame.OffsetY = 0 - frame.OffsetY; } + OffsetX = 0 + frame.OffsetX; + OffsetY = frame.FrameHeight - frame.OffsetY; + + Console.WriteLine("calculated OffsetX: {0}", OffsetX); + Console.WriteLine("calculated OffsetY: {0}", OffsetY); + + var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Width, frame.Height), ImageLockMode.WriteOnly, + PixelFormat.Format8bppIndexed); + + for (var i = 0; i < frame.Height; i++) + Marshal.Copy(frame.Image, i * frame.Width, + new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Width); + + bitmap.UnlockBits(data); + + x += frame.FrameWidth; + + frame = srcImage[f]; + } + } else if (args.Contains("--wall")) //complex resorting to RA/CnC compatible frame order { int[] D2kBrikFrameOrder = {1, 4, 2, 12, 5, 6, 16, 9, 3, 13, 7, 8, 14, 10, 11, 15, 17, 20, 18, 28, 21, 22, 32, 25, 19, 29, 23, 24, 30, 26, 27, 31}; @@ -411,6 +438,7 @@ namespace OpenRA.Utility srcImage.Frames.Select( im => im.Image.Select(px => (byte)remap[px]).ToArray() )); } + //This is needed because the run and shoot animation are next to each other for each sequence in RA/CnC, but not in D2k. public static void TransposeShp(string[] args) { var srcImage = ShpReader.Load(args[1]); diff --git a/mods/d2k/TODO b/mods/d2k/TODO index 9dbbaa1234..93459d291d 100644 --- a/mods/d2k/TODO +++ b/mods/d2k/TODO @@ -13,7 +13,6 @@ # 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 # R8 converter needs infantry/ornithocopter frame resorter # add grenade thrower # make sandworm behave like a moving anti-vehicle mine @@ -33,4 +32,4 @@ # 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 # 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) -# group number metrics are off, should use DrawText not pips SHP \ No newline at end of file +# group number metrics are off \ No newline at end of file diff --git a/mods/d2k/rules/atreides.yaml b/mods/d2k/rules/atreides.yaml index 1c67459fc0..55296daf4e 100644 --- a/mods/d2k/rules/atreides.yaml +++ b/mods/d2k/rules/atreides.yaml @@ -25,6 +25,24 @@ PWRA: Prerequisites: conyarda Owner: atreides +GUNTOWERA: + Inherits: ^GUNTOWER + Buildable: + Prerequisites: conyarda + Owner: atreides + +ROCKETTOWERA: + Inherits: ^ROCKETTOWER + Buildable: + Prerequisites: radara + Owner: atreides + +WALLA: + Inherits: ^WALL + Buildable: + Prerequisites: conyarda + Owner: atreides + REFA: Inherits: ^REFINERY Buildable: diff --git a/mods/d2k/rules/harkonnen.yaml b/mods/d2k/rules/harkonnen.yaml index 2d0a3013b0..4c75833e20 100644 --- a/mods/d2k/rules/harkonnen.yaml +++ b/mods/d2k/rules/harkonnen.yaml @@ -45,6 +45,24 @@ BARRH: CancelledAudio: HI_CANCL.AUD BlockedAudio: HI_NROOM.AUD +GUNTOWERH: + Inherits: ^GUNTOWER + Buildable: + Prerequisites: conyardh + Owner: harkonnen + +ROCKETTOWERH: + Inherits: ^ROCKETTOWER + Buildable: + Prerequisites: radarh + Owner: harkonnen + +WALLH: + Inherits: ^WALL + Buildable: + Prerequisites: conyardh + Owner: harkonnen + HIGHTECHH: Inherits: ^HIGHTECH Buildable: diff --git a/mods/d2k/rules/ordos.yaml b/mods/d2k/rules/ordos.yaml index 9a7f67a7a5..633c51ea1e 100644 --- a/mods/d2k/rules/ordos.yaml +++ b/mods/d2k/rules/ordos.yaml @@ -45,6 +45,24 @@ BARRO: CancelledAudio: OI_CANCL.AUD BlockedAudio: OI_NROOM.AUD +GUNTOWERO: + Inherits: ^GUNTOWER + Buildable: + Prerequisites: conyardo + Owner: ordos + +ROCKETTOWERO: + Inherits: ^ROCKETTOWER + Buildable: + Prerequisites: radaro + Owner: ordos + +WALLO: + Inherits: ^WALL + Buildable: + Prerequisites: conyardo + Owner: ordos + HIGHTECHO: Inherits: ^HIGHTECH Buildable: diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 716711bc32..8a175de16f 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -377,11 +377,10 @@ LowPowerSlowdown: 3 ProductionBar: -WALL: +^WALL: Buildable: Queue: Defense BuildPaletteOrder: 1000 - Owner: atreides,harkonnen,ordos SoundOnDamageTransition: DamagedSound: DestroyedSound: @@ -392,6 +391,7 @@ WALL: Tooltip: Name: Concrete Wall Description: Stop units and blocks enemy fire. + Icon: wallicon AppearsOnRadar: Building: Dimensions: 1,1 @@ -423,12 +423,11 @@ WALL: Types:Wall Sellable: -GUNTOWER: +^GUNTOWER: Inherits: ^Building Buildable: Queue: Defense BuildPaletteOrder: 40 - Owner: atreides,harkonnen,ordos Valued: Cost: 600 Tooltip: @@ -436,7 +435,7 @@ GUNTOWER: Description: Anti-Armor base defense.\n Strong vs Tanks\n Weak vs Infantry, Aircraft Icon: turreticon Building: - Power: -40 + Power: -20 -GivesBuildableArea: Health: HP: 400 @@ -447,6 +446,7 @@ GUNTOWER: RenderRangeCircle: -RenderBuilding: RenderBuildingSeparateTurret: + HasMakeAnimation: false Turreted: ROT: 12 InitialFacing: 50 @@ -456,6 +456,40 @@ GUNTOWER: RequiresPower: CanPowerDown: +^ROCKETTOWER: + Inherits: ^Building + RequiresPower: + Valued: + Cost: 1000 + Tooltip: + Name: Rocket Tower + Icon: rturreticon + Description: Anti-armor defensive structure.\n Strong vs Light Vehicles, Tanks\n Weak vs Infantry + Buildable: + Queue: Defense + BuildPaletteOrder: 60 + Building: + Power: -40 + -GivesBuildableArea: + Health: + HP: 800 + Armor: + Type: Heavy + RevealsShroud: + Range: 8 + -RenderBuilding: + RenderBuildingSeparateTurret: + HasMakeAnimation: false + AttackTurreted: + PrimaryWeapon: TowerMissle + PrimaryOffset: 0,0,5,2 + PrimaryLocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25 + Turreted: + ROT: 12 + InitialFacing: 50 + AutoTarget: + RenderRangeCircle: + ^REPAIR: Inherits: ^Building Buildable: diff --git a/mods/d2k/sequences.yaml b/mods/d2k/sequences.yaml index 7705cc0334..293d8b00f1 100644 --- a/mods/d2k/sequences.yaml +++ b/mods/d2k/sequences.yaml @@ -18,7 +18,35 @@ harvester: Start: 10 Length: 1 -wall: +walla: + idle: + Start: 0 + Length: 16 + scratched-idle: + Start: 0 + Length: 16 + damaged-idle: + Start: 16 + Length: 16 + critical-idle: + Start: 16 + Length: 16 + +wallh: + idle: + Start: 0 + Length: 16 + scratched-idle: + Start: 0 + Length: 16 + damaged-idle: + Start: 16 + Length: 16 + critical-idle: + Start: 16 + Length: 16 + +wallo: idle: Start: 0 Length: 16 @@ -75,7 +103,7 @@ sonictank: Start: 0 Facings: 32 -guntower: +guntowera: idle: Start: 0 Facings: 1 @@ -91,7 +119,106 @@ guntower: damaged-recoil: Start: 0 Facings: 1 - turret: gunturret + turret: gunturreta + Start: 0 + Facings: 32 + +guntowerh: + idle: + Start: 0 + Facings: 1 + recoil: + Start: 0 + Facings: 1 + make: silomake + Start: 0 + Length: * + damaged-idle: + Start: 0 + Facings: 1 + damaged-recoil: + Start: 0 + Facings: 1 + turret: gunturreth + Start: 0 + Facings: 32 + +guntowero: + idle: + Start: 0 + Facings: 1 + recoil: + Start: 0 + Facings: 1 + make: silomake + Start: 0 + Length: * + damaged-idle: + Start: 0 + Facings: 1 + damaged-recoil: + Start: 0 + Facings: 1 + turret: gunturreto + Start: 0 + Facings: 32 + +rockettowera: + idle: + Start: 0 + Facings: 1 + recoil: + Start: 0 + Facings: 1 + make: silomake + Start: 0 + Length: * + damaged-idle: + Start: 0 + Facings: 1 + damaged-recoil: + Start: 0 + Facings: 1 + turret: rocketturreta + Start: 0 + Facings: 32 + +rockettowerh: + idle: + Start: 0 + Facings: 1 + recoil: + Start: 0 + Facings: 1 + make: silomake + Start: 0 + Length: * + damaged-idle: + Start: 0 + Facings: 1 + damaged-recoil: + Start: 0 + Facings: 1 + turret: rocketturreth + Start: 0 + Facings: 32 +rockettowero: + idle: + Start: 0 + Facings: 1 + recoil: + Start: 0 + Facings: 1 + make: silomake + Start: 0 + Length: * + damaged-idle: + Start: 0 + Facings: 1 + damaged-recoil: + Start: 0 + Facings: 1 + turret: rocketturreto Start: 0 Facings: 32 diff --git a/mods/d2k/weapons.yaml b/mods/d2k/weapons.yaml index a1ba692d4d..6a8341c8c3 100644 --- a/mods/d2k/weapons.yaml +++ b/mods/d2k/weapons.yaml @@ -93,11 +93,41 @@ TurretGun: Light: 75% Concrete: 50% Explosion: small_explosion - WaterExplosion: small_splash InfDeath: 3 SmudgeType: SandCrater, RockCrater Damage: 60 +TowerMissle: + ROF: 40 + Range: 7 + Report: MISSLE1 + ValidTargets: Ground, Air + Burst: 2 + BurstDelay: 10 + Projectile: Missile + Arm: 0 + High: yes + Shadow: no + Proximity: yes + Inaccuracy: 3 + Image: DRAGON + ROT: 10 + Trail: smokey + Speed: 25 + RangeLimit: 40 + Warhead: + Spread: 6 + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% + InfDeath: 2 + Explosion: small_explosion + ImpactSound: kaboom12 + SmudgeType: SandCrater, RockCrater + Damage: 60 + 25mm: ROF: 13 Range: 4 @@ -113,7 +143,6 @@ TurretGun: Heavy: 40% Concrete: 30% Explosion: small_explosion - WaterExplosion: small_splash InfDeath: 3 SmudgeType: SandCrater, RockCrater Damage: 16 @@ -133,7 +162,6 @@ TurretGun: Light: 75% Concrete: 50% Explosion: small_explosion - WaterExplosion: small_splash InfDeath: 3 SmudgeType: SandCrater, RockCrater Damage: 30 @@ -155,7 +183,6 @@ TurretGun: Light: 75% Concrete: 50% Explosion: small_explosion - WaterExplosion: small_splash InfDeath: 3 SmudgeType: SandCrater, RockCrater Damage: 40 @@ -176,7 +203,6 @@ TurretGun: Light: 75% Concrete: 50% Explosion: small_explosion - WaterExplosion: small_splash InfDeath: 3 SmudgeType: SandCrater, RockCrater Damage: 50 @@ -213,7 +239,6 @@ TurretGun: SmudgeType: SandCrater, RockCrater Damage: 25 -#for rocket turret MammothTusk: ROF: 60 Range: 8 @@ -298,7 +323,6 @@ ChainGun: Heavy: 25% Concrete: 25% Explosion: piffs - WaterExplosion: small_splash InfDeath: 1 Damage: 20 @@ -317,7 +341,6 @@ M60mg: Heavy: 10% Concrete: 10% Explosion: piffs - WaterExplosion: small_splash InfDeath: 1 Damage: 15