#include "EvolutionData.hpp" #include "../Items/Item.hpp" #include "../Moves/MoveData.hpp" #include "../Species/PokemonSpecies.hpp" using namespace PkmnLib::Library; const EvolutionData* PkmnLib::Library::EvolutionData::CreateKnownMoveEvolution(const MoveData* move, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::KnownMove, {new CreatureLib::Library::EffectParameter(move->GetName())}, into); } const EvolutionData* EvolutionData::CreateHeldItemEvolution(const Item* item, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::HoldsItem, {new CreatureLib::Library::EffectParameter(item->GetName())}, into); } const EvolutionData* EvolutionData::CreateItemUseEvolution(const Item* item, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::EvolutionItemUse, {new CreatureLib::Library::EffectParameter(item->GetName())}, into); } const EvolutionData* EvolutionData::CreateItemUseWithGenderEvolution(const Item* item, CreatureLib::Library::Gender gender, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::EvolutionItemUseWithGender, {new CreatureLib::Library::EffectParameter(item->GetName()), new CreatureLib::Library::EffectParameter((int64_t)gender)}, into); } const EvolutionData* EvolutionData::CreateTradeWithItemEvolution(const Item* item, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::TradeWithHeldItem, {new CreatureLib::Library::EffectParameter(item->GetName())}, into); } const EvolutionData* EvolutionData::CreateTradeWithSpeciesEvolution(const PokemonSpecies* traded, const PokemonSpecies* into) { return new EvolutionData(EvolutionMethod::TradeWithSpecificPokemon, {new CreatureLib::Library::EffectParameter(traded->GetName())}, into); }