At first I thought it was as easy simply giving the Goliath Base a weapon, an attack code in it's Iscript and that'd be that. Buuuut I was horribly wrong. The Goliath does not use the weapon and so I figured if it were that easy someone would've done it before.
Here is my current iscript if it helps;
Code
# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 234 Goliath Base (terran\goliath.grp)
.headerstart
IsId 75
Type 23
Init Goliath_Base_Init
Death Goliath_Base_Death
GndAttkInit Goliath_Base_GndAttkInit
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt Goliath_Base_GndAttkRpt
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle Goliath_Base_GndAttkInit
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking Goliath_Base_Walking
WalkingToIdle Goliath_Base_GndAttkInit
SpecialState1 [NONE]
SpecialState2 [NONE]
AlmostBuilt [NONE]
Built [NONE]
Landing [NONE]
LiftOff [NONE]
IsWorking [NONE]
WorkingToIdle [NONE]
WarpIn [NONE]
Unused3 [NONE]
StarEditInit Goliath_Base_StarEditInit
.headerend
# ----------------------------------------------------------------------------- #
Goliath_Base_Init:
imgul 236 0 0 # Goliath Shadow (terran\tgoShad.grp)
Goliath_Base_GndAttkInit:
playfram 0x77 # Frame set 7
goto Goliath_Base_Local00
Goliath_Base_Local00:
wait 125
goto Goliath_Base_Local00
Goliath_Base_Death:
playsnd 8 # Misc\ExploMed.wav
imgol 332 0 0 # Explosion2 (Small) (thingy\tBangS.grp)
lowsprul 273 0 0 # Terran Building Rubble (Small) (thingy\RubbleS.grp)
wait 3
end
Goliath_Base_GndAttkRpt:
playfram 0x88 # Frame set 8
wait 1
playfram 0x99 # Frame set 9
wait 1
attackwith 1
attackmelee 1 894 # Zerg\Ultra\zulHit00.WAV
playfram 0x00 # Frame set 0
wait 1
playfram 0x88 # Frame set 8
wait 1
playfram 0x99 # Frame set 9
wait 1
gotorepeatattk
ignorerest
goto Goliath_Base_GndAttkInit
Goliath_Base_Walking:
move 6
wait 1
playfram 0x88 # Frame set 8
move 3
wait 1
playfram 0x99 # Frame set 9
move 3
wait 1
playfram 0x00 # Frame set 0
move 3
wait 1
playfram 0x11 # Frame set 1
move 5
wait 1
playfram 0x22 # Frame set 2
move 5
wait 1
playfram 0x33 # Frame set 3
move 4
wait 1
playfram 0x44 # Frame set 4
move 8
wait 1
playfram 0x55 # Frame set 5
move 6
wait 1
playfram 0x66 # Frame set 6
move 4
wait 1
playfram 0x77 # Frame set 7
goto Goliath_Base_Walking
Goliath_Base_StarEditInit:
imgol 235 0 0 # Goliath Turret (terran\goliathT.grp)
imgul 236 0 0 # Goliath Shadow (terran\tgoShad.grp)
playfram 0x77 # Frame set 7
goto Goliath_Base_Local00
# This header is used by images.dat entries:
# 234 Goliath Base (terran\goliath.grp)
.headerstart
IsId 75
Type 23
Init Goliath_Base_Init
Death Goliath_Base_Death
GndAttkInit Goliath_Base_GndAttkInit
AirAttkInit [NONE]
Unused1 [NONE]
GndAttkRpt Goliath_Base_GndAttkRpt
AirAttkRpt [NONE]
CastSpell [NONE]
GndAttkToIdle Goliath_Base_GndAttkInit
AirAttkToIdle [NONE]
Unused2 [NONE]
Walking Goliath_Base_Walking
WalkingToIdle Goliath_Base_GndAttkInit
SpecialState1 [NONE]
SpecialState2 [NONE]
AlmostBuilt [NONE]
Built [NONE]
Landing [NONE]
LiftOff [NONE]
IsWorking [NONE]
WorkingToIdle [NONE]
WarpIn [NONE]
Unused3 [NONE]
StarEditInit Goliath_Base_StarEditInit
.headerend
# ----------------------------------------------------------------------------- #
Goliath_Base_Init:
imgul 236 0 0 # Goliath Shadow (terran\tgoShad.grp)
Goliath_Base_GndAttkInit:
playfram 0x77 # Frame set 7
goto Goliath_Base_Local00
Goliath_Base_Local00:
wait 125
goto Goliath_Base_Local00
Goliath_Base_Death:
playsnd 8 # Misc\ExploMed.wav
imgol 332 0 0 # Explosion2 (Small) (thingy\tBangS.grp)
lowsprul 273 0 0 # Terran Building Rubble (Small) (thingy\RubbleS.grp)
wait 3
end
Goliath_Base_GndAttkRpt:
playfram 0x88 # Frame set 8
wait 1
playfram 0x99 # Frame set 9
wait 1
attackwith 1
attackmelee 1 894 # Zerg\Ultra\zulHit00.WAV
playfram 0x00 # Frame set 0
wait 1
playfram 0x88 # Frame set 8
wait 1
playfram 0x99 # Frame set 9
wait 1
gotorepeatattk
ignorerest
goto Goliath_Base_GndAttkInit
Goliath_Base_Walking:
move 6
wait 1
playfram 0x88 # Frame set 8
move 3
wait 1
playfram 0x99 # Frame set 9
move 3
wait 1
playfram 0x00 # Frame set 0
move 3
wait 1
playfram 0x11 # Frame set 1
move 5
wait 1
playfram 0x22 # Frame set 2
move 5
wait 1
playfram 0x33 # Frame set 3
move 4
wait 1
playfram 0x44 # Frame set 4
move 8
wait 1
playfram 0x55 # Frame set 5
move 6
wait 1
playfram 0x66 # Frame set 6
move 4
wait 1
playfram 0x77 # Frame set 7
goto Goliath_Base_Walking
Goliath_Base_StarEditInit:
imgol 235 0 0 # Goliath Turret (terran\goliathT.grp)
imgul 236 0 0 # Goliath Shadow (terran\tgoShad.grp)
playfram 0x77 # Frame set 7
goto Goliath_Base_Local00
So my question at hand. Is it possible to give the Goliath Base a weapon? Or is it impossible/hardcoded otherwise?
None.





. Got the goliath to do exactly what I'd like albeit with a few "bugs". It's melee weapon replaces the turret's "1" weapon in the select/command bar thing. Is there a way I can hide it in-game somehow? The goliath also attacks air units with the melee attack despite not have the air target flag checked or air attack codes in the Iscript. Here is the current code;