Exemplo n.º 1
0
        private IEnumerator SetUpVisuelRoutine()
        {
            // Récupération de tous les attributs à changer.
            GameObject Nom;
            GameObject Puissance;
            GameObject TexteCarte;
            // Cout AKA ou rang pour les sorts.
            GameObject CoutAKA;

            GameObject FondCarte;

            while (GetComponent <Carte>().Name.Length <= 1)
            {
                // On attend l'arrivée des informations
                yield return(new WaitForSeconds(0.1f));
            }

            // On vérifie que tous les objets existent bien.
            try {
                Nom        = transform.Find("Name").gameObject;
                Puissance  = transform.Find("Puissance").gameObject;
                TexteCarte = transform.Find("TextCarte").gameObject;
                CoutAKA    = transform.Find("CoutAKA").gameObject;
                FondCarte  = transform.Find("FondCarte").gameObject;
            }
            catch (NullReferenceException) {
                Debug.LogError("Les objets enfants sont introuvables.\n Impossible de créer les attributs de carte");
                Destroy(this);
                yield break;
            }

            // On réactive les composants dans le cas où ils auraient été désactivés
            // Dans le cas d'un déplacement de l'adversaire par exemple
            Nom.SetActive(true);
            Puissance.SetActive(true);
            TexteCarte.SetActive(true);
            CoutAKA.SetActive(true);

            Nom.GetComponent <TextMesh>().text = SetUpString(GetComponent <Carte>().Name, 25);

            // Mise en place de la puissance de la carte. (/niveau pour les sorts).
            if (GetComponent <Carte>().IsEntite())
            {
                Puissance.GetComponent <TextMesh>().text = GetComponent <Entite>().getPuissance().ToString();
            }
            else if (GetComponent <Carte>().IsAssistance())
            {
                Puissance.GetComponent <TextMesh>().text = GetComponent <Assistance>().Puissance.ToString();
            }
            // Equivalent de la puissance pour les sorts => Niveau.
            else if (GetComponent <Carte>().IsSort())
            {
                Puissance.GetComponent <TextMesh>().text = GetComponent <Sort>().Niveau.ToString();
            }
            else
            {
                // Sinon on desative le TextMesh (ne devrait pas arriver normalement).
                Puissance.SetActive(false);
            }

            // Cout en AKA
            if (GetComponent <Carte>().IsEntite())
            {
                CoutAKA.GetComponent <TextMesh>().text = GetComponent <Entite>().CoutAKA.ToString();
            }
            else if (GetComponent <Carte>().IsSort())
            {
                CoutAKA.GetComponent <TextMesh>().text = GetComponent <Sort>().Rang.ToString();
            }
            else
            {
                CoutAKA.SetActive(false);
            }

            // Mise en place du texte de la carte.
            // A afficher en jeu? (si trop de texte).
            TexteCarte.GetComponent <TextMesh>().text = SetUpString(GetComponent <Carte>().GetInfoCarte(), 25);


            // On fait des vérifications dans l'éditeur.
#if (UNITY_EDITOR)
            if (!CheckTailleCarte())
            {
                Debug.LogError("Probleme avec le format de la carte");
            }
#endif

            FondCarte.GetComponent <SpriteRenderer>().color = GetCouleurCarte();

            VisuelOK = true;
        }