
freeslot("sfx_hlrt", "sfx_hlbr", "S_HAL_SPIN", "MT_HALFX", "S_HAL_RESPIN")

sfxinfo[sfx_hlrt].caption = "WOOOACK!"
sfxinfo[sfx_hlbr].caption = "Swinging back"

addHook("PlayerSpawn", function(player)// code for that boomerang beak bird
local lastdir = 0
player.lastdir = 0
end)

addHook("PlayerThink", function(player) //oh for heck sake
if player.lastdir == nil
player.lastdir = player.drawangle+ANGLE_180
end
end)

addHook("PlayerThink", function(player) //hal cannen
if player.mo and (player.mo.skin == "hal")// is the funny toocan
if (player.mo.state == S_PLAY_TWINSPIN or player.mo.state == S_HAL_SPIN)// resume the momentum of the ability
local hal = P_SpawnMobjFromMobj(player.mo, 0, 0, 0, MT_HALFX)
hal.color = player.mo.color
hal.frame = P_RandomRange(A,D) + FF_FULLBRIGHT|FF_PAPERSPRITE
hal.target = player.mo
hal.scale = 2*FRACUNIT
hal.angle = player.drawangle+ANGLE_180
hal.tics = P_RandomRange(1, 5)
if (player.mo.state == S_HAL_SPIN) 
P_Thrust(player.mo, player.lastdir, 2*FRACUNIT)
if (player.mo.frame == H) or (player.mo.frame == B)
S_StartSound(player.mo, sfx_hlbr, player)
end
end
end
end
end)

addHook("SpinSpecial", function(player)//boomerang back, or go foward
if player.mo and (player.mo.skin == "hal") and player.powers[pw_nocontrol] == 0
and not (player.pflags & PF_JUMPSTASIS or player.pflags & PF_STASIS or player.pflags & PF_FULLSTASIS) 
if not P_IsObjectOnGround(player.mo)
if (player.mo.state == S_PLAY_TWINSPIN or player.mo.state == S_PLAY_ROLL 
or player.mo.state == S_PLAY_SPRING)
and player.mo.state != S_HAL_SPIN
S_StartSound(player.mo, sfx_hlrt, player)
player.mo.state = S_HAL_SPIN
player.lastdir = player.drawangle+ANGLE_180
P_Thrust(player.mo, player.drawangle+ANGLE_180, 25*FRACUNIT)
elseif not P_IsObjectOnGround(player.mo)
and (player.mo.state != S_HAL_SPIN
and player.mo.state != S_HAL_RESPIN)
if (player.mo.state == S_PLAY_FALL)
player.lastdir = player.mo.angle
P_Thrust(player.mo, player.drawangle, 25*FRACUNIT)
player.mo.state = S_HAL_RESPIN
end
else
if (player.pflags & PF_SPINNING)
player.pflags = $|PF_SPINNING
end
end
end
end
end)

addHook("AbilitySpecial", function(player) //don't
if player.mo
and (player.mo.skin == "hal")
if player.mo.state == S_HAL_SPIN
player.mo.state = S_PLAY_FALL
if (player.pflags & PF_SPINNING)
player.pflags = $ - PF_SPINNING
end
end
end
end)




