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 /sigencore/TeamMember.cpp | |
| parent | fe90e565f584640001906f4eaba5ca03093b984e (diff) | |
| download | sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.tar.gz sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.tar.xz sigen-e45938d4db3a7a14d3dca0606fbcf41ba8237b35.zip | |
Reorganized species, name, and gender for TeamMember
Diffstat (limited to 'sigencore/TeamMember.cpp')
| -rw-r--r-- | sigencore/TeamMember.cpp | 55 |
1 files changed, 30 insertions, 25 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)) |
