Esempio n. 1
0
 /// <summary>
 /// wird aufgerufen wenn eine runde beender ist um alles zu aktualisieren und eine neue
 /// runde zu öffnen falls nötig
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e">welche antwort gewählt wurde</param>
 private void Round_OnClose(object sender, int e)
 {
     if (index < 3)//antwort setzen
     {
         game.LastRound.Questions[index].AnswerPlayer = e;
     }
     index++;
     if (index < 3)//runde noch nicht zu ende
     {
         round = new GuiRound(game.LastRound.Questions[index], game);
         round.OnRoundClose += Round_OnClose;
         fragenGerangel.OpenScreen(round);
     }
     else//runde zu ende und spiel wird aktualisiert
     {
         GuiRound round = (GuiRound)sender;
         new Thread(() =>
         {
             Globals.APIManager.GetGame(game).Wait();
             fragenGerangel.OpenScreen(new GuiGameOverview(fragenGerangel, game));
         }).Start();
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Erstellt alle komponenten
 /// </summary>
 public override void Init()
 {
     Globals.APIManager.GetGame(game).Wait();
     if (!game.Active)//wenn spiel zu ende kann man nicht mehr spielen
     {
         Components.Add(new GuiButton("Zurück")
         {
             Size      = new Vector(200, 100),
             Location  = new Vector(-100, -150),
             RX        = 0.5f,
             RY        = 1,
             FontColor = Color.White
         });
         animation.Speed = 0.6f;
         base.Init();
         GetComponent <GuiButton>("Zurück").OnClick += (object sender, Vector e) =>
         {
             fragenGerangel.OpenScreen(new GuiMainScreen(fragenGerangel));
         };
         return;
     }
     //Falls der gegner dran ist kann man nicht spielen sonst schon
     Components.Add(new GuiButton(IsRemoteTurn() ? "Zurück" : "SPIELEN")
     {
         Size      = new Vector(200, 100),
         Location  = new Vector(-100, -150),
         RX        = 0.5f,
         RY        = 1,
         FontColor = Color.White,
         BackColor = IsRemoteTurn() ? Color.Gray : Color.LawnGreen
     });
     GetComponent <GuiButton>(IsRemoteTurn() ? "Zurück" : "SPIELEN").OnClick += (object sender, Vector e) =>
     {
         if (IsRemoteTurn())
         {
             fragenGerangel.OpenScreen(new GuiMainScreen(fragenGerangel));
             return;
         }
         Globals.APIManager.GetGame(game).Wait();
         if (game.LastRound.Category == null)//wenn die kategorie der runde noch nicht gesetzt wurde wird diese ausgewählt
         {
             GuiCategory category = new GuiCategory(game);
             bool        flag     = true;
             category.OnClose += (object s, EventArgs args) =>
             {
                 new Thread(() =>
                 {
                     if (!flag)
                     {
                         return;
                     }
                     //aktualisieren der kategorie und des spieles + aufrufen der runde
                     flag = false;
                     category.animation.Finished    = true;
                     category.animation.Incremental = true;
                     Globals.APIManager.ChooseCategory(game, category.Category + 1).Wait();
                     Task task = Globals.APIManager.GetGame(game);
                     task.Wait();
                     round = new GuiRound(game.LastRound.Questions[0], game);
                     round.OnRoundClose += Round_OnClose;
                     fragenGerangel.OpenScreen(round);
                 }).Start();
             };
             fragenGerangel.OpenScreen(category);
             return;
         }
         //öffnet die letze frage welche nicht beantwortet wurde in der runde
         int index = 0;
         for (int i = 0; i < game.LastRound.Questions.Length; i++)
         {
             if (game.LastRound.Questions[i].AnswerPlayer == -1)
             {
                 this.index = i;
                 index      = i;
                 break;
             }
         }
         round = new GuiRound(game.LastRound.Questions[index], game);
         round.OnRoundClose += Round_OnClose;
         fragenGerangel.OpenScreen(round);
     };
     animation.Speed = 0.6f;
     base.Init();
 }