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