diff options
Diffstat (limited to 'sigencore/Creature.cpp')
-rw-r--r-- | sigencore/Creature.cpp | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/sigencore/Creature.cpp b/sigencore/Creature.cpp index 305e18a3..d276f797 100644 --- a/sigencore/Creature.cpp +++ b/sigencore/Creature.cpp @@ -22,11 +22,11 @@ #include "Containment.h" // Sigscript includes +#include <sigscript/GameWrapper.h> #include <sigscript/ItemWrapper.h> #include <sigscript/MoveWrapper.h> #include <sigscript/NatureWrapper.h> #include <sigscript/RulesWrapper.h> -#include <sigscript/SigmodWrapper.h> #include <sigscript/SpeciesWrapper.h> #include <sigscript/SpeciesMoveWrapper.h> @@ -43,7 +43,7 @@ QMap<Sigencore::Creature::StyleLevel, long long> Sigencore::Creature::m_expCache Sigencore::Creature::Creature(Sigscript::SpeciesWrapper* species, const int level, Containment* containment, const bool suppressInitialization) : Sigscript::Config(containment), - m_sigmod(containment->sigmod()), + m_game(containment->game()), m_containment(containment), m_species(species), m_gender(Undecided), @@ -72,9 +72,9 @@ QUuid Sigencore::Creature::id() const return m_id; } -Sigscript::SigmodWrapper* Sigencore::Creature::sigmod() const +Sigscript::GameWrapper* Sigencore::Creature::game() const { - return m_sigmod; + return m_game; } bool Sigencore::Creature::setContainment(Containment* containment) @@ -110,7 +110,7 @@ QString Sigencore::Creature::name() const bool Sigencore::Creature::setGender(const Gender gender) { - if (!m_sigmod->rules()->genderAllowed()) + if (!m_game->rules()->genderAllowed()) return false; const Sigcore::Fraction genderFactor = m_species->genderFactor(); switch (gender) @@ -142,7 +142,7 @@ Sigencore::Creature::Gender Sigencore::Creature::gender() const bool Sigencore::Creature::setLevel(const int level) { - if ((level <= 0) || (m_sigmod->rules()->maxLevel() < level)) + if ((level <= 0) || (m_game->rules()->maxLevel() < level)) return false; m_level = level; m_levelExp = calcLevelExperience(m_species->growth(), m_level); @@ -174,7 +174,7 @@ bool Sigencore::Creature::setLevelExperience(const long long levelExp) if (levelExp < 0) return false; const int level = calcLevel(m_species->growth(), levelExp); - if ((level <= 0) || (m_sigmod->rules()->maxLevel() < level)) + if ((level <= 0) || (m_game->rules()->maxLevel() < level)) return false; m_levelExp = levelExp; if (level != m_level) @@ -277,7 +277,7 @@ int Sigencore::Creature::currentHp() const bool Sigencore::Creature::setDv(const Sigmod::Stat stat, const int dv) { - if ((stat == Sigmod::ST_SpecialDefense) && !(m_sigmod->rules()->specialSplit() && m_sigmod->rules()->specialDVSplit())) + if ((stat == Sigmod::ST_SpecialDefense) && !(m_game->rules()->specialSplit() && m_game->rules()->specialDVSplit())) return false; m_dv[stat] = dv; emit(dvChanged(stat, dv)); @@ -291,30 +291,30 @@ int Sigencore::Creature::dv(const Sigmod::Stat stat) const Sigmod::Stat actualStat = stat; if (stat == Sigmod::ST_SpecialDefense) { - if (m_sigmod->rules()->specialSplit() && m_sigmod->rules()->specialDVSplit()) + if (m_game->rules()->specialSplit() && m_game->rules()->specialDVSplit()) actualStat = Sigmod::ST_Special; else return false; } int dv; - if (valueOfType(QString("stat-dv-%1").arg((m_sigmod->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[actualStat]), &dv) && (dv < (m_sigmod->rules()->specialDVSplit() ? 32 : 16))) + if (valueOfType(QString("stat-dv-%1").arg((m_game->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[actualStat]), &dv) && (dv < (m_game->rules()->specialDVSplit() ? 32 : 16))) return dv; return m_dv[actualStat]; } bool Sigencore::Creature::setStatExperience(const Sigmod::Stat stat, const long long statExp) { - if ((stat == Sigmod::ST_Accuracy) || (stat == Sigmod::ST_Evasion) || ((stat == Sigmod::ST_SpecialDefense) && !m_sigmod->rules()->specialSplit())) + if ((stat == Sigmod::ST_Accuracy) || (stat == Sigmod::ST_Evasion) || ((stat == Sigmod::ST_SpecialDefense) && !m_game->rules()->specialSplit())) return false; - if (m_sigmod->rules()->effortValuesAllowed()) + if (m_game->rules()->effortValuesAllowed()) { int evSum = statExp; - for (int i = Sigmod::ST_HP; i <= (m_sigmod->rules()->specialSplit() ? Sigmod::ST_Special : Sigmod::ST_SpecialDefense); ++i) + for (int i = Sigmod::ST_HP; i <= (m_game->rules()->specialSplit() ? Sigmod::ST_Special : Sigmod::ST_SpecialDefense); ++i) { if (i != stat) evSum += m_statExp[i]; } - if ((m_sigmod->rules()->maxEVPerStat() < statExp) || (m_sigmod->rules()->maxTotalEV() < evSum)) + if ((m_game->rules()->maxEVPerStat() < statExp) || (m_game->rules()->maxTotalEV() < evSum)) return false; } m_statExp[stat] = statExp; @@ -330,7 +330,7 @@ bool Sigencore::Creature::giveStatExperience(const Sigmod::Stat stat, const long long long Sigencore::Creature::statExperience(const Sigmod::Stat stat) const { long long exp = m_statExp[stat]; - valueOfType(QString("stat-experience-%1").arg((m_sigmod->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[stat]), &exp); + valueOfType(QString("stat-experience-%1").arg((m_game->rules()->specialSplit() ? Sigmod::StatGSCStr : Sigmod::StatRBYStr)[stat]), &exp); return exp; } @@ -342,21 +342,21 @@ int Sigencore::Creature::statValue(const Sigmod::Stat stat) const foreach (Sigscript::NatureWrapper* nature, m_natures) multiplier *= nature->stat(stat); } - return calcStat(m_sigmod, stat, m_level, m_species->baseStat(stat), dv(stat), statExperience(stat), multiplier); + return calcStat(m_game, stat, m_level, m_species->baseStat(stat), dv(stat), statExperience(stat), multiplier); } -int Sigencore::Creature::calcStat(Sigscript::SigmodWrapper* sigmod, const Sigmod::Stat stat, const int level, const int baseStat, const int dv, const int statExp, const Sigcore::Fraction& multiplier) +int Sigencore::Creature::calcStat(Sigscript::GameWrapper* game, const Sigmod::Stat stat, const int level, const int baseStat, const int dv, const int statExp, const Sigcore::Fraction& multiplier) { int statValue = statExp; - if (!sigmod->rules()->effortValuesAllowed() && statValue) + if (!game->rules()->effortValuesAllowed() && statValue) statValue = sqrt(statValue - 1) + 1; statValue >>= 2; statValue += baseStat << 1; - if (sigmod->rules()->specialDVSplit()) + if (game->rules()->specialDVSplit()) statValue += dv << 1; else statValue += dv; - statValue *= double(level) / sigmod->rules()->maxLevel(); + statValue *= double(level) / game->rules()->maxLevel(); if (stat == Sigmod::ST_HP) statValue += 10 + level; else @@ -371,7 +371,7 @@ void Sigencore::Creature::recalcStats() recalcStat(Sigmod::ST_Attack); recalcStat(Sigmod::ST_Defense); recalcStat(Sigmod::ST_Speed); - if (m_sigmod->rules()->specialSplit()) + if (m_game->rules()->specialSplit()) { recalcStat(Sigmod::ST_SpecialAttack); recalcStat(Sigmod::ST_SpecialDefense); @@ -388,7 +388,7 @@ void Sigencore::Creature::recalcStat(const Sigmod::Stat stat) bool Sigencore::Creature::addAbility(Sigscript::AbilityWrapper* ability) { - if ((m_abilities.size() < m_sigmod->rules()->maxAbilities()) && !m_abilities.contains(ability)) + if ((m_abilities.size() < m_game->rules()->maxAbilities()) && !m_abilities.contains(ability)) { m_abilities.append(ability); emit(abilityAdded(ability)); @@ -438,7 +438,7 @@ bool Sigencore::Creature::addItems(Sigscript::ItemWrapper* item, const int count else if (0 < count) { const int diffWeight = m_species->weight() - (itemWeight() + addWeight); - const int diffCount = m_sigmod->rules()->maxHeldItems() - (itemCount() + count); + const int diffCount = m_game->rules()->maxHeldItems() - (itemCount() + count); if ((0 < diffWeight) && (0 < diffCount)) end = count; else if (!allOrNothing) @@ -495,7 +495,7 @@ bool Sigencore::Creature::addMove(Sigscript::MoveWrapper* move) if (m_species->move(i)->move() == move) canLearn = true; } - if (canLearn && (m_moves.size() < m_sigmod->rules()->maxMoves()) && !m_moves.contains(move)) + if (canLearn && (m_moves.size() < m_game->rules()->maxMoves()) && !m_moves.contains(move)) { m_moves.append(move); emit(moveAdded(move)); @@ -527,7 +527,7 @@ bool Sigencore::Creature::hasMove(Sigscript::MoveWrapper* move) const bool Sigencore::Creature::addNature(Sigscript::NatureWrapper* nature) { - if ((m_natures.size() < m_sigmod->rules()->maxNatures()) && !m_natures.contains(nature)) + if ((m_natures.size() < m_game->rules()->maxNatures()) && !m_natures.contains(nature)) { m_natures.append(nature); emit(natureAdded(nature)); @@ -596,7 +596,7 @@ void Sigencore::Creature::completeData() m_name = m_species->name(); if (m_gender == Undecided) { - if (!m_sigmod->rules()->genderAllowed() || (m_species->genderFactor() < 0)) + if (!m_game->rules()->genderAllowed() || (m_species->genderFactor() < 0)) m_gender = Genderless; else m_gender = (m_species->genderFactor().poll() ? Female : Male); @@ -612,7 +612,7 @@ void Sigencore::Creature::completeData() void Sigencore::Creature::completeStats() { - if (m_sigmod->rules()->specialSplit() && m_sigmod->rules()->specialDVSplit()) + if (m_game->rules()->specialSplit() && m_game->rules()->specialDVSplit()) { for (int i = Sigmod::ST_HP; i <= Sigmod::ST_SpecialDefense; ++i) m_dv[i] = qrand() & 31; @@ -628,7 +628,7 @@ void Sigencore::Creature::completeStats() void Sigencore::Creature::completeAbilities() { Sigcore::Hat<Sigscript::AbilityWrapper*> abilityHat = m_species->abilityHat(); - while ((m_abilities.size() < sigmod()->rules()->maxAbilities()) && abilityHat.count()) + while ((m_abilities.size() < game()->rules()->maxAbilities()) && abilityHat.count()) addAbility(abilityHat.takeAndClear()); } @@ -636,7 +636,7 @@ void Sigencore::Creature::completeItems() { Sigcore::Hat<Sigscript::ItemWrapper*> itemHat = m_species->itemHat(); int i = 0; - while ((i < m_sigmod->rules()->maxHeldItems()) && itemHat.count()) + while ((i < m_game->rules()->maxHeldItems()) && itemHat.count()) { if (m_species->itemChance().poll()) { @@ -666,8 +666,8 @@ void Sigencore::Creature::completeMoves() void Sigencore::Creature::completeNatures() { - Sigcore::Hat<Sigscript::NatureWrapper*> natureHat = sigmod()->natureHat(); - while ((m_natures.size() < m_sigmod->rules()->maxNatures()) && natureHat.count()) + Sigcore::Hat<Sigscript::NatureWrapper*> natureHat = game()->natureHat(); + while ((m_natures.size() < m_game->rules()->maxNatures()) && natureHat.count()) addNature(natureHat.takeAndClear()); } |