| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- ##from __future__ import division
- ##import os
- def attributOrdreJeu():
- """renvoie l'attribut utilise pour definir l'ordre de jeu, None s'il n'existe pas"""
- return "init"
- def sensTriOrdreJeu():
- """renvoie le type de tri pour l'ordre de jeu: 0 = croissant / 1 = decroissant"""
- return 1
- def ordreAttributs():
- """renvoie la liste des attributs avec leur position relative"""
- lst = ["init", "PV", "TotalPV", "CA", "BBA", "Ref", "Vig", "Vol", "F", "D", "C", "I", "S", "Ch", "B_init", "Special"]
- return lst
- def listeAttributs():
- """renvoie un dictionnaire vide des attributs d'une creature ou joueur"""
- dico = {}
- ctrl = listeControle()
- for attr in ctrl:
- dico[attr] = ctrl[attr].defaut
- return dico
- def listeControle():
- """retourne la liste de controle des attributs de la creature ou joueur"""
- dico = {\
- "F": Attribut("Force", "F", "entier", 0, None, 10, True, False, False), \
- "D": Attribut("Dexterite", "D", "entier", 0, None, 10, True, False, False), \
- "C": Attribut("Constitution", "C", "entier", 0, None, 10, True, False, False), \
- "I": Attribut("Intelligence", "I", "entier", 0, None, 10, True, False, False), \
- "S": Attribut("Sagesse", "S", "entier", 0, None, 10, True, False, False), \
- "Ch": Attribut("Charisme", "Ch", "entier", 0, None, 10, True, False, False), \
- "Ref": Attribut("Reflexes", "Ref", "entier", None, None, 0, True, False, False), \
- "Vig": Attribut("Vigueur", "Vig", "entier", None, None, 0, True, False, False), \
- "Vol": Attribut("Volonte", "Vol", "entier", None, None, 0, True, False, False), \
- "TotalPV": Attribut("Points de vie totaux", "TotalPV", "entier", None, None, 0, True, False, False), \
- "PV": Attribut("Points de vie", "PV", "entier", None, None, 0, True, True, False), \
- "CA": Attribut("Capacite d'armure", "CA", "entier", 0, None, 10, True, False, False), \
- "B_init": Attribut("Bonus d'initiative", "B_init", "entier", None, None, 0, True, False, False), \
- "init": Attribut("Initiative", "B_init", "entier", None, None, 10, True, True, False), \
- "BBA": Attribut("Bonus de base a l'attaque", "BBA", "entier", 0, None, 0, True, False, False), \
- "Special": Attribut("Special", "Special", "texte", 0, None, "", True, False, False)
- }
- return dico
- def attribut(nomCourt):
- """renvoie l'attribut demande"""
- dico = listeControle()
- if nomCourt in dico:
- retour = dico[nomCourt]
- else:
- retour = None
- return retour
- def ordreAttributsAttaques():
- """renvoie la liste des attributs avec leur position relative"""
- lst = ["BA", "Dgts", "Crit.", "PorteeS", "DD", "svg", "Special"]
- return lst
- def listeAttributsAttaques():
- """renvoie un dictionnaire vide des attributs d'une creature ou joueur"""
- dico = {}
- ctrl = listeControleAttaques()
- for attr in ctrl:
- dico[attr] = ctrl[attr].defaut
- return dico
- def listeControleAttaques():
- """retourne la liste caracteristiques des attaques de la creature / joueur"""
- dico = {\
- "BA": Attribut("Bonus d'attaque", "BA", "entier", None, None, 0, True, False, False), \
- "Dgts": Attribut("Degats", "Dgts", "texte", None, None, "", True, False, False), \
- "Crit.": Attribut("Critique", "Crit.", "texte", None, None, "20/x2", True, False, False), \
- "PorteeS": Attribut("Portee", "PorteeS", "texte", 0, None, "", True, False, False), \
- "DD": Attribut("DD", "DD", "entier", None, None, 10, True, False, False), \
- "svg": Attribut("Type de sauvegarde", "svg", "texte", None, None, "", True, False, False), \
- "Special": Attribut("Special", "special", "texte", None, None, "", True, False, False)
- }
- return dico
- def attributAttaque(nomCourt):
- """renvoie l'attribut d'attaque demande"""
- dico = listeControleAttaques()
- if nomCourt in dico:
- retour = dico[nomCourt]
- else:
- retour = None
- return retour
- class Attribut():
- """attribut des pions et personnages"""
- def __init__(self, nom, nomCourt, typ, mini, maxi, defaut, afficherCombat, combatSeulement, joueursSeulement):
- """initialisation de l'attribut"""
- self.nom = nom
- self.nomCourt = nomCourt
- self.typ = typ
- self.mini = mini #tests sur les valeurs pour les nombres, sur les longueurs pour les textes
- self.maxi = maxi
- self.defaut = defaut
- self.afficherCombat = afficherCombat #afficher dans les tables de combat
- self.combatSeulement = combatSeulement #afficher dans les tables de combat seulement
- self.joueursSeulement = joueursSeulement #n'afficher que chez les joueurs
- self.valeur = defaut
- def controler(self, val):
- """renvoie la la valeur entrée si celle ci est valide pour cet attribut, None sinon"""
- if self.typ == "entier":
- try:
- retour = long(val)
- except:
- retour = None
- if retour != None:
- if self.mini != None:
- if not retour >= self.mini:
- retour = None
- if self.maxi != None:
- if not retour <= self.maxi:
- retour = None
- elif self.typ == "booleen":
- try:
- retour = bool(val)
- except:
- retour = None
- else:
- try:
- retour = str(val)
- except:
- retour = None
-
- if retour != None:
- if self.mini != None:
- if not len(retour) >= self.mini:
- retour = None
- if self.maxi != None:
- if not len(retour) <= self.maxi:
- retour = None
- return retour
- if __name__ == "__main__":
- val = "3"
- dico = listeControleAttaques()
- print(dico["svg"].controler(val))
-
|