pokemon-pocket-mcp-server
Version:
MCP server for querying Pokemon Pocket TCG cards with DuckDB
48 lines (47 loc) • 2.42 kB
TypeScript
/**
* Pokemon TCG Pocket Game Rules Constants
*
* This file contains core game rules and constants for Pokemon TCG Pocket.
* Use these for validation and game logic throughout the codebase.
*/
export declare const GAME_RULES: {
readonly DECK_SIZE: 20;
readonly MAX_COPIES_PER_CARD: 2;
readonly MIN_BASIC_POKEMON: 5;
readonly RECOMMENDED_MIN_BASIC: 6;
readonly MAX_BENCH_SLOTS: 3;
readonly POINTS_TO_WIN: 3;
readonly STARTING_HAND_SIZE: 5;
readonly MAX_ENERGY_TYPES: 3;
readonly RECOMMENDED_ENERGY_TYPES: 2;
readonly ENERGY_PER_TURN: 1;
readonly RECOMMENDED_POKEMON_MIN: 12;
readonly RECOMMENDED_POKEMON_MAX: 15;
readonly RECOMMENDED_TRAINERS_MIN: 5;
readonly RECOMMENDED_TRAINERS_MAX: 8;
readonly REGULAR_POKEMON_POINTS: 1;
readonly EX_POKEMON_POINTS: 2;
};
export declare const GAME_CONTEXT = "\nPokemon TCG Pocket uses a unique format:\n- 20-card decks with Energy Zone (auto-generates 1 Energy/turn, NOT from deck)\n- 3-point win condition (ex Pokemon = 2 pts, regular = 1 pt)\n- Max 3 bench slots (not 5 like standard TCG)\n- Turn 1 restrictions: no draw, no energy, no attack\n- 1-2 Energy types recommended (3+ types = inconsistent due to random generation)\n- Max 2 copies per card\n";
export declare const IMPORTANT_CARDS: {
readonly STAPLES: readonly ["Professor's Research", "Poké Ball", "Sabrina", "Giovanni"];
readonly STAGE_2_ACCELERATION: "Rare Candy";
readonly EVOLUTION_SEARCH: "Pokémon Communication";
readonly HP_BOOST: "Giant Cape";
readonly GRASS_HP_BOOST: "Leaf Cape";
readonly CHIP_DAMAGE: "Rocky Helmet";
};
export declare const ENERGY_CONSISTENCY: {
readonly ONE_TYPE: "Always generates that type (100% consistent)";
readonly TWO_TYPES: "Random 50/50 split (good flexibility)";
readonly THREE_TYPES: "Random 33/33/33 split (too inconsistent - avoid)";
};
export declare const COMMON_MISTAKES: readonly ["Running 3 Energy types (too inconsistent)", "Not including enough Basics (5-6 minimum)", "Over-benching (leaves vulnerable to Sabrina/Cyrus)", "Forgetting +10 damage from Giovanni for KO math", "Not including Rare Candy in Stage 2 decks"];
/**
* Check if a deck meets basic Pokemon TCG Pocket rules
*/
export declare function validateDeckRules(deckSize: number, energyTypeCount: number, basicCount: number): {
valid: boolean;
errors: string[];
warnings: string[];
};