Beispiel #1
0
        /// <summary>
        /// Prend en entrée l'information reçu par la base de données sous forme de GS Data
        /// Et attache à un objet un script contenant cette information.
        /// Puis ajoute la carte à un deck.
        /// </summary>
        /// <param name="newCarte">L'objet sur lequel mettre l'information</param>
        /// <param name="data">L'information</param>
        /// <param name="ID"></param>
        void GSDataToCard(GameObject newCarte, GSData data, string ID = "")
        {
            if (newCarte.GetComponent <CarteType>() != null)
            {
                newCarte.GetComponent <CarteType>().setTypeFromString(data.GetString("type"));
            }
            else
            {
                // Debug.Log("Le Composant n'a pas été trouvé");
            }
            if (data.GetString("type") == "entité" || data.GetString("type") == "entite")
            {
                // Dans le cas d'une carte entité
                Entite _entite = newCarte.AddComponent <Entite>();
                _entite.coutElementaire = data.GetInt("COUT").Value;
                _entite.STAT            = data.GetInt("STAT").Value;
                _entite.shortCode       = data.GetString("shortCode");
                _entite.Name            = data.GetString("name");
                // Il faut maintenant récupérer les éléments de la base de données qui sont sous la forme
                // Nature : Nature/Ascendance/Element
                string[] informationsNature = data.GetString("Nature").Split('/');
                try {
                    _entite.EntiteNature     = stringToNature(informationsNature[0], _entite.Name);
                    _entite.EntiteAscendance = stringToAscendance(informationsNature[1]);
                    _entite.EntiteElement    = stringToElement(informationsNature[2]);
                }
                catch (IndexOutOfRangeException e) {
                    Debug.LogWarning(e + "Il y a un probleme dans la base de données.");
                }
                _entite.stringToEffetList(data.GetString("Effet"));
                _entite.stringToEffetAstral(data.GetString("Astral"));
                _entite.stringToEffetMalefique(data.GetString("Malefique"));
                _entite.stringToEffetAstralString(data.GetString("AstralString"));
                _entite.stringToEffetMalefiqueString(data.GetString("MalefiqueString"));
                _entite.stringToEffetString(data.GetString("EffetString"));
                _entite.AllEffetsString          = data.GetString("Effet");
                _entite.AllEffetsAstralString    = data.GetString("Astral");
                _entite.AllEffetsMalefiqueString = data.GetString("Malefique");
                _entite.CoutAKA = data.GetInt("AKA").Value;

                if (data.GetString("oID") != null)
                {
                    /*
                     * Une fois que la carte a été instanciée sur le réseau, c'est la fonction
                     * GetCardByIdSparks qui est appelée.
                     * Elle recherche la carte dans la metaCollection et dans ce cas il n'y a pas de oID.
                     * Mais elle n'est plus nécessaire une fois la carte jouée et instanciée.
                     */
                    //Debug.Log(data.GetInt("card_ID").Value);
                    _entite.oID        = data.GetString("oID");
                    _entite.IDAllCards = data.GetInt("card_ID").Value;
                }
                if (ID != "")
                {
                    // L'oID de la carte peut être utile dans le cas où on aurait changé des élements sur la carte
                    // et qu'on voudrait récupérer les infos de base.
                    //Debug.Log("On set l'OID de la carte" + ID);
                    _entite.oID = ID;
                }
            }
            else if (data.GetString("type") == "emanation")
            {
                // Dans le cas d'une carte entité
                // TODO : On pourrait peut-être regrouper entité et emanation.
                Emanation _carte = newCarte.AddComponent <Emanation>();
                _carte.coutElementaire = data.GetInt("COUT").Value;
                _carte.STAT            = data.GetInt("STAT").Value;
                _carte.shortCode       = data.GetString("shortCode");
                _carte.Name            = data.GetString("name");
                string[] informationsNature = data.GetString("Nature").Split('/');
                try {
                    _carte.EntiteNature     = stringToNature(informationsNature[0]);
                    _carte.EntiteAscendance = stringToAscendance(informationsNature[1]);
                    _carte.EntiteElement    = stringToElement(informationsNature[2]);
                }
                catch (IndexOutOfRangeException e) {
                    Debug.LogWarning(e + "Il y a un probleme dans la base de données.");
                }
                _carte.stringToEffetList(data.GetString("Effet"));
                _carte.stringToEffetAstral(data.GetString("Astral"));
                _carte.stringToEffetMalefique(data.GetString("Malefique"));
                _carte.stringToEffetAstralString(data.GetString("AstralString"));
                _carte.stringToEffetMalefiqueString(data.GetString("MalefiqueString"));
                _carte.stringToEffetString(data.GetString("EffetString"));
                _carte.AllEffetsString          = data.GetString("Effet");
                _carte.AllEffetsAstralString    = data.GetString("Astral");
                _carte.AllEffetsMalefiqueString = data.GetString("Malefique");
                _carte.CoutAKA = data.GetInt("AKA").Value;

                if (data.GetString("oID") != null)
                {
                    /*
                     * Une fois que la carte a été instanciée sur le réseau, c'est la fonction
                     * GetCardByIdSparks qui est appelée.
                     * Elle recherche la carte dans la metaCollection et dans ce cas il n'y a pas de oID.
                     * Mais elle n'est plus nécessaire une fois la carte jouée et instanciée.
                     */
                    //Debug.Log(data.GetInt("card_ID").Value);
                    _carte.oID        = data.GetString("oID");
                    _carte.IDAllCards = data.GetInt("card_ID").Value;
                }
                if (ID != "")
                {
                    // L'oID de la carte peut être utile dans le cas où on aurait changé des élements sur la carte
                    // et qu'on voudrait récupérer les infos de base.
                    //Debug.Log("On set l'OID de la carte" + ID);
                    _carte.oID = ID;
                }
            }
            else if (data.GetString("type") == "sort")
            {
                // Dans le cas d'une carte sort
                Sort _sort = newCarte.AddComponent <Sort>();
                _sort.shortCode = data.GetString("shortCode");
                _sort.Name      = data.GetString("name");
                _sort.Niveau    = data.GetInt("Niveau").Value;
                //_sort.Effet = data.GetString("Effet");
                //_sort.Condition = data.GetString("Condition");
                _sort.ConditionSort = data.GetString("Condition");
                _sort.stringToEffetList(data.GetString("Effet"));
                _sort.AllEffetsString = data.GetString("Effet");
                _sort.stringToEffetString(data.GetString("EffetString"));

                if (data.GetString("oID") != null)
                {
                    _sort.IDAllCards = data.GetInt("card_ID").Value;
                    _sort.oID        = data.GetString("oID");
                }
                if (ID != "")
                {
                    // L'oID de la carte peut être utile dans le cas où on aurait changé des élements sur la carte
                    // et qu'on voudrait récupérer les infos de base.
                    //Debug.Log("On set l'OID de la carte" + ID);
                    _sort.oID = ID;
                }
                newCarte.tag = "Sort";
            }
            else if (data.GetString("type") == "assistance")
            {
                Assistance _assistance = newCarte.AddComponent <Assistance>();
                _assistance.shortCode = data.GetString("shortCode");
                _assistance.Name      = data.GetString("name");
                _assistance.Puissance = data.GetInt("STAT").Value;
                _assistance.stringToEffetList(data.GetString("Effet"));
                _assistance.AllEffetsString = data.GetString("Effet");
                _assistance.stringToEffetString(data.GetString("EffetString"));
                if (data.GetString("oID") != null)
                {
                    _assistance.IDAllCards = data.GetInt("card_ID").Value;
                    _assistance.oID        = data.GetString("oID");
                }
                if (ID != "")
                {
                    // L'oID de la carte peut être utile dans le cas où on aurait changé des élements sur la carte
                    // et qu'on voudrait récupérer les infos de base.
                    //Debug.Log("On set l'OID de la carte" + ID);
                    _assistance.oID = ID;
                }
                newCarte.tag = "Assistance";
            }
            else
            {
                throw new Exception("Type de carte inconnu");
            }
            deck.Add(newCarte);
        }