예제 #1
0
        //In deze methode wordt de superaanval uitgevoerd. De aanval wordt uitgevoerd op basis van de boolean SpelerAanZet en een randomgetal van 1 tot 4. Indien
        //de boolean true is (aanval Speler) en het randomgetal gelijk is aan 1 (1/4 kans) wordt de damage die de Speler aanricht (wapen damage maal 2) in HP
        //afgehaald van het totaal van de CPU. Indien de boolean false is (aanval CPU) en het randomgetal gelijk is aan 1 (1/4 kans) wordt de damage die de CPU
        //aanricht (wapen damage maal 2) in HP afgehaald van het totaal van de Speler.
        public IActionResult Superaanval()
        {
            Random rnd            = new Random();
            int    rndsuperaanval = rnd.Next(1, 5);

            Gevecht   gevecht   = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));
            Personage personage = JsonConvert.DeserializeObject <Personage>(HttpContext.Session.GetString("Personage"));

            if (gevecht.SpelerAanZet)
            {
                if (rndsuperaanval == 1)
                {
                    gevecht.CPU.HP     -= gevecht.Speler.Wapen.HP * 2 + personage.Damage;
                    gevecht.SuperAanval = Gevecht.Superaanval.Geslaagd;
                }
                else
                {
                    gevecht.SuperAanval = Gevecht.Superaanval.Mislukt;
                }
            }
            else
            {
                if (rndsuperaanval == 1)
                {
                    gevecht.Speler.HP  -= gevecht.CPU.Wapen.HP * 2;
                    gevecht.SuperAanval = Gevecht.Superaanval.Geslaagd;
                }
                else
                {
                    gevecht.SuperAanval = Gevecht.Superaanval.Mislukt;
                }
            }
            HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            return(RedirectToAction("ControlerenGevecht"));
        }
예제 #2
0
        //In deze methode worden de beloningen aan de Speler toegekend op basis van het resultaat van het gevecht. Indien de Speler levend is en de CPU dood
        //(Speler heeft gewonnen) verdient de Speler een maximaal aantal Geld en XP. Indien de Speler dood is en de CPU levend (CPU heeft gewonnen) verdient
        //de Speler een minimaal aantal Geld en XP. Verder zorgt de methode er nog voor dat de gebruiker terug wordt gestuurd naar de Gamewereld en krijgt
        //de Speler in een MessageBox zijn beloningen te zien.
        public IActionResult Beloningen()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.CPU.Geld == gevecht.CPU.Geld && gevecht.CPU.XP == gevecht.CPU.XP)
            {
                if (gevecht.SpelerLevend && !gevecht.CPULevend)
                {
                    gevecht.Speler.Geld += gevecht.CPU.Geld;
                    gevecht.Speler.XP   += gevecht.CPU.XP;
                    gevechtrepo.GevechtBeëindigd(gevecht.Speler.XP, gevecht.Speler.Geld, gevecht.Speler.ID);
                    gevecht.Beloningen = "GEWONNNEN! Je hebt " + gevecht.CPU.Geld + " geld en " + gevecht.CPU.XP + " XP verdiend!";
                }
                else if (!gevecht.SpelerLevend && gevecht.CPULevend)
                {
                    gevecht.Speler.Geld += gevecht.CPU.Geld / 2;
                    gevecht.Speler.XP   += gevecht.CPU.XP / 2;
                    gevechtrepo.GevechtBeëindigd(gevecht.Speler.XP, gevecht.Speler.Geld, gevecht.Speler.ID);
                    gevecht.Beloningen = "VERLOREN! Je hebt " + (gevecht.CPU.Geld / 2) + " geld en " + (gevecht.CPU.XP / 2) + " XP verdiend!";
                }
                gevecht.GameGestart = false;
                gevecht.SuperAanval = Gevecht.Superaanval.Geen;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Gamewereld", "Game"));
            }
            else
            {
                TempData["Error"]   = "Ongeldige beloningen!";
                gevecht.GameGestart = false;
                gevecht.SuperAanval = Gevecht.Superaanval.Geen;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Gevechtwereld"));
            }
        }
예제 #3
0
        public GevechtDetailViewModel ViewModelFromGevecht(Gevecht g)
        {
            GevechtDetailViewModel vm = new GevechtDetailViewModel()
            {
                Speler = g.Speler,
                CPU    = g.CPU
            };

            return(vm);
        }
예제 #4
0
        public Gevecht ViewModelToGevecht(GevechtDetailViewModel vm)
        {
            Gevecht g = new Gevecht()
            {
                Speler = vm.Speler,
                CPU    = vm.CPU
            };

            return(g);
        }
예제 #5
0
        public IActionResult GameMenu()
        {
            int     userId  = Convert.ToInt32(HttpContext.Session.GetInt32("CurrentUserID"));
            Gevecht gevecht = new Gevecht();

            gevecht.GameGestart = false;
            HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            Personage personage         = personagerepo.GetPersonageBySpelerId(userId);
            PersonageDetailViewModel vm = personagecvt.ViewModelFromPersonage(personage);

            return(View(vm));
        }
예제 #6
0
        //In deze methode vindt de aanvalkeuze van de CPU plaats. Dit gebeurt op basis van de HP van de CPU. Indien de HP van de CPU gelijk of
        //groter dan 10 is voert de CPU de superaanval uit. Als dit niet het geval is voert de CPU de normale aanval uit.
        public IActionResult AanvalKeuzeCPU()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.CPU.HP >= 10)
            {
                return(RedirectToAction("Superaanval"));
            }
            else
            {
                return(RedirectToAction("Aanval"));
            }
        }
예제 #7
0
        //In deze methode vindt de gevechtkeuze van de CPU plaats. Dit gebeurt op basis van het HP van de CPU en de boolean PotionCPUGebruikt.
        //Indien het HP van de CPU gelijk of groter dan 5 is en de boolean PotionCPUGebruikt false is gaat de CPU in de verdediging. Als dit
        //niet het geval is gaat de CPU in de aanval.
        public IActionResult GevechtKeuzeCPU()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.CPU.HP <= 5 && !gevecht.PotionCPUGebruikt)
            {
                return(RedirectToAction("Verdediging"));
            }
            else
            {
                return(RedirectToAction("AanvalKeuzeCPU"));
            }
        }
예제 #8
0
        public Gevecht VulGevecht(Speler speler, Cpu cpu)
        {
            Gevecht gevecht = new Gevecht();

            gevecht.Speler               = VulSpeler(speler);
            gevecht.CPU                  = VulCPU(cpu);
            gevecht.SpelerAanZet         = true;
            gevecht.PotionSpelerGebruikt = false;
            gevecht.PotionCPUGebruikt    = false;
            gevecht.SpelerLevend         = true;
            gevecht.CPULevend            = true;
            gevecht.GameGestart          = true;

            return(gevecht);
        }
예제 #9
0
        //In deze methode wordt de aanval uitgevoerd. De aanval wordt uitgevoerd op basis van de boolean SpelerAanZet. Indien de boolean true is (aanval Speler)
        //wordt de damage die de Speler aanricht in HP afgehaald van het totaal van de CPU. Indien de boolean false is (aanval CPU) wordt de damage die de
        //CPU aanricht in HP afgehaald van het totaal van de Speler.
        public IActionResult Aanval()
        {
            Gevecht   gevecht   = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));
            Personage personage = JsonConvert.DeserializeObject <Personage>(HttpContext.Session.GetString("Personage"));

            if (gevecht.SpelerAanZet)
            {
                gevecht.CPU.HP -= gevecht.Speler.Wapen.HP + personage.Damage;
            }
            else
            {
                gevecht.Speler.HP -= gevecht.CPU.Wapen.HP;
            }
            HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            return(RedirectToAction("ControlerenGevecht"));
        }
예제 #10
0
        //In deze Methode wordt de bepaald of de Speler of CPU aanzet is. Als de speler aanzet is, wordt de boolean SpelerAanZet false.
        //Als de CPU aanzet is, wordt de boolean SpelerAanZet true.
        public IActionResult VolgendeBeurt()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.SpelerAanZet)
            {
                gevecht.SpelerAanZet = false;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Gevechtwereld"));
            }
            else
            {
                gevecht.SpelerAanZet = true;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Gevechtwereld"));
            }
        }
예제 #11
0
        //In deze methode wordt de verdediging uitgevoerd. De verdediging wordt uitgevoerd op basis van de boolean SpelerAanZet. Indien de boolean true is
        //(verdediging Speler) wordt de HP van de healthpot opgeteld bij het totaal HP van de Speler. Indien de boolean false is (verdediging CPU) wordt de
        //HP van de healthpot opgeteld bij het totaal HP van de CPU.
        public IActionResult Verdediging()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.SpelerAanZet && !gevecht.PotionSpelerGebruikt)
            {
                gevecht.Speler.HP           += gevecht.Speler.Potion.HP;
                gevecht.PotionSpelerGebruikt = true;
            }
            else if (!gevecht.SpelerAanZet && !gevecht.PotionCPUGebruikt)
            {
                gevecht.CPU.HP           += gevecht.CPU.Potion.HP;
                gevecht.PotionCPUGebruikt = true;
            }
            HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            return(RedirectToAction("ControlerenGevecht"));
        }
예제 #12
0
        //In deze methode wordt het gevecht gecontroleerd. Het controleren van het gevecht wordt gedaan op basis van de HP's van zowel de Speler, als de CPU. Indien
        //het totaal HP van de Speler gelijk aan of kleiner dan 0 is, is het gevecht voorbij en heeft de CPU het gevecht gewonnen. Indien het totaal HP van de CPU
        //gelijk aan of kleiner dan 0 is, is het gevecht voorbij en heeft de Speler het gevecht gewonnen. Zolang beide partijen meer dan 0 HP hebben gaat het
        //gevecht gewoon door en gaat het systeem naar VolgendeBeurt.
        public IActionResult ControlerenGevecht()
        {
            Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));

            if (gevecht.Speler.HP <= 0)
            {
                gevecht.SpelerLevend = false;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Beloningen"));
            }
            else if (gevecht.CPU.HP <= 0)
            {
                gevecht.CPULevend = false;
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
                return(RedirectToAction("Beloningen"));
            }
            else
            {
                return(RedirectToAction("VolgendeBeurt"));
            }
        }
예제 #13
0
        public IActionResult Gamewereld()
        {
            if (HttpContext.Session.GetString("Gevecht") == null)
            {
                Gevecht gevecht = new Gevecht();
                gevecht.Beloningen = "";
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            }
            int                 userId = Convert.ToInt32(HttpContext.Session.GetInt32("CurrentUserID"));
            Speler              speler = spelerrepo.GetSpelerByID(userId);
            List <Cpu>          cpus   = cpurepo.GetAllCPUs();
            Game                game   = equipDomein.VulGame(speler, cpus);
            GameDetailViewModel vm     = gamecvt.ViewModelFromGame(game);

            if (JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht")).Beloningen != "")
            {
                Gevecht gevecht = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));
                ViewBag.Beloningen = gevecht.Beloningen;
                gevecht.Beloningen = "";
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            }
            return(View(vm));
        }
예제 #14
0
        //In de methode Gevechtwereld worden Sessions geset indien deze nog gelijk zijn aan null. Vervolgens worden de Sessions geget en deze worden omgezet naar Models.
        //Ook worden de ViewBags gevuld indien nodig en worden deze meegegeven aan de View.
        public IActionResult Gevechtwereld(int id)
        {
            int userId = Convert.ToInt32(HttpContext.Session.GetInt32("CurrentUserID"));

            if (HttpContext.Session.GetString("Gevecht") == null || !JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht")).GameGestart)
            {
                Speler speler = spelerrepo.GetSpelerByID(userId);
                Cpu    cpu    = cpurepo.GetCPUById(id);
                HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(equipDomein.VulGevecht(speler, cpu)));
                HttpContext.Session.SetString("Personage", JsonConvert.SerializeObject(personagerepo.GetPersonageBySpelerId(speler.ID)));
            }

            Gevecht gevecht           = JsonConvert.DeserializeObject <Gevecht>(HttpContext.Session.GetString("Gevecht"));
            GevechtDetailViewModel vm = gevechtcvt.ViewModelFromGevecht(gevecht);

            vm.SpelerAanZet         = gevecht.SpelerAanZet;
            vm.PotionSpelerGebruikt = gevecht.PotionSpelerGebruikt;

            if (gevecht.SuperAanval == Gevecht.Superaanval.Geslaagd)
            {
                ViewBag.SuperAanval = "Superaanval is geslaagd!";
                gevecht.SuperAanval = Gevecht.Superaanval.Geen;
            }
            else if (gevecht.SuperAanval == Gevecht.Superaanval.Mislukt)
            {
                ViewBag.SuperAanval = "Superaanval is mislukt!";
                gevecht.SuperAanval = Gevecht.Superaanval.Geen;
            }

            if (gevecht.Beloningen != "")
            {
                ViewBag.Beloningen = gevecht.Beloningen;
            }
            HttpContext.Session.SetString("Gevecht", JsonConvert.SerializeObject(gevecht));
            return(View(vm));
        }
예제 #15
0
 public bool VerwijderGevecht(Gevecht gevecht)
 {
     return(false);
 }
예제 #16
0
 public bool VoegGevechtToe(Gevecht gevecht)
 {
     return(false);
 }