diff options
Diffstat (limited to 'sigencore/TeamMember.cpp')
| -rw-r--r-- | sigencore/TeamMember.cpp | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp index ef8538ba..57afecf2 100644 --- a/sigencore/TeamMember.cpp +++ b/sigencore/TeamMember.cpp @@ -403,133 +403,6 @@ bool Sigencore::TeamMember::hasNature(Sigscript::NatureWrapper* nature) const return m_natures.contains(nature); } -bool Sigencore::TeamMember::canLearnMove(Sigscript::MoveWrapper* move) const -{ - for (int i = 0; i < m_species->moveCount(); ++i) - { - if (move->id() == m_species->move(i)->move()->id()) - return true; - } - return false; -} - -void Sigencore::TeamMember::evolveInto(Sigscript::SpeciesWrapper* newSpecies) -{ - emit(evolveStart()); - int oldStats[Sigmod::ST_SpecialDefense - Sigmod::ST_HP + 1] = {}; - int newStats[Sigmod::ST_SpecialDefense - Sigmod::ST_HP + 1] = {}; - oldStats[Sigmod::ST_Attack] = statValue(Sigmod::ST_Attack); - oldStats[Sigmod::ST_Defense] = statValue(Sigmod::ST_Defense); - oldStats[Sigmod::ST_Speed] = statValue(Sigmod::ST_Speed); - if (sigmod()->rules()->specialSplit()) - { - oldStats[Sigmod::ST_SpecialAttack] = statValue(Sigmod::ST_SpecialAttack); - oldStats[Sigmod::ST_SpecialDefense] = statValue(Sigmod::ST_SpecialDefense); - } - else - oldStats[Sigmod::ST_Special] = statValue(Sigmod::ST_Special); - setSpecies(newSpecies); - newStats[Sigmod::ST_Attack] = statValue(Sigmod::ST_Attack); - newStats[Sigmod::ST_Defense] = statValue(Sigmod::ST_Defense); - newStats[Sigmod::ST_Speed] = statValue(Sigmod::ST_Speed); - if (sigmod()->rules()->specialSplit()) - { - newStats[Sigmod::ST_SpecialAttack] = statValue(Sigmod::ST_SpecialAttack); - newStats[Sigmod::ST_SpecialDefense] = statValue(Sigmod::ST_SpecialDefense); - } - else - newStats[Sigmod::ST_Special] = statValue(Sigmod::ST_Special); - if (oldStats[Sigmod::ST_Attack] != newStats[Sigmod::ST_Attack]) - emit(statChanged(Sigmod::ST_Attack, newStats[Sigmod::ST_Attack])); - if (oldStats[Sigmod::ST_Defense] != newStats[Sigmod::ST_Defense]) - emit(statChanged(Sigmod::ST_Defense, newStats[Sigmod::ST_Defense])); - if (oldStats[Sigmod::ST_Speed] != newStats[Sigmod::ST_Speed]) - emit(statChanged(Sigmod::ST_Speed, newStats[Sigmod::ST_Speed])); - if (sigmod()->rules()->specialSplit()) - { - if (oldStats[Sigmod::ST_SpecialAttack] != newStats[Sigmod::ST_SpecialAttack]) - emit(statChanged(Sigmod::ST_SpecialAttack, newStats[Sigmod::ST_SpecialAttack])); - if (oldStats[Sigmod::ST_SpecialDefense] != newStats[Sigmod::ST_SpecialDefense]) - emit(statChanged(Sigmod::ST_SpecialDefense, newStats[Sigmod::ST_SpecialDefense])); - } - else - { - if (oldStats[Sigmod::ST_Special] != newStats[Sigmod::ST_Special]) - emit(statChanged(Sigmod::ST_Special, newStats[Sigmod::ST_Special])); - } - emit(evolveEnd()); -} - -void Sigencore::TeamMember::cureStatus(Sigscript::StatusWrapper* status) -{ - if (m_status.contains(status)) - { - QList<Kross::Action*> actions = m_status.values(status); - qDeleteAll(actions); - m_status.remove(status); - emit(statusCured(status)); - } -} - -void Sigencore::TeamMember::giveStatus(Sigscript::StatusWrapper* status) -{ - if (!m_status.contains(status)) - { - const Sigcore::Script script = status->worldScript(); - if (!script.script().isEmpty()) - { - Kross::Action* statusAction = new Kross::Action(Kross::Manager::self().actionCollection()->collection("status"), QUuid::createUuid().toString()); - statusAction->setInterpreter(script.interpreter()); - statusAction->setCode(script.script().toUtf8()); - statusAction->addObject(this, "owner"); - statusAction->trigger(); - m_status.insert(status, statusAction); - emit(statusInflicted(status)); - } - } -} - -void Sigencore::TeamMember::takeItem(Sigscript::ItemWrapper* item) -{ - if (m_items.contains(item)) - { - m_items.removeAt(m_items.indexOf(item)); - emit(itemTaken(item)); - } -} - -void Sigencore::TeamMember::giveItem(Sigscript::ItemWrapper* item) -{ - if ((m_items.size() < sigmod()->rules()->maxHeldItems()) && checkWeight(item)) - { - m_items.append(item); - emit(itemGiven(item)); - } -} - -void Sigencore::TeamMember::forgetMove(Sigscript::MoveWrapper* move) -{ - if (m_moves.contains(move)) - { - m_moves.removeAll(move); - emit(moveForgotten(move)); - } -} - -void Sigencore::TeamMember::teachMove(Sigscript::MoveWrapper* move) -{ - if (canLearnMove(move)) - { - if (m_moves.size() < sigmod()->rules()->maxMoves()) - { - m_moves.append(move); - emit(moveLearned(move)); - } - emit(movesFull(move)); - } - emit(unlearnableMove(move)); -} - void Sigencore::TeamMember::makeActive(Arena* arena) { // TODO @@ -587,19 +460,6 @@ void Sigencore::TeamMember::exitArena() m_arena = NULL; } -void Sigencore::TeamMember::writeBack() -{ - // TODO: write back all (applicable) differences between config and local storage -} - -bool Sigencore::TeamMember::checkWeight(const Sigscript::ItemWrapper* item) -{ - int totalWeight = item->weight(); - foreach (Sigscript::ItemWrapper* item, m_items) - totalWeight += item->weight(); - return (totalWeight <= species()->maxHoldWeight()); -} - void Sigencore::TeamMember::makeConnections() { // TODO: make connections that are necessary (watching Config changes mainly) |
