diff options
Diffstat (limited to 'sigencore/TeamMember.cpp')
| -rw-r--r-- | sigencore/TeamMember.cpp | 89 |
1 files changed, 47 insertions, 42 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp index ba0c9cce..663645ba 100644 --- a/sigencore/TeamMember.cpp +++ b/sigencore/TeamMember.cpp @@ -51,6 +51,11 @@ // C includes #include <cmath> +using namespace Sigcore; +using namespace Sigmod; +using namespace Sigscript; +using namespace Sigencore; + int Sigencore::actionPriority(TeamMember* teamMember, const TeamMember::Action& action) { int priority = INT_MAX; @@ -93,24 +98,24 @@ int Sigencore::actionPriority(TeamMember* teamMember, const TeamMember::Action& return priority; } -Sigencore::TeamMember::TeamMember(Sigscript::SpeciesWrapper* species, const int level, Team* team, const bool isWild, const bool suppressInitialization) : +TeamMember::TeamMember(SpeciesWrapper* species, const int level, Team* team, const bool isWild, const bool suppressInitialization) : Creature(species, level, team, suppressInitialization), m_team(team), m_arena(NULL), m_isWild(isWild) { - for (int i = 0; i < (Sigmod::ST_SpecialDefense - Sigmod::ST_Attack + 1); ++i) + for (int i = 0; i < (ST_SpecialDefense - ST_Attack + 1); ++i) m_stages[i] = 0; } -Sigencore::TeamMember::~TeamMember() +TeamMember::~TeamMember() { if (m_arena) exitArena(); // TODO: Clean up scripts } -bool Sigencore::TeamMember::setContainment(Containment* containment) +bool TeamMember::setContainment(Containment* containment) { Team* team = qobject_cast<Team*>(containment); if (team) @@ -119,7 +124,7 @@ bool Sigencore::TeamMember::setContainment(Containment* containment) m_containment = containment; } -bool Sigencore::TeamMember::setTeam(Team* team) +bool TeamMember::setTeam(Team* team) { if (m_team && m_team->removeTeamMember(this)) { @@ -130,51 +135,51 @@ bool Sigencore::TeamMember::setTeam(Team* team) return false; } -Sigencore::Team* Sigencore::TeamMember::team() const +Team* TeamMember::team() const { return m_team; } -bool Sigencore::TeamMember::setStatStage(const Sigmod::Stat stat, const int stage) +bool TeamMember::setStatStage(const Stat stat, const int stage) { - if (stat == Sigmod::ST_HP) + if (stat == ST_HP) return false; if (m_game->rules()->maxStages() < qAbs(stage)) return false; - m_stages[stat - Sigmod::ST_Attack] = stage; + m_stages[stat - ST_Attack] = stage; emit(statStageChanged(stat, stage)); return true; } -bool Sigencore::TeamMember::giveStatStages(const Sigmod::Stat stat, const int stages) +bool TeamMember::giveStatStages(const Stat stat, const int stages) { - if (stat == Sigmod::ST_HP) + if (stat == ST_HP) return false; - return setStatStage(stat, m_stages[stat - Sigmod::ST_Attack] + stages); + return setStatStage(stat, m_stages[stat - ST_Attack] + stages); } -int Sigencore::TeamMember::statStage(const Sigmod::Stat stat) const +int TeamMember::statStage(const Stat stat) const { int stages; - if (stat == Sigmod::ST_HP) + if (stat == ST_HP) return 0; - if (valueOfType(QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[stat]), &stages) && (qAbs(stages) <= m_game->rules()->maxStages())) + if (valueOfType(QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? StatGSCStr : StatRBYStr)[stat]), &stages) && (qAbs(stages) <= m_game->rules()->maxStages())) return stages; - return m_stages[stat - Sigmod::ST_Attack]; + return m_stages[stat - ST_Attack]; } -int Sigencore::TeamMember::statValue(const Sigmod::Stat stat) const +int TeamMember::statValue(const Stat stat) const { - Sigcore::Fraction multiplier; + Fraction multiplier; const int stage = statStage(stat); if (0 < stage) - multiplier *= Sigcore::Fraction(stage + 2, 2); + multiplier *= Fraction(stage + 2, 2); else if (stage < 0) - multiplier *= Sigcore::Fraction(2, stage + 2); + multiplier *= Fraction(2, stage + 2); return multiplier * Creature::statValue(stat); } -bool Sigencore::TeamMember::addAbility(Sigscript::AbilityWrapper* ability) +bool TeamMember::addAbility(AbilityWrapper* ability) { if ((m_abilities.size() < m_game->rules()->maxAbilities()) && !m_abilities.contains(ability)) { @@ -210,7 +215,7 @@ bool Sigencore::TeamMember::addAbility(Sigscript::AbilityWrapper* ability) return false; } -bool Sigencore::TeamMember::removeAbility(Sigscript::AbilityWrapper* ability) +bool TeamMember::removeAbility(AbilityWrapper* ability) { if (m_abilities.contains(ability)) { @@ -225,12 +230,12 @@ bool Sigencore::TeamMember::removeAbility(Sigscript::AbilityWrapper* ability) return false; } -bool Sigencore::TeamMember::addItems(Sigscript::ItemWrapper* item, const int count, const bool allOrNothing) +bool TeamMember::addItems(ItemWrapper* item, const int count, const bool allOrNothing) { // TODO: Handle scripts } -bool Sigencore::TeamMember::addMove(Sigscript::MoveWrapper* move) +bool TeamMember::addMove(MoveWrapper* move) { bool canLearn = false; for (int i = 0; !canLearn && (i < m_species->moveCount()); ++i) @@ -260,7 +265,7 @@ bool Sigencore::TeamMember::addMove(Sigscript::MoveWrapper* move) return false; } -bool Sigencore::TeamMember::removeMove(Sigscript::MoveWrapper* move) +bool TeamMember::removeMove(MoveWrapper* move) { if (m_moves.contains(move) && (1 < m_moves.size())) { @@ -275,7 +280,7 @@ bool Sigencore::TeamMember::removeMove(Sigscript::MoveWrapper* move) return false; } -bool Sigencore::TeamMember::addNature(Sigscript::NatureWrapper* nature) +bool TeamMember::addNature(NatureWrapper* nature) { if ((m_natures.size() < m_game->rules()->maxNatures()) && !m_natures.contains(nature)) { @@ -286,7 +291,7 @@ bool Sigencore::TeamMember::addNature(Sigscript::NatureWrapper* nature) return false; } -bool Sigencore::TeamMember::removeNature(Sigscript::NatureWrapper* nature) +bool TeamMember::removeNature(NatureWrapper* nature) { if (m_natures.contains(nature)) { @@ -297,7 +302,7 @@ bool Sigencore::TeamMember::removeNature(Sigscript::NatureWrapper* nature) return false; } -bool Sigencore::TeamMember::addStatus(Sigscript::StatusWrapper* status) +bool TeamMember::addStatus(StatusWrapper* status) { if (!m_status.contains(status)) { @@ -333,7 +338,7 @@ bool Sigencore::TeamMember::addStatus(Sigscript::StatusWrapper* status) return false; } -bool Sigencore::TeamMember::removeStatus(Sigscript::StatusWrapper* status) +bool TeamMember::removeStatus(StatusWrapper* status) { if (m_status.contains(status)) { @@ -348,13 +353,13 @@ bool Sigencore::TeamMember::removeStatus(Sigscript::StatusWrapper* status) return false; } -void Sigencore::TeamMember::makeActive(Arena* arena) +void TeamMember::makeActive(Arena* arena) { // TODO Team* team = qobject_cast<Team*>(this->containment()); - foreach (Sigscript::StatusWrapper* status, m_status) + foreach (StatusWrapper* status, m_status) { - const Sigcore::Script script = status->battleScript(); + const Script script = status->battleScript(); if (!script.script().isEmpty()) { ObjectMap objects; @@ -368,9 +373,9 @@ void Sigencore::TeamMember::makeActive(Arena* arena) action->trigger(); } } - foreach (Sigscript::AbilityWrapper* ability, m_abilities) + foreach (AbilityWrapper* ability, m_abilities) { - const Sigcore::Script script = ability->battleScript(); + const Script script = ability->battleScript(); if (!script.script().isEmpty()) { ObjectMap objects; @@ -387,27 +392,27 @@ void Sigencore::TeamMember::makeActive(Arena* arena) m_arena = arena; } -void Sigencore::TeamMember::exitArena() +void TeamMember::exitArena() { qDeleteAll(m_statusBattleScriptsMap.values()); m_statusBattleScriptsMap.clear(); qDeleteAll(m_abilityBattleScriptsMap.values()); m_abilityBattleScriptsMap.clear(); - for (int i = Sigmod::ST_Attack; i <= Sigmod::ST_Evasion; ++i) + for (int i = ST_Attack; i <= ST_Evasion; ++i) { - const QString entry = QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[i]); + const QString entry = QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? StatGSCStr : StatRBYStr)[i]); if (options(entry) & Temporary) removeValue(entry, false); } m_arena = NULL; } -void Sigencore::TeamMember::completeMoves() +void TeamMember::completeMoves() { - QMap<int, Sigscript::MoveWrapper*> moves; + QMap<int, MoveWrapper*> moves; for (int i = 0; i < m_species->moveCount(); ++i) { - Sigscript::SpeciesMoveWrapper* move = m_species->move(i); + SpeciesMoveWrapper* move = m_species->move(i); const int level = m_isWild ? move->wild() : move->level(); if ((0 <= level) && (level <= m_level)) moves[level] = move->move(); @@ -415,8 +420,8 @@ void Sigencore::TeamMember::completeMoves() // TODO: give the moves to the creature } -void Sigencore::TeamMember::makeConnections() +void TeamMember::makeConnections() { - connect(this, SIGNAL(statStageChanged(Sigmod::Stat, int)), SLOT(recalcStat(Sigmod::Stat))); + connect(this, SIGNAL(statStageChanged(Stat, int)), SLOT(recalcStat(Stat))); Creature::makeConnections(); } |
