if srb2p return end

freeslot("sfx_hvycn")

addHook("PlayerThink", function(player) // Heavy Cannon variable setup
	if player.mo.skin == "doomguy"
		if player.HeavyFired == nil
		player.HeavyFired = 0
			end
		if player.HeavyFiring == nil
		player.HeavyFiring = 0
		end
	end
end)

addHook("PlayerThink", function(player) // targeting system
	if player.mo.skin == "doomguy"
	and player.target
	and player.target.valid
	and not (player.exiting)
	and player.HeavyFired == 0
		P_SpawnLockOn(player, player.target, S_MHICON)
	end
end)

addHook("PlayerThink", function(player) // Heavy Cannon cooldown timer
	if player.mo.skin == "doomguy"
	and player.HeavyFiring >= 1 then
	player.HeavyFiring = $1 - 1
	end
end)

addHook("PlayerThink", function(player) // Heavy Cannon animation timer
	if player.mo.skin == "doomguy"
	and player.HeavyFired >= 1 then
	player.HeavyFired = $1 - 1
	end
end)

addHook("PlayerThink", function(player) // Heavy Cannon animations
	if player.mo.skin == "doomguy"
	and player.PrimaryWeaponName == "Heavy Cannon"
	and player.HeavyFiring <= 0
	if player.cmd.sidemove == 0
	and player.cmd.forwardmove == 0
	player.mo.state = S_PLAY_HSTAND
	elseif not (player.mo.state == S_PLAY_HWALK)
	player.mo.state = S_PLAY_HWALK
		end
	end
end)

addHook("PlayerThink", function(player) // Heavy Cannon fire
	if player.mo.skin == "doomguy"
	and player.PrimaryWeaponName == "Heavy Cannon"
		and (player.cmd.buttons & BT_CUSTOM1)
		and not (player.pflags & PF_FULLSTASIS)
		and not (player.pflags & PF_STASIS)
		and not (player.mo.state == S_PLAY_PAIN)
		and not (player.mo.state == S_PLAY_DEAD)
		and player.HeavyFiring <= 0
			player.mo.state = S_PLAY_HFRE
			player.HeavyFiring = 10
			S_StartSoundAtVolume(player.mo, sfx_hvycn,75)
			P_SpawnThokMobj(player)
				if player.target
				P_SpawnMissile(player.mo, player.target, MT_BULLETPUFF)
				else
				P_SPMAngle(player.mo, MT_BULLETPUFF, player.SlayerDirection, 1)
		end
	end
end)

sfxinfo[sfx_hvycn].caption = "Gunshot"
