diff --git a/mpq/arr/flingy.datex b/mpq/arr/flingy.datex index 4dfac0d8..7cc59429 100644 Binary files a/mpq/arr/flingy.datex and b/mpq/arr/flingy.datex differ diff --git a/mpq/arr/flingy.txt b/mpq/arr/flingy.txt index 63251bfb..5ded94cb 100644 --- a/mpq/arr/flingy.txt +++ b/mpq/arr/flingy.txt @@ -700,7 +700,7 @@ Cybrene Raynor Vulture Scralia Endbore Electricity -Extended Flingy #494 +Rozirokor Extended Flingy #495 Extended Flingy #496 Extended Flingy #497 diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index a6b0a3ea..43a64db7 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 cdc494c8..32f8818c 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 7d218bbe..542e43da 100644 --- a/mpq/arr/images.txt +++ b/mpq/arr/images.txt @@ -2399,11 +2399,11 @@ Endbore Electricity Civilian Death Civilian Remains Pilgrim Remains -Extended Image #1399 -Extended Image #1400 -Extended Image #1401 -Extended Image #1402 -Extended Image #1403 +Rozirokor +Rozirokor Shadow +Rozirokor Remains +Rozirokor Birth +Rozirokor Mutate Extended Image #1404 Extended Image #1405 Extended Image #1406 diff --git a/mpq/arr/sprites.datex b/mpq/arr/sprites.datex index 0d2dbced..2c58e001 100644 Binary files a/mpq/arr/sprites.datex and b/mpq/arr/sprites.datex differ diff --git a/mpq/arr/sprites.txt b/mpq/arr/sprites.txt index 3e9cfafc..876201a5 100644 --- a/mpq/arr/sprites.txt +++ b/mpq/arr/sprites.txt @@ -1158,8 +1158,8 @@ Scralia Endbore Electricity Civilian Remnants Pilgrim Remnants -Extended Sprite #644 -Extended Sprite #645 +Rozirokor +Rozirokor Remains Extended Sprite #646 Extended Sprite #647 Extended Sprite #648 diff --git a/mpq/arr/units.datex b/mpq/arr/units.datex index eb309d70..9528ce9f 100644 Binary files a/mpq/arr/units.datex and b/mpq/arr/units.datex differ diff --git a/mpq/arr/units.txt b/mpq/arr/units.txt index 86ea9c24..d18b0b25 100644 --- a/mpq/arr/units.txt +++ b/mpq/arr/units.txt @@ -614,9 +614,9 @@ Big Infested Kerrigan Raynor Vulture Duke Battlecruiser Askosi Scralia -Extended Unit #389 -Extended Unit #390 -Extended Unit #391 +Zerg Rozirokor (Imicren) +Bloodsummon Thrombocyte +Bloodsummon Grimoire Extended Unit #392 Extended Unit #393 Extended Unit #394 diff --git a/mpq/datreq/Buttons.graft b/mpq/datreq/Buttons.graft index 75982c6f..86dae574 100644 Binary files a/mpq/datreq/Buttons.graft and b/mpq/datreq/Buttons.graft differ diff --git a/mpq/datreq/Tech.graft b/mpq/datreq/Tech.graft index 7f6e04ba..cb672eca 100644 Binary files a/mpq/datreq/Tech.graft and b/mpq/datreq/Tech.graft differ diff --git a/mpq/datreq/Units.graft b/mpq/datreq/Units.graft index 5bac48c6..3f68b92c 100644 Binary files a/mpq/datreq/Units.graft and b/mpq/datreq/Units.graft differ diff --git a/mpq/game/icons.grp b/mpq/game/icons.grp index ee2007df..e0f4ce74 100644 Binary files a/mpq/game/icons.grp and b/mpq/game/icons.grp differ diff --git a/mpq/rez/options/tab-misc.bin b/mpq/rez/options/tab-misc.bin index 2b3c3d9a..b9287925 100644 Binary files a/mpq/rez/options/tab-misc.bin and b/mpq/rez/options/tab-misc.bin differ diff --git a/mpq/rez/stat.txt b/mpq/rez/stat.txt index 981bdd6e..185362ac 100644 --- a/mpq/rez/stat.txt +++ b/mpq/rez/stat.txt @@ -1339,9 +1339,9 @@ Must target units with energy.<0> <0> <0> <0> -<0> +Rozirokor requires:<10> Hydrith Den<0> z<1><4>Morph to Izirokor <1>(<3>Z<1>)<10>Close-combat strain.<0> -<0> +z<1><4>Morph to Rozirokor <1>(<3>Z<1>)<10>Close-combat strain.<0> Izirokor requires:<10> Hydrith Den<0> t<1><4>Morph into Keskathalor <1>(<3>T<1>)<10>Artillery strain.<0> Keskathalor requires:<10> Geszkath Grotto<0> diff --git a/mpq/rez/unitnames.tbl b/mpq/rez/unitnames.tbl index 0c8dd2d3..5d38d75b 100644 Binary files a/mpq/rez/unitnames.tbl and b/mpq/rez/unitnames.tbl differ diff --git a/mpq/samase/unitdef.txt b/mpq/samase/unitdef.txt index 281aa68e..cea3a279 100644 --- a/mpq/samase/unitdef.txt +++ b/mpq/samase/unitdef.txt @@ -84,10 +84,14 @@ military inzorthrokor = 415 military quazrokor = 422 military lakizilisk_zorthos = 425 military hydralisk_orkoti = 436 -building yblyleth = 438 +military yblyleth = 438 military azanthrokor = 511 military sovrokor = 519 military garvrokor = 521 +military zethalor = 559 +military scrylyleth = 560 +military zoltorokor = 604 +military rozirokor = 616 # Terran military units military maverick = 0 diff --git a/mpq/scripts/aiscript.bin b/mpq/scripts/aiscript.bin index a04ae77b..4ccd006e 100644 Binary files a/mpq/scripts/aiscript.bin and b/mpq/scripts/aiscript.bin differ diff --git a/mpq/scripts/iscript_zerg.bin b/mpq/scripts/iscript_zerg.bin index 50eb510e..5037d526 100644 Binary files a/mpq/scripts/iscript_zerg.bin and b/mpq/scripts/iscript_zerg.bin differ diff --git a/mpq/scripts/iscript_zerg.txt b/mpq/scripts/iscript_zerg.txt index 38019e4a..fd2f6ce3 100644 --- a/mpq/scripts/iscript_zerg.txt +++ b/mpq/scripts/iscript_zerg.txt @@ -18244,4 +18244,290 @@ ScrylylethUnBurrow: playfram 0xdd wait 1 sigorder 4 - goto ScrylylethWalkingToIdle \ No newline at end of file + goto ScrylylethWalkingToIdle + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 2401 Rozirokor (cm\zerg\rozirokor.grp) +.headerstart +IsId 840 +Type 26 +Init RozirokorInit +Death RozirokorDeath +GndAttkInit RozirokorGndAttkInit +AirAttkInit RozirokorGndAttkInit +Unused1 RozirokorUnused1 +GndAttkRpt RozirokorGndAttkRpt +AirAttkRpt RozirokorGndAttkRpt +CastSpell [NONE] +GndAttkToIdle RozirokorGndAttkToIdle +AirAttkToIdle RozirokorGndAttkToIdle +Unused2 [NONE] +Walking RozirokorWalking +WalkingToIdle RozirokorWalkingToIdle +SpecialState1 SkryrokorLocal00 +SpecialState2 RozirokorSpecialState2 +AlmostBuilt [NONE] +Built [NONE] +Landing [NONE] +LiftOff [NONE] +IsWorking [NONE] +WorkingToIdle [NONE] +WarpIn [NONE] +Unused3 [NONE] +StarEditInit [NONE] +Disable [NONE] +Burrow RozirokorBurrow +UnBurrow RozirokorUnburrow +Enable [NONE] +.headerend +# ----------------------------------------------------------------------------- # + +RozirokorInit: + imgul 1473 0 0 # Rozirokor Shadow (cm\zerg\rozirokor-shad.grp) + goto RozirokorWalkingToIdle +RozirokorGndAttkToIdle: + playfram 0xAA + goto RozirokorLocal00 + +RozirokorLocal00: + wait 62 + randcondjmp 128 RozirokorLocal01 + goto RozirokorLocal00 + +RozirokorLocal01: + playfram 0x99 + wait 1 + playfram 0xAA + wait 1 + playfram 0xBB + wait 1 + playfram 0xCC + wait 4 + randcondjmp 34 RozirokorLocal02 + playfram 0xBB + wait 1 + playfram 0xAA + wait 1 + playfram 0x99 + wait 1 + goto RozirokorWalkingToIdle + +RozirokorLocal02: + playfram 0xBB + wait 1 + playfram 0xAA + wait 3 + randcondjmp 62 RozirokorLocal03 + randcondjmp 51 RozirokorLocal04 + playfram 0xBB + wait 1 + playfram 0xCC + wait 1 + playfram 0xBB + wait 1 + goto RozirokorWalkingToIdle + +RozirokorLocal03: + playfram 0x99 + wait 4 + playfram 0x11 + wait 1 + turnccwise 1 + playfram 0x22 + wait 1 + turnccwise 1 + playfram 0x33 + wait 1 + turnccwise 1 + playfram 0x22 + wait 1 + turnccwise 1 + playfram 0x11 + wait 1 + turnccwise 1 + goto RozirokorWalkingToIdle + +RozirokorLocal04: + playfram 0x99 + wait 4 + playfram 0x11 + wait 1 + turncwise 1 + playfram 0x22 + wait 1 + turncwise 1 + playfram 0x33 + wait 1 + turncwise 1 + playfram 0x22 + wait 1 + turncwise 1 + playfram 0x11 + wait 1 + turncwise 1 + goto RozirokorWalkingToIdle + +RozirokorDeath: + playsnd 1506 # Rozirokor death 01 + setfldirect 0 + playfram 459 + wait 2 + playfram 460 + wait 2 + playfram 461 + wait 2 + playfram 462 + wait 2 + playfram 463 + wait 2 + playfram 464 + wait 2 + playfram 465 + wait 2 + playfram 466 + wait 2 + lowsprul 763 0 0 # Rozirokor Remnants (cm\zerg\rozirokor-corpse.grp) + wait 2 + end + +RozirokorUnused1: + wait 1 + nobrkcodestart + setfldirect 0 + playsnd 1181 + playfram 639 + wait 2 + playfram 638 + wait 2 + playfram 637 + wait 2 + playfram 636 + wait 2 + playfram 635 + wait 2 + playfram 634 + wait 2 + playfram 633 + wait 2 + playfram 632 + wait 2 + playfram 631 + wait 2 + playfram 630 + wait 2 + setfldirect 14 + nobrkcodeend + goto RozirokorWalkingToIdle + +RozirokorGndAttkInit: + playfram 0x99 + wait 1 + playfram 0xAA +RozirokorGndAttkRpt: + wait 1 + nobrkcodestart + playsndbtwn 3141 3144 # Tethzorokor weaponfire 01, 02, 03, 04 + wait 1 + playfram 0xBB + wait 1 + playfram 0xCC + attackmelee 2 894 895 # Zerg\Ultra\zulHit00.WAV | Zerg\Ultra\zulHit01.WAV + wait 2 + playfram 0xDD + wait 2 + playfram 0xEE + wait 1 + playfram 0xFF + wait 2 + playfram 0x110 + wait 1 + playfram 0x121 + wait 1 + nobrkcodeend + playfram 0x132 + wait 1 + gotorepeatattk + goto RozirokorGndAttkToIdle + +RozirokorWalking: + move 5 + wait 1 + playfram 0x11 + move 5 + wait 1 + playfram 0x22 + move 5 + wait 1 + playfram 0x33 + move 5 + wait 1 + playfram 0x44 + move 5 + wait 1 + playfram 0x55 + move 5 + wait 1 + playfram 0x66 + move 5 + wait 1 + playfram 0x77 + move 5 + wait 1 + playfram 0x88 + goto RozirokorWalking + +RozirokorWalkingToIdle: + playfram 0x0 + goto RozirokorLocal00 + +RozirokorSpecialState2: + playfram 0x187 + goto SkryrokorLocal00 + +RozirokorBurrow: + imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp) + imgol 423 12 -9 # Burrowing Dust (thingy\bDust.grp) + playfram 0x143 + wait 1 + playfram 0x154 + wait 1 + playfram 0x165 + wait 1 + playfram 0x176 + wait 1 + playfram 0x187 + imgol 423 15 12 # Burrowing Dust (thingy\bDust.grp) + imgol 423 12 -15 # Burrowing Dust (thingy\bDust.grp) + imgol 423 -12 -3 # Burrowing Dust (thingy\bDust.grp) + wait 1 + playfram 0x198 + wait 1 + playfram 0x1A9 + wait 1 + sigorder 4 + playfram 0x1BA + goto SkryrokorLocal00 + +RozirokorUnburrow: + wait 1 + waitrand 1 2 + imgul 423 0 0 # Burrowing Dust (thingy\bDust.grp) + imgol 423 12 -9 # Burrowing Dust (thingy\bDust.grp) + playfram 0x1A9 + wait 1 + playfram 0x198 + wait 1 + playfram 0x187 + wait 1 + playfram 0x176 + imgol 423 12 -15 # Burrowing Dust (thingy\bDust.grp) + imgol 423 -12 -12 # Burrowing Dust (thingy\bDust.grp) + wait 1 + playfram 0x165 + wait 1 + playfram 0x154 + wait 1 + sigorder 4 + setfldirect 14 + goto RozirokorWalkingToIdle \ No newline at end of file diff --git a/mpq/unit/cm/f-z/rozirokor-birth.grp b/mpq/unit/cm/f-z/rozirokor-birth.grp new file mode 100644 index 00000000..28ab3577 Binary files /dev/null and b/mpq/unit/cm/f-z/rozirokor-birth.grp differ diff --git a/mpq/unit/cm/f-z/rozirokor-mutate.grp b/mpq/unit/cm/f-z/rozirokor-mutate.grp new file mode 100644 index 00000000..d353b250 Binary files /dev/null and b/mpq/unit/cm/f-z/rozirokor-mutate.grp differ diff --git a/mpq/unit/cm/f-z/rozirokor-remains.grp b/mpq/unit/cm/f-z/rozirokor-remains.grp new file mode 100644 index 00000000..cf39ee1b Binary files /dev/null and b/mpq/unit/cm/f-z/rozirokor-remains.grp differ diff --git a/mpq/unit/cm/f-z/rozirokor-shadow.grp b/mpq/unit/cm/f-z/rozirokor-shadow.grp new file mode 100644 index 00000000..3452c0fc Binary files /dev/null and b/mpq/unit/cm/f-z/rozirokor-shadow.grp differ diff --git a/mpq/unit/cm/f-z/rozirokor.grp b/mpq/unit/cm/f-z/rozirokor.grp new file mode 100644 index 00000000..56ef1b9f Binary files /dev/null and b/mpq/unit/cm/f-z/rozirokor.grp differ diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index e1f9cf56..72ca215f 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 fd22e693..e8fa57cb 100644 Binary files a/mpq/unit/cmdbtns/uniticons.grp and b/mpq/unit/cmdbtns/uniticons.grp differ diff --git a/mpq/unit/wirefram/grpwire.grp b/mpq/unit/wirefram/grpwire.grp index e286e841..f3dce578 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 4d139c82..7ca49f91 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 4c0f5e30..7b7d9cb8 100644 --- a/patchnotes.md +++ b/patchnotes.md @@ -11,7 +11,9 @@ ## User Interface - Added more desync logging (c. Veeq7) +- Added user-configurable window flash for when another player joins your lobby (c. Jesse) - Reorganized replay options to `Misc` tab (c. Jesse) +- Added user-configurable Askosi player color preferences ## Bugfixes - **Stability:** @@ -19,6 +21,8 @@ - **Gameplay:** - **Scrapworld: Gold Rush** now correctly accounts for the resource cost of dual- and triple-birth units (r. shopkeeper dog) - Lardfix: Protected against rare AI breakage from niche town configurations (c. DF) +- **Audiovisuals:** + - Fixed **Endbore** weapon name (r. Concealed Organic) ## Audiovisuals - Updated background graphics for Options and CrownLink Join menus (c. Jesse) @@ -27,6 +31,11 @@ # Balance +## Neutral +- Neutral garrisons (e.g. the Tencendur on Magnetron): + - Now eject units when taking fatal damage, heal to full life, and become stunned for 10 seconds + - Can only be destroyed if they take fatal damage during the 10 second stun window + ## Terran - [Vulture](https://cosmonarchy.com/terran/vulture): - Vision range 8 » 7 @@ -91,6 +100,8 @@ - Weapon cooldown 0.42 » 0.67 - [Sovrokor](https://cosmonarchy.com/zerg/sovrokor): - Now considered a Sire +- **NEW:** [Rozirokor](https://cosmonarchy.com/zerg/rozirokor): + - **Imicren Tendril:** Izirokor replacement. Has Saber Siphon. ## Askosi - **Impact Dissipation:** diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index c862d637..9b07d9b1 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ