Esempio n. 1
0
        async private Task SimuleerAanvallenAsync(Wedstrijd currentWedstrijd)
        {
            //Zoveel aanvallen als er speler zijn
            for (int i = 0; i < currentWedstrijd.ThuisTeam.TeamLeden.Count + currentWedstrijd.UitTeam.TeamLeden.Count; i++)
            {
                Random rand = new Random();

                // bepaal welk team aanvalt
                int         kiesTeam     = rand.Next(201);
                VoetbalTeam teamAanval   = kiesTeam % 2 == 0 ? currentWedstrijd.ThuisTeam : currentWedstrijd.UitTeam;
                VoetbalTeam teamVerdedig = kiesTeam % 2 == 0 ? currentWedstrijd.UitTeam : currentWedstrijd.ThuisTeam;

                //kies aanvaller en verdediger

                Speler aanvaller  = teamAanval.TeamLeden[rand.Next(teamAanval.TeamLeden.Count)];
                Speler verdediger = teamVerdedig.TeamLeden[rand.Next(teamVerdedig.TeamLeden.Count)];

                //Doe aanval
                if (await AanvalAsync(aanvaller, verdediger))
                {
                    //Als aanval succesvol => registreer dan doelpunt en pas ervaring nieveau betrokken spelers aan
                    WedstrijdSecretariaat.RegistreerDoelpunt(aanvaller, teamAanval, verdediger, currentWedstrijd);
                    currentWedstrijd.Uitslag = "updatePropertyChanged"; // Slaat nergens op maar triggert wel het PropertyChanged event
                    Message.SetMessageBody($"{aanvaller.NaamToString} scoorde een doelpunt voor {teamAanval.NaamToString}");
                    Message.AddLineToMessageBody(FeedbackMessages.GetWedstrijdTussenStand(currentWedstrijd.Uitslag));
                }
                else
                {
                    //Als aanval niet succesvol =>  pas ervaring niveau betrokken spelers aan
                    WedstrijdSecretariaat.RegistreerRedding(aanvaller, verdediger);
                    Message.SetMessageBody($"{verdediger.NaamToString}({teamVerdedig.NaamToString}) stopte een aanval van {aanvaller.NaamToString}({teamAanval.NaamToString})");
                    Message.AddLineToMessageBody(FeedbackMessages.GetWedstrijdTussenStand(currentWedstrijd.Uitslag));
                }
                await Task.Delay(1500);
            }
        }