/// <summary> /// Recupérer les cartes qui correspondent à un type précis. /// </summary> /// <param name="typeCarte"></param> /// <returns></returns> public List <GameObject> CartesCorrespondantesType(CarteType.Type typeCarte) { Dictionary <string, List <GameObject> > uniqueCards = getUniqueCards(); List <GameObject> listeCartes = new List <GameObject>(); foreach (KeyValuePair <string, List <GameObject> > cartesUniques in uniqueCards) { if ((cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Entite) && typeCarte == CarteType.Type.ENTITE) || (cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Sort) && typeCarte == CarteType.Type.SORT) || (cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Assistance) && typeCarte == CarteType.Type.ASSISTANCE)) { listeCartes.Add(cartesUniques.Value[0]); } } return(listeCartes); }
public void ResetFiltres() { filtreAscendance = Entite.Ascendance.NONE; filtreElementaire = Entite.Element.NONE; filtreType = CarteType.Type.AUCUN; }
/// <summary> /// Filtrer les cartes selon un type d'entité. /// Methode appelé par un bouton de sélection. /// </summary> /// <param name="type"></param> public void FiltreParType(string type) { CarteType.Type typeCarte = CarteType.Type.AUCUN; GameObject BoutonPresse = null; switch (type) { case "entite": typeCarte = CarteType.Type.ENTITE; BoutonPresse = GameObject.Find("FiltreEntite"); break; case "sort": typeCarte = CarteType.Type.SORT; BoutonPresse = GameObject.Find("FiltreSort"); break; case "assistance": typeCarte = CarteType.Type.ASSISTANCE; BoutonPresse = GameObject.Find("FiltreAssistance"); break; default: Debug.LogError("Il y a une erreur dans le type d'entité\n" + "Type d'entité inexistant."); return; } FiltreType = typeCarte; if (BoutonPresse.GetComponent <Image>().color == Color.green) { // Le filtre est actif // on le desactive BoutonPresse.GetComponent <Image>().color = Color.white; GetComponent <GameManagerManageCards>().ReorganizeCardsInAllCardsUnique(); FiltreType = CarteType.Type.AUCUN; } else { // Le filtre n'est pas actif. BoutonPresse.GetComponent <Image>().color = Color.green; // On desactive les couleurs d'autres filtres si ils étaient actifs GameObject Filtres = GameObject.Find("FiltresCartes"); for (int i = 0; i < Filtres.transform.childCount; i++) { if (Filtres.transform.GetChild(i).gameObject != BoutonPresse) { Filtres.transform.GetChild(i).GetComponent <Image>().color = Color.white; } } List <GameObject> CartesTypes = CartesCorrespondantesType(typeCarte); Debug.Log("Ce filtrage a amené " + CartesTypes.Count + " cartes"); PutCardsInScrollView("allCards", CartesTypes, true); if (type == "entite") { StartCoroutine(AfficherFiltresElementaires()); } ResetFiltres(); filtreType = typeCarte; } }