Add energy preview on group selection; Reimplement critters, powerups, and beacons; Make minor visual fixes

This commit is contained in:
Pr0nogo 2025-07-07 22:45:52 -04:00
parent c711ff19c3
commit 13900d3768
38 changed files with 493 additions and 139 deletions

Binary file not shown.

View File

@ -127,7 +127,7 @@ Carapace Swarm
Flag
Young Chrysalis
Psi Emitter
Large Protoss Laser
Data Disk
Khaydarin Crystal
Mineral Chunk Type1
Mineral Chunk Type2
@ -205,8 +205,8 @@ Subterranean Spines
Corrosive Acid Shot
Corrosive Acid Hit
Neutron Flare
Vorvrokor
Bactalisk
Uraj
Khalis
Copy of Skryling
Copy of Maverick
Quarry
@ -563,9 +563,9 @@ Manifold (Starbound)
Yblyleth
Terran Heavy Missile Aion
Pilgrim
Extended Flingy #357
Extended Flingy #358
Extended Flingy #359
Large Protoss Laser
Vorvrokor
Bactalisk
Extended Flingy #360
Extended Flingy #361
Extended Flingy #362

Binary file not shown.

Binary file not shown.

View File

@ -201,7 +201,7 @@ Stargate
Stargate Overlay
Stargate Warp Flash
Stargate Shadow
Stasis Cell/Prison
Stasis Cell
Robotics Support Bay
Robotics Support Bay Warp Flash
Robotics Support Bay Shadow
@ -912,7 +912,7 @@ Unknown Desert Shadow
12/1 Desert Overlay
11/3 Desert
Wraith Engines
Lurker Egg
Lakizilisk Egg (Unused)
Vithrilisk
Vithrilisk Shadow
Vithrilisk Birth
@ -956,8 +956,8 @@ Kakaru (Twilight)
Kakaru (Twilight) Shadow
Ursadon (Ice)
Ursadon (Ice) Shadow
Vorvrokor
Bactalisk
Uraj
Khalis
Halo Rockets Trail
Subterranean Spines
Corrosive Acid Shot
@ -1780,7 +1780,7 @@ Ocsal Regression Overlay
Tyranny Overlay
Nathrok Lake
Mortothrokor Birth
Skithrok Scab
Skibact Scab
Mortothrokor Passive Overlay
Quarry Connector
Qilin
@ -2042,10 +2042,10 @@ Askosi Structure Rubble (Large)
Pilgrim
Pilgrim Shadow
Corrosive Touch Explosion Small
Extended Image #1042
Extended Image #1043
Extended Image #1044
Extended Image #1045
Skibact Scab Shadow
Vorvrokor
Bactalisk
Stasis Cell Shadow
Extended Image #1046
Extended Image #1047
Extended Image #1048

Binary file not shown.

View File

@ -288,7 +288,7 @@ Carapace Swarm
Flag
Young Chrysalis
Psi Emitter
Large Protoss Laser
Data Disk
Khaydarin Crystal
Mineral Chunk Type1
Mineral Chunk Type2
@ -513,8 +513,8 @@ Subterranean Spines
Corrosive Acid Shot
Corrosive Acid Hit
Maelstrom Hit
Vorvrokor
Bactalisk
Uraj
Khalis
Matador
Starpad
Matrix
@ -1006,9 +1006,9 @@ Askosi Structure Rubble (Large)
Pilgrim
Corrosive Touch Explosion Small
Askosi Structure Rubble (Small)
Extended Sprite #1
Extended Sprite #1
Extended Sprite #1
Large Protoss Laser
Vorvrokor
Bactalisk
Extended Sprite #1
Extended Sprite #1
Extended Sprite #1

Binary file not shown.

View File

@ -463,30 +463,30 @@ Askosi Cipher
Askosi Function
Askosi Gauntlet
Askosi Cosmoscope
Extended Unit #238
Extended Unit #239
Extended Unit #240
Extended Unit #241
Extended Unit #242
Extended Unit #243
Extended Unit #244
Extended Unit #245
Extended Unit #246
Extended Unit #247
Extended Unit #248
Extended Unit #249
Extended Unit #250
Extended Unit #251
Extended Unit #252
Extended Unit #253
Extended Unit #254
Extended Unit #255
Extended Unit #256
Extended Unit #257
Extended Unit #258
Extended Unit #259
Extended Unit #260
Extended Unit #261
Ragnasaur (Ashworld)
Rhynadon (Badlands)
Bengalaas (Jungle)
Scantid (Desert)
Ursadon (Ice)
Kakaru (Twilight)
Flag
Young Chrysalis
Psi Emitter
Data Disk
Khaydarin Crystal
Uraj
Khalis
Mineral Chunk
Mineral Chunk Depleted
Terran Vespene
Terran Vespene Depleted
Protoss Vespene
Protoss Vespene Depleted
Zerg Vespene
Zerg Vespene Depleted
Terran Beacon
Protoss Beacon
Zerg Beacon
Extended Unit #262
Extended Unit #263
Extended Unit #264

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,103 +1,92 @@
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 338 Ragnasaur (neutral\Acritter.grp)
# 338 Ragnasaur (Ash) (neutral\Acritter.grp)
.headerstart
IsId 198
Type 12
Init RagnasaurInit
Death RagnasaurDeath
GndAttkInit RagnasaurGndAttkInit
AirAttkInit RagnasaurGndAttkInit
Init Ragnasaur_AshworldCritter_Init
Death Ragnasaur_AshworldCritter_Death
GndAttkInit [NONE]
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt RagnasaurGndAttkInit
AirAttkRpt RagnasaurGndAttkInit
CastSpell RagnasaurCastSpell
GndAttkToIdle RagnasaurGndAttkToIdle
AirAttkToIdle RagnasaurGndAttkToIdle
GndAttkRpt [NONE]
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle [NONE]
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking RagnasaurWalking
WalkingToIdle RagnasaurGndAttkToIdle
Walking Ragnasaur_AshworldCritter_Walking
WalkingToIdle Ragnasaur_AshworldCritter_WalkingToIdle
SpecialState1 [NONE]
.headerend
# ----------------------------------------------------------------------------- #
RagnasaurInit:
imgul 339 0 0 # Ragnasaur Shadow (neutral\nacShad.grp)
RagnasaurGndAttkToIdle:
playfram 0x00
Ragnasaur_AshworldCritter_Init:
imgul 339 0 0 # Ragnasaur (Ash) Shadow (neutral\nacShad.grp)
Ragnasaur_AshworldCritter_WalkingToIdle:
playfram 0x66
goto SkryrokorLocal00
RagnasaurDeath:
playsndbtwn 276 277 # Maverick death 01, 02
imgol 332 0 0 # Explosion2 (Small) (thingy\tBangS.grp)
wait 3
Ragnasaur_AshworldCritter_Death:
playsnd 53 # Misc\CRITTERS\LCrDth00.wav
setfldirect 0
playfram 0x99
wait 1
playfram 154
wait 1
playfram 155
wait 1
playfram 156
wait 1
playfram 157
wait 1
playfram 158
wait 1
playfram 159
wait 1
playfram 160
wait 1
end
RagnasaurGndAttkInit:
playfram 0x00
wait 1
RagnasaurGndAttkRpt:
nobrkcodestart
playfram 0x11
wait 1
playfram 0x22
playsndbtwn 1189 1193 # Ragnasaur weaponfire 01, 02, 03, 04, 05
attackwith 1
wait 1
playfram 0x11
wait 1
nobrkcodeend
gotorepeatattk
goto RagnasaurGndAttkToIdle
RagnasaurCastSpell:
playsnd 974 # Misc\CRITTERS\ScWht03.wav
wait 1
goto RagnasaurGndAttkToIdle
RagnasaurWalking:
move 3
wait 1
playfram 0x11
move 3
wait 1
playfram 0x33
move 3
wait 1
playfram 0x44
move 3
wait 1
playfram 0x55
move 3
wait 1
playfram 0x66
move 3
Ragnasaur_AshworldCritter_Walking:
move 4
wait 1
playfram 0x77
move 3
move 4
wait 1
playfram 0x88
move 3
move 4
wait 1
playfram 0x99
move 3
playfram 0x00
move 4
wait 1
playfram 0xaa
move 3
playfram 0x11
move 4
wait 1
playfram 0xbb
move 3
playfram 0x22
move 4
wait 1
playfram 0xcc
move 3
playfram 0x33
move 4
wait 1
playfram 0xdd
move 3
playfram 0x44
move 4
wait 1
playfram 0xee
move 3
playfram 0x55
move 4
wait 1
goto RagnasaurWalking
playfram 0x66
goto Ragnasaur_AshworldCritter_Walking
InfestedTerranWalkingToIdle:
playfram 0x00
SkryrokorLocal00:
wait 125
goto SkryrokorLocal00
Generic_Wait1End:
wait 1
end
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
@ -209,9 +198,9 @@ SpecialState1 [NONE]
# ----------------------------------------------------------------------------- #
Bengalaas_JungleCritter_Init:
imgul 343 0 0 # Bengalaas (Jungle) Shadow (neutral\njcShad.grp)
imgul 343 0 0 # Bengalaas (Jungle) Shadow (neutral\njcShad.grp)
Bengalaas_JungleCritter_WalkingToIdle:
playfram 0x00
playfram 0x00 # Frame set 0
goto SkryrokorLocal00
Bengalaas_JungleCritter_Death:
@ -3346,16 +3335,6 @@ KhaydarinEclipseProtossAccelerantDeath:
wait 1
end
InfestedTerranWalkingToIdle:
playfram 0x00
SkryrokorLocal00:
wait 125
goto SkryrokorLocal00
Generic_Wait1End:
wait 1
end
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 769 8/3 Twilight1 (thingy\tileset\twilight\rstatue.grp)
@ -4290,4 +4269,307 @@ DurendalWeaponfireInit:
wait 1
goto Generic_Wait1End
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 952 Scantid (Desert) (neutral\Kcritter.grp)
.headerstart
IsId 375
Type 12
Init Scantid_DesertCritter_Init
Death Scantid_DesertCritter_Death
GndAttkInit [NONE]
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt [NONE]
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle [NONE]
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking Scantid_DesertCritter_Walking
WalkingToIdle Scantid_DesertCritter_WalkingToIdle
SpecialState1 [NONE]
.headerend
# ----------------------------------------------------------------------------- #
Scantid_DesertCritter_Init:
imgul 953 0 0 # Scantid (Desert) Shadow (neutral\nckShad.grp)
Scantid_DesertCritter_WalkingToIdle:
playfram 0x66
goto SkryrokorLocal00
Scantid_DesertCritter_Death:
playsnd 975 # Misc\CRITTERS\ScDeath01.wav
setfldirect 0
playfram 0xcc
wait 2
playfram 205
wait 2
playfram 206
wait 2
playfram 207
wait 2
playfram 208
wait 2
playfram 209
wait 2
playfram 210
wait 2
playfram 211
wait 2
end
Scantid_DesertCritter_Walking:
move 4
wait 1
playfram 0x77
move 4
wait 1
playfram 0x88
move 4
wait 1
playfram 0x00
move 4
wait 1
playfram 0x11
move 4
wait 1
playfram 0x22
move 4
wait 1
playfram 0x33
move 4
wait 1
playfram 0x44
move 4
wait 1
playfram 0x55
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
goto Scantid_DesertCritter_Walking
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 954 Kakaru (Twilight) (neutral\Scritter.grp)
.headerstart
IsId 376
Type 12
Init Kakaru_TwilightCritter_Init
Death Kakaru_TwilightCritter_Death
GndAttkInit [NONE]
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt [NONE]
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle [NONE]
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking Kakaru_TwilightCritter_Walking
WalkingToIdle Kakaru_TwilightCritter_WalkingToIdle
SpecialState1 [NONE]
.headerend
# ----------------------------------------------------------------------------- #
Kakaru_TwilightCritter_Init:
imgul 955 0 42 # Kakaru (Twilight) Shadow (neutral\Scritter.grp)
Kakaru_TwilightCritter_WalkingToIdle:
playfram 0x00
wait 2
playfram 0x11
wait 2
playfram 0x22
wait 2
playfram 0x33
wait 2
playfram 0x44
wait 2
playfram 0x55
wait 2
playfram 0x66
wait 2
playfram 0x77
wait 2
playfram 0x88
wait 2
playfram 0x99
wait 2
playfram 0xaa
wait 2
playfram 0xbb
wait 2
goto Kakaru_TwilightCritter_WalkingToIdle
Kakaru_TwilightCritter_Death:
playsnd 979 # Misc\CRITTERS\TerDeath01.wav
setfldirect 0
playfram 0xcc
wait 2
playfram 205
wait 2
playfram 206
wait 2
playfram 207
wait 2
playfram 208
wait 2
playfram 209
wait 2
playfram 210
wait 2
playfram 211
wait 2
playfram 212
wait 2
playfram 213
wait 2
end
Kakaru_TwilightCritter_Walking:
playfram 0x00
wait 1
playfram 0x11
wait 1
playfram 0x22
wait 1
playfram 0x33
wait 1
playfram 0x44
wait 1
playfram 0x55
wait 1
playfram 0x66
wait 1
playfram 0x77
wait 1
playfram 0x88
wait 1
playfram 0x99
wait 1
playfram 0xaa
wait 1
playfram 0xbb
wait 1
goto Kakaru_TwilightCritter_Walking
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 956 Ursadon (Ice) (neutral\Icritter.grp)
.headerstart
IsId 377
Type 12
Init Ursadon_IceCritter_Init
Death Ursadon_IceCritter_Death
GndAttkInit [NONE]
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt [NONE]
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle [NONE]
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking Ursadon_IceCritter_Walking
WalkingToIdle Ursadon_IceCritter_WalkingToIdle
SpecialState1 [NONE]
.headerend
# ----------------------------------------------------------------------------- #
Ursadon_IceCritter_Init:
imgul 957 0 0 # Ursadon (Ice) Shadow (neutral\ncicShad.grp)
Ursadon_IceCritter_WalkingToIdle:
playfram 0x00
goto SkryrokorLocal00
Ursadon_IceCritter_Death:
playsnd 971 # Misc\CRITTERS\PBDeath01.wav
setfldirect 0
playfram 0x88
wait 2
playfram 137
wait 2
playfram 138
wait 2
playfram 139
wait 2
playfram 140
wait 50
playfram 141
wait 50
playfram 142
wait 50
playfram 143
wait 50
end
Ursadon_IceCritter_Walking:
move 4
wait 1
playfram 0x00
move 4
wait 1
playfram 0x11
move 4
wait 1
playfram 0x22
move 4
wait 1
playfram 0x33
move 4
wait 1
playfram 0x44
move 4
wait 1
playfram 0x55
move 4
wait 1
playfram 0x66
move 4
wait 1
playfram 0x77
goto Ursadon_IceCritter_Walking
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 393 Young Chrysalis (neutral\KerrEgg.grp)
.headerstart
IsId 220
Type 1
Init YoungChrysalisInit
Death YoungChrysalisDeath
.headerend
# ----------------------------------------------------------------------------- #
YoungChrysalisInit:
playfram 0x00
pwrupcondjmp YoungChrysalisLocal00
imgul 415 0 0 # Young Chrysalis Shadow (Ground) (neutral\nkeShad.grp)
goto SkryrokorLocal00
YoungChrysalisLocal00:
wait 1
switchul 416 # Young Chrysalis Shadow (Carried) (neutral\nkeSha2.grp)
goto SkryrokorLocal00
YoungChrysalisDeath:
imgol 332 0 0 # Explosion2 (Small) (thingy\tBangS.grp)
wait 3
end
## Next free IsId: 829

Binary file not shown.

View File

@ -2995,11 +2995,11 @@ StargateOverlayDeath:
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 203 Stasis Cell/Prison (neutral\stasis.grp)
# 203 Stasis Cell (neutral\stasis.grp)
.headerstart
IsId 187
Type 20
Init StasisCell_PrisonInit
Init StasisCell_Init
Death ForgeDeath
GndAttkInit [NONE]
AirAttkInit [NONE]
@ -3015,7 +3015,7 @@ WalkingToIdle [NONE]
SpecialState1 [NONE]
SpecialState2 [NONE]
AlmostBuilt [NONE]
Built StasisCell_PrisonInit
Built StasisCell_Built
Landing [NONE]
LiftOff [NONE]
IsWorking SkryrokorLocal00
@ -3024,7 +3024,9 @@ WarpIn [NONE]
.headerend
# ----------------------------------------------------------------------------- #
StasisCell_PrisonInit:
StasisCell_Init:
imgul 2047 0 0 # Stasis Cell Shadow (neutral\stasis-cell-shadow.grp)
StasisCell_Built:
playfram 0x00
goto SkryrokorLocal00

Binary file not shown.

View File

@ -1878,7 +1878,7 @@ Phalanx_Tank_BaseWalking:
.headerstart
IsId 91
Type 13
Init InfestedTerranWalkingToIdle
Init Phalanx_Tank_TurretInit
Death Generic_Wait1End
GndAttkInit Phalanx_Tank_TurretGndAttkInit
AirAttkInit [NONE]
@ -1886,14 +1886,36 @@ Unused1 SkryrokorLocal00
GndAttkRpt Phalanx_Tank_TurretGndAttkInit
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle SkryrokorLocal00
GndAttkToIdle Phalanx_Tank_TurretInit
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking SkryrokorLocal00
WalkingToIdle SkryrokorLocal00
WalkingToIdle Phalanx_Tank_TurretInit
SpecialState1 SkryrokorLocal00
.headerend
# ----------------------------------------------------------------------------- #
Phalanx_Tank_TurretInit:
playfram 0x00
Phalanx_Tank_TurretLocal00:
waitrand 63 75
randcondjmp 230 Phalanx_Tank_TurretLocal00
sigorder 8
randcondjmp 127 Phalanx_Tank_TurretLocal01
turnccwise 1
wait 3
turnccwise 1
wait 3
turnccwise 1
goto Phalanx_Tank_TurretLocal00
Phalanx_Tank_TurretLocal01:
turn1cwise 1
wait 3
turn1cwise 1
wait 3
turn1cwise 1
goto Phalanx_Tank_TurretLocal00
Phalanx_Tank_TurretGndAttkInit:
wait 1

Binary file not shown.

View File

@ -16304,3 +16304,39 @@ CorrosiveTouchExplosionInit:
playfram 14
wait 1
end
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 1782 Skibact Scab (cm\zerg\skibact-scab.grp)
.headerstart
IsId 830
Type 20
Init SkibactScabInit
Death HydrithDenDeath
GndAttkInit [NONE]
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt [NONE]
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle [NONE]
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking [NONE]
WalkingToIdle [NONE]
SpecialState1 [NONE]
SpecialState2 [NONE]
AlmostBuilt HydrithDenAlmostBuilt
Built HydrithDenBuilt
Landing [NONE]
LiftOff [NONE]
IsWorking HydrithDenIsWorking
WorkingToIdle HydrithDenWorkingToIdle
WarpIn [NONE]
.headerend
# ----------------------------------------------------------------------------- #
SkibactScabInit:
imgul 2044 0 0 # Skibact Scab Shadow (cm\zerg\skibact-scab-shadow.grp)
playfram 0x00
goto HydrithDenWorkingToIdle

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mpq/unit/neutral/uraj.grp Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,9 +6,21 @@
- Continue under-the-hood changes for Askosi implementation
- Add and improve some audiovisuals
## Features
- Group wireframes now display approximate energy amounts (c. DF)
- Reinstated critters, powerups, and beacons for UMS / campaign use (b. 3crow)
- Added "critter" option to "set_unit_behavior" crig action, to toggle the emulation of critter wandering for non-critter units
## Bugfixes
- **Stability:**
- Fixed certain edge cases where disabling units could result in tooltip crashes (r. 3crow)
- Resolved several iscript errors that could have contributed towards game instability
- **Gameplay:**
- Fix Larva and Egg replication in Brotherhood mode (r. HitEmUp)
- Fix Larva and Egg replication in Brotherhood mode (r. HitEmUp)
- **Audiovisual:**
- Implemented unique shadow for Skibact Scab
- Added shadow for Stasis Cell
- Lardfix: Corrected unit responses for Ultrokor (r. DF)
**Audiovisuals:**
- New fidget animations for tank mode Phalanx (c. DF)

Binary file not shown.