summaryrefslogtreecommitdiffstats
path: root/sigencore
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-07-19 14:24:56 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-07-19 14:24:56 -0400
commit2deabfe7c5f93805cd33e49d8dc75e7718dea494 (patch)
tree9daeb87c44a65c7e1910c0484b14a635e0436b37 /sigencore
parentae9ba580020774e8942000db2fcc84c41845f942 (diff)
downloadsigen-2deabfe7c5f93805cd33e49d8dc75e7718dea494.tar.gz
sigen-2deabfe7c5f93805cd33e49d8dc75e7718dea494.tar.xz
sigen-2deabfe7c5f93805cd33e49d8dc75e7718dea494.zip
Allow for unlimited stages of stat modifiers
Diffstat (limited to 'sigencore')
-rw-r--r--sigencore/Creature.cpp4
-rw-r--r--sigencore/TeamMember.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/sigencore/Creature.cpp b/sigencore/Creature.cpp
index bf77a392..43782775 100644
--- a/sigencore/Creature.cpp
+++ b/sigencore/Creature.cpp
@@ -311,7 +311,7 @@ bool Creature::setStatExperience(const Stat stat, const long long statExp)
{
if ((stat == ST_Accuracy) || (stat == ST_Evasion) || ((stat == ST_SpecialDefense) && !m_game->rules()->specialSplit()))
return false;
- if (m_game->rules()->effortValuesAllowed())
+ if (0 < m_game->rules()->maxTotalEV())
{
int evSum = statExp;
for (int i = ST_HP; i <= (m_game->rules()->specialSplit() ? ST_Special : ST_SpecialDefense); ++i)
@@ -353,7 +353,7 @@ int Creature::statValue(const Stat stat) const
int Creature::calcStat(GameWrapper* game, const Stat stat, const int level, const int baseStat, const int dv, const int statExp, const Fraction& multiplier)
{
int statValue = statExp;
- if (!game->rules()->effortValuesAllowed() && statValue)
+ if (!game->rules()->maxTotalEV() && statValue)
statValue = sqrt(statValue - 1) + 1;
statValue >>= 2;
statValue += baseStat << 1;
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp
index 5037df69..887cc4b3 100644
--- a/sigencore/TeamMember.cpp
+++ b/sigencore/TeamMember.cpp
@@ -143,7 +143,7 @@ bool TeamMember::setStatStage(const Stat stat, const int stage)
{
if (stat == ST_HP)
return false;
- if (m_game->rules()->maxStages() < qAbs(stage))
+ if ((m_game->rules()->maxStages() < 0) || (m_game->rules()->maxStages() < qAbs(stage)))
return false;
m_stages[stat - ST_Attack] = stage;
emit(statStageChanged(stat, stage));
@@ -162,7 +162,7 @@ int TeamMember::statStage(const Stat stat) const
int stages;
if (stat == ST_HP)
return 0;
- if (valueOfType(QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? StatGSCStr : StatRBYStr)[stat]), &stages) && (qAbs(stages) <= m_game->rules()->maxStages()))
+ if (valueOfType(QString("stat-stages-%1").arg((m_game->rules()->specialSplit() ? StatGSCStr : StatRBYStr)[stat]), &stages) && ((m_game->rules()->maxStages() < 0) || (qAbs(stages) <= m_game->rules()->maxStages())))
return stages;
return m_stages[stat - ST_Attack];
}