
.namespace s04_c01

function OnEnable()
--	SearchSite.OnEnable()
	Closeup.OnEnable("MiniGame")
	OPLog.Log("OnEnable unit "..self.Name)
	Reset()
	tpstchsenfon=0.7
	-- tailletab=1 --taille du tableau
	-- tab = {1} --les notes a entrer
	tailletab=4 --taille du tableau
	tab = {1,8,12,5} --les notes a entrer
	gamestart=false
	dialogueGO=false
	
	if SampleLevel.IsEqual("s04_partition",false) then
		partition.Enabled= false
	end
	if DebugOptions.DebugMode == true then
		InventoryManager.AddInInventory("InventoryPlan")
	end
end

function Reset()
	a1=0
	nb=1
	nb2=2
	nb3=0
	lsttch=0 -- indique la derniere touche a avoir été enfoncé
	s1=0 -- variable pour faire passer une fois dans la if pour jouer le son une fois
	s2=0 -- variable pour faire passer une fois dans le if pour la touche enfoncé
	s3=0 -- variable pour faire passer une fois dans le if qui recupere le temps de depart.   
	s4=0 -- difference de temps pour laisser les touches enfoncé lorsque l'on montre les touches a enfonce
	s5=0 -- variable pour faire passer une fois dans le if qui recupere le temps de depart pour laisser la touche enfoncé.
	s6=0 -- difference de temps	pour laisser la derniere touche enfoncé
	s7=2 -- variable pour faire laisser la touche enfoncé en mode piano libre.
	s8=0 -- temps d'attente pour la touche enfoncé mode piano libre
	sequencefin=0
	tempsdepart=0 --initialise le temps de depart 1
	tempsdepart2=0 --initialise le temps de depart 2
	tempsdepart3=0
	count=0 
	count2=51
	desactivetchs=0
	
	
end

function OnUpdate()
	
	--OPLog.Log(s5)
	--OPLog.Log(s6)
	-- OPLog.Log("desactive : "..desactivetchs)

	if SequencePlayer.Enabled == false and desactivetchs == 1  then
		Reset()
	end

	-- laisse la derniere touche de la dernier serie enfoncé 
	
	if gamestart==false then
	
		if s7 == 0 then
			tempsdepart3 = OPTime.GetTime()
			s7 = 1
		elseif s7 == 1 then
			s8=OPTime.GetTime() - tempsdepart3
		end
		
		if s8 > tpstchsenfon then
			touches_piano.SetFrame(0)
			s7=2
			s8=0
			lsttch=0
		end
	
	end
	
	if gamestart==true then
		if s5 == 0 then
			tempsdepart2 = OPTime.GetTime()
			s5 = 1
		end
		
		s6=OPTime.GetTime() - tempsdepart2
		
		if s6 > tpstchsenfon and s2 == 0 then
			touches_piano.SetFrame(0)
			nb3 = 0 
			s2=1
			
		end
		
	-- montre les touches a taper
		
		if s3 == 0 and desactivetchs == 0 then
			tempsdepart = OPTime.GetTime()
			s3 = 1
		end
		
		if s3==1 then
			s4=OPTime.GetTime() - tempsdepart
		end
		
		if  s4 < tpstchsenfon and nb3 < nb2 then
			touches_piano.SetFrame(tab[nb3])
			
			if s1==0 then
				PlaySoundEffect("piano"..tostring(tab[nb3]),true)
				s1=1
			end
		end
		
		if s4 >= tpstchsenfon then
			touches_piano.SetFrame(0)
			nb3 = nb3 + 1
			s1=0
			s3=0
			lsttch=0
			if sequencefin==1 and nb3>5 then
				SequencePlayer.PlaySequence("GP_410",self,nil)
				sequencefin=2
			end
		end
		

	 
	 --touche bien tapé
		if a1==tab[nb] then
			--OPLog.Log(nb)
			a1 = 0
			nb=nb + 1
			
		--gameover	
		elseif a1 ~= 0 and a1 ~= tab[nb] then 
			desactivetchs = 1
			PlaySoundEffect("int_closeupfail")
			if dialogueGO==false then
				SequencePlayer.Enabled = true
				SequencePlayer.PlaySequence("GP_411",self,nil)
				dialogueGO=true
			end
			
		end		
		
	-- fin d'une serie
		if nb == nb2 then
			-- fin du mini jeu	
			if nb == (tailletab + 1) then
				Itsawin()
			end
			if s4 >= tpstchsenfon	 then
				nb=1
				nb2=nb2 + 1
				nb3=nb2 + 1
				s5=0
				s2=0
				dialogueGO=false
			end	
		end
	end
	
	-- if sequencefin==2 then
		-- -- NavigationManager.SwitchTo(nil,"s04_SearchSite")
		-- sequencefin=3
	-- end
end

function OnDocumentLeave(docname)
	
		
end

function OnDocumentUse(docname)
	if docname == "InventoryPlan" then
		PlaySoundEffect("gmp_droppaper")
		SequencePlayer.Enabled = true
		SequencePlayer.PlaySequence("GP_405",self,nil)
		partition.Enabled = true
		SpriteFader.Fade(partition,true,1)
		InventoryManager.RemoveFromInventory("InventoryPlan")
		SampleLevel.Set("s04_partition",true)
		MenuMusic.Enabled = false
		return true
	end
	return false
end
		
		
function Itsawin() 
	if not SampleLevel.IsEqual("s04_bibli_open","todo") then
		s3=0
		nb3=0
		nb2=5
		sequencefin=1
		-- SequencePlayer.Enabled = true
		
		SampleLevel.Set("s04_bibli_open","todo")
	end
end

function OnEnter() 
	if SampleLevel.IsEqual("s04_partition",false) and InventoryPlan.Equipped == false then
		SequencePlayer.PlaySequence("GP_404",self,nil)
	
	elseif InventoryPlan.Equipped == true then
		SequencePlayer.PlaySequence("GP_412",nil,nil)
	
	elseif SampleLevel.IsEqual("s04_partition",true) then
		SequencePlayer.PlaySequence("GP_405",self,nil)
		partition.Enabled= true
	end
end

function OnSequenceEnd(dialogue)
	if dialogue == "GP_410" then
		NavigationManager.SwitchTo(nil,"s04_SearchSite")
		PlaySoundEffect("int_closeupwin")
	end
	
	if dialogue == "GP_411" then
		dialogueGO=false
	end
	
	if dialogue == "AI_s04_c01" then
		gamestart=true
	end
	
	if dialogue == "GP_405" then
		SequencePlayer.PlaySequence("AI_"..GetCurrentManager().Name,self,nil,"help")
		return true
	end
	
	if dialogue == "GP_404" then
		
		NavigationManager.SwitchTo(nil,"s04_SearchSite")
	end
end

