/// <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); }