def getSorts(lvl): """@summary: charge les sorts de combat @return: List <Sort> """ # pylint: disable=unused-argument sorts = [] sorts.append( Sort.Sort( "Synchronisation", 0, 0, 0, 0, [ EffetDegats(100, 130, "feu", zone=Zones.TypeZoneCercleSansCentre(4), cibles_possibles="Ennemis|Lanceur", etat_requis_cibles="Telefrag"), EffetEtat(EtatBoostCaracFixe("Synchronisation", 0, 1, "PA", 2), zone=Zones.TypeZoneCercleSansCentre(4), cibles_possibles="Allies|Lanceur", etat_requis_cibles="Telefrag") ], [], 0, 99, 99, 0, 0, "cercle", False, chaine=False)) return sorts
def triggerAvantSubirDegats(self, cibleAttaque, niveau, totalPerdu, typeDegats, attaquant): """@summary: Un trigger appelé pour tous les états du joueur attaqué lorsque des dommages vont être subits. Redistribue une partie des dégâts qui vont être subit au corps-à-corps sur la zone définit. @cibleAttaque: le joueur qui va subir les dégâts @type: joueur @niveau: La grille de jeu @type: Niveau @totalPerdu: Le total de vie que le joueur va subir. @type: int @typeDeg: Le type de dégâts qui va être subit @type: string @attaquant: Le joueur à l'origine de l'attaque @type: Personnage""" if cibleAttaque.team != attaquant.team: distance = abs(attaquant.posX-cibleAttaque.posX) + \ abs(attaquant.posY-cibleAttaque.posY) if distance == 1: if typeDegats.lower() in ["terre", "eau", "air", "feu", "neutre"]: retour = int( ((self.pourcentage/100)*totalPerdu) + cibleAttaque.doRenvoi) sortContre = \ Sort.Sort("Contre", 0, 0, 0, 1, [EffetDegats(retour, retour, typeDegats, zone=Zones.TypeZoneCercle(self.tailleZone), cibles_possibles="Ennemis", bypassDmgCalc=True)], [], 0, 99, 99, 0, 0, "cercle", False) sortContre.lance(cibleAttaque.posX, cibleAttaque.posY, niveau, attaquant.posX, attaquant.posY)
def triggerApresSubirDegats(self, cibleAttaque, niveau, attaquant, totalPerdu): """@summary: Un trigger appelé pour tous les états du joueur attaqué lorsque des dommages vont être subits. Redistribue une partie des dégâts qui vont être subit dans la zone définit. @cibleAttaque: le joueur qui va subir les dégâts @type: joueur @niveau: La grille de jeu @type: Niveau @totalPerdu: Le total de vie que le joueur va subir. @type: int @attaquant: Le joueur à l'origine de l'attaque @type: Personnage""" totalPerdu = int(totalPerdu*(self.pourcentage/100.0)) effetRedistribution = EffetDegats(totalPerdu, totalPerdu, "renvoie", zone=Zones.TypeZoneCercle(self.tailleZone), bypassDmgCalc=True, cibles_possibles=self.cibles, cibles_exclues="Lanceur") niveau.lancerEffet(effetRedistribution, cibleAttaque.posX, cibleAttaque.posY, "Redistribution", cibleAttaque.posX, cibleAttaque.posY)
def getSortsDebutCombat(lvl): """@summary: charge les sorts de début combat @return: List <Sort> """ # pylint: disable=unused-argument sortsDebutCombat = [] sortsDebutCombat.append( Sort.Sort("Réduction des dégâts alliés", 0, 0, 0, 0, [ EffetEtatSelf( EtatModDegPer("Réduction des dégâts alliés", 0, -1, 50, provenance="Allies")) ], [], 0, 99, 99, 0, 0, "cercle", False)) sortsDebutCombat.append( Sort.Sort("Soin si subit", 0, 0, 0, 0, [ EffetEtatSelf( EtatEffetSiSubit("Soigne allié qui l'attaque", 0, -1, EffetSoinSelonSubit(100), "Soin de fiole", "cible", "attaquant", "", "Allies")) ], [], 0, 99, 99, 0, 0, "cercle", False)) sortsDebutCombat.append( Sort.Sort("Explose", 0, 0, 0, 0, [ EffetEtatSelf( EtatEffetSiMeurt( "Explose", 0, -1, EffetDegats(22, 26, "Terre", zone=Zones.TypeZoneCercleSansCentre(2)), "Soin de fiole", "lanceur", "mouru")) ], [], 0, 99, 99, 0, 0, "cercle", False)) sortsDebutCombat.append( Sort.Sort("Trop de stimulation!", 0, 0, 0, 0, [ EffetEtatSelf( EtatEffetSiNouvelEtat("Meurt si stimulé", 0, -1, EffetTue(), "Meurt si stimulé", "porteur", "Stimulé")) ], [], 0, 99, 99, 0, 0, "cercle", False)) return sortsDebutCombat
def getSortsDebutCombat(lvl): """@summary: charge les sorts de début combat @return: List <Sort> """ # pylint: disable=unused-argument sortsDebutCombat = [] activationFinDesTemps = Sort.Sort( "Fin des temps", 0, 0, 0, 0, [ EffetDegats(0, 0, "air", zone=Zones.TypeZoneCercle(3), cibles_possibles="Ennemis"), EffetTue(cibles_possibles="Lanceur") ], [], 0, 99, 99, 0, 0, "cercle", False, chaine=False) sortsDebutCombat.append( Sort.Sort( "Synchronisation", 0, 0, 0, 0, [ EffetEtatSelf( EtatEffetSiTFGenere("Synchronisation", 0, -1, [ EffetEtatSelfTF(EtatBoostBaseDegLvlBased( "toReplace", 0, -1, "Fin des temps", 190), "Rembobinage", cumulMax=1, etat_requis="!DejaBoost"), EffetEtatSelfTF(Etat("DejaBoost", 0, 1), "Rembobinage", remplaceNom=False, cumulMax=1) ], "Téléfrageur", "porteur", "porteur")), EffetEtatSelf( EtatEffetSiTFGenere( "Attente de la fin des temps", 0, -1, EffetEntiteLanceSort( "Synchro", activationFinDesTemps), "Téléfrageur", "porteur", "porteur", True, "Rembobinage")) ], [], 0, 99, 99, 0, 0, "cercle", False, description="""""", chaine=False)) return sortsDebutCombat