diff --git a/mpq/arr/flingy.datex b/mpq/arr/flingy.datex index 3aba9584..b7dafe61 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 9a6c49e3..c2d1db20 100644 --- a/mpq/arr/flingy.txt +++ b/mpq/arr/flingy.txt @@ -742,7 +742,7 @@ Burst Lasers Yellow Small Burst Lasers Yellow Rakzilisk Yvilirokor -Extended Flingy #536 +Birect Extended Flingy #537 Extended Flingy #538 Extended Flingy #539 diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index f2b078e7..b8ed0a74 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 aaa829f4..4985678c 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 f276cec0..e623b441 100644 --- a/mpq/arr/images.txt +++ b/mpq/arr/images.txt @@ -2548,9 +2548,9 @@ Yvilirokor Birth Yvilirokor Remains Ajax Ajax Shadow -Extended Image #1548 -Extended Image #1549 -Extended Image #1550 +Birect +Birect Shadow +Cybrene Engines Extended Image #1551 Extended Image #1552 Extended Image #1553 diff --git a/mpq/arr/sprites.datex b/mpq/arr/sprites.datex index 1590af31..26b66011 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 9e342f93..0bc82725 100644 --- a/mpq/arr/sprites.txt +++ b/mpq/arr/sprites.txt @@ -1228,7 +1228,7 @@ Rakzilisk Remains Yvilirokor Yvilirokor Remains Ajax -Extended Sprite #714 +Birect Extended Sprite #715 Extended Sprite #716 Extended Sprite #717 diff --git a/mpq/arr/units.datex b/mpq/arr/units.datex index 0afb9ee5..db653df6 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 bc65f954..661fc873 100644 --- a/mpq/arr/units.txt +++ b/mpq/arr/units.txt @@ -662,7 +662,7 @@ Ifrit Turret (Siege) Askosi Magian Askosi Tirade (Deployed) Zerg Yvilirokor (Goszirith Tendril) -Extended Unit #437 +Askosi Birect Extended Unit #438 Bloodsummon Atrium Extended Unit #440 diff --git a/mpq/arr/weapons.datex b/mpq/arr/weapons.datex index 6f52f8f7..cb3eae03 100644 Binary files a/mpq/arr/weapons.datex and b/mpq/arr/weapons.datex differ diff --git a/mpq/arr/weapons.txt b/mpq/arr/weapons.txt index 6e8f806d..7fbb960e 100644 --- a/mpq/arr/weapons.txt +++ b/mpq/arr/weapons.txt @@ -323,11 +323,11 @@ Ikta Driver (Tirade, Deployed) Erce Twinburst (Magian) Landfall (Askosi) Sizzling Venom (Rakzilisk) -Extended Spikes (Yvilirokor) +Extending Spikes (Yvilirokor) Achaean Railgun (Ajax) Teuceros Gauntlet (Ajax) -Extended Weapon #199 -Extended Weapon #200 +Azjo Quadshard (Cybrene) +Ibri Transmitter (Birect) Extended Weapon #201 Extended Weapon #202 Extended Weapon #203 diff --git a/mpq/datreq/Buttons.graft b/mpq/datreq/Buttons.graft index b44f3316..9f33c10a 100644 Binary files a/mpq/datreq/Buttons.graft and b/mpq/datreq/Buttons.graft differ diff --git a/mpq/datreq/Units.graft b/mpq/datreq/Units.graft index 137959f5..3a890fd9 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 921e3b2e..d2e72144 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 f134b6ed..a6ba2fa4 100644 --- a/mpq/rez/stat.txt +++ b/mpq/rez/stat.txt @@ -297,8 +297,8 @@ <0> <0> <0> -<0> -<0> +¤<3><4>Genestream<2>(passive)<10>When a target of the Birect takes fatal damage, the Birect becomes the target.<10>Unlike other hijackers, the Birect does not emerge from the victim's form on death.<0> +¤<3><4>Unbecoming Reflection <2>(passive)<10>When damaged by hostiles, the Cybrene deploys a Birect at its location. This cannot occur more than once every 5 seconds.<0> v<1><4>Train Ajax <1>(<3>V<1>)<10>Versatile infantry.<0> Ajax requires:<10> Covenant<0> ¤<3><4>Torrent of Teeth <2>(passive)<10>Upon taking damage, this strain launches three retaliatory bones in the direction of their attacker that travel up to 3 range, piercing any hostiles in their path.<0> @@ -2325,8 +2325,8 @@ Sizzling Venom<0> Extending Spikes<0> Achaean Railgun<0> Teuceros Gauntlet<0> -<0> -<0> +Azjo Quadshard<0> +Ibri Transmitter<0> <0> <0> <0> diff --git a/mpq/rez/unitnames.tbl b/mpq/rez/unitnames.tbl index 3aeafb5e..a4a2a655 100644 Binary files a/mpq/rez/unitnames.tbl and b/mpq/rez/unitnames.tbl differ diff --git a/mpq/scripts/iscript_askosi.bin b/mpq/scripts/iscript_askosi.bin index fee75702..726614e4 100644 Binary files a/mpq/scripts/iscript_askosi.bin and b/mpq/scripts/iscript_askosi.bin differ diff --git a/mpq/scripts/iscript_askosi.txt b/mpq/scripts/iscript_askosi.txt index 7b8cff36..f3559c97 100644 --- a/mpq/scripts/iscript_askosi.txt +++ b/mpq/scripts/iscript_askosi.txt @@ -6204,23 +6204,23 @@ EgocentWalkingToIdle: EgocentDeath: playsnd 10 # Misc\Explo1.wav - playfram 12 +# playfram 12 wait 1 - playfram 13 +# playfram 13 wait 1 - playfram 14 +# playfram 14 wait 1 - playfram 15 +# playfram 15 wait 1 - playfram 16 +# playfram 16 wait 1 - playfram 0x11 +# playfram 0x11 wait 1 - playfram 18 +# playfram 18 wait 1 - playfram 19 +# playfram 19 wait 1 - playfram 20 +# playfram 20 wait 1 end @@ -6242,13 +6242,13 @@ EgocentBurrow: nobrkcodestart imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp) playsnd 354 # Terran\VULTURE\TVuMin01.WAV - playfram 8 +# playfram 8 wait 1 - playfram 9 +# playfram 9 wait 1 - playfram 10 +# playfram 10 wait 1 - playfram 11 +# playfram 11 wait 1 sigorder 4 nobrkcodeend @@ -6258,13 +6258,13 @@ EgocentUnBurrow: nobrkcodestart imgul 423 0 0 # Burrowing Dust (thingy\bDust.grp) playsnd 354 # Terran\VULTURE\TVuMin01.WAV - playfram 10 +# playfram 10 wait 1 - playfram 9 +# playfram 9 wait 1 - playfram 8 +# playfram 8 wait 1 - playfram 0x00 +# playfram 0x00 sigorder 4 nobrkcodeend goto EgocentWalkingToIdle @@ -6943,4 +6943,216 @@ ScepterLaserImpactInit: playfram 9 ScepterLaserImpactDeath: wait 1 - end \ No newline at end of file + end + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 2178 Cybrene (cm\a\cybrene.grp) +.headerstart +IsId 80 +Type 21 +Init CybreneInit +Death CybreneDeath +GndAttkInit CybreneGndAttkInit +AirAttkInit CybreneGndAttkInit +Unused1 SkryrokorLocal00 +GndAttkRpt CybreneGndAttkInit +AirAttkRpt CybreneGndAttkInit +CastSpell [NONE] +GndAttkToIdle CybreneGndAttkToIdle +AirAttkToIdle CybreneGndAttkToIdle +Unused2 [NONE] +Walking CybreneWalking +WalkingToIdle CybreneLocal00 +SpecialState1 CybreneSpecialState1 +.headerend +# ----------------------------------------------------------------------------- # + +CybreneInit: + imgulnextid 0 42 # Cybrene Shadow (cm\a\cybrene.grp) +CybreneGndAttkToIdle: + playfram 0x00 +CybreneLocal00: + setvertpos 0 + wait 8 + setvertpos 0 + wait 8 + setvertpos -1 + wait 8 + setvertpos 0 + wait 8 + goto CybreneLocal00 + +CybreneDeath: + playsndbtwn 1249 1251 # Gorgon death 01, 02, 03 + imgol 333 0 0 # Explosion2 (Medium) (thingy\tBangL.grp) + wait 3 + lowsprul 1065 0 42 # Askosi Unit Rubble (cm\a\a-rubble-tiny.grp) + wait 1 + end + +CybreneGndAttkInit: + setvertpos 0 + wait 1 + nobrkcodestart + wait 1 + playfram 0x20 + playsndbtwn 4345 4347 # Cybrene weaponfire 01, 02, 03 + attackwith 1 + wait 1 + playfram 0x00 + wait 1 + playfram 0x20 + playsndbtwn 4345 4347 # Cybrene weaponfire 01, 02, 03 + attackwith 1 + wait 1 + playfram 0x00 + wait 1 + playfram 0x20 + playsndbtwn 4345 4347 # Cybrene weaponfire 01, 02, 03 + attackwith 1 + wait 1 + playfram 0x00 + wait 1 + playfram 0x20 + playsndbtwn 4345 4347 # Cybrene weaponfire 01, 02, 03 + attackwith 1 + wait 1 + playfram 0x00 + nobrkcodeend + gotorepeatattk + goto CybreneGndAttkToIdle + +CybreneWalking: + setvertpos 0 + imgol 2552 0 0 # Cybrene Engines (cm\a\cybrene-engine.grp) + goto SkryrokorLocal00 + +CybreneSpecialState1: + playfram 0x00 + wait 12 + goto SkryrokorLocal00 + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 2550 Birect (cm\a\birect.grp) +.headerstart +IsId 81 +Type 26 +Init BirectInit +Death BirectDeath +GndAttkInit BirectGndAttkInit +AirAttkInit BirectGndAttkInit +Unused1 [NONE] +GndAttkRpt BirectGndAttkInit +AirAttkRpt BirectGndAttkInit +CastSpell [NONE] +GndAttkToIdle BirectWalkingToIdle +AirAttkToIdle BirectWalkingToIdle +Unused2 BirectUnused2 +Walking SkryrokorLocal00 +WalkingToIdle BirectWalkingToIdle +SpecialState1 BirectSpecialState1 +SpecialState2 [NONE] +AlmostBuilt [NONE] +Built [NONE] +Landing [NONE] +LiftOff [NONE] +IsWorking [NONE] +WorkingToIdle [NONE] +WarpIn [NONE] +Unused3 [NONE] +StarEditInit [NONE] +Disable [NONE] +Burrow BirectBurrow +UnBurrow BirectUnBurrow +Enable [NONE] +.headerend +# ----------------------------------------------------------------------------- # + +BirectInit: + imgulnextid 0 42 # Birect Shadow (cm\a\birect-shadow.grp) +BirectWalkingToIdle: + playfram 0x00 + goto SkryrokorLocal00 + +BirectDeath: + playsnd 10 # Misc\Explo1.wav +# playfram 12 + wait 1 +# playfram 13 + wait 1 +# playfram 14 + wait 1 +# playfram 15 + wait 1 +# playfram 16 + wait 1 +# playfram 0x11 + wait 1 +# playfram 18 + wait 1 +# playfram 19 + wait 1 +# playfram 20 + wait 1 + end + +BirectSpecialState1: + castspell + sigorder 1 + playsnd 10 # Misc\Explo1.wav + imgol 429 0 0 # Spider Mine Death (thingy\tmnExplo.grp) + goto SkryrokorLocal00 + +BirectUnused2: + sigorder 32 + sigorder 1 + playsnd 10 # Misc\Explo1.wav + imgol 429 0 0 # Spider Mine Death (thingy\tmnExplo.grp) + goto SkryrokorLocal00 + +BirectGndAttkInit: + wait 1 + nobrkcodestart + wait 1 + playfram 0x20 + playsndbtwn 4345 4347 # Iconoclast weaponfire 01, 02, 03 + attackwith 1 + wait 1 + playfram 0x00 + wait 1 + nobrkcodeend + gotorepeatattk + goto SkryrokorLocal00 + +BirectBurrow: + nobrkcodestart + imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp) + playsnd 354 # Terran\VULTURE\TVuMin01.WAV +# playfram 8 + wait 1 +# playfram 9 + wait 1 +# playfram 10 + wait 1 +# playfram 11 + wait 1 + sigorder 4 + nobrkcodeend + goto SkryrokorLocal00 + +BirectUnBurrow: + nobrkcodestart + imgul 423 0 0 # Burrowing Dust (thingy\bDust.grp) + playsnd 354 # Terran\VULTURE\TVuMin01.WAV +# playfram 10 + wait 1 +# playfram 9 + wait 1 +# playfram 8 + wait 1 +# playfram 0x00 + sigorder 4 + nobrkcodeend + goto BirectWalkingToIdle \ No newline at end of file diff --git a/mpq/unit/cm/a/birect-attack.lol b/mpq/unit/cm/a/birect-attack.lol new file mode 100644 index 00000000..691801c9 Binary files /dev/null and b/mpq/unit/cm/a/birect-attack.lol differ diff --git a/mpq/unit/cm/a/birect.grp b/mpq/unit/cm/a/birect.grp new file mode 100644 index 00000000..68978daa Binary files /dev/null and b/mpq/unit/cm/a/birect.grp differ diff --git a/mpq/unit/cm/a/cybrene-attack.lol b/mpq/unit/cm/a/cybrene-attack.lol new file mode 100644 index 00000000..5d7dac28 Binary files /dev/null and b/mpq/unit/cm/a/cybrene-attack.lol differ diff --git a/mpq/unit/cm/a/cybrene-engine.grp b/mpq/unit/cm/a/cybrene-engine.grp new file mode 100644 index 00000000..235df23e Binary files /dev/null and b/mpq/unit/cm/a/cybrene-engine.grp differ diff --git a/mpq/unit/cm/a/cybrene.grp b/mpq/unit/cm/a/cybrene.grp new file mode 100644 index 00000000..97d527bb Binary files /dev/null and b/mpq/unit/cm/a/cybrene.grp differ diff --git a/mpq/unit/cm/a/hearthshard-damage.lof b/mpq/unit/cm/a/hearthshard-damage.lof index 379d24aa..5df7df7a 100644 Binary files a/mpq/unit/cm/a/hearthshard-damage.lof and b/mpq/unit/cm/a/hearthshard-damage.lof differ diff --git a/mpq/unit/cm/a/hearthshard-shadow.grp b/mpq/unit/cm/a/hearthshard-shadow.grp index c6fa5d4f..34b9162b 100644 Binary files a/mpq/unit/cm/a/hearthshard-shadow.grp and b/mpq/unit/cm/a/hearthshard-shadow.grp differ diff --git a/mpq/unit/cm/a/hearthshard.grp b/mpq/unit/cm/a/hearthshard.grp index c1b5c7d0..424e47cb 100644 Binary files a/mpq/unit/cm/a/hearthshard.grp and b/mpq/unit/cm/a/hearthshard.grp differ diff --git a/mpq/unit/cm/a/iconoclast.grp b/mpq/unit/cm/a/iconoclast.grp index ae5591bf..274796ab 100644 Binary files a/mpq/unit/cm/a/iconoclast.grp and b/mpq/unit/cm/a/iconoclast.grp differ diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index 2fc0b82f..b8005b5b 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 4acb3acb..d290c81d 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 445b36e0..e23d6384 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 54ab09d9..7ef53073 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 d468c62b..49a28575 100644 --- a/patchnotes.md +++ b/patchnotes.md @@ -15,6 +15,7 @@ - **Gameplay:** - Fixed Sovroleths morphing from Protathalors only providing 1 Sovroleth (r. jakulangski) - Cantavis Hallucination no longer drains more energy than intended when targeting units instead of terrain (r. Londier) + - It is no longer possible to proc Histrion Hated Reflection with allied damage sources ## Terran factions - **NEW:** [Ajax](https://cosmonarchy.com/terran/ajax/): @@ -24,4 +25,11 @@ ## Zerg factions - **NEW:** [Yvilirokor](https://cosmonarchy.com/zerg/yvilirokor/): - **Goszirith Tendril:** Tethzorokor replacement; dual-birth shredding reactive strain. - - Community milestone reward: Discord server boosts! (c. jakulangski & KutyamCsupan) \ No newline at end of file + - Community milestone reward: Discord server boosts! (c. jakulangski & KutyamCsupan) + +## Askosi +- **NEW:** [Cybrene](https://cosmonarchy.com/askosi/cybrene/): + - Trained at Obelisk; requires Hearthshard; Supreme cruiser. + - Commissioned by SmrtyCakes! +- **NEW:** [Hearthshard](https://cosmonarchy.com/askosi/hearthshard/): + - Immortal relay; enables Cybrenes (and eventually, Azjorans and Begolors!) \ No newline at end of file diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index 2e1b6714..ad898667 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ