diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex index 7f17c9ff..9340e60a 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 400f7bed..578258be 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 6ca9d08a..c695ffde 100644 --- a/mpq/arr/sfxdata.txt +++ b/mpq/arr/sfxdata.txt @@ -4209,9 +4209,9 @@ Ferrum Weaponfire 03 Insurant Weaponfire 01 Insurant Weaponfire 02 Insurant Weaponfire 03 -Extended Sound #1 -Extended Sound #1 -Extended Sound #1 +Ghostwrit Weaponfire 01 +Ghostwrit Weaponfire 02 +Ghostwrit Weaponfire 03 Extended Sound #1 Extended Sound #1 Extended Sound #1 diff --git a/mpq/arr/sounds.txt b/mpq/arr/sounds.txt index 1eaa2df1..c8ae3a72 100644 --- a/mpq/arr/sounds.txt +++ b/mpq/arr/sounds.txt @@ -4208,4 +4208,7 @@ cm\sp\h\sentinel\wf-02.wav cm\sp\h\sentinel\wf-03.wav cm\a\insurant\wf-01.wav cm\a\insurant\wf-02.wav -cm\a\insurant\wf-03.wav \ No newline at end of file +cm\a\insurant\wf-03.wav +cm\a\ghostwrit\wf-01.wav +cm\a\ghostwrit\wf-02.wav +cm\a\ghostwrit\wf-03.wav \ No newline at end of file diff --git a/mpq/arr/sprites.datex b/mpq/arr/sprites.datex index 1a072cc1..3c81e47f 100644 Binary files a/mpq/arr/sprites.datex and b/mpq/arr/sprites.datex differ diff --git a/mpq/arr/techdata.datex b/mpq/arr/techdata.datex index 6c67aeb3..aba1dd9b 100644 Binary files a/mpq/arr/techdata.datex and b/mpq/arr/techdata.datex differ diff --git a/mpq/arr/techdata.txt b/mpq/arr/techdata.txt index 9bd4043b..d8423085 100644 --- a/mpq/arr/techdata.txt +++ b/mpq/arr/techdata.txt @@ -50,7 +50,7 @@ Remote Hijack (Askosi) Preylock (Askosi) Lobotomy Grenade (Goska dupe) Skryspawn (Stroluum) -Extended Tech #9 +Puppeteer (Askosi) Extended Tech #10 Extended Tech #11 Extended Tech #12 diff --git a/mpq/arr/units.datex b/mpq/arr/units.datex index c0ee1a02..b29ee3eb 100644 Binary files a/mpq/arr/units.datex and b/mpq/arr/units.datex differ diff --git a/mpq/datreq/Buttons.graft b/mpq/datreq/Buttons.graft index 271e2c5a..ee1f02d9 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 32f306f1..353d5183 100644 Binary files a/mpq/datreq/Tech.graft and b/mpq/datreq/Tech.graft differ diff --git a/mpq/game/icons.grp b/mpq/game/icons.grp index 2ab4885f..447f8bad 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 1ecfdec6..a857a670 100644 --- a/mpq/rez/stat.txt +++ b/mpq/rez/stat.txt @@ -356,8 +356,8 @@ s<1><4>Morph into Protathalor <1>(<3>S<1>)<10>Mobile artillery strain.<0> <0> <0> <0> -<0> -<0> +Puppeteer requires:<10> Recent victim<0> +c<3><4>Puppeteer <1>(<3>C<1>)<10>Activates a trap on the most recently-damaged foe, pulling hostiles within 5 range towards the target.<0> ¤<3><4>Scrapworld: Gold Vein <2>(passive)<10>This structure salvages one corpse within 8 range every second, securing 25% of the corpses's resource cost.<0> ¤<3><4>Crushing Delivery <2>(passive)<10>Enemy combatants within 8 range of the Dorminge find their movement speed slowed by 33%.<0> c<3><4>Preylock <1>(<3>C<1>)<10>Pulls the target enemy within 5 range to the combatant's location, and afflicts it with Booming Blast.<0> diff --git a/mpq/scripts/iscript_askosi.bin b/mpq/scripts/iscript_askosi.bin index 19d20e52..6a34d5a5 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 6d1db72e..f7946fc6 100644 --- a/mpq/scripts/iscript_askosi.txt +++ b/mpq/scripts/iscript_askosi.txt @@ -5621,6 +5621,114 @@ SilversoulWalking: wait 1 playfram 0x80 goto SilversoulWalking + +# ----------------------------------------------------------------------------- # +# This header is used by images.dat entries: +# 2366 Ghostwrit (cm\a\ghostwrit.grp) +.headerstart +IsId 65 +Type 21 +Init GhostwritInit +Death GhostwritDeath +GndAttkInit GhostwritGndAttkInit +AirAttkInit GhostwritGndAttkInit +Unused1 SkryrokorLocal00 +GndAttkRpt GhostwritGndAttkRpt +AirAttkRpt GhostwritGndAttkRpt +CastSpell [NONE] +GndAttkToIdle GhostwritGndAttkToIdle +AirAttkToIdle GhostwritGndAttkToIdle +Unused2 [NONE] +Walking GhostwritWalking +WalkingToIdle GhostwritGndAttkToIdle +SpecialState1 [NONE] +SpecialState2 [NONE] +AlmostBuilt [NONE] +Built [NONE] +Landing [NONE] +LiftOff [NONE] +IsWorking [NONE] +WorkingToIdle [NONE] +WarpIn [NONE] +.headerend +# ----------------------------------------------------------------------------- # + +GhostwritInit: + imgulnextid 0 0 # Ghostwrit Shadow (cm\a\ghostwrit-shadow.grp) + playfram 0x00 + goto SkryrokorLocal00 + +GhostwritGndAttkToIdle: + playfram 0x40 + wait 1 + playfram 0x00 + goto SkryrokorLocal00 + +GhostwritDeath: + playsndbtwn 3053 3056 # Ghostwrit death 01, 02, 03, 04 + imgol 213 0 0 # Explosion1 (Small) (thingy\tBangS.grp) + wait 3 + lowsprul 947 0 0 # Ghostwrit remains (cm\protoss\ghostwrit-death.grp) + wait 1 + end + +GhostwritGndAttkInit: + playfram 0x40 + wait 1 + playfram 0x60 +GhostwritGndAttkRpt: + wait 1 + nobrkcodestart + playfram 0x80 + attack + wait 1 + playfram 0xA0 + wait 1 + playfram 0xC0 + wait 1 + nobrkcodeend + gotorepeatattk + ignorerest + goto GhostwritGndAttkToIdle + +GhostwritWalking: + move 5 + wait 1 + playfram 0x1E0 + move 5 + wait 1 + playfram 0x200 + move 5 + wait 1 + playfram 0x220 + move 5 + wait 1 + playfram 0x240 + move 5 + wait 1 + playfram 0x260 + move 5 + wait 1 + playfram 0x280 + move 5 + wait 1 + playfram 0x2A0 + move 5 + wait 1 + playfram 0x2C0 + move 5 + wait 1 + playfram 0x2E0 + move 5 + wait 1 + playfram 0x300 + move 5 + wait 1 + playfram 0x320 + move 5 + wait 1 + playfram 0x340 + goto GhostwritWalking # ----------------------------------------------------------------------------- # # This header is used by images.dat entries: diff --git a/mpq/sound/cm/a/ghostwrit/wf-01.wav b/mpq/sound/cm/a/ghostwrit/wf-01.wav new file mode 100644 index 00000000..a0c66a20 Binary files /dev/null and b/mpq/sound/cm/a/ghostwrit/wf-01.wav differ diff --git a/mpq/sound/cm/a/ghostwrit/wf-02.wav b/mpq/sound/cm/a/ghostwrit/wf-02.wav new file mode 100644 index 00000000..7bf106f6 Binary files /dev/null and b/mpq/sound/cm/a/ghostwrit/wf-02.wav differ diff --git a/mpq/sound/cm/a/ghostwrit/wf-03.wav b/mpq/sound/cm/a/ghostwrit/wf-03.wav new file mode 100644 index 00000000..c7d286d0 Binary files /dev/null and b/mpq/sound/cm/a/ghostwrit/wf-03.wav differ diff --git a/mpq/unit/cm/a/ghostwrit-attack.lol b/mpq/unit/cm/a/ghostwrit-attack.lol new file mode 100644 index 00000000..a161c9a2 Binary files /dev/null and b/mpq/unit/cm/a/ghostwrit-attack.lol differ diff --git a/mpq/unit/cm/a/ghostwrit-shadow.grp b/mpq/unit/cm/a/ghostwrit-shadow.grp new file mode 100644 index 00000000..3e636c87 Binary files /dev/null and b/mpq/unit/cm/a/ghostwrit-shadow.grp differ diff --git a/mpq/unit/cm/a/ghostwrit.grp b/mpq/unit/cm/a/ghostwrit.grp new file mode 100644 index 00000000..0ffc3e4d Binary files /dev/null and b/mpq/unit/cm/a/ghostwrit.grp differ diff --git a/mpq/unit/cm/a/missionary.grp b/mpq/unit/cm/a/missionary.grp index 4361ce32..4e093426 100644 Binary files a/mpq/unit/cm/a/missionary.grp and b/mpq/unit/cm/a/missionary.grp differ diff --git a/mpq/unit/cmdbtns/cmdicons.grp b/mpq/unit/cmdbtns/cmdicons.grp index 04d0047a..25d88d69 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 9a4a1ef1..49e35fa8 100644 Binary files a/mpq/unit/cmdbtns/uniticons.grp and b/mpq/unit/cmdbtns/uniticons.grp differ diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp index 59777a92..5c1b13ab 100644 Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ