diff --git a/mpq/arr/flingy.datex b/mpq/arr/flingy.datex
index fc95ae12..1686b65f 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 8b98302e..d66b3cef 100644
--- a/mpq/arr/flingy.txt
+++ b/mpq/arr/flingy.txt
@@ -520,10 +520,10 @@ Sasyrvoleth
Autocrat Laser
Angeltear Rockets
Ackmed
-Extended Flingy #314
-Extended Flingy #315
-Extended Flingy #316
-Extended Flingy #317
+Venom (White)
+Skithrokor Spore
+Photon Blasters White
+Photon Blasters Green
Extended Flingy #318
Extended Flingy #319
Extended Flingy #320
diff --git a/mpq/arr/images.datex b/mpq/arr/images.datex
index 651573d2..01e45d44 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 cba6bcd3..1f535deb 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 2e199a42..5766b121 100644
--- a/mpq/arr/images.txt
+++ b/mpq/arr/images.txt
@@ -1915,16 +1915,16 @@ Ackmed Shadow
Simulacrum Remains
Vassal Remains
Nathrokor Remains
-Extended Image #915
-Extended Image #916
-Extended Image #917
-Extended Image #918
-Extended Image #919
-Extended Image #920
-Extended Image #921
-Extended Image #922
-Extended Image #923
-Extended Image #924
+Venom (White)
+Skithrokor Spore
+Yellow Spore Overlay
+Orange Spore Overlay
+Orange Spore Overlay Small
+Seeker Spores Hit Yellow
+Seeker Spores Hit Orange
+Seeker Spores Hit Orange Small
+Photon Blasters White
+Photon Blasters Green
Extended Image #925
Extended Image #926
Extended Image #927
diff --git a/mpq/arr/sprites.datex b/mpq/arr/sprites.datex
index 550e3135..512609a0 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 12d1dbaf..bc0914bc 100644
--- a/mpq/arr/sprites.txt
+++ b/mpq/arr/sprites.txt
@@ -621,7 +621,7 @@ Alkajelisk Spore
Terran Heavy Missile
Optecton
Madrigal Missile 1
-Kalkalisk Missile
+Kalkalisk Spore
Recall Field (Shorter)
Shock Cannon Explosion (Silent)
Longbolt Missile (Silent)
@@ -930,16 +930,16 @@ Ackmed
Simulacrum Remains
Vassal Remains
Nathrokor Remains
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
-Extended Sprite #1
+Venom (White)
+Skithrokor Spore
+Spores Overlay Orange
+Spores Overlay Orange Small
+Spores Overlay Yellow
+Seeker Spores Hit Orange
+Seeker Spores Hit Orange Small
+Seeker Sporse Hit Yellow
+Photon Blasters White
+Photon Blasters Green
Extended Sprite #1
Extended Sprite #1
Extended Sprite #1
diff --git a/mpq/arr/weapons.datex b/mpq/arr/weapons.datex
index 7f6e0a91..5294cc95 100644
Binary files a/mpq/arr/weapons.datex and b/mpq/arr/weapons.datex differ
diff --git a/mpq/rez/stat_txt.tbl b/mpq/rez/stat_txt.tbl
index 0b8c5314..02cbe002 100644
Binary files a/mpq/rez/stat_txt.tbl and b/mpq/rez/stat_txt.tbl differ
diff --git a/mpq/scripts/iscript.txt b/mpq/scripts/iscript.txt
index 3f944819..a0df5010 100644
--- a/mpq/scripts/iscript.txt
+++ b/mpq/scripts/iscript.txt
@@ -15902,25 +15902,25 @@ Death Generic_Wait1End
GlaveWurmHitInit:
playfram 0x00
- wait 2
+ wait 1
playfram 1
- wait 2
+ wait 1
playfram 2
- wait 2
+ wait 1
playfram 3
- wait 2
+ wait 1
playfram 4
- wait 2
+ wait 1
playfram 5
- wait 2
+ wait 1
playfram 6
- wait 2
+ wait 1
playfram 7
- wait 2
+ wait 1
playfram 8
- wait 2
+ wait 1
playfram 9
- wait 2
+ wait 1
end
# ----------------------------------------------------------------------------- #
@@ -30498,24 +30498,24 @@ KalkaliskSporesInit:
sigorder 1
wait 1
KalkaliskSporesGndAttkInit:
- sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
+ sprol 936 0 0 # Spores Overlay Yellow (cm\zerg\spore-overlay-yellow.grp)
playfram 0x00
wait 1
- sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
+ sprol 936 0 0 # Spores Overlay Yellow
playfram 1
wait 1
- sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
+ sprol 936 0 0 # Spores Overlay Yellow
playfram 2
wait 1
- sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
+ sprol 936 0 0 # Spores Overlay Yellow
playfram 3
wait 1
- sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
+ sprol 936 0 0 # Spores Overlay Yellow
goto KalkaliskSporesGndAttkInit
KalkaliskSporesDeath:
playsndbtwn 2396 2398 # Kalkalisk weaponhit 01, 02, 03
- sprol 365 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
+ sprol 939 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
#domissiledmg
sigorder 128
wait 2
@@ -30523,7 +30523,7 @@ KalkaliskSporesDeath:
KalkaliskSporesAirAttkInit:
playsndbtwn 2396 2398 # Kalkalisk weaponhit 01, 02, 03
- sprol 365 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
+ sprol 939 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
domissiledmg
goto KalkaliskSporesGndAttkInit
@@ -32042,7 +32042,7 @@ IonOverlayInit:
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
-# 1279 Seeker Spores (silent) (bullet\Spore2.grp)
+# 1279 Seeker Spores Silent (bullet\Spore2.grp)
.headerstart
IsId 542
Type 2
@@ -32058,6 +32058,7 @@ SeekerSporesSilentInit:
wait 1
sigorder 1
wait 1
+ if bullet.weapon_id == 54 goto SeekerSporesSilentGndAttkInitSkithrokor
SeekerSporesSilentGndAttkInit:
sprol 368 0 0 # Seeker Spores Overlay (thingy\gSmoke.grp)
playfram 0x00
@@ -32074,6 +32075,22 @@ SeekerSporesSilentGndAttkInit:
sprol 368 0 0 # Seeker Spores Overlay
goto SeekerSporesSilentGndAttkInit
+SeekerSporesSilentGndAttkInitSkithrokor:
+ sprol 935 0 0 # Spores Overlay Orange Small (cm\zerg\spore-overlay-orange-small.grp)
+ playfram 0x00
+ wait 1
+ sprol 935 0 0 # Spores Overlay Orange Small
+ playfram 1
+ wait 1
+ sprol 935 0 0 # Spores Overlay Orange Small
+ playfram 2
+ wait 1
+ sprol 935 0 0 # Spores Overlay Orange Small
+ playfram 3
+ wait 1
+ sprol 935 0 0 # Spores Overlay Orange Small
+ goto SeekerSporesSilentGndAttkInitSkithrokor
+
SeekerSporesSilentDeathGen:
if bullet.weapon_id == 52 goto SeekerSporesSilentDeathSpraith
playsnd 79 # Bullet\ZLuHit00.wav
@@ -32082,13 +32099,17 @@ SeekerSporesSilentDeathGen:
SeekerSporesSilentDeathSpraith:
playsndbtwn 1194 1195 # Spraith Cesiant weaponhit 01, 02
SeekerSporesSilentDeath:
- sprol 365 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
if bullet.weapon_id == 54 goto SeekerSporesSilentDeathSkithrokor
+ sprol 365 0 0 # Glave Wurm/Seeker Spores Hit (thingy\SporeHit.grp)
domissiledmg
-SeekerSporesSilentDeathSkithrokor:
wait 1
end
-
+
+SeekerSporesSilentDeathSkithrokor:
+ sprol 938 0 0 # Spore Hit Orange Small (cm\zerg\spore-hit-orange-small.grp)
+ wait 1
+ end
+
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 1280 Ion Field (cm\effect\ioncannon-ionfield.grp)
diff --git a/mpq/unit/cm/protoss/photon-blasters-green.grp b/mpq/unit/cm/protoss/photon-blasters-green.grp
new file mode 100644
index 00000000..52d6164a
Binary files /dev/null and b/mpq/unit/cm/protoss/photon-blasters-green.grp differ
diff --git a/mpq/unit/cm/protoss/photon-blasters-white.grp b/mpq/unit/cm/protoss/photon-blasters-white.grp
new file mode 100644
index 00000000..6df46824
Binary files /dev/null and b/mpq/unit/cm/protoss/photon-blasters-white.grp differ
diff --git a/mpq/unit/cm/zerg/kalkalisk-spore.grp b/mpq/unit/cm/zerg/kalkalisk-spore.grp
new file mode 100644
index 00000000..adbf8964
Binary files /dev/null and b/mpq/unit/cm/zerg/kalkalisk-spore.grp differ
diff --git a/mpq/unit/cm/zerg/skithrokor-spore.grp b/mpq/unit/cm/zerg/skithrokor-spore.grp
new file mode 100644
index 00000000..28ee58d2
Binary files /dev/null and b/mpq/unit/cm/zerg/skithrokor-spore.grp differ
diff --git a/mpq/unit/cm/zerg/spore-hit-orange-small.grp b/mpq/unit/cm/zerg/spore-hit-orange-small.grp
new file mode 100644
index 00000000..13579ba0
Binary files /dev/null and b/mpq/unit/cm/zerg/spore-hit-orange-small.grp differ
diff --git a/mpq/unit/cm/zerg/spore-hit-orange.grp b/mpq/unit/cm/zerg/spore-hit-orange.grp
new file mode 100644
index 00000000..e68996bf
Binary files /dev/null and b/mpq/unit/cm/zerg/spore-hit-orange.grp differ
diff --git a/mpq/unit/cm/zerg/spore-hit-yellow.grp b/mpq/unit/cm/zerg/spore-hit-yellow.grp
new file mode 100644
index 00000000..4912deee
Binary files /dev/null and b/mpq/unit/cm/zerg/spore-hit-yellow.grp differ
diff --git a/mpq/unit/cm/zerg/spores-overlay-orange-small.grp b/mpq/unit/cm/zerg/spores-overlay-orange-small.grp
new file mode 100644
index 00000000..6eabc4d3
Binary files /dev/null and b/mpq/unit/cm/zerg/spores-overlay-orange-small.grp differ
diff --git a/mpq/unit/cm/zerg/spores-overlay-orange.grp b/mpq/unit/cm/zerg/spores-overlay-orange.grp
new file mode 100644
index 00000000..d68a703f
Binary files /dev/null and b/mpq/unit/cm/zerg/spores-overlay-orange.grp differ
diff --git a/mpq/unit/cm/zerg/spores-overlay-yellow.grp b/mpq/unit/cm/zerg/spores-overlay-yellow.grp
new file mode 100644
index 00000000..08dbbdd6
Binary files /dev/null and b/mpq/unit/cm/zerg/spores-overlay-yellow.grp differ
diff --git a/mpq/unit/cm/zerg/venom-white.grp b/mpq/unit/cm/zerg/venom-white.grp
new file mode 100644
index 00000000..bf391d84
Binary files /dev/null and b/mpq/unit/cm/zerg/venom-white.grp differ
diff --git a/patchnotes.md b/patchnotes.md
index 5d732cd5..1b9dd91d 100644
--- a/patchnotes.md
+++ b/patchnotes.md
@@ -14,6 +14,7 @@ Forthcoming.
- **Console:**
- Added "duplicate" command (`unit duplicate` or `u d`) (with help from benno)
- **Logging:**
+ - Made random logging enabled by default
- Updated random logging to include:
- The previous value of the global random number
- The frame the randomizer function was called
@@ -22,6 +23,10 @@ Forthcoming.
- `give_unit `
- `set_player_build_multiplier `
- Added `disable_passive` to `set_unit_behavior` (currently prevents Cleric/Shaman healing)
+ - Updated syntaxes for `move_unit` and `issue_order`
+ - Added Grief of All Gods (id 155) handling to `issue_order`
+- **Other:**
+ - Added Ackmed (id 409), Goska (id 500), and Stroluum (id 501) units for map authors to use
## Bugfixes
- **Stability**:
@@ -31,6 +36,8 @@ Forthcoming.
- Fixed some freeze cases when a player left the game
- Fixed improper handling of cargo units when an Iroleth regresses to an Ovileth (r. jakulangski)
- **Gameplay**:
+ - Interception and piercing intersection tests now use a much more precise algorithm, fixing cases where bullets would overshoot or miss (c. Veeq7)
+ - Unloading structures now respects allied cagra, buildable tiles, and collision (c. Veeq7)
- Restored Clarion Phase Link functionality (r. Neblime, c. Veeq7)
- Restored Magnetar Yamato Cannon functionality (r. jakulangski)
- Anthelion Gravity Well can no longer stun victims (r. GreenEggs'NSpam)
@@ -52,20 +59,22 @@ Forthcoming.
- Resolved several mnemonic hotkey conflicts with Ocsal Larvae and Protathalor (r. jakulangski)
- **User Interface:**
- Completing a game on CrownLink now returns to game selection, instead of main menu (r. The Shambler, with some tips from X405)
+ - Fixed weapon tooltip for Rililisk not including air targets (r. Krankendau)
## Audiovisuals
- New sprite for:
- Atreus (c. Baelethal; animations WIP)
- Charlatan
- New corpses for:
- - Ancile, Trojan, Envoy, Ovileth
+ - Phalanx (Tank & Siege), Ancile, Trojan, Envoy, Hierophant, Simulacrum, Vassal, Ovileth, Nathrokor
- Added birth animation for Sasyrvoleth
- Added morph animations for:
- Protathalor, Izirokor, Skithrokor, Evigrilisk, Gorgrokor, Vilgorokor, Geszithalor
- Used different effects for:
- Vengeful Ascension
- Legionnaire Blade Vortex
- - Protathalor, Alogztalisk, Gorgrokor air, Zarcavrokor passive weaponhits
+ - Kalkalisk, Protathalor, Skithrokor, projectiles
+ - Hierophant, Vassal, Protathalor, Algoztalisk, Gorgrokor air, Zarcavrokor passive weaponhits
- Updated effects for:
- Reclamation proc & heal
- Zerg corpse consumption
@@ -76,6 +85,13 @@ Forthcoming.
- Stun duration on resurrect 2 seconds » 3 seconds
- [Maverick](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/maverick):
- Armor penetration 0 » 1
+- [Cyprian](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/cyprian):
+ - **Twin Railguns:**
+ - Weapon cooldown 0.83 » 0.75
+- [Heracles](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/heracles):
+ - Build time 25 » 22
+ - **NEW: Kevlin Munitions:**
+ - Attacks reduce movement speed by 33% for 3 seconds
- [Apostle](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/apostle):
- Resource costs 75/150 » 75/200
- Weapon range 6 » 5
@@ -93,22 +109,45 @@ Forthcoming.
- Damage 10 » 7
- Armor penetration 0 » 2
- *A nerf to the Madrigal's absolute power, with more impact in the TvZ matchup.*
+- [Durendal](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/durendal):
+ - HP 240 » 225
+ - Movement speed 4.5 » 5.75
- [Ancile](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/ancile):
- Resource costs 75/100 » 100/100
+ - Energy 150 » 125
- [Wyvern](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/wyvern):
- Time cost 30 » 35
- **Jackson Cannon:**
+ - Weapon cooldown 1.5 » 1.25
+ - Now has a 0.5 second firing delay
- Projectile collision now 50% larger
+ - Attack angle 360° » ~112° (c. Veeq7)
- [Valkyrie](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/valkyrie):
- **Halo Rockets**:
- Weapon factor x damage 6 x 5 » 9 x 4
- Adjusted volley pattern (c. Veeq7)
- Increased delay between volleys
- Now fires an additional volley
+- [Salamander](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/salamander):
+ - **Perdition Barrage:**
+ - No longer targets air units
+ - **NEW: Angeltear Rockets:**
+ - 2x6 damage, 0AP, 1s cooldown, 6 range
+ - Single-target projectile attack (air only)
+ - Applies Apollyoid Adhesive
- [Magnetar](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/magnetar):
- Resource costs 300/250 » 250/450
- [Pythean](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/pythean):
- Resource costs 350/150 » 350/100
+- [Fulcrum](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/fulcrum):
+ - Build time 45 » 50
+
+### Nydus Trinity
+- [Tarasque](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=terran/tarasque):
+ - HP 225 » 180
+ - Armor 4 » 3
+ - **Hedon Cannon:**
+ - No longer targets air units
## Protoss
- **Tyranny of the Sun:**
@@ -128,7 +167,12 @@ Forthcoming.
- Resource costs 150/200 » 50/200
- [Optecton](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=protoss/optecton):
- HP 240 » 300
- - Weapon cooldown 2 » 1.5
+ - **Sunsplit Beam:**
+ - Weapon factor 5 » 10
+ - Weapon projectile now travels to max range
+ - Attack sequence no longer interrupts when original target dies
+- [Simulacrum](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=protoss/simulacrum):
+ - Movement speed 4.95 » 5.4
- [Manifold](https://www.fraudsclub.com/cosmonarchy-bw/show.php?target=protoss/manifold):
- Armor penetration 1 » 0
- **NEW: Concurring Chorus:**
diff --git a/plugins/gptp.qdp b/plugins/gptp.qdp
index c28fa667..eca0bc70 100644
Binary files a/plugins/gptp.qdp and b/plugins/gptp.qdp differ