diff --git a/putsch.py b/putsch.py
index ffb817605002d4261f33ab49c71ad8f74ad87d35..c6bfe090c29594179d95813254fd2eb3891dc5af 100644
--- a/putsch.py
+++ b/putsch.py
@@ -9,6 +9,9 @@ import time
 def couper(pseudo) :
         return pseudo.split("!")[0]         
 
+def list_to_str(li) :
+	return ", ".join(li)
+
 #renvoie un paquet avec le bon nombre de cartes & les bonnes classes
 def Paquet(nbrJoueurs) :
 	if nbrJoueurs == 4 :
@@ -37,8 +40,10 @@ class Boooob(ircbot.SingleServerIRCBot):
 		self.ingame = 0
 		self.phase = 0
 		self.repet = 0
-
+		
+		self.phase2trig = 1
 		self.phase2 = 0
+
 		self.voyanteok = 0
 		self.loupsok = 0
 		self.sorciereok = 0
@@ -56,16 +61,27 @@ class Boooob(ircbot.SingleServerIRCBot):
 		self.sorciere = ""
 		self.cankill = 1 #sorciere uniquement
 		self.cansave = 1 #sorciere uniquement
-
+		
+		self.chasseur = ""
+		self.chasseurok = 1
+		self.chasseurtrig = 1
 		self.pf = ""
+
 		self.voyante = ""
 		self.cansee = 1 #voyante
 
 		self.cupidon = ""
+		self.cupidontrig = 1
+
 		self.maire = ""
+
 		self.voleur = ""
+		self.voleurtrig = 1
+
 		self.ancien = ""
-		self.victime = ""
+		self.canlive = 1
+
+		self.victime = []
 	
 	
         def on_welcome(self, serv, ev):
@@ -77,7 +93,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                 serv.privmsg("NickServ","identify MotDePasse") 
         def on_join(self, serv, ev):#Quand qq entre dans le chann, le bot inclus
 		canal = ev.target()
-		if canal == "#lg_putsch_loups" :
+		if canal == "#lg_putsch_loups" and self.phase == 3:
 			serv.privmsg(canal, "Vous pouvez maintenant voter en tapant '!vote pseudo'. Tout vote est definitif, vous avez le choix entre :"+", ".join(self.joueurs))
 
 
@@ -86,6 +102,7 @@ class Boooob(ircbot.SingleServerIRCBot):
                         
         def on_privmsg(self, serv, ev):#msg privé
 		personne = ev.source()
+		personne = couper(personne)
 		message = ev.arguments()[0]
 		if self.phase == 2 :
                         #Voleur
@@ -93,7 +110,12 @@ class Boooob(ircbot.SingleServerIRCBot):
                                 for f in self.cartes :
                                         if f in message :
                                                 serv.privmsg(personne, "Tu as choisi : "+f)
-                                                setattr(self,f,personne)
+						if f == "loups" :
+							self.loups.append(personne)
+							serv.privmsg(personne, "Pense a rejoindre le chann #lg_putsch_loups !")
+							serv.invite(personne, "#lg_putsch_loups")
+						else :
+							setattr(self,f,personne)
                                                 self.phase2 = self.phase2 + 1
                                                 break
                        
@@ -105,36 +127,53 @@ class Boooob(ircbot.SingleServerIRCBot):
                                 for f in self.joueurs :
                                         if f in message and f not in amants :
                                                 amants.append(f)
-                                serv.privmsg(personne, "Tu as choisi ces deux couillons :"+", ".join(amants))
-                                self.lovers = amants
-                                serv.privmsg(self.lovers[0], "Felicitations, tu es en couple avec "+self.lovers[1]+".")
-                                serv.privmsg(self.lovers[1], "Felicitations, tu es en couple avec "+self.lovers[0]+".")
-                                self.phase2 = self.phase2 + 1
+				if len(amants) == 2 :
+	                                serv.privmsg(personne, "Tu as choisi ces deux couillons :"+", ".join(amants))
+        	                        self.lovers = amants
+                	                serv.privmsg(self.lovers[0], "Felicitations, tu es en couple avec "+self.lovers[1]+".")
+                        	        serv.privmsg(self.lovers[1], "Felicitations, tu es en couple avec "+self.lovers[0]+".")
+                               		self.phase2 = self.phase2 + 1
       		
 		
 		if self.phase == 3 :
 			#voyante 
 			if self.voyante == personne and self.cansee == 1 :
-				for f in joueurs :
-					if f in message :
+				for f in self.joueurs :
+					if f in message and "!who" in message:
 						for g in dir(self) :
-							if f == getattr(self, g) :
+							if f in str(getattr(self, g)) and g != "joueurs" :
 								serv.privmsg(personne, "La classe de "+f+" est :"+g)
 								break
 						self.cansee = 0
 			#sorciere
-			if self.sorciere == personne and (self.cankill == 1 or self.cansave == 1) :
-				if "ress" in message and self.cansave == 1 :
-					self.cansave = 0
-					self.victime = ""
+			if self.sorciere == personne and (self.cankill == 1 or self.cansave == 1) and self.sorciereok != 1 :
+				if "!nope" in message :
 					self.sorciereok = 1
+					serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
 				else :
-					if "tuer" in message and self.cankill == 1:
-						if message.split(" ")[1] in self.joueurs :
-							self.victime = self.victime +" et "+ message.split(" ")[1]
-							self.joueurs.remove(message.split(" ")[1])
-							self.cankill = 0
-							self.sorciereok = 1
+
+					if "!ress" in message and self.cansave == 1 :
+						self.cansave = 0
+						self.victime = ""
+						self.sorciereok = 1
+						serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+					else :
+						if "!tuer" in message and self.cankill == 1:
+							if message.split(" ")[1] in self.joueurs :
+								self.victime.append( message.split(" ")[1])
+								self.joueurs.remove(message.split(" ")[1])
+								self.cankill = 0
+								self.sorciereok = 1
+								serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
+			#chasseur
+			if self.chasseur == personne and self.chasseur in self.victime :
+				for f in self.joueurs :
+					if f in message and "!tuer" in message :
+						self.victime.append(f)
+						serv.privmsg(self.chasseur, "Tu as tué "+f+" par vengeance ! HAHA !")
+						self.chasseurok = 1
+						serv.privmsg("#lg_putsch", "J'en connais un qui va etre deçu...")
+						break
 
 
 
@@ -158,14 +197,15 @@ class Boooob(ircbot.SingleServerIRCBot):
                 personne = ev.source()
                 personne = couper(personne)
                 message = ev.arguments()[0]
-                message = message.lower() #Passe le message en minuscule
 		if "!debug" in message :
-			serv.privmsg("#lg_cheat", "etat des differentes variables :")
-			vars = ["avote","vote","phase","ingame","joueurs","topic","attente","cartes","loups","villageois","phase2","lovers","sorciere","pf","voyante","cupidon","maire","voleur","ancien","victime"]
-			for f in vars: 
-				serv.privmsg("#lg_cheat", f+" = "+str(getattr(self, f)))
-				time.sleep(1)
+			if len(message.split(" ")) == 1 :
 
+				for f in dir(self): 
+					print(f+" = "+str(getattr(self, f)))
+			else :
+				for f in message.split(" ")[1:] :
+					print(f+" = "+str(getattr(self, f)))
+				
 		if self.ingame == 0 : #Ensemble des commandes avant le debut de la partie
 			if self.topic == 0 :
 				#serv.topic(canal,"Tapez !newgame pour demarrer une partie ! ")
@@ -187,7 +227,7 @@ class Boooob(ircbot.SingleServerIRCBot):
 						self.joueurs.remove(personne)
 
 				if "!list" in message :
-					serv.privmsg(canal, "La liste des joueurs est : "+" ,".join(self.joueurs))
+					serv.privmsg(canal, "La liste des joueurs est : "+", ".join(self.joueurs))
 				if len(self.joueurs) < 4 :
 					self.attente = 0
 				if len(self.joueurs) >= 4  and self.attente == 0:
@@ -223,33 +263,54 @@ class Boooob(ircbot.SingleServerIRCBot):
 					serv.privmsg(canal, "Bon, bah c'est parti...")
 					serv.privmsg(canal, "La partie commence....")
 					self.phase = 2
-			if self.phase == 2 :                           
-                               	serv.privmsg("#lg_putsch", "J'appelle le voleur...S'il existe !")
-                               	if self.voleur != "" :
+			if self.phase == 2 : 
+				if self.phase2trig == 1 :
+                               		serv.privmsg("#lg_putsch", "J'appelle le voleur...S'il existe !")
+					serv.privmsg("#lg_putsch", "J'appelle le cupidon... S'il existe !")
+					self.phase2trig = 0
+
+                               	if self.voleur != "" and self.phase2 == 0 and self.voleurtrig == 1 :
                                     	serv.privmsg(self.voleur, "Tu es le voleur, tes choix sont : "+", ".join(self.cartes))
+					self.voleurtrig = 0 
 				else :
-					self.phase2 = self.phase2 +1
-                                time.sleep(1)
-                                serv.privmsg("#lg_putsch", "J'appelle le cupidon... S'il existe !")
-                                if self.cupidon != "" :
-                                       	serv.privmsg(self.cupidon, "Tu es le cupidon, designe deux joueurs parmi ceux là : "+", ".join(self.joueurs))
+					if self.phase2 == 0 and self.voleurtrig == 1:
+						self.phase2 = self.phase2 +1
+                
+                                if self.cupidon != "" and self.phase2 == 1 and self.cupidontrig == 1 :
+					serv.privmsg(self.cupidon, "Tu es le cupidon, designe deux joueurs de cette maniere : 'pseudo1' + 'pseudo2'. La liste:  "+", ".join(self.joueurs))
+					self.cupidontrig = 0
                                 else :
-					self.phase2 = self.phase2 + 1
+					if self.phase2 == 1 and self.cupidontrig == 1 :
+						self.phase2 = self.phase2 + 1
 				if self.phase2 == 2 :
 					self.phase = 3
-					serv.mode("#lg_putsch_loups","-m")
-					serv.privmsg("#lg_putsch", "Okay, la partie commence vraiment cette fois")
-					time.sleep(10)
-					self.temps = time.time()
+					serv.privmsg("#lg_putsch", "La partie commence dans 20s...")
+					time.sleep(20)
+					serv.privmsg("#lg_putsch", "Debut de la partie")
+					serv.mode("#lg_putsch_loups", "-m")
+					serv.privmsg("#lg_putsch_loups", "Vous pouvez voter avec '!vote pseudo' . la liste des pseudos : "+" ,".join(self.joueurs))
 			if self.phase == 3 :
-				if time.time() - self.temps > 40 :
+				if len(self.votes) == len(self.loups) :
+					if self.sorciere == "" :
+						self.sorciereok = 1
+					serv.mode("#lg_putsch_loups", "+m")
 					serv.privmsg("#lg_putsch","la sorciere se leve...")
-					a = 0
+					bid = []
 					for f in self.joueurs :
-						if self.votes.count(f) > a :
-							a = self.vote.count(f)
-							self.victime = f
-					serv.privmsg(self.sorciere, self.victime+" est mort cette nuit. Souhaitez vous 1 : ressusciter "+self.victime+" ou 2 : tuer quelqu'un d'autre (un seul choix). Tapez : 'tuer groot' pour tuer groot, ou juste 'ress' pour ressusciter la victime")
+						bid.append(str(self.votes.count(f)))
+					a = max(bid) 
+					c = 0
+					for f in bid :
+						if f == a :
+							c=c+1
+					if c == 1 :
+						self.victime.append(self.joueurs[bid.index(a)])
+					
+
+							
+					if self.sorciere != "" :
+						serv.privmsg(self.sorciere, list_to_str(self.victime)+" est mort cette nuit. Tapez : '!tuer pseudo' pour tuer quelqu'un ou '!ress' pour ressusciter la victime. Vous pouvez taper !nope pour ne rien faire. (un seul choix possible)")
+					self.votes = []
 
 
 
@@ -262,7 +323,7 @@ class Boooob(ircbot.SingleServerIRCBot):
 				if self.voyanteok == 0 :
 
 					serv.privmsg("#lg_putsch", "J'appelle la voyante")
-					serv.privmsg(self.voyante, "De quel joueur souhaites tu voir la carte ? Tu as le choix entre : "+", ".join(self.joueurs))
+					serv.privmsg(self.voyante, "Tape !who pseudo pour connaitre le role de pseudo. La liste :  "+", ".join(self.joueurs))
 					self.voyanteok = 1
 
 
@@ -271,24 +332,64 @@ class Boooob(ircbot.SingleServerIRCBot):
 					serv.privmsg("#lg_putsch", "Les loups se reveillent...")
 					self.loupsok = 1
 				if canal == "#lg_putsch_loups" :
-					if "!vote" in message and personne not in self.avote :
+					if "!vote" in message and personne not in self.avote and personne in self.loups :
+						print ("message de vote :"+message)
 						if message.split(" ")[1] in self.joueurs :
-							self.votes.append(message.split(" ")[1])
-							self.avote.append(personne)
-							serv.privmsg(canal, personne+" a voté pour "message.split(" ")[1]+"!")
-
-
-				if self.sorciereok == 1 :
-					self.voyanteok = 0
-					self.loupsok = 0
-					self.sorciereok = 0
-					self.phase = 4
-					serv.privmsg("#lg_putsch", "La ou les victimes de cette nuit : "+self.victime)
-					self.victime = ""
-					self.avote = []
-					self.votes = []
-					self.cansee= 1
-					serv.privmsg("#lg_putsch", "Regaaaarde, le joour se leeeve")
+							(self.votes).append(message.split(" ")[1])
+							(self.avote).append(personne)
+							serv.privmsg(canal, personne+" a voté pour "+message.split(" ")[1]+"!")
+
+
+				if self.sorciereok == 1 and self.voyanteok == 1 :
+					if self.ancien in self.victime and self.canlive == 1:
+						self.joueurs.append(self.victime)
+						self.victime.remove(self.ancien)
+						self.canlive = 0
+						serv.privmsg(self.ancien, "Ouf, ton pouvoir vient de te sauver !")
+					if self.chasseur in self.victime :
+						if self.chasseurtrig == 1:
+
+							serv.privmsg(self.chasseur, "Tu as été tué cette nuit ! Tape !tuer pseudo pour te venger ! la liste des cibles est : "+" ,".join(self.joueurs))
+							self.chasseurok = 0
+							self.chasseurtrig = 0
+					else :	
+						self.chasseurok = 1
+
+					if self.chasseur == "" :
+						self.chasseurok = 1
+					if self.chasseurok == 1 :
+
+						for f in self.victime :
+							for g in dir(self) :
+								if f in str(getattr(self, g)) and g != "joueurs" and g != "victime" and g != "avote" :
+									serv.privmsg("#lg_putsch" , f+" est decedé cette nuit.. son role : "+g+".")
+							
+						self.chasseurok = 0
+						self.voyanteok = 0
+						self.loupsok = 0
+						self.sorciereok = 0
+						self.victime = ""
+						self.avote = []
+						self.votes = []
+						self.cansee= 1
+						serv.privmsg("#lg_putsch", "Regaaaarde, le joour se leeeve")
+						self.phase = 4
+
+			
+			if self.phase == 4 :
+				serv.privmsg("lg_putsch", "Ce crime ne peut rester impuni !")
+				time.sleep(2)
+				serv.privmsg("lg_putsch", "Le village se reunit et decide de lyncher quelqu'un...")
+				
+
+
+
+
+
+
+
+
+