summaryrefslogtreecommitdiffstats
path: root/pokemod/AbilityEffect.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2007-10-26 20:01:48 +0000
committerBen Boeckel <MathStuf@gmail.com>2007-10-26 20:01:48 +0000
commit1f08afc80c73087bf9bde639754670548b89fc9f (patch)
tree70a80d7998d9279a75509fed14238b3ba493e9eb /pokemod/AbilityEffect.cpp
parent5b55d13ead7e352ee1feaae72009e8abf5bd071a (diff)
downloadsigen-1f08afc80c73087bf9bde639754670548b89fc9f.tar.gz
sigen-1f08afc80c73087bf9bde639754670548b89fc9f.tar.xz
sigen-1f08afc80c73087bf9bde639754670548b89fc9f.zip
[ADD] DISCLAIMER
[FIX] PokemonEvolution styles [ADD] Relative enumeration [DEL] pokemod/Status.{h, cpp} [DEL] pokemod/StatusEffect.{h, cpp} [FIX] Status effects will be added as needed instead of customized [FIX] Completed ItemEffects [FIX] Factored out Natures to be global [DEL] pokemod/PokemonNature.{h, cpp} [DEL] ai/Net.{h, cpp} [DEL] ai/Layer/{h, cpp} [ADD] battle/Arena.{h, cpp} [ADD] battle/Team.{h, cpp} [ADD] battle/Human.{h, cpp} [ADD] battle/Bot.{h, cpp} [ADD] battle/GhostBot.{h, cpp} [ADD] battle/Pokemon.{h, cpp} [ADD] battle/Ghost.{h, cpp} [FIX] Fixed some scope errors in pokemod [ADD] audio/audio.pro [ADD] audio/Audio.{h, cpp} [ADD] audio/AudioLibrary.{h, cpp} [ADD] audio/AudioSystem.{h, cpp} [ADD] audio/Music.{h, cpp} [ADD] audio/SoundEffect.{h, cpp} [DEL] old audio system (was in C) [FIX] Optimized some routines in pokemod [FIX] Moved global classes (Ini, Frac, Matrix, FracMatrix, Point, Flag) to general git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@25 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/AbilityEffect.cpp')
-rw-r--r--pokemod/AbilityEffect.cpp48
1 files changed, 29 insertions, 19 deletions
diff --git a/pokemod/AbilityEffect.cpp b/pokemod/AbilityEffect.cpp
index 695778ba..fa32ce1b 100644
--- a/pokemod/AbilityEffect.cpp
+++ b/pokemod/AbilityEffect.cpp
@@ -22,6 +22,16 @@
#include "AbilityEffect.h"
+const char* PokeGen::PokeMod::AbilityEffect::EffectStr[PokeGen::PokeMod::AbilityEffect::E_End] = {"Damage to HP", "Prevent Damage", "Auto Heal", "Deal Damage", "Wilds", "Stat", "Status", "Ability", "Accuracy/Power Trade", "Bullseye", "Item Effect", "Type", "Fast Hatch", "Weather"};
+const char* PokeGen::PokeMod::AbilityEffect::TriggerStr[PokeGen::PokeMod::AbilityEffect::T_End] = {"Anything", "Contact", "Weather", "Damage", "Type", "HP Boundary", "Stat Change", "Status"};
+const char* PokeGen::PokeMod::AbilityEffect::InteractStr[PokeGen::PokeMod::AbilityEffect::I_End] = {"Trade", "Shadow", "Block"};
+const char* PokeGen::PokeMod::AbilityEffect::PowerAccStr[PokeGen::PokeMod::AbilityEffect::PA_End] = {"Boost Power", "Boost Accuracy"};
+const char* PokeGen::PokeMod::AbilityEffect::ItemStr[PokeGen::PokeMod::AbilityEffect::IT_End] = {"Stat Modifier", "Type Booster", "Flinch", "Go First"};
+const char* PokeGen::PokeMod::AbilityEffect::CauseStr[PokeGen::PokeMod::AbilityEffect::C_End] = {"Prevent", "Inflict"};
+const char* PokeGen::PokeMod::AbilityEffect::BoostStr[PokeGen::PokeMod::AbilityEffect::B_End] = {"Boost", "Hinder"};
+const char* PokeGen::PokeMod::AbilityEffect::SideStr[PokeGen::PokeMod::AbilityEffect::S_End] = {"Above", "Below"};
+
+
PokeGen::PokeMod::AbilityEffect::AbilityEffect(const Pokemod* par, const unsigned _id) :
Object(_id, par),
chance(1, 1),
@@ -45,12 +55,7 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
{
pokemod->ValidationMsg(QString("------Effect with id %1---").arg(id), Pokemod::V_Msg);
chance.Reduce();
- if (E_End <= effect)
- {
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has invalid effect").arg(id));
- isValid = false;
- }
- else
+ if (effect < E_End)
{
bool ok = true;
switch (effect)
@@ -60,7 +65,7 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
ok = false;
break;
case E_Status:
- if (pokemod->GetStatusByID(val1) == UINT_MAX)
+ if (STS_End <= val1)
ok = false;
break;
case E_Ability:
@@ -85,7 +90,7 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
}
if (!ok)
{
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has an invalid value1").arg(id));
+ pokemod->ValidationMsg("Invalid value1");
isValid = false;
ok = true;
}
@@ -110,7 +115,7 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
}
if (!ok)
{
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has an invalid value2").arg(id));
+ pokemod->ValidationMsg("Invalid value2");
isValid = false;
ok = true;
}
@@ -133,17 +138,17 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
}
if (!ok)
{
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has an invalid value3").arg(id));
+ pokemod->ValidationMsg("Invalid value3");
isValid = false;
ok = true;
}
}
- if (T_End <= trigger)
+ else
{
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has an invalid trigger").arg(id));
+ pokemod->ValidationMsg("Invalid effect");
isValid = false;
}
- else
+ if (trigger < T_End)
{
bool ok = true;
switch (trigger)
@@ -165,16 +170,21 @@ bool PokeGen::PokeMod::AbilityEffect::Validate()
ok = false;
break;
case T_Status:
- if (pokemod->GetStatusByID(tval1) == UINT_MAX)
+ if (STS_End <= tval1)
ok = false;
}
if (!ok)
{
- pokemod->ValidationMsg(QString("AbilityEffect with id %1 has an invalid trigger value1").arg(id));
+ pokemod->ValidationMsg("Invalid trigger value1");
isValid = false;
}
tval2.Reduce();
}
+ else
+ {
+ pokemod->ValidationMsg("Invalid trigger");
+ isValid = false;
+ }
return isValid;
}
@@ -253,7 +263,7 @@ bool PokeGen::PokeMod::AbilityEffect::SetVal1(const unsigned v1)
val1 = v1;
break;
case E_Status:
- if (pokemod->GetStatusByID(v1) != UINT_MAX)
+ if (v1 < STS_End)
val1 = v1;
break;
case E_Ability:
@@ -360,7 +370,7 @@ bool PokeGen::PokeMod::AbilityEffect::SetTval1(const unsigned tv1)
tval1 = tv1;
break;
case T_Status:
- if (pokemod->GetStatusByID(tv1) != UINT_MAX)
+ if (tv1 < STS_End)
tval1 = tv1;
break;
}
@@ -397,7 +407,7 @@ bool PokeGen::PokeMod::AbilityEffect::SetTval2Denom(const unsigned d)
return false;
}
-PokeGen::PokeMod::Frac PokeGen::PokeMod::AbilityEffect::GetChance() const
+PokeGen::Frac PokeGen::PokeMod::AbilityEffect::GetChance() const
{
return chance;
}
@@ -442,7 +452,7 @@ unsigned PokeGen::PokeMod::AbilityEffect::GetTval1() const
return tval1;
}
-PokeGen::PokeMod::Frac PokeGen::PokeMod::AbilityEffect::GetTval2() const
+PokeGen::Frac PokeGen::PokeMod::AbilityEffect::GetTval2() const
{
return tval2;
}