freeslot(
	"MT_GOGGALA",
	"S_GOGGALAROAM1",
	"S_GOGGALAROAM2",
	"S_GOGGALAROAM3",
	"S_GOGGALAROAM4",
	"SPR_GOGA"
)

mobjinfo[MT_GOGGALA] = {
	doomednum = 2900,
	spawnstate = S_GOGGALAROAM1,
	spawnhealth = 1,
	radius = 24*FRACUNIT,
	height = 32*FRACUNIT,
	reactiontime = 4*TICRATE,
	speed = 8,
	mass = 100,
	flags = MF_ENEMY|MF_SPECIAL|MF_SLIDEME|MF_FLOAT|MF_SHOOTABLE|MF_NOGRAVITY
}

states[S_GOGGALAROAM1] = {
	sprite = SPR_GOGA,
	frame = A,
	tics = 8,
	nextstate = S_GOGGALAROAM2,
}

states[S_GOGGALAROAM2] = {
	sprite = SPR_GOGA,
	frame = B,
	tics = 8,
	nextstate = S_GOGGALAROAM3,
}

states[S_GOGGALAROAM3] = {
	sprite = SPR_GOGA,
	frame = C,
	tics = 8,
	nextstate = S_GOGGALAROAM4,
}

states[S_GOGGALAROAM4] = {
	sprite = SPR_GOGA,
	frame = D,
	tics = 8,
	nextstate = S_GOGGALAROAM1,
}
local function A_GoggalaRoam(mo)
	if mo.roamtime == nil
		mo.roamtime = 0
	end
	
	mo.roamtime = $+1
	P_InstaThrust(mo, mo.angle, FixedMul(mo.info.speed*FRACUNIT/4, mo.scale))
	
	if mo.roamtime > mo.info.reactiontime
		mo.roamtime = 0
		mo.angle = mo.angle + ANGLE_180
	end
end

addHook("MobjThinker",	A_GoggalaRoam,	MT_GOGGALA)
