
freeslot("SPR_BDFX")

addHook("PlayerSpawn", function(player)
local zzalve = 0
player.zzalve = 1 //sleep value
local funni = 0
player.funni = 20
end)


addHook("PlayerThink", function(player) //an idle
if player.mo
player.zzalve = $ or 1
if (player.mo.skin == "redbird")
or (player.mo.skin == "blues")// is a bird
or (player.mo.skin == "hal")
or (player.mo.skin == "bombbird")
or (player.mo.skin == "matilda")
and not player.powers[pw_super]
if (player.mo.state == S_PLAY_WAIT)// zzzzzzz... sleep animation...
if leveltime%10 == 0 and player.zzalve == 1
local slep = P_SpawnMobjFromMobj(player.mo, 0, 0, 20*FRACUNIT, MT_THOK)
slep.sprite = SPR_BDFX
slep.frame = A|FF_SEMIBRIGHT
slep.target = player.mo
slep.tics = 125
P_SetObjectMomZ(slep, 2*FRACUNIT, true)
player.zzalve = 0
elseif player.zzalve > 1
player.zzalve = $ - 1
elseif not (G_TicsToSeconds(leveltime)%2)
player.zzalve = P_RandomRange(50, 75)
end
else
end
end
end
end)

freeslot("sfx_rdbns", "sfx_ckbns", "sfx_bubns",
 "sfx_bmbns", "sfx_mdbns", "sfx_hlbns")
sfxinfo[sfx_rdbns].caption = "Chirp!"
sfxinfo[sfx_ckbns].caption = "Chirp!"
sfxinfo[sfx_bubns].caption = "Chirp!"
sfxinfo[sfx_bmbns].caption = "Chirp!"
sfxinfo[sfx_mdbns].caption = "Squawk!"
sfxinfo[sfx_hlbns].caption = "Squawk!"


addHook("PlayerThink", function(player)//make sounds
if player.mo
player.funni = $ or 20
if player.funni > 1
player.funni = $ - 1
end
if (player.cmd.buttons & BT_CUSTOM3) and (player.funni <= 1)
if (player.mo.skin == "redbird")
S_StartSound(player.mo, sfx_rdbns, nil)
elseif (player.mo.skin == "chuck")
S_StartSound(player.mo, sfx_ckbns, nil)
elseif (player.mo.skin == "blues")
S_StartSound(player.mo, sfx_bubns, nil)
elseif (player.mo.skin == "bombbird")
S_StartSound(player.mo, sfx_bmbns, nil)
elseif (player.mo.skin == "matilda")
S_StartSound(player.mo, sfx_mdbns, nil)
elseif (player.mo.skin == "hal")
S_StartSound(player.mo, sfx_hlbns, nil)
end
player.funni = 20
end
end
end)

addHook("AbilitySpecial", function(player)//feather puffs
if player.mo
if (player.mo.skin == "redbird")
//or (player.mo.skin == "chuck")
//or (player.mo.skin == "blues") blues lacks a normal ability
or (player.mo.skin == "hal")
or (player.mo.skin == "matilda")
//or (player.mo.skin == "bombbird") same with bomb
if not (player.pflags & PF_THOKKED)
for i = 0, 15 do
local minefs = P_SpawnMobjFromMobj(player.mo, 0, 0, 0, MT_THOK)
minefs.sprite = SPR_FETR
minefs.tics = P_RandomRange(20,70)
minefs.color = player.mo.color
minefs.frame = P_RandomRange(A,F)
minefs.target = player.mo
minefs.rollangle = P_RandomRange(0, 360)*ANG1
minefs.momx = P_RandomRange(-2, 2)*FRACUNIT
minefs.momy = P_RandomRange(-2, 2)*FRACUNIT
minefs.momz = P_RandomRange(-2, 2)*FRACUNIT
end
end
end
end
end)

addHook("MobjDamage", function(mobj) //feather puffs 2, weeeeee
if (mobj.player.mo.skin == "redbird")
or (mobj.player.mo.skin == "chuck")
or (mobj.player.mo.skin == "blues")
or (mobj.player.mo.skin == "hal")
or (mobj.player.mo.skin == "bombbird")
or (mobj.player.mo.skin == "matilda")
if not (mobj.player.pflags & PF_THOKKED) and mobj.player.mo.state != S_PLAY_PAIN
for i = 0, 15 do
local minefs = P_SpawnMobjFromMobj(mobj.player.mo, 0, 0, 0, MT_THOK)
minefs.sprite = SPR_FETR
minefs.tics = P_RandomRange(20,70)
minefs.color = mobj.player.mo.color
minefs.frame = P_RandomRange(A,F)
minefs.target = mobj.player.mo
minefs.rollangle = P_RandomRange(0, 360)*ANG1
minefs.momx = P_RandomRange(-2, 2)*FRACUNIT
minefs.momy = P_RandomRange(-2, 2)*FRACUNIT
minefs.momz = P_RandomRange(-2, 2)*FRACUNIT
end
end
end
end, MT_PLAYER)

addHook("MobjThinker", function(mobj)// feather
if mobj.target == nil or mobj.target.player.mo == nil
return end
if mobj and mobj.sprite == SPR_FETR
mobj.rollangle = $ + 5*ANG1
mobj.scale = $ - (FRACUNIT/80)
end
end, MT_THOK)

/* was too annoying
addHook("MobjThinker", function(mobj)//BONUCY! not for chuck.
if mobj.valid
if (mobj.player.mo.skin == "redbird")
or (mobj.player.mo.skin == "blues")
or (mobj.player.mo.skin == "hal")
or (mobj.player.mo.skin == "bombbird")
or (mobj.player.mo.skin == "matilda")
mobj.flags = $|MF_BOUNCE
elseif mobj.flags & MF_BOUNCE
mobj.flags = $ & ~MF_BOUNCE
end
end
end, MT_PLAYER)
*/

addHook("PlayerThink", function(player) //letting them break stuff, by momentum
if player.mo
if (player.mo.skin == "redbird")
or (player.mo.skin == "chuck")
or (player.mo.skin == "hal")
or (player.mo.skin == "blues")// is a bird
or (player.mo.skin == "bombbird")
or (player.mo.skin == "matilda")
if player.powers[pw_super]// is super? JUST DON'T DROWN! yay
player.powers[pw_underwater] = 35*TICRATE
player.powers[pw_spacetime] = 25*TICRATE
end
if player.speed > 25*FRACUNIT //fast? break wall
player.powers[pw_strong] = $|STR_WALL
elseif player.powers[pw_strong] & STR_WALL
player.powers[pw_strong] = $ - STR_WALL
end
if player.mo.momz < -25*FRACUNIT or player.mo.momz > 25*FRACUNIT //falling/rising like a rocket? break the floor/ceiling
player.powers[pw_strong] = $|STR_CEILING|STR_FLOOR
elseif player.powers[pw_strong] & STR_CEILING or player.powers[pw_strong] & STR_FLOOR
player.powers[pw_strong] = $ - STR_CEILING
player.powers[pw_strong] = $ - STR_FLOOR
end
end
end
end)


