public IActionResult Generate(int stufe, int intelligenz, int glueck, Klasse klasse)
        {
            if (glueck < -3 || glueck > 3)
            {
                return(RedirectToAction(nameof(Index)));
            }

            Random random        = new Random();
            var    würfelFactory = new WürfelFactory(random);
            var    zauberFactory = new ZauberFactory(würfelFactory);

            var zauberbuchVM = new ZauberbuchViewModel
            {
                Glueck      = glueck,
                Intelligenz = intelligenz,
                Stufe       = stufe,
                Klasse      = klasse,
            };

            zauberbuchVM.Zauberbuch = klasse switch
            {
                Klasse.Zauberer => zauberFactory.ZauberkundigenZauberErstellen(stufe, glueck, intelligenz, random),
                Klasse.Kleriker => zauberFactory.KlerikerZauberErstellen(stufe, glueck, false, random),
                Klasse.KlerikerLaunen => zauberFactory.KlerikerZauberErstellen(stufe, glueck, true, random),
                Klasse.Elf => zauberFactory.ElfenZauberErstellen(stufe, intelligenz, random),
                _ => throw new ArgumentOutOfRangeException(nameof(klasse))
            };

            return(View(zauberbuchVM));
        }
    }
Exemplo n.º 2
0
        public Kleriker(int seed, int charakterNummer, int stufe, Gesinnung gesinnung) : base(seed, charakterNummer, stufe, 8, gesinnung)
        {
            var würfelFactory = new WürfelFactory(random);
            var zauberFactory = new ZauberFactory(würfelFactory);

            Zauberbuch = zauberFactory.KlerikerZauberErstellen(stufe, Character.Attribute.Glück.Modifikator, false, random);

            var startGold = base.wf.W(20, 4) + stufe switch
            {
                1 => 0,
                2 => 400,
                _ => 1300,
            };

            Startkapital = $"{startGold} GM";
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var zauberListe = ZauberTemplate.ZauberDict.Value.SelectMany(x => x.Value.SelectMany(y => y.Value)).ToList();

            foreach (var z in zauberListe)
            {
                z.Beschreibung = string.Join(" ", z.Beschreibung.Split('\n', StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()));

                foreach (var m in z.Manifestationen)
                {
                    m.Beschreibung = string.Join(" ", m.Beschreibung.Split('\n', StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()));
                }
            }

            ZauberTemplate.Save(zauberListe);
            //var zt = new ZauberTemplate
            //{
            //    Beschreibung = "Beschreibung",
            //    Manifestationen = new List<Manifestation> { new Manifestation { Beschreibung = "Manifestation" } },
            //    Name = "Zauber",
            //    Seite = "13",
            //    Typ = Zaubertyp.Zauberkundigenzauber,
            //    Wurf = 12
            //};

            //ZauberTemplate.Save(new List<ZauberTemplate>() { zt });

            var wf            = new WürfelFactory(new Random());
            var zauberFactory = new ZauberFactory(wf);

            zauberFactory.ZauberkundigenZauberErstellen(6, 1, 12, new Random());

            var würfel             = new WürfelFactory(new Random());
            var berufWürfel        = würfel.W100;
            var zeichenWürfel      = würfel.W30;
            var attributWürfel     = würfel._3W6;
            var trefferWürfel      = würfel.W4;
            var handelsWarenWürfel = würfel.W24;
            var geldWürfel         = würfel._5W12;

            do
            {
                var c = new Character(attributWürfel, berufWürfel, zeichenWürfel, trefferWürfel, geldWürfel, handelsWarenWürfel);
                Console.WriteLine(c);
            } while (Console.ReadKey().Key != ConsoleKey.Q);
        }
Exemplo n.º 4
0
        public Zauberkundiger(int seed, int charakterNummer, int stufe, Gesinnung gesinnung) : base(seed, charakterNummer, stufe, 4, gesinnung)
        {
            // Zwei Sprachen pro Intelligenzmodifikator
            for (var i = 1; i <= Character.Attribute.Intelligenz.Modifikator * 2; i++)
            {
                Sprachen.Add($"Magier Sprache {i}");
            }

            var startGold = wf.W(10, 3) + stufe switch
            {
                1 => 0,
                2 => wf.W(4, 2) * 100,
                _ => wf.W(4, 5) * 100,
            };

            Startkapital = $"{startGold} GM";

            var würfelFactory = new WürfelFactory(random);
            var zauberFactory = new ZauberFactory(würfelFactory);

            Zauberbuch = zauberFactory.ZauberkundigenZauberErstellen(stufe, Character.Attribute.Glück.Modifikator, Character.Attribute.Intelligenz.Value, random);
        }
Exemplo n.º 5
0
        public Elf(int seed, int charakterNummer, int stufe, Gesinnung gesinnung) : base(seed, charakterNummer, stufe, 6, gesinnung)
        {
            Sprachen.Add($"Elfensprache");
            // Eine Sprache pro Intelligenzmodifikator
            for (var i = 1; i <= Character.Attribute.Intelligenz.Modifikator; i++)
            {
                Sprachen.Add($"Magier Sprache {i}");
            }

            var startGold = stufe switch
            {
                1 => wf.W(12, 2),
                2 => wf.W(12, 3) + 500,
                _ => wf.W(12, 3) + 2000,
            };

            Startkapital = $"{startGold} GM";

            var würfelFactory = new WürfelFactory(random);
            var zauberFactory = new ZauberFactory(würfelFactory);

            Zauberbuch = zauberFactory.ElfenZauberErstellen(stufe, Character.Attribute.Intelligenz.Value, random);
        }