diff --git a/mods/d2k/TODO b/mods/d2k/TODO new file mode 100644 index 0000000000..3a45d82bf7 --- /dev/null +++ b/mods/d2k/TODO @@ -0,0 +1,31 @@ +# make R8Reader not always scan the whole file on load +# brick walls don't fit, requires updated RenderBuildingWall +# factories and refinery require overlays (something like RenderWeaponFactory) +# make structures appear earlier when errecting from ground +# silo frames don't fit, requires updated RenderSilo +# harvester unload frames missing (too few DATA.R8 frames in general) +# carryalls should automatically transport harvesters (needs complex logic) +# windtrap animations missing +# outpost animations missing +# construction yard crane animations missing +# Arrakis tileset crashes the game +# create a tileset extractor for gamefiles to remove copyrighted content from distribution +# replace ore with spice and mines with spice blooms +# add game logic for concrete plates +# allow placing turrets on walls +# support separate turret sequence with RenderBuildingTurreted +# repair bay should repair vehicles +# add ornithocopter (might need new RenderOrni code) +# add infantry +# add tanks +# add sandworm +# add thumper +# allow upgrades +# add ordos/harkonnen (avoid redundancy using inheritances) +# add voices (Dune 2000/DATA/SFX folder contains .aud files) +# muzzles and explosions with lightning (might need engine update) +# ingame gamefile extractor at first start when SHPs are not found +# create a shellmap +# rework chrome UI, dialoges, tabs +# add install rules to makefile (once more polished) +# idea: frame 2998 (looks like hole) could become a tunnel to make Ordos really insidious (similiar mechanism to paratroopers powerproxy) \ No newline at end of file diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index 9bc28d10eb..12c793955e 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -20,6 +20,7 @@ Rules: mods/d2k/rules/vehicles.yaml mods/d2k/rules/structures.yaml mods/d2k/rules/aircraft.yaml + mods/d2k/rules/infantry.yaml Sequences: mods/d2k/sequences.yaml @@ -37,6 +38,7 @@ Assemblies: ChromeLayout: Weapons: + mods/d2k/weapons.yaml Voices: mods/d2k/voices.yaml @@ -44,6 +46,8 @@ Voices: TileSets: mods/d2k/tilesets/arrakis.yaml +#TileSize: 32 + Music: Movies: @@ -74,4 +78,4 @@ Fonts: Size:10 TinyBold: Font:FreeSansBold.ttf - Size:10 + Size:10 \ No newline at end of file diff --git a/mods/d2k/rules/aircraft.yaml b/mods/d2k/rules/aircraft.yaml index d77c297bb8..fa38554b87 100644 --- a/mods/d2k/rules/aircraft.yaml +++ b/mods/d2k/rules/aircraft.yaml @@ -32,4 +32,30 @@ CARRYALL: MaxWeight: 1 PipCount: 1 FallsToEarth: - Explosion: UnitExplode \ No newline at end of file + Explosion: UnitExplode + +C17: + ParaDrop: + LZRange: 1 + Inherits: ^Plane + Tooltip: + Name: Frigate + Description: Supply spacecraft + Plane: + ROT: 5 + Speed: 35 + Health: + HP: 25 + Armor: + Type: Heavy + RenderUnit: + Image: frigate + PlayerPalette: d2kplayer + WithShadow: + Cargo: + MaxWeight: 10 + PipCount: 10 + Invulnerable: + -Selectable: + -GainsExperience: + FlyAwayOnIdle: \ No newline at end of file diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml new file mode 100644 index 0000000000..9162f020cf --- /dev/null +++ b/mods/d2k/rules/infantry.yaml @@ -0,0 +1,23 @@ +#RIFLE: +# Inherits: ^Infantry +# Buildable: +# Queue: Infantry +# BuildPaletteOrder: 10 +# Owner: atreides +# Valued: +# Cost: 100 +# Tooltip: +# Name: Rifle Infantry +# Description: General-purpose infantry.\n Strong vs Infantry\n Weak vs Vehicles +# Selectable: +# Bounds: 12,17,0,-9 +# Health: +# HP: 50 +# Mobile: +# Speed: 4 +# AttackFrontal: +# PrimaryWeapon: M1Carbine +# TakeCover: +# -RenderInfantry: +# RenderInfantryProne: +# IdleAnimations: idle1,idle2 \ No newline at end of file diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index d8fd5c2bae..d0f99461bc 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -131,6 +131,59 @@ HIGHTECHA: PrimaryBuilding: ProductionBar: +RESEARCHA: + Inherits: ^Building + Buildable: + Queue: Building + BuildPaletteOrder: 50 + Prerequisites: heavya,radara + Owner: atreides + Valued: + Cost: 2000 + Tooltip: + Name: IX Research Center + Description: Provides advanced units + Building: + Power: -30 + Footprint: _x_ xxx xxx + Dimensions: 3,3 + Health: + HP: 1000 + Armor: + Type: Light + RevealsShroud: + Range: 4 + Bib: + RenderBuilding: + PlayerPalette: d2kplayer + +PALACEA: + Inherits: ^Building + Buildable: + Queue: Building + BuildPaletteOrder: 50 + Prerequisites: researcha + Owner: atreides + Valued: + Cost: 2000 + Tooltip: + Name: Atreides Palace + Description: Provides advanced technology + Building: + Power: -30 + Footprint: xxx xxx xxx + Dimensions: 3,3 + Health: + HP: 2000 + Armor: + Type: Light + RevealsShroud: + Range: 4 + Bib: + RenderBuilding: + PlayerPalette: d2kplayer + + REFA: Inherits: ^Building Buildable: @@ -211,8 +264,8 @@ LIGHTA: Description: produces light vehicles. Building: Power: -30 - Footprint: xxx xxx xxx - Dimensions: 3,3 + Footprint: xxx xxx + Dimensions: 3,2 Health: HP: 750 Armor: @@ -294,6 +347,50 @@ RADARA: PlayerPalette: d2kplayer ProvidesRadar: +STARPORTA: + Inherits: ^Building + Valued: + Cost: 2000 + Tooltip: + Name: Starport + Description: Provides a dropzone for vehicle reinforcements + ProvidesCustomPrerequisite: + Prerequisite: anystarport + Buildable: + Queue: Building + BuildPaletteOrder: 60 + Prerequisites: radara + Owner: atreides + Building: + Power: -30 + Footprint: xxx xxx xxx + Dimensions: 3,3 + Health: + HP: 1000 + RevealsShroud: + Range: 7 + RenderBuilding: + PlayerPalette: d2kplayer + Bib: + RallyPoint: + RallyPoint: 4,2 + BelowUnits: + Exit@1: + SpawnOffset: -24,0 + ExitCell: 3,1 + ProductionAirdrop: + Produces: Vehicle + ProductionQueue: + Type: Vehicle + Group: Vehicle + BuildSpeed: .4 + LowPowerSlowdown: 3 + QueuedAudio: + ReadyAudio: + OnHoldAudio: + CancelledAudio: + ProductionBar: + WALLA: Inherits: ^Wall Buildable: @@ -318,4 +415,67 @@ WALLA: Wall: CrushClasses: heavywall RenderBuildingWall: - Palette: d2k \ No newline at end of file + Palette: d2k + +GUNTOWERA: + Inherits: ^Building + Buildable: + Queue: Defense + BuildPaletteOrder: 40 + Prerequisites: barra + Owner: atreides + Valued: + Cost: 600 + Tooltip: + Name: Turret + Description: Anti-Armor base defense.\n Strong vs Tanks\n Weak vs Infantry, Aircraft + Icon: turreticon + Building: + Power: -40 + -GivesBuildableArea: + Health: + HP: 400 + Armor: + Type: Heavy + RevealsShroud: + Range: 7 + Turreted: + ROT: 12 + InitialFacing: 50 + RenderBuildingTurreted: + Palette: d2k + AttackTurreted: + PrimaryWeapon: TurretGun + AutoTarget: + -RenderBuilding: + RenderRangeCircle: + +REPAIRA: + Inherits: ^Building + Buildable: + Queue: Building + BuildPaletteOrder: 30 + Prerequisites: heavya + Owner: atreides + Valued: + Cost: 1000 + Tooltip: + Name: Repair Pad + Description: Repairs vehicles, and allows\n the construction of additional bases. + Building: + Power: -30 + Footprint: xxx xxx xxx + Dimensions: 3,3 + Health: + HP: 800 + Armor: + Type: Wood + RevealsShroud: + Range: 5 + RenderBuilding: + PlayerPalette: d2kplayer + BelowUnits: + Reservable: + RallyPoint: + RepairsUnits: + Interval: 10 \ No newline at end of file diff --git a/mods/d2k/rules/vehicles.yaml b/mods/d2k/rules/vehicles.yaml index ae96a0571b..7fc4a71a7a 100644 --- a/mods/d2k/rules/vehicles.yaml +++ b/mods/d2k/rules/vehicles.yaml @@ -1,10 +1,39 @@ MCV: + Inherits: ^Vehicle + Buildable: + Queue: Vehicle + BuildPaletteOrder: 110 + Prerequisites: heavya,repaira + Owner: atreides + Valued: + Cost: 2000 + Tooltip: + Name: Mobile Construction Vehicle + Description: Deploys into another Construction Yard.\n Unarmed + Selectable: + Priority: 3 + Bounds: 42,42 + Health: + HP: 600 + Armor: + Type: Light + Mobile: + Speed: 6 + Crushes: crate, infantry + RevealsShroud: + Range: 4 Transforms: Facing: 10 IntoActor: conyarda + Offset:-1,-1 + TransformSounds: placbldg.aud, build5.aud + NoTransformSounds: nodeply1.aud RenderUnit: Image: MCV PlayerPalette: d2kplayer + MustBeDestroyed: + BaseBuilding: + -AttackMove: HARVESTER: Inherits: ^Vehicle @@ -94,7 +123,105 @@ QUAD: RenderUnit: PlayerPalette: d2kplayer AttackFrontal: - PrimaryWeapon: Dragon + PrimaryWeapon: QuadRockets PrimaryOffset: 0,0,0,-2 PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25 + AutoTarget: + +COMBATA: + Inherits: ^Tank + Buildable: + Queue: Vehicle + BuildPaletteOrder: 60 + Prerequisites: heavya + Owner: atreides + Valued: + Cost: 850 + Tooltip: + Name: Combat Tank + Description: Atreides Main Battle Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft + Health: + HP: 450 + Armor: + Type: Heavy + Mobile: + Speed: 6 + Crushes: crate, infantry + RevealsShroud: + Range: 5 + Turreted: + ROT: 5 + AttackTurreted: + PrimaryWeapon: 90mm + PrimaryRecoil: 3 + PrimaryRecoilRecovery: 0.9 + RenderUnitTurreted: + PlayerPalette: d2kplayer + AutoTarget: + Explodes: + Weapon: UnitExplodeSmall + EmptyWeapon: UnitExplodeSmall + Selectable: + Bounds: 30,30 + +SIEGE: + Inherits: ^Tank + Buildable: + Queue: Vehicle + BuildPaletteOrder: 80 + Prerequisites: radara + Owner: atreides + Valued: + Cost: 600 + Tooltip: + Name: Siege Tank + Description: Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft + Health: + HP: 75 + Armor: + Type: Light + Mobile: + Speed: 6 + Crushes: crate, infantry + RevealsShroud: + Range: 5 + Turreted: + ROT: 5 + AttackTurreted: + PrimaryWeapon: 155mm + PrimaryRecoil: 3 + PrimaryRecoilRecovery: 0.9 + RenderUnitTurreted: + PlayerPalette: d2kplayer + Explodes: + Weapon: UnitExplode + Chance: 75 + AutoTarget: + +Missile: + Inherits: ^Tank + Valued: + Cost: 800 + Tooltip: + Name: Missile Tank + Description: Long range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft + Buildable: + Queue: Vehicle + BuildPaletteOrder: 50 + Prerequisites: heavya + Owner: atreides + Mobile: + Speed: 6 + Health: + HP: 120 + Armor: + Type: Light + RevealsShroud: + Range: 6 + AttackFrontal: + PrimaryWeapon: 227mm + PrimaryOffset: 0,6,0,-3 + PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0 + RenderUnit: + PlayerPalette: d2kplayer AutoTarget: \ No newline at end of file diff --git a/mods/d2k/sequences.yaml b/mods/d2k/sequences.yaml index d87b2aa9c2..32c77eb9fc 100644 --- a/mods/d2k/sequences.yaml +++ b/mods/d2k/sequences.yaml @@ -27,6 +27,29 @@ conyarda: damaged-idle: Start: 1 +repaira: + idle: + Start: 0 + make: repairmake + Start: 0 + Length: * + damaged-idle: + Start: 1 + +starporta: + idle: + Start: 0 + active: + Start: 0 + Length: 1 + damaged-idle: + Start: 1 + damaged-active: + Start: 1 + make: starportmake + Start: 0 + Length: * + walla: idle: Start: 0 @@ -98,6 +121,25 @@ hightecha: damaged-idle: Start: 1 +researcha: + idle: + Start: 0 + make: researchmake + Start: 0 + Length: * + damaged-idle: + Start: 1 + +palacea: + idle: + Start: 0 + make: palacemake + Start: 0 + Length: * + damaged-idle: + Start: 1 + + lighta: idle: Start: 1 @@ -132,4 +174,94 @@ trike: quad: idle: Start: 0 - Facings: 32 \ No newline at end of file + Facings: 32 + +combata: + idle: + Start: 0 + Facings: 32 + turret: combataturret + Start: 0 + Facings: 32 + +siege: + idle: + Start: 0 + Facings: 32 + turret: siegeturret + Start: 0 + Facings: 32 + +missile: + idle: + Start: 0 + Facings: 32 + +guntowera: + 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: gunturret + Start: 0 + Facings: 32 + +frigate: + idle: + Start: 0 + Facings: 1 + +#rifle: +# stand: +# Start: 0 +# Facings: 8 +# run: +# Start: 8 +# Length: 6 +# Facings: 8 +# shoot: +# Start: 56 +# Length: 8 +# Facings: 8 +# prone-stand: +# Start: 136 +# Length: 4 +# Facings: 8 +# prone-run: +# Start: 136 +# Length: 4 +# Facings: 8 +# standup-0: +# Start: 176 +# Length: 2 +# Facings: 8 +# prone-shoot: +# Start: 168 +# Length: 8 +# Facings: 8 +# die1: +# Start: 288 +# Length: 8 +# die2: +# Start: 296 +# Length: 8 +# die3: +# Start: 304 +# Length: 8 +# die4: +# Start: 312 +# Length: 12 +# die5: +# Start: 324 +# Length: 18 \ No newline at end of file diff --git a/mods/d2k/weapons.yaml b/mods/d2k/weapons.yaml new file mode 100644 index 0000000000..afe343912f --- /dev/null +++ b/mods/d2k/weapons.yaml @@ -0,0 +1,63 @@ +QuadRockets: + ROF: 60 + Range: 7 + Report: MISSILE6 + ValidTargets: Ground, Air + Burst: 2 + BurstDelay: 0 + Projectile: Missile + Arm: 0 + High: yes + Shadow: no + Proximity: yes + Inaccuracy: 3 + Image: DRAGON + ROT: 10 + Trail: smokey + Speed: 35 + RangeLimit: 40 + Warhead: + Spread: 3 + Versus: + None: 50% + Wood: 30% + Light: 75% + Heavy: 30% + InfDeath: 3 + Explosion: med_explosion + WaterExplosion: med_splash + ImpactSound: kaboom12 + SmudgeType: Crater + Damage: 35 + +227mm: + ROF: 80 + Range: 10 + MinRange: 2 + Burst: 6 + BurstDelay: 1 + Report: MISSILE6 + ValidTargets: Ground + Projectile: Bullet + Arm: 5 + High: yes + Shadow: yes + Inaccuracy: 30 + Angle: 0.1 + Image: DRAGON + ROT: 5 + Trail: smokey + Speed: 15 + Warhead: + Spread: 10 + Versus: + None: 30% + Wood: 75% + Light: 75% + Heavy: 50% + InfDeath: 3 + Explosion: med_explosion + WaterExplosion: med_splash + ImpactSound: kaboom12 + SmudgeType: Crater + Damage: 25 \ No newline at end of file diff --git a/ripD2kGameFiles.sh b/ripD2kGameFiles.sh index b7501f3889..afed7b29df 100755 --- a/ripD2kGameFiles.sh +++ b/ripD2kGameFiles.sh @@ -4,10 +4,10 @@ PAL="mods/d2k/bits/d2k.pal" mono OpenRA.Utility.exe --r8 $R8 $PAL 194 205 "spice" mono OpenRA.Utility.exe --shp spice.png 48 -mono OpenRA.Utility.exe --r8 $R8 $PAL 206 457 "rifleinfantry" --infantry -mono OpenRA.Utility.exe --shp rifleinfantry.png 48 -mono OpenRA.Utility.exe --r8 $R8 $PAL 458 693 "rocketinfantry" --infantry -mono OpenRA.Utility.exe --shp rocketinfantry.png 48 +mono OpenRA.Utility.exe --r8 $R8 $PAL 206 457 "rifle" --infantry +mono OpenRA.Utility.exe --shp rifle.png 48 +mono OpenRA.Utility.exe --r8 $R8 $PAL 458 693 "rocket" --infantry +mono OpenRA.Utility.exe --shp rocket.png 48 mono OpenRA.Utility.exe --r8 $R8 $PAL 694 929 "fremen" --infantry mono OpenRA.Utility.exe --shp fremen.png 48 mono OpenRA.Utility.exe --r8 $R8 $PAL 930 1165 "sardaukar" --infantry @@ -117,8 +117,8 @@ mono OpenRA.Utility.exe --r8 $R8 $PAL 3679 3686 "sell" mono OpenRA.Utility.exe --shp sell.png 48 #explosions and muzzle flash -mono OpenRA.Utility.exe --r8 $R8 $PAL 4011 4011 "infrantryicon" -mono OpenRA.Utility.exe --shp infrantryicon.png 60 +mono OpenRA.Utility.exe --r8 $R8 $PAL 4011 4011 "rifleicon" +mono OpenRA.Utility.exe --shp rifleicon.png 60 mono OpenRA.Utility.exe --r8 $R8 $PAL 4012 4012 "bazookaicon" mono OpenRA.Utility.exe --shp bazookaicon.png 60 mono OpenRA.Utility.exe --r8 $R8 $PAL 4013 4013 "engineericon" @@ -271,7 +271,7 @@ mono OpenRA.Utility.exe --r8 $R8 $PAL 4254 4273 "radarmake" --building mono OpenRA.Utility.exe --shp radarmake.png 96 mono OpenRA.Utility.exe --r8 $R8 $PAL 4274 4294 "highmake" --building mono OpenRA.Utility.exe --shp highmake.png 96 -mono OpenRA.Utility.exe --r8 $R8 $PAL 4275 4312 "lightmake" --building +mono OpenRA.Utility.exe --r8 $R8 $PAL 4295 4312 "lightmake" --building mono OpenRA.Utility.exe --shp lightmake.png 96 mono OpenRA.Utility.exe --r8 $R8 $PAL 4313 4327 "silomake" --building mono OpenRA.Utility.exe --shp silomake.png 32