#========================================================#
#Start of Freeslots. (Note that most are added in Lua)
#========================================================#

FREESLOT
SPR_G1HN#GUNhunter
SPR_G1SH#GUNhunter-shield
SPR_G1GR#GUNhunter-grenade
SPR_G1BT#GUNbeetle-monoeye
SPR_G2BT#GUNbeetle-turret
SPR_G3BT#GUNbeetle-bomber
SPR_G4BT#GUNbeetle-spring
SPR_G1FX#GUN-effects
SPR_G1DB#GUN-mech-debris
SPR_GPLZ#SA2-Explosion
SKINCOLOR_GUNHUNTER

#========================================================#
#Start of Skin Colors
#========================================================#

#The GUN hunter's default color.

#SKINCOLOR SKINCOLOR_GUNHUNTER
#NAME = GUNHUNTER
#RAMP = 3,5,170,171,172,173,174,175,175,199,199,253,254,254,31,31
#INVCOLOR = SKINCOLOR_GOLDENROD
#INVSHADE = 6
#CHATCOLOR = V_BLUEMAP
#ACCESSIBLE = TRUE

#Newer version of GUN Hunter color.
SKINCOLOR SKINCOLOR_GUNHUNTER
NAME = GUNHUNTER
RAMP = 134,135,136,137,137,138,138,139,139,139,199,28,29,31,31,31
INVCOLOR = SKINCOLOR_GOLDENROD
INVSHADE = 6
CHATCOLOR = V_BLUEMAP
ACCESSIBLE = TRUE


#========================================================#
#Start of Custom Things and States.
#Lua does most of the heavy lifting, but having various states is still nice.
#========================================================#

#The GUN hunter! These are the main mech troopers from Sonic Adventure 2's GUN army!
#Mappers can customize these mechs, then Lua will adjust the GUN Hunter accordingly.  
#
#The GUN hunter can spawn with a shield, sniper rifle, bomber, extra health, floating gear, or elite battle properties!
#They can also spawn inactive, already prepped in standing frames, or ambush from the sky, or emit a menacing eyeglow, 
#use different colors, chase different targets from players, or--- 
#...
#...look, just see the options yourself in Ultimate Zone Builder.
#================================================================================

Thing MT_GUNHUNTER
MAPTHINGNUM = 2777
SPAWNSTATE = S_GUNH_INACTIVE
SPAWNHEALTH = 1
RADIUS = 38*FRACUNIT
HEIGHT = 118*FRACUNIT
DEATHSTATE = S_GUNH_LAND
PAINSOUND = SFX_S3K7B
DEATHSOUND = SFX_YUEDTH
REACTIONTIME = 8
SPEED = 0
FLAGS = MF_ENEMY|MF_SHOOTABLE|MF_SPECIAL

FRAME S_GUNH_STAND
SPRITENAME = SPR_G1HN
SPRITEFRAME = A
DURATION = -1
NEXT = S_GUNH_BATTLE

FRAME S_GUNH_FALL
SPRITENAME = SPR_G1HN
SPRITEFRAME = F
DURATION = -1
NEXT = S_GUNH_LAND

FRAME S_GUNH_LAND
SPRITENAME = SPR_G1HN
SPRITEFRAME = E
DURATION = 30
NEXT = S_GUNH_STAND

FRAME S_GUNH_INACTIVE
SPRITENAME = SPR_G1HN
SPRITEFRAME = B
DURATION = -1
NEXT = S_GUNH_STAND

FRAME S_GUNH_FLOAT
SPRITENAME = SPR_G1HN
SPRITEFRAME = M
DURATION = -1
NEXT = S_GUNH_STAND

FRAME S_GUNH_BATTLE
SPRITENAME = SPR_G1HN
SPRITEFRAME = M
DURATION = -1
NEXT = S_GUNH_STAND


#GUN Hunter Shield. An optional addon that protects the GUN Hunters. 
#The player can hit it three times to get rid of it, or simply roll under or dodge past.

Thing MT_GUNHUNTER_SHIELD
SPAWNHEALTH = 3
SPAWNSTATE = S_GUNH_SHIELD
RADIUS = 30*FRACUNIT
HEIGHT = 100*FRACUNIT
DEATHSTATE = S_GUNH_SHIELD
PAINSOUND = SFX_S3K7B
DEATHSOUND = SFX_WBREAK
REACTIONTIME = 35
SPEED = 0
FLAGS = MF_NOGRAVITY|MF_SHOOTABLE|MF_SPECIAL

FRAME S_GUNH_SHIELD
SPRITENAME = SPR_G1SH
SPRITEFRAME = A
DURATION = -1
NEXT = S_NULL

#Default GUN Hunter laser projectile. Speeds up a bit before truly gaining full speed.

Thing MT_GUNHUNTER_LASER
SPAWNSTATE = S_GUNH_LASER
DEATHSTATE = S_GUNH_LASEREXPLODE
ACTIVESOUND = SFX_GHSFX5
SEESOUND = SFX_GHSFX5
DEATHSOUND = SFX_GHSFX8
RADIUS = 18*FRACUNIT
HEIGHT = 10*FRACUNIT
SPEED = 18*FRACUNIT
FLAGS = MF_NOGRAVITY|MF_MISSILE

FRAME S_GUNH_LASER
SPRITENAME = SPR_G1FX
SPRITEFRAME = I|FF_TRANS10
DURATION = 250
NEXT = S_GUNH_LASEREXPLODE

FRAME S_GUNH_LASEREXPLODE
SPRITENAME = SPR_G1FX
SPRITEFRAME = B|FF_TRANS30
DURATION = 18
NEXT = S_NULL

#Grenade Lob projectile. Cursor appears over player, then it gets lobbed at them. It explodes on a timer or on touch.

Thing MT_GUNHUNTER_GRENADE
SPAWNSTATE = S_GUNH_GRENADE
DEATHSTATE = S_GUNH_LASEREXPLODE
DEATHSOUND = SFX_GHSFXC 
SPEED = 10*FRACUNIT
RADIUS = 24*FRACUNIT
HEIGHT = 24*FRACUNIT
FLAGS = MF_MISSILE|MF_GRENADEBOUNCE|MF_BOUNCE

FRAME S_GUNH_GRENADE
SPRITENAME = SPR_G1GR
SPRITEFRAME = A
DURATION = 100
NEXT = S_GUNH_LASEREXPLODE

#Sniper Blast projectile. Instantly appears at target, creates trail aftereffects, and then actually hits a few frames later.

Thing MT_GUNHUNTER_SNIPERSHOT
SPAWNSTATE = S_GUNAUTOFRAME
DEATHSTATE = S_GUNH_LASEREXPLODE
RADIUS = 11*FRACUNIT
HEIGHT = 8*FRACUNIT
DEATHSTATE = S_GUNAUTOFRAME
ACTIVESOUND = SFX_GHSFX5
SEESOUND = SFX_GHSFX5
DEATHSOUND = SFX_GHSFX2
SPEED = 0
FLAGS = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY|MF_NOCLIPHEIGHT

#================================================================================
#The GUN Beetle, the army's iconic flying drone, sometimes equipped with weaponry.
#================================================================================

Thing MT_GUNBEETLE
MAPTHINGNUM = 2778
SPAWNSTATE = S_GUNB_MONOEYE
SEESTATE = S_GUNB_SPRING
SPAWNHEALTH = 1
HEIGHT = 76*FRACUNIT
RADIUS = 52*FRACUNIT
RAISESTATE = S_GUNB_SPRING
PAINSOUND = SFX_SPRING
DEATHSTATE = S_SONIC3KBOSSEXPLOSION6
DEATHSOUND = SFX_YUEDTH
REACTIONTIME = 8
MASS = 33*FRACUNIT
SPEED = 0
FLAGS = MF_ENEMY|MF_SHOOTABLE|MF_SPECIAL|MF_NOGRAVITY

FRAME S_GUNB_AMBUSH
SPRITENAME = SPR_NULL
SPRITEFRAME = A
DURATION = -1
NEXT = S_GUNB_MONOEYE

FRAME S_GUNB_MONOEYE
SPRITENAME = SPR_G1BT
SPRITEFRAME = A
DURATION = -1
NEXT = S_GUNB_MONOEYE

FRAME S_GUNB_TURRET
SPRITENAME = SPR_G2BT
SPRITEFRAME = A
DURATION = -1
NEXT = S_GUNB_TURRET

FRAME S_GUNB_BOMBER
SPRITENAME = SPR_G3BT
SPRITEFRAME = A
DURATION = 30
NEXT = S_GUNB_BOMBER

FRAME S_GUNB_SPRING
SPRITENAME = SPR_G4BT
SPRITEFRAME = A
DURATION = -1
NEXT = S_GUNB_SPRING

#================================================================================
#The Fighter Jet plane from SA2.
#================================================================================

Thing MT_GUNBLUEEAGLE
MAPTHINGNUM = 2779
SPAWNSTATE = S_GUNB_AMBUSH
SPAWNHEALTH = 1
RADIUS = 160*FRACUNIT
HEIGHT = 80*FRACUNIT
DEATHSTATE = S_NULL
DEATHSOUND = SFX_YUEDTH
REACTIONTIME = 8
SPEED = 0
FLAGS = MF_ENEMY|MF_SHOOTABLE|MF_SPECIAL|MF_NOGRAVITY|MF_SLIDEME

#================================================================================
#A flight path that allows more customizability on Beetles and Blue Eagle jets.

Thing MT_GUNFLIGHTPATH
SPAWNSTATE = S_GUNB_AMBUSH
RADIUS = 30*FRACUNIT
HEIGHT = 30*FRACUNIT
DEATHSTATE = S_NULL
FLAGS = MF_NOBLOCKMAP|MF_SCENERY|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_NOSECTOR


#Easy frame advancer so I don't have to make new objects and states for every single basic effect.

Thing MT_GUNAUTOFRAME
MAPTHINGNUM = -1
SPAWNSTATE = S_GUNAUTOFRAME
SPEED = 0
RADIUS = 0
HEIGHT = 0
DISPOFFSET = 1
FLAGS = MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_SCENERY

FRAME S_GUNAUTOFRAME
SPRITENAME = SPR_G1FX
SPRITEFRAME = A
DURATION = 140
NEXT = S_NULL

#An overlay object that copies the target's frames.

Thing MT_GUNOVERLAY
MAPTHINGNUM = -1
SPAWNSTATE = S_GUNAUTOFRAME
DispOffset = 3
FLAGS = MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY

