コード例 #1
0
        public void SteigereFertigkeit(ref SteigerbareFertigkeitBase fertigkeit)
        {
            var benoetigteEp = FertigkeitVeraendernRegeln.GetSteigernKosten(fertigkeit);
            var vorhandeneEp = fertigkeit.Erfahrung;

            if (vorhandeneEp >= benoetigteEp)
            {
                fertigkeit.Erfahrung = fertigkeit.Erfahrung - benoetigteEp;
                fertigkeit.SteigerungsWert++;
            }
        }
コード例 #2
0
        public void ReduziereFertigkeit_Attribut_AttributWurdeReduziert()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            SteigerbareFertigkeitBase attribut = spieler.Attribute.Staerke;

            attribut.SteigerungsWert = 5;
            spieler.ReduziereFertigkeit(ref attribut);

            Assert.True(attribut.SteigerungsWert == 4);
            Assert.True(attribut.Erfahrung > 0);
        }
コード例 #3
0
        public void ReduziereFertigkeit(ref SteigerbareFertigkeitBase fertigkeit)
        {
            if (fertigkeit.SteigerungsWert == 0)
            {
                return;
            }

            var benoetigteEp = FertigkeitVeraendernRegeln.GetSteigernKosten(fertigkeit);

            fertigkeit.Erfahrung = fertigkeit.Erfahrung + benoetigteEp;
            fertigkeit.SteigerungsWert--;
        }
コード例 #4
0
        public void ReduziereFertigkeit_FertigkeitsKategorie_NichtsPassiert()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            SteigerbareFertigkeitBase kategorie = spieler.FertigkeitsKategorien.Nahkampf;

            kategorie.Erfahrung       = 0;
            kategorie.SteigerungsWert = 1;
            spieler.ReduziereFertigkeit(ref kategorie);

            Assert.True(kategorie.SteigerungsWert == 1);
            Assert.True(kategorie.Erfahrung == 0);
        }
コード例 #5
0
        public void SteigereFertigkeit_FertigkeitsKategorie_KategorieWurdeGesteigert()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            SteigerbareFertigkeitBase kategorie = spieler.FertigkeitsKategorien.Nahkampf;

            kategorie.Erfahrung       = 5;
            kategorie.SteigerungsWert = 0;
            spieler.SteigereFertigkeit(ref kategorie);

            Assert.True(kategorie.SteigerungsWert == 1);
            Assert.True(kategorie.Erfahrung == 0);
        }
コード例 #6
0
        public void SteigereFertigkeit_AttributMitGenugEp_AttributWurdeGesteigert()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            SteigerbareFertigkeitBase attribut = spieler.Attribute.Staerke;

            attribut.SteigerungsWert = 0;
            attribut.Erfahrung       = 2;
            spieler.SteigereFertigkeit(ref attribut);

            Assert.True(attribut.SteigerungsWert == 1);
            Assert.True(attribut.Erfahrung == 0);
        }
コード例 #7
0
        public static int GetSteigernKosten(SteigerbareFertigkeitBase fertigkeit)
        {
            if (fertigkeit is Attribut)
            {
                return(GetSteigernKostenAttribut(fertigkeit.SteigerungsWert));
            }

            if (fertigkeit is FertigkeitsKategorie)
            {
                return(GetSteigernKostenFertigkeitsKategorie(fertigkeit.SteigerungsWert));
            }

            return(GetSteigernKostenFertigkeit(fertigkeit.SteigerungsWert));
        }
コード例 #8
0
        public static int GetReduzierenKosten(SteigerbareFertigkeitBase fertigkeit)
        {
            if (fertigkeit is Attribut)
            {
                return(GetReduzierenKostenAttribut(fertigkeit.SteigerungsWert));
            }

            if (fertigkeit is FertigkeitsKategorie)
            {
                return(GetReduzierenKostenFertigkeitsKategorie(fertigkeit.SteigerungsWert));
            }

            return(GetReduzierenKostenFertigkeit(fertigkeit.SteigerungsWert));

            throw new ArgumentException();
        }
コード例 #9
0
        public void ReduziereFertigkeit_Fertigkeit_FertigkeitWurdeReduziertKategorieWenigerEp()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            FertigkeitsKategorie kategorie = spieler.FertigkeitsKategorien.Nahkampf;

            kategorie.Erfahrung = 1;
            SteigerbareFertigkeitBase fertigkeit = kategorie.Fertigkeiten.FirstOrDefault();

            fertigkeit.SteigerungsWert = 1;
            fertigkeit.Erfahrung       = 0;
            spieler.ReduziereFertigkeit(ref fertigkeit);

            Assert.True(fertigkeit.SteigerungsWert == 0);
            Assert.True(fertigkeit.Erfahrung == 2);
            Assert.True(kategorie.Erfahrung == 0);
        }
コード例 #10
0
        public void SteigereFertigkeit_FertigkeitMitGenugEp_FertigkeitUndKategorieWurdenGesteigert()
        {
            var spieler = new Spieler(new FertigkeitVeraendernService());

            FertigkeitsKategorie kategorie = spieler.FertigkeitsKategorien.Nahkampf;

            kategorie.Erfahrung = 0;
            SteigerbareFertigkeitBase fertigkeit = kategorie.Fertigkeiten.FirstOrDefault();

            fertigkeit.SteigerungsWert = 0;
            fertigkeit.Erfahrung       = 2;
            spieler.SteigereFertigkeit(ref fertigkeit);

            Assert.True(fertigkeit.SteigerungsWert == 1);
            Assert.True(fertigkeit.Erfahrung == 0);
            Assert.True(kategorie.Erfahrung == 1);
        }