local unmissing_1 = {
	targetname = "fixgrenadeparticles", 
	effect_name = "asplode_hoodoo_dust", 
	start_active = "1",
	origin = "0, 0, -500000",
}
local unmissing_2 = {
	targetname = "fixgrenadeparticles", 
--	effect_name = "cinefx_goldrush_flash", 
	effect_name = "asplode_hoodoo_flash", 
	start_active = "1",
	origin = "0, 0, -500000",
}
local unmissing_3 = {
	targetname = "fixgrenadeparticles", 
	effect_name = "asplode_hoodoo_embers", 
	start_active = "1",
	origin = "0, 0, -500000",
}
ents.CreateWithKeys("info_particle_system", unmissing_1, true, true)
ents.CreateWithKeys("info_particle_system", unmissing_2, true, true)
ents.CreateWithKeys("info_particle_system", unmissing_3, true, true)
function grenadetick(_, activator)
	local origin = activator:GetAbsOrigin()
	activator:PlaySound("=70|player/cyoa_pda_beep3.wav")
	util.ParticleEffect("powercore_flash_red", origin, nil, activator)
end
function grenadeparticle(_, activator)
	if activator ~= nil then -- заткнись нахуй
		local origin = activator:GetAbsOrigin()
		util.ParticleEffect("asplode_hoodoo_embers", origin, nil, nil)
		util.ParticleEffect("asplode_hoodoo_flash", origin, nil, nil)
		util.ParticleEffect("asplode_hoodoo_dust", origin, nil, nil)
	end
end
local damagefunc = function(player, damageinfo)
	local inflictor = damageinfo.Inflictor
	local wep = damageinfo.Weapon
	if damageinfo.DamageCustom == TF_DMG_CUSTOM_CANNONBALL_PUSH and inflictor ~= nil and inflictor.isgrenade == 1 then
		damageinfo.DamageCustom = TF_DMG_CUSTOM_NONE
		damageinfo.DamageType = 2050
		damageinfo.Damage = 15
		damageinfo.DamageForce = Vector(0,0,0)
		damageinfo.Attacker:PlaySoundToSelf("Weapon_LooseCannon.BallImpact")
		player:PlaySound("Weapon_LooseCannon.BallImpact")
		if wep:GetAttributeValue("throwable healing") == 1 then
			if player.m_bIsMiniBoss == 0 then
				player:StunPlayer(8, 1, TF_STUNFLAG_BONKSTUCK | TF_STUNFLAG_LIMITMOVEMENT | TF_STUNFLAG_SLOWDOWN, damageinfo.Attacker)
			elseif player.m_bIsMiniBoss == 1 then
				player:StunPlayer(1, 1, TF_STUNFLAG_BONKSTUCK | TF_STUNFLAG_LIMITMOVEMENT | TF_STUNFLAG_SLOWDOWN, damageinfo.Attacker)
			end
		end
		return true
	end
end
local damagefunc_ent = function(ent, damageinfo)
	local inflictor = damageinfo.Inflictor
	local wep = damageinfo.Weapon
	if damageinfo.DamageCustom == TF_DMG_CUSTOM_CANNONBALL_PUSH and inflictor ~= nil and inflictor.isgrenade == 1 then
		damageinfo.DamageCustom = TF_DMG_CUSTOM_NONE
		damageinfo.DamageType = 2
		damageinfo.Damage = 15
		damageinfo.DamageForce = Vector(0,0,0)
		ent:PlaySound("Metal_Box.BulletImpact")
		return true
	end
end
function OnPlayerConnected(player)
	player:AddCallback(ON_DAMAGE_RECEIVED_PRE, damagefunc)
end
ents.AddCreateCallback("tank*", function(ent) ent:AddCallback(ON_DAMAGE_RECEIVED_PRE, damagefunc_ent) end)
ents.AddCreateCallback("obj*", function(ent) ent:AddCallback(ON_DAMAGE_RECEIVED_PRE, damagefunc_ent) end)