diff --git a/putsch.py b/putsch.py
index 07ad0444ccf29c222d9aa9f6a3b0fa7287018f7d..ffb817605002d4261f33ab49c71ad8f74ad87d35 100644
--- a/putsch.py
+++ b/putsch.py
@@ -36,13 +36,31 @@ class Boooob(ircbot.SingleServerIRCBot):
 		self.joueurs = []
 		self.ingame = 0
 		self.phase = 0
+		self.repet = 0
+
+		self.phase2 = 0
+		self.voyanteok = 0
+		self.loupsok = 0
+		self.sorciereok = 0
+		self.votes = []
+		self.avote = []
+		self.temps = 0
 		self.topic = 0
 		self.attente = 0
+		self.cartes = []   #Les cartes qui seront en jeu -> sert uniquement pour initialiser la partie
 		self.loups = []
 		self.villageois =[]
+		
+		self.lovers = []
+		
 		self.sorciere = ""
+		self.cankill = 1 #sorciere uniquement
+		self.cansave = 1 #sorciere uniquement
+
 		self.pf = ""
 		self.voyante = ""
+		self.cansee = 1 #voyante
+
 		self.cupidon = ""
 		self.maire = ""
 		self.voleur = ""
@@ -55,23 +73,85 @@ class Boooob(ircbot.SingleServerIRCBot):
 		serv.join("#lg_putsch_loups")
 		serv.join("#lg_putsch_pf")
 		serv.join("#lg_putsch_morts")
+		serv.join("#lg_cheat")
                 serv.privmsg("NickServ","identify MotDePasse") 
         def on_join(self, serv, ev):#Quand qq entre dans le chann, le bot inclus
-		pass
+		canal = ev.target()
+		if canal == "#lg_putsch_loups" :
+			serv.privmsg(canal, "Vous pouvez maintenant voter en tapant '!vote pseudo'. Tout vote est definitif, vous avez le choix entre :"+", ".join(self.joueurs))
+
+
+
                        
                         
         def on_privmsg(self, serv, ev):#msg privé
 		personne = ev.source()
+		message = ev.arguments()[0]
+		if self.phase == 2 :
+                        #Voleur
+                        if self.voleur == personne :
+                                for f in self.cartes :
+                                        if f in message :
+                                                serv.privmsg(personne, "Tu as choisi : "+f)
+                                                setattr(self,f,personne)
+                                                self.phase2 = self.phase2 + 1
+                                                break
+                       
+                                                        
+
+                        #cupidon
+                        if self.cupidon == personne :
+                                amants = []
+                                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 self.phase == 3 :
+			#voyante 
+			if self.voyante == personne and self.cansee == 1 :
+				for f in joueurs :
+					if f in message :
+						for g in dir(self) :
+							if f == getattr(self, g) :
+								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 = ""
+					self.sorciereok = 1
+				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
+
+
+
+
+
+
+                                              
+                                                
+                                
+                                
                                    
 
                                      
         def on_invite(self, serv, ev) :
                 canal = ev.arguments()[0]
-                serv.join(canal)
-                
-                        
-                                     
-                        
+                serv.join(canal)                                  
+                       
         def on_pubmsg(self, serv, ev): #quand qq ecrit dans le chat
 		canal = ev.target()
 
@@ -79,10 +159,16 @@ class Boooob(ircbot.SingleServerIRCBot):
                 personne = couper(personne)
                 message = ev.arguments()[0]
                 message = message.lower() #Passe le message en minuscule
-		print self.topic
+		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 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 ! ")
+				#serv.topic(canal,"Tapez !newgame pour demarrer une partie ! ")
 				self.topic = 1
 			if "!newgame" in message :
 				serv.privmsg(canal, "Ok, "+personne+" a lancé une partie, tapez !join pour rejoindre (si vous retapez !join, vous quittez !)")
@@ -101,7 +187,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:
@@ -111,29 +197,104 @@ class Boooob(ircbot.SingleServerIRCBot):
 				if "!run" in message and self.attente == 1 :
 					serv.privmsg(canal,"La partie va se lancer.....Regardez vos query et vos invitations ! ")
 					# Selection des factions pour les joueurs, invitations dans les chann ...
-					serv.topic(canal, "Une partie est en cours. Les joueurs sont :"+" , ".join(self.joueurs))
+					
+					#serv.topic(canal, "Une partie est en cours. Les joueurs sont :"+" ,".join(self.joueurs))
+					
 					#serv.mode(canal, "+m") #on mute le chan pour empecher les randoms de parler
 					serv.privmsg(canal, "Je mute le canal !")
-					cartes = Paquet(len(self.joueurs))
+					self.cartes = Paquet(len(self.joueurs))
+										
 					#On attribue a chaque joueur un role
 					for f in self.joueurs :
 						serv.mode(canal,"+v "+f) #on passe les joueurs en voice
-						role = cartes.pop(rand.randint(0, len(cartes)- 1))
+						role = self.cartes.pop(rand.randint(0, len(self.cartes)- 1))
 						serv.privmsg(f, "Ton role pour la partie sera : "+role)
 						if role == "loups" or role == "villageois" :
 							if role == "loups" :
+								serv.privmsg(f, "Pense a rejoindre le chann #lg_putsch_loups !")
 								self.loups.append(f)
 							if role == "villageois" :
 								self.villageois.append(f)
 						else :
 							setattr(self,role,f)
 					for f in self.loups :
-						serv.invite(f, "#lg_putsch_loups")
+                                                serv.invite(f, "#lg_putsch_loups")
 					serv.privmsg("#lg_putsch_loups", "coucou les ptits loups !")
 					serv.privmsg(canal, "Bon, bah c'est parti...")
 					serv.privmsg(canal, "La partie commence....")
-					self.phase == 2
-			if self.phase == 2 :
+					self.phase = 2
+			if self.phase == 2 :                           
+                               	serv.privmsg("#lg_putsch", "J'appelle le voleur...S'il existe !")
+                               	if self.voleur != "" :
+                                    	serv.privmsg(self.voleur, "Tu es le voleur, tes choix sont : "+", ".join(self.cartes))
+				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))
+                                else :
+					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()
+			if self.phase == 3 :
+				if time.time() - self.temps > 40 :
+					serv.privmsg("#lg_putsch","la sorciere se leve...")
+					a = 0
+					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")
+
+
+
+
+				if self.repet == 0 :
+					serv.privmsg("#lg_putsch", "Il fait nuit noire...")
+					self.repet = 1
+
+
+				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))
+					self.voyanteok = 1
+
+
+				if self.loupsok == 0 :
+					time.sleep(2) 
+					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 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")
+
+
+
+                            
+                                
+                                
 
 
 
@@ -147,7 +308,7 @@ class Boooob(ircbot.SingleServerIRCBot):
 
 						
 
-
+ 
 			
 
 
@@ -160,8 +321,8 @@ class Boooob(ircbot.SingleServerIRCBot):
                 
                 
 
-        def on_kick(self, serv, ev) :
-                serv.join("#nardco")
+ 
+
 #
 if __name__ == "__main__" :
 	Boooob().start()