def choixAmenagementMineur(partie,choix,possibilites,carte): carteJouee=possibilites[choix] joueur=partie.joueurQuiJoue() plateau=partie.plateau if carteJouee=="u3": #on ne fait pas de mineur partie.messagesPrincipaux.append([joueur.nom, "p16"]) elif hasattr(carte,"carteQuiMePorte"): joueur.mettreAJourLesRessources(util.ajouter(carte.cout,carteJouee.cout)) carte.carteQuiMePorte.changerEtat(partie.quiJoue) joueur.cartesDevantSoi[carteJouee.uid]=carteJouee joueur.cartesEnMain.remove(carteJouee) partie.messagesPrincipaux.append([joueur.nom,"p3",carteJouee.uid]) return (-1,carte,False,"") else: carteJouee.jouer() joueur.cartesDevantSoi[carteJouee.uid]=carteJouee joueur.cartesEnMain.remove(carteJouee) partie.messagesPrincipaux.append([joueur.nom,"p3",carteJouee.uid]) if carte.uid=="a1":#premier joueur + mineur partie.premierJoueur=joueur.id personnage=joueur.personnages.pop() joueur.personnagesPlaces.append(personnage) carte.mettrePersonnage(personnage) encore=False return (-1,carte,False,"") #on ne peux plus en jouer
def choixAbattreDesArbres(partie,choix,possibilites,carte): caseAbattre=possibilites[choix] joueur=partie.joueurQuiJoue() ferme=joueur.courDeFerme ferme.etat[caseAbattre].type="vide" joueur.mettreAJourLesRessources(util.ajouter(joueur.coutAbattre(),carte.cout)) carte.carteQuiMePorte.changerEtat(partie.quiJoue) partie.messagesPrincipaux.append("{} {} {}".format(partie.joueurQuiJoue().nom, 'abats des arbres en ',caseAbattre)) encore=False return (-1,carte,False,"")
def choixCouperLaTourbe(partie,choix,possibilites,carte): caseCouper=possibilites[choix] joueur=partie.joueurQuiJoue() ferme=joueur.courDeFerme ferme.etat[caseCouper].type="vide" joueur.mettreAJourLesRessources(util.ajouter(joueur.coutTourbe(),carte.cout)) carte.carteQuiMePorte.changerEtat(partie.quiJoue) partie.messagesPrincipaux.append("{} {} {}".format(partie.joueurQuiJoue().nom, 'coupe la tourbe en ',caseCouper)) encore=False return (-1,carte,False,"")
def possibilitesAmenagementMajeur(partie,carte,Fake=False): possibilites=[] joueur=partie.joueurQuiJoue() plateau=partie.plateau for k,c in plateau["majeurs"].items(): if c.visible: if joueur.jeRemplisLesConditions(c.conditionAchat): if joueur.jePeuxJouer(util.ajouter(c.cout,carte.cout)): possibilites.append(c) if (not Fake): partie.phraseChoixPossibles="Choissisez un aménagement majeur:" partie.sujet=carte return possibilites
def cout(self): cout = {'n': 0} #carte dispo if self.carteQuiMePorte.etat == -2: pass #carte prise par un autre elif self.carteQuiMePorte.etat != self.partie.quiJoue: cout['n'] += 2 elif self.carteQuiMePorte.etat == self.partie.quiJoue: jelaiprisemoi else: impossible coutTot = util.ajouter(self._cout, cout) return coutTot.copy()
def choixAmenagementMajeur(partie,choix,possibilites,carte): carteJouee=possibilites[choix] joueur=partie.joueurQuiJoue() plateau=partie.plateau joueur.cartesDevantSoi[carteJouee.uid]=carteJouee del plateau["majeurs"][carteJouee.uid] partie.messagesPrincipaux.append([joueur.nom,"p14",carteJouee.uid]) #si c'est une action speciale if hasattr( carte,"carteQuiMePorte"): joueur.mettreAJourLesRessources(util.ajouter(carte.cout,carteJouee.cout)) carte.carteQuiMePorte.changerEtat(partie.quiJoue) return (-1,carte,False,"") else: carteJouee.jouer() return (-1,carte,False,"")
def possibilitesAmenagementMineur(partie,carte,Fake=False): possibilites=[] joueur=partie.joueurQuiJoue() plateau=partie.plateau for c in joueur.cartesEnMain: #ici c'est condition achat... on ne veut pas appeler poss non vide de la carte à acheter if joueur.jeRemplisLesConditions(c.conditionAchat): #cout de la carte + de l'action (pour foire du travail) if joueur.jePeuxJouer(util.ajouter(c.cout,carte.cout)): possibilites.append(c) else: partie.messagesDetail.append(["p10",c.uid]) else: partie.messagesDetail.append(["p9",c.uid]) #si on appelle cette methode via l'action spéciale #on n'ajoute pas la possibilité u3 (ne rien faire) #ainsi on ne peux pas faire l'action spéciale si on ne peux construire aucun #ammenagement grace à possibiliteNonVide if not hasattr(carte,"carteQuiMePorte"): possibilites.append('u3') if (not Fake): partie.phraseChoixPossibles="Choissisez un aménagement mineur:" partie.sujet=carte return possibilites
for tup in planStr.split(','): try: case=tup.split(':')[0] type=tup.split(':')[1] except: planCorrect=False msg="format de plan invalide {}".format(planStr) return ('inputtext',carte,True,msg) #la case doit exister if case in ferme.etat.keys(): #et etre vide if ferme.etat[case].type=='vide': #p comme piece if(type=='P'): casesMaison.append(case) cout=util.ajouter(cout,joueur.prixDeLaPiece()) elif(type=='E'): casesEtables.append(case) cout=util.ajouter(cout,{'b':2}) else: planCorrect=False msg="type de case {} invalide... Soit soit 'E' soit 'P'".format(type) break else: planCorrect=False msg="la case {} n'est pas vide".format(case) break else: planCorrect=False msg="la case {} n'existe pas".format(case) break