示例#1
0
    public IGUI GUI()
    {
        _previous = _tour;
        _tour     = _competition.Tours[_competition.TourActuel];
        if (_previous != _tour)
        {
            _vue = Vue(_tour);
        }

        IGUI res = this;

        GUILayout.BeginArea(new Rect(Screen.width * 0.05f, Screen.height * 0.1f, Screen.width * 0.9f, Screen.height * 0.8f));

        GUILayout.BeginVertical();

        GUILayout.Label(Session.Instance.Partie.Date.ToString("dd/MM/yy"), Styles.LabelNormal(20, Styles.Texte1), GUILayout.Width(Screen.width * 0.25f));

        #region BANDEAU_CENTRAL
        GUILayout.BeginHorizontal();


        //A gauche, classement ou matchs
        GUILayout.BeginVertical();
        _vue.Classement();

        //En bas à gauche, les buteurs

        if (GUILayout.Button("Avancer", Styles.ButtonNormal(15, Styles.Texte2), GUILayout.Width(Screen.width * 0.1f)))
        {
            while (!Session.Instance.Partie.Avancer())
            {
                ;                                        //Avance jusqu'à la prochaine interrpution de partie
            }
        }

        if (GUILayout.Button("Options", Styles.ButtonNormal(15, Styles.Texte2), GUILayout.Width(Screen.width * 0.1f)))
        {
            res = new GUI_Options();
        }

        GUILayout.Label("Buteurs", Styles.LabelNormal(20, Styles.Texte1), GUILayout.Width(Screen.width * 0.15f));

        _scroll2 = GUILayout.BeginScrollView(_scroll2);


        Dictionary <Joueur, int> buteurs = _competition.Buteurs();
        var item = from pair in buteurs orderby pair.Value descending select pair;
        int i    = 0;
        foreach (KeyValuePair <Joueur, int> kvp in item)
        {
            if (i < 10)
            {
                GUILayout.BeginHorizontal();
                if (GUILayout.Button(kvp.Key.Nom, Styles.LabelNormal(15, Styles.Texte2), GUILayout.Width(Screen.width * 0.1f)))
                {
                    res = new GUI_Joueur(kvp.Key);
                }
                Styles.AfficherLogo(kvp.Key.Club.Logo, 30, 0.03f);
                GUILayout.Label(kvp.Value.ToString(), Styles.LabelNormal(15, Styles.Texte2), GUILayout.Width(Screen.width * 0.05f));
                GUILayout.EndHorizontal();
            }

            i++;
        }

        GUILayout.EndScrollView();



        GUILayout.EndVertical();

        //Au centre : affichage des matchs à venir

        GUILayout.BeginVertical();

        List <Match> aVenir = _vue.ProchainsMatchs();

        aVenir.Sort(new MatchComparator());

        GUILayout.Label("Matchs à venir", Styles.LabelNormal(20, Styles.Texte1));
        if (aVenir.Count > 0)
        {
            res = AfficherMatchs(aVenir, res);
        }
        else
        {
            GUILayout.Label("Aucun match de prévu", Styles.LabelNormal(15, Styles.Texte2));
        }

        GUILayout.Space(Screen.height * 0.2f);

        //AU MILIEU EN BAS : CALENDRIER / RESULTATS
        Tour    t   = _competition.Tours[_index];
        VueTour vue = Vue(t);
        GUILayout.BeginHorizontal();
        List <Match> liste = new List <Match>();

        if (GUILayout.Button(Styles.FlecheGauche(), GUILayout.Width(40), GUILayout.Height(40)))
        {
            _journee = 1;
            if (_index > 0)
            {
                _index--;
            }
        }

        if (GUILayout.Button(Styles.FlecheGauche(), GUILayout.Width(40), GUILayout.Height(40)))
        {
            if (_journee > 1)
            {
                _journee--;
            }
        }

        GUILayout.Space(Screen.width * 0.3f);

        if (GUILayout.Button(Styles.FlecheDroite(), GUILayout.Width(40), GUILayout.Height(40)))
        {
            _journee++;
        }

        if (GUILayout.Button(Styles.FlecheDroite(), GUILayout.Width(40), GUILayout.Height(40)))
        {
            _journee = 1;
            if (_index + 1 < _competition.Tours.Count)
            {
                _index++;
            }
        }
        GUILayout.EndHorizontal();
        liste = vue.Calendrier();

        GUILayout.BeginVertical();
        GUILayout.Label("Calendrier complet", Styles.LabelNormal(20, Styles.Texte1));
        _scroll = GUILayout.BeginScrollView(_scroll);
        res     = AfficherMatchs(liste, res);
        GUILayout.EndScrollView();
        GUILayout.EndVertical();



        GUILayout.EndVertical();

        // A DROITE : ARTICLES
        GUILayout.BeginVertical();

        GUILayout.Label("Depeches", Styles.LabelNormal(20, Styles.Texte1));

        List <Article> articles = new List <Article>(_competition.Articles);
        articles.Sort(new ArticleComparator());
        foreach (Article a in articles)
        {
            GUILayout.Label(a.ToString(), Styles.LabelNewspaper(18, Styles.Texte2));
        }

        GUILayout.EndVertical();

        GUILayout.EndHorizontal();
        #endregion



        GUILayout.EndVertical();

        GUILayout.EndArea();

        return(res);
    }