// data/mockPokemon.ts
import type { PokemonData } from '../types/pokemon';
export const mockPokemonData: PokemonData[] = [
{
objectID: "1",
name: "Bulbasaur",
number: 1,
types: ["Grass", "Poison"],
stats: {
hp: 45,
attack: 49,
defense: 49,
specialAttack: 65,
specialDefense: 65,
speed: 45,
total: 318
},
abilities: ["Overgrow"],
hiddenAbility: "Chlorophyll",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/1.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png",
height: 0.7,
weight: 6.9,
generation: 1,
competitiveTier: "LC",
battleRole: "Special Attacker",
usagePercent: 8.5,
keyMoves: ["Vine Whip", "Sleep Powder", "Sludge Bomb"],
typeEffectiveness: {
weakTo: ["Fire", "Ice", "Flying", "Psychic"],
resistantTo: ["Water", "Electric", "Grass", "Fighting", "Fairy"],
immuneTo: [],
normalDamageFrom: ["Normal", "Rock", "Bug", "Ghost", "Steel", "Dark", "Dragon"]
}
},
{
objectID: "4",
name: "Charmander",
number: 4,
types: ["Fire"],
stats: {
hp: 39,
attack: 52,
defense: 43,
specialAttack: 60,
specialDefense: 50,
speed: 65,
total: 309
},
abilities: ["Blaze"],
hiddenAbility: "Solar Power",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/4.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png",
height: 0.6,
weight: 8.5,
generation: 1,
competitiveTier: "LC",
battleRole: "Physical Attacker",
usagePercent: 12.3,
keyMoves: ["Ember", "Dragon Pulse", "Fire Punch"],
typeEffectiveness: {
weakTo: ["Water", "Ground", "Rock"],
resistantTo: ["Fire", "Grass", "Ice", "Bug", "Steel", "Fairy"],
immuneTo: [],
normalDamageFrom: ["Normal", "Electric", "Fighting", "Poison", "Flying", "Psychic", "Ghost", "Dragon", "Dark"]
}
},
{
objectID: "6",
name: "Charizard",
number: 6,
types: ["Fire", "Flying"],
stats: {
hp: 78,
attack: 84,
defense: 78,
specialAttack: 109,
specialDefense: 85,
speed: 100,
total: 534
},
abilities: ["Blaze"],
hiddenAbility: "Solar Power",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/6.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png",
height: 1.7,
weight: 90.5,
generation: 1,
competitiveTier: "OU",
battleRole: "Special Attacker",
usagePercent: 15.8,
keyMoves: ["Flamethrower", "Air Slash", "Solar Beam", "Dragon Pulse"],
typeEffectiveness: {
weakTo: ["Water", "Electric", "Rock"],
resistantTo: ["Fire", "Grass", "Fighting", "Bug", "Steel", "Fairy"],
immuneTo: ["Ground"],
normalDamageFrom: ["Normal", "Ice", "Poison", "Flying", "Psychic", "Ghost", "Dragon", "Dark"]
}
},
{
objectID: "7",
name: "Squirtle",
number: 7,
types: ["Water"],
stats: {
hp: 44,
attack: 48,
defense: 65,
specialAttack: 50,
specialDefense: 64,
speed: 43,
total: 314
},
abilities: ["Torrent"],
hiddenAbility: "Rain Dish",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/7.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png",
height: 0.5,
weight: 9.0,
generation: 1,
competitiveTier: "LC",
battleRole: "Tank",
usagePercent: 9.2,
keyMoves: ["Water Gun", "Ice Beam", "Rapid Spin"],
typeEffectiveness: {
weakTo: ["Electric", "Grass"],
resistantTo: ["Fire", "Water", "Ice", "Steel"],
immuneTo: [],
normalDamageFrom: ["Normal", "Fighting", "Poison", "Ground", "Flying", "Psychic", "Bug", "Rock", "Ghost", "Dragon", "Dark", "Fairy"]
}
},
{
objectID: "25",
name: "Pikachu",
number: 25,
types: ["Electric"],
stats: {
hp: 35,
attack: 55,
defense: 40,
specialAttack: 50,
specialDefense: 50,
speed: 90,
total: 320
},
abilities: ["Static"],
hiddenAbility: "Lightning Rod",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/25.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png",
height: 0.4,
weight: 6.0,
generation: 1,
competitiveTier: "ZU",
battleRole: "Fast Attacker",
usagePercent: 3.1,
keyMoves: ["Thunderbolt", "Volt Tackle", "Quick Attack"],
typeEffectiveness: {
weakTo: ["Ground"],
resistantTo: ["Electric", "Flying", "Steel"],
immuneTo: [],
normalDamageFrom: ["Normal", "Fire", "Water", "Grass", "Ice", "Fighting", "Poison", "Psychic", "Bug", "Rock", "Ghost", "Dragon", "Dark", "Fairy"]
}
},
{
objectID: "150",
name: "Mewtwo",
number: 150,
types: ["Psychic"],
stats: {
hp: 106,
attack: 110,
defense: 90,
specialAttack: 154,
specialDefense: 90,
speed: 130,
total: 680
},
abilities: ["Pressure"],
hiddenAbility: "Unnerve",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/150.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/150.png",
height: 2.0,
weight: 122.0,
generation: 1,
competitiveTier: "Ubers",
battleRole: "Special Sweeper",
usagePercent: 35.7,
keyMoves: ["Psystrike", "Ice Beam", "Thunderbolt", "Fire Blast"],
typeEffectiveness: {
weakTo: ["Bug", "Ghost", "Dark"],
resistantTo: ["Fighting", "Psychic"],
immuneTo: [],
normalDamageFrom: ["Normal", "Fire", "Water", "Electric", "Grass", "Ice", "Poison", "Ground", "Flying", "Rock", "Steel", "Dragon", "Fairy"]
}
},
{
objectID: "448",
name: "Lucario",
number: 448,
types: ["Fighting", "Steel"],
stats: {
hp: 70,
attack: 110,
defense: 70,
specialAttack: 115,
specialDefense: 70,
speed: 90,
total: 525
},
abilities: ["Steadfast", "Inner Focus"],
hiddenAbility: "Justified",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/448.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/448.png",
height: 1.2,
weight: 54.0,
generation: 4,
competitiveTier: "UU",
battleRole: "Mixed Attacker",
usagePercent: 18.9,
keyMoves: ["Aura Sphere", "Flash Cannon", "Close Combat", "Extreme Speed"],
typeEffectiveness: {
weakTo: ["Fire", "Fighting", "Ground"],
resistantTo: ["Normal", "Grass", "Ice", "Bug", "Rock", "Dragon", "Steel", "Fairy"],
immuneTo: ["Poison"],
normalDamageFrom: ["Water", "Electric", "Flying", "Psychic", "Ghost", "Dark"]
}
},
{
objectID: "445",
name: "Garchomp",
number: 445,
types: ["Dragon", "Ground"],
stats: {
hp: 108,
attack: 130,
defense: 95,
specialAttack: 80,
specialDefense: 85,
speed: 102,
total: 600
},
abilities: ["Sand Veil"],
hiddenAbility: "Rough Skin",
image: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/445.png",
sprite: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/445.png",
height: 1.9,
weight: 95.0,
generation: 4,
competitiveTier: "OU",
battleRole: "Physical Sweeper",
usagePercent: 28.4,
keyMoves: ["Earthquake", "Dragon Claw", "Stone Edge", "Fire Fang"],
typeEffectiveness: {
weakTo: ["Ice", "Dragon", "Fairy"],
resistantTo: ["Fire", "Poison", "Rock"],
immuneTo: ["Electric"],
normalDamageFrom: ["Normal", "Water", "Grass", "Fighting", "Flying", "Psychic", "Bug", "Ghost", "Steel", "Dark"]
}
}
];
export function searchMockPokemon(query: string): PokemonData[] {
if (!query.trim()) {
return mockPokemonData.slice(0, 5); // Return first 5 for empty query
}
const lowerQuery = query.toLowerCase();
return mockPokemonData.filter(pokemon =>
pokemon.name.toLowerCase().includes(lowerQuery) ||
pokemon.types.some(type => type.toLowerCase().includes(lowerQuery)) ||
pokemon.abilities.some(ability => ability.toLowerCase().includes(lowerQuery))
);
}