F
Hey, vielen Dank für eure Antworten!
Ich muss zugeben auf die Idee mit einem Struct bin ich erst garnicht gekommen.
Ich hatte die Werte einfach als unsigned int erstellt... Aber so ist es natürlich viel genialer.
Es sieht jetzt ungefähr so aus:
enum Trait
{
Strength,
Agility,
Endurance,
Intelligence,
Wisdom
};
//blubb
struct Stat
{
unsigned int normal_Value; //Standardmäßiger, vom Level abhängiger, Wert ohne Buffs etc.
double equipModPercentage; // % Modifikator durch Ausrüstung. (z.B. +5% Gesundheit)
unsigned int equipMod; // Wert Modifikator durch Ausrüstung (z.B. + 10 Stärke)
double talentModPercentage; // % Modifikator durch Talente
double debuffModPercentage; // % Modifikator durch Schwächungszauber
unsigned int total_Value; // Zusammengerechneter Wert des stats
};
und in der Hero.hpp
class Hero
{
//blubb
void SetTraitFactor(Trait trait, double Factor);
private:
Stat Strength {5,0,0,0,0,5};
Stat Agility {....};
etc.
Jetzt kann ich bei Talenten und Armor ganz einfach die Hero.SetTraitFactor()
Funktion benutzen und angeben, welchen Trait ich ändern möchte. Der Rest wird dann per switch() ermittelt und geupdatet
Vielen dank nochmal für eure Hilfe!
P.S.:
Die Fertigkeiten im Talentbaum werden jetzt einfach in eine std::list per push.back() befördert und beim respecc, "einfach" wieder entfernt