Пример #1
0
    private void NormaliserProba()
    {
        cluster = (ClusterEvenement)target;

        float denominateur = 0;

        foreach (ClusterEvenement.EvenementProbable proba in cluster.listeEvenements)
        {
            denominateur += proba.proba;
        }
        if (denominateur == 0)
        {
            for (int i = 0; i < cluster.listeEvenements.Count; i++)
            {
                ClusterEvenement.EvenementProbable evement = cluster.listeEvenements[i];
                evement.proba = 100 / cluster.listeEvenements.Count;
                cluster.listeEvenements[i] = evement;
            }
        }
        else
        {
            for (int i = 0; i < cluster.listeEvenements.Count; i++)
            {
                ClusterEvenement.EvenementProbable evement = cluster.listeEvenements[i];
                evement.proba = (evement.proba * 100) / denominateur;
                cluster.listeEvenements[i] = evement;
            }
        }
    }
Пример #2
0
    protected override void OnHeaderGUI()
    {
        base.OnHeaderGUI();

        NormaliserProba();
        cluster = (ClusterEvenement)target;
        if (GUILayout.Button("SAUVEGARDER"))
        {
            Sauvegarder();
        }
    }
Пример #3
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;
            }
        }
    }