local temp1 = 0
local bomb1
local bomb2
local bomb3
local bomb4
local bomb5
local bomb6
local bomb7
local bomb8
local bomb9
local bomb10

local vzriv = 0
local zadershka = 0
local det_id = 0
local det_id2 = 0
local temp_wait=0

function messg(news_text, header)
	local player=xr_sound.get_safe_sound_object([[device\pda\pda_news]])
	player:play(db.actor, 0, sound_object.s2d)
	local news_text = "%c[255,160,160,160]"..header.."\\n".."%c[default]"..news_text
	db.actor:give_game_news(news_text, "ui\\ui_VDGicon", Frect():set(0,47,83,47), 0, 5000)
end

function is_deton()
	local det1=0
	local det2=0
	for i=0, db.actor:object_count()-1 do
		local obj = db.actor:object(i)
		if obj:section() == "detonator" then
			det1=1
		end
		if obj:section() == "detonator_2" then
			det2=10
		end
	end
	return det1+det2
end

function li(ob)
	if ob:section()=="bomba" or ob:section()=="bomba_big" or ob:section()=="bomba_small" then
		local box = ob:parent()
		if ob:section()=="bomba" or ob:section()=="bomba_big" then
			--if box~=nil then return end
		end
		local temp2=is_deton()
		temp1=0
		if bomb1==nil and temp1==0 then bomb1=ob temp1=1 end
		if bomb2==nil and temp1==0 then bomb2=ob temp1=1 end
		if bomb3==nil and temp1==0 then bomb3=ob temp1=1 end
		if bomb4==nil and temp1==0 then bomb4=ob temp1=1 end
		if bomb5==nil and temp1==0 then bomb5=ob temp1=1 end
		if bomb6==nil and temp1==0 then bomb6=ob temp1=1 end
		if bomb7==nil and temp1==0 then bomb7=ob temp1=1 end
		if bomb8==nil and temp1==0 then bomb8=ob temp1=1 end
		if bomb9==nil and temp1==0 then bomb9=ob temp1=1 end
		if bomb10==nil and temp1==0 then bomb10=ob temp1=1 end
		if temp2==1 or temp2==11 then
			if temp1==0 then messg("Детонатор не может взорвать больше, чем десять рюкзаков одновременно.","Детонатор NK-32beta RUS") end
		end
		if temp2==10 or temp2==11 then
			if temp1==0 then messg("Детонатор не сможет взорвать больше десяти рюкзаков одновременно.","Детонатор NK-37 RUS") end
		end
	end
	if ob:section()=="detonator" then
		det_id=ob:id()
	end
	if ob:section()=="detonator_2" then
		det_id2=ob:id()
		vzriv=1
		zadershka=0
	end
end

function explode_r(ob,apos,lovim)
	local bpos=ob:position()
	local dist=bpos:distance_to(apos)
	if dist<lovim then
		local h = hit()
		h.power = 1000
		h.impulse = 0
		h.draftsman = ob
		h.direction = vector():set(0,0,0)
		--h:ob("bip01_spine")
		h.type = hit.fire_wound
		ob:hit(h)
	end
end

function update(delta)
	if det_id>0 then
		if alife():object(det_id)==nil then
			det_id=-1;
			if math.random(100)>75 then
				vzriv=1
				zadershka=math.random(2000)+1000
				alife():create("detonator",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
			else
				messg("Упдефiпед еггог!","Детонатор NK-32beta RUS")
			end
		else
			det_id=-1;
		end
	end
	if det_id2>0 then
		if alife():object(det_id2)==nil then
			det_id2=-1;
			vzriv=1
			zadershka=0
			alife():create("detonator_2",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
		else
			det_id2=-1;
		end
	end
	if zadershka>0 then
		if temp_wait==0 then messg("Pleaсe шaиt...","Детонатор NK-32beta RUS") temp_wait=1 end
		zadershka=zadershka-delta
	elseif vzriv==1 then
		temp_wait=0
		local apos=db.actor:position()
		local temp2=is_deton()
		local temp_report=0
		local lovim=100
		if temp2==1 or temp2==11 then lovim=100 end
		if temp2==10 or temp2==11 then lovim=300 end
		if bomb1~=nil then explode_r(bomb1,apos,lovim) bomb1=nil temp_report=temp_report+1 end
		if bomb2~=nil then explode_r(bomb2,apos,lovim) bomb2=nil temp_report=temp_report+1 end
		if bomb3~=nil then explode_r(bomb3,apos,lovim) bomb3=nil temp_report=temp_report+1 end
		if bomb4~=nil then explode_r(bomb4,apos,lovim) bomb4=nil temp_report=temp_report+1 end
		if bomb5~=nil then explode_r(bomb5,apos,lovim) bomb5=nil temp_report=temp_report+1 end
		if bomb6~=nil then explode_r(bomb6,apos,lovim) bomb6=nil temp_report=temp_report+1 end
		if bomb7~=nil then explode_r(bomb7,apos,lovim) bomb7=nil temp_report=temp_report+1 end
		if bomb8~=nil then explode_r(bomb8,apos,lovim) bomb8=nil temp_report=temp_report+1 end
		if bomb9~=nil then explode_r(bomb9,apos,lovim) bomb9=nil temp_report=temp_report+1 end
		if bomb10~=nil then explode_r(bomb10,apos,lovim) bomb10=nil end
		vzriv=0
		if temp2==1 or temp2==11 then
			messg("Рюкзак(и) взорван(ы)!","Детонатор NK-32beta RUS")
		end
		if temp2==10 or temp2==11 then
			if temp_report==0 then messg("Рюкзаки не найдены!","Детонатор NK-32beta RUS") end
			if temp_report==1 then messg("1 рюкзак взорван!","Детонатор NK-32beta RUS") end
			if temp_report>1 and temp_report<5 then messg(temp_report.." рюкзака взорваны!","Детонатор NK-32beta RUS") end
			if temp_report>4 then messg(temp_report.." рюкзаков взорвано!","Детонатор NK-32beta RUS") end
		end
	end
end
