Add Orkoti Hydralisk and Goszirith Sovrokor models; Fix AI crash

This commit is contained in:
Pr0nogo 2026-08-16 11:53:33 -04:00
parent 5ab2872b99
commit b319a50b3e
16 changed files with 770 additions and 12 deletions

Binary file not shown.

View File

@ -2014,13 +2014,13 @@ Eidolon Shadow (Nydus)
Maverick (Futurist)
Maverick Shadow (Futurist)
Hydralisk (Orkoti)
Hydralisk Shadow (Orkoti)
Hydralisk (Orkoti) Shadow
Tencendur
Tencendur Shadow
Tencendur Attack Overlay (Orange)
Tencendur Attack Overlay (Blue)
Tencendur Attack Overlay (Green)
Hydralisk Remains (Orkoti)
Hydralisk (Orkoti) Remains
Tencendur Flag
Inzorthrokor
Inzorthrokor Shadow
@ -2448,13 +2448,13 @@ Hydrokor (Goszirith) Mutate
Hydralisk Mutate
Nihilist
Nihilist Shadow
Sorvrokor Remains
Sovrokor Remains
Sovrokor Shadow
Sovrokor Birth
Sovrokor Mutate
Zethrokor Mutate
Eidolon (Nydus) Remains
Extended Image #1454
Hydralisk (Orkoti) Mutate
Extended Image #1455
Extended Image #1456
Extended Image #1457

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1178,7 +1178,8 @@ NihilistGndAttkInit:
playfram 0x3E0
wait 1
playfram 0x400
attackmelee 2 4266 4268 # Rozirokor weaponhit 01, 02, 03
playsndbtwn 2536 2538 # Protathalor weaponfire 01, 02, 03
attack
wait 1
playfram 0x420
wait 1

Binary file not shown.

View File

@ -2346,7 +2346,7 @@ UltrokorUnBurrow:
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 054 Zethrokor (zerg\zergling.grp)
# 054 Zethrokor (zerg\zethrokor.grp)
.headerstart
IsId 31
Type 26
@ -2382,7 +2382,7 @@ Enable [NONE]
# ----------------------------------------------------------------------------- #
ZethrokorInit:
imgul 55 0 -1 # Zethrokor Shadow (zerg\zzeShad.grp)
imgul 55 0 0 # Zethrokor Shadow (zerg\zethrokor-shadow.grp)
ZethrokorGndAttkToIdle:
playfram 0x00
goto ZethrokorLocal00
@ -2471,7 +2471,7 @@ ZethrokorDeath:
wait 2
playfram 295
wait 1
lowsprul 160 0 0 # Zethrokor Remnants (zerg\zzeDeath.grp)
lowsprul 160 0 0 # Zethrokor Remnants (zerg\zethrokor-remains.grp)
wait 1
end
@ -19026,4 +19026,758 @@ HydrokorUnBurrow:
playfram 0xcc
wait 1
sigorder 4
goto HydrokorWalkingToIdle
goto HydrokorWalkingToIdle
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 2202 Sovrokor (cm\f-z\sovrokor.grp)
.headerstart
IsId 845
Type 26
Init SovrokorInit
Death SovrokorDeath
GndAttkInit SovrokorGndAttkInit
AirAttkInit [NONE]
Unused1 SovrokorUnused1
GndAttkRpt SovrokorGndAttkInit
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle SovrokorGndAttkToIdle
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking SovrokorWalking
WalkingToIdle SovrokorGndAttkToIdle
SpecialState1 SkryrokorLocal00
SpecialState2 SovrokorSpecialState2
AlmostBuilt [NONE]
Built [NONE]
Landing [NONE]
LiftOff [NONE]
IsWorking [NONE]
WorkingToIdle [NONE]
WarpIn [NONE]
Unused3 [NONE]
StarEditInit [NONE]
Disable [NONE]
Burrow SovrokorBurrow
UnBurrow SovrokorUnBurrow
Enable [NONE]
.headerend
# ----------------------------------------------------------------------------- #
SovrokorInit:
imgul 2451 0 0 # Sovrokor Shadow (cm\f-z\sovrokor-shadow.grp)
SovrokorGndAttkToIdle:
playfram 0x00
goto SovrokorLocal00
SovrokorLocal00:
wait 63
randcondjmp 25 SovrokorLocal01
randcondjmp 128 SovrokorLocal02
goto SovrokorLocal00
SovrokorLocal01:
playfram 0x00
wait 1
playfram 0x11
wait 1
playfram 0x22
wait 1
playfram 0x33
wait 12
playfram 0x22
wait 1
playfram 0x11
wait 1
playfram 0x00
wait 1
goto SovrokorGndAttkToIdle
SovrokorLocal02:
randcondjmp 128 SovrokorLocal03
playfram 0x66
wait 1
turnccwise 1
playfram 0x77
wait 1
turnccwise 1
playfram 0x88
wait 1
turnccwise 1
playfram 0x99
wait 1
turnccwise 1
playfram 0xaa
wait 1
turnccwise 1
playfram 0xbb
wait 1
turnccwise 1
goto SovrokorGndAttkToIdle
SovrokorLocal03:
playfram 0x66
wait 1
turncwise 1
playfram 0x77
wait 1
turncwise 1
playfram 0x88
wait 1
turncwise 1
playfram 0x99
wait 1
turncwise 1
playfram 0xaa
wait 1
turncwise 1
playfram 0xbb
wait 1
turncwise 1
goto SovrokorGndAttkToIdle
SovrokorDeath:
imgol 3 0 0 # Skryrokor Death (zerg\zavDeath.grp)
playsnd 896 # Zerg\Zergling\ZZeDth00.WAV
setfldirect 0
playfram 289
wait 2
playfram 290
wait 2
playfram 291
wait 2
playfram 292
wait 2
playfram 293
wait 2
playfram 294
wait 2
playfram 295
wait 1
lowsprul 1183 0 0 # Sovrokor Remains (zerg\sovrokor-remains.grp)
wait 1
end
SovrokorUnused1:
wait 1
nobrkcodestart
setfldirect 0
playsnd 1171
playfram 295
wait 2
playfram 294
wait 2
playfram 293
wait 2
playfram 292
wait 2
playfram 291
wait 2
playfram 290
wait 2
playfram 289
wait 2
setfldirect 10
nobrkcodeend
goto SovrokorGndAttkToIdle
SovrokorGndAttkInit:
playfram 0x00
wait 1
nobrkcodestart
playfram 0x22
attackmelee 1 894 # Zerg\Ultra\zulHit00.WAV
wait 1
playfram 0x33
wait 1
nobrkcodeend
playfram 0x44
wait 1
gotorepeatattk
goto SovrokorGndAttkToIdle
SovrokorWalking:
move 6
wait 1
playfram 0x66
move 6
wait 1
playfram 0x77
move 6
wait 1
playfram 0x88
move 6
wait 1
playfram 0x99
move 6
wait 1
playfram 0xaa
move 6
wait 1
playfram 0xbb
move 6
wait 1
playfram 0x55
goto SovrokorWalking
SovrokorSpecialState2:
playfram 0x110
goto SkryrokorLocal00
SovrokorBurrow:
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
playfram 0xcc
wait 1
playfram 0xdd
wait 1
playfram 0xee
wait 1
playfram 0xff
wait 1
playfram 0x110
wait 1
sigorder 4
goto SkryrokorLocal00
SovrokorUnBurrow:
wait 1
waitrand 1 2
imgul 423 0 0 # Burrowing Dust (thingy\bDust.grp)
playfram 0xff
wait 1
playfram 0xee
wait 1
playfram 0xdd
wait 1
playfram 0xcc
wait 1
sigorder 4
goto SovrokorGndAttkToIdle
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 2015 Hydralisk (Orkoti) (cm\f-z\hydralisk-orkoti.grp)
.headerstart
IsId 846
Type 26
Init HydraliskOrkotiInit
Death HydraliskOrkotiDeath
GndAttkInit HydraliskOrkotiGndAttkInit
AirAttkInit HydraliskOrkotiGndAttkInit
Unused1 HydraliskOrkotiUnused1
GndAttkRpt HydraliskOrkotiGndAttkRpt
AirAttkRpt HydraliskOrkotiGndAttkRpt
CastSpell [NONE]
GndAttkToIdle HydraliskOrkotiGndAttkToIdle
AirAttkToIdle HydraliskOrkotiGndAttkToIdle
Unused2 [NONE]
Walking HydraliskOrkotiWalking
WalkingToIdle HydraliskOrkotiWalkingToIdle
SpecialState1 SkryrokorLocal00
SpecialState2 HydraliskOrkotiSpecialState2
AlmostBuilt [NONE]
Built [NONE]
Landing [NONE]
LiftOff [NONE]
IsWorking [NONE]
WorkingToIdle [NONE]
WarpIn [NONE]
Unused3 [NONE]
StarEditInit [NONE]
Disable [NONE]
Burrow HydraliskOrkotiBurrow
UnBurrow HydraliskOrkotiUnBurrow
Enable [NONE]
.headerend
# ----------------------------------------------------------------------------- #
HydraliskOrkotiInit:
imgulnextid 0 0 # Hydralisk (Orkoti) Shadow (cm\f-z\hydralisk-orkoti-shadow.grp)
HydraliskOrkotiWalkingToIdle:
playfram 0x55
HydraliskOrkotiLocal00:
wait 62
randcondjmp 25 HydraliskOrkotiLocal01
randcondjmp 128 HydraliskOrkotiLocal02
goto HydraliskOrkotiLocal00
HydraliskOrkotiLocal01:
playfram 0x00
wait 1
playfram 0x11
wait 1
playfram 0x22
wait 1
playfram 0x33
wait 25
playfram 0x22
wait 1
playfram 0x11
wait 1
playfram 0x00
wait 1
goto HydraliskOrkotiWalkingToIdle
HydraliskOrkotiLocal02:
randcondjmp 128 HydraliskOrkotiLocal03
playfram 0x66
wait 1
turnccwise 1
playfram 0x77
wait 1
turnccwise 1
playfram 0x88
wait 1
turnccwise 1
playfram 0x99
wait 1
turnccwise 1
playfram 0xaa
wait 1
turnccwise 1
playfram 0xbb
wait 1
turnccwise 1
goto HydraliskOrkotiWalkingToIdle
HydraliskOrkotiLocal03:
playfram 0x66
wait 1
turncwise 1
playfram 0x77
wait 1
turncwise 1
playfram 0x88
wait 1
turncwise 1
playfram 0x99
wait 1
turncwise 1
playfram 0xaa
wait 1
turncwise 1
playfram 0xbb
wait 1
turncwise 1
goto HydraliskOrkotiWalkingToIdle
HydraliskOrkotiDeath:
playsnd 867 # Zerg\Hydra\ZHyDth00.WAV
setfldirect 0
playfram 0x121
wait 2
playfram 290
wait 2
playfram 291
wait 2
playfram 292
wait 2
playfram 293
wait 2
playfram 294
wait 2
playfram 295
wait 2
lowsprul 994 0 0 # Hydralisk Orkoti Remnants (cm\f-z\hydralisk-orkoti-remains.grp)
wait 1
end
HydraliskOrkotiUnused1:
wait 1
nobrkcodestart
setfldirect 0
playsnd 1172 # Hydralisk Revive 01
playfram 296
wait 2
playfram 295
wait 2
playfram 294
wait 2
playfram 293
wait 2
playfram 292
wait 2
playfram 291
wait 2
playfram 290
wait 2
playfram 0x121
wait 2
setfldirect 12
nobrkcodeend
goto HydraliskOrkotiWalkingToIdle
HydraliskOrkotiGndAttkInit:
playfram 0x00
wait 1
nobrkcodestart
playfram 0x22
wait 1
HydraliskOrkotiGndAttkRpt:
wait 1
playfram 0x44
playsndbtwn 3523 3525 # Hydralisk (Orkoti) weaponfire 01, 02, 03
sproluselo 332 0 # Needle Spines (thingy\spooge.grp)
attack
wait 1
playfram 0x33
wait 1
playfram 0x22
wait 1
nobrkcodeend
gotorepeatattk
ignorerest
HydraliskOrkotiGndAttkToIdle:
playfram 0x22
wait 1
playfram 0x11
wait 1
playfram 0x00
wait 1
goto HydraliskOrkotiWalkingToIdle
HydraliskOrkotiWalking:
move 4
wait 1
playfram 0x66
move 4
wait 1
playfram 0x77
move 4
wait 1
playfram 0x88
move 4
wait 1
playfram 0x99
move 4
wait 1
playfram 0xaa
move 4
wait 1
playfram 0xbb
move 4
wait 1
playfram 0x55
goto HydraliskOrkotiWalking
HydraliskOrkotiSpecialState2:
playfram 0x110
goto SkryrokorLocal00
HydraliskOrkotiBurrow:
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
playfram 0xcc
wait 1
playfram 0xdd
wait 1
playfram 0xee
wait 1
playfram 0xff
wait 1
playfram 0x110
wait 1
sigorder 4
goto SkryrokorLocal00
HydraliskOrkotiUnBurrow:
wait 1
waitrand 1 2
imgul 423 0 0 # Burrowing Dust (thingy\bDust.grp)
playfram 0xff
wait 1
playfram 0xee
wait 1
playfram 0xdd
wait 1
playfram 0xcc
wait 1
sigorder 4
goto HydraliskOrkotiWalkingToIdle
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 050 Alzurokor (cm\f-z\alzurokor.grp)
.headerstart
IsId 847
Type 26
Init AlzurokorInit
Death AlzurokorDeath
GndAttkInit AlzurokorGndAttkInit
AirAttkInit [NONE]
Unused1 AlzurokorUnused1
GndAttkRpt AlzurokorGndAttkRpt
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle AlzurokorGndAttkToIdle
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking AlzurokorWalking
WalkingToIdle AlzurokorGndAttkToIdle
SpecialState1 [NONE]
SpecialState2 AlzurokorSpecialState2
AlmostBuilt [NONE]
Built [NONE]
Landing [NONE]
LiftOff [NONE]
IsWorking [NONE]
WorkingToIdle [NONE]
WarpIn [NONE]
Unused3 [NONE]
StarEditInit [NONE]
Disable [NONE]
Burrow AlzurokorBurrow
UnBurrow AlzurokorUnBurrow
Enable [NONE]
.headerend
# ----------------------------------------------------------------------------- #
AlzurokorInit:
imgulnextid 0 0 # Alzurokor Shadow (cm\f-z\alzurokor-shadow.grp)
AlzurokorGndAttkToIdle:
playfram 0x99
goto AlzurokorLocal00
AlzurokorLocal00:
wait 62
randcondjmp 25 AlzurokorLocal01
randcondjmp 128 AlzurokorLocal02
goto AlzurokorLocal00
AlzurokorLocal01:
playfram 0x00
wait 1
playfram 0x11
wait 1
playfram 0x22
wait 1
playfram 0x33
wait 10
playfram 0x22
wait 1
playfram 0x11
wait 1
playfram 0x00
wait 1
goto AlzurokorGndAttkToIdle
AlzurokorLocal02:
randcondjmp 128 AlzurokorLocal03
playfram 0x66
wait 1
turnccwise 1
playfram 0x77
wait 1
turnccwise 1
playfram 0x88
wait 1
turnccwise 1
playfram 0x99
wait 1
turnccwise 1
playfram 0xaa
wait 1
turnccwise 1
playfram 0xbb
wait 1
turnccwise 1
goto AlzurokorGndAttkToIdle
AlzurokorLocal03:
playfram 0x66
wait 1
turncwise 1
playfram 0x77
wait 1
turncwise 1
playfram 0x88
wait 1
turncwise 1
playfram 0x99
wait 1
turncwise 1
playfram 0xaa
wait 1
turncwise 1
playfram 0xbb
wait 1
turncwise 1
goto AlzurokorGndAttkToIdle
AlzurokorDeath:
playsnd 878 # Zerg\Ultra\ZUlDth00.WAV
setfldirect 0
playfram 408
wait 2
playfram 409
wait 2
playfram 410
wait 2
playfram 411
wait 2
playfram 412
wait 2
playfram 413
wait 2
playfram 414
wait 2
playfram 415
wait 2
playfram 416
wait 2
playfram 417
wait 2
lowsprul 158 0 0 # Alzurokor Remnants (cm\f-z\alzurokor-remains.grp)
wait 1
end
AlzurokorUnused1:
wait 1
nobrkcodestart
setfldirect 0
playsnd 1181
playfram 417
wait 2
playfram 416
wait 2
playfram 415
wait 2
playfram 414
wait 2
playfram 413
wait 2
playfram 412
wait 2
playfram 411
wait 2
playfram 410
wait 2
playfram 409
wait 2
playfram 408
wait 2
setfldirect 14
nobrkcodeend
goto AlzurokorGndAttkToIdle
AlzurokorGndAttkInit:
playfram 0xee
AlzurokorGndAttkRpt:
wait 1
nobrkcodestart
playsndrand 3 891 892 893 # Zerg\Ultra\zulAtt00.WAV | Zerg\Ultra\zulAtt01.WAV | Zerg\Ultra\zulAtt02.WAV
wait 1
playfram 0xdd
wait 1
playfram 0xcc
playsndbtwn 894 895 # Zerg\Ultra\zulHit00.WAV | Zerg\Ultra\zulHit01.WAV
attackwith 1
wait 2
playfram 0xbb
wait 2
playfram 0xcc
wait 1
playfram 0xdd
wait 2
playfram 0xee
wait 1
nobrkcodeend
gotorepeatattk
goto AlzurokorGndAttkToIdle
AlzurokorWalking:
move 5
wait 1
playfram 0x00
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
move 5
wait 1
playfram 0x99
goto AlzurokorWalking
AlzurokorSpecialState2:
playfram 0x187
goto SkryrokorLocal00
AlzurokorBurrow:
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
imgol 423 12 -9 # Burrowing Dust (thingy\bDust.grp)
imgol 423 -18 15 # Burrowing Dust (thingy\bDust.grp)
playsnd 1093 # Zerg\LURKER\ZLuBurrw.wav
playfram 0xff
wait 1
playfram 0x110
wait 1
playfram 0x121
wait 1
playfram 0x132
wait 1
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
imgol 423 12 -15 # Burrowing Dust (thingy\bDust.grp)
imgol 423 -15 -18 # 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 -12 -12 # Burrowing Dust (thingy\bDust.grp)
imgol 423 9 15 # Burrowing Dust (thingy\bDust.grp)
imgol 423 -15 21 # Burrowing Dust (thingy\bDust.grp)
wait 1
sigorder 4
goto SkryrokorLocal00
AlzurokorUnBurrow:
wait 1
waitrand 1 2
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
imgol 423 12 -9 # Burrowing Dust (thingy\bDust.grp)
playfram 0x176
wait 1
playfram 0x165
wait 1
playfram 0x154
wait 1
imgol 423 0 0 # Burrowing Dust (thingy\bDust.grp)
imgol 423 -12 -12 # Burrowing Dust (thingy\bDust.grp)
playfram 0x143
wait 1
playfram 0x132
wait 1
playfram 0x121
wait 1
playfram 0x110
wait 1
playfram 0xff
imgol 423 12 -15 # Burrowing Dust (thingy\bDust.grp)
imgol 423 -15 9 # Burrowing Dust (thingy\bDust.grp)
wait 1
sigorder 4
goto AlzurokorGndAttkToIdle

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -23,6 +23,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*
- **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
- Flyers can now correctly be loaded into air garrisons (e.g. Askosi Grandstand)
- **Scrapworld: Gold Rush** now correctly accounts for the resource cost of dual- and triple-birth units (r. shopkeeper dog)
@ -44,8 +45,9 @@
- Updated Askosi UI to be GREEN! (c. DF)
- Updated background graphics for Options and CrownLink Join menus (c. Jesse)
- New models for:
- Eidolon (Solstice)
- Amaranth, Atreus, Zethrokor, Hydralisk (c. Baelethal)
- Inzorthrokor (Imicren), Iziralisk (Zorthos)
- Inzorthrokor (Imicren), Sovrokor (Goszirith), Hydralisk (Orkoti), Iziralisk (Zorthos)
- New death SFX for:
- Striga (c. Milia)
- Added unique shadows for **Vornath Pond**, **Chokral Chaszal**
@ -98,15 +100,16 @@
- [Artisan](https://cosmonarchy.com/protoss/artisan):
- Movement speed 4.16 » 4 (~4% reduction)
- [Atreus](https://cosmonarchy.com/protoss/atreus):
- Resource costs 200/25 » 175/50
- Resource costs 200/25 » 150/100
- HP 200 » 160
- Shields 100 » 80
- Shields 100 » 60
- Armor 2 » 3
- Speed 4.8 » 6
- **Dauntless Disruption Cannon:**
- Weapon damage 20 » 12
- Weapon range 7 » 5
- Attack cooldown 1.25 » 1
- No longer targets air units
- **Interception** removed
- **NEW: Binding Plasma**, as with **Oscilliant** / **Gladius**
- [Cantavis](https://cosmonarchy.com/protoss/cantavis):

Binary file not shown.