Exemple #1
0
 public void OuvrirFenetreEvenementCombat(EvenementCombat evenementALancer)
 {
     if (!OptionsJeu.Defaut.modeCombatsSimplifies)
     {
         evenementALancer.combat = fenetreCombat.CombatActuel;
     }
     if (!evenementALancer.illustration)
     {
         evenementALancer.illustration = fenetreCombat.IllustrationActuelle.sprite;
     }
     fenetreCombat.LancerCombat(evenementALancer);
     StartCoroutine(MAJCanvas());
 }
Exemple #2
0
    public void EnnemiFuit()
    {
        int hostilesTues = 0;

        for (int i = 0; i < hostile.nbrCombattant; i++)
        {
            int alea = Random.Range(0, 99);

            if (alea < 25)
            {
                hostilesTues++;
            }
        }

        EvenementCombat fuiteHostile = ScriptableObject.CreateInstance <EvenementCombat>();

        string texteInfobulle;
        string descriptionChoix;

        if (hostilesTues > 0)
        {
            texteInfobulle = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus)
                             + ">" + hostilesTues + " <color=\"white\">ennemis meurent";
            descriptionChoix         = "L'ennemi goute à nos pointes !";
            fuiteHostile.description = "L'ennemi a tenté de fuire, mais nous avons réussi à tuer certains d'entre eux avant !";
            fuiteHostile.titre       = "ENNEMIS RATTRAPES";
        }
        else
        {
            texteInfobulle           = "Maudits soient-ils !";
            descriptionChoix         = "Aucun ennemi ne meurt";
            fuiteHostile.description = "L'ennemi a fuit et nous avons été incapable de l'intercepter." +
                                       "A l'heure qu'il est ils doivent être en train de se rassembler pour préparer un nouvel assaut.";
            fuiteHostile.titre = "L'ENNEMI S'ENFUIT";
        }

        Evenement.Choix choix = new Evenement.Choix(descriptionChoix, texteInfobulle);

        choix.effets.AddListener(InterfaceEvenement.Defaut.FermerFenetreEvenement);
        choix.effets.AddListener(() => fuiteHostile.TuerEnnemis(hostilesTues));


        fuiteHostile.listeChoix.Add(choix);
        fuiteHostile.combat = this;
        fuiteHostile.LancerEvenement();
    }
Exemple #3
0
    public void joueurFuit()
    {
        int guerriersTues = 0;

        for (int i = 0; i < guerrier.nbrGuerrier; i++)
        {
            int alea = Random.Range(0, 99);

            if (alea < 25)
            {
                guerriersTues++;
            }
        }

        EvenementCombat fuiteJoueur = ScriptableObject.CreateInstance <EvenementCombat>();

        string texteInfobulle;
        string descriptionChoix;

        if (guerriersTues > 0)
        {
            texteInfobulle = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface)
                             + ">" + guerriersTues + " <color=\"white\">guerriers meurent";
            descriptionChoix        = "Nous avons subit des pertes";
            fuiteJoueur.description = "En plus de l'humilation de la défaite, certains de nos guerriers ont dû mourrir sans se battre. La fuite ne s'est pas bien passée";
            fuiteJoueur.titre       = "ECHEC DE LA FUITE";
        }
        else
        {
            texteInfobulle          = "Dans les fourrés !";
            descriptionChoix        = "Aucun guerriere ne meurt";
            fuiteJoueur.description = "Il semble que nos guerriers courent mieux qu'ils se battent." +
                                      "A défaut d'avoir remporté la victoire, la retraite a été un succès.";
            fuiteJoueur.titre = "RETRAITE REUSSIE";
        }

        Evenement.Choix choix = new Evenement.Choix(descriptionChoix, texteInfobulle);

        choix.effets.AddListener(InterfaceEvenement.Defaut.FermerFenetreEvenement);
        choix.effets.AddListener(() => fuiteJoueur.TuerGuerrier(guerriersTues));

        fuiteJoueur.listeChoix.Add(choix);
        fuiteJoueur.combat = this;
        fuiteJoueur.LancerEvenement();
    }
Exemple #4
0
    public void OuvrirFenetreEvenementCombat(Combat combat)
    {
        EvenementCombat eC = ListeEvenementCombat.Defaut.PiocherEvenement(combat);

        eC.combat = combat;
        fenetreCombat.LancerCombat(eC);
        fondNoir.SetActive(true);
        fenetreCombat.gameObject.SetActive(true);

        if (combat.Hostile.pion.revendication.EstPillard)
        {
            fenetreCombat.IllustrationActuelle.sprite = illuPillard;
        }
        else if (combat.Hostile.pion.revendication.EstPredateur)
        {
            fenetreCombat.IllustrationActuelle.sprite = illuPredateur;
        }
        else if (combat.Hostile.pion.revendication.EstMegaFaune)
        {
            fenetreCombat.IllustrationActuelle.sprite = illuMegaFaune;
        }

        StartCoroutine(MAJCanvas());
    }
Exemple #5
0
    private void EcrireEffets()
    {
        SerializedProperty effet;
        SerializedProperty cible;
        SerializedProperty methode;
        SerializedProperty argument;

        SerializedObject so = new SerializedObject(evenement);

        if (oih == 0)
        {
            //SerializedProperty it = so.GetIterator();
            //while (it.Next(true))
            //{ // or NextVisible, also, the bool argument specifies whether to enter on children or not
            //    Debug.Log(it.propertyPath);
            //}
            oih++;
        }

        for (int i = 0; i < evenement.listeChoix.Count; i++)
        {
            effet = so.FindProperty("listeChoix.Array.data[" + i + "].effets.m_PersistentCalls.m_Calls.Array");
            Evenement.Choix choix = evenement.listeChoix[i];
            InitialiserListeRetour(choix.retoursEffets, effet.arraySize);

            for (int j = 0; j < effet.arraySize; j++)
            {
                cible    = effet.FindPropertyRelative("data[" + j + "].m_Target");
                methode  = effet.FindPropertyRelative("data[" + j + "].m_MethodName");
                argument = effet.FindPropertyRelative("data[" + j + "].m_Arguments.m_FloatArgument");
                string          retour          = "";
                EvenementCombat evenementCombat = null;
                if (evenement is EvenementCombat)
                {
                    evenementCombat = (EvenementCombat)evenement;
                }

                if (methode.stringValue.Contains("Gain"))
                {
                    retour = methode.stringValue.Remove(0, 4);

                    if (argument.floatValue > 0)
                    {
                        retour += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">+"
                                  + argument.floatValue +
                                  "<color=\"white\">";
                    }
                    else if (argument.floatValue < 0)
                    {
                        retour += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                  + argument.floatValue +
                                  "<color=\"white\">";
                    }
                }
                else if (methode.stringValue.Contains("Fuir"))
                {
                    if (methode.stringValue.Contains("Pourcentage"))
                    {
                        retour += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                  + evenementCombat.baliseGuerPourc + argument.intValue + evenement.finBalise + " guerriers s'enfuient." +
                                  "<color=\"white\">";
                    }
                    else
                    {
                        argument = effet.FindPropertyRelative("data[" + j + "].m_Arguments.m_IntArgument");
                        retour  += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                   + evenementCombat.baliseGuer + argument.intValue + evenement.finBalise + " guerriers s'enfuient." +
                                   "<color=\"white\">";
                    }
                }
                else if (methode.stringValue.Contains("Tuer"))
                {
                    if (methode.stringValue.Contains("Guerrier"))
                    {
                        if (methode.stringValue.Contains("Pourcentage"))
                        {
                            retour += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                      + evenementCombat.baliseGuerPourc + argument.floatValue + evenement.finBalise + " guerriers tués" +
                                      "<color=\"white\">";
                        }
                        else
                        {
                            argument = effet.FindPropertyRelative("data[" + j + "].m_Arguments.m_IntArgument");
                            retour  += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                       + evenementCombat.baliseGuer + argument.intValue + evenement.finBalise + " guerriers tués" +
                                       "<color=\"white\">";
                        }
                    }
                    else if (methode.stringValue.Contains("Ennemis"))
                    {
                        if (methode.stringValue.Contains("Pourcentage"))
                        {
                            retour += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">"
                                      + evenementCombat.baliseEnnPourc + argument.floatValue + evenement.finBalise + " ennemis meurent" +
                                      "<color=\"white\">";
                        }
                        else
                        {
                            argument = effet.FindPropertyRelative("data[" + j + "].m_Arguments.m_IntArgument");
                            retour  += "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">"
                                       + evenementCombat.baliseEnn + argument.intValue + evenement.finBalise + " ennemis meurent" +
                                       "<color=\"white\">";
                        }
                    }
                }
                else if (methode.stringValue.Contains("LancerCombat"))
                {
                    retour = "Le combat commence";
                }
                else if (methode.stringValue.Contains("LooterEnnemi"))
                {
                    retour = "S'emparer du butin de l'ennemi";
                }
                else if (methode.stringValue.Contains("Piocher"))
                {
                    int index = 0;
                    retour = "";

                    ClusterEvenement cluster = (ClusterEvenement)cible.objectReferenceValue;
                    for (int g = 0; g < cluster.listeEvenements.Count; g++)
                    {
                        if (cluster.listeEvenements[g].descriptionRapide != "")
                        {
                            if (index > 0)
                            {
                                retour += "\n";
                            }
                            if (cluster.listeEvenements[g].proba <= 25)
                            {
                                retour += " - <color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                          + "Faible chance " + "<color=\"white\">"
                                          + cluster.listeEvenements[g].descriptionRapide;
                            }
                            else if (cluster.listeEvenements[g].proba > 25 && cluster.listeEvenements[g].proba <= 60)
                            {
                                retour += " - <color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteMoyenne) + ">"
                                          + "Chance moyenne " + "<color=\"white\">"
                                          + cluster.listeEvenements[g].descriptionRapide;
                            }
                            else
                            {
                                retour += " - <color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">"
                                          + "Forte chance " + "<color=\"white\">"
                                          + cluster.listeEvenements[g].descriptionRapide;
                            }
                            index++;
                        }
                    }
                }
                else if (cible.objectReferenceValue is Buff)
                {
                    Buff buff = (Buff)cible.objectReferenceValue;
                    retour = buff.Retours;
                }
                else if (methode.stringValue.Contains("Bonus"))
                {
                    if (methode.stringValue.Contains("Attaque"))
                    {
                        char pluriel = '\0';
                        if (math.abs(argument.intValue) != 1)
                        {
                            pluriel = 's';
                        }

                        if (argument.intValue > 0)
                        {
                            retour = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">+"
                                     + argument.intValue + "<color=\"white\">point" + pluriel + " d'attaque ";
                        }
                        else if (argument.intValue < 0)
                        {
                            retour = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                     + argument.intValue + "<color=\"white\">point" + pluriel + " d'attaque ";
                        }
                    }
                    else if (methode.stringValue.Contains("Defense"))
                    {
                        char pluriel = '\0';
                        if (Math.Abs(argument.intValue) != 1)
                        {
                            pluriel = 's';
                        }

                        if (argument.intValue > 0)
                        {
                            retour = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurTexteBonus) + ">+"
                                     + argument.intValue + "<color=\"white\">point" + pluriel + " de défense ";
                        }
                        else if (argument.intValue < 0)
                        {
                            retour = "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">"
                                     + argument.intValue + "<color=\"white\">point" + pluriel + " de défense ";
                        }
                    }
                }
                else
                {
                    continue;
                }
                choix.retoursEffets[j] = retour;
            }
        }
    }