diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index 01dfb4b4..2e447300 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 ca5434b4..cf5a19dd 100644 Binary files a/mpq/arr/images.tbl and b/mpq/arr/images.tbl differ diff --git a/mpq/arr/sfxdata.txt b/mpq/arr/sfxdata.txt index 8968f1c6..b3c285f0 100644 --- a/mpq/arr/sfxdata.txt +++ b/mpq/arr/sfxdata.txt @@ -4293,10 +4293,10 @@ Vicar Under Attack 04 Vicar Ability Use 01 Landlock Ambient 01 Conduit Selected 01 -Extended Sound #1 -Extended Sound #1 -Extended Sound #1 -Extended Sound #1 +Cyclops (Futurist) Weaponfire 01 +Cyclops (Futurist) Weaponfire 02 +Cyclops (Futurist) Weaponfire 03 +Cyclops (Futurist) Weaponfire 04 Extended Sound #1 Extended Sound #1 Extended Sound #1 diff --git a/mpq/arr/sounds.txt b/mpq/arr/sounds.txt index b4dea7eb..7c8ee2c8 100644 --- a/mpq/arr/sounds.txt +++ b/mpq/arr/sounds.txt @@ -4292,4 +4292,8 @@ cm\a\vicar\hlp-03.wav cm\a\vicar\hlp-04.wav cm\a\vicar\cst-01.wav cm\a\_building\landlock-amb-01.wav -cm\a\_building\conduit-wht-01.wav \ No newline at end of file +cm\a\_building\conduit-wht-01.wav +cm\f-t\cyclops-futurist\wf-01.wav +cm\f-t\cyclops-futurist\wf-02.wav +cm\f-t\cyclops-futurist\wf-03.wav +cm\f-t\cyclops-futurist\wf-04.wav \ No newline at end of file diff --git a/mpq/arr/units.datex b/mpq/arr/units.datex index b24cf2ea..affdd7a6 100644 Binary files a/mpq/arr/units.datex and b/mpq/arr/units.datex differ diff --git a/mpq/arr/weapons.txt b/mpq/arr/weapons.txt index cc81fd69..c306d1f7 100644 --- a/mpq/arr/weapons.txt +++ b/mpq/arr/weapons.txt @@ -254,7 +254,7 @@ Logi Rockets (Valkyrie Hecaton) C-10 Canister Rifle (Kerrigan) Claws (Kerrigan) None (new) -Extended Weapon #127 +Corto Railgun (Cutlass) Extended Weapon #128 Extended Weapon #129 Extended Weapon #130 diff --git a/mpq/datreq/Buttons.graft b/mpq/datreq/Buttons.graft index e9f0aadc..0b2038a9 100644 Binary files a/mpq/datreq/Buttons.graft and b/mpq/datreq/Buttons.graft differ diff --git a/mpq/game/icons.grp b/mpq/game/icons.grp index 34566fbe..a7889e2c 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 90f2da73..772d97d4 100644 --- a/mpq/rez/stat.txt +++ b/mpq/rez/stat.txt @@ -1133,7 +1133,7 @@ a<1><4>Warp in Aurora <1>(<3>A<1>)<10>Nimble fighter.<0> c<1><4>Build Centaur <1>(<3>C<1>)<10>All-purpose destroyer.<0> t<1><4>Build Magnetar <1>(<3>T<1>)<10>Undeniable cruiser.<0> ¤<3><4>Sunchaser Salvo <2>(passive)<10>While the Centaur is within 4 range of its target, it will also fire its secondary weapon.<0> -¤<3><4>Mitosis <2>(passive)<10>Upon taking damage, the Zoryusthaleth incubates, spawning one Rilirokor after a two-second delay.<0> +¤<3><4>Mitosis <2>(passive)<10>Upon taking damage, this strain incubates, spawning one Rilirokor after a two-second delay.<10>This status cannot be applied if the strain is already incubating.<0> w<1><4>Build Cuirass <1>(<3>W<1>)<10>Durable frontline walker.<0> ¤<3><4>Stonewall Protocol <2>(passive)<10>Upon taking fatal damage, the Cuirass deactivates, regains 50 HP, and begins self-repairing for 15 HP per second until fully-healed. If the Cuirass is dealt fatal damage again before it can fully repair, it is destroyed.<0> <0> diff --git a/mpq/scripts/iscript_askosi.txt b/mpq/scripts/iscript_askosi.txt index 7eec7145..b803cff1 100644 --- a/mpq/scripts/iscript_askosi.txt +++ b/mpq/scripts/iscript_askosi.txt @@ -1617,7 +1617,6 @@ TiradeGndAttkInit: nobrkcodestart playfram 0x00 attackwith 1 - playsndbtwn 1252 1253 # Gorgon weaponfire 01, 02 wait 1 nobrkcodeend gotorepeatattk diff --git a/mpq/scripts/iscript_protoss.bin b/mpq/scripts/iscript_protoss.bin index 870025fd..57ea2d6e 100644 Binary files a/mpq/scripts/iscript_protoss.bin and b/mpq/scripts/iscript_protoss.bin differ diff --git a/mpq/scripts/iscript_protoss.txt b/mpq/scripts/iscript_protoss.txt index 80529c7c..88c05139 100644 --- a/mpq/scripts/iscript_protoss.txt +++ b/mpq/scripts/iscript_protoss.txt @@ -602,7 +602,7 @@ ArchonSwirlLocal00: # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: -# 112 Solarion (protoss\carrier.grp) +# 112 Solarion (protoss\solarion.grp) .headerstart IsId 151 Type 21 @@ -632,7 +632,7 @@ WarpIn SolarionWarpIn # ----------------------------------------------------------------------------- # SolarionInit: - imgulnextid 0 42 + imgulnextid 0 42 # Solarion shadow (protoss\solarion.grp) playfram 0x00 goto SkryrokorLocal00 @@ -670,11 +670,11 @@ SolarionUnused1: goto SkryrokorLocal00 SolarionWalking: - imgol 114 0 0 # Solarion Engines (thingy\pcaGlow.grp) + imgol 114 0 0 # Solarion Engines (protoss\solarion-engine.grp) goto SkryrokorLocal00 SolarionWarpIn: - imgol 115 0 0 # Solarion Warp Flash (protoss\carrier.grp) + imgol 115 0 0 # Solarion Warp Flash (protoss\solarion.grp) goto SkryrokorLocal00 # ----------------------------------------------------------------------------- # @@ -936,7 +936,7 @@ DracadinWarpIn: # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: -# 116 Steward (protoss\Intercep.grp) +# 116 Steward (protoss\steward.grp) .headerstart IsId 155 Type 12 @@ -958,7 +958,7 @@ SpecialState1 [NONE] # ----------------------------------------------------------------------------- # StewardInit: - imgul 117 0 42 # Steward Shadow (protoss\Intercep.grp) + imgulnextid 0 42 # Steward Shadow (protoss\steward.grp) playfram 0x00 goto SolarionLocal00 @@ -969,9 +969,10 @@ StewardDeath: end StewardGndAttkInit: - wait 1 + playfram 0x00 + wait 2 attackwith 1 - playfram 0x11 + playfram 0x20 wait 1 playfram 0x00 gotorepeatattk @@ -6553,15 +6554,15 @@ AugurDeathDeath: .headerstart IsId 797 Type 21 -Init ZealotInit +Init ZealotStarboundInit Death ZealotDeath -GndAttkInit ZealotGndAttkInit +GndAttkInit ZealotStarboundGndAttkInit AirAttkInit [NONE] Unused1 ZealotUnused1 -GndAttkRpt ZealotGndAttkRpt +GndAttkRpt ZealotStarboundGndAttkRpt AirAttkRpt [NONE] CastSpell [NONE] -GndAttkToIdle ZealotGndAttkToIdle +GndAttkToIdle ZealotStarboundGndAttkToIdle AirAttkToIdle [NONE] Unused2 [NONE] Walking ZealotWalking @@ -6577,11 +6578,39 @@ WorkingToIdle [NONE] WarpIn ZealotStarboundWarpIn .headerend # ----------------------------------------------------------------------------- # - + +ZealotStarboundInit: + imgulnextid 0 0 # Zealot (Starbound) Shadow (cm\f-p\zealot-starbound-shadow.grp) + goto ZealotWalkingToIdle + ZealotStarboundGndAttkInit: playfram 0x00 wait 1 - goto ZealotWalkingToIdle +ZealotStarboundGndAttkRpt: + playsndrand 2 662 663 # Protoss\ZEALOT\pzeAtt00.WAV | Protoss\ZEALOT\pzeAtt01.WAV + playfram 0x20 + wait 1 + nobrkcodestart + playfram 0x40 + wait 1 + playfram 0x60 + wait 1 + playfram 0x80 + attackmelee 1 3228 # Legionnaire weapon hit 01 + wait 1 + playfram 0x60 + wait 1 + playfram 0x40 + attackmelee 1 0 + wait 1 + playfram 0x20 + wait 1 + playfram 0x00 + nobrkcodeend + gotorepeatattk + ignorerest +ZealotStarboundGndAttkToIdle: + goto ZealotWalkingToIdle ZealotStarboundWarpIn: imgol 2166 0 0 # Zealot (Starbound) Warp Flash (cm\faction-p\zealot-starbound.grp) @@ -14831,6 +14860,7 @@ CicatusInit: CicatusGndAttkInit: playfram 0x100 CicatusGndAttkRpt: + playsndbtwn 3355 3357 # Cicatus weaponfire 01, 02, 03 playfram 0x120 nobrkcodestart wait 1 diff --git a/mpq/scripts/iscript_terran.bin b/mpq/scripts/iscript_terran.bin index e9571104..253acae3 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 1cad0718..079aaa89 100644 --- a/mpq/scripts/iscript_terran.txt +++ b/mpq/scripts/iscript_terran.txt @@ -21176,4 +21176,56 @@ ValkyrieHecatonWalking: ValkyrieHecatonWalkingToIdle: orderdone 64 - goto TrojanLocal00 \ No newline at end of file + goto TrojanLocal00 + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 1154 Cyclops (Futurist) (cm\f-t\cyclops-futurist.grp) +.headerstart +IsId 850 +Type 12 +Init CyclopsFuturistInit +Death CyclopsDeath +GndAttkInit CyclopsFuturistGndAttkInit +AirAttkInit CyclopsFuturistGndAttkInit +Unused1 CyclopsUnused1 +GndAttkRpt CyclopsFuturistGndAttkRpt +AirAttkRpt CyclopsFuturistGndAttkRpt +CastSpell [NONE] +GndAttkToIdle CyclopsFuturistGndAttkToIdle +AirAttkToIdle CyclopsFuturistGndAttkToIdle +Unused2 [NONE] +Walking CyclopsWalking +WalkingToIdle CyclopsWalkingToIdle +SpecialState1 [NONE] +.headerend +# ----------------------------------------------------------------------------- # + +CyclopsFuturistInit: + imgulnextid 0 0 # Cyclops (Futurist) shadow (cm\f-t\cyclops-futurist-shadow.grp) + goto CyclopsWalkingToIdle + +CyclopsFuturistGndAttkInit: + playfram 0x00 +CyclopsFuturistGndAttkRpt: + wait 1 + nobrkcodestart + playfram 0x220 + playsndbtwn 4295 4298 # CyclopsFuturist weapon fire 01, 02, 03, 04 + attack + wait 1 + playfram 0x240 + wait 1 + playfram 0x260 + wait 1 + playfram 0x280 + wait 1 + playfram 0x00 + wait 1 + nobrkcodeend + gotorepeatattk + ignorerest +CyclopsFuturistGndAttkToIdle: + playfram 0x00 + wait 1 + goto CyclopsWalkingToIdle \ No newline at end of file diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index 5ad45369..01141d67 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 6f8c8dbf..adff67a2 100644 Binary files a/mpq/unit/cmdbtns/uniticons.grp and b/mpq/unit/cmdbtns/uniticons.grp differ diff --git a/mpq/unit/protoss/solarion-engine.grp b/mpq/unit/protoss/solarion-engine.grp new file mode 100644 index 00000000..f3fa8f2b Binary files /dev/null and b/mpq/unit/protoss/solarion-engine.grp differ diff --git a/mpq/unit/protoss/solarion.grp b/mpq/unit/protoss/solarion.grp new file mode 100644 index 00000000..290794f3 Binary files /dev/null and b/mpq/unit/protoss/solarion.grp differ diff --git a/mpq/unit/protoss/steward.grp b/mpq/unit/protoss/steward.grp new file mode 100644 index 00000000..6336a93b Binary files /dev/null and b/mpq/unit/protoss/steward.grp differ diff --git a/mpq/unit/wirefram/grpwire.grp b/mpq/unit/wirefram/grpwire.grp index a00aeaa3..98ef0cb6 100644 Binary files a/mpq/unit/wirefram/grpwire.grp and b/mpq/unit/wirefram/grpwire.grp differ diff --git a/mpq/unit/wirefram/wirefram.grp b/mpq/unit/wirefram/wirefram.grp index 78ef8c3c..7dbfd128 100644 Binary files a/mpq/unit/wirefram/wirefram.grp and b/mpq/unit/wirefram/wirefram.grp differ diff --git a/patchnotes.md b/patchnotes.md index 7deac90f..031a9399 100644 --- a/patchnotes.md +++ b/patchnotes.md @@ -24,6 +24,7 @@ - **Gameplay:** - Group casting now correctly issues orders to selected units in cases where some selected units did not have enough energy for an ability (r. shopkeeper dog) - *Caveat: Still throws an error message and some abilities will issue move orders to units with insufficient energy* + - **Cyprian**s no longer occasionally freeze when issued move orders between attack orders (r. shopkeeper dog) - **Cardinal**s can no longer proc Sustaining Sermon on allies (r. shopkeeper dog) - **Tethzorokor**s no longer fail to hit large enemies from certain angles - Flying workers and **Dyad**s now use iscript-based movement, removing acceleration and eliminating rare visual and harvesting bugs @@ -35,15 +36,18 @@ - Lardfix: Protected against rare AI breakage from niche town configurations (c. DF) - **Nydus Trinity Eidolon**s now correctly regenerate life at a higher rate when cloaked (r. jakulangski) - **Tencendur**s can now issue load orders + - Traps placed by mine-layers (e.g. **Vulture**) now inherit debuffs (e.g. Infestation) (r. jakulangski) - Resolved mnemonic hotkey conflict between: - **Rapid Rendezvous** and **Place Eyelet** (r. Krankendau) - **Abutment** and **Proscenium** (r. Krankendau) - **Caphrolosk** and **Kethraj Keep** (r. jakulangski) + - Fixed swapped faction order in `set_faction` crig action for **Goszirith** and **Orkoti** (r. Hamster) - **Audiovisuals:** - - Fixed **Endbore** weapon name (r. Concealed Organic) + - Resolved various weapon SFX mismatches (r. lolrsk8s) - Fixed "dead pixels" in Askosi UI - - Fixed bad gas puff coordinates for Installation Vespene Ridges (r. BtyB) - Corrected **Spraith Cesiant** shadow (r. Mimika) + - Fixed **Endbore** weapon name (r. Concealed Organic) + - Fixed bad gas puff coordinates for Installation Vespene Ridges (r. BtyB) - Hid `(null)` string on replay playback (c. DF) - Hid force name display on neutral unit selection (c. DF) - **User Interface:** @@ -56,7 +60,9 @@ - New models for: - Eidolon, Gladius (c. Solstice) - Valkyrie, Trojan, Amaranth, Atreus, Servitor, Exemplar, Zethrokor, Hydralisk (c. Baelethal) + - Solarion, Steward (c. DeltaCadimus) - Eidolon (Nydus), Valkyrie (Hecaton), Inzorthrokor (Imicren), Sovrokor (Goszirith), Hydralisk (Orkoti), Iziralisk (Zorthos) + - All new wireframes c. jun3hong! - New death SFX for: - Striga (c. Milia) - Added unique shadows for **Vornath Pond**, **Chokral Chaszal** @@ -114,6 +120,8 @@ ## Protoss - [Artisan](https://cosmonarchy.com/protoss/artisan): - Movement speed 4.16 » 4 (~4% reduction) +- [Amaranth](https://cosmonarchy.com/protoss/amaranth): + - Vision range 9 7 - [Atreus](https://cosmonarchy.com/protoss/atreus): - Resource costs 200/25 » 150/100 - HP 200 » 160 @@ -226,7 +234,7 @@ - **NEW:** [Alzurokor](https://cosmonarchy.com/zerg/alzurokor): - **Imicren Tendril:** Ultrokor replacement. Has Captivating Claws and Devouring Instinct. - **NEW:** [Hydrokor](https://cosmonarchy.com/zerg/hydrokor): - - **Goszirith Tendril:** Hydralisk replacement. Dual-birth melee strain. + - **Goszirith Tendril:** Hydralisk replacement. Dual-birth melee strain with Mitosis. - **NEW:** [Zytryleth](https://cosmonarchy.com/zerg/zytryleth): - **Zorthos Tendril:** Structure mutated from Scrylyleth. Has Omnispores, acts as a town center, and gestates Larvae. diff --git a/plugins/aise.qdp b/plugins/aise.qdp index b7f9efe9..4f23a56a 100644 Binary files a/plugins/aise.qdp and b/plugins/aise.qdp differ diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index 1f342371..105a329f 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ