From 83f4b43f63960ba30e38cf5bb53cd98ae738ef74 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 26 Oct 2007 21:21:38 +0000 Subject: Redoing rev25 [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@27 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemod/AbilityEffect.cpp | 48 ++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) (limited to 'pokemod/AbilityEffect.cpp') 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; } -- cgit