diff options
Diffstat (limited to 'sigencore/TeamMember.cpp')
| -rw-r--r-- | sigencore/TeamMember.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp index 4639bc09..1007adf0 100644 --- a/sigencore/TeamMember.cpp +++ b/sigencore/TeamMember.cpp @@ -94,7 +94,7 @@ int Sigencore::actionPriority(TeamMember* teamMember, const TeamMember::Action& return priority; } -Sigencore::TeamMember::TeamMember(Sigscript::SpeciesWrapper* species, const int level, Containment* containment, const bool suppressInitialization) : +Sigencore::TeamMember::TeamMember(Sigscript::SpeciesWrapper* species, const int level, Containment* containment, const bool isWild, const bool suppressInitialization) : Sigscript::Config(containment), m_sigmod(containment->sigmod()), m_containment(containment), @@ -113,7 +113,7 @@ Sigencore::TeamMember::TeamMember(Sigscript::SpeciesWrapper* species, const int for (int i = 0; i < (Sigmod::ST_SpecialDefense - Sigmod::ST_Attack + 1); ++i) m_stages[i] = 0; if (!suppressInitialization) - completeData(); + completeData(isWild); } Sigencore::TeamMember::~TeamMember() @@ -675,7 +675,7 @@ void Sigencore::TeamMember::exitArena() m_arena = NULL; } -void Sigencore::TeamMember::completeData() +void Sigencore::TeamMember::completeData(const bool useWild) { // TODO if (!m_name.isEmpty()) @@ -716,7 +716,15 @@ void Sigencore::TeamMember::completeData() else ++i; } - // TODO: Move choosing + QMap<int, Sigscript::MoveWrapper*> moves; + for (i = 0; i < m_species->moveCount(); ++i) + { + Sigscript::SpeciesMoveWrapper* move = m_species->move(i); + const int level = useWild ? move->wild() : move->level(); + if ((0 <= level) && (level <= m_level)) + moves[level] = move->move(); + } + // TODO: give the moves to the creature Sigcore::Hat<Sigscript::NatureWrapper*> natureHat = sigmod()->natureHat(); while ((m_natures.size() < m_sigmod->rules()->maxNatures()) && natureHat.count()) addNature(natureHat.takeAndClear()); |
