quest arne_test begin
	state start begin
		when login begin
					NpcName=mob_name(20095) --SeonHae
--					notice("Script läuft.")
--					notice("Npc heisst: "..NpcName..". Right on!")
--					notice(string.format("Geschlecht ist: %s", pc.get_sex()))
--					mob.spawn(20095, 356, 483, 1, 1, 1)
					pc.give_item2(10)
--					set_state(talk_seon)
		end
	end
	
	state talk_seon begin     

function challenge_main_menu_proto(SelectionList)
	local selected = 0
	local s = select_table (SelectionList)
--	local s = select ("1", "2", "3", "4", "5")
-- always 5 deep
--	say_title("ChallengeX")
	if s == 1 then
			selected = 1
		else
			if s == 2 then
				selected = 2
			else
				if s == 3 then
					selected = 3
				else
					if s == 4 then
						selected = 4
					else
						selected = 5
					end
				end
			end
		end
	return selected
end

function challenge_calculate_rewards(TargetChallenge, AmountChallenge, TimeChallenge)
	local NewChallenge
	local NewRewards = {1,2,3}
	local	BetRewardTable= {
				[1] = {[1] = 50, [2] = 100,},
				[2] = {[1] = 250, [2] = 500,},
				[3] = {[1] = 300, [2] = 1200,},
				[4] = {[1] = 400, [2] = 5000,},
				}
	
	NewChallenge = (TargetChallenge + (2*AmountChallenge))*TimeChallenge
	notice("Challenge computed")
		if NewChallenge >= 30 then
			BetMoney = BetRewardTable[4][1]
			Reward = BetRewardTable[4][2]
			 NewRewards = {NewChallenge, BetMoney, Reward}
		else
			if NewChallenge >= 15 then
				BetMoney = BetRewardTable[3][1]
				Reward = BetRewardTable[3][2]
				 NewRewards = {NewChallenge, BetMoney, Reward}
			else
				if NewChallenge >= 8 then
					BetMoney = BetRewardTable[2][1]
					Reward = BetRewardTable[2][2]
					 NewRewards = {NewChallenge, BetMoney, Reward}
				else
						BetMoney = BetRewardTable[1][1]
						Reward = BetRewardTable[1][2]
						 NewRewards = {NewChallenge, BetMoney, Reward}
				end
			end
		end 
	return NewRewards
end

			when login or enter begin
				HuntAmount=5
				GatherAmount=5
				pc.setqf("kill_count_1", 0)
				pc.setqf("collect_count", 0)
--				local find_npc_vnum = 20095
--				local v=find_npc_by_vnum(find_npc_vnum) -- alter Mann
--				if 0==v then
--					notice("Id 0")
--					else
--						notice("NPC da")
--						target.vid("__TARGET__", v, "Seon-Hae")
--						send_letter("Sprecht mit Seon-Hae")
--				end
			end
			
			when button or info begin
				say_title("Sprecht mit Seon-Hae")
				say("Ihr habt einen alten Mann an der Brücke gesehen, der völlig aufgelöst ist und wahrscheinlich Hilfe braucht.")
			end
		

			  when 20095.Chat."Teleport Command" begin
			  	pc.setqf("pcx", pc.get_x())
					pc.setqf("pcy", pc.get_y())
			  	set_state(teleport)
			  end   
			  
		  when 20095.Chat."ChallengeX" begin 
		
		  local MainMenuList = 
		  		{
		  		"Ziel Wählen",
		  		"Menge Wählen",
		  		"Zeit Wählen",
		  		"Quest Starten",
		  		"Abbruch",
		  		}
		  local TargetMenuList =
		  	{
		  		"Wildhunde",
		  		"Wölfe",
		  		"Tiger",
		  	}
		  local AmountMenuList =
		  	{
		  		"10",
		  		"30",
		  		"50",
		  	}
		  local TimeMenuList =
		  	{
		  		"60 min",
		  		"30 min",
		  		"10 min",
		  	}
		  TargetList =
		  	{
		  		101,
		  		102,
		  		114,
		  	}
		  AmountList =
		  	{
		  		10,
		  		30,
		  		50,
		  	}
		  TimeList =
		  	{
		  		3600,
		  		1800,
		  		600,
		  	}
		  
		  local Selected = 0
		 
		  
		  if BeenHere != 1 then
		 		ChallengeIndex = 0
				BetMoney = 0
				Reward = 0
				TargetChallenge = 0
				AmountChallenge = 0
				TimeChallenge = 0
				TargetSelector = 0
				AmountSelector = 0
				TimeSelector = 0
				BeenHere = 1				
			end
		repeat
			Selected = arne_test.challenge_main_menu_proto(MainMenuList)
			if Selected == 1 then
				TargetSelector = arne_test.challenge_main_menu_proto(TargetMenuList)
				TargetChallenge = TargetSelector
			end
			if Selected == 2 then
				AmountSelector = arne_test.challenge_main_menu_proto(AmountMenuList)
				AmountChallenge = AmountSelector
			end
			if Selected == 3 then
				TimeSelector = arne_test.challenge_main_menu_proto(TimeMenuList)
				TimeChallenge = TimeSelector
			end
			if Selected == 4 then
				local NewRewardsTable = {}
				NewRewardsTable = arne_test.challenge_calculate_rewards(TargetChallenge, AmountChallenge, TimeChallenge)
				say_title("Quest starten")                                                                              
				say("Quest mit folgenden Parametern starten?")                                                          
				say(string.format("Jage %s x %s in %s Minuten",AmountList[AmountSelector],mob_name(TargetList[TargetSelector]),TimeList[TimeSelector]/60))
				say(string.format("Challenge: %s  Einsatz: %s  Belohnung: %s Yang", NewRewardsTable[1], NewRewardsTable[2], NewRewardsTable[3]))  
				local x = select("Ja", "Nein")                                                                          
				if x == 1 then                                                                                                                                                
					pc.setqf("challenge_duration", get_time())
					FinalTarget = TargetList[TargetSelector]
					Selected = 5
					pc.setqf("FinalTarget",TargetList[TargetSelector])		
					pc.setqf("FinalAmount",AmountList[AmountSelector])	
					pc.setqf("FinalTime",TimeList[TimeSelector])				
					set_state(start_2quest)                                                       
				else                                                                                                    
					Selected = 5
					set_state(bounceback)                                                               
				end
			end	 
			if Selected == 5 then
			  set_state(bounceback)                                                                                                
			end
		until Selected == 5
	end
end


	state bounceback begin
		when enter or login begin
			notice(string.format("%s ,%s ,%s", TimeChallenge, AmountChallenge, TargetChallenge))
			set_state(talk_seon)
		end      
	end

state start_2quest begin
		when enter or login begin
			q.start()
			local timeToWait = pc.getqf("FinalTime")
			local timeLeft = 0
			timeLeft = timeToWait - (get_time() - pc.getqf("challenge_duration"))
			send_letter(string.format("Jage %s x %s in %s Minuten",pc.getqf("FinalAmount"),mob_name(pc.getqf("FinalTarget")),pc.getqf("FinalTime")/60))
			q.set_title(string.format("Jage %s x %s in %s Minuten",pc.getqf("FinalAmount"),mob_name(pc.getqf("FinalTarget")),pc.getqf("FinalTime")/60))
			q.set_clock("Zeit:", timeLeft)	
			if get_time() - pc.getqf("challenge_duration") >= timeToWait then
			q.done()
			notice("Challenge Zeit Abgelaufen") 
			set_state(challenge_failed)
			end
		end
	
		when FinalTarget.kill begin   
			if pc.getqf("kill_count_1") < AmountSelector then                                      
				local index =pc.getqf("kill_count_1") + 1                                        
				pc.setqf("kill_count_1",index)                                                   
	--			q.set_counter_value(AmountSelector - pc.getqf("kill_count_1"))                       
				if AmountSelector == pc.getqf("kill_count_1") and get_time() - pc.getqf("challenge_duration") < timeToWait then                                   
					q.done()                                                                       
					notice("Challenge Erfolg")      
					set_state(challenge_success)                                                         
				end                                                                              
			end
		end 
	
end
--				
--			  
--			  
--			  when 20095.Chat."Challenge" begin
--			  if BeenHere != 1 then
--			 		ChallengeIndex = 0
--					BetMoney = 0
--					Reward = 0
--					TargetChallenge = 0
--					AmountChallenge = 0
--					TimeChallenge = 0
--					TargetSelector = 0
--					AmountSelector = 0
--					TimeSelector = 0
--					BeenHere = 1					
--				end
--				say_title("Challenge")
--				local s = select("Ziel auswählen", "Anzahl auswählen", "Zeit auswählen")
--				if s == 1 then
--			 		say_title("Ziel auswählen")
--				 	local t = select("Wildhunde", "Wölfe", "Tiger")
--				 	if t == 1 then
--				 		TargetSelector = Target1 
--				 		TargetChallenge = 1 
--				 	else
--				 		if t== 2 then
--				 			TargetSelector = Target2
--				 			TargetChallenge = 2 
--				 		else
--				 			TargetSelector = Target3
--				 			TargetChallenge = 4 
--				 		end
--				 	end
--				 	else
--				 		if h == 2 then
--				 		say_title("Anzahl festlegen")
--			 			local a = select("10", "30", "50")
--					 	if a == 1 then
--					 		AmountSelector = 10 
--					 		AmountChallenge = 1 
--								else
--									if a== 2 then
--										AmountSelector = 30
--										AmountChallenge = 2 	 			
--									else
--										AmountSelector = 50
--										AmountChallenge = 4 
--									end
--							end
--						else
--							say_title("Zeit festlegen")
--						 	local i = select("60 Minuten", "30 Minuten", "10 Minuten")
--			 				if i == 1 then
--			 					TimeSelector = Time1
--			 					TimeChallenge = 1  	 					
--			 				else
--			 					if i== 2 then	 					
--			 					TimeChallenge = 2
--			 					set_state(bounceback)
--			 					else
--			 						TimeSelector = Time3
--			 						TimeChallenge = 4
--			 					end
--			 				end
--						end			 		
--					end			
--			 	end
--			  
--
--			
--			when 20095.Chat."Dem alten Mann helfen" begin
--			target.delete("__TARGET__")
--				say_title("Hilfe für Seon-Hae")
--				say("Wehe! Diese verflixten Kläffer! Hungrige Wildunde haben meinen kleinen Hund Fu verschlungen! Mit zwei Bissen war er weg, der arme Kleine!")
--				wait()
--				say(string.format("Rächt meinen Fu! Erschlagt %s hungrige Wildhunde und seine kleine Hundeseele wird mit Genugtuung in das Geisterreich eingehen können! Der arme Kleine ...",HuntAmount))
--				set_state(hunting)
--			end			
--		
--			when 20095.Chat."Dem alten Mann Ehre erweisen" begin
--			target.delete("__TARGET__")
--				say_title("Tee für Seon-Hae")
--				say("*Der alte Mann Seon-Hae nickt euch zu, als ihr euch zur Begrüßung verbeugt. Er scheint von Sorgen geplagt.*")
--				wait()
--				say("*Die Tradition würde gebieten, ihm einen Glockenblumentee zu reichen. Dies demonstriert eure Achtung und beruhigt seine Seele.*")
--				wait()
--				say(string.format("*Sammelt %s Glockenblumen. Die Wildhunde erschnüffeln sie gere im Gras, von ihnen könnt ihr welche erbeuten.*", GatherAmount))
--				set_state(gather)
--			end
--		
--		when 20095.Chat."Den alten Mann ausrauben" begin
--			target.delete("__TARGET__")
--				say_title("Überfall auf Seon-Hae")
--				say("Rüpel! Ein alter Mann ist in Trauer um seinen besten Freund und ihr haltet ihm noch eine Klinge unter die Nase! Aber glaubt nur nicht das ihr damit davonkommt! Der Geist meines toten Hundes wird mir Schutz senden!")
--				wait()
--				say("Fass, Fu! Fass!")
--				set_state(fighting)
--			end
--		
--
--		
	state teleport begin
		when enter or login begin
			if pc.get_map_index() >= 1120000 and pc.get_map_index() <= 1129999 then
				say_in_map("proper state")
				set_state(arena_relocate)
			else
			notice("teleport begin")
			command("private 112")
			set_state(arena_relocate)
			end
		end
	end
		
		state arena_relocate begin
			when enter or login begin
				if pc.get_map_index() >= 1120000 then
				notice("relocate")
				command("go 88 88")
--				say_in_map("proper state")
				set_state(spawn_arena)
				end
			end
		end
		
		state spawn_arena begin
			when enter or login begin
				mob.spawn(101, 101, 101, 1,1, 3)
				notice("spawn")
				set_state(arena_combat)
			end
		end
		
	
		
		state arena_combat begin
			when enter or login begin
				notice("combat")
--				if pc.is_dead()	== true then
--					set_state(return_from_arena)
--				end
			end
		
			when 101.kill begin
				local index = pc.getqf("killcount")+1
				pc.setqf("killcount", index)    

				if pc.getqf("killcount") >= 3 then
					notice("final kill")
					set_state(return_from_arena)
				end
			end
		end
		
		state return_from_arena begin
			when enter or login begin
				local CordX = pc.getqf("pcx")*100
				local CordY = pc.getqf("pcy")*100
				pc.setqf("killcount", 0)  
				say_title("Round Over")
				say("Return home.")
				local s = select("OK")
				if s == 1 then
					pc.warp(CordX, CordY)
					notice("timer over")
					set_state(talk_seon)
				end
			end
		end
		
		state hunting begin
			when enter begin	
				q.start()
				q.set_title("Hundejagd")
				notice("Erlege hungrige Wildhunde.")
				send_letter("Erlegt hungrige Wildhunde.")
				q.set_counter("Noch übrig", HuntAmount)
			end
			
			when button or info begin
				say_title("Erlege Wildhunde")
				say(string.format("Erlegt %s hungrige Wildhunde um Fu zu rächen.", HuntAmount))
			end
			
			
			-----Kill 171#Hungringer wildhund-----
			when 171.kill begin
				if pc.getqf("kill_count_1") < HuntAmount then
					local index =pc.getqf("kill_count_1") + 1
					pc.setqf("kill_count_1",index)
					q.set_counter_value(HuntAmount - pc.getqf("kill_count_1"))  
					if HuntAmount == pc.getqf("kill_count_1") then
						q.done()
						notice("Das sollten genug Hunde gewesen sein, kehrt zu Seon-Hae zurück.")
						set_state(back_to_npc)
					end
				end
			end
		end
			
			state back_to_npc begin
				when enter begin
					q.start()
					q.set_title("Zurück zu Seon-Hae")
					send_letter("Zurück zu Seon-Hae")
					local v=find_npc_by_vnum(20095) -- Seon-Hae
					if 0==v then
					else
						target.vid("__TARGET2__", v, "Seon-Hae")
					end
				end
				
				when button or info begin
					say_title("Zurück zu Seon-Hae")
					say("Kehrt zu Seon-Hae zurück.")
				end
				
				when __TARGET2__.target.click begin
					target.delete("__TARGET2__")
						say("Gute Arbeit, ihr habt es den Biestern gezeigt! Mein kleiner Fu kann nun getrost ins Geisterreich übergehen.") -- white font text
						wait()
						say("Hier, dieses Geld hatte ich gespart um seine Leckereien zu kaufen. Ich schätze es gebührt euch.")
						say_reward("Ihr erhaltet:")
						say("Einen großen Beutel Yang")
						q.done()
						pc.change_money(10000)
						pc.give_exp2(500)
				end
			end
			
		state gather begin
		
			when enter begin
				q.start()
				q.set_title("Glockenblumen")
				notice("Erlegt Wildhunde um Glockenblumen zu sammeln")
				send_letter("Erlegt Wildhunde um Glockenblumen zu sammeln.")
				q.set_counter("Noch übrig", GatherAmount)
			end

				when button or info begin
					say_title("Glockenblumen von Wildhunden")
					say(string.format("Erbeutet %s Glockenblumen von den Wildhunden der Umgebung", GatherAmount))
				end
											
			when 101.kill begin -- yy unfinished yy
				if pc.count_item(50702)< GatherAmount - pc.getqf("collect_count") then
					pc.give_item2(50702, 1)
					local index = pc.getqf("collect_count") + 1
					q.set_counter_value(GatherAmount - pc.getqf("collect_count"))
					pc.setqf("collect_count",index)
					notice("Ihr habt eine Glockenblume gefunden")				
					else
					q.done()
--					set_state(return_flowers)
				end			
			end		
		end
		
--		state return_flowers
--			when enter begin
--				q.start()
--				q.set_title("Der Tee für Seon-Hae")
--				notice("Kehrt zu Seon-Hae zurück")
--				send_letter("Kehrt zu Seon-Hae zurück")
--				if 0!=v then
--					target.vid("__TARGET3__", v, "Seon-Hae")
--				end
--			end
--
--			when button or info begin
--				say_title("Glockenblumen für Seon-Hae")
--				say("Kehrt mit dne Glockenblumen zu Seon-Hae zurück.")
--			end
--			
--			when __TARGET3__.target.click begin
--				target.delete("__TARGET3__")
--				say("*Es dauert nicht lange, aus den Glockenblumen einen Tee zuzubereiten. Seon-Hae betrachtet euch wohlwollend als ihr ihm die Schale überreicht.*") -- white font text
--				wait()
--				say("Das nenne ich gute Erziehung! Das war genau das,w as ich in dieser schweren Zeit brauchte. Ihr seid noch ein junger Mensch mit Manieren. Selten anzutreffen bei euch Abenteurern.")
--				say_reward("*Seon-Hae steckt euch etwas zu:*")
--				say("Einige Yang")
--				q.done()
--				pc.change_money(100)
--				pc.give_exp2(1000)
--			end	
--		
--		end		
			
		state fighting begin
			when enter begin
				q.start()
				q.set_title("Besiegt den Wolf")
				send_letter("Besiegt den Wolf")
				mob.spawn(102, 356, 483, 1, 1, 1)
			end
			
			when button or info begin
				say_title("Besiegt den Wolf")
				say("Besiegt den Wolfsgeist, der Seon-Ha zur Hilfe geeilt ist.")
			end
			
			when 102.kill begin
				q.done()
				set_state(robbing)
			end

		end
		
	state robbing begin
			when enter begin
				q.start()
				q.set_title("Holt das Geld von Seon-Hae")
				send_letter("Holt das Geld von Seon-Hae")
				local v=find_npc_by_vnum(20095) -- Seon-Hae
				if 0==v then
					else
						target.vid("__TARGET2__", v, "Seon-Hae")
				end
			end
			
			when button or info begin
				say_title("Seon-Hae ausrauben")
				say("Ihr habt Seon-Haes Wächter beseigt, nun ist es an der Zeit sich sein Geld zu schnappen.")
			end	
			
			when __TARGET2__.target.click begin
					target.delete("__TARGET2__")
					say_title("Das Geld von Seon-Ha")
					say("Ihr... Ihr habt ihn erschlagen! Bitte, tut mir nicht das gleiche an, ihr sollt alles bekommen, was ich habe!") -- white font text
					wait()
					say("Da, nehmt meinen Besitz! Möge euch höchstpersönlich ein Metinstein auf den Kopf fallen, ehrloser Schurke!")
					say_reward("Seon-Ha übergibt euch:")
					say_item_vnum(11)
					say("und einen großen Beutel Yang")
					q.done()
					pc.change_money(10000)
					pc.give_item2(11, 1)
					pc.give_exp2(100)
			end				
		end	

		
--	 when 20095.Chat."Ziele festlegen" begin
--		say_title("Challenge")
--		local s = select("Ziel auswählen", "Anzahl auswählen", "Zeit auswählen")
--		if s == 1 then
--	 		say_title("Ziel auswählen")
--		 	local t = select("Wildhunde", "Wölfe", "Tiger")
--		 	if t == 1 then
--		 		TargetSelector = Target1 
--		 		TargetChallenge = 1 
--		 	else
--		 		if t== 2 then
--		 			TargetSelector = Target2
--		 			TargetChallenge = 2 
--		 		else
--		 			TargetSelector = Target3
--		 			TargetChallenge = 4 
--		 		end
--		 	end
--		 	else
--		 		if h == 2 then
--		 		say_title("Anzahl festlegen")
--	 			local a = select("10", "30", "50")
--			 	if a == 1 then
--			 		AmountSelector = 10 
--			 		AmountChallenge = 1 
--						else
--							if a== 2 then
--								AmountSelector = 30
--								AmountChallenge = 2 	 			
--							else
--								AmountSelector = 50
--								AmountChallenge = 4 
--							end
--					end
--				else
--					say_title("Zeit festlegen")
--				 	local i = select("60 Minuten", "30 Minuten", "10 Minuten")
--	 				if i == 1 then
--	 					TimeSelector = Time1
--	 					TimeChallenge = 1  	 					
--	 				else
--	 					if i== 2 then	 					
--	 					TimeChallenge = 2
--	 					else
--	 						TimeSelector = Time3
--	 						TimeChallenge = 4
--	 					end
--	 				end
--				end	
--		 		
--	end
--
--	 when 20095.Chat."Anzahl festlegen" begin
--	 	say_title("Anzahl festlegen")
--	 	local s = select("10", "30", "50")
--	 	if s == 1 then
--	 		AmountSelector = 10 
--	 		AmountChallenge = 1 
--	 		set_state(bounceback)
--	 	else
--	 		if s== 2 then
--	 			AmountSelector = 30
--	 			AmountChallenge = 2 	 			
--	 			set_state(bounceback)
--	 		else
--	 			AmountSelector = 50
--	 			AmountChallenge = 4 
--	 			set_state(bounceback)
--	 		end
--	  end	
--	end
--
--	
--	 when 20095.Chat."Zeit festlegen" begin
--	 	say_title("Zeit festlegen")
--	 	local s = select("60 Minuten", "30 Minuten", "10 Minuten")
--	 	if s == 1 then
--	 		TimeSelector = Time1
--	 		TimeChallenge = 1  
--	 		set_state(bounceback)
--	 	else
--	 		if s== 2 then
--	 			TimeSelector = Time2
--	 			TimeChallenge = 2
--	 			set_state(bounceback)
--	 		else
--	 			TimeSelector = Time3
--	 			TimeChallenge = 4
--	 			set_state(bounceback)
--	 		end
--	 	end
--	 end	

	

	
	state bounceback begin
		when enter or login begin
			notice(string.format("%s ,%s ,%s", TimeChallenge, AmountChallenge, TargetChallenge))
			set_state(talk_seon)
		end      
	end
	
	state start_quest begin
		when enter or login begin
			q.start()
			timeToWait = TimeList[TimeSelector]
			timeLeft = timeToWait - (get_time() - pc.getqf("challenge_duration"))
			send_letter(string.format("Jage %s x %s in %s Minuten",AmountList[AmountSelector],mob_name(TargetList[TargetSelector]),TimeList[TimeSelector]/60))
			q.set_title(string.format("Jage %s x %s in %s Minuten",AmountList[AmountSelector],mob_name(TargetList[TargetSelector]),TimeList[TimeSelector]/60))
			q.set_clock("Zeit:", timeLeft)	
			if get_time() - pc.getqf("challenge_duration") >= timeToWait then
			q.done()
			notice("Challenge Zeit Abgelaufen") 
			set_state(challenge_failed)
			end
		end
		
		when FinalTarget.kill begin   
			if pc.getqf("kill_count_1") < AmountSelector then                                      
				local index =pc.getqf("kill_count_1") + 1                                        
				pc.setqf("kill_count_1",index)                                                   
	--			q.set_counter_value(AmountSelector - pc.getqf("kill_count_1"))                       
				if AmountSelector == pc.getqf("kill_count_1") and get_time() - pc.getqf("challenge_duration") < timeToWait then                                   
					q.done()                                                                       
					notice("Challenge Erfolg")      
					set_state(challenge_success)                                                         
				end                                                                              
			end
		end                                                                                
	end	


	state challenge_failed begin
		when enter or login begin
			notice("Challenge fehlgeschlagen")
			set_state(talk_seon)
		end
	end
	
	state challenge_success begin
		when enter or login begin
			notice(string.format("Du erhälst", Reward))
			pc.change_money(Reward)
			set_state(talk_seon)
		end
	end

end