Hey, mir war neulich langweilig und da habe ich mir etwas für ein Spiel, welches ich öfters spiele ausgedacht um mir mein Leben ein Stück weit einfacher zu machen:
Es gibt in dem Spiel Charaktere mit Eigenschaften, (Damage, Cool down, Range).
Diese können mit "Traits" verändert werden: z.B. ein Trait mit einem "namen" verändert den Schaden um 10%.
Jetzt wollte ich mir ein Rechner bauen in dem ich sozusagen vorher sagen kann, wie genau sich meine Stats am ende verändern.
Ich hab nach ein Paar Versuchen einen kleinen Rechner gebaut, wobei ich leider immer eine neue Methode für ein jeweiliges Trait gebaut habe.
Jetzt hab ich mir Gedanken gemacht und bin auf die Idee gekommen, dass ich anstatt für jedes Trait eine eigene Methode zu bauen doch einfach die im Rechner benutzen Werte mit den jeweiligen Traits verändern kann, z.B. so:
System.out.println(dpsCalc(DPS,CD,PlacementCap,"trait"));
wobei bei "trait" das jeweilige Trait einfach eingesetzt wird und somit die Werte mit "trait" verändert werden (damage, cool down, range).
Ich hab zuerst an Objekte gedacht und mir überlegt, ob ich nicht einfach ein Objekt von dem Typ "Trait" benutzen kann bei dem vorher festgelegt wurde, was es für Eigenschaften (dmgAmplifier, cdAmplifier, rangeAmplifier) hat, die am Ende in der Rechnung eingesetzt werden.
Jetzt bin ich leider an meine Grenzen als Anfänger gekommen und wollte fragen, wie genau ich das Problem löse bzw. ob es überhaupt geht.
--> Ein "trait" als Übergabe Wert einer Funktion die aufgerufen werden kann um die Rechnung in Abhängigkeit des Traits zu verändern.