Skip to content
Extraits de code Groupes Projets
Valider 30cd4917 rédigé par Loris TICHADOU's avatar Loris TICHADOU
Parcourir les fichiers

Phase 3 quasiment debuggée

parent b6a02b74
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -9,6 +9,9 @@ import time ...@@ -9,6 +9,9 @@ import time
def couper(pseudo) : def couper(pseudo) :
return pseudo.split("!")[0] return pseudo.split("!")[0]
def list_to_str(li) :
return ", ".join(li)
#renvoie un paquet avec le bon nombre de cartes & les bonnes classes #renvoie un paquet avec le bon nombre de cartes & les bonnes classes
def Paquet(nbrJoueurs) : def Paquet(nbrJoueurs) :
if nbrJoueurs == 4 : if nbrJoueurs == 4 :
...@@ -38,7 +41,9 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -38,7 +41,9 @@ class Boooob(ircbot.SingleServerIRCBot):
self.phase = 0 self.phase = 0
self.repet = 0 self.repet = 0
self.phase2trig = 1
self.phase2 = 0 self.phase2 = 0
self.voyanteok = 0 self.voyanteok = 0
self.loupsok = 0 self.loupsok = 0
self.sorciereok = 0 self.sorciereok = 0
...@@ -57,15 +62,26 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -57,15 +62,26 @@ class Boooob(ircbot.SingleServerIRCBot):
self.cankill = 1 #sorciere uniquement self.cankill = 1 #sorciere uniquement
self.cansave = 1 #sorciere uniquement self.cansave = 1 #sorciere uniquement
self.chasseur = ""
self.chasseurok = 1
self.chasseurtrig = 1
self.pf = "" self.pf = ""
self.voyante = "" self.voyante = ""
self.cansee = 1 #voyante self.cansee = 1 #voyante
self.cupidon = "" self.cupidon = ""
self.cupidontrig = 1
self.maire = "" self.maire = ""
self.voleur = "" self.voleur = ""
self.voleurtrig = 1
self.ancien = "" self.ancien = ""
self.victime = "" self.canlive = 1
self.victime = []
def on_welcome(self, serv, ev): def on_welcome(self, serv, ev):
...@@ -77,7 +93,7 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -77,7 +93,7 @@ class Boooob(ircbot.SingleServerIRCBot):
serv.privmsg("NickServ","identify MotDePasse") serv.privmsg("NickServ","identify MotDePasse")
def on_join(self, serv, ev):#Quand qq entre dans le chann, le bot inclus def on_join(self, serv, ev):#Quand qq entre dans le chann, le bot inclus
canal = ev.target() 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)) 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): ...@@ -86,6 +102,7 @@ class Boooob(ircbot.SingleServerIRCBot):
def on_privmsg(self, serv, ev):#msg privé def on_privmsg(self, serv, ev):#msg privé
personne = ev.source() personne = ev.source()
personne = couper(personne)
message = ev.arguments()[0] message = ev.arguments()[0]
if self.phase == 2 : if self.phase == 2 :
#Voleur #Voleur
...@@ -93,6 +110,11 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -93,6 +110,11 @@ class Boooob(ircbot.SingleServerIRCBot):
for f in self.cartes : for f in self.cartes :
if f in message : if f in message :
serv.privmsg(personne, "Tu as choisi : "+f) serv.privmsg(personne, "Tu as choisi : "+f)
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) setattr(self,f,personne)
self.phase2 = self.phase2 + 1 self.phase2 = self.phase2 + 1
break break
...@@ -105,6 +127,7 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -105,6 +127,7 @@ class Boooob(ircbot.SingleServerIRCBot):
for f in self.joueurs : for f in self.joueurs :
if f in message and f not in amants : if f in message and f not in amants :
amants.append(f) amants.append(f)
if len(amants) == 2 :
serv.privmsg(personne, "Tu as choisi ces deux couillons :"+", ".join(amants)) serv.privmsg(personne, "Tu as choisi ces deux couillons :"+", ".join(amants))
self.lovers = amants self.lovers = amants
serv.privmsg(self.lovers[0], "Felicitations, tu es en couple avec "+self.lovers[1]+".") serv.privmsg(self.lovers[0], "Felicitations, tu es en couple avec "+self.lovers[1]+".")
...@@ -115,26 +138,42 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -115,26 +138,42 @@ class Boooob(ircbot.SingleServerIRCBot):
if self.phase == 3 : if self.phase == 3 :
#voyante #voyante
if self.voyante == personne and self.cansee == 1 : if self.voyante == personne and self.cansee == 1 :
for f in joueurs : for f in self.joueurs :
if f in message : if f in message and "!who" in message:
for g in dir(self) : 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) serv.privmsg(personne, "La classe de "+f+" est :"+g)
break break
self.cansee = 0 self.cansee = 0
#sorciere #sorciere
if self.sorciere == personne and (self.cankill == 1 or self.cansave == 1) : if self.sorciere == personne and (self.cankill == 1 or self.cansave == 1) and self.sorciereok != 1 :
if "ress" in message and self.cansave == 1 : if "!nope" in message :
self.sorciereok = 1
serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
else :
if "!ress" in message and self.cansave == 1 :
self.cansave = 0 self.cansave = 0
self.victime = "" self.victime = ""
self.sorciereok = 1 self.sorciereok = 1
serv.privmsg("#lg_putsch", "La sorciere a fait ce qu'elle avait a faire..")
else : else :
if "tuer" in message and self.cankill == 1: if "!tuer" in message and self.cankill == 1:
if message.split(" ")[1] in self.joueurs : if message.split(" ")[1] in self.joueurs :
self.victime = self.victime +" et "+ message.split(" ")[1] self.victime.append( message.split(" ")[1])
self.joueurs.remove(message.split(" ")[1]) self.joueurs.remove(message.split(" ")[1])
self.cankill = 0 self.cankill = 0
self.sorciereok = 1 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,13 +197,14 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -158,13 +197,14 @@ class Boooob(ircbot.SingleServerIRCBot):
personne = ev.source() personne = ev.source()
personne = couper(personne) personne = couper(personne)
message = ev.arguments()[0] message = ev.arguments()[0]
message = message.lower() #Passe le message en minuscule
if "!debug" in message : if "!debug" in message :
serv.privmsg("#lg_cheat", "etat des differentes variables :") if len(message.split(" ")) == 1 :
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: for f in dir(self):
serv.privmsg("#lg_cheat", f+" = "+str(getattr(self, f))) print(f+" = "+str(getattr(self, f)))
time.sleep(1) 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.ingame == 0 : #Ensemble des commandes avant le debut de la partie
if self.topic == 0 : if self.topic == 0 :
...@@ -224,32 +264,53 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -224,32 +264,53 @@ class Boooob(ircbot.SingleServerIRCBot):
serv.privmsg(canal, "La partie commence....") serv.privmsg(canal, "La partie commence....")
self.phase = 2 self.phase = 2
if self.phase == 2 : 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 voleur...S'il existe !")
if self.voleur != "" : 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)) serv.privmsg(self.voleur, "Tu es le voleur, tes choix sont : "+", ".join(self.cartes))
self.voleurtrig = 0
else : else :
if self.phase2 == 0 and self.voleurtrig == 1:
self.phase2 = self.phase2 +1 self.phase2 = self.phase2 +1
time.sleep(1)
serv.privmsg("#lg_putsch", "J'appelle le cupidon... S'il existe !") if self.cupidon != "" and self.phase2 == 1 and self.cupidontrig == 1 :
if self.cupidon != "" : serv.privmsg(self.cupidon, "Tu es le cupidon, designe deux joueurs de cette maniere : 'pseudo1' + 'pseudo2'. La liste: "+", ".join(self.joueurs))
serv.privmsg(self.cupidon, "Tu es le cupidon, designe deux joueurs parmi ceux là : "+", ".join(self.joueurs)) self.cupidontrig = 0
else : else :
if self.phase2 == 1 and self.cupidontrig == 1 :
self.phase2 = self.phase2 + 1 self.phase2 = self.phase2 + 1
if self.phase2 == 2 : if self.phase2 == 2 :
self.phase = 3 self.phase = 3
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.mode("#lg_putsch_loups", "-m")
serv.privmsg("#lg_putsch", "Okay, la partie commence vraiment cette fois") serv.privmsg("#lg_putsch_loups", "Vous pouvez voter avec '!vote pseudo' . la liste des pseudos : "+" ,".join(self.joueurs))
time.sleep(10)
self.temps = time.time()
if self.phase == 3 : 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...") serv.privmsg("#lg_putsch","la sorciere se leve...")
a = 0 bid = []
for f in self.joueurs : for f in self.joueurs :
if self.votes.count(f) > a : bid.append(str(self.votes.count(f)))
a = self.vote.count(f) a = max(bid)
self.victime = f c = 0
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") 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): ...@@ -262,7 +323,7 @@ class Boooob(ircbot.SingleServerIRCBot):
if self.voyanteok == 0 : if self.voyanteok == 0 :
serv.privmsg("#lg_putsch", "J'appelle la voyante") 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 self.voyanteok = 1
...@@ -271,24 +332,64 @@ class Boooob(ircbot.SingleServerIRCBot): ...@@ -271,24 +332,64 @@ class Boooob(ircbot.SingleServerIRCBot):
serv.privmsg("#lg_putsch", "Les loups se reveillent...") serv.privmsg("#lg_putsch", "Les loups se reveillent...")
self.loupsok = 1 self.loupsok = 1
if canal == "#lg_putsch_loups" : 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 : if message.split(" ")[1] in self.joueurs :
self.votes.append(message.split(" ")[1]) (self.votes).append(message.split(" ")[1])
self.avote.append(personne) (self.avote).append(personne)
serv.privmsg(canal, personne+" a voté pour "message.split(" ")[1]+"!") 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 :
if self.sorciereok == 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.voyanteok = 0
self.loupsok = 0 self.loupsok = 0
self.sorciereok = 0 self.sorciereok = 0
self.phase = 4
serv.privmsg("#lg_putsch", "La ou les victimes de cette nuit : "+self.victime)
self.victime = "" self.victime = ""
self.avote = [] self.avote = []
self.votes = [] self.votes = []
self.cansee= 1 self.cansee= 1
serv.privmsg("#lg_putsch", "Regaaaarde, le joour se leeeve") 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...")
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter