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++; } }
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); }
public void ReduziereFertigkeit(ref SteigerbareFertigkeitBase fertigkeit) { if (fertigkeit.SteigerungsWert == 0) { return; } var benoetigteEp = FertigkeitVeraendernRegeln.GetSteigernKosten(fertigkeit); fertigkeit.Erfahrung = fertigkeit.Erfahrung + benoetigteEp; fertigkeit.SteigerungsWert--; }
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); }
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); }
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); }
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)); }
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(); }
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); }
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); }