Exemplo n.º 1
0
 def craftSort(cls, sortInfos):
     sortsLevels = []
     for i in range(1, 4):
         if str(i) not in sortInfos.keys():
             continue
         s = sortInfos[str(i)]
         tabEffets = []
         for effet in s["Effets"]:
             craftedEffet = Effet.effectFactory(effet)
             tabEffets.append(craftedEffet)
         tabEffetsCritiques = []
         for effet in s["EffetsCritiques"]:
             tabEffetsCritiques.append(Effet.effectFactory(effet))
         cc = int(s["Autres"]["Probabilit\u00e9 de coup critique"][:-1])
         if s["Autres"].get("Lancer en diagonale", "Non") == "Oui":
             typeLance = "diagonale"
         elif s["Autres"].get("Lancer en ligne", "Non") == "Oui":
             typeLance = "ligne"
         else:
             typeLance = "cercle"
         lvl = int(s["level"]) if s["level"] != "N/A" else 201
         sortsLevels.append(Sort(sortInfos["nom"], int(lvl), int(s["PA"]), int(s["PO_min"]), int(s["PO_max"]), tabEffets, tabEffetsCritiques, \
             cc, int(s["Autres"].get("Nb. de lancers par tour", 1)), int(s["Autres"].get("Nb. de lancers par tour par joueur", 1)), \
             int(s["Autres"].get("Nb. de tours entre deux lancers", 0)), int(1 if s["Autres"].get("Portée modifiable", "Non") == "Oui" else 0), \
                 typeLance, s["Autres"].get("Ligne de vue", "Non") == "Oui", desc=sortInfos["desc"], chaine=s["Autres"].get("Chaîné", "Oui") == "Oui"))
     print("RETURNED " + str(sortsLevels))
     return sortsLevels
Exemplo n.º 2
0
 def craftFromInfos(cls, infos):
     return EtatEffetSiRetraitEtat(infos["nom"], int(infos["debuteDans"]),
                                   int(infos["duree"]),
                                   Effet.effectFactory(infos["effet"]),
                                   infos["nomSort"], infos["quiLancera"],
                                   infos["etatAccepte"], None,
                                   infos["desc"])
Exemplo n.º 3
0
 def craftFromInfos(cls, infos):
     return EtatEffetSiNouvelEtat(infos["nom"], int(infos["debuteDans"]),
                                  int(infos["duree"]),
                                  Effet.effectFactory(infos["effet"]),
                                  infos["nomSort"], infos["quiLancera"],
                                  infos["nomEtatRequis"], None,
                                  infos["desc"])
Exemplo n.º 4
0
 def craftFromInfos(cls, infos):
     return EtatEffetSiTFGenere(infos["nom"], int(infos["debuteDans"]),
                                int(infos["duree"]),
                                Effet.effectFactory(infos["effet"]),
                                infos["nomSort"], infos["quiLancera"],
                                infos["cible"], infos["porteurEstTF"],
                                infos["sortInterdit"], None, infos["desc"])
Exemplo n.º 5
0
 def craftFromInfos(cls, infos):
     return EtatEffetSiPiegeDeclenche(infos["nom"],
                                      int(infos["debuteDans"]),
                                      int(infos["duree"]),
                                      Effet.effectFactory(infos["effet"]),
                                      infos["nomSort"], infos["quiLancera"],
                                      infos["cible"], None, infos["desc"])
Exemplo n.º 6
0
 def craftFromInfos(cls, infos):
     return EtatEffetSiSubit(infos["nom"], int(infos["debuteDans"]),
                             int(infos["duree"]),
                             Effet.effectFactory(infos["effet"]),
                             infos["nomSort"], infos["quiLancera"],
                             infos["cible"], infos["typeDeg"],
                             infos["provenance"], None, infos["desc"])
Exemplo n.º 7
0
 def craftFromInfos(cls, infos):
     effets_liste = []
     for info_effet in infos["effets"]:
         info_effet["kwargs"]["piege"] = True
         effets_liste.append(Effet.effectFactory(info_effet))
     return cls(infos["typeZoneStr"], infos["tailleZonePiege"],
                effets_liste, infos["nom"], infos["couleur_r"],
                infos["couleur_g"], infos["couleur_b"], **infos["kwargs"])
Exemplo n.º 8
0
 def craftSort(cls, sortInfos):
     sortsLevels = []
     for i in range(1, 4):
         if str(i) not in sortInfos.keys():
             continue
         s = sortInfos[str(i)]
         tabEffets = []
         for effet in s["Effets"]:
             craftedEffet = Effet.effectFactory(effet)
             tabEffets.append(craftedEffet)
         tabEffetsCritiques = []
         for effet in s["EffetsCritiques"]:
             tabEffetsCritiques.append(Effet.effectFactory(effet))
         cc = int(s["Autres"].get("Probabilit\u00e9 de coup critique",
                                  "0%")[:-1])
         if s["Autres"].get("Lancer en diagonale", "Non") == "Oui":
             typeLance = "diagonale"
         elif s["Autres"].get("Lancer en carré", "Non") == "Oui":
             typeLance = "carre"
         elif s["Autres"].get("Lancer en ligne", "Non") == "Oui":
             typeLance = "ligne"
         else:
             typeLance = "cercle"
         lvl = int(s["level"]) if s["level"] != "N/A" else 201
         newSort = Sort(
                 sortInfos["nom"], int(lvl), int(s["PA"]),\
                 int(s["PO_min"]), int(s["PO_max"]),\
                 tabEffets, tabEffetsCritiques,\
                 cc, int(s["Autres"].get("Nb. de lancers par tour", 1)),\
                 int(s["Autres"].get("Nb. de lancers par tour par joueur", 1)),\
                 int(s["Autres"].get("Nb. de tours entre deux lancers", 0)),\
                 int(1 if s["Autres"].get("Portée modifiable", "Non") == "Oui" else 0),\
                 typeLance, s["Autres"].get("Ligne de vue", "Non") == "Oui",\
                 description=sortInfos["desc"],\
                 chaine=s["Autres"].get("Chaîné", "Oui") == "Oui",\
                 lancableParJoueur=sortInfos.get("lancableParJoueur", True),\
                 nom_variante=sortInfos.get("nom_variante", None)\
             )
         if sortInfos["nom"] == "Activation de Brume":
             print("debg")
         sortsLevels.append(newSort)
     return sortsLevels
 def __init__(self, frameParent, heading, effects=[]):
     super().__init__(frameParent)
     self.parent = frameParent
     self.heading("#0", text=heading)
     self.effectsValues = {}
     for i, effect in enumerate(effects):
         if effect is not None:
             if isinstance(effect, Effet):
                 self.effectsValues[str(i)] = effect
                 self.insert('', 'end', str(i), text=str(effect))
             else:
                 effect_obj = Effet.effectFactory(effect)
                 self.effectsValues[str(i)] = effect_obj
                 self.insert('', 'end', str(i), text=str(effect_obj))
     self.bind("<Double-1>", self.onNormalEffectDoubleClick)
     self.bind("<Delete>", self.onNormalEffectDelete)
     self.bind("<Alt-Up>", self.onNormalEffectUp)
     self.bind("<Alt-Down>", self.onNormalEffectDown)
Exemplo n.º 10
0
    def openSpell(self, spellname):
        self.lastOpenSpell = spellname
        spell = self.sorts_values.get(spellname, {"desc": ""})
        self.imgLbl.configure(image=self.spellIcons.get(spellname))
        self.titleLbl.configure(text=spellname)
        self.descLbl.configure(text=spell.get("desc", ""))
        self.debutCombatValue.set(spell.get("debutCombat", False))
        self.lancableParJoueurValue.set(spell.get("lancableParJoueur", True))
        lastLevel = 0
        for i in range(1, 4):
            self.levelNotebook.tab(i - 1, text=str("N/A"))
            if str(i) not in spell.keys():
                spellAtLevel = {"Autres": {}, "level": "1"}
            else:
                spellAtLevel = spell[str(i)]
            self.paSpinboxs[str(i)].delete(0, "end")
            self.paSpinboxs[str(i)].insert(0, int(spellAtLevel.get("PA", 0)))
            self.poMaxSpinboxs[str(i)].delete(0, "end")
            self.poMaxSpinboxs[str(i)].insert(
                0, int(spellAtLevel.get("PO_max", 0)))
            self.poMinSpinboxs[str(i)].delete(0, "end")
            self.poMinSpinboxs[str(i)].insert(
                0, int(spellAtLevel.get("PO_min", 0)))
            self.poModValues[str(i)].set(1 if spellAtLevel["Autres"].get(
                "Portée modifiable", "Non") == "Oui" else 0)
            zone = Zones.TypeZone.factory(
                spellAtLevel["Autres"].get("Zone d'effet", ""),
                spell.get("desc", ""))
            tailleZone = zone.zonePO
            typeZone = zone.__class__.__name__.replace("TypeZone", '')
            listOfEffect = {}
            for children in self.normalEffectTables[str(i)].get_children():
                self.normalEffectTables[str(i)].delete(children)
            for children in self.criticalEffectTables[str(i)].get_children():
                self.criticalEffectTables[str(i)].delete(children)
            for effect_i, effect_infos in enumerate(
                    spellAtLevel.get("Effets", [])):
                craftedEffect = Effet.effectFactory(effect_infos,
                                                    tailleZone=tailleZone,
                                                    typeZone=typeZone,
                                                    desc=spell.get("desc", ""),
                                                    nomSort=spellname)
                listOfEffect[str(effect_i)] = craftedEffect
                self.normalEffectTables[str(i)].insert('',
                                                       'end',
                                                       str(effect_i),
                                                       text=str(craftedEffect))
            self.normalEffectTables[str(i)].effectsValues = listOfEffect
            listOfEffect = {}
            for effect_i, effect_infos in enumerate(
                    spellAtLevel.get("EffetsCritiques", [])):
                craftedEffect = Effet.effectFactory(effect_infos,
                                                    tailleZone=tailleZone,
                                                    typeZone=typeZone,
                                                    desc=spell.get("desc", ""),
                                                    nomSort=spellname)
                listOfEffect[str(effect_i)] = craftedEffect
                self.criticalEffectTables[str(i)].insert(
                    '', 'end', str(effect_i), text=str(craftedEffect))
            self.criticalEffectTables[str(i)].effectsValues = listOfEffect
            self.chaineValues[str(i)].set(
                1 if spellAtLevel["Autres"].get("Chaîné", "Oui") == "Oui" else
                0)  # N'existe pas sur le site officiel
            self.ldvValues[str(i)].set(1 if spellAtLevel["Autres"].get(
                "Ligne de vue", "Oui") == "Oui" else 0)
            if spellAtLevel["Autres"].get("Lancer en carré", "Non") == "Oui":
                self.typeLancerComboboxs[str(i)].set("carre")
            elif spellAtLevel["Autres"].get(
                    "Lancer en diagonale",
                    "Non") == "Oui":  # N'existe pas sur le site officiel
                self.typeLancerComboboxs[str(i)].set("diagonale")
            elif spellAtLevel["Autres"].get("Lancer en ligne", "Non") == "Oui":
                self.typeLancerComboboxs[str(i)].set("ligne")
            else:
                if "diagonale" in spell.get("desc", ""):
                    self.typeLancerComboboxs[str(i)].set("diagonale")
                else:
                    self.typeLancerComboboxs[str(i)].set("cercle")
            self.nbTourEntreDeuxLancerSpinboxs[str(i)].delete(0, "end")
            self.nbTourEntreDeuxLancerSpinboxs[str(i)].insert(
                0,
                int(spellAtLevel["Autres"].get(
                    "Nb. de tours entre deux lancers", "0")))
            self.nbLanceTourParJoueurSpinboxs[str(i)].delete(0, "end")
            self.nbLanceTourParJoueurSpinboxs[str(i)].insert(
                0,
                int(spellAtLevel["Autres"].get(
                    "Nb. de lancers par tour par joueur", "1")))
            self.nbLanceTourSpinboxs[str(i)].delete(0, "end")
            self.nbLanceTourSpinboxs[str(i)].insert(
                0,
                int(spellAtLevel["Autres"].get("Nb. de lancers par tour",
                                               "1")))
            self.probaCritSpinboxs[str(i)].delete(0, "end")
            self.probaCritSpinboxs[str(i)].insert(
                0,
                int(spellAtLevel["Autres"].get(
                    "Probabilit\u00e9 de coup critique", "0%")[:-1]))
            try:
                if lastLevel < int(spellAtLevel.get("level", "1")):
                    self.levelNotebook.tab(
                        i - 1,
                        text=" " + str(spellAtLevel.get("level", "1") + " "),
                        state="normal")
                    lastLevel = int(spellAtLevel.get("level", "1"))
            except ValueError:
                pass

        self.levelNotebook.select(0)