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
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"])
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"])
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"])
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"])
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"])
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"])
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)
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)