diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index ba579092..2c7e98e2 100644 Binary files a/mpq/arr/images.datex and b/mpq/arr/images.datex differ diff --git a/mpq/arr/images.tbl b/mpq/arr/images.tbl index b2c6834d..5e1fcb14 100644 Binary files a/mpq/arr/images.tbl and b/mpq/arr/images.tbl differ diff --git a/mpq/arr/images.txt b/mpq/arr/images.txt index 001ebf0e..3510f45b 100644 --- a/mpq/arr/images.txt +++ b/mpq/arr/images.txt @@ -2486,8 +2486,8 @@ Battery Cell Battery Cell Shadow Battery Cell Shadow (Carried) Flamethrower (Blue) -Extended Image #1486 -Extended Image #1487 +Watchdog Engine +Watchdog Engine Idle Extended Image #1488 Extended Image #1489 Extended Image #1490 diff --git a/mpq/game/icons.grp b/mpq/game/icons.grp index d5f36b7e..4f210f4b 100644 Binary files a/mpq/game/icons.grp and b/mpq/game/icons.grp differ diff --git a/mpq/rez/stat.txt b/mpq/rez/stat.txt index decdf785..cd50dcba 100644 --- a/mpq/rez/stat.txt +++ b/mpq/rez/stat.txt @@ -319,7 +319,7 @@ Piety Wards<0> Morrigan Requires:<10> Covenant<0> f<1><4>Train Morrigan <1>(<3>G<1>)<10>Crowd-control infantry.<0> ¤<3><4>Dampening Field <2>(passive)<10>This combatant becomes cloaked for 2 seconds after attacking.<0> -f<1><4>Bestow Maverick <1>(<3>F<1>)<10>Disciplined infantry.<0> +a<1><4>Bestow Maverick <1>(<3>F<1>)<10>Disciplined infantry.<0> ¤<3><4>Accelerated Speech <2>(passive)<10>While the Missionary is within 2 range of its target, it gains +2 armor penetration.<0> ¤<3><4>Flanking Spines <2>(passive)<10>When targeting debuffed enemies, Almaksalisk attacks ignore armor.<0> Anchor Attack requires:<10> Loaded ranged combatant<0> @@ -406,7 +406,7 @@ r<1><4>Warp in Archon <1>(<3>R<1>)<10>Frontline martyr.<0> ¤<3><4>Deconstruction <2>(passive)<10>Targets struck by the Pazuzu are debuffed for 5 seconds, and deal 5% of their weapon damage per stack to themselves when attacking.<0> e<1><4>Build Pazuzu <1>(<3>E<1>)<10>Anti-mech hovertank.<0> a<1><4>Mutate into Vornath Pond <1>(<3>A<1>)<10>Swarm node. Enables Nathrokors and Vorvrokors.<0> -a<1><4>Raise Aspirant <1>(<3>A<1>)<10>Ascendent walker.<0> +g<1><4>Raise Aspirant <1>(<3>G<1>)<10>Ascendent walker.<0> t<1><4>Mutate into Skibact Scab <1>(<3>T<1>)<10>Assault node. Enables Skithrokors and Bactalisks.<0> Terran Infantry Armor<0> Terran Vehicle Plating<0> @@ -435,12 +435,12 @@ Axitrilisk requires:<10> Axtoth Axis<0> ¤<3><4>Anodyne Annex <2>(passive)<10>Dying hostiles that were struck by the Empress in the last 2 seconds become subserviant and zombified.<10>Zombies are stunned if allied masters are outside 8 range for longer than 1 second, and expire if outside 8 range for 5 seconds. Zombies have their corpses avenged 1 second after death.<0> b<1><4>Bestow Blackjack <1>(<3>B<1>)<10>Dutiful walker drone.<0> ¤<3><4>Gamete Meiosis <2>(passive)<10>Whenever a broodspawn is birthed, allied Matraleths within 6 range of the birthing site gain +5 energy.<0> -z<1><4>Bestow Luminary <1>(<3>Z<1>)<10>Disruptive specialist craft. Provides detection.<0> +s<1><4>Bestow Luminary <1>(<3>S<1>)<10>Disruptive specialist craft. Provides detection.<0> a<1><4>Bestow Aspirant <1>(<3>A<1>)<10>Unstable strider.<0> s<1><4>Train Striga <1>(<3>S<1>)<10>Isolating infantry.<0> z<1><4>Raise Luminary <1>(<3>Z<1>)<10>Disruptive craft. Provides detection.<0> ¤<3><4>Incineration <2>(passive)<10>Victims of this combatant take 4 damage per second for 2 seconds.<10>If they take fatal damage during this time, their corpse explodes into a landborne fire field that applies Apollyoid Adhesive.<0> -q<1><4>Splice Tarasque <1>(<3>Q<1>)<10>Frontal biotank.<0> +t<1><4>Splice Tarasque <1>(<3>T<1>)<10>Frontal biotank.<0> g<1><4>Assemble Analogue <1>(<3>G<1>)<10>Durable disruption drone.<0> z<1><4>Splice Anticthon <1>(<3>Z<1>)<10>Corpse engine.<0> c<1><4>Mutate to Chokral Chaszal <1>(<3>C<1>)<10>Assault node. Enables Cherbrathalors, Okrimnilisks, and Algoztalisks.<0> @@ -480,7 +480,7 @@ Sovrol Aspect requires:<10> Tosvrol Haunt<0> d<1><4>Morph into Sovroleths <1>(<3>D<1>)<10>Symbiote strain.<0> ¤<3><4>Whetted Appetite <2>(passive)<10>Seeing death empowers the Mortothrokor, granting 5% lifesteal and increased attack speed.<10><10>This bonus can stack and expires after being out of combat for 2 seconds.<0> ¤<3><4>Excoriation Assembly <2>(passive)<10>Upon taking fatal damage while mobile and above solid ground, Tirades descend and embed themselves into the surface, becoming immobile and more heavily-armored.<10>During this time, they target all hostiles within their weapon range.<0> -c<1><4>Splice Cohort <1>(<3>C<1>)<10>Everlasting infantry.<0> +r<1><4>Splice Cohort <1>(<3>R<1>)<10>Everlasting infantry.<0> ¤<3><4>Mitosal Fog <2>(passive)<10>When the Nathrelisk attacks, it releases a cloud that heals all units within 1 range for 2 HP before dissipating.<0> z<0><4>Swarming Strains <1>(<3>Z<1>)<0> x<0><4>Assault Strains <1>(<3>X<1>)<0> @@ -1139,7 +1139,7 @@ w<1><4>Build Cuirass <1>(<3>W<1>)<10>Durable frontline walker.<0> g<1><4>Warp in Gladius <1>(<3>G<1>)<10>Sustaining corvette.<0> r<5><4>Morph into Iroleth <1>(<3>R<1>)<10>Transport strain. Provides detection.<0> <0> -t<1><4>Build Lodestone <1>(<3>T<1>)<10>Defensive emplacement. Detects hidden enemies.<0> +d<1><4>Build Lodestone <1>(<3>D<1>)<10>Defensive emplacement. Detects hidden enemies.<0> t<1><4>Build Parthenon <1>(<3>T<1>)<10>Supportive production.<0> d<1><4>Build Madrigal <1>(<3>D<1>)<10>Versatile hovertank.<0> r<1><4>Build Scrapyard <1>(<3>R<1>)<10>Enables Blackjacks and Matadors.<0> @@ -1499,7 +1499,7 @@ Olympian requires:<10> Guildhall<0> Autocrat requires:<10> Guildhall<0> Anticthon requires:<10> Biotic Bastion<0> Aion requires:<10> Biotic Bastion<0> -z<1><4>Build Serathiel <1>(<3>Z<1>)<10>Vanguard specialist craft.<0> +s<1><4>Build Serathiel <1>(<3>S<1>)<10>Vanguard specialist craft.<0> Serathiel requires:<10> Commandment<0> <0> Expansion Zerg Campaign Area Town<0> @@ -1508,7 +1508,7 @@ Expansion Zerg Campaign Area Town<0> ¤<3><4>Harmony Drive <2>(passive)<10>Clarions gain increased movement speed and acceleration based on shields.<0> Expansion Protoss Campaign Area Town<0> <0> -c<1><4>Build Philoc <1>(<3>C<1>)<10>All-purpose fighter.<0> +w<1><4>Build Philoc <1>(<3>W<1>)<10>All-purpose fighter.<0> ¤<3><4>Death Cycle <2>(passive)<10>Broodspawn have timed life when away from cagra and sires. On attack, they gain 1 second of timed life back. On death, Broodspawn apply Corrosive Touch to hostiles within 3 range for 1 second.<0> Expansion Terran Campaign Area Town<0> <0> @@ -1776,7 +1776,7 @@ e<3><4>Support Mode <1>(<3>E<1>)<10>Returns the Shaman's vision, Nanite Field ra ¤<3><4>Fossilizer Rounds <2>(passive)<10>Negative effects, such as stuns and slows, have their durations extended by Goska's attacks.<0> <0> ¤<3><4>Relentless Aggression <2>(passive)<10>Ghitorokors gain 10% increased attack speed with each attack until they reach the attack speed cap. This bonus falls off after 2 seconds of not being refreshed.<0> -g<1><4>Train Silvertongue <1>(<3>G<1>)<10>Deceiving infantry.<0> +t<1><4>Train Silvertongue <1>(<3>T<1>)<10>Deceiving infantry.<0> ¤<3><4>Recursion Rounds <2>(passive)<10>Each Cyclops attack leaves behind a smart munition that detonates after 2 seconds, damaging all hostiles within 2 range.<0><10><0> g<1><4>Build Dugout <1>(<3>G<1>)<10>Light garrison.<0> z<1><4>Build Azazel <1>(<3>Z<1>)<10>Defensive support craft.<0> diff --git a/mpq/scripts/iscript_terran.bin b/mpq/scripts/iscript_terran.bin index 82f0361f..99c677a3 100644 Binary files a/mpq/scripts/iscript_terran.bin and b/mpq/scripts/iscript_terran.bin differ diff --git a/mpq/scripts/iscript_terran.txt b/mpq/scripts/iscript_terran.txt index 4ed8326e..7ffde04b 100644 --- a/mpq/scripts/iscript_terran.txt +++ b/mpq/scripts/iscript_terran.txt @@ -1444,9 +1444,9 @@ SpecialState1 [NONE] # ----------------------------------------------------------------------------- # WraithAfterburnersInit: - wait 1 - engframe 0 - wait 1 + wait 1 + engframe 0 + wait 1 engframe 17 goto WraithAfterburnersInit @@ -3632,7 +3632,7 @@ CastSpell [NONE] GndAttkToIdle SkryrokorLocal00 AirAttkToIdle SkryrokorLocal00 Unused2 [NONE] -Walking SkryrokorLocal00 +Walking Watchdog_Base_Walking WalkingToIdle SkryrokorLocal00 SpecialState1 [NONE] SpecialState2 [NONE] @@ -3656,38 +3656,48 @@ Watchdog_Base_AlmostBuilt: goto SkryrokorLocal00 Watchdog_Base_LiftOff: - nobrkcodestart - playsnd 471 # Misc\LiftOff.WAV - playfram 3 - wait 1 -# playfram 5 - wait 8 -# playfram 2 - wait 8 -# playfram 3 - wait 8 -# playfram 4 - sigorder 16 - nobrkcodeend - goto SkryrokorLocal00 + nobrkcodestart + playsnd 471 # Misc\LiftOff.WAV + playfram 3 + imgol 2489 0 0 # Watchdog Engines Idle (cm\t\watchdog-engine.grp) + wait 1 + playfram 4 + wait 4 + playfram 5 + wait 4 + playfram 6 + wait 4 + playfram 7 + wait 12 + sigorder 16 + nobrkcodeend + goto Watchdog_Base_Walking Watchdog_Base_Landing: - nobrkcodestart - wait 15 - playsnd 472 # Misc\Land.WAV -# playfram 4 - wait 8 -# playfram 3 - wait 8 -# playfram 2 - wait 8 -# playfram 5 - wait 8 - playfram 0x00 - sigorder 16 - nobrkcodeend - playfram 2 - goto SkryrokorLocal00 + nobrkcodestart + imgol 2488 0 0 # Watchdog Engines (cm\t\watchdog-engine.grp) + wait 15 + playsnd 472 # Misc\Land.WAV + playfram 6 + wait 4 + playfram 5 + wait 4 + sigorder 32 + playfram 4 + wait 8 + playfram 3 + wait 8 + playfram 2 + wait 8 + playfram 0x00 + sigorder 16 + nobrkcodeend + playfram 2 + goto Watchdog_Base_WorkingToIdle + +Watchdog_Base_Walking: + imgol 2488 0 0 # Watchdog Engines (cm\t\watchdog-engine.grp) + goto SkryrokorLocal00 Watchdog_Base_Built: imgol 297 0 0 # Watchdog (Turret) (terran\missileT.grp) @@ -22231,4 +22241,58 @@ HarakanGoldenWalking: move 4 wait 1 playfram 0x40 - goto HarakanGoldenWalking \ No newline at end of file + goto HarakanGoldenWalking + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 2488 Watchdog Engine (cm\watchdog-engine.grp) +# 2489 Watchdog Engine 2 (cm\watchdog-engine-2.grp) +.headerstart +IsId 858 +Type 20 +Init BuildingEngineInit +Death Generic_Wait1End +GndAttkInit Generic_Wait1End +AirAttkInit Generic_Wait1End +Unused1 [NONE] +GndAttkRpt Generic_Wait1End +AirAttkRpt Generic_Wait1End +CastSpell Generic_Wait1End +GndAttkToIdle Generic_Wait1End +AirAttkToIdle Generic_Wait1End +Unused2 [NONE] +Walking BuildingEngineInit +WalkingToIdle Generic_Wait1End +SpecialState1 [NONE] +SpecialState2 [NONE] +AlmostBuilt Generic_Wait1End +Built Generic_Wait1End +Landing BuildingEngineLanding +LiftOff Generic_Wait1End +IsWorking Generic_Wait1End +WorkingToIdle Generic_Wait1End +WarpIn [NONE] +.headerend +# ----------------------------------------------------------------------------- # + +BuildingEngineInit: + playfram 0 + wait 1 + playfram 1 + wait 1 + goto BuildingEngineInit + +BuildingEngineLanding: + playfram 0 + wait 1 + playfram 1 + wait 1 + playfram 0 + wait 1 + playfram 1 + wait 1 + playfram 0 + wait 1 + playfram 1 + wait 1 + end \ No newline at end of file diff --git a/mpq/unit/cm/a/intendent.grp b/mpq/unit/cm/a/intendent.grp index 6333b142..3f069001 100644 Binary files a/mpq/unit/cm/a/intendent.grp and b/mpq/unit/cm/a/intendent.grp differ diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index 27a27603..7e41ab02 100644 Binary files a/mpq/unit/cmdbtns/cmdicons.grp and b/mpq/unit/cmdbtns/cmdicons.grp differ diff --git a/mpq/unit/cmdbtns/uniticons.grp b/mpq/unit/cmdbtns/uniticons.grp index 965dba8c..62f68f76 100644 Binary files a/mpq/unit/cmdbtns/uniticons.grp and b/mpq/unit/cmdbtns/uniticons.grp differ diff --git a/mpq/unit/terran/missile.grp b/mpq/unit/terran/missile.grp deleted file mode 100644 index 8d57e615..00000000 Binary files a/mpq/unit/terran/missile.grp and /dev/null differ diff --git a/mpq/unit/terran/missile.lof b/mpq/unit/terran/missile.lof deleted file mode 100644 index 490f595f..00000000 Binary files a/mpq/unit/terran/missile.lof and /dev/null differ diff --git a/mpq/unit/terran/watchdog-damage.lof b/mpq/unit/terran/watchdog-damage.lof new file mode 100644 index 00000000..c3f6cff6 Binary files /dev/null and b/mpq/unit/terran/watchdog-damage.lof differ diff --git a/mpq/unit/terran/watchdog-engine-idle.grp b/mpq/unit/terran/watchdog-engine-idle.grp new file mode 100644 index 00000000..f72bc64f Binary files /dev/null and b/mpq/unit/terran/watchdog-engine-idle.grp differ diff --git a/mpq/unit/terran/watchdog-engine.grp b/mpq/unit/terran/watchdog-engine.grp new file mode 100644 index 00000000..24adc779 Binary files /dev/null and b/mpq/unit/terran/watchdog-engine.grp differ diff --git a/mpq/unit/terran/watchdog-shadow.grp b/mpq/unit/terran/watchdog-shadow.grp new file mode 100644 index 00000000..7603103a Binary files /dev/null and b/mpq/unit/terran/watchdog-shadow.grp differ diff --git a/mpq/unit/terran/watchdog-turret.grp b/mpq/unit/terran/watchdog-turret.grp new file mode 100644 index 00000000..fad8b7da Binary files /dev/null and b/mpq/unit/terran/watchdog-turret.grp differ diff --git a/mpq/unit/terran/watchdog.grp b/mpq/unit/terran/watchdog.grp new file mode 100644 index 00000000..cfccc903 Binary files /dev/null and b/mpq/unit/terran/watchdog.grp differ diff --git a/patchnotes.md b/patchnotes.md index c1e1b38b..8918fd95 100644 --- a/patchnotes.md +++ b/patchnotes.md @@ -1,4 +1,4 @@ -# 4 September 2026 +# 5 September 2026 ## Year 4, month 9, patch 1 ## Patch goals @@ -47,6 +47,7 @@ ## Audiovisuals - New models for: + - Watchdog (c. Solstice) - Magnetar, Ardent Authority, Argosy (c. DeltaCadimus) - Vorvrokor (c. Baelethal) - Landlock, Radix, Cipher, Function, Proscenium (c. fasswawds) diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index 11dbfd36..a0d4266c 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ