49 lines
2.9 KiB
C++
49 lines
2.9 KiB
C++
#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::CreateHeldItemTimeEvolution(const Item* item, TimeOfDay startTime,
|
|
TimeOfDay endTime, const PokemonSpecies* into) {
|
|
return new EvolutionData(EvolutionMethod::HoldsItemTime,
|
|
{
|
|
new CreatureLib::Library::EffectParameter(item->GetName()),
|
|
new CreatureLib::Library::EffectParameter((i64)startTime),
|
|
new CreatureLib::Library::EffectParameter((i64)endTime),
|
|
},
|
|
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);
|
|
}
|