addHook("ThinkFrame", function()
	for player in players.iterate do
		if player.mo.skin == "drilla" then
			if P_PlayerInPain(player) then
				P_DamageMobj(player.mo, nil, nil, 0, DMG_INSTAKILL)
			end
		end
	end
end)

addHook("MobjDeath", function(d)
	if d.skin == "drilla" then
		local player = d.player
		if gametype == 0 then
			player.lives = $1 - 1
			if player.lives < 1 then
				S_ChangeMusic("_GOVER", false, player)
			end
		end
		d.momx, d.momy, d.momz = 0, 0, 0
		d.state = S_INVISIBLE
		S_StartSound(d, sfx_pop)
		local cexplode = P_SpawnMobj(d.x, d.y, d.z, MT_EXPLODE)
		cexplode.state = S_XPLD_EGGTRAP
		return true
	end
end, MT_PLAYER)

addHook("ThinkFrame", do
	for player in players.iterate
	    if not (player.mo and player.mo.skin == "drilla") then continue end    //You must become one with the Sonic!
		player.normalspeed = skins[player.mo.skin].normalspeed
 
		 if player.cmd.buttons & BT_CUSTOM1 and player.score > 0      //You holding C1 bro?
		    player.score = $1 - 1
			player.normalspeed = skins[player.mo.skin].normalspeed*3
		 else
		     player.normalspeed = skins[player.mo.skin].normalspeed
		end
    end
end)

addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo and player.mo.skin == "drilla"
		if not (player.playerstate == PST_DEAD)
		if player.cmd.buttons & BT_CUSTOM2
			player.powers[pw_nocontrol] = 1
			player.score = $1 + 1
		end
		end
		end
	end
end)

addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo and player.mo.skin == "drilla" and not player.weapondelay
		if not (player.playerstate == PST_DEAD)
		if player.cmd.buttons & BT_TOSSFLAG and not player.weapondelay and player.score > 999
			player.powers[pw_sneakers] = 800
			player.score = $1 - 1000
			player.weapondelay = 25*TICRATE
		end
		end
		end
	end
end)

local function CheckAndCrumble2(mo, sec)
  for fof in sec.ffloors()
    if not (fof.flags & FF_EXISTS) continue end -- Does it exist?
    if not (fof.flags & FF_BUSTUP) continue end -- Is it bustable?
    
    if mo.z + mo.momz + mo.height < fof.bottomheight continue end -- Are we too low?
    if mo.z + mo.momz > fof.topheight continue end -- Are we too high?

    -- Check for whatever else you may want to    

    EV_CrumbleChain(fof) -- Crumble
  end
end

addHook("PlayerThink", function(p)
  if not p.mo return end
  if p.mo.skin != "drilla" return end
  if PF_SPINNING == false return end
	CheckAndCrumble2(p.mo, p.mo.subsector.sector)
end)
