summaryrefslogtreecommitdiffstats
path: root/sigencore/TeamMember.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigencore/TeamMember.cpp')
-rw-r--r--sigencore/TeamMember.cpp55
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))