Add CardService and card data conversion pipeline
- Rename data/cards/ to data/raw/ for scraped data - Add data/definitions/ as authoritative card data source - Add convert_cards.py script to transform raw -> definitions - Generate 378 card definitions (344 Pokemon, 24 Trainers, 10 Energy) - Add CardService for loading and querying card definitions - In-memory indexes for fast lookups by type, set, pokemon_type - search() with multiple filter criteria - get_all_cards() for GameEngine integration - Add SetInfo model for set metadata - Update Attack model with damage_display field for variable damage - Update CardDefinition with image_path, illustrator, flavor_text - Add 45 tests (21 converter + 24 CardService) - Update scraper output path to data/raw/ Card data is JSON-authoritative (no database) to support offline fork goal.
This commit is contained in:
parent
29ab0b3d84
commit
934aa4c443
@ -55,6 +55,8 @@ class Attack(BaseModel):
|
|||||||
cost: List of energy types required to use this attack.
|
cost: List of energy types required to use this attack.
|
||||||
Colorless can be satisfied by any energy type.
|
Colorless can be satisfied by any energy type.
|
||||||
damage: Base damage dealt by this attack. May be modified by effects.
|
damage: Base damage dealt by this attack. May be modified by effects.
|
||||||
|
damage_display: UI display string for variable damage (e.g., "30+", "50x").
|
||||||
|
Used when damage can vary based on conditions. If None, just show damage value.
|
||||||
effect_id: Optional reference to an effect handler for special effects.
|
effect_id: Optional reference to an effect handler for special effects.
|
||||||
effect_params: Parameters passed to the effect handler.
|
effect_params: Parameters passed to the effect handler.
|
||||||
effect_description: Human-readable description of the effect.
|
effect_description: Human-readable description of the effect.
|
||||||
@ -63,6 +65,7 @@ class Attack(BaseModel):
|
|||||||
name: str
|
name: str
|
||||||
cost: list[EnergyType] = Field(default_factory=list)
|
cost: list[EnergyType] = Field(default_factory=list)
|
||||||
damage: int = 0
|
damage: int = 0
|
||||||
|
damage_display: str | None = None
|
||||||
effect_id: str | None = None
|
effect_id: str | None = None
|
||||||
effect_params: dict[str, Any] = Field(default_factory=dict)
|
effect_params: dict[str, Any] = Field(default_factory=dict)
|
||||||
effect_description: str | None = None
|
effect_description: str | None = None
|
||||||
@ -196,7 +199,10 @@ class CardDefinition(BaseModel):
|
|||||||
Basic energy provides one of its type. Special energy may provide multiple.
|
Basic energy provides one of its type. Special energy may provide multiple.
|
||||||
rarity: Card rarity (common, uncommon, rare, etc.).
|
rarity: Card rarity (common, uncommon, rare, etc.).
|
||||||
set_id: Which card set this belongs to.
|
set_id: Which card set this belongs to.
|
||||||
image_url: URL to the card image.
|
image_url: URL to the card image (CDN).
|
||||||
|
image_path: Local path to the card image (e.g., "pokemon/a1/001-bulbasaur.webp").
|
||||||
|
illustrator: Artist who illustrated this card.
|
||||||
|
flavor_text: Flavor text on the card (Pokemon only, typically).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: str
|
id: str
|
||||||
@ -229,6 +235,9 @@ class CardDefinition(BaseModel):
|
|||||||
rarity: str = "common"
|
rarity: str = "common"
|
||||||
set_id: str = ""
|
set_id: str = ""
|
||||||
image_url: str | None = None
|
image_url: str | None = None
|
||||||
|
image_path: str | None = None # Local path: "pokemon/a1/001-bulbasaur.webp"
|
||||||
|
illustrator: str | None = None
|
||||||
|
flavor_text: str | None = None
|
||||||
|
|
||||||
@model_validator(mode="after")
|
@model_validator(mode="after")
|
||||||
def validate_card_type_fields(self) -> "CardDefinition":
|
def validate_card_type_fields(self) -> "CardDefinition":
|
||||||
|
|||||||
@ -11,9 +11,13 @@ Services in this module:
|
|||||||
- CardService: Load and lookup card definitions from bundled JSON
|
- CardService: Load and lookup card definitions from bundled JSON
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from app.services.card_service import CardService, SetInfo, get_card_service
|
||||||
from app.services.game_state_manager import GameStateManager, game_state_manager
|
from app.services.game_state_manager import GameStateManager, game_state_manager
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
"CardService",
|
||||||
"GameStateManager",
|
"GameStateManager",
|
||||||
|
"SetInfo",
|
||||||
"game_state_manager",
|
"game_state_manager",
|
||||||
|
"get_card_service",
|
||||||
]
|
]
|
||||||
|
|||||||
379
backend/app/services/card_service.py
Normal file
379
backend/app/services/card_service.py
Normal file
@ -0,0 +1,379 @@
|
|||||||
|
"""Card service for loading and serving card definitions.
|
||||||
|
|
||||||
|
This service loads card definitions from JSON files in data/definitions/ and
|
||||||
|
serves them to the game engine and other parts of the application.
|
||||||
|
|
||||||
|
Cards are loaded into memory at startup for fast lookups. The service maintains
|
||||||
|
several indexes for efficient querying by type, set, and other criteria.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
card_service = CardService()
|
||||||
|
await card_service.load_all()
|
||||||
|
|
||||||
|
# Get a single card
|
||||||
|
pikachu = card_service.get_card("a1-025-pikachu")
|
||||||
|
|
||||||
|
# Get all cards for game engine
|
||||||
|
registry = card_service.get_all_cards()
|
||||||
|
|
||||||
|
# Search cards
|
||||||
|
grass_pokemon = card_service.search(
|
||||||
|
card_type=CardType.POKEMON,
|
||||||
|
pokemon_type=EnergyType.GRASS,
|
||||||
|
)
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from app.core.enums import CardType, EnergyType, PokemonStage, PokemonVariant
|
||||||
|
from app.core.models.card import CardDefinition
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
pass
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# TODO: Update CDN_BASE_URL when CDN is configured
|
||||||
|
CDN_BASE_URL = "https://cdn.mantimon.com/cards"
|
||||||
|
|
||||||
|
|
||||||
|
class SetInfo(BaseModel):
|
||||||
|
"""Metadata about a card set.
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
code: Unique identifier for the set (e.g., "a1").
|
||||||
|
name: Display name of the set (e.g., "Genetic Apex").
|
||||||
|
card_count: Total number of cards in this set.
|
||||||
|
"""
|
||||||
|
|
||||||
|
code: str
|
||||||
|
name: str
|
||||||
|
card_count: int
|
||||||
|
|
||||||
|
|
||||||
|
class CardService:
|
||||||
|
"""Load and serve card definitions from JSON files.
|
||||||
|
|
||||||
|
This service loads all card definitions into memory at startup for fast
|
||||||
|
lookups. Cards are immutable after loading - all lookups are in-memory.
|
||||||
|
|
||||||
|
The service maintains several indexes for efficient querying:
|
||||||
|
- By ID: O(1) lookup for any card
|
||||||
|
- By type: O(1) to get all Pokemon, Trainers, or Energy
|
||||||
|
- By set: O(1) to get all cards from a set
|
||||||
|
- By Pokemon type: O(1) to get all Pokemon of a specific type
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
definitions_dir: Path to the definitions directory.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, definitions_dir: Path | None = None) -> None:
|
||||||
|
"""Initialize the card service.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
definitions_dir: Path to the data/definitions directory.
|
||||||
|
If None, uses the default location relative to this file.
|
||||||
|
"""
|
||||||
|
if definitions_dir is None:
|
||||||
|
# Default: backend/data/definitions/
|
||||||
|
self._definitions_dir = Path(__file__).parent.parent.parent / "data" / "definitions"
|
||||||
|
else:
|
||||||
|
self._definitions_dir = definitions_dir
|
||||||
|
|
||||||
|
# Primary storage
|
||||||
|
self._cards: dict[str, CardDefinition] = {}
|
||||||
|
|
||||||
|
# Indexes for fast querying
|
||||||
|
self._by_type: dict[CardType, list[str]] = {t: [] for t in CardType}
|
||||||
|
self._by_set: dict[str, list[str]] = {}
|
||||||
|
self._by_pokemon_type: dict[EnergyType, list[str]] = {t: [] for t in EnergyType}
|
||||||
|
|
||||||
|
# Set metadata
|
||||||
|
self._sets: list[SetInfo] = []
|
||||||
|
|
||||||
|
# Load state
|
||||||
|
self._loaded: bool = False
|
||||||
|
|
||||||
|
async def load_all(self) -> None:
|
||||||
|
"""Load all card definitions into memory.
|
||||||
|
|
||||||
|
This should be called once at application startup. After loading,
|
||||||
|
all card lookups are synchronous in-memory operations.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
FileNotFoundError: If the definitions directory doesn't exist.
|
||||||
|
ValueError: If any card definition is invalid.
|
||||||
|
"""
|
||||||
|
if self._loaded:
|
||||||
|
logger.warning("CardService.load_all() called but cards already loaded")
|
||||||
|
return
|
||||||
|
|
||||||
|
if not self._definitions_dir.exists():
|
||||||
|
raise FileNotFoundError(f"Definitions directory not found: {self._definitions_dir}")
|
||||||
|
|
||||||
|
# Load index file for set metadata
|
||||||
|
index_path = self._definitions_dir / "_index.json"
|
||||||
|
if index_path.exists():
|
||||||
|
with open(index_path) as f:
|
||||||
|
index_data = json.load(f)
|
||||||
|
for set_code, set_info in index_data.get("sets", {}).items():
|
||||||
|
self._sets.append(
|
||||||
|
SetInfo(
|
||||||
|
code=set_code,
|
||||||
|
name=set_info.get("name", set_code),
|
||||||
|
card_count=set_info.get("card_count", 0),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Load Pokemon cards
|
||||||
|
await self._load_card_type("pokemon", CardType.POKEMON)
|
||||||
|
|
||||||
|
# Load Trainer cards
|
||||||
|
await self._load_card_type("trainer", CardType.TRAINER)
|
||||||
|
|
||||||
|
# Load Energy cards
|
||||||
|
await self._load_energy_cards()
|
||||||
|
|
||||||
|
self._loaded = True
|
||||||
|
logger.info(
|
||||||
|
f"CardService loaded {len(self._cards)} cards "
|
||||||
|
f"({len(self._by_type[CardType.POKEMON])} Pokemon, "
|
||||||
|
f"{len(self._by_type[CardType.TRAINER])} Trainers, "
|
||||||
|
f"{len(self._by_type[CardType.ENERGY])} Energy)"
|
||||||
|
)
|
||||||
|
|
||||||
|
async def _load_card_type(self, subdir: str, card_type: CardType) -> None:
|
||||||
|
"""Load all cards of a specific type from a subdirectory.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
subdir: Subdirectory name (e.g., "pokemon", "trainer").
|
||||||
|
card_type: The CardType these cards should be.
|
||||||
|
"""
|
||||||
|
type_dir = self._definitions_dir / subdir
|
||||||
|
if not type_dir.exists():
|
||||||
|
logger.debug(f"Directory {type_dir} does not exist, skipping")
|
||||||
|
return
|
||||||
|
|
||||||
|
for set_dir in type_dir.iterdir():
|
||||||
|
if not set_dir.is_dir():
|
||||||
|
continue
|
||||||
|
|
||||||
|
set_code = set_dir.name
|
||||||
|
if set_code not in self._by_set:
|
||||||
|
self._by_set[set_code] = []
|
||||||
|
|
||||||
|
for card_file in set_dir.glob("*.json"):
|
||||||
|
card = await self._load_card_file(card_file)
|
||||||
|
if card:
|
||||||
|
self._index_card(card)
|
||||||
|
|
||||||
|
async def _load_energy_cards(self) -> None:
|
||||||
|
"""Load energy cards from the energy subdirectory."""
|
||||||
|
energy_dir = self._definitions_dir / "energy"
|
||||||
|
if not energy_dir.exists():
|
||||||
|
logger.debug(f"Directory {energy_dir} does not exist, skipping")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Energy can be in subdirectories (e.g., energy/basic/) or directly in energy/
|
||||||
|
for item in energy_dir.iterdir():
|
||||||
|
if item.is_file() and item.suffix == ".json":
|
||||||
|
card = await self._load_card_file(item)
|
||||||
|
if card:
|
||||||
|
self._index_card(card)
|
||||||
|
elif item.is_dir():
|
||||||
|
for card_file in item.glob("*.json"):
|
||||||
|
card = await self._load_card_file(card_file)
|
||||||
|
if card:
|
||||||
|
self._index_card(card)
|
||||||
|
|
||||||
|
async def _load_card_file(self, file_path: Path) -> CardDefinition | None:
|
||||||
|
"""Load and validate a single card definition file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
file_path: Path to the JSON file.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
CardDefinition if valid, None if loading failed.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
with open(file_path) as f:
|
||||||
|
card_data = json.load(f)
|
||||||
|
return CardDefinition.model_validate(card_data)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to load card from {file_path}: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def _index_card(self, card: CardDefinition) -> None:
|
||||||
|
"""Add a card to all indexes.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
card: The CardDefinition to index.
|
||||||
|
"""
|
||||||
|
# Primary storage
|
||||||
|
self._cards[card.id] = card
|
||||||
|
|
||||||
|
# Type index
|
||||||
|
self._by_type[card.card_type].append(card.id)
|
||||||
|
|
||||||
|
# Set index
|
||||||
|
if card.set_id:
|
||||||
|
if card.set_id not in self._by_set:
|
||||||
|
self._by_set[card.set_id] = []
|
||||||
|
self._by_set[card.set_id].append(card.id)
|
||||||
|
|
||||||
|
# Pokemon type index (for Pokemon cards only)
|
||||||
|
if card.card_type == CardType.POKEMON and card.pokemon_type:
|
||||||
|
self._by_pokemon_type[card.pokemon_type].append(card.id)
|
||||||
|
|
||||||
|
def get_card(self, card_id: str) -> CardDefinition | None:
|
||||||
|
"""Get a card by its ID.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
card_id: Unique card identifier (e.g., "a1-025-pikachu").
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
CardDefinition if found, None otherwise.
|
||||||
|
"""
|
||||||
|
return self._cards.get(card_id)
|
||||||
|
|
||||||
|
def get_all_cards(self) -> dict[str, CardDefinition]:
|
||||||
|
"""Get all cards as a registry dict.
|
||||||
|
|
||||||
|
This is the format expected by GameEngine.create_game().
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Dictionary mapping card ID to CardDefinition.
|
||||||
|
"""
|
||||||
|
return self._cards.copy()
|
||||||
|
|
||||||
|
def get_cards_by_ids(self, card_ids: list[str]) -> list[CardDefinition]:
|
||||||
|
"""Get multiple cards by their IDs.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
card_ids: List of card IDs to retrieve.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of CardDefinitions in the same order as input.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
KeyError: If any card ID is not found.
|
||||||
|
"""
|
||||||
|
result = []
|
||||||
|
for card_id in card_ids:
|
||||||
|
card = self._cards.get(card_id)
|
||||||
|
if card is None:
|
||||||
|
raise KeyError(f"Card not found: {card_id}")
|
||||||
|
result.append(card)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def search(
|
||||||
|
self,
|
||||||
|
name: str | None = None,
|
||||||
|
card_type: CardType | None = None,
|
||||||
|
pokemon_type: EnergyType | None = None,
|
||||||
|
set_id: str | None = None,
|
||||||
|
stage: PokemonStage | None = None,
|
||||||
|
variant: PokemonVariant | None = None,
|
||||||
|
) -> list[CardDefinition]:
|
||||||
|
"""Search cards by various criteria.
|
||||||
|
|
||||||
|
All provided criteria are AND-ed together. Omitted criteria match all cards.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: Partial name match (case-insensitive).
|
||||||
|
card_type: Filter by card type (Pokemon, Trainer, Energy).
|
||||||
|
pokemon_type: Filter by Pokemon energy type (e.g., GRASS, FIRE).
|
||||||
|
set_id: Filter by set code (e.g., "a1").
|
||||||
|
stage: Filter by Pokemon stage (BASIC, STAGE_1, STAGE_2).
|
||||||
|
variant: Filter by Pokemon variant (NORMAL, EX, etc.).
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of matching CardDefinitions.
|
||||||
|
"""
|
||||||
|
# Start with the smallest candidate set based on indexed filters
|
||||||
|
if pokemon_type is not None:
|
||||||
|
candidate_ids = set(self._by_pokemon_type.get(pokemon_type, []))
|
||||||
|
elif card_type is not None:
|
||||||
|
candidate_ids = set(self._by_type.get(card_type, []))
|
||||||
|
elif set_id is not None:
|
||||||
|
candidate_ids = set(self._by_set.get(set_id, []))
|
||||||
|
else:
|
||||||
|
candidate_ids = set(self._cards.keys())
|
||||||
|
|
||||||
|
results = []
|
||||||
|
for card_id in candidate_ids:
|
||||||
|
card = self._cards[card_id]
|
||||||
|
|
||||||
|
# Apply all filters
|
||||||
|
if card_type is not None and card.card_type != card_type:
|
||||||
|
continue
|
||||||
|
if pokemon_type is not None and card.pokemon_type != pokemon_type:
|
||||||
|
continue
|
||||||
|
if set_id is not None and card.set_id != set_id:
|
||||||
|
continue
|
||||||
|
if stage is not None and card.stage != stage:
|
||||||
|
continue
|
||||||
|
if variant is not None and card.variant != variant:
|
||||||
|
continue
|
||||||
|
if name is not None and name.lower() not in card.name.lower():
|
||||||
|
continue
|
||||||
|
|
||||||
|
results.append(card)
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
def get_set_cards(self, set_id: str) -> list[CardDefinition]:
|
||||||
|
"""Get all cards from a specific set.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
set_id: Set code (e.g., "a1", "a1a").
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of CardDefinitions from that set.
|
||||||
|
"""
|
||||||
|
card_ids = self._by_set.get(set_id, [])
|
||||||
|
return [self._cards[card_id] for card_id in card_ids]
|
||||||
|
|
||||||
|
def get_sets(self) -> list[SetInfo]:
|
||||||
|
"""Get list of available sets with metadata.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of SetInfo objects.
|
||||||
|
"""
|
||||||
|
return self._sets.copy()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def card_count(self) -> int:
|
||||||
|
"""Total number of loaded cards."""
|
||||||
|
return len(self._cards)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_loaded(self) -> bool:
|
||||||
|
"""Whether cards have been loaded."""
|
||||||
|
return self._loaded
|
||||||
|
|
||||||
|
|
||||||
|
# Singleton instance for application use
|
||||||
|
_card_service: CardService | None = None
|
||||||
|
|
||||||
|
|
||||||
|
def get_card_service() -> CardService:
|
||||||
|
"""Get the global CardService instance.
|
||||||
|
|
||||||
|
Creates the instance if it doesn't exist. Note that load_all() must still
|
||||||
|
be called before using the service.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The global CardService instance.
|
||||||
|
"""
|
||||||
|
global _card_service
|
||||||
|
if _card_service is None:
|
||||||
|
_card_service = CardService()
|
||||||
|
return _card_service
|
||||||
42
backend/data/definitions/README.md
Normal file
42
backend/data/definitions/README.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# Card Definitions (Authoritative)
|
||||||
|
|
||||||
|
These JSON files are the **authoritative source** for card data used by the game engine.
|
||||||
|
Edit these files for gameplay changes.
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
definitions/
|
||||||
|
├── _index.json # Master index with all cards + set metadata
|
||||||
|
├── pokemon/
|
||||||
|
│ ├── a1/ # Pokemon from Genetic Apex
|
||||||
|
│ └── a1a/ # Pokemon from Mythical Island
|
||||||
|
├── trainer/
|
||||||
|
│ ├── a1/ # Trainers from Genetic Apex
|
||||||
|
│ └── a1a/ # Trainers from Mythical Island
|
||||||
|
└── energy/
|
||||||
|
└── basic/ # Universal basic energy cards
|
||||||
|
```
|
||||||
|
|
||||||
|
## Generating Definitions
|
||||||
|
|
||||||
|
Definitions are generated from raw scraped data:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
python scripts/convert_cards.py
|
||||||
|
```
|
||||||
|
|
||||||
|
After generation, you can manually edit files for corrections or gameplay tweaks.
|
||||||
|
|
||||||
|
## Schema
|
||||||
|
|
||||||
|
Each JSON file conforms to the `CardDefinition` Pydantic model in `app/core/models/card.py`.
|
||||||
|
|
||||||
|
Key fields:
|
||||||
|
- `id`: Unique identifier (e.g., "a1-001-bulbasaur")
|
||||||
|
- `name`: Display name
|
||||||
|
- `card_type`: "pokemon", "trainer", or "energy"
|
||||||
|
- `set_id`: Which set this card belongs to
|
||||||
|
|
||||||
|
See the model documentation for complete field descriptions.
|
||||||
2296
backend/data/definitions/_index.json
Normal file
2296
backend/data/definitions/_index.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-colorless",
|
||||||
|
"name": "Colorless Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "colorless",
|
||||||
|
"energy_provides": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/colorless.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/colorless.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-darkness",
|
||||||
|
"name": "Darkness Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "darkness",
|
||||||
|
"energy_provides": [
|
||||||
|
"darkness"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/darkness.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/darkness.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-dragon",
|
||||||
|
"name": "Dragon Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "dragon",
|
||||||
|
"energy_provides": [
|
||||||
|
"dragon"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/dragon.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/dragon.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-fighting",
|
||||||
|
"name": "Fighting Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "fighting",
|
||||||
|
"energy_provides": [
|
||||||
|
"fighting"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/fighting.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/fighting.webp"
|
||||||
|
}
|
||||||
13
backend/data/definitions/energy/basic/energy-basic-fire.json
Normal file
13
backend/data/definitions/energy/basic/energy-basic-fire.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-fire",
|
||||||
|
"name": "Fire Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "fire",
|
||||||
|
"energy_provides": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/fire.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/fire.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-grass",
|
||||||
|
"name": "Grass Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "grass",
|
||||||
|
"energy_provides": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/grass.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/grass.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-lightning",
|
||||||
|
"name": "Lightning Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"energy_provides": [
|
||||||
|
"lightning"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/lightning.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/lightning.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-metal",
|
||||||
|
"name": "Metal Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "metal",
|
||||||
|
"energy_provides": [
|
||||||
|
"metal"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/metal.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/metal.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-psychic",
|
||||||
|
"name": "Psychic Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "psychic",
|
||||||
|
"energy_provides": [
|
||||||
|
"psychic"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/psychic.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/psychic.webp"
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"id": "energy-basic-water",
|
||||||
|
"name": "Water Energy",
|
||||||
|
"card_type": "energy",
|
||||||
|
"energy_type": "water",
|
||||||
|
"energy_provides": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"rarity": "common",
|
||||||
|
"set_id": "basic",
|
||||||
|
"image_path": "energy/basic/water.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/energy/basic/water.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/001-bulbasaur.json
Normal file
30
backend/data/definitions/pokemon/a1/001-bulbasaur.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-001-bulbasaur",
|
||||||
|
"name": "Bulbasaur",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Vine Whip",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Narumi Sato",
|
||||||
|
"image_path": "pokemon/a1/001-bulbasaur.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/001-bulbasaur.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/002-ivysaur.json
Normal file
32
backend/data/definitions/pokemon/a1/002-ivysaur.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-002-ivysaur",
|
||||||
|
"name": "Ivysaur",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Bulbasaur",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Razor Leaf",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kurata So",
|
||||||
|
"image_path": "pokemon/a1/002-ivysaur.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/002-ivysaur.webp"
|
||||||
|
}
|
||||||
34
backend/data/definitions/pokemon/a1/003-venusaur.json
Normal file
34
backend/data/definitions/pokemon/a1/003-venusaur.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-003-venusaur",
|
||||||
|
"name": "Venusaur",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 160,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Ivysaur",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Mega Drain",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80",
|
||||||
|
"effect_description": "Heal 30 damage from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Ryota Murayama",
|
||||||
|
"image_path": "pokemon/a1/003-venusaur.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/003-venusaur.webp"
|
||||||
|
}
|
||||||
44
backend/data/definitions/pokemon/a1/004-venusaur-ex.json
Normal file
44
backend/data/definitions/pokemon/a1/004-venusaur-ex.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-004-venusaur-ex",
|
||||||
|
"name": "Venusaur ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 190,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Ivysaur",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Razor Leaf",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Giant Bloom",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 100,
|
||||||
|
"damage_display": "100",
|
||||||
|
"effect_description": "Heal 30 damage from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA CG Works",
|
||||||
|
"image_path": "pokemon/a1/004-venusaur-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/004-venusaur-ex.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/005-caterpie.json
Normal file
29
backend/data/definitions/pokemon/a1/005-caterpie.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-005-caterpie",
|
||||||
|
"name": "Caterpie",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Find a Friend",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 0,
|
||||||
|
"effect_description": "Put 1 randomPok\u00e9mon from your deck into your hand."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Miki Tanaka",
|
||||||
|
"image_path": "pokemon/a1/005-caterpie.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/005-caterpie.webp"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/006-metapod.json
Normal file
31
backend/data/definitions/pokemon/a1/006-metapod.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-006-metapod",
|
||||||
|
"name": "Metapod",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"evolves_from": "Caterpie",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Bug Bite",
|
||||||
|
"cost": [
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Yuka Morii",
|
||||||
|
"image_path": "pokemon/a1/006-metapod.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/006-metapod.webp"
|
||||||
|
}
|
||||||
39
backend/data/definitions/pokemon/a1/007-butterfree.json
Normal file
39
backend/data/definitions/pokemon/a1/007-butterfree.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-007-butterfree",
|
||||||
|
"name": "Butterfree",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Metapod",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Gust",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"abilities": [
|
||||||
|
{
|
||||||
|
"name": "Powder Heal",
|
||||||
|
"effect_id": "unimplemented",
|
||||||
|
"effect_description": "Once during your turn, you may heal 20 damage from each of your Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Shin Nagasawa",
|
||||||
|
"image_path": "pokemon/a1/007-butterfree.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/007-butterfree.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/008-weedle.json
Normal file
29
backend/data/definitions/pokemon/a1/008-weedle.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-008-weedle",
|
||||||
|
"name": "Weedle",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Sting",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Hajime Kusajima",
|
||||||
|
"image_path": "pokemon/a1/008-weedle.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/008-weedle.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/009-kakuna.json
Normal file
30
backend/data/definitions/pokemon/a1/009-kakuna.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-009-kakuna",
|
||||||
|
"name": "Kakuna",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"evolves_from": "Weedle",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Bug Bite",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "miki kudo",
|
||||||
|
"image_path": "pokemon/a1/009-kakuna.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/009-kakuna.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/010-beedrill.json
Normal file
30
backend/data/definitions/pokemon/a1/010-beedrill.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-010-beedrill",
|
||||||
|
"name": "Beedrill",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Kakuna",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Sharp Sting",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "You Iribi",
|
||||||
|
"image_path": "pokemon/a1/010-beedrill.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/010-beedrill.webp"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/011-oddish.json
Normal file
27
backend/data/definitions/pokemon/a1/011-oddish.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-011-oddish",
|
||||||
|
"name": "Oddish",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Ram",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "HYOGONOSUKE"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/012-gloom.json
Normal file
31
backend/data/definitions/pokemon/a1/012-gloom.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-012-gloom",
|
||||||
|
"name": "Gloom",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Oddish",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Drool",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Anesaki Dynamic",
|
||||||
|
"image_path": "pokemon/a1/012-gloom.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/012-gloom.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/013-vileplume.json
Normal file
33
backend/data/definitions/pokemon/a1/013-vileplume.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-013-vileplume",
|
||||||
|
"name": "Vileplume",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 140,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Gloom",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Soothing Scent",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80",
|
||||||
|
"effect_description": "Your opponent\u2019s Active Pok\u00e9mon is now Asleep."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kyoko Umemoto",
|
||||||
|
"image_path": "pokemon/a1/013-vileplume.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/013-vileplume.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/014-paras.json
Normal file
30
backend/data/definitions/pokemon/a1/014-paras.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-014-paras",
|
||||||
|
"name": "Paras",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Scratch",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Naoyo Kimura",
|
||||||
|
"image_path": "pokemon/a1/014-paras.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/014-paras.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/015-parasect.json
Normal file
32
backend/data/definitions/pokemon/a1/015-parasect.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-015-parasect",
|
||||||
|
"name": "Parasect",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Paras",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Slash",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Eri Yamaki",
|
||||||
|
"image_path": "pokemon/a1/015-parasect.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/015-parasect.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/016-venonat.json
Normal file
29
backend/data/definitions/pokemon/a1/016-venonat.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-016-venonat",
|
||||||
|
"name": "Venonat",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Tackle",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "HYOGONOSUKE",
|
||||||
|
"image_path": "pokemon/a1/016-venonat.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/016-venonat.webp"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/017-venomoth.json
Normal file
31
backend/data/definitions/pokemon/a1/017-venomoth.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-017-venomoth",
|
||||||
|
"name": "Venomoth",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Venonat",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Poison Powder",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30",
|
||||||
|
"effect_description": "Your opponent\u2019s Active Pok\u00e9mon is now Poisoned."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Mina Nakai",
|
||||||
|
"image_path": "pokemon/a1/017-venomoth.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/017-venomoth.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/018-bellsprout.json
Normal file
29
backend/data/definitions/pokemon/a1/018-bellsprout.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-018-bellsprout",
|
||||||
|
"name": "Bellsprout",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Vine Whip",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "HYOGONOSUKE",
|
||||||
|
"image_path": "pokemon/a1/018-bellsprout.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/018-bellsprout.webp"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/019-weepinbell.json
Normal file
31
backend/data/definitions/pokemon/a1/019-weepinbell.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-019-weepinbell",
|
||||||
|
"name": "Weepinbell",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Bellsprout",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Razor Leaf",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Miki Tanaka",
|
||||||
|
"image_path": "pokemon/a1/019-weepinbell.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/019-weepinbell.webp"
|
||||||
|
}
|
||||||
38
backend/data/definitions/pokemon/a1/020-victreebel.json
Normal file
38
backend/data/definitions/pokemon/a1/020-victreebel.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-020-victreebel",
|
||||||
|
"name": "Victreebel",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 140,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Weepinbell",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Vine Whip",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"abilities": [
|
||||||
|
{
|
||||||
|
"name": "Fragrance Trap",
|
||||||
|
"effect_id": "unimplemented",
|
||||||
|
"effect_description": "If this Pok\u00e9mon is in the Active Spot, once during your turn, you may switch in 1 of your opponent\u2019s Benched Basic Pok\u00e9mon to the Active Spot."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Sumiyoshi Kizuki",
|
||||||
|
"image_path": "pokemon/a1/020-victreebel.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/020-victreebel.webp"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/021-exeggcute.json
Normal file
27
backend/data/definitions/pokemon/a1/021-exeggcute.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-021-exeggcute",
|
||||||
|
"name": "Exeggcute",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Seed Bomb",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "kawayoo"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/022-exeggutor.json
Normal file
32
backend/data/definitions/pokemon/a1/022-exeggutor.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-022-exeggutor",
|
||||||
|
"name": "Exeggutor",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 130,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Exeggcute",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Stomp",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30x",
|
||||||
|
"effect_description": "Flip a coin. If heads, this attack does 30 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Yukiko Baba"
|
||||||
|
}
|
||||||
34
backend/data/definitions/pokemon/a1/023-exeggutor-ex.json
Normal file
34
backend/data/definitions/pokemon/a1/023-exeggutor-ex.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-023-exeggutor-ex",
|
||||||
|
"name": "Exeggutor ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 160,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Exeggcute",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Tropical Swing",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40x",
|
||||||
|
"effect_description": "Flip a coin. If heads, this attack does 40 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA CG Works",
|
||||||
|
"image_path": "pokemon/a1/023-exeggutor-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/023-exeggutor-ex.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/024-tangela.json
Normal file
29
backend/data/definitions/pokemon/a1/024-tangela.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-024-tangela",
|
||||||
|
"name": "Tangela",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Absorb",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40",
|
||||||
|
"effect_description": "Heal 10 damage from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Midori Harada"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/025-scyther.json
Normal file
29
backend/data/definitions/pokemon/a1/025-scyther.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-025-scyther",
|
||||||
|
"name": "Scyther",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Sharp Scythe",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Hasuno",
|
||||||
|
"image_path": "pokemon/a1/025-scyther.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/025-scyther.webp"
|
||||||
|
}
|
||||||
34
backend/data/definitions/pokemon/a1/026-pinsir.json
Normal file
34
backend/data/definitions/pokemon/a1/026-pinsir.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-026-pinsir",
|
||||||
|
"name": "Pinsir",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Double Horn",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 50,
|
||||||
|
"damage_display": "50+",
|
||||||
|
"effect_description": "Flip 2 coins. This attack does 50 damage for each heads.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "+"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Eri Yamaki",
|
||||||
|
"image_path": "pokemon/a1/026-pinsir.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/026-pinsir.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/027-cottonee.json
Normal file
29
backend/data/definitions/pokemon/a1/027-cottonee.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-027-cottonee",
|
||||||
|
"name": "Cottonee",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Attach",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kanako Eo",
|
||||||
|
"image_path": "pokemon/a1/027-cottonee.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/027-cottonee.webp"
|
||||||
|
}
|
||||||
28
backend/data/definitions/pokemon/a1/028-whimsicott.json
Normal file
28
backend/data/definitions/pokemon/a1/028-whimsicott.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-028-whimsicott",
|
||||||
|
"name": "Whimsicott",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Cottonee",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Rolling Tackle",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Atsuko Nishida"
|
||||||
|
}
|
||||||
28
backend/data/definitions/pokemon/a1/029-petilil.json
Normal file
28
backend/data/definitions/pokemon/a1/029-petilil.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-029-petilil",
|
||||||
|
"name": "Petilil",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Blot",
|
||||||
|
"cost": [
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10",
|
||||||
|
"effect_description": "Heal 10 damage from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Naoyo Kimura"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/030-lilligant.json
Normal file
30
backend/data/definitions/pokemon/a1/030-lilligant.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-030-lilligant",
|
||||||
|
"name": "Lilligant",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Petilil",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Leaf Supply",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"grass"
|
||||||
|
],
|
||||||
|
"damage": 50,
|
||||||
|
"damage_display": "50",
|
||||||
|
"effect_description": "Take aEnergy from your Energy Zone and attach it to 1 of your BenchedPok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "You Iribi"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/031-skiddo.json
Normal file
30
backend/data/definitions/pokemon/a1/031-skiddo.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-031-skiddo",
|
||||||
|
"name": "Skiddo",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Surprise Attack",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40",
|
||||||
|
"effect_description": "Flip a coin. If tails, this attack does nothing."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Naoki Saito",
|
||||||
|
"image_path": "pokemon/a1/031-skiddo.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/031-skiddo.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/032-gogoat.json
Normal file
32
backend/data/definitions/pokemon/a1/032-gogoat.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-032-gogoat",
|
||||||
|
"name": "Gogoat",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "grass",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"evolves_from": "Skiddo",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Razor Leaf",
|
||||||
|
"cost": [
|
||||||
|
"grass",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "fire",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "You Iribi",
|
||||||
|
"image_path": "pokemon/a1/032-gogoat.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/032-gogoat.webp"
|
||||||
|
}
|
||||||
28
backend/data/definitions/pokemon/a1/033-charmander.json
Normal file
28
backend/data/definitions/pokemon/a1/033-charmander.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-033-charmander",
|
||||||
|
"name": "Charmander",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Ember",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30",
|
||||||
|
"effect_description": "Discard aEnergy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Teeziro"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/034-charmeleon.json
Normal file
30
backend/data/definitions/pokemon/a1/034-charmeleon.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-034-charmeleon",
|
||||||
|
"name": "Charmeleon",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Charmander",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Fire Claws",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "kantaro"
|
||||||
|
}
|
||||||
34
backend/data/definitions/pokemon/a1/035-charizard.json
Normal file
34
backend/data/definitions/pokemon/a1/035-charizard.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-035-charizard",
|
||||||
|
"name": "Charizard",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 150,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Charmeleon",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Fire Spin",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 150,
|
||||||
|
"damage_display": "150",
|
||||||
|
"effect_description": "Discard 2Energy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "takuyoa",
|
||||||
|
"image_path": "pokemon/a1/035-charizard.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/035-charizard.webp"
|
||||||
|
}
|
||||||
44
backend/data/definitions/pokemon/a1/036-charizard-ex.json
Normal file
44
backend/data/definitions/pokemon/a1/036-charizard-ex.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-036-charizard-ex",
|
||||||
|
"name": "Charizard ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 180,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Charmeleon",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Slash",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Crimson Storm",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 200,
|
||||||
|
"damage_display": "200",
|
||||||
|
"effect_description": "Discard 2Energy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Mochizuki",
|
||||||
|
"image_path": "pokemon/a1/036-charizard-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/036-charizard-ex.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/037-vulpix.json
Normal file
29
backend/data/definitions/pokemon/a1/037-vulpix.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-037-vulpix",
|
||||||
|
"name": "Vulpix",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Tail Whip",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 0,
|
||||||
|
"effect_description": "Flip a coin. If heads, the Defending Pok\u00e9mon can\u2019t attack during your opponent\u2019s next turn."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Toshinao Aoki",
|
||||||
|
"image_path": "pokemon/a1/037-vulpix.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/037-vulpix.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/038-ninetales.json
Normal file
30
backend/data/definitions/pokemon/a1/038-ninetales.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-038-ninetales",
|
||||||
|
"name": "Ninetales",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Vulpix",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Flamethrower",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 90,
|
||||||
|
"damage_display": "90",
|
||||||
|
"effect_description": "Discard aEnergy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "You Iribi"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/039-growlithe.json
Normal file
30
backend/data/definitions/pokemon/a1/039-growlithe.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-039-growlithe",
|
||||||
|
"name": "Growlithe",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Bite",
|
||||||
|
"cost": [
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Mizue",
|
||||||
|
"image_path": "pokemon/a1/039-growlithe.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/039-growlithe.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/040-arcanine.json
Normal file
33
backend/data/definitions/pokemon/a1/040-arcanine.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-040-arcanine",
|
||||||
|
"name": "Arcanine",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 130,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Growlithe",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Heat Tackle",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 100,
|
||||||
|
"damage_display": "100",
|
||||||
|
"effect_description": "This Pok\u00e9mon also does 20 damage to itself."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "kodama",
|
||||||
|
"image_path": "pokemon/a1/040-arcanine.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/040-arcanine.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/041-arcanine-ex.json
Normal file
33
backend/data/definitions/pokemon/a1/041-arcanine-ex.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-041-arcanine-ex",
|
||||||
|
"name": "Arcanine ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 150,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Growlithe",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Inferno Onrush",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 120,
|
||||||
|
"damage_display": "120",
|
||||||
|
"effect_description": "This Pok\u00e9mon also does 20 damage to itself."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Saito",
|
||||||
|
"image_path": "pokemon/a1/041-arcanine-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/041-arcanine-ex.webp"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/042-ponyta.json
Normal file
27
backend/data/definitions/pokemon/a1/042-ponyta.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-042-ponyta",
|
||||||
|
"name": "Ponyta",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Flare",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Uta"
|
||||||
|
}
|
||||||
28
backend/data/definitions/pokemon/a1/043-rapidash.json
Normal file
28
backend/data/definitions/pokemon/a1/043-rapidash.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-043-rapidash",
|
||||||
|
"name": "Rapidash",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Ponyta",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Fire Mane",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Misa Tsutsui"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/044-magmar.json
Normal file
30
backend/data/definitions/pokemon/a1/044-magmar.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-044-magmar",
|
||||||
|
"name": "Magmar",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Magma Punch",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 50,
|
||||||
|
"damage_display": "50"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Ryuta Fuse",
|
||||||
|
"image_path": "pokemon/a1/044-magmar.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/044-magmar.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/045-flareon.json
Normal file
33
backend/data/definitions/pokemon/a1/045-flareon.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-045-flareon",
|
||||||
|
"name": "Flareon",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Eevee",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Flamethrower",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 110,
|
||||||
|
"damage_display": "110",
|
||||||
|
"effect_description": "Discard aEnergy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "sui",
|
||||||
|
"image_path": "pokemon/a1/045-flareon.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/045-flareon.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/046-moltres.json
Normal file
32
backend/data/definitions/pokemon/a1/046-moltres.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-046-moltres",
|
||||||
|
"name": "Moltres",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Sky Attack",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 130,
|
||||||
|
"damage_display": "130",
|
||||||
|
"effect_description": "Flip a coin. If tails, this attack does nothing."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Hitoshi Ariga",
|
||||||
|
"image_path": "pokemon/a1/046-moltres.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/046-moltres.webp"
|
||||||
|
}
|
||||||
39
backend/data/definitions/pokemon/a1/047-moltres-ex.json
Normal file
39
backend/data/definitions/pokemon/a1/047-moltres-ex.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-047-moltres-ex",
|
||||||
|
"name": "Moltres ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 140,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Inferno Dance",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 0,
|
||||||
|
"effect_description": "Flip 3 coins. Take an amount ofEnergy from your Energy Zone equal to the number of heads and attach it to your BenchedPok\u00e9mon in any way you like."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Heat Blast",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Tsuji",
|
||||||
|
"image_path": "pokemon/a1/047-moltres-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/047-moltres-ex.webp"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/048-heatmor.json
Normal file
27
backend/data/definitions/pokemon/a1/048-heatmor.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-048-heatmor",
|
||||||
|
"name": "Heatmor",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Combustion",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Suwama Chiaki"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/049-salandit.json
Normal file
27
backend/data/definitions/pokemon/a1/049-salandit.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-049-salandit",
|
||||||
|
"name": "Salandit",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Scratch",
|
||||||
|
"cost": [
|
||||||
|
"fire"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kyoko Umemoto"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/050-salazzle.json
Normal file
31
backend/data/definitions/pokemon/a1/050-salazzle.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-050-salazzle",
|
||||||
|
"name": "Salazzle",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"evolves_from": "Salandit",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Fire Claws",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "hatachu",
|
||||||
|
"image_path": "pokemon/a1/050-salazzle.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/050-salazzle.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/051-sizzlipede.json
Normal file
29
backend/data/definitions/pokemon/a1/051-sizzlipede.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-051-sizzlipede",
|
||||||
|
"name": "Sizzlipede",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Gnaw",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Teeziro",
|
||||||
|
"image_path": "pokemon/a1/051-sizzlipede.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/051-sizzlipede.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/052-centiskorch.json
Normal file
32
backend/data/definitions/pokemon/a1/052-centiskorch.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-052-centiskorch",
|
||||||
|
"name": "Centiskorch",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 130,
|
||||||
|
"pokemon_type": "fire",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Sizzlipede",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Fire Blast",
|
||||||
|
"cost": [
|
||||||
|
"fire",
|
||||||
|
"colorless",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 130,
|
||||||
|
"damage_display": "130",
|
||||||
|
"effect_description": "Discard aEnergy from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "water",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "GOSSAN"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/053-squirtle.json
Normal file
29
backend/data/definitions/pokemon/a1/053-squirtle.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-053-squirtle",
|
||||||
|
"name": "Squirtle",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Water Gun",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Mizue",
|
||||||
|
"image_path": "pokemon/a1/053-squirtle.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/053-squirtle.webp"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/054-wartortle.json
Normal file
31
backend/data/definitions/pokemon/a1/054-wartortle.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-054-wartortle",
|
||||||
|
"name": "Wartortle",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Squirtle",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Wave Splash",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Nelnal",
|
||||||
|
"image_path": "pokemon/a1/054-wartortle.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/054-wartortle.webp"
|
||||||
|
}
|
||||||
36
backend/data/definitions/pokemon/a1/055-blastoise.json
Normal file
36
backend/data/definitions/pokemon/a1/055-blastoise.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-055-blastoise",
|
||||||
|
"name": "Blastoise",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 150,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Wartortle",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Hydro Pump",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80x",
|
||||||
|
"effect_description": "If this Pok\u00e9mon has at least 2 extraEnergy attached, this attack does 60 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Nurikabe",
|
||||||
|
"image_path": "pokemon/a1/055-blastoise.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/055-blastoise.webp"
|
||||||
|
}
|
||||||
45
backend/data/definitions/pokemon/a1/056-blastoise-ex.json
Normal file
45
backend/data/definitions/pokemon/a1/056-blastoise-ex.json
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-056-blastoise-ex",
|
||||||
|
"name": "Blastoise ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 180,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Wartortle",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Surf",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hydro Bazooka",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 100,
|
||||||
|
"damage_display": "100x",
|
||||||
|
"effect_description": "If this Pok\u00e9mon has at least 2 extraEnergy attached, this attack does 60 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Tsuji",
|
||||||
|
"image_path": "pokemon/a1/056-blastoise-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/056-blastoise-ex.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/057-psyduck.json
Normal file
30
backend/data/definitions/pokemon/a1/057-psyduck.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-057-psyduck",
|
||||||
|
"name": "Psyduck",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Headache",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10",
|
||||||
|
"effect_description": "Your opponent can\u2019t use any Supporter cards from their hand during their next turn."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Shibuzoh.",
|
||||||
|
"image_path": "pokemon/a1/057-psyduck.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/057-psyduck.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/058-golduck.json
Normal file
29
backend/data/definitions/pokemon/a1/058-golduck.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-058-golduck",
|
||||||
|
"name": "Golduck",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Psyduck",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Aqua Edge",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Naoki Saito"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/059-poliwag.json
Normal file
29
backend/data/definitions/pokemon/a1/059-poliwag.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-059-poliwag",
|
||||||
|
"name": "Poliwag",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Razor Fin",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Shibuzoh.",
|
||||||
|
"image_path": "pokemon/a1/059-poliwag.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/059-poliwag.webp"
|
||||||
|
}
|
||||||
31
backend/data/definitions/pokemon/a1/060-poliwhirl.json
Normal file
31
backend/data/definitions/pokemon/a1/060-poliwhirl.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-060-poliwhirl",
|
||||||
|
"name": "Poliwhirl",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Poliwag",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Knuckle Punch",
|
||||||
|
"cost": [
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Yuka Morii",
|
||||||
|
"image_path": "pokemon/a1/060-poliwhirl.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/060-poliwhirl.webp"
|
||||||
|
}
|
||||||
39
backend/data/definitions/pokemon/a1/061-poliwrath.json
Normal file
39
backend/data/definitions/pokemon/a1/061-poliwrath.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-061-poliwrath",
|
||||||
|
"name": "Poliwrath",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 150,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Poliwhirl",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Mega Punch",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"abilities": [
|
||||||
|
{
|
||||||
|
"name": "Counterattack",
|
||||||
|
"effect_id": "unimplemented",
|
||||||
|
"effect_description": "If this Pok\u00e9mon is in the Active Spot and is damaged by an attack from your opponent\u2019s Pok\u00e9mon, do 20 damage to the Attacking Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Akira Komayama",
|
||||||
|
"image_path": "pokemon/a1/061-poliwrath.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/061-poliwrath.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/062-tentacool.json
Normal file
29
backend/data/definitions/pokemon/a1/062-tentacool.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-062-tentacool",
|
||||||
|
"name": "Tentacool",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Gentle Slap",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Shinya Komatsu",
|
||||||
|
"image_path": "pokemon/a1/062-tentacool.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/062-tentacool.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/063-tentacruel.json
Normal file
32
backend/data/definitions/pokemon/a1/063-tentacruel.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-063-tentacruel",
|
||||||
|
"name": "Tentacruel",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 110,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Tentacool",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Poison Tentacles",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 50,
|
||||||
|
"damage_display": "50",
|
||||||
|
"effect_description": "Your opponent\u2019s Active Pok\u00e9mon is now Poisoned."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "kodama",
|
||||||
|
"image_path": "pokemon/a1/063-tentacruel.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/063-tentacruel.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/064-seel.json
Normal file
30
backend/data/definitions/pokemon/a1/064-seel.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-064-seel",
|
||||||
|
"name": "Seel",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 80,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Headbutt",
|
||||||
|
"cost": [
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Masako Yamashita",
|
||||||
|
"image_path": "pokemon/a1/064-seel.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/064-seel.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/065-dewgong.json
Normal file
32
backend/data/definitions/pokemon/a1/065-dewgong.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-065-dewgong",
|
||||||
|
"name": "Dewgong",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Seel",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Surf",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 90,
|
||||||
|
"damage_display": "90"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kanako Eo",
|
||||||
|
"image_path": "pokemon/a1/065-dewgong.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/065-dewgong.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/066-shellder.json
Normal file
29
backend/data/definitions/pokemon/a1/066-shellder.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-066-shellder",
|
||||||
|
"name": "Shellder",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Tongue Slap",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Sumiyoshi Kizuki",
|
||||||
|
"image_path": "pokemon/a1/066-shellder.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/066-shellder.webp"
|
||||||
|
}
|
||||||
39
backend/data/definitions/pokemon/a1/067-cloyster.json
Normal file
39
backend/data/definitions/pokemon/a1/067-cloyster.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-067-cloyster",
|
||||||
|
"name": "Cloyster",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Shellder",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Surf",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"abilities": [
|
||||||
|
{
|
||||||
|
"name": "Shell Armor",
|
||||||
|
"effect_id": "unimplemented",
|
||||||
|
"effect_description": "This Pok\u00e9mon takes \u221210 damage from attacks."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Saya Tsuruta",
|
||||||
|
"image_path": "pokemon/a1/067-cloyster.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/067-cloyster.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/068-krabby.json
Normal file
30
backend/data/definitions/pokemon/a1/068-krabby.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-068-krabby",
|
||||||
|
"name": "Krabby",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Vise Grip",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Tomokazu Komiya",
|
||||||
|
"image_path": "pokemon/a1/068-krabby.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/068-krabby.webp"
|
||||||
|
}
|
||||||
36
backend/data/definitions/pokemon/a1/069-kingler.json
Normal file
36
backend/data/definitions/pokemon/a1/069-kingler.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-069-kingler",
|
||||||
|
"name": "Kingler",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 120,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 3,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Krabby",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "KO Crab",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80x",
|
||||||
|
"effect_description": "Flip 2 coins. If both of them are heads, this attack does 80 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Shigenori Negishi",
|
||||||
|
"image_path": "pokemon/a1/069-kingler.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/069-kingler.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/070-horsea.json
Normal file
29
backend/data/definitions/pokemon/a1/070-horsea.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-070-horsea",
|
||||||
|
"name": "Horsea",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Water Gun",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Saya Tsuruta",
|
||||||
|
"image_path": "pokemon/a1/070-horsea.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/070-horsea.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/071-seadra.json
Normal file
32
backend/data/definitions/pokemon/a1/071-seadra.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-071-seadra",
|
||||||
|
"name": "Seadra",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 70,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Horsea",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Water Arrow",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 0,
|
||||||
|
"effect_description": "This attack does 50 damage to 1 of your opponent\u2019s Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Sanosuke Sakuma",
|
||||||
|
"image_path": "pokemon/a1/071-seadra.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/071-seadra.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/072-goldeen.json
Normal file
29
backend/data/definitions/pokemon/a1/072-goldeen.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-072-goldeen",
|
||||||
|
"name": "Goldeen",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 60,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Flop",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kyoko Umemoto",
|
||||||
|
"image_path": "pokemon/a1/072-goldeen.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/072-goldeen.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/073-seaking.json
Normal file
29
backend/data/definitions/pokemon/a1/073-seaking.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-073-seaking",
|
||||||
|
"name": "Seaking",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"evolves_from": "Goldeen",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Horn Hazard",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80",
|
||||||
|
"effect_description": "Flip a coin. If tails, this attack does nothing."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kyoko Umemoto"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/074-staryu.json
Normal file
27
backend/data/definitions/pokemon/a1/074-staryu.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-074-staryu",
|
||||||
|
"name": "Staryu",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Smack",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Hiroki Asanuma"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/075-starmie.json
Normal file
30
backend/data/definitions/pokemon/a1/075-starmie.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-075-starmie",
|
||||||
|
"name": "Starmie",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 0,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Staryu",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Wave Splash",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Yukiko Baba",
|
||||||
|
"image_path": "pokemon/a1/075-starmie.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/075-starmie.webp"
|
||||||
|
}
|
||||||
29
backend/data/definitions/pokemon/a1/076-starmie-ex.json
Normal file
29
backend/data/definitions/pokemon/a1/076-starmie-ex.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-076-starmie-ex",
|
||||||
|
"name": "Starmie ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 130,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 0,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"evolves_from": "Staryu",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Hydro Splash",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 90,
|
||||||
|
"damage_display": "90"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Igarashi"
|
||||||
|
}
|
||||||
27
backend/data/definitions/pokemon/a1/077-magikarp.json
Normal file
27
backend/data/definitions/pokemon/a1/077-magikarp.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-077-magikarp",
|
||||||
|
"name": "Magikarp",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 30,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Splash",
|
||||||
|
"cost": [
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 10,
|
||||||
|
"damage_display": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Sekio"
|
||||||
|
}
|
||||||
34
backend/data/definitions/pokemon/a1/078-gyarados.json
Normal file
34
backend/data/definitions/pokemon/a1/078-gyarados.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-078-gyarados",
|
||||||
|
"name": "Gyarados",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 150,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 4,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Magikarp",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Hyper Beam",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 100,
|
||||||
|
"damage_display": "100",
|
||||||
|
"effect_description": "Discard a random Energy from your opponent\u2019s Active Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Mitsuhiro Arita",
|
||||||
|
"image_path": "pokemon/a1/078-gyarados.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/078-gyarados.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/079-lapras.json
Normal file
33
backend/data/definitions/pokemon/a1/079-lapras.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-079-lapras",
|
||||||
|
"name": "Lapras",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Hydro Pump",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 20,
|
||||||
|
"damage_display": "20x",
|
||||||
|
"effect_description": "If this Pok\u00e9mon has at least 3 extraEnergy attached, this attack does 70 more damage.",
|
||||||
|
"effect_params": {
|
||||||
|
"damage_modifier": "x"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Sekio",
|
||||||
|
"image_path": "pokemon/a1/079-lapras.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/079-lapras.webp"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/080-vaporeon.json
Normal file
33
backend/data/definitions/pokemon/a1/080-vaporeon.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-080-vaporeon",
|
||||||
|
"name": "Vaporeon",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 130,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Eevee",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Bubble Drain",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60",
|
||||||
|
"effect_description": "Heal 30 damage from this Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Kagemaru Himeno",
|
||||||
|
"image_path": "pokemon/a1/080-vaporeon.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/080-vaporeon.webp"
|
||||||
|
}
|
||||||
28
backend/data/definitions/pokemon/a1/081-omanyte.json
Normal file
28
backend/data/definitions/pokemon/a1/081-omanyte.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-081-omanyte",
|
||||||
|
"name": "Omanyte",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 90,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_1",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "uncommon",
|
||||||
|
"evolves_from": "Helix Fossil",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Water Gun",
|
||||||
|
"cost": [
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Suwama Chiaki"
|
||||||
|
}
|
||||||
33
backend/data/definitions/pokemon/a1/082-omastar.json
Normal file
33
backend/data/definitions/pokemon/a1/082-omastar.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-082-omastar",
|
||||||
|
"name": "Omastar",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 140,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "stage_2",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"evolves_from": "Omanyte",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Ancient Whirlpool",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 70,
|
||||||
|
"damage_display": "70",
|
||||||
|
"effect_description": "During your opponent\u2019s next turn, the Defending Pok\u00e9mon can\u2019t attack."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "kirisAki",
|
||||||
|
"image_path": "pokemon/a1/082-omastar.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/082-omastar.webp"
|
||||||
|
}
|
||||||
32
backend/data/definitions/pokemon/a1/083-articuno.json
Normal file
32
backend/data/definitions/pokemon/a1/083-articuno.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-083-articuno",
|
||||||
|
"name": "Articuno",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 100,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "rare",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Ice Beam",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 60,
|
||||||
|
"damage_display": "60",
|
||||||
|
"effect_description": "Flip a coin. If heads, your opponent\u2019s Active Pok\u00e9mon is now Paralyzed."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Hitoshi Ariga",
|
||||||
|
"image_path": "pokemon/a1/083-articuno.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/083-articuno.webp"
|
||||||
|
}
|
||||||
41
backend/data/definitions/pokemon/a1/084-articuno-ex.json
Normal file
41
backend/data/definitions/pokemon/a1/084-articuno-ex.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-084-articuno-ex",
|
||||||
|
"name": "Articuno ex",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 140,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "ex",
|
||||||
|
"retreat_cost": 2,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "double rare",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Ice Wing",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 40,
|
||||||
|
"damage_display": "40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Blizzard",
|
||||||
|
"cost": [
|
||||||
|
"water",
|
||||||
|
"water",
|
||||||
|
"water"
|
||||||
|
],
|
||||||
|
"damage": 80,
|
||||||
|
"damage_display": "80",
|
||||||
|
"effect_description": "This attack also does 10 damage to each of your opponent\u2019s Benched Pok\u00e9mon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "PLANETA Saito",
|
||||||
|
"image_path": "pokemon/a1/084-articuno-ex.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/084-articuno-ex.webp"
|
||||||
|
}
|
||||||
30
backend/data/definitions/pokemon/a1/085-ducklett.json
Normal file
30
backend/data/definitions/pokemon/a1/085-ducklett.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "a1-085-ducklett",
|
||||||
|
"name": "Ducklett",
|
||||||
|
"card_type": "pokemon",
|
||||||
|
"hp": 50,
|
||||||
|
"pokemon_type": "water",
|
||||||
|
"stage": "basic",
|
||||||
|
"variant": "normal",
|
||||||
|
"retreat_cost": 1,
|
||||||
|
"set_id": "a1",
|
||||||
|
"rarity": "common",
|
||||||
|
"attacks": [
|
||||||
|
{
|
||||||
|
"name": "Flap",
|
||||||
|
"cost": [
|
||||||
|
"colorless",
|
||||||
|
"colorless"
|
||||||
|
],
|
||||||
|
"damage": 30,
|
||||||
|
"damage_display": "30"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"weakness": {
|
||||||
|
"energy_type": "lightning",
|
||||||
|
"value": 20
|
||||||
|
},
|
||||||
|
"illustrator": "Yumi",
|
||||||
|
"image_path": "pokemon/a1/085-ducklett.webp",
|
||||||
|
"image_url": "https://cdn.mantimon.com/cards/pokemon/a1/085-ducklett.webp"
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user