예제 #1
0
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
예제 #2
0
 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)
예제 #4
0
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
예제 #5
0
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