pRadius = GetFloatParam("radius", 2.8)
function init()
	trigger = FindTrigger("deliverytrigger")
	arrowLocation = FindLocation("arrow")
	pos = GetLocationTransform(FindLocation("arrow")).pos

	body = FindBody("target")
	arrow = LoadSprite("gfx/arrowdown.png")
	sprite = LoadSprite("gfx/ring.png")
	arrowColorMultiplyer = 1

	firstTestHit = false

	messages = {}
	messages[1] = "loc@MESSAGES[1]_BULLSEYE_"
	messages[2] = "loc@MESSAGES[2]_SPOT_ON"
	messages[3] = "loc@MESSAGES[3]_NAILED_IT"
end

function tick(dt)
	if GetBool("level.deliveryComplete") then
		Delete(body)
		return
	end
	if GetBool("level.delivering") then
		if HasTag(trigger, "cleared") then
			SetTag(body, "target", "cleared")
			SetTag(body, "cleared")
		else
			drawArrow(arrowLocation)
			local t = Transform(pos, QuatEuler(90, 0, 0))
			DrawSprite(sprite, t, pRadius*2, pRadius*2, 1*arrowColorMultiplyer, 1, 1*arrowColorMultiplyer, 1, true, false)
		end
	else
		drawArrow(arrowLocation)
		local t = Transform(pos, QuatEuler(90, 0, 0))
		DrawSprite(sprite, t, pRadius*2, pRadius*2, 1*arrowColorMultiplyer, 1, 1*arrowColorMultiplyer, 1, true, false)
	end

	if HasTag(trigger,"testcleared") then
		if not firstTestHit then
			firstTestHit = true
			SetString("hud.notification", GetTranslatedStringByKey(messages[math.random(1,#messages)]))
		end
		RemoveTag(trigger,"testcleared")
		arrowColorMultiplyer = 0
		SetValue("arrowColorMultiplyer",1,"linear",.5)
	end
end


function drawArrow(location)
	if GetBool("game.map.enabled") then
		return
	end
	local arrowPos = GetLocationTransform(location).pos
	local c = GetCameraTransform().pos
	c[2] = arrowPos[2]
	local p = VecCopy(arrowPos)
	p[2] = p[2] + math.sin(GetTime()*5)*0.3+0.3 + 2
	local t = Transform(p, QuatLookAt(arrowPos, c))
	DrawSprite(arrow, t, 2, 2, .3*arrowColorMultiplyer, .3, .3*arrowColorMultiplyer, 3, false, true)
	DrawSprite(arrow, t, 2, 2, 1*arrowColorMultiplyer, 1, 1*arrowColorMultiplyer, 1, true, true)
end
