예제 #1
0
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
예제 #2
0
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,"") 
예제 #3
0
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,"") 
예제 #4
0
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                       
예제 #5
0
 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()
예제 #6
0
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,"")
예제 #7
0
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                       
예제 #8
0
 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