@plantschkuh Danke für die schnelle Hilfe aber ich bin vorhin selber auf die Lösung gestoßen, wäre aber eine gute Idee mit den Feldern.
Ich schreibe meine Lösung der Methode hier rein, vielleicht hilft sie ja später noch jemandem (bezweifle ich aber).
Ich habe keine Kommentare hingeschrieben, weil ich einen Geistesblitz hatte und den so schnell wie möglich umsetzen wollte. Das mit den Erfahrungspunkten hab ich vorher vergessen, hier ist es jetzt schon dabei. Ich könnte jetzt auch nicht mehr genau erklären wie das jetzt funktioniert aber es geht glaube ich. Falls jemandem Fehler oder Sachen die man kürzer lösen könnte auffallen aber trotzdem in dieser einen Methode zu lösen sind, bin ich offen für Verbesserungen
Code
public static int[] eigenschaftenSystem(Object ausbildung, Object volk, int stufe, int erfahrungspunkte, int[] eigenschaften)
{
int[] rueckgabe = new int[17];
int[] prioritaet = Operationen.Tabellen.TabellenDatenbankAuslesen.eigenschaftspriorität(ausbildung);
int[] eigenschaftenNeu = new int[16];
erfahrungspunkte += Operationen.Tabellen.TabellenDatenbankAuslesen.erfahrungspunkte(stufe);
int zahl = 0;
int volkZahl = 0;
if ("Terraner".Equals(volk))
volkZahl = 1;
for (int i = 0, j = 0; i < 4; i++)
{
zahl = zufallZahl.Next(j, j +4);
if (Operationen.Tabellen.TabellenDatenbankAuslesen.aufstiegsKosten(eigenschaften[zahl])[volkZahl] >= erfahrungspunkte)
{
eigenschaftenNeu[zahl] += 1;
erfahrungspunkte -= Operationen.Tabellen.TabellenDatenbankAuslesen.aufstiegsKosten(eigenschaften[zahl])[volkZahl];
}
j += 4;
}
for (int i = 0; i < 16; i++)
{
eigenschaften[i] = eigenschaftenNeu[prioritaet[i] -1];
}
rueckgabe[16] = erfahrungspunkte;
return rueckgabe;
}
Alles anzeigen