diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-02-12 17:54:20 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-02-12 18:10:32 -0500 |
| commit | e45938d4db3a7a14d3dca0606fbcf41ba8237b35 (patch) | |
| tree | ab65a3ca33c179ac3db3d3490a4aba46ee1bf884 | |
| parent | fe90e565f584640001906f4eaba5ca03093b984e (diff) | |
| download | sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.tar.gz sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.tar.xz sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.zip | |
Reorganized species, name, and gender for TeamMember
| -rw-r--r-- | sigencore/TeamMember.cpp | 55 | ||||
| -rw-r--r-- | sigencore/TeamMember.h | 20 |
2 files changed, 41 insertions, 34 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp index e0459a73..5faee8ad 100644 --- a/sigencore/TeamMember.cpp +++ b/sigencore/TeamMember.cpp @@ -178,35 +178,50 @@ Sigencore::Containment* Sigencore::TeamMember::containment() const return m_containment; } -QString Sigencore::TeamMember::name() const +Sigscript::SpeciesWrapper* Sigencore::TeamMember::species() const { - QString name = m_name; - valueOfType("name", &name); - return name; + return m_species; } -long long Sigencore::TeamMember::currentHp() const +void Sigencore::TeamMember::setName(const QString& name) { - return m_currentHp; + m_name = name; + emit(nameChanged(m_name)); } -Sigscript::SpeciesWrapper* Sigencore::TeamMember::species() const +QString Sigencore::TeamMember::name() const { - Sigscript::SpeciesWrapper* species = m_species; - valueOfType("species", &species); - return species; + return m_name; } -int Sigencore::TeamMember::level() const +bool Sigencore::TeamMember::setGender(const Gender gender) { - return m_level; + if (!m_sigmod->rules()->genderAllowed()) + return false; + const Sigcore::Fraction genderFactor = m_species->genderFactor(); + switch (gender) + { + case Male: + if (1 <= genderFactor) + return false; + break; + case Female: + if (genderFactor <= 0) + return false; + break; + case Genderless: + if (0 <= genderFactor) + return false; + break; + } + m_gender = gender; + emit(genderChanged(m_gender)); + return true; } Sigencore::TeamMember::Gender Sigencore::TeamMember::gender() const { - Gender gender = m_gender; - valueOfType("gender", &gender); - return gender; + return m_gender; } long long Sigencore::TeamMember::levelExperience() const @@ -391,16 +406,6 @@ void Sigencore::TeamMember::evolveInto(Sigscript::SpeciesWrapper* newSpecies) emit(evolveEnd()); } -void Sigencore::TeamMember::setName(const QString& name) -{ - if (m_name != name) - { - const QString oldName = m_name; - m_name = name; - emit(nameChanged(oldName, m_name)); - } -} - void Sigencore::TeamMember::cureStatus(Sigscript::StatusWrapper* status) { if (m_status.contains(status)) diff --git a/sigencore/TeamMember.h b/sigencore/TeamMember.h index b5b144d8..7f636f43 100644 --- a/sigencore/TeamMember.h +++ b/sigencore/TeamMember.h @@ -97,11 +97,12 @@ class SIGENCORE_EXPORT TeamMember : public Sigscript::Config void setContainment(Containment* containment); Q_SCRIPTABLE Containment* containment() const; - QString name() const; + Q_SCRIPTABLE Sigscript::SpeciesWrapper* species() const; + + Q_SCRIPTABLE QString name() const; + Q_SCRIPTABLE Gender gender() const; long long currentHp() const; - Sigscript::SpeciesWrapper* species() const; int level() const; - Gender gender() const; long long levelExperience() const; int baseStat(const Sigmod::Stat stat) const; long long statExperience(const Sigmod::Stat stat) const; @@ -111,11 +112,13 @@ class SIGENCORE_EXPORT TeamMember : public Sigscript::Config bool canLearnMove(Sigscript::MoveWrapper* move) const; public slots: + void setName(const QString& name); + bool setGender(const Gender gender); + void boostLevels(const int levels); void evolveInto(Sigscript::SpeciesWrapper* newSpecies); - void setName(const QString& name); void cureStatus(Sigscript::StatusWrapper* status); void giveStatus(Sigscript::StatusWrapper* status); void giveLevelExp(const int exp); @@ -132,13 +135,13 @@ class SIGENCORE_EXPORT TeamMember : public Sigscript::Config virtual void writeBack(); signals: - void speciesChanged(Sigscript::SpeciesWrapper* species); + + void nameChanged(const QString& newName); + void genderChanged(const Gender newGender); void evolveStart(); void evolveEnd(); - void nameChanged(const QString& oldName, const QString& newName); - void statusCured(Sigscript::StatusWrapper* status); void statusInflicted(Sigscript::StatusWrapper* status); @@ -165,10 +168,10 @@ class SIGENCORE_EXPORT TeamMember : public Sigscript::Config Sigscript::SigmodWrapper* m_sigmod; Containment* m_containment; + Sigscript::SpeciesWrapper* m_species; QString m_name; long long m_currentHp; - Sigscript::SpeciesWrapper* m_species; Gender m_gender; long long m_levelExp; int m_level; @@ -184,7 +187,6 @@ class SIGENCORE_EXPORT TeamMember : public Sigscript::Config QList<Kross::Action*> m_abilityBattleScripts; QList<Kross::Action*> m_statusBattleScripts; protected slots: - void setSpecies(Sigscript::SpeciesWrapper* species); void setLevel(const int level); private: void makeConnections(); |
