Merge remote-tracking branch 'upstream/master' into feature/past-type-efficacy

This commit is contained in:
Julian Lawrance 2021-07-14 22:23:11 +01:00
commit 8b9e4f171c
242 changed files with 8041 additions and 251 deletions

View file

@ -1,14 +1,27 @@
.git
.gitignore
.gitmodules
CONTRIBUTORS.txt
LICENSE.rst
README.md
*.pyc
**/*.pyc
*media/*
*static/*
*build/*
*.DS_STORE
**/*.DS_STORE
db.*
venv*
node_modules
Resources
graphql
.vscode
.github
.circleci
docker-compose.yml
.dockerignore
/*.md
/*.js
.env
*pycache*
target

55
.github/workflows/docker-image.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Build and Push Docker image
on:
push:
branches:
- 'master'
- 'staging'
tags:
- '*.*.*'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
pokeapi/pokeapi
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME_NARAMSIM }}
password: ${{ secrets.DOCKERHUB_TOKEN_NARAMSIM }}
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./Resources/docker/app/Dockerfile
push: true
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/arm/v7,linux/arm/v6
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

50
.github/workflows/kustomize.yml vendored Normal file
View file

@ -0,0 +1,50 @@
name: Deploy Kustomize k8s cluster
on:
workflow_run:
workflows: ["Build and Push Docker image"]
branches: [master, staging]
types:
- completed
schedule:
- cron: '0 0 1 * *'
jobs:
create-kustomize-cluster:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Lint
run: (cd Resources/k8s/kustomize && yamllint .)
- name: Create k8s Kind Cluster
uses: helm/kind-action@v1.1.0
with:
version: v0.11.1
- name: Create deployment configuration
run: |
cp Resources/k8s/kustomize/base/secrets/postgres.env.sample Resources/k8s/kustomize/base/secrets/postgres.env
cp Resources/k8s/kustomize/base/secrets/graphql.env.sample Resources/k8s/kustomize/base/secrets/graphql.env
cp Resources/k8s/kustomize/base/config/pokeapi.env.sample Resources/k8s/kustomize/base/config/pokeapi.env
- name: K8s Apply
run: |
if [ ${GITHUB_REF#refs/heads/} = 'master' ]; then make kustomize-apply; else make kustomize-staging-apply; fi
kubectl proxy &
kubectl describe deployment
bash Resources/scripts/wait.sh http://localhost:8001/api/v1/namespaces/pokeapi/services/pokeapi/proxy/api/v2/
- name: Set default namespace
run: |
kubectl config set-context --current --namespace pokeapi
- name: Migrate and build data
run: |
make k8s-migrate
make k8s-build-db
bash Resources/scripts/wait.sh http://localhost:8001/api/v1/namespaces/pokeapi/services/pokeapi/proxy/api/v2/pal-park-area/5/
- name: K8s Apply
run: |
kubectl wait --timeout=120s --for=condition=complete job/load-graphql
last_command=$(kubectl get job -o jsonpath='{.status.succeeded}' load-graphql)
test "$last_command" -eq 1

4
.gitignore vendored
View file

@ -7,3 +7,7 @@ db.*
venv*
node_modules
.vscode
*.env
Resources/nginx/ssl/*
!Resources/nginx/ssl/*.sample.*
.idea*

View file

@ -1,8 +1,10 @@
veekun_pokedex_repository = ../pokedex
local_config = --settings=config.local
docker_config = --settings=config.docker-compose
HASURA_GRAPHQL_ADMIN_SECRET=pokemon
.PHONY: help
.SILENT:
help:
@grep -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?# "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@ -86,3 +88,30 @@ sync-from-veekun: pull pull-veekun # Copy data from ../pokedex to this repositor
sync-to-veekun: pull pull-veekun # Copy data from this repository to ../pokedex
cp -a ./data/v2/csv/. ${veekun_pokedex_repository}/pokedex/data/csv
# read-env-file: # Exports ./.env into shell environment variables
# export `egrep -v '^#' .env | xargs`
hasura-export: # Export Hasura configuration
hasura md export --project graphql --admin-secret ${HASURA_GRAPHQL_ADMIN_SECRET}
hasura-apply: # Apply local Hasura configuration
hasura md apply --project graphql --admin-secret ${HASURA_GRAPHQL_ADMIN_SECRET}
hasura-get-anon-schema: # Dumps GraphQL schema
gq http://localhost:8080/v1/graphql --introspect > graphql/schema.graphql
kustomize-apply: # (Kustomize) Run kubectl apply -k on the connected k8s cluster
kubectl apply -k Resources/k8s/kustomize/base/
kustomize-staging-apply: # (Kustomize) Run kubectl apply -k on the connected k8s cluster
kubectl apply -k Resources/k8s/kustomize/staging/
k8s-migrate: # (k8s) Run any pending migrations
kubectl exec --namespace pokeapi deployment/pokeapi -- python manage.py migrate --settings=config.docker-compose
k8s-build-db: # (k8s) Build the database
kubectl exec --namespace pokeapi deployment/pokeapi -- sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose'
k8s-delete: # (k8s) Delete pokeapi namespace
kubectl delete namespace pokeapi

102
README.md
View file

@ -18,32 +18,9 @@
A RESTful API for Pokémon - [pokeapi.co](https://pokeapi.co)
## Join Us On Slack!
> Beta GraphQL support is rolling out! Check out the [GraphQL paragraph](#graphql) for more info.
Have a question or just want to discuss new ideas and improvements? Hit us up on slack. Consider talking with us here before creating new issue.
This way we can keep issues here a bit more organized and helpful in the long run. Be excellent to each other :smile:
[Sign up](https://pokeapi-slack-invite.herokuapp.com/) easily!
Once you've signed up visit [PokéAPI on Slack](https://pokeapi.slack.com)
## Official Wrappers
* Node server-side [PokeAPI/pokedex-promise-v2](https://github.com/PokeAPI/pokedex-promise-v2) | _Auto caching_
* Browser client-side [PokeAPI/pokeapi-js-wrapper](https://github.com/PokeAPI/pokeapi-js-wrapper) | _Auto caching_
* Java/Kotlin [PokeAPI/pokekotlin](https://github.com/PokeAPI/pokekotlin)
* Python 3 [GregHilmes/pokebase](https://github.com/GregHilmes/pokebase) | _Auto caching_
* Python 2/3 [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_
* PHP [lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi) | _Auto caching, lazy loading_
* Ruby [rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2)
* .Net Standard [mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet) | _Auto caching_
* Go [mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go) | _Auto caching_
* Dart [prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)
* Rust [lunik1/pokerust](https://gitlab.com/lunik1/pokerust) | _Auto caching_
* Spring Boot [dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi) | _Auto caching_
* Swift [kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI)
## Setup [![pyVersion37](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/download/releases/3.7/)
## Setup   [![pyVersion37](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/download/releases/3.7/)
- Download this source code into a working directory, be sure to use the flag `--recurse-submodules` to clone also our submodules.
@ -81,7 +58,7 @@ from data.v2.build import build_all
build_all()
```
Visit [localhost:8000/api/v2/](localhost:8000/api/v2/) to see the running API!
Visit [localhost:80/api/v2/](localhost:80/api/v2/) to see the running API!
Each time the build script is run, it will iterate over each table in the database, wipe it, and rewrite each row using the data found in data/v2/csv.
@ -93,11 +70,11 @@ If you ever need to wipe the database use this command:
make wipe_db
```
## Docker and Compose
## Docker and Compose   [![docker hub](https://img.shields.io/docker/v/pokeapi/pokeapi?label=tag&sort=semver)](https://hub.docker.com/r/pokeapi/pokeapi)
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allow you to deploy a production-like environment, with separate containers for each services.
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allows you to deploy a production-like environment, with separate containers for each services and is recommended if you need to simply spin up PokéAPI.
Start everything by simply
Start everything by
```sh
make docker-setup
@ -113,14 +90,79 @@ docker-compose exec -T app sh -c 'echo "from data.v2.build import build_all; bui
Browse [localhost/api/v2/](http://localhost/api/v2/) or [localhost/api/v2/pokemon/bulbasaur/](http://localhost/api/v2/pokemon/bulbasaur/) on port `80`.
## GraphQL &nbsp; <a href="ttps://github.com/hasura/graphql-engine"><img height="29px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"/></a>
When you start PokéAPI with the above docker-compose setup, an [Hasura Engine](https://github.com/hasura/graphql-engine) server is started as well. It's possible to track all the PokeAPI tables and foreign keys by simply
```sh
# hasura cli needs to be installed and available in your $PATH: https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html
# hasura cli's version has to be v2.0.0-alpha.5
make hasura-apply
```
When finished browse http://localhost:8080 and you will find the admin console. The GraphQL endpoint will be hosted at http://localhost:8080/v1/graphql.
A free public GraphiQL console is browsable at the address https://beta.pokeapi.co/graphql/console/. The relative GraphQL endpoint is accessible at https://beta.pokeapi.co/graphql/v1beta
A set of examples are provided in the directory [/graphql/examples](./graphql/examples) of this repository.
## Kubernetes &nbsp; [![k8s status](https://github.com/PokeAPI/pokeapi/actions/workflows/kustomize.yml/badge.svg?branch=master)](https://github.com/PokeAPI/pokeapi/actions/workflows/kustomize.yml)
[Kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) files are provided in the folder https://github.com/PokeAPI/pokeapi/tree/master/Resources/k8s/kustomize/base/. Create and change your secrets:
```sh
cp Resources/k8s/kustomize/base/secrets/postgres.env.sample Resources/k8s/kustomize/base/secrets/postgres.env
cp Resources/k8s/kustomize/base/secrets/graphql.env.sample Resources/k8s/kustomize/base/secrets/graphql.env
cp Resources/k8s/kustomize/base/config/pokeapi.env.sample Resources/k8s/kustomize/base/config/pokeapi.env
# Edit the newly created files
```
Configure `kubectl` to point to a cluster and then run the following commands to start a PokéAPI service.
```sh
kubectl apply -k Resources/k8s/kustomize/base/
kubectl config set-context --current --namespace pokeapi # (Optional) Set pokeapi ns as the working ns
# Wait for the cluster to spin up
kubectl exec --namespace pokeapi deployment/pokeapi -- python manage.py migrate --settings=config.docker-compose # Migrate the DB
kubectl exec --namespace pokeapi deployment/pokeapi -- sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose' # Build the db
kubectl wait --namespace pokeapi --timeout=120s --for=condition=complete job/load-graphql # Wait for Graphql configuration job to finish
```
This k8s setup creates all k8s resources inside the _Namespace_ `pokeapi`, run `kubectl delete namespace pokeapi` to delete them. It also creates a _Service_ of type `LoadBalancer` which is exposed on port `80` and `443`. Data is persisted on `12Gi` of `ReadWriteOnce` volumes.
## Official REST Wrappers
* Node server-side [PokeAPI/pokedex-promise-v2](https://github.com/PokeAPI/pokedex-promise-v2) | _Auto caching_
* Browser client-side [PokeAPI/pokeapi-js-wrapper](https://github.com/PokeAPI/pokeapi-js-wrapper) | _Auto caching_
* Java/Kotlin [PokeAPI/pokekotlin](https://github.com/PokeAPI/pokekotlin)
* Python 3 [GregHilmes/pokebase](https://github.com/GregHilmes/pokebase) | _Auto caching_
* Python 2/3 [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_
* PHP [lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi) | _Auto caching, lazy loading_
* Ruby [rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2)
* .Net Standard [mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet) | _Auto caching_
* Go [mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go) | _Auto caching_
* Dart [prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)
* Rust [lunik1/pokerust](https://gitlab.com/lunik1/pokerust) | _Auto caching_
* Spring Boot [dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi) | _Auto caching_
* Swift [kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI)
## Donations
Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the service up. We get almost 20 million requests a month!
Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the service up. We get 60 million requests a month!
Thank you to all our backers! [Become a backer](https://opencollective.com/pokeapi#backer)
<a href="https://opencollective.com/pokeapi#backers" target="_blank"><img src="https://opencollective.com/pokeapi/backers.svg?width=890"></a>
## Join Us On Slack!
Have a question or just want to discuss new ideas and improvements? Hit us up on slack. Consider talking with us here before creating new issue.
This way we can keep issues here a bit more organized and helpful in the long run. Be excellent to each other :smile:
[Sign up](https://pokeapi-slack-invite.herokuapp.com/) easily!
Once you've signed up visit [PokéAPI on Slack](https://pokeapi.slack.com)
## Contributing
This project exists thanks to all the people who [contribute](https://github.com/PokeAPI/pokeapi/blob/master/CONTRIBUTING.md)

View file

@ -0,0 +1,31 @@
version: '2.4'
services:
db:
environment:
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
POSTGRES_USER: "${POSTGRES_USER}"
app:
env_file: .env
web:
volumes:
- graphiql:/public-console:ro
graphql-engine:
environment:
HASURA_GRAPHQL_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-pokeapi}"
HASURA_GRAPHQL_ADMIN_SECRET: "${HASURA_GRAPHQL_ADMIN_SECRET}"
graphiql:
image: pokeapi/graphiql:1.0.1
command: sh -c 'cp -a /app/static/. /transfer/ && tail -f /etc/passwd'
volumes:
- graphiql:/transfer
depends_on:
- graphql-engine
volumes:
graphiql:
# docker-compose -f docker-compose.yml -f Resources/compose/docker-compose-graphql.yml up

View file

@ -2,11 +2,9 @@ FROM python:3.7-alpine
ENV PYTHONUNBUFFERED 1
ENV DJANGO_SETTINGS_MODULE 'config.docker-compose'
ENV PYTHONHASHSEED 'random'
RUN mkdir /code
WORKDIR /code
VOLUME /code
ADD requirements.txt /code/
RUN \
@ -16,5 +14,9 @@ RUN \
apk --purge del .build-deps
ADD . /code/
CMD gunicorn config.wsgi:application -c gunicorn.py.ini
EXPOSE 8000
RUN addgroup -g 1000 -S pokeapi && \
adduser -u 1000 -S pokeapi -G pokeapi
USER pokeapi
CMD gunicorn config.wsgi:application -c gunicorn.conf.py
EXPOSE 80

View file

@ -0,0 +1,52 @@
# Quick reference
- **Maintained by**:
[the PokeAPI Contributors](https://github.com/PokeAPI/pokeapi/graphs/contributors)
- **Where to get help**:
[PokeAPI Slack](http://pokeapi.slack.com/).
- **Where to file issues**:
[https://github.com/PokeAPI/pokeapi/issues](https://github.com/PokeAPI/pokeapi/issues)
- **Source of this description**:
[pokeapi repo's `Resources/docker/app/` directory](https://github.com/PokeAPI/pokeapi/blob/master/Resources/docker/app/README.md)
## Supported tags and respective `Dockerfile` links
- [`latest`](https://github.com/PokeAPI/pokeapi/blob/master/Resources/docker/app/Dockerfile)
- [`master`](https://github.com/PokeAPI/pokeapi/blob/master/Resources/docker/app/Dockerfile)
- [`staging`](https://github.com/PokeAPI/pokeapi/blob/staging/Resources/docker/app/Dockerfile)
> `pokeapi` uses `python:3.7-alpine` as base image.
## What is PokeAPI?
PokeAPI is a full RESTful API linked to an extensive database detailing everything about the Pokémon main game series.
> [pokeapi.co](https://pokeapi.co/)
![logo](https://raw.githubusercontent.com/PokeAPI/media/master/logo/pokeapi_256.png)
## How to use this image
This container connects to a Postgres database via the environment variables `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_HOST`, `POSTGRES_PORT`.
The container connects to a Redis cache via the environment variable `REDIS_CONNECTION_STRING`.
### Run the container
The container exposes port `80`. It needs a PostgreSQL and a Redis instance to connect to. Refer to the section [How to use this image](./how-to-use-this-image) for mapping the environment variables.
It's recommended to use the provided [docker-compose.yml](https://github.com/PokeAPI/pokeapi/blob/master/docker-compose.yml) to start a container from this image.
### Build the data
Pokémon data isn't automatically present in this image. All Pokémon data is persisted in a PostgreSQL database and thus needs to be built.
When the container is up and running, run the following shell commands:
```sh
docker exec pokeapi python manage.py migrate --settings=config.docker-compose
docker exec pokeapi sh -c 'echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose'
```

View file

@ -1,2 +0,0 @@
FROM nginx:alpine
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

View file

@ -0,0 +1,7 @@
---
extends: default
rules:
document-start: disable
line-length: disable

View file

@ -0,0 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: haproxy-ingress-configmap
data:
dynamic-scaling: "true"
ssl-redirect: "false"
app-root: "/"
stats-auth: pokeapi:pokeapi

View file

@ -0,0 +1,2 @@
ADMINS=PokeAPI,change.me@pokeapi.co
BASE_URL=http://localhost/

View file

@ -0,0 +1,25 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: default-backend
labels:
component: default-backend
spec:
replicas: 2
selector:
matchLabels:
component: default-backend
template:
metadata:
labels:
component: default-backend
spec:
containers:
- name: default-backend
image: gcr.io/google_containers/defaultbackend:1.4
ports:
- containerPort: 8080
resources:
limits:
memory: "64Mi"
cpu: "50m"

View file

@ -0,0 +1,54 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: graphql
labels:
component: graphql
spec:
replicas: 1
selector:
matchLabels:
component: graphql
template:
metadata:
labels:
component: graphql
spec:
initContainers:
- name: pokeapi-connection-checker
image: curlimages/curl:latest
command: ["sh", "-c"]
args:
- until curl -f -s --output /dev/null http://pokeapi:80/api/v2/; do
echo waiting for pokeapi;
sleep 2;
done;
containers:
- name: graphql-engine
image: hasura/graphql-engine:v2.0.0-alpha.5
ports:
- containerPort: 8080
env:
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-env-secret
key: POSTGRES_PASSWORD
- name: HASURA_GRAPHQL_ADMIN_SECRET
valueFrom:
secretKeyRef:
name: graphql-env-secret
key: HASURA_GRAPHQL_ADMIN_SECRET
- name: HASURA_GRAPHQL_DATABASE_URL
value: postgres://ash:$(POSTGRES_PASSWORD)@postgresql:5432/pokeapi
- name: HASURA_GRAPHQL_ENABLE_CONSOLE
value: "true"
- name: HASURA_GRAPHQL_DEV_MODE
value: "false"
- name: HASURA_GRAPHQL_ENABLED_LOG_TYPES
value: startup, http-log, webhook-log, websocket-log, query-log
- name: HASURA_GRAPHQL_UNAUTHORIZED_ROLE
value: anon
- name: HASURA_GRAPHQL_ENABLE_TELEMETRY
value: "false"
resources: {}

View file

@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: haproxy-ingress-controller
labels:
component: haproxy-ingress
spec:
selector:
matchLabels:
component: haproxy-ingress
template:
metadata:
labels:
component: haproxy-ingress
spec:
serviceAccountName: ingress-controller
containers:
- name: haproxy-ingress-controller
image: quay.io/jcmoraisjr/haproxy-ingress:v0.12.3
resources:
limits:
memory: "256Mi"
cpu: "500m"
args:
- --default-ssl-certificate=$(POD_NAMESPACE)/tls-secret
- --configmap=$(POD_NAMESPACE)/haproxy-ingress-configmap
- --reload-strategy=native
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
- name: stat
containerPort: 1936
livenessProbe:
httpGet:
path: /healthz
port: 10253
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace

View file

@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: pokeapi
labels:
component: pokeapi
spec:
replicas: 2
selector:
matchLabels:
component: pokeapi
template:
metadata:
labels:
component: pokeapi
spec:
initContainers:
- name: postgres-connection-checker
image: postgres:13.3-alpine
command: ['sh', '-c']
args:
- until pg_isready -h postgresql -p 5432; do
echo waiting for database;
sleep 2;
done;
containers:
- name: pokeapi
image: pokeapi/pokeapi:master
ports:
- containerPort: 8080
securityContext: # CI: Github Actions kills this container if not run with root. Otherwise, it's safe to use the default pokeapi/pokeapi user and remove these lines.
allowPrivilegeEscalation: false
runAsUser: 0
env:
- name: SERVER_PORT
value: "8080"
- name: POSTGRES_HOST
value: postgresql
- name: POSTGRES_USER
value: ash
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-env-secret
key: POSTGRES_PASSWORD
- name: POSTGRES_DB
value: pokeapi
- name: REDIS_CONNECTION_STRING
value: redis://redis:6379/1
envFrom:
- configMapRef:
name: pokeapi-configmap
resources: {}
readinessProbe:
periodSeconds: 5
initialDelaySeconds: 5
httpGet:
path: /api/v2/
port: 8080
livenessProbe:
periodSeconds: 5
initialDelaySeconds: 5
httpGet:
path: /api/v2/
port: 8080

View file

@ -0,0 +1,41 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgresql
labels:
component: postgresql
spec:
replicas: 1
selector:
matchLabels:
component: postgresql
template:
metadata:
labels:
component: postgresql
spec:
containers:
- name: postgresql
image: postgres:13.3-alpine
ports:
- containerPort: 5432
env:
- name: POSTGRES_USER
value: ash
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-env-secret
key: POSTGRES_PASSWORD
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
- name: POSTGRES_DB
value: pokeapi
resources: {}
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgres-claim0
volumes:
- name: postgres-claim0
persistentVolumeClaim:
claimName: postgres-claim0

View file

@ -0,0 +1,29 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
labels:
component: redis
spec:
replicas: 1
selector:
matchLabels:
component: redis
template:
metadata:
labels:
component: redis
spec:
containers:
- name: redis
image: redis:6.2.3-alpine
ports:
- containerPort: 6379
resources: {}
volumeMounts:
- mountPath: /data
name: redis-claim0
volumes:
- name: redis-claim0
persistentVolumeClaim:
claimName: redis-claim0

View file

@ -0,0 +1,37 @@
apiVersion: batch/v1
kind: Job
metadata:
name: load-graphql
spec:
ttlSecondsAfterFinished: 200
template:
spec:
restartPolicy: Never
initContainers:
- name: pokeapi-last-built-resource-connection-checker
image: curlimages/curl:latest
command: ['sh', '-c']
args:
- until curl -f -s --output /dev/null http://pokeapi:80/api/v2/pal-park-area/5/;
do echo waiting for pokeapi;
sleep 2;
done;
containers:
- name: load-graphql
image: debian:buster
env:
- name: HASURA_GRAPHQL_ADMIN_SECRET
valueFrom:
secretKeyRef:
name: graphql-env-secret
key: HASURA_GRAPHQL_ADMIN_SECRET
command: ["sh", "-c"]
args:
- apt-get update &&
apt-get install -y git curl &&
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash &&
hasura update-cli --version v2.0.0-alpha.5 &&
git clone https://github.com/PokeAPI/pokeapi.git &&
cd pokeapi &&
git checkout staging &&
hasura md apply --endpoint http://graphql:8080 --project graphql --admin-secret $(HASURA_GRAPHQL_ADMIN_SECRET)

View file

@ -0,0 +1,38 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: pokeapi
configMapGenerator:
- name: pokeapi-configmap
files:
- config/pokeapi.env
secretGenerator:
- name: postgres-env-secret
env: secrets/postgres.env
type: Opaque
- name: graphql-env-secret
env: secrets/graphql.env
type: Opaque
resources:
- other/namespace.yaml
- other/ingress-controller-rbac.yaml
- config/haproxy-ingress-configmap.yaml
- services/default-service.yaml
- services/pokeapi-service.yaml
- services/postgres-service.yaml
- services/redis-service.yaml
- services/graphql-service.yaml
- services/cloud.yaml
- volumes/postgres-persistentvolumeclaim.yaml
- volumes/redis-persistentvolumeclaim.yaml
- deployments/default-deployment.yaml
- deployments/postgres-deployment.yaml
- deployments/redis-deployment.yaml
- deployments/pokeapi-deployment.yaml
- deployments/graphql-deployment.yaml
- deployments/haproxy-ingress-controller.yaml
- other/ingress.yaml
- jobs/load-graphql.yaml

View file

@ -0,0 +1,125 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: ingress-controller
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: ingress-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- nodes
- pods
- secrets
verbs:
- list
- watch
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
- ingressclasses
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- "extensions"
resources:
- ingresses/status
verbs:
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: ingress-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- pods
- secrets
- namespaces
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- update
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- create
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: ingress-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ingress-controller
subjects:
- kind: ServiceAccount
name: ingress-controller
- apiGroup: rbac.authorization.k8s.io
kind: User
name: ingress-controller
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: ingress-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ingress-controller
subjects:
- kind: ServiceAccount
name: ingress-controller
- apiGroup: rbac.authorization.k8s.io
kind: User
name: ingress-controller

View file

@ -0,0 +1,50 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pokeapi-ingress
annotations:
kubernetes.io/ingress.class: "haproxy"
ingress.kubernetes.io/config-backend: |
compression algo gzip
compression type application/json
spec:
defaultBackend:
service:
name: default-backend
port:
number: 8080
rules:
- http:
paths:
- path: /api/v2
pathType: Prefix
backend:
service:
name: pokeapi
port:
number: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: graphql-ingress
annotations:
kubernetes.io/ingress.class: "haproxy"
ingress.kubernetes.io/config-backend: |
http-request replace-path /graphql(.*) \1
spec:
defaultBackend:
service:
name: default-backend
port:
number: 8080
rules:
- http:
paths:
- path: /graphql
pathType: Prefix
backend:
service:
name: graphql
port:
number: 8080

View file

@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: pokeapi
labels:
name: pokeapi

View file

@ -0,0 +1 @@
HASURA_GRAPHQL_ADMIN_SECRET=pokeapi-change-me

View file

@ -0,0 +1 @@
POSTGRES_PASSWORD=pokeapi-change-me

View file

@ -0,0 +1,21 @@
apiVersion: v1
kind: Service
metadata:
name: haproxy-ingress
labels:
component: haproxy-ingress
spec:
type: LoadBalancer # TODO: Change to `LoadBalancer`
externalTrafficPolicy: Local
ports:
- name: public-http
port: 80
targetPort: http
- name: public-https
port: 443
targetPort: http
- name: public-stat
port: 1936
targetPort: stat
selector:
component: haproxy-ingress

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: default-backend
labels:
component: default-backend
spec:
selector:
component: default-backend
ports:
- port: 8080
targetPort: 8080

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: graphql
labels:
component: graphql
spec:
selector:
component: graphql
ports:
- port: 8080
targetPort: 8080

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: pokeapi
labels:
component: pokeapi
annotations:
ingress.kubernetes.io/balance-algorithm: leastconn
spec:
selector:
component: pokeapi
ports:
- port: 80
targetPort: 8080

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: postgresql
labels:
component: postgresql
spec:
selector:
component: postgresql
ports:
- port: 5432
targetPort: 5432

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
component: redis
spec:
selector:
component: redis
ports:
- port: 6379
targetPort: 6379

View file

@ -0,0 +1,27 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: postgres-volume0
labels:
type: local
component: postgres
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath: # TODO: change to a cloud-solution
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-claim0
labels:
component: postgres
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

View file

@ -0,0 +1,27 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-volume0
labels:
type: local
component: redis
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
hostPath: # TODO: change to a cloud-solution
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-claim0
labels:
component: redis
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi

View file

@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../base
images:
- name: pokeapi/pokeapi
newTag: staging

View file

@ -1,7 +1,7 @@
worker_processes 4; # 80$ droplet, so 4 core enabled
worker_processes 2;
events {
worker_connections 8096; # accepted incoming connections*2
worker_connections 4096;
multi_accept on; # accept each connection as soon as you can
accept_mutex off;
use epoll;
@ -17,7 +17,7 @@ http {
client_body_buffer_size 10K; # raise the threshold by which requests are written to HDD instead of RAM
client_header_buffer_size 2k;
client_max_body_size 8m; # we dont accept requests larger that 8mb, probably you are DoSing us
client_max_body_size 8m; # we dont accept requests larger that 8mb
sendfile on;
tcp_nopush on;
@ -25,57 +25,95 @@ http {
keepalive_timeout 5;
gzip on; # enable zipping files
gzip_vary on;
gzip_min_length 5120; # enable it only for medium-big files (slowbro size is 7000)
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/json;
gzip on;
gzip_disable "msi6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;
upstream pokeapi_upstream {
# 'app' is the Django container name in Docker
# DO NOT EDIT IT ALONE or it'll break docker-compose
server app:8000 fail_timeout=0;
server app:80 fail_timeout=0;
}
upstream graphql_upstream {
server graphql-engine:8080 fail_timeout=0;
}
geo $limit {
default 1;
10.0.0.0/8 0;
192.168.0.0/24 0;
}
map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $limit_key zone=graphqlDefaultLimit:50m rate=1r/m;
limit_conn_zone $binary_remote_addr zone=addr:20m;
server {
listen 80 deferred;
server_name _;
root /code;
include /ssl/ssl.conf*;
client_body_timeout 5s;
client_header_timeout 5s;
limit_conn addr 10;
root /code;
location /media/ {
root /code;
autoindex off;
}
location /static/ {
alias /code/assets/;
autoindex off;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { # cache all these extensions for 5 days, disable logging
access_log off;
log_not_found off;
expires 5d;
# Admin console
location /graphql/admin/ {
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://graphql_upstream/;
}
location /graphql/console {
alias /public-console/;
index index.html;
try_files $uri $uri/ /index.html =405;
}
location /graphql/v1beta {
limit_req zone=graphqlDefaultLimit burst=100 nodelay;
limit_req_status 429;
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://graphql_upstream/v1/graphql;
}
location /api/ {
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://pokeapi_upstream;
}
@ -83,9 +121,7 @@ http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://pokeapi_upstream;
}
}

View file

@ -0,0 +1,14 @@
# Copy this file to ssl.conf, add certificate and private key to enable ssl
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /ssl/cert.cer;
ssl_certificate_key /ssl/key.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

View file

@ -154,7 +154,8 @@ EOF
# If the job was started by a Pull Request and not by a cron job, add a comment to notify the users
notify_engine_pr() {
if [[ $1 == "start" || $1 == "end_failed" || $1 == "end_success" || $1 == "end_no_deploy" || $1 == "end_no_new_data" ]]; then
local -r allowed_events='start end_failed end_success end_no_deploy end_no_new_data'
if [[ "$allowed_events" == *"$1"* ]] && [[ "$CIRCLE_BRANCH" == 'master' ]]; then
engine_repo_pr_number=$(get_invokator_pr_number)
if [ "$engine_repo_pr_number" != "null" ] && [ -n "$CIRCLE_USERNAME" ]; then
curl -f -H "$auth_header" -X POST --data "$(pr_input_updater_$1)" "https://api.github.com/repos/$org/$engine_repo/issues/$engine_repo_pr_number/comments"
@ -175,7 +176,7 @@ run_updater() {
fi
# Run the updater
docker run --privileged -e REPO_POKEAPI_CHECKOUT_OBJECT="$CIRCLE_SHA1" -e COMMIT_EMAIL="$email" -e COMMIT_NAME="$username" -e BRANCH_NAME="$branch_name" -e REPO_POKEAPI="https://github.com/$org/$engine_repo.git" -e REPO_DATA="https://$MACHINE_USER_GITHUB_API_TOKEN@github.com/$org/$data_repo.git" pokeapi-updater
docker run --privileged -e REPO_POKEAPI_CHECKOUT_OBJECT="$CIRCLE_SHA1" -e COMMIT_EMAIL="$email" -e COMMIT_NAME="$username" -e BRANCH_NAME="$branch_name" -e REPO_POKEAPI="https://github.com/$org/$engine_repo.git" -e REPO_DATA="https://$MACHINE_USER_GITHUB_API_TOKEN@github.com/$org/$data_repo.git" -e RUN_AS='root' pokeapi-updater
return_code=$?
if [ "$return_code" -eq 2 ]; then
cleanexit 'no-new-data' "Generated data is the same as old data, skipping deploy"

23
Resources/scripts/wait.sh Normal file
View file

@ -0,0 +1,23 @@
#!/bin/bash
wait_for_http() {
local url="$1"
local max_seconds=1000
local end_time=$(( $(date +%s) + max_seconds ))
local success='false'
echo "Waiting for $url"
while [ "$(date +%s)" -lt "$end_time" ]; do # Loop until interval has elapsed.
sleep 2
if [ "$(curl -s -o /dev/null -L -w '%{http_code}' "$url")" == "200" ]; then
success='true'
break
fi
done
if [ "$success" = 'true' ]; then
exit 0
else
exit 1
fi
}
wait_for_http "${1:-http://localhost/api/v2/}"

11
apollo.config.js Normal file
View file

@ -0,0 +1,11 @@
module.exports = {
client: {
service: {
name: "pokeapi",
url: "http://localhost:8080/v1/graphql",
headers: {
"x-hasura-admin-secret": "pokemon",
},
},
},
};

View file

@ -1,22 +1,22 @@
# Docker settings
import os
from .settings import *
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "pokeapi",
"USER": "ash",
"PASSWORD": "pokemon",
"HOST": "db",
"PORT": 5432,
"NAME": os.environ.get("POSTGRES_DB", "pokeapi"),
"USER": os.environ.get("POSTGRES_USER", "ash"),
"PASSWORD": os.environ.get("POSTGRES_PASSWORD", "pokemon"),
"HOST": os.environ.get("POSTGRES_HOST", "db"),
"PORT": os.environ.get("POSTGRES_PORT", 5432),
}
}
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://cache:6379/1",
"LOCATION": os.environ.get("REDIS_CONNECTION_STRING", "redis://cache:6379/1"),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
@ -25,3 +25,5 @@ CACHES = {
DEBUG = False
TASTYPIE_FULL_DEBUG = False
ALLOWED_HOSTS = ["*"]

View file

@ -8,21 +8,27 @@ DEBUG = False
TEMPLATE_DEBUG = DEBUG
ADMINS = (("Paul Hallett", "paulandrewhallett@gmail.com"),)
ADMINS = (
os.environ.get("ADMINS", "Paul Hallett,paulandrewhallett@gmail.com").split(","),
)
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
MANAGERS = ADMINS
BASE_URL = "http://pokeapi.co"
BASE_URL = os.environ.get("BASE_URL", "http://pokeapi.co")
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = [".pokeapi.co", "localhost", "127.0.0.1"]
ALLOWED_HOSTS = [
os.environ.get("ALLOWED_HOSTS", ".pokeapi.co"),
"localhost",
"127.0.0.1",
]
TIME_ZONE = "Europe/London"
TIME_ZONE = os.environ.get("TIME_ZONE", "Europe/London")
LANGUAGE_CODE = "en-gb"
LANGUAGE_CODE = os.environ.get("LANGUAGE_CODE", "en-gb")
SITE_ID = 1
@ -40,8 +46,6 @@ USE_TZ = True
# Explicitly define test runner to avoid warning messages on test execution
TEST_RUNNER = "django.test.runner.DiscoverRunner"
SECRET_KEY = "4nksdock439320df*(^x2_scm-o$*py3e@-awu-n^hipkm%2l$sw$&2l#"
MIDDLEWARE = [
"corsheaders.middleware.CorsMiddleware",
"django.middleware.common.CommonMiddleware",

View file

@ -353,7 +353,7 @@ ability_id,local_language_id,name
36,3,트레이스
36,4,複製
36,5,Calque
36,6,Fährte
36,6,Erfassen
36,7,Rastro
36,8,Traccia
36,9,Trace
@ -593,7 +593,7 @@ ability_id,local_language_id,name
60,3,점착
60,4,黏著
60,5,Glu
60,6,Wertehalter
60,6,Klebekörper
60,7,Viscosidad
60,8,Antifurto
60,9,Sticky Hold
@ -1354,7 +1354,7 @@ ability_id,local_language_id,name
136,4,多重鱗片
136,5,Multiécaille
136,6,Multischuppe
136,7,Compensación
136,7,Multiescamas
136,8,Multisquame
136,9,Multiscale
136,11,マルチスケイル
@ -1413,7 +1413,7 @@ ability_id,local_language_id,name
142,3,방진
142,4,防塵
142,5,Envelocape
142,6,Wetterfest
142,6,Partikelschutz
142,7,Funda
142,8,Copricapo
142,9,Overcoat
@ -2329,6 +2329,7 @@ ability_id,local_language_id,name
233,9,Neuroforce
233,11,ブレインフォース
233,12,脑核之力
234,1,ふとうのけん
234,3,불요의검
234,4,不撓之劍
234,5,Lame Indomptable
@ -2336,8 +2337,9 @@ ability_id,local_language_id,name
234,7,Espada Indómita
234,8,Spada Indomita
234,9,Intrepid Sword
234,11,ふとうのけん
234,12,不挠之剑
234,13,Espada Intrépida
235,1,ふくつのたて
235,3,불굴의방패
235,4,不屈之盾
235,5,Égide Inflexible
@ -2345,7 +2347,9 @@ ability_id,local_language_id,name
235,7,Escudo Recio
235,8,Scudo Saldo
235,9,Dauntless Shield
235,13,Escudo Destemido
235,11,ふくつのたて
235,12,不屈之盾
236,1,リベロ
236,3,리베로
236,4,自由者
236,5,Libéro
@ -2353,7 +2357,9 @@ ability_id,local_language_id,name
236,7,Líbero
236,8,Libero
236,9,Libero
236,13,Líbero
236,11,リベロ
236,12,自由者
237,1,たまひろい
237,3,볼줍기
237,4,撿球
237,5,Ramasse Ball
@ -2361,7 +2367,9 @@ ability_id,local_language_id,name
237,7,Recogebolas
237,8,Raccattapalle
237,9,Ball Fetch
237,11,たまひろい
237,12,捡球
238,1,わたげ
238,3,솜털
238,4,棉絮
238,5,Effilochage
@ -2369,6 +2377,9 @@ ability_id,local_language_id,name
238,7,Pelusa
238,8,Lanugine
238,9,Cotton Down
238,11,わたげ
238,12,棉絮
239,1,スクリューおびれ
239,3,스크루지느러미
239,4,螺旋尾鰭
239,5,Propulseur
@ -2376,7 +2387,9 @@ ability_id,local_language_id,name
239,7,Hélice Caudal
239,8,Elicopinna
239,9,Propeller Tail
239,11,スクリューおびれ
239,12,螺旋尾鳍
240,1,ミラーアーマー
240,3,미러아머
240,4,鏡甲
240,5,Armure Miroir
@ -2384,23 +2397,29 @@ ability_id,local_language_id,name
240,7,Coraza Reflejo
240,8,Blindospecchio
240,9,Mirror Armor
240,11,ミラーアーマー
240,12,镜甲
241,1,うのミサイル
241,3,그대로꿀꺽미사일
241,4,口飛彈
241,4,口飛彈
241,5,Dégobage
241,6,Würggeschoss
241,7,Tragamisil
241,8,Inghiottimissile
241,9,Gulp Missile
241,12,口导弹
241,11,うのミサイル
241,12,一口导弹
242,1,すじがねいり
242,3,굳건한신념
242,4,堅毅
242,5,Nerfs d'Acier
242,5,Nerfs dAcier
242,6,Stahlrückgrat
242,7,Acérrimo
242,8,Volontà di Ferro
242,9,Stalwart
242,11,すじがねいり
242,12,坚毅
243,1,じょうききかん
243,3,증기기관
243,4,蒸汽機
243,5,Turbine
@ -2408,7 +2427,9 @@ ability_id,local_language_id,name
243,7,Combustible
243,8,Vapormacchina
243,9,Steam Engine
243,11,じょうききかん
243,12,蒸汽机
244,1,パンクロック
244,3,펑크록
244,4,龐克搖滾
244,5,Punk Rock
@ -2416,7 +2437,9 @@ ability_id,local_language_id,name
244,7,Punk Rock
244,8,Punk Rock
244,9,Punk Rock
244,11,パンクロック
244,12,庞克摇滚
245,1,すなはき
245,3,모래뿜기
245,4,吐沙
245,5,ExpulSable
@ -2424,6 +2447,9 @@ ability_id,local_language_id,name
245,7,Expulsarena
245,8,Sputasabbia
245,9,Sand Spit
245,11,すなはき
245,12,吐沙
246,1,こおりのりんぷん
246,3,얼음인분
246,4,冰鱗粉
246,5,Écailles Glacées
@ -2431,7 +2457,9 @@ ability_id,local_language_id,name
246,7,Escama de Hielo
246,8,Geloscaglie
246,9,Ice Scales
246,11,こおりのりんぷん
246,12,冰鳞粉
247,1,じゅくせい
247,3,숙성
247,4,熟成
247,5,Mûrissement
@ -2439,6 +2467,9 @@ ability_id,local_language_id,name
247,7,Maduración
247,8,Maturazione
247,9,Ripen
247,11,じゅくせい
247,12,熟成
248,1,アイスフェイス
248,3,아이스페이스
248,4,結凍頭
248,5,Tête de Gel
@ -2446,15 +2477,19 @@ ability_id,local_language_id,name
248,7,Cara de Hielo
248,8,Gelofaccia
248,9,Ice Face
248,11,アイスフェイス
248,12,结冻头
249,1,パワースポット
249,3,파워스폿
249,4,能量點
249,5,Cercle d'Énergie
249,5,Cercle dÉnergie
249,6,Kraftquelle
249,7,Fuente Energía
249,8,Fonte Energetica
249,9,Power Spot
249,11,パワースポット
249,12,能量点
250,1,ぎたい
250,3,의태
250,4,擬態
250,5,Mimétisme
@ -2462,7 +2497,9 @@ ability_id,local_language_id,name
250,7,Mimetismo
250,8,Mimetismo
250,9,Mimicry
250,11,ぎたい
250,12,拟态
251,1,バリアフリー
251,3,배리어프리
251,4,除障
251,5,Brise-Barrière
@ -2470,7 +2507,9 @@ ability_id,local_language_id,name
251,7,Antibarrera
251,8,Annullabarriere
251,9,Screen Cleaner
251,13,Limpa-vidro
251,11,バリアフリー
251,12,除障
252,1,はがねのせいしん
252,3,강철정신
252,4,鋼之意志
252,5,Boost Acier
@ -2478,8 +2517,9 @@ ability_id,local_language_id,name
252,7,Alma Acerada
252,8,Spiritoferreo
252,9,Steely Spirit
252,11,はがねのせいしん
252,12,钢之意志
252,13,Espírito Férreo
253,1,ほろびのボディ
253,3,멸망의바디
253,4,滅亡之軀
253,5,Corps Condamné
@ -2487,8 +2527,9 @@ ability_id,local_language_id,name
253,7,Cuerpo Mortal
253,8,Ultimotocco
253,9,Perish Body
253,11,ほろびのボディ
253,12,灭亡之躯
253,13,Corpo Perecido
254,1,さまようたましい
254,3,떠도는영혼
254,4,遊魂
254,5,Âme Vagabonde
@ -2496,15 +2537,19 @@ ability_id,local_language_id,name
254,7,Alma Errante
254,8,Anima Errante
254,9,Wandering Spirit
254,11,さまようたましい
254,12,游魂
255,1,ごりむちゅう
255,3,무아지경
255,4,猩
255,4,一意
255,5,Entêtement
255,6,Affenfokus
255,7,Monotema
255,8,Vigorilla
255,9,Gorilla Tactics
255,12,意
255,11,ごりむちゅう
255,12,一猩一意
256,1,かがくへんかガス
256,3,화학변화가스
256,4,化學變化氣體
256,5,Gaz Inhibiteur
@ -2512,8 +2557,9 @@ ability_id,local_language_id,name
256,7,Gas Reactivo
256,8,Gas Reagente
256,9,Neutralizing Gas
256,13,化学变化气体
256,13,Gás Neutralizador
256,11,かがくへんかガス
256,12,化学变化气体
257,1,パステルベール
257,3,파스텔베일
257,4,粉彩護幕
257,5,Voile Pastel
@ -2521,8 +2567,9 @@ ability_id,local_language_id,name
257,7,Velo Pastel
257,8,Pastelvelo
257,9,Pastel Veil
257,11,パステルベール
257,12,粉彩护幕
257,13,Véu de Tons Pastéis
258,1,はらぺこスイッチ
258,3,꼬르륵스위치
258,4,飽了又餓
258,5,Déclic Fringale
@ -2530,7 +2577,9 @@ ability_id,local_language_id,name
258,7,Mutapetito
258,8,Pancialterna
258,9,Hunger Switch
258,11,はらぺこスイッチ
258,12,饱了又饿
259,1,クイックドロウ
259,3,퀵드로
259,4,速擊
259,5,Tir Vif
@ -2538,7 +2587,9 @@ ability_id,local_language_id,name
259,7,Mano Rápida
259,8,Colpolesto
259,9,Quick Draw
259,11,クイックドロウ
259,12,速击
260,1,ふかしのこぶし
260,3,보이지않는주먹
260,4,無形拳
260,5,Poing Invisible
@ -2546,7 +2597,9 @@ ability_id,local_language_id,name
260,7,Puño Invisible
260,8,Pugni Invisibili
260,9,Unseen Fist
260,11,ふかしのこぶし
260,12,无形拳
261,1,きみょうなくすり
261,3,기묘한약
261,4,怪藥
261,5,Breuvage Suspect
@ -2554,7 +2607,9 @@ ability_id,local_language_id,name
261,7,Medicina Extraña
261,8,Stranofarmaco
261,9,Curious Medicine
261,11,きみょうなくすり
261,12,怪药
262,1,トランジスタ
262,3,트랜지스터
262,4,電晶體
262,5,Transistor
@ -2562,15 +2617,19 @@ ability_id,local_language_id,name
262,7,Transistor
262,8,Transistor
262,9,Transistor
262,11,トランジスタ
262,12,电晶体
263,1,りゅうのあぎと
263,3,용의턱
263,4,龍顎
263,5,Dent de Dragon
263,6,Drachenkiefer
263,7,Mandíbula Dragón
263,8,Dragomascelle
263,9,Dragon's Maw
263,9,Dragons Maw
263,11,りゅうのあぎと
263,12,龙颚
264,1,しろのいななき
264,3,백의울음
264,4,蒼白嘶鳴
264,5,Blanche Ruade
@ -2578,7 +2637,9 @@ ability_id,local_language_id,name
264,7,Relincho Blanco
264,8,Nitrito Bianco
264,9,Chilling Neigh
264,11,しろのいななき
264,12,苍白嘶鸣
265,1,くろのいななき
265,3,흑의울음
265,4,漆黑嘶鳴
265,5,Sombre Ruade
@ -2586,7 +2647,9 @@ ability_id,local_language_id,name
265,7,Relincho Negro
265,8,Nitrito Nero
265,9,Grim Neigh
265,11,くろのいななき
265,12,漆黑嘶鸣
266,1,じんばいったい
266,3,혼연일체
266,4,人馬一體
266,5,Osmose Équine
@ -2594,7 +2657,9 @@ ability_id,local_language_id,name
266,7,Unidad Ecuestre
266,8,Sintonia Equina
266,9,As One
266,11,じんばいったい
266,12,人马一体
267,1,じんばいったい
267,3,혼연일체
267,4,人馬一體
267,5,Osmose Équine
@ -2602,6 +2667,7 @@ ability_id,local_language_id,name
267,7,Unidad Ecuestre
267,8,Sintonia Equina
267,9,As One
267,11,じんばいったい
267,12,人马一体
10001,9,Mountaineer
10002,9,Wave Rider

1 ability_id local_language_id name
353 36 3 트레이스
354 36 4 複製
355 36 5 Calque
356 36 6 Fährte Erfassen
357 36 7 Rastro
358 36 8 Traccia
359 36 9 Trace
593 60 3 점착
594 60 4 黏著
595 60 5 Glu
596 60 6 Wertehalter Klebekörper
597 60 7 Viscosidad
598 60 8 Antifurto
599 60 9 Sticky Hold
1354 136 4 多重鱗片
1355 136 5 Multiécaille
1356 136 6 Multischuppe
1357 136 7 Compensación Multiescamas
1358 136 8 Multisquame
1359 136 9 Multiscale
1360 136 11 マルチスケイル
1413 142 3 방진
1414 142 4 防塵
1415 142 5 Envelocape
1416 142 6 Wetterfest Partikelschutz
1417 142 7 Funda
1418 142 8 Copricapo
1419 142 9 Overcoat
2329 233 9 Neuroforce
2330 233 11 ブレインフォース
2331 233 12 脑核之力
2332 234 1 ふとうのけん
2333 234 3 불요의검
2334 234 4 不撓之劍
2335 234 5 Lame Indomptable
2337 234 7 Espada Indómita
2338 234 8 Spada Indomita
2339 234 9 Intrepid Sword
2340 234 11 ふとうのけん
2341 234 12 不挠之剑
2342 234 235 13 1 Espada Intrépida ふくつのたて
2343 235 3 불굴의방패
2344 235 4 不屈之盾
2345 235 5 Égide Inflexible
2347 235 7 Escudo Recio
2348 235 8 Scudo Saldo
2349 235 9 Dauntless Shield
2350 235 13 11 Escudo Destemido ふくつのたて
2351 235 12 不屈之盾
2352 236 1 リベロ
2353 236 3 리베로
2354 236 4 自由者
2355 236 5 Libéro
2357 236 7 Líbero
2358 236 8 Libero
2359 236 9 Libero
2360 236 13 11 Líbero リベロ
2361 236 12 自由者
2362 237 1 たまひろい
2363 237 3 볼줍기
2364 237 4 撿球
2365 237 5 Ramasse Ball
2367 237 7 Recogebolas
2368 237 8 Raccattapalle
2369 237 9 Ball Fetch
2370 237 11 たまひろい
2371 237 12 捡球
2372 238 1 わたげ
2373 238 3 솜털
2374 238 4 棉絮
2375 238 5 Effilochage
2377 238 7 Pelusa
2378 238 8 Lanugine
2379 238 9 Cotton Down
2380 238 11 わたげ
2381 238 12 棉絮
2382 239 1 スクリューおびれ
2383 239 3 스크루지느러미
2384 239 4 螺旋尾鰭
2385 239 5 Propulseur
2387 239 7 Hélice Caudal
2388 239 8 Elicopinna
2389 239 9 Propeller Tail
2390 239 11 スクリューおびれ
2391 239 12 螺旋尾鳍
2392 240 1 ミラーアーマー
2393 240 3 미러아머
2394 240 4 鏡甲
2395 240 5 Armure Miroir
2397 240 7 Coraza Reflejo
2398 240 8 Blindospecchio
2399 240 9 Mirror Armor
2400 240 11 ミラーアーマー
2401 240 12 镜甲
2402 241 1 うのミサイル
2403 241 3 그대로꿀꺽미사일
2404 241 4 口飛彈 一口飛彈
2405 241 5 Dégobage
2406 241 6 Würggeschoss
2407 241 7 Tragamisil
2408 241 8 Inghiottimissile
2409 241 9 Gulp Missile
2410 241 12 11 口导弹 うのミサイル
2411 241 12 一口导弹
2412 242 1 すじがねいり
2413 242 3 굳건한신념
2414 242 4 堅毅
2415 242 5 Nerfs d'Acier Nerfs d’Acier
2416 242 6 Stahlrückgrat
2417 242 7 Acérrimo
2418 242 8 Volontà di Ferro
2419 242 9 Stalwart
2420 242 11 すじがねいり
2421 242 12 坚毅
2422 243 1 じょうききかん
2423 243 3 증기기관
2424 243 4 蒸汽機
2425 243 5 Turbine
2427 243 7 Combustible
2428 243 8 Vapormacchina
2429 243 9 Steam Engine
2430 243 11 じょうききかん
2431 243 12 蒸汽机
2432 244 1 パンクロック
2433 244 3 펑크록
2434 244 4 龐克搖滾
2435 244 5 Punk Rock
2437 244 7 Punk Rock
2438 244 8 Punk Rock
2439 244 9 Punk Rock
2440 244 11 パンクロック
2441 244 12 庞克摇滚
2442 245 1 すなはき
2443 245 3 모래뿜기
2444 245 4 吐沙
2445 245 5 Expul’Sable
2447 245 7 Expulsarena
2448 245 8 Sputasabbia
2449 245 9 Sand Spit
2450 245 11 すなはき
2451 245 12 吐沙
2452 246 1 こおりのりんぷん
2453 246 3 얼음인분
2454 246 4 冰鱗粉
2455 246 5 Écailles Glacées
2457 246 7 Escama de Hielo
2458 246 8 Geloscaglie
2459 246 9 Ice Scales
2460 246 11 こおりのりんぷん
2461 246 12 冰鳞粉
2462 247 1 じゅくせい
2463 247 3 숙성
2464 247 4 熟成
2465 247 5 Mûrissement
2467 247 7 Maduración
2468 247 8 Maturazione
2469 247 9 Ripen
2470 247 11 じゅくせい
2471 247 12 熟成
2472 248 1 アイスフェイス
2473 248 3 아이스페이스
2474 248 4 結凍頭
2475 248 5 Tête de Gel
2477 248 7 Cara de Hielo
2478 248 8 Gelofaccia
2479 248 9 Ice Face
2480 248 11 アイスフェイス
2481 248 12 结冻头
2482 249 1 パワースポット
2483 249 3 파워스폿
2484 249 4 能量點
2485 249 5 Cercle d'Énergie Cercle d’Énergie
2486 249 6 Kraftquelle
2487 249 7 Fuente Energía
2488 249 8 Fonte Energetica
2489 249 9 Power Spot
2490 249 11 パワースポット
2491 249 12 能量点
2492 250 1 ぎたい
2493 250 3 의태
2494 250 4 擬態
2495 250 5 Mimétisme
2497 250 7 Mimetismo
2498 250 8 Mimetismo
2499 250 9 Mimicry
2500 250 11 ぎたい
2501 250 12 拟态
2502 251 1 バリアフリー
2503 251 3 배리어프리
2504 251 4 除障
2505 251 5 Brise-Barrière
2507 251 7 Antibarrera
2508 251 8 Annullabarriere
2509 251 9 Screen Cleaner
2510 251 13 11 Limpa-vidro バリアフリー
2511 251 12 除障
2512 252 1 はがねのせいしん
2513 252 3 강철정신
2514 252 4 鋼之意志
2515 252 5 Boost Acier
2517 252 7 Alma Acerada
2518 252 8 Spiritoferreo
2519 252 9 Steely Spirit
2520 252 11 はがねのせいしん
2521 252 12 钢之意志
2522 252 253 13 1 Espírito Férreo ほろびのボディ
2523 253 3 멸망의바디
2524 253 4 滅亡之軀
2525 253 5 Corps Condamné
2527 253 7 Cuerpo Mortal
2528 253 8 Ultimotocco
2529 253 9 Perish Body
2530 253 11 ほろびのボディ
2531 253 12 灭亡之躯
2532 253 254 13 1 Corpo Perecido さまようたましい
2533 254 3 떠도는영혼
2534 254 4 遊魂
2535 254 5 Âme Vagabonde
2537 254 7 Alma Errante
2538 254 8 Anima Errante
2539 254 9 Wandering Spirit
2540 254 11 さまようたましい
2541 254 12 游魂
2542 255 1 ごりむちゅう
2543 255 3 무아지경
2544 255 4 一猩一意
2545 255 5 Entêtement
2546 255 6 Affenfokus
2547 255 7 Monotema
2548 255 8 Vigorilla
2549 255 9 Gorilla Tactics
2550 255 12 11 ごりむちゅう
2551 255 12 一猩一意
2552 256 1 かがくへんかガス
2553 256 3 화학변화가스
2554 256 4 化學變化氣體
2555 256 5 Gaz Inhibiteur
2557 256 7 Gas Reactivo
2558 256 8 Gas Reagente
2559 256 9 Neutralizing Gas
2560 256 13 11 化学变化气体 かがくへんかガス
2561 256 13 12 Gás Neutralizador 化学变化气体
2562 257 1 パステルベール
2563 257 3 파스텔베일
2564 257 4 粉彩護幕
2565 257 5 Voile Pastel
2567 257 7 Velo Pastel
2568 257 8 Pastelvelo
2569 257 9 Pastel Veil
2570 257 11 パステルベール
2571 257 12 粉彩护幕
2572 257 258 13 1 Véu de Tons Pastéis はらぺこスイッチ
2573 258 3 꼬르륵스위치
2574 258 4 飽了又餓
2575 258 5 Déclic Fringale
2577 258 7 Mutapetito
2578 258 8 Pancialterna
2579 258 9 Hunger Switch
2580 258 11 はらぺこスイッチ
2581 258 12 饱了又饿
2582 259 1 クイックドロウ
2583 259 3 퀵드로
2584 259 4 速擊
2585 259 5 Tir Vif
2587 259 7 Mano Rápida
2588 259 8 Colpolesto
2589 259 9 Quick Draw
2590 259 11 クイックドロウ
2591 259 12 速击
2592 260 1 ふかしのこぶし
2593 260 3 보이지않는주먹
2594 260 4 無形拳
2595 260 5 Poing Invisible
2597 260 7 Puño Invisible
2598 260 8 Pugni Invisibili
2599 260 9 Unseen Fist
2600 260 11 ふかしのこぶし
2601 260 12 无形拳
2602 261 1 きみょうなくすり
2603 261 3 기묘한약
2604 261 4 怪藥
2605 261 5 Breuvage Suspect
2607 261 7 Medicina Extraña
2608 261 8 Stranofarmaco
2609 261 9 Curious Medicine
2610 261 11 きみょうなくすり
2611 261 12 怪药
2612 262 1 トランジスタ
2613 262 3 트랜지스터
2614 262 4 電晶體
2615 262 5 Transistor
2617 262 7 Transistor
2618 262 8 Transistor
2619 262 9 Transistor
2620 262 11 トランジスタ
2621 262 12 电晶体
2622 263 1 りゅうのあぎと
2623 263 3 용의턱
2624 263 4 龍顎
2625 263 5 Dent de Dragon
2626 263 6 Drachenkiefer
2627 263 7 Mandíbula Dragón
2628 263 8 Dragomascelle
2629 263 9 Dragon's Maw Dragon’s Maw
2630 263 11 りゅうのあぎと
2631 263 12 龙颚
2632 264 1 しろのいななき
2633 264 3 백의울음
2634 264 4 蒼白嘶鳴
2635 264 5 Blanche Ruade
2637 264 7 Relincho Blanco
2638 264 8 Nitrito Bianco
2639 264 9 Chilling Neigh
2640 264 11 しろのいななき
2641 264 12 苍白嘶鸣
2642 265 1 くろのいななき
2643 265 3 흑의울음
2644 265 4 漆黑嘶鳴
2645 265 5 Sombre Ruade
2647 265 7 Relincho Negro
2648 265 8 Nitrito Nero
2649 265 9 Grim Neigh
2650 265 11 くろのいななき
2651 265 12 漆黑嘶鸣
2652 266 1 じんばいったい
2653 266 3 혼연일체
2654 266 4 人馬一體
2655 266 5 Osmose Équine
2657 266 7 Unidad Ecuestre
2658 266 8 Sintonia Equina
2659 266 9 As One
2660 266 11 じんばいったい
2661 266 12 人马一体
2662 267 1 じんばいったい
2663 267 3 혼연일체
2664 267 4 人馬一體
2665 267 5 Osmose Équine
2667 267 7 Unidad Ecuestre
2668 267 8 Sintonia Equina
2669 267 9 As One
2670 267 11 じんばいったい
2671 267 12 人马一体
2672 10001 9 Mountaineer
2673 10002 9 Wave Rider

View file

@ -17,3 +17,7 @@ encounter_condition_id,local_language_id,name
6,5,Saison
6,6,Jahreszeit
6,9,Season
7,9,Chosen Starter
8,9,Chosen dialogue at the news report
9,9,Story Progress
10,9,Miscellaneous

1 encounter_condition_id local_language_id name
17 6 5 Saison
18 6 6 Jahreszeit
19 6 9 Season
20 7 9 Chosen Starter
21 8 9 Chosen dialogue at the news report
22 9 9 Story Progress
23 10 9 Miscellaneous

View file

@ -16939,3 +16939,37 @@ encounter_id,encounter_condition_value_id
57870,5
57871,5
57872,5
58117,29
58118,29
58119,29
58120,29
58121,29
58122,29
58123,29
58124,29
58125,34
58126,34
58127,34
58128,34
58129,34
58130,34
58131,29
58132,29
58133,29
58134,29
58135,32
58136,32
58125,22
58126,22
58127,21
58128,21
58129,23
58130,23
58137,35
58138,35
58139,35
58140,35
58138,28
58140,27
59280,39
59281,39

1 encounter_id encounter_condition_value_id
16939 57870 5
16940 57871 5
16941 57872 5
16942 58117 29
16943 58118 29
16944 58119 29
16945 58120 29
16946 58121 29
16947 58122 29
16948 58123 29
16949 58124 29
16950 58125 34
16951 58126 34
16952 58127 34
16953 58128 34
16954 58129 34
16955 58130 34
16956 58131 29
16957 58132 29
16958 58133 29
16959 58134 29
16960 58135 32
16961 58136 32
16962 58125 22
16963 58126 22
16964 58127 21
16965 58128 21
16966 58129 23
16967 58130 23
16968 58137 35
16969 58138 35
16970 58139 35
16971 58140 35
16972 58138 28
16973 58140 27
16974 59280 39
16975 59281 39

View file

@ -39,3 +39,22 @@ encounter_condition_value_id,local_language_id,name
19,9,During Autumn
20,6,Im Winter
20,9,During Winter
21,9,Bulbasaur as starter
22,9,Squirtle as starter
23,9,Charmander as starter
24,9,Chespin as starter
25,9,Fennekin as starter
26,9,Froakie as starter
27,9,Chose Blue on the TV news report
28,9,Chose Red on the TV news report
29,9,Awakened the legendary beasts at Burned Tower
30,9,Visited Lake Verity after defeating Team Galactic at Mt. Coronet
31,9,Talked to Professor Oak at Eterna City
32,9,Visited the Pokémon Fan Club with Copycats doll
33,9,Met Tornadus or Thundurus in a cutscene
34,9,Beat the Elite 4 for the second time
35,9,Enter the Hall of Fame
36,9,None
37,9,Acquired National Pokédex
38,9,None
39,9,Beat the Pokémon league after knocking out Snorlax at Route 11

1 encounter_condition_value_id local_language_id name
39 19 9 During Autumn
40 20 6 Im Winter
41 20 9 During Winter
42 21 9 Bulbasaur as starter
43 22 9 Squirtle as starter
44 23 9 Charmander as starter
45 24 9 Chespin as starter
46 25 9 Fennekin as starter
47 26 9 Froakie as starter
48 27 9 Chose ‘Blue’ on the TV news report
49 28 9 Chose ‘Red’ on the TV news report
50 29 9 Awakened the legendary beasts at Burned Tower
51 30 9 Visited Lake Verity after defeating Team Galactic at Mt. Coronet
52 31 9 Talked to Professor Oak at Eterna City
53 32 9 Visited the Pokémon Fan Club with Copycat’s doll
54 33 9 Met Tornadus or Thundurus in a cutscene
55 34 9 Beat the Elite 4 for the second time
56 35 9 Enter the Hall of Fame
57 36 9 None
58 37 9 Acquired National Pokédex
59 38 9 None
60 39 9 Beat the Pokémon league after knocking out Snorlax at Route 11

View file

@ -19,3 +19,22 @@ id,encounter_condition_id,identifier,is_default
18,6,season-summer,0
19,6,season-autumn,0
20,6,season-winter,0
21,7,starter-bulbasaur,0
22,7,starter-squirtle,0
23,7,starter-charmander,0
24,7,starter-chespin,0
25,7,starter-fennekin,0
26,7,starter-froakie,0
27,8,tv-option-blue,1
28,8,tv-option-red,0
29,9,story-progress-awakened-beasts,0
30,9,story-progress-beat-galactic-coronet,0
31,9,story-progress-oak-eterna-city,0
32,9,story-progress-vermilion-copycat,0
33,9,story-progress-met-tornadus-thundurus,0
34,9,story-progress-beat-elite-four-round-two,0
35,9,story-progress-hall-of-fame,0
36,9,story-progress-none,1
37,9,story-progress-national-dex,0
38,10,other-none,1
39,10,other-snorlax-11-beat-league,0

1 id encounter_condition_id identifier is_default
19 18 6 season-summer 0
20 19 6 season-autumn 0
21 20 6 season-winter 0
22 21 7 starter-bulbasaur 0
23 22 7 starter-squirtle 0
24 23 7 starter-charmander 0
25 24 7 starter-chespin 0
26 25 7 starter-fennekin 0
27 26 7 starter-froakie 0
28 27 8 tv-option-blue 1
29 28 8 tv-option-red 0
30 29 9 story-progress-awakened-beasts 0
31 30 9 story-progress-beat-galactic-coronet 0
32 31 9 story-progress-oak-eterna-city 0
33 32 9 story-progress-vermilion-copycat 0
34 33 9 story-progress-met-tornadus-thundurus 0
35 34 9 story-progress-beat-elite-four-round-two 0
36 35 9 story-progress-hall-of-fame 0
37 36 9 story-progress-none 1
38 37 9 story-progress-national-dex 0
39 38 10 other-none 1
40 39 10 other-snorlax-11-beat-league 0

View file

@ -5,3 +5,7 @@ id,identifier
4,slot2
5,radio
6,season
7,starter
8,tv-option
9,story-progress
10,other

1 id identifier
5 4 slot2
6 5 radio
7 6 season
8 7 starter
9 8 tv-option
10 9 story-progress
11 10 other

View file

@ -35,3 +35,11 @@ encounter_method_id,local_language_id,name
17,9,Walking on rough terrain
18,9,Receive as a gift
19,9,Receive egg as a gift
20,9,"Static encounter, only one chance"
21,9,Playing Pokéflute
22,9,Headbutting a low encounter rate tree
23,9,Headbutting a normal encounter rate tree
24,9,Headbutting a high encounter rate tree
25,9,Using the Squirt Bottle on a Sudowoodo
26,9,Using the Wailmer Pail on a Sudowoodo
27,9,Surfing on seaweed

1 encounter_method_id local_language_id name
35 17 9 Walking on rough terrain
36 18 9 Receive as a gift
37 19 9 Receive egg as a gift
38 20 9 Static encounter, only one chance
39 21 9 Playing Pokéflute
40 22 9 Headbutting a low encounter rate tree
41 23 9 Headbutting a normal encounter rate tree
42 24 9 Headbutting a high encounter rate tree
43 25 9 Using the Squirt Bottle on a Sudowoodo
44 26 9 Using the Wailmer Pail on a Sudowoodo
45 27 9 Surfing on seaweed

View file

@ -18,3 +18,11 @@ id,identifier,order
17,rough-terrain,9
18,gift,18
19,gift-egg,19
20,only-one,20
21,pokeflute,21
22,headbutt-low,22
23,headbutt-normal,23
24,headbutt-high,24
25,squirt-bottle,25
26,wailmer-pail,26
27,seaweed,27

1 id identifier order
18 17 rough-terrain 9
19 18 gift 18
20 19 gift-egg 19
21 20 only-one 20
22 21 pokeflute 21
23 22 headbutt-low 22
24 23 headbutt-normal 23
25 24 headbutt-high 24
26 25 squirt-bottle 25
27 26 wailmer-pail 26
28 27 seaweed 27

View file

@ -559,3 +559,89 @@ id,version_group_id,encounter_method_id,slot,rarity
558,4,5,3,10
559,4,6,1,90
560,4,6,2,10
561,1,20,,100
562,2,20,,100
563,3,20,,100
564,4,20,,100
565,5,20,,100
566,6,20,,100
567,7,20,,100
568,8,20,,100
569,9,20,,100
570,10,20,,100
571,11,20,,100
572,14,20,,100
573,15,20,,100
574,16,20,,100
575,17,20,,100
576,18,20,,100
577,19,20,,100
578,20,20,,100
579,1,21,,100
580,2,21,,100
581,3,21,,100
582,4,21,,100
583,7,21,,100
584,10,21,,100
585,15,21,,100
586,19,21,,100
587,3,22,1,50
588,3,22,2,15
589,3,22,3,15
590,3,22,4,10
591,3,22,5,5
592,3,22,6,5
593,3,23,1,50
594,3,23,2,15
595,3,23,3,15
596,3,23,4,10
597,3,23,5,5
598,3,23,6,5
599,3,22,1,50
600,3,22,2,30
601,3,22,3,10
602,3,22,4,5
603,3,22,5,5
604,3,23,1,50
605,3,23,2,30
606,3,23,3,10
607,3,23,4,5
608,3,23,5,5
609,3,24,1,50
610,3,24,2,15
611,3,24,3,15
612,3,24,4,10
613,3,24,5,5
614,3,24,6,5
615,4,22,1,50
616,4,22,2,15
617,4,22,3,15
618,4,22,4,10
619,4,22,5,5
620,4,22,6,5
621,4,23,1,50
622,4,23,2,15
623,4,23,3,15
624,4,23,4,10
625,4,23,5,5
626,4,23,6,5
627,4,24,1,50
628,4,24,2,15
629,4,24,3,15
630,4,24,4,10
631,4,24,5,5
632,4,24,6,5
633,3,25,,100
634,4,25,,100
635,10,25,,100
636,6,26,,100
637,5,27,1,60
638,5,27,2,30
639,5,27,3,5
640,5,27,4,4
641,5,27,5,1
642,6,27,1,60
643,6,27,2,30
644,6,27,3,5
645,6,27,4,4
646,6,27,5,1

1 id version_group_id encounter_method_id slot rarity
559 558 4 5 3 10
560 559 4 6 1 90
561 560 4 6 2 10
562 561 1 20 100
563 562 2 20 100
564 563 3 20 100
565 564 4 20 100
566 565 5 20 100
567 566 6 20 100
568 567 7 20 100
569 568 8 20 100
570 569 9 20 100
571 570 10 20 100
572 571 11 20 100
573 572 14 20 100
574 573 15 20 100
575 574 16 20 100
576 575 17 20 100
577 576 18 20 100
578 577 19 20 100
579 578 20 20 100
580 579 1 21 100
581 580 2 21 100
582 581 3 21 100
583 582 4 21 100
584 583 7 21 100
585 584 10 21 100
586 585 15 21 100
587 586 19 21 100
588 587 3 22 1 50
589 588 3 22 2 15
590 589 3 22 3 15
591 590 3 22 4 10
592 591 3 22 5 5
593 592 3 22 6 5
594 593 3 23 1 50
595 594 3 23 2 15
596 595 3 23 3 15
597 596 3 23 4 10
598 597 3 23 5 5
599 598 3 23 6 5
600 599 3 22 1 50
601 600 3 22 2 30
602 601 3 22 3 10
603 602 3 22 4 5
604 603 3 22 5 5
605 604 3 23 1 50
606 605 3 23 2 30
607 606 3 23 3 10
608 607 3 23 4 5
609 608 3 23 5 5
610 609 3 24 1 50
611 610 3 24 2 15
612 611 3 24 3 15
613 612 3 24 4 10
614 613 3 24 5 5
615 614 3 24 6 5
616 615 4 22 1 50
617 616 4 22 2 15
618 617 4 22 3 15
619 618 4 22 4 10
620 619 4 22 5 5
621 620 4 22 6 5
622 621 4 23 1 50
623 622 4 23 2 15
624 623 4 23 3 15
625 624 4 23 4 10
626 625 4 23 5 5
627 626 4 23 6 5
628 627 4 24 1 50
629 628 4 24 2 15
630 629 4 24 3 15
631 630 4 24 4 10
632 631 4 24 5 5
633 632 4 24 6 5
634 633 3 25 100
635 634 4 25 100
636 635 10 25 100
637 636 6 26 100
638 637 5 27 1 60
639 638 5 27 2 30
640 639 5 27 3 5
641 640 5 27 4 4
642 641 5 27 5 1
643 642 6 27 1 60
644 643 6 27 2 30
645 644 6 27 3 5
646 645 6 27 4 4
647 646 6 27 5 1

File diff suppressed because it is too large Load diff

View file

@ -650,3 +650,22 @@ location_area_id,local_language_id,name
790,9,Poke Mart
791,9,Pokemon Center
792,9,West Gate
793,9,Bell Tower Roof
794,9,Roaming Kanto
795,9,Roaming Johto
796,9,Roaming Hoenn
797,9,Roaming Sinnoh
798,9,Azalea Town
800,9,Mahogany City
801,9,Cave of Origin B4F
802,9,Terra Cave
803,9,Marine Cave
804,9,Sky Pillar Apex
805,9,Bell Tower 1F
806,9,Birth Island
807,9,Navel Rock
808,9,Faraway Island
809,9,Hoenn Battle Frontier
810,9,Desert Ruins
811,9,Island Cave
812,9,Ancient Tomb

1 location_area_id local_language_id name
650 790 9 Poke Mart
651 791 9 Pokemon Center
652 792 9 West Gate
653 793 9 Bell Tower Roof
654 794 9 Roaming Kanto
655 795 9 Roaming Johto
656 796 9 Roaming Hoenn
657 797 9 Roaming Sinnoh
658 798 9 Azalea Town
659 800 9 Mahogany City
660 801 9 Cave of Origin B4F
661 802 9 Terra Cave
662 803 9 Marine Cave
663 804 9 Sky Pillar Apex
664 805 9 Bell Tower 1F
665 806 9 Birth Island
666 807 9 Navel Rock
667 808 9 Faraway Island
668 809 9 Hoenn Battle Frontier
669 810 9 Desert Ruins
670 811 9 Island Cave
671 812 9 Ancient Tomb

View file

@ -682,3 +682,22 @@ id,location_id,game_index,identifier
790,153,0,poke-mart
791,153,0,pokemon-center
792,349,0,west-gate
793,139,0,roof
794,799,0,area
795,800,0,area
796,801,0,area
797,802,0,area
798,228,0,area
800,230,0,area
801,443,0,b4f
802,803,0,area
803,804,0,area
804,448,0,apex
805,139,0,1f
806,810,0,area
807,811,0,area
808,812,0,area
809,813,0,area
810,582,0,area
811,581,0,area
812,583,0,area

1 id location_id game_index identifier
682 790 153 0 poke-mart
683 791 153 0 pokemon-center
684 792 349 0 west-gate
685 793 139 0 roof
686 794 799 0 area
687 795 800 0 area
688 796 801 0 area
689 797 802 0 area
690 798 228 0 area
691 800 230 0 area
692 801 443 0 b4f
693 802 803 0 area
694 803 804 0 area
695 804 448 0 apex
696 805 139 0 1f
697 806 810 0 area
698 807 811 0 area
699 808 812 0 area
700 809 813 0 area
701 810 582 0 area
702 811 581 0 area
703 812 583 0 area

View file

@ -3576,3 +3576,18 @@ location_id,local_language_id,name,subtitle
798,9,Malie City,Outer Cape
798,11,マリエシティ,はずれの岬
798,12,马利埃静市,市郊海角
799,9,Roaming Kanto,
800,9,Roaming Johto,
801,9,Roaming Hoenn,
802,9,Roaming Sinnoh,
803,9,Terra Cave,
804,9,Marine Cave,
805,9,Two Island,
806,9,Three Island,
80,9,Three Isle Path,
808,9,Six Island,
809,9,Seven Island,
810,9,Birth Island,
811,9,Navel Rock,
812,9,Faraway Island,
813,9,Hoenn Battle Frontier,

1 location_id local_language_id name subtitle
3576 798 9 Malie City Outer Cape
3577 798 11 マリエシティ はずれの岬
3578 798 12 马利埃静市 市郊海角
3579 799 9 Roaming Kanto
3580 800 9 Roaming Johto
3581 801 9 Roaming Hoenn
3582 802 9 Roaming Sinnoh
3583 803 9 Terra Cave
3584 804 9 Marine Cave
3585 805 9 Two Island
3586 806 9 Three Island
3587 80 9 Three Isle Path
3588 808 9 Six Island
3589 809 9 Seven Island
3590 810 9 Birth Island
3591 811 9 Navel Rock
3592 812 9 Faraway Island
3593 813 9 Hoenn Battle Frontier

View file

@ -780,3 +780,18 @@ id,region_id,identifier
796,7,aether-paradise
797,7,ultra-space
798,7,malie-city--outer-cape
799,1,roaming-kanto
800,2,roaming-johto
801,3,roaming-hoenn
802,4,roaming-sinnoh
803,3,terra-cave
804,3,marine-cave
805,1,two-island
806,1,three-island
807,1,three-isle-path
808,1,six-island
809,1,seven-island
810,1,birth-island
811,1,navel-rock
812,3,faraway-island
813,3,hoenn-battle-frontier

1 id region_id identifier
780 796 7 aether-paradise
781 797 7 ultra-space
782 798 7 malie-city--outer-cape
783 799 1 roaming-kanto
784 800 2 roaming-johto
785 801 3 roaming-hoenn
786 802 4 roaming-sinnoh
787 803 3 terra-cave
788 804 3 marine-cave
789 805 1 two-island
790 806 1 three-island
791 807 1 three-isle-path
792 808 1 six-island
793 809 1 seven-island
794 810 1 birth-island
795 811 1 navel-rock
796 812 3 faraway-island
797 813 3 hoenn-battle-frontier

View file

@ -40,7 +40,6 @@ move_id,stat_id,change
231,3,-1
232,2,1
242,3,-1
246,1,1
246,2,1
246,3,1
246,4,1
@ -61,7 +60,6 @@ move_id,stat_id,change
313,5,-2
315,4,-2
317,6,-1
318,1,1
318,2,1
318,3,1
318,4,1
@ -102,7 +100,6 @@ move_id,stat_id,change
455,3,1
455,5,1
465,5,-2
466,1,1
466,2,1
466,3,1
466,4,1

1 move_id stat_id change
40 231 3 -1
41 232 2 1
42 242 3 -1
246 1 1
43 246 2 1
44 246 3 1
45 246 4 1
60 313 5 -2
61 315 4 -2
62 317 6 -1
318 1 1
63 318 2 1
64 318 3 1
65 318 4 1
100 455 3 1
101 455 5 1
102 465 5 -2
466 1 1
103 466 2 1
104 466 3 1
105 466 4 1

View file

@ -3,7 +3,7 @@ move_id,local_language_id,name
1,3,막치기
1,4,拍擊
1,5,ÉcrasFace
1,6,Pfund
1,6,Klaps
1,7,Destructor
1,8,Botta
1,9,Pound
@ -106,7 +106,7 @@ move_id,local_language_id,name
11,6,Klammer
11,7,Agarre
11,8,Presa
11,9,Vice Grip
11,9,Vise Grip
11,11,はさむ
11,12,夹住
12,1,ハサミギロチン
@ -394,7 +394,7 @@ move_id,local_language_id,name
40,4,毒針
40,5,Dard-Venin
40,6,Giftstachel
40,7,Picotazo Ven
40,7,Picotazo Veneno
40,8,Velenospina
40,9,Poison Sting
40,11,どくばり
@ -633,7 +633,7 @@ move_id,local_language_id,name
64,3,쪼기
64,4,啄
64,5,Picpic
64,6,Schnabel
64,6,Pikser
64,7,Picotazo
64,8,Beccata
64,9,Peck
@ -684,7 +684,7 @@ move_id,local_language_id,name
69,4,地球上投
69,5,Frappe Atlas
69,6,Geowurf
69,7,Mov. Sísmico
69,7,Sísmico
69,8,Movim. Sismico
69,9,Seismic Toss
69,11,ちきゅうなげ
@ -1083,7 +1083,7 @@ move_id,local_language_id,name
109,3,이상한빛
109,4,奇異之光
109,5,Onde Folie
109,6,Konfustrahl
109,6,Konfusstrahl
109,7,Rayo Confuso
109,8,Stordiraggio
109,9,Confuse Ray
@ -1184,7 +1184,7 @@ move_id,local_language_id,name
119,4,鸚鵡學舌
119,5,Mimique
119,6,Spiegeltrick
119,7,Mov. Espejo
119,7,Espejo
119,8,Speculmossa
119,9,Mirror Move
119,11,オウムがえし
@ -1363,7 +1363,7 @@ move_id,local_language_id,name
137,3,뱀눈초리
137,4,大蛇瞪眼
137,5,Regard Médusant
137,6,Giftblick
137,6,Schlangenblick
137,7,Deslumbrar
137,8,Sguardo Feroce
137,9,Glare
@ -1394,7 +1394,7 @@ move_id,local_language_id,name
140,4,投球
140,5,Pilonnage
140,6,Stakkato
140,7,Presa
140,7,Bombardeo
140,8,Attacco Pioggia
140,9,Barrage
140,11,たまなげ
@ -1923,7 +1923,7 @@ move_id,local_language_id,name
193,3,꿰뚫어보기
193,4,識破
193,5,Clairvoyance
193,6,Gesichte
193,6,Scharfblick
193,7,Profecía
193,8,Preveggenza
193,9,Foresight
@ -2044,7 +2044,7 @@ move_id,local_language_id,name
205,4,滾動
205,5,Roulade
205,6,Walzer
205,7,Desenrollar
205,7,Rodar
205,8,Rotolamento
205,9,Rollout
205,11,ころがる
@ -2054,7 +2054,7 @@ move_id,local_language_id,name
206,4,點到為止
206,5,Faux-Chage
206,6,Trugschlag
206,7,Falsotortazo
206,7,Falso Tortazo
206,8,Falsofinale
206,9,False Swipe
206,11,みねうち
@ -2713,7 +2713,7 @@ move_id,local_language_id,name
272,3,역할
272,4,扮演
272,5,Imitation
272,6,Rollentausch
272,6,Rollenspiel
272,7,Imitación
272,8,Giocodiruolo
272,9,Role Play
@ -2843,7 +2843,7 @@ move_id,local_language_id,name
285,3,스킬스웹
285,4,特性互換
285,5,Échange
285,6,Wertewechsel
285,6,Fähigkeitstausch
285,7,Intercambio
285,8,Baratto
285,9,Skill Swap
@ -2854,7 +2854,7 @@ move_id,local_language_id,name
286,4,封印
286,5,Possessif
286,6,Begrenzer
286,7,Cerca
286,7,Sellar
286,8,Esclusiva
286,9,Imprison
286,11,ふういん
@ -3044,7 +3044,7 @@ move_id,local_language_id,name
305,4,劇毒牙
305,5,Crochet Venin
305,6,Giftzahn
305,7,Colmillo Ven
305,7,Colmillo Veneno
305,8,Velenodenti
305,9,Poison Fang
305,11,どくどくのキバ
@ -3304,7 +3304,7 @@ move_id,local_language_id,name
331,4,種子機關槍
331,5,Balle Graine
331,6,Kugelsaat
331,7,Recurrente
331,7,Semilladora
331,8,Semitraglia
331,9,Bullet Seed
331,11,タネマシンガン
@ -3745,7 +3745,7 @@ move_id,local_language_id,name
375,5,Échange Psy
375,6,Psybann
375,7,Psicocambio
375,8,Psicotrasfer
375,8,Psicotransfer
375,9,Psycho Shift
375,11,サイコシフト
375,12,精神转移
@ -3844,7 +3844,7 @@ move_id,local_language_id,name
385,4,防守互換
385,5,Permugarde
385,6,Schutztausch
385,7,Cambia Defensa
385,7,Cambiadefensa
385,8,Barattoscudo
385,9,Guard Swap
385,11,ガードスワップ
@ -5014,7 +5014,7 @@ move_id,local_language_id,name
502,4,交換場地
502,5,Interversion
502,6,Seitentausch
502,7,Cambio Banda
502,7,Cambio de Banda
502,8,Cambiaposto
502,9,Ally Switch
502,11,サイドチェンジ
@ -5078,7 +5078,7 @@ move_id,local_language_id,name
508,8,Cambiomarcia
508,9,Shift Gear
508,11,ギアチェンジ
508,12,换
508,12,换
509,1,ともえなげ
509,3,배대뒤치기
509,4,巴投
@ -7288,6 +7288,7 @@ move_id,local_language_id,name
729,8,Sprintaboom
729,9,Zippy Zap
729,11,ばちばちアクセル
729,12,电电加速
730,1,ざぶざぶサーフ
730,3,참방참방서핑
730,4,滔滔衝浪
@ -7297,6 +7298,7 @@ move_id,local_language_id,name
730,8,Surfasplash
730,9,Splishy Splash
730,11,ざぶざぶサーフ
730,12,滔滔冲浪
731,1,ふわふわフォール
731,3,둥실둥실폴
731,4,飄飄墜落
@ -7306,6 +7308,7 @@ move_id,local_language_id,name
731,8,Piombaflap
731,9,Floaty Fall
731,11,ふわふわフォール
731,12,飘飘坠落
732,1,ピカピカサンダー
732,3,피카피카썬더
732,4,閃閃雷光
@ -7315,6 +7318,7 @@ move_id,local_language_id,name
732,8,Pikasaetta
732,9,Pika Papow
732,11,ピカピカサンダー
732,12,闪闪雷光
733,1,いきいきバブル
733,3,생생버블
733,4,活活氣泡
@ -7324,6 +7328,7 @@ move_id,local_language_id,name
733,8,Bollaslurp
733,9,Bouncy Bubble
733,11,いきいきバブル
733,12,活活气泡
734,1,びりびりエレキ
734,3,찌릿찌릿일렉
734,4,麻麻電擊
@ -7333,6 +7338,7 @@ move_id,local_language_id,name
734,8,Elettrozap
734,9,Buzzy Buzz
734,11,びりびりエレキ
734,12,麻麻电击
735,1,めらめらバーン
735,3,이글이글번
735,4,熊熊火爆
@ -7342,6 +7348,7 @@ move_id,local_language_id,name
735,8,Fiammabam
735,9,Sizzly Slide
735,11,めらめらバーン
735,12,熊熊火爆
736,1,どばどばオーラ
736,3,콸콸오라
736,4,嘩嘩氣場
@ -7349,8 +7356,9 @@ move_id,local_language_id,name
736,6,Pulsieraura
736,7,Espeaura
736,8,Auraswoosh
736,9,Sizzly Slide
736,9,Glitzy Glow
736,11,どばどばオーラ
736,12,哗哗气场
737,1,わるわるゾーン
737,3,아그아그존
737,4,壞壞領域
@ -7360,6 +7368,7 @@ move_id,local_language_id,name
737,8,Zona Buiabuia
737,9,Baddy Bad
737,11,わるわるゾーン
737,12,坏坏领域
738,1,すくすくボンバー
738,3,쑥쑥봄버
738,4,茁茁轟炸
@ -7369,6 +7378,7 @@ move_id,local_language_id,name
738,8,Bombafrush
738,9,Sappy Seed
738,11,すくすくボンバー
738,12,茁茁轰炸
739,1,こちこちフロスト
739,3,꽁꽁프로스트
739,4,冰冰霜凍
@ -7378,6 +7388,7 @@ move_id,local_language_id,name
739,8,Scricchiagelo
739,9,Freezy Frost
739,11,こちこちフロスト
739,12,冰冰霜冻
740,1,きらきらストーム
740,3,반짝반짝스톰
740,4,亮亮風暴
@ -7387,24 +7398,27 @@ move_id,local_language_id,name
740,8,Sbrilluccibufera
740,9,Sparkly Swirl
740,11,きらきらストーム
740,12,亮亮风暴
741,1,ブイブイブレイク
741,3,브이브이브레이크
741,4,砰砰
741,4,砰砰
741,5,Évo-Chardasso
741,6,Evo-Crash
741,7,Eevimpacto
741,8,Eeveempatto
741,9,Veevee Volley
741,11,ブイブイブレイク
741,12,砰砰击破
742,1,ダブルパンツァー
742,3,더블펀처
742,4,鋼拳雙擊
742,5,Écrous d'Poing
742,5,Écrous dPoing
742,6,Panzerfäuste
742,7,Ferropuño Doble
742,8,Pugni Corazzati
742,9,Double Iron Bash
742,11,ダブルパンツァー
742,12,钢拳双击
743,1,ダイウォール
743,3,다이월
743,4,極巨防壁
@ -7414,8 +7428,8 @@ move_id,local_language_id,name
743,8,Dynabarriera
743,9,Max Guard
743,11,ダイウォール
743,12,巨防壁
744,1,ダイマックス
743,12,巨防壁
744,1,ダイマックスほう
744,3,다이맥스포
744,4,極巨炮
744,5,Canon Dynamax
@ -7423,8 +7437,8 @@ move_id,local_language_id,name
744,7,Cañón Dinamax
744,8,Cannone Dynamax
744,9,Dynamax Cannon
744,11,ダイマックス
744,12,巨炮
744,11,ダイマックスほう
744,12,巨炮
745,1,ねらいうち
745,3,노려맞히기
745,4,狙擊
@ -7434,7 +7448,7 @@ move_id,local_language_id,name
745,8,Tiromirato
745,9,Snipe Shot
745,11,ねらいうち
745,12,狙
745,12,狙
746,1,くらいつく
746,3,물고버티기
746,4,緊咬不放
@ -7444,7 +7458,7 @@ move_id,local_language_id,name
746,8,Morsostretto
746,9,Jaw Lock
746,11,くらいつく
746,12,咬不放
746,12,咬不放
747,1,ほおばる
747,3,볼가득넣기
747,4,大快朵頤
@ -7454,7 +7468,7 @@ move_id,local_language_id,name
747,8,Riempiguance
747,9,Stuff Cheeks
747,11,ほおばる
747,12,大快朵
747,12,大快朵
748,1,はいすいのじん
748,3,배수의진
748,4,背水一戰
@ -7464,7 +7478,7 @@ move_id,local_language_id,name
748,8,Spalle al Muro
748,9,No Retreat
748,11,はいすいのじん
748,12,背水一
748,12,背水一
749,1,タールショット
749,3,타르숏
749,4,瀝青射擊
@ -7474,7 +7488,7 @@ move_id,local_language_id,name
749,8,Colpocatrame
749,9,Tar Shot
749,11,タールショット
749,12,瀝青射擊
749,12,沥青射击
750,1,まほうのこな
750,3,마법가루
750,4,魔法粉
@ -7494,7 +7508,7 @@ move_id,local_language_id,name
751,8,Dragofrecce
751,9,Dragon Darts
751,11,ドラゴンアロー
751,12,
751,12,
752,1,おちゃかい
752,3,다과회
752,4,茶會
@ -7504,7 +7518,7 @@ move_id,local_language_id,name
752,8,Ora del Tè
752,9,Teatime
752,11,おちゃかい
752,12,茶
752,12,茶
753,1,たこがため
753,3,문어굳히기
753,4,蛸固
@ -7524,8 +7538,8 @@ move_id,local_language_id,name
754,8,Beccoshock
754,9,Bolt Beak
754,11,でんげきくちばし
754,12,
755,1,エラ
754,12,
755,1,エラがみ
755,3,아가미물기
755,4,鰓咬
755,5,Branchicrok
@ -7533,8 +7547,8 @@ move_id,local_language_id,name
755,7,Branquibocado
755,8,Branchiomorso
755,9,Fishious Rend
755,11,エラ
755,12,
755,11,エラがみ
755,12,
756,1,コートチェンジ
756,3,코트체인지
756,4,換場
@ -7544,7 +7558,7 @@ move_id,local_language_id,name
756,8,Cambiocampo
756,9,Court Change
756,11,コートチェンジ
756,12,換場
756,12,换场
757,1,ダイバーン
757,3,다이번
757,4,極巨火爆
@ -7554,7 +7568,7 @@ move_id,local_language_id,name
757,8,Dynafiammata
757,9,Max Flare
757,11,ダイバーン
757,12,巨火爆
757,12,巨火爆
758,1,ダイワーム
758,3,다이웜
758,4,極巨蟲蠱
@ -7564,7 +7578,7 @@ move_id,local_language_id,name
758,8,Dynainsetto
758,9,Max Flutterby
758,11,ダイワーム
758,12,極巨蟲蠱
758,12,极巨虫蛊
759,1,ダイサンダー
759,3,다이썬더
759,4,極巨閃電
@ -7574,7 +7588,7 @@ move_id,local_language_id,name
759,8,Dynasaetta
759,9,Max Lightning
759,11,ダイサンダー
759,12,極巨閃電
759,12,极巨闪电
760,1,ダイアタック
760,3,다이어택
760,4,極巨攻擊
@ -7584,7 +7598,7 @@ move_id,local_language_id,name
760,8,Dynattacco
760,9,Max Strike
760,11,ダイアタック
760,12,極巨攻擊
760,12,极巨攻击
761,1,ダイナックル
761,3,다이너클
761,4,極巨拳鬥
@ -7594,7 +7608,7 @@ move_id,local_language_id,name
761,8,Dynapugno
761,9,Max Knuckle
761,11,ダイナックル
761,12,極巨拳鬥
761,12,极巨拳斗
762,1,ダイホロウ
762,3,다이할로우
762,4,極巨幽魂
@ -7604,7 +7618,7 @@ move_id,local_language_id,name
762,8,Dynavuoto
762,9,Max Phantasm
762,11,ダイホロウ
762,12,巨幽魂
762,12,巨幽魂
763,1,ダイアイス
763,3,다이아이스
763,4,極巨寒冰
@ -7614,7 +7628,7 @@ move_id,local_language_id,name
763,8,Dynagelo
763,9,Max Hailstorm
763,11,ダイアイス
763,12,巨寒冰
763,12,巨寒冰
764,1,ダイアシッド
764,3,다이애시드
764,4,極巨酸毒
@ -7624,7 +7638,7 @@ move_id,local_language_id,name
764,8,Dynacorrosione
764,9,Max Ooze
764,11,ダイアシッド
764,12,巨酸毒
764,12,巨酸毒
765,1,ダイストリーム
765,3,다이스트림
765,4,極巨水流
@ -7634,7 +7648,7 @@ move_id,local_language_id,name
765,8,Dynaflusso
765,9,Max Geyser
765,11,ダイストリーム
765,12,巨水流
765,12,巨水流
766,1,ダイジェット
766,3,다이제트
766,4,極巨飛衝
@ -7644,7 +7658,7 @@ move_id,local_language_id,name
766,8,Dynajet
766,9,Max Airstream
766,11,ダイジェット
766,12,極巨飛衝
766,12,极巨飞冲
767,1,ダイフェアリー
767,3,다이페어리
767,4,極巨妖精
@ -7654,7 +7668,7 @@ move_id,local_language_id,name
767,8,Dynafata
767,9,Max Starfall
767,11,ダイフェアリー
767,12,巨妖精
767,12,巨妖精
768,1,ダイドラグーン
768,3,다이드라군
768,4,極巨龍騎
@ -7664,7 +7678,7 @@ move_id,local_language_id,name
768,8,Dynadragone
768,9,Max Wyrmwind
768,11,ダイドラグーン
768,12,極巨龍騎
768,12,极巨龙骑
769,1,ダイサイコ
769,3,다이사이코
769,4,極巨超能
@ -7674,7 +7688,7 @@ move_id,local_language_id,name
769,8,Dynapsiche
769,9,Max Mindstorm
769,11,ダイサイコ
769,12,巨超能
769,12,巨超能
770,1,ダイロック
770,3,다이록
770,4,極巨岩石
@ -7684,7 +7698,7 @@ move_id,local_language_id,name
770,8,Dynamacigno
770,9,Max Rockfall
770,11,ダイロック
770,12,巨岩石
770,12,巨岩石
771,1,ダイアース
771,3,다이어스
771,4,極巨大地
@ -7694,7 +7708,7 @@ move_id,local_language_id,name
771,8,Dynasisma
771,9,Max Quake
771,11,ダイアース
771,12,巨大地
771,12,巨大地
772,1,ダイアーク
772,3,다이아크
772,4,極巨惡霸
@ -7704,7 +7718,7 @@ move_id,local_language_id,name
772,8,Dynatenebre
772,9,Max Darkness
772,11,ダイアーク
772,12,極巨惡
772,12,极巨恶
773,1,ダイソウゲン
773,3,다이그래스
773,4,極巨草原
@ -7714,7 +7728,7 @@ move_id,local_language_id,name
773,8,Dynaflora
773,9,Max Overgrowth
773,11,ダイソウゲン
773,12,巨草原
773,12,巨草原
774,1,ダイスチル
774,3,다이스틸
774,4,極巨鋼鐵
@ -7724,7 +7738,7 @@ move_id,local_language_id,name
774,8,Dynametallo
774,9,Max Steelspike
774,11,ダイスチル
774,12,極巨鋼鐵
774,12,极巨钢铁
775,1,ソウルビート
775,3,소울비트
775,4,魂舞烈音爆
@ -7744,7 +7758,7 @@ move_id,local_language_id,name
776,8,Schiacciacorpo
776,9,Body Press
776,11,ボディプレス
776,12,撲擊
776,12,扑击
777,1,デコレーション
777,3,데코레이션
777,4,裝飾
@ -7754,7 +7768,7 @@ move_id,local_language_id,name
777,8,Decorazione
777,9,Decorate
777,11,デコレーション
777,12,裝飾
777,12,装饰
778,1,ドラムアタック
778,3,드럼어택
778,4,鼓擊
@ -7764,7 +7778,7 @@ move_id,local_language_id,name
778,8,Tamburattacco
778,9,Drum Beating
778,11,ドラムアタック
778,12,鼓
778,12,鼓
779,1,トラバサミ
779,3,집게덫
779,4,捕獸夾
@ -7774,8 +7788,8 @@ move_id,local_language_id,name
779,8,Tagliola
779,9,Snap Trap
779,11,トラバサミ
779,12,捕獸夾
780,1,かえん
779,12,捕兽夹
780,1,かえんボール
780,3,화염볼
780,4,火焰球
780,5,Ballon Brûlant
@ -7783,7 +7797,7 @@ move_id,local_language_id,name
780,7,Balón Ígneo
780,8,Palla Infuocata
780,9,Pyro Ball
780,11,かえん
780,11,かえんボール
780,12,火焰球
781,1,きょじゅうざん
781,3,거수참
@ -7794,7 +7808,7 @@ move_id,local_language_id,name
781,8,Taglio Maestoso
781,9,Behemoth Blade
781,11,きょじゅうざん
781,12,巨獸斬
781,12,巨兽斩
782,1,きょじゅうだん
782,3,거수탄
782,4,巨獸彈
@ -7804,17 +7818,17 @@ move_id,local_language_id,name
782,8,Colpo Maestoso
782,9,Behemoth Bash
782,11,きょじゅうだん
782,12,巨獸彈
783,1,オーラ
782,12,巨兽弹
783,1,オーラぐるま
783,3,오라휠
783,4,氣場輪
783,5,Roue Libre
783,6,Aura-Rad
783,7,Rueda Aural
783,8,Ruota d'Aura
783,8,Ruota dAura
783,9,Aura Wheel
783,11,オーラ
783,12,氣場輪
783,11,オーラぐるま
783,12,气场轮
784,1,ワイドブレイカー
784,3,와이드브레이커
784,4,廣域破壞
@ -7824,7 +7838,17 @@ move_id,local_language_id,name
784,8,Vastoimpatto
784,9,Breaking Swipe
784,11,ワイドブレイカー
784,12,廣域破壞
784,12,广域破坏
785,1,えだづき
785,3,가지찌르기
785,4,木枝突刺
785,5,Tapotige
785,6,Zweigstoß
785,7,Punzada Rama
785,8,Ramostoccata
785,9,Branch Poke
785,11,えだづき
785,12,木枝突刺
786,1,オーバードライブ
786,3,오버드라이브
786,4,破音
@ -7844,17 +7868,17 @@ move_id,local_language_id,name
787,8,Acido Malico
787,9,Apple Acid
787,11,りんごさん
787,12,果酸
788,1,
788,3,
787,12,果酸
788,1,Gのちから
788,3,G의힘
788,4,萬有引力
788,5,Force G
788,6,Gravitation
788,7,Fuerza G
788,8,Forza G
788,9,Grav Apple
788,11,
788,12,有引力
788,11,Gのちから
788,12,有引力
789,1,ソウルクラッシュ
789,3,소울크래시
789,4,靈魂衝擊
@ -7864,7 +7888,7 @@ move_id,local_language_id,name
789,8,Frantumanima
789,9,Spirit Break
789,11,ソウルクラッシュ
789,12,靈魂衝擊
789,12,灵魂冲击
790,1,ワンダースチーム
790,3,원더스팀
790,4,神奇蒸汽
@ -7894,7 +7918,7 @@ move_id,local_language_id,name
792,8,Sbarramento
792,9,Obstruct
792,11,ブロッキング
792,12,
792,12,
793,1,どげざつき
793,3,사죄의찌르기
793,4,假跪真撞
@ -7914,7 +7938,7 @@ move_id,local_language_id,name
794,8,Sfolgorassalto
794,9,Meteor Assault
794,11,スターアサルト
794,12,流星突
794,12,流星突
795,1,ムゲンダイビーム
795,3,무한다이빔
795,4,無極光束
@ -7924,137 +7948,317 @@ move_id,local_language_id,name
795,8,Raggio Infinito
795,9,Eternabeam
795,11,ムゲンダイビーム
795,12,無極光束
795,12,无极光束
796,1,てっていこうせん
796,3,철제광선
796,4,鐵蹄光線
796,5,Métalaser
796,6,Stahlstrahl
796,7,Metaláser
796,8,Raggio d'Acciaio
796,8,Raggio dAcciaio
796,9,Steel Beam
796,11,てっていこうせん
796,12,鐵蹄光線
796,12,铁蹄光线
797,1,ワイドフォース
797,3,와이드포스
797,4,廣域戰力
797,5,Vaste Pouvoir
797,6,Flächenmacht
797,7,Vasta Fuerza
797,8,Vastenergia
797,9,Expanding Force
797,11,ワイドフォース
797,12,广域战力
798,1,アイアンローラー
798,3,아이언롤러
798,4,鐵滾輪
798,5,Métalliroue
798,6,Eisenwalze
798,7,Allanador Férreo
798,8,Ferrorullo
798,9,Steel Roller
798,11,アイアンローラー
798,12,铁滚轮
799,1,スケイルショット
799,3,스케일샷
799,4,鱗射
799,5,Rafale Écailles
799,6,Schuppenschuss
799,7,Ráfaga Escamas
799,8,Squamacolpo
799,9,Scale Shot
799,11,スケイルショット
799,12,鳞射
800,1,メテオビーム
800,3,메테오빔
800,4,流星光束
800,5,Laser Météore
800,6,Meteorstrahl
800,7,Rayo Meteórico
800,8,Raggiometeora
800,9,Meteor Beam
800,11,メテオビーム
800,12,流星光束
801,1,シェルアームズ
801,3,셸암즈
801,4,臂貝武器
801,5,Kokiyarme
801,6,Muschelwaffe
801,7,Moluscañón
801,8,Armaguscio
801,9,Shell Side Arm
801,11,シェルアームズ
801,12,臂贝武器
802,1,ミストバースト
802,3,미스트버스트
802,4,薄霧炸裂
802,5,Explo-Brume
802,6,Nebelexplosion
802,7,Bruma Explosiva
802,8,Nebbioscoppio
802,9,Misty Explosion
803,3,그래스슬라이더
803,5,Gliss'Herbe
802,11,ミストバースト
802,12,薄雾炸裂
803,1,グラススライダー
803,3,그래스슬라이더
803,4,青草滑梯
803,5,GlissHerbe
803,6,Grasrutsche
803,7,Fitoimpulso
803,8,Erboscivolata
803,9,Grassy Glide
803,11,グラススライダー
803,12,青草滑梯
804,1,ライジングボルト
804,3,라이징볼트
804,4,電力上升
804,5,Monte-Tension
804,6,Hochspannung
804,7,Alto Voltaje
804,8,Elettroimpennata
804,9,Rising Voltage
804,11,ライジングボルト
804,12,电力上升
805,1,だいちのはどう
805,3,대지의파동
805,4,大地波動
805,5,Champlification
805,6,Feldimpuls
805,7,Pulso de Campo
805,8,Campopulsar
805,9,Terrain Pulse
805,11,だいちのはどう
805,12,大地波动
806,1,はいよるいちげき
806,3,엄습하는일격
806,4,爬擊
806,5,Ravage Rampant
806,6,Krabbelkracher
806,7,Golpe Rastrero
806,8,Strisciacolpo
806,9,Skitter Smack
806,11,はいよるいちげき
806,12,爬击
807,1,しっとのほのお
807,3,질투의불꽃
807,4,妒火
807,5,Feu Envieux
807,6,Neidflammen
807,7,Envidia Ardiente
807,8,Fiamminvidia
807,9,Burning Jealousy
807,11,しっとのほのお
807,12,妒火
808,1,うっぷんばらし
808,3,분풀이
808,4,洩憤
808,5,Cent Rancunes
808,6,Frustventil
808,7,Desahogo
808,8,Sfogarabbia
808,9,Lash Out
808,11,うっぷんばらし
808,12,泄愤
809,1,ポルターガイスト
809,3,폴터가이스트
809,4,靈騷
809,5,Esprit Frappeur
809,6,Poltergeist
809,7,Poltergeist
809,8,Poltergeist
809,9,Poltergeist
809,11,ポルターガイスト
809,12,灵骚
810,1,ふしょくガス
810,3,부식가스
810,4,腐蝕氣體
810,5,Gaz Corrosif
810,6,Korrosionsgas
810,7,Gas Corrosivo
810,8,Gas Corrosivo
810,9,Corrosive Gas
810,11,ふしょくガス
810,12,腐蚀气体
811,1,コーチング
811,3,코칭
811,4,指導
811,5,Coaching
811,6,Coaching
811,7,Motivación
811,8,Coaching
811,9,Coaching
811,11,コーチング
811,12,指导
812,1,クイックターン
812,3,퀵턴
812,4,快速折返
812,5,Eau Revoir
812,6,Rollwende
812,7,Viraje
812,8,Virata
812,9,Flip Turn
812,11,クイックターン
812,12,快速折返
813,1,トリプルアクセル
813,3,트리플악셀
813,4,三旋擊
813,5,Triple Axel
813,6,Dreifach-Axel
813,7,Triple Axel
813,8,Triplo Axel
813,9,Triple Axel
813,11,トリプルアクセル
813,12,三旋击
814,1,ダブルウイング
814,3,더블윙
814,4,雙翼
814,5,Double Volée
814,6,Doppelflügel
814,7,Ala Bis
814,8,Doppia Ala
814,9,Dual Wingbeat
815,3,열사의대지t
814,11,ダブルウイング
814,12,双翼
815,1,ねっさのだいち
815,3,열사의대지
815,4,熱沙大地
815,5,Sable Ardent
815,6,Brandsand
815,7,Arenas Ardientes
815,8,Sabbiardente
815,9,Scorching Sands
815,11,ねっさのだいち
815,12,热沙大地
816,1,ジャングルヒール
816,3,정글힐
816,4,叢林治療
816,5,Selve Salvatrice
816,6,Dschungelheilung
816,7,Cura Selvática
816,8,Giunglacura
816,9,Jungle Healing
816,11,ジャングルヒール
816,12,丛林治疗
817,1,あんこくきょうだ
817,3,암흑강타
817,4,暗冥強擊
817,5,Poing Obscur
817,6,Finstertreffer
817,7,Golpe Oscuro
817,8,Pugnotenebra
817,9,Wicked Blow
817,11,あんこくきょうだ
817,12,暗冥强击
818,1,すいりゅうれんだ
818,3,수류연타
818,4,水流連打
818,5,Torrent de Coups
818,6,Trefferschwall
818,7,Azote Torrencial
818,8,Idroraffica
818,9,Surging Strikes
818,11,すいりゅうれんだ
818,12,水流连打
819,1,サンダープリズン
819,3,썬더프리즌
819,4,雷電囚籠
819,5,Voltageôle
819,6,Blitzgefängnis
819,7,Electrojaula
819,8,Elettrogabbia
819,9,Thunder Cage
819,11,サンダープリズン
819,12,雷电囚笼
820,1,ドラゴンエナジー
820,3,드래곤에너지
820,4,巨龍威能
820,5,Draco-Énergie
820,6,Drachenkräfte
820,7,Dracoenergía
820,8,Dragoenergia
820,9,Dragon Energy
820,11,ドラゴンエナジー
820,12,巨龙威能
821,1,いてつくしせん
821,3,얼어붙는시선
821,4,冰冷視線
821,5,Regard Glaçant
821,6,Eisiger Blick
821,7,Mirada Heladora
821,8,Sguardo Gelido
821,9,Freezing Glare
821,11,いてつくしせん
821,12,冰冷视线
822,1,もえあがるいかり
822,3,타오르는분노
822,4,怒火中燒
822,5,Fureur Ardente
822,6,Brennender Zorn
822,7,Furia Candente
822,8,Furia Ardente
822,9,Fiery Wrath
822,11,もえあがるいかり
822,12,怒火中烧
823,1,らいめいげり
823,3,천둥차기
823,4,雷鳴蹴擊
823,5,Coup Fulgurant
823,6,Donnernder Tritt
823,7,Patada Relámpago
823,8,Calcio Tonante
823,9,Thunderous Kick
823,11,らいめいげり
823,12,雷鸣蹴击
824,1,ブリザードランス
824,3,블리자드랜스
824,4,雪矛
824,5,Lance de Glace
824,6,Blizzardlanze
824,7,Lanza Glacial
824,8,Lancia Glaciale
824,9,Glacial Lance
824,11,ブリザードランス
824,12,雪矛
825,1,アストラルビット
825,3,아스트랄비트
825,4,星碎
825,5,Éclat Spectral
825,6,Astralfragmente
825,7,Orbes Espectro
825,8,Schegge Astrali
825,9,Astral Barrage
825,11,アストラルビット
825,12,星碎
826,1,ぶきみなじゅもん
826,3,섬뜩한주문
826,4,詭異咒語
826,5,Sort Sinistre
826,6,Schauderspruch
826,7,Conjuro Funesto
826,8,Inquietantesimo
826,9,Eerie Spell
826,11,ぶきみなじゅもん
826,12,诡异咒语
10001,1,ダークラッシュ
10001,5,Charge Noire
10001,6,Cryptoschlag

1 move_id local_language_id name
3 1 3 막치기
4 1 4 拍擊
5 1 5 Écras’Face
6 1 6 Pfund Klaps
7 1 7 Destructor
8 1 8 Botta
9 1 9 Pound
106 11 6 Klammer
107 11 7 Agarre
108 11 8 Presa
109 11 9 Vice Grip Vise Grip
110 11 11 はさむ
111 11 12 夹住
112 12 1 ハサミギロチン
394 40 4 毒針
395 40 5 Dard-Venin
396 40 6 Giftstachel
397 40 7 Picotazo Ven Picotazo Veneno
398 40 8 Velenospina
399 40 9 Poison Sting
400 40 11 どくばり
633 64 3 쪼기
634 64 4
635 64 5 Picpic
636 64 6 Schnabel Pikser
637 64 7 Picotazo
638 64 8 Beccata
639 64 9 Peck
684 69 4 地球上投
685 69 5 Frappe Atlas
686 69 6 Geowurf
687 69 7 Mov. Sísmico Sísmico
688 69 8 Movim. Sismico
689 69 9 Seismic Toss
690 69 11 ちきゅうなげ
1083 109 3 이상한빛
1084 109 4 奇異之光
1085 109 5 Onde Folie
1086 109 6 Konfustrahl Konfusstrahl
1087 109 7 Rayo Confuso
1088 109 8 Stordiraggio
1089 109 9 Confuse Ray
1184 119 4 鸚鵡學舌
1185 119 5 Mimique
1186 119 6 Spiegeltrick
1187 119 7 Mov. Espejo Espejo
1188 119 8 Speculmossa
1189 119 9 Mirror Move
1190 119 11 オウムがえし
1363 137 3 뱀눈초리
1364 137 4 大蛇瞪眼
1365 137 5 Regard Médusant
1366 137 6 Giftblick Schlangenblick
1367 137 7 Deslumbrar
1368 137 8 Sguardo Feroce
1369 137 9 Glare
1394 140 4 投球
1395 140 5 Pilonnage
1396 140 6 Stakkato
1397 140 7 Presa Bombardeo
1398 140 8 Attacco Pioggia
1399 140 9 Barrage
1400 140 11 たまなげ
1923 193 3 꿰뚫어보기
1924 193 4 識破
1925 193 5 Clairvoyance
1926 193 6 Gesichte Scharfblick
1927 193 7 Profecía
1928 193 8 Preveggenza
1929 193 9 Foresight
2044 205 4 滾動
2045 205 5 Roulade
2046 205 6 Walzer
2047 205 7 Desenrollar Rodar
2048 205 8 Rotolamento
2049 205 9 Rollout
2050 205 11 ころがる
2054 206 4 點到為止
2055 206 5 Faux-Chage
2056 206 6 Trugschlag
2057 206 7 Falsotortazo Falso Tortazo
2058 206 8 Falsofinale
2059 206 9 False Swipe
2060 206 11 みねうち
2713 272 3 역할
2714 272 4 扮演
2715 272 5 Imitation
2716 272 6 Rollentausch Rollenspiel
2717 272 7 Imitación
2718 272 8 Giocodiruolo
2719 272 9 Role Play
2843 285 3 스킬스웹
2844 285 4 特性互換
2845 285 5 Échange
2846 285 6 Wertewechsel Fähigkeitstausch
2847 285 7 Intercambio
2848 285 8 Baratto
2849 285 9 Skill Swap
2854 286 4 封印
2855 286 5 Possessif
2856 286 6 Begrenzer
2857 286 7 Cerca Sellar
2858 286 8 Esclusiva
2859 286 9 Imprison
2860 286 11 ふういん
3044 305 4 劇毒牙
3045 305 5 Crochet Venin
3046 305 6 Giftzahn
3047 305 7 Colmillo Ven Colmillo Veneno
3048 305 8 Velenodenti
3049 305 9 Poison Fang
3050 305 11 どくどくのキバ
3304 331 4 種子機關槍
3305 331 5 Balle Graine
3306 331 6 Kugelsaat
3307 331 7 Recurrente Semilladora
3308 331 8 Semitraglia
3309 331 9 Bullet Seed
3310 331 11 タネマシンガン
3745 375 5 Échange Psy
3746 375 6 Psybann
3747 375 7 Psicocambio
3748 375 8 Psicotrasfer Psicotransfer
3749 375 9 Psycho Shift
3750 375 11 サイコシフト
3751 375 12 精神转移
3844 385 4 防守互換
3845 385 5 Permugarde
3846 385 6 Schutztausch
3847 385 7 Cambia Defensa Cambiadefensa
3848 385 8 Barattoscudo
3849 385 9 Guard Swap
3850 385 11 ガードスワップ
5014 502 4 交換場地
5015 502 5 Interversion
5016 502 6 Seitentausch
5017 502 7 Cambio Banda Cambio de Banda
5018 502 8 Cambiaposto
5019 502 9 Ally Switch
5020 502 11 サイドチェンジ
5078 508 8 Cambiomarcia
5079 508 9 Shift Gear
5080 508 11 ギアチェンジ
5081 508 12 换挡 换档
5082 509 1 ともえなげ
5083 509 3 배대뒤치기
5084 509 4 巴投
7288 729 8 Sprintaboom
7289 729 9 Zippy Zap
7290 729 11 ばちばちアクセル
7291 729 12 电电加速
7292 730 1 ざぶざぶサーフ
7293 730 3 참방참방서핑
7294 730 4 滔滔衝浪
7298 730 8 Surfasplash
7299 730 9 Splishy Splash
7300 730 11 ざぶざぶサーフ
7301 730 12 滔滔冲浪
7302 731 1 ふわふわフォール
7303 731 3 둥실둥실폴
7304 731 4 飄飄墜落
7308 731 8 Piombaflap
7309 731 9 Floaty Fall
7310 731 11 ふわふわフォール
7311 731 12 飘飘坠落
7312 732 1 ピカピカサンダー
7313 732 3 피카피카썬더
7314 732 4 閃閃雷光
7318 732 8 Pikasaetta
7319 732 9 Pika Papow
7320 732 11 ピカピカサンダー
7321 732 12 闪闪雷光
7322 733 1 いきいきバブル
7323 733 3 생생버블
7324 733 4 活活氣泡
7328 733 8 Bollaslurp
7329 733 9 Bouncy Bubble
7330 733 11 いきいきバブル
7331 733 12 活活气泡
7332 734 1 びりびりエレキ
7333 734 3 찌릿찌릿일렉
7334 734 4 麻麻電擊
7338 734 8 Elettrozap
7339 734 9 Buzzy Buzz
7340 734 11 びりびりエレキ
7341 734 12 麻麻电击
7342 735 1 めらめらバーン
7343 735 3 이글이글번
7344 735 4 熊熊火爆
7348 735 8 Fiammabam
7349 735 9 Sizzly Slide
7350 735 11 めらめらバーン
7351 735 12 熊熊火爆
7352 736 1 どばどばオーラ
7353 736 3 콸콸오라
7354 736 4 嘩嘩氣場
7356 736 6 Pulsieraura
7357 736 7 Espeaura
7358 736 8 Auraswoosh
7359 736 9 Sizzly Slide Glitzy Glow
7360 736 11 どばどばオーラ
7361 736 12 哗哗气场
7362 737 1 わるわるゾーン
7363 737 3 아그아그존
7364 737 4 壞壞領域
7368 737 8 Zona Buiabuia
7369 737 9 Baddy Bad
7370 737 11 わるわるゾーン
7371 737 12 坏坏领域
7372 738 1 すくすくボンバー
7373 738 3 쑥쑥봄버
7374 738 4 茁茁轟炸
7378 738 8 Bombafrush
7379 738 9 Sappy Seed
7380 738 11 すくすくボンバー
7381 738 12 茁茁轰炸
7382 739 1 こちこちフロスト
7383 739 3 꽁꽁프로스트
7384 739 4 冰冰霜凍
7388 739 8 Scricchiagelo
7389 739 9 Freezy Frost
7390 739 11 こちこちフロスト
7391 739 12 冰冰霜冻
7392 740 1 きらきらストーム
7393 740 3 반짝반짝스톰
7394 740 4 亮亮風暴
7398 740 8 Sbrilluccibufera
7399 740 9 Sparkly Swirl
7400 740 11 きらきらストーム
7401 740 12 亮亮风暴
7402 741 1 ブイブイブレイク
7403 741 3 브이브이브레이크
7404 741 4 砰砰撃破 砰砰擊破
7405 741 5 Évo-Chardasso
7406 741 6 Evo-Crash
7407 741 7 Eevimpacto
7408 741 8 Eeveempatto
7409 741 9 Veevee Volley
7410 741 11 ブイブイブレイク
7411 741 12 砰砰击破
7412 742 1 ダブルパンツァー
7413 742 3 더블펀처
7414 742 4 鋼拳雙擊
7415 742 5 Écrous d'Poing Écrous d’Poing
7416 742 6 Panzerfäuste
7417 742 7 Ferropuño Doble
7418 742 8 Pugni Corazzati
7419 742 9 Double Iron Bash
7420 742 11 ダブルパンツァー
7421 742 12 钢拳双击
7422 743 1 ダイウォール
7423 743 3 다이월
7424 743 4 極巨防壁
7428 743 8 Dynabarriera
7429 743 9 Max Guard
7430 743 11 ダイウォール
7431 743 12 極巨防壁 极巨防壁
7432 744 1 ダイマックス ダイマックスほう
7433 744 3 다이맥스포
7434 744 4 極巨炮
7435 744 5 Canon Dynamax
7437 744 7 Cañón Dinamax
7438 744 8 Cannone Dynamax
7439 744 9 Dynamax Cannon
7440 744 11 ダイマックス ダイマックスほう
7441 744 12 極巨炮 极巨炮
7442 745 1 ねらいうち
7443 745 3 노려맞히기
7444 745 4 狙擊
7448 745 8 Tiromirato
7449 745 9 Snipe Shot
7450 745 11 ねらいうち
7451 745 12 狙擊 狙击
7452 746 1 くらいつく
7453 746 3 물고버티기
7454 746 4 緊咬不放
7458 746 8 Morsostretto
7459 746 9 Jaw Lock
7460 746 11 くらいつく
7461 746 12 緊咬不放 紧咬不放
7462 747 1 ほおばる
7463 747 3 볼가득넣기
7464 747 4 大快朵頤
7468 747 8 Riempiguance
7469 747 9 Stuff Cheeks
7470 747 11 ほおばる
7471 747 12 大快朵頤 大快朵颐
7472 748 1 はいすいのじん
7473 748 3 배수의진
7474 748 4 背水一戰
7478 748 8 Spalle al Muro
7479 748 9 No Retreat
7480 748 11 はいすいのじん
7481 748 12 背水一戰 背水一战
7482 749 1 タールショット
7483 749 3 타르숏
7484 749 4 瀝青射擊
7488 749 8 Colpocatrame
7489 749 9 Tar Shot
7490 749 11 タールショット
7491 749 12 瀝青射擊 沥青射击
7492 750 1 まほうのこな
7493 750 3 마법가루
7494 750 4 魔法粉
7508 751 8 Dragofrecce
7509 751 9 Dragon Darts
7510 751 11 ドラゴンアロー
7511 751 12 龍箭 龙箭
7512 752 1 おちゃかい
7513 752 3 다과회
7514 752 4 茶會
7518 752 8 Ora del Tè
7519 752 9 Teatime
7520 752 11 おちゃかい
7521 752 12 茶會 茶会
7522 753 1 たこがため
7523 753 3 문어굳히기
7524 753 4 蛸固
7538 754 8 Beccoshock
7539 754 9 Bolt Beak
7540 754 11 でんげきくちばし
7541 754 12 電喙 电喙
7542 755 1 エラ エラがみ
7543 755 3 아가미물기
7544 755 4 鰓咬
7545 755 5 Branchicrok
7547 755 7 Branquibocado
7548 755 8 Branchiomorso
7549 755 9 Fishious Rend
7550 755 11 エラ エラがみ
7551 755 12 鰓咬 鳃咬
7552 756 1 コートチェンジ
7553 756 3 코트체인지
7554 756 4 換場
7558 756 8 Cambiocampo
7559 756 9 Court Change
7560 756 11 コートチェンジ
7561 756 12 換場 换场
7562 757 1 ダイバーン
7563 757 3 다이번
7564 757 4 極巨火爆
7568 757 8 Dynafiammata
7569 757 9 Max Flare
7570 757 11 ダイバーン
7571 757 12 極巨火爆 极巨火爆
7572 758 1 ダイワーム
7573 758 3 다이웜
7574 758 4 極巨蟲蠱
7578 758 8 Dynainsetto
7579 758 9 Max Flutterby
7580 758 11 ダイワーム
7581 758 12 極巨蟲蠱 极巨虫蛊
7582 759 1 ダイサンダー
7583 759 3 다이썬더
7584 759 4 極巨閃電
7588 759 8 Dynasaetta
7589 759 9 Max Lightning
7590 759 11 ダイサンダー
7591 759 12 極巨閃電 极巨闪电
7592 760 1 ダイアタック
7593 760 3 다이어택
7594 760 4 極巨攻擊
7598 760 8 Dynattacco
7599 760 9 Max Strike
7600 760 11 ダイアタック
7601 760 12 極巨攻擊 极巨攻击
7602 761 1 ダイナックル
7603 761 3 다이너클
7604 761 4 極巨拳鬥
7608 761 8 Dynapugno
7609 761 9 Max Knuckle
7610 761 11 ダイナックル
7611 761 12 極巨拳鬥 极巨拳斗
7612 762 1 ダイホロウ
7613 762 3 다이할로우
7614 762 4 極巨幽魂
7618 762 8 Dynavuoto
7619 762 9 Max Phantasm
7620 762 11 ダイホロウ
7621 762 12 極巨幽魂 极巨幽魂
7622 763 1 ダイアイス
7623 763 3 다이아이스
7624 763 4 極巨寒冰
7628 763 8 Dynagelo
7629 763 9 Max Hailstorm
7630 763 11 ダイアイス
7631 763 12 極巨寒冰 极巨寒冰
7632 764 1 ダイアシッド
7633 764 3 다이애시드
7634 764 4 極巨酸毒
7638 764 8 Dynacorrosione
7639 764 9 Max Ooze
7640 764 11 ダイアシッド
7641 764 12 極巨酸毒 极巨酸毒
7642 765 1 ダイストリーム
7643 765 3 다이스트림
7644 765 4 極巨水流
7648 765 8 Dynaflusso
7649 765 9 Max Geyser
7650 765 11 ダイストリーム
7651 765 12 極巨水流 极巨水流
7652 766 1 ダイジェット
7653 766 3 다이제트
7654 766 4 極巨飛衝
7658 766 8 Dynajet
7659 766 9 Max Airstream
7660 766 11 ダイジェット
7661 766 12 極巨飛衝 极巨飞冲
7662 767 1 ダイフェアリー
7663 767 3 다이페어리
7664 767 4 極巨妖精
7668 767 8 Dynafata
7669 767 9 Max Starfall
7670 767 11 ダイフェアリー
7671 767 12 極巨妖精 极巨妖精
7672 768 1 ダイドラグーン
7673 768 3 다이드라군
7674 768 4 極巨龍騎
7678 768 8 Dynadragone
7679 768 9 Max Wyrmwind
7680 768 11 ダイドラグーン
7681 768 12 極巨龍騎 极巨龙骑
7682 769 1 ダイサイコ
7683 769 3 다이사이코
7684 769 4 極巨超能
7688 769 8 Dynapsiche
7689 769 9 Max Mindstorm
7690 769 11 ダイサイコ
7691 769 12 極巨超能 极巨超能
7692 770 1 ダイロック
7693 770 3 다이록
7694 770 4 極巨岩石
7698 770 8 Dynamacigno
7699 770 9 Max Rockfall
7700 770 11 ダイロック
7701 770 12 極巨岩石 极巨岩石
7702 771 1 ダイアース
7703 771 3 다이어스
7704 771 4 極巨大地
7708 771 8 Dynasisma
7709 771 9 Max Quake
7710 771 11 ダイアース
7711 771 12 極巨大地 极巨大地
7712 772 1 ダイアーク
7713 772 3 다이아크
7714 772 4 極巨惡霸
7718 772 8 Dynatenebre
7719 772 9 Max Darkness
7720 772 11 ダイアーク
7721 772 12 極巨惡霸 极巨恶霸
7722 773 1 ダイソウゲン
7723 773 3 다이그래스
7724 773 4 極巨草原
7728 773 8 Dynaflora
7729 773 9 Max Overgrowth
7730 773 11 ダイソウゲン
7731 773 12 極巨草原 极巨草原
7732 774 1 ダイスチル
7733 774 3 다이스틸
7734 774 4 極巨鋼鐵
7738 774 8 Dynametallo
7739 774 9 Max Steelspike
7740 774 11 ダイスチル
7741 774 12 極巨鋼鐵 极巨钢铁
7742 775 1 ソウルビート
7743 775 3 소울비트
7744 775 4 魂舞烈音爆
7758 776 8 Schiacciacorpo
7759 776 9 Body Press
7760 776 11 ボディプレス
7761 776 12 撲擊 扑击
7762 777 1 デコレーション
7763 777 3 데코레이션
7764 777 4 裝飾
7768 777 8 Decorazione
7769 777 9 Decorate
7770 777 11 デコレーション
7771 777 12 裝飾 装饰
7772 778 1 ドラムアタック
7773 778 3 드럼어택
7774 778 4 鼓擊
7778 778 8 Tamburattacco
7779 778 9 Drum Beating
7780 778 11 ドラムアタック
7781 778 12 鼓擊 鼓击
7782 779 1 トラバサミ
7783 779 3 집게덫
7784 779 4 捕獸夾
7788 779 8 Tagliola
7789 779 9 Snap Trap
7790 779 11 トラバサミ
7791 779 12 捕獸夾 捕兽夹
7792 780 1 かえん かえんボール
7793 780 3 화염볼
7794 780 4 火焰球
7795 780 5 Ballon Brûlant
7797 780 7 Balón Ígneo
7798 780 8 Palla Infuocata
7799 780 9 Pyro Ball
7800 780 11 かえん かえんボール
7801 780 12 火焰球
7802 781 1 きょじゅうざん
7803 781 3 거수참
7808 781 8 Taglio Maestoso
7809 781 9 Behemoth Blade
7810 781 11 きょじゅうざん
7811 781 12 巨獸斬 巨兽斩
7812 782 1 きょじゅうだん
7813 782 3 거수탄
7814 782 4 巨獸彈
7818 782 8 Colpo Maestoso
7819 782 9 Behemoth Bash
7820 782 11 きょじゅうだん
7821 782 12 巨獸彈 巨兽弹
7822 783 1 オーラ オーラぐるま
7823 783 3 오라휠
7824 783 4 氣場輪
7825 783 5 Roue Libre
7826 783 6 Aura-Rad
7827 783 7 Rueda Aural
7828 783 8 Ruota d'Aura Ruota d’Aura
7829 783 9 Aura Wheel
7830 783 11 オーラ オーラぐるま
7831 783 12 氣場輪 气场轮
7832 784 1 ワイドブレイカー
7833 784 3 와이드브레이커
7834 784 4 廣域破壞
7838 784 8 Vastoimpatto
7839 784 9 Breaking Swipe
7840 784 11 ワイドブレイカー
7841 784 12 廣域破壞 广域破坏
7842 785 1 えだづき
7843 785 3 가지찌르기
7844 785 4 木枝突刺
7845 785 5 Tapotige
7846 785 6 Zweigstoß
7847 785 7 Punzada Rama
7848 785 8 Ramostoccata
7849 785 9 Branch Poke
7850 785 11 えだづき
7851 785 12 木枝突刺
7852 786 1 オーバードライブ
7853 786 3 오버드라이브
7854 786 4 破音
7868 787 8 Acido Malico
7869 787 9 Apple Acid
7870 787 11 りんごさん
7871 787 12 蘋果酸 苹果酸
7872 788 1 Gのちから
7873 788 3 G의힘
7874 788 4 萬有引力
7875 788 5 Force G
7876 788 6 Gravitation
7877 788 7 Fuerza G
7878 788 8 Forza G
7879 788 9 Grav Apple
7880 788 11 Gのちから
7881 788 12 萬有引力 万有引力
7882 789 1 ソウルクラッシュ
7883 789 3 소울크래시
7884 789 4 靈魂衝擊
7888 789 8 Frantumanima
7889 789 9 Spirit Break
7890 789 11 ソウルクラッシュ
7891 789 12 靈魂衝擊 灵魂冲击
7892 790 1 ワンダースチーム
7893 790 3 원더스팀
7894 790 4 神奇蒸汽
7918 792 8 Sbarramento
7919 792 9 Obstruct
7920 792 11 ブロッキング
7921 792 12 攔堵 拦堵
7922 793 1 どげざつき
7923 793 3 사죄의찌르기
7924 793 4 假跪真撞
7938 794 8 Sfolgorassalto
7939 794 9 Meteor Assault
7940 794 11 スターアサルト
7941 794 12 流星突擊 流星突击
7942 795 1 ムゲンダイビーム
7943 795 3 무한다이빔
7944 795 4 無極光束
7948 795 8 Raggio Infinito
7949 795 9 Eternabeam
7950 795 11 ムゲンダイビーム
7951 795 12 無極光束 无极光束
7952 796 1 てっていこうせん
7953 796 3 철제광선
7954 796 4 鐵蹄光線
7955 796 5 Métalaser
7956 796 6 Stahlstrahl
7957 796 7 Metaláser
7958 796 8 Raggio d'Acciaio Raggio d’Acciaio
7959 796 9 Steel Beam
7960 796 11 てっていこうせん
7961 796 12 鐵蹄光線 铁蹄光线
7962 797 1 ワイドフォース
7963 797 3 와이드포스
7964 797 4 廣域戰力
7965 797 5 Vaste Pouvoir
7966 797 6 Flächenmacht
7967 797 7 Vasta Fuerza
7968 797 8 Vastenergia
7969 797 9 Expanding Force
7970 797 11 ワイドフォース
7971 797 12 广域战力
7972 798 1 アイアンローラー
7973 798 3 아이언롤러
7974 798 4 鐵滾輪
7975 798 5 Métalliroue
7976 798 6 Eisenwalze
7977 798 7 Allanador Férreo
7978 798 8 Ferrorullo
7979 798 9 Steel Roller
7980 798 11 アイアンローラー
7981 798 12 铁滚轮
7982 799 1 スケイルショット
7983 799 3 스케일샷
7984 799 4 鱗射
7985 799 5 Rafale Écailles
7986 799 6 Schuppenschuss
7987 799 7 Ráfaga Escamas
7988 799 8 Squamacolpo
7989 799 9 Scale Shot
7990 799 11 スケイルショット
7991 799 12 鳞射
7992 800 1 メテオビーム
7993 800 3 메테오빔
7994 800 4 流星光束
7995 800 5 Laser Météore
7996 800 6 Meteorstrahl
7997 800 7 Rayo Meteórico
7998 800 8 Raggiometeora
7999 800 9 Meteor Beam
8000 800 11 メテオビーム
8001 800 12 流星光束
8002 801 1 シェルアームズ
8003 801 3 셸암즈
8004 801 4 臂貝武器
8005 801 5 Kokiyarme
8006 801 6 Muschelwaffe
8007 801 7 Moluscañón
8008 801 8 Armaguscio
8009 801 9 Shell Side Arm
8010 801 11 シェルアームズ
8011 801 12 臂贝武器
8012 802 1 ミストバースト
8013 802 3 미스트버스트
8014 802 4 薄霧炸裂
8015 802 5 Explo-Brume
8016 802 6 Nebelexplosion
8017 802 7 Bruma Explosiva
8018 802 8 Nebbioscoppio
8019 802 9 Misty Explosion
8020 803 802 3 11 그래스슬라이더 ミストバースト
8021 803 802 5 12 Gliss'Herbe 薄雾炸裂
8022 803 1 グラススライダー
8023 803 3 그래스슬라이더
8024 803 4 青草滑梯
8025 803 5 Gliss’Herbe
8026 803 6 Grasrutsche
8027 803 7 Fitoimpulso
8028 803 8 Erboscivolata
8029 803 9 Grassy Glide
8030 803 11 グラススライダー
8031 803 12 青草滑梯
8032 804 1 ライジングボルト
8033 804 3 라이징볼트
8034 804 4 電力上升
8035 804 5 Monte-Tension
8036 804 6 Hochspannung
8037 804 7 Alto Voltaje
8038 804 8 Elettroimpennata
8039 804 9 Rising Voltage
8040 804 11 ライジングボルト
8041 804 12 电力上升
8042 805 1 だいちのはどう
8043 805 3 대지의파동
8044 805 4 大地波動
8045 805 5 Champlification
8046 805 6 Feldimpuls
8047 805 7 Pulso de Campo
8048 805 8 Campopulsar
8049 805 9 Terrain Pulse
8050 805 11 だいちのはどう
8051 805 12 大地波动
8052 806 1 はいよるいちげき
8053 806 3 엄습하는일격
8054 806 4 爬擊
8055 806 5 Ravage Rampant
8056 806 6 Krabbelkracher
8057 806 7 Golpe Rastrero
8058 806 8 Strisciacolpo
8059 806 9 Skitter Smack
8060 806 11 はいよるいちげき
8061 806 12 爬击
8062 807 1 しっとのほのお
8063 807 3 질투의불꽃
8064 807 4 妒火
8065 807 5 Feu Envieux
8066 807 6 Neidflammen
8067 807 7 Envidia Ardiente
8068 807 8 Fiamminvidia
8069 807 9 Burning Jealousy
8070 807 11 しっとのほのお
8071 807 12 妒火
8072 808 1 うっぷんばらし
8073 808 3 분풀이
8074 808 4 洩憤
8075 808 5 Cent Rancunes
8076 808 6 Frustventil
8077 808 7 Desahogo
8078 808 8 Sfogarabbia
8079 808 9 Lash Out
8080 808 11 うっぷんばらし
8081 808 12 泄愤
8082 809 1 ポルターガイスト
8083 809 3 폴터가이스트
8084 809 4 靈騷
8085 809 5 Esprit Frappeur
8086 809 6 Poltergeist
8087 809 7 Poltergeist
8088 809 8 Poltergeist
8089 809 9 Poltergeist
8090 809 11 ポルターガイスト
8091 809 12 灵骚
8092 810 1 ふしょくガス
8093 810 3 부식가스
8094 810 4 腐蝕氣體
8095 810 5 Gaz Corrosif
8096 810 6 Korrosionsgas
8097 810 7 Gas Corrosivo
8098 810 8 Gas Corrosivo
8099 810 9 Corrosive Gas
8100 810 11 ふしょくガス
8101 810 12 腐蚀气体
8102 811 1 コーチング
8103 811 3 코칭
8104 811 4 指導
8105 811 5 Coaching
8106 811 6 Coaching
8107 811 7 Motivación
8108 811 8 Coaching
8109 811 9 Coaching
8110 811 11 コーチング
8111 811 12 指导
8112 812 1 クイックターン
8113 812 3 퀵턴
8114 812 4 快速折返
8115 812 5 Eau Revoir
8116 812 6 Rollwende
8117 812 7 Viraje
8118 812 8 Virata
8119 812 9 Flip Turn
8120 812 11 クイックターン
8121 812 12 快速折返
8122 813 1 トリプルアクセル
8123 813 3 트리플악셀
8124 813 4 三旋擊
8125 813 5 Triple Axel
8126 813 6 Dreifach-Axel
8127 813 7 Triple Axel
8128 813 8 Triplo Axel
8129 813 9 Triple Axel
8130 813 11 トリプルアクセル
8131 813 12 三旋击
8132 814 1 ダブルウイング
8133 814 3 더블윙
8134 814 4 雙翼
8135 814 5 Double Volée
8136 814 6 Doppelflügel
8137 814 7 Ala Bis
8138 814 8 Doppia Ala
8139 814 9 Dual Wingbeat
8140 815 814 3 11 열사의대지t ダブルウイング
8141 814 12 双翼
8142 815 1 ねっさのだいち
8143 815 3 열사의대지
8144 815 4 熱沙大地
8145 815 5 Sable Ardent
8146 815 6 Brandsand
8147 815 7 Arenas Ardientes
8148 815 8 Sabbiardente
8149 815 9 Scorching Sands
8150 815 11 ねっさのだいち
8151 815 12 热沙大地
8152 816 1 ジャングルヒール
8153 816 3 정글힐
8154 816 4 叢林治療
8155 816 5 Selve Salvatrice
8156 816 6 Dschungelheilung
8157 816 7 Cura Selvática
8158 816 8 Giunglacura
8159 816 9 Jungle Healing
8160 816 11 ジャングルヒール
8161 816 12 丛林治疗
8162 817 1 あんこくきょうだ
8163 817 3 암흑강타
8164 817 4 暗冥強擊
8165 817 5 Poing Obscur
8166 817 6 Finstertreffer
8167 817 7 Golpe Oscuro
8168 817 8 Pugnotenebra
8169 817 9 Wicked Blow
8170 817 11 あんこくきょうだ
8171 817 12 暗冥强击
8172 818 1 すいりゅうれんだ
8173 818 3 수류연타
8174 818 4 水流連打
8175 818 5 Torrent de Coups
8176 818 6 Trefferschwall
8177 818 7 Azote Torrencial
8178 818 8 Idroraffica
8179 818 9 Surging Strikes
8180 818 11 すいりゅうれんだ
8181 818 12 水流连打
8182 819 1 サンダープリズン
8183 819 3 썬더프리즌
8184 819 4 雷電囚籠
8185 819 5 Voltageôle
8186 819 6 Blitzgefängnis
8187 819 7 Electrojaula
8188 819 8 Elettrogabbia
8189 819 9 Thunder Cage
8190 819 11 サンダープリズン
8191 819 12 雷电囚笼
8192 820 1 ドラゴンエナジー
8193 820 3 드래곤에너지
8194 820 4 巨龍威能
8195 820 5 Draco-Énergie
8196 820 6 Drachenkräfte
8197 820 7 Dracoenergía
8198 820 8 Dragoenergia
8199 820 9 Dragon Energy
8200 820 11 ドラゴンエナジー
8201 820 12 巨龙威能
8202 821 1 いてつくしせん
8203 821 3 얼어붙는시선
8204 821 4 冰冷視線
8205 821 5 Regard Glaçant
8206 821 6 Eisiger Blick
8207 821 7 Mirada Heladora
8208 821 8 Sguardo Gelido
8209 821 9 Freezing Glare
8210 821 11 いてつくしせん
8211 821 12 冰冷视线
8212 822 1 もえあがるいかり
8213 822 3 타오르는분노
8214 822 4 怒火中燒
8215 822 5 Fureur Ardente
8216 822 6 Brennender Zorn
8217 822 7 Furia Candente
8218 822 8 Furia Ardente
8219 822 9 Fiery Wrath
8220 822 11 もえあがるいかり
8221 822 12 怒火中烧
8222 823 1 らいめいげり
8223 823 3 천둥차기
8224 823 4 雷鳴蹴擊
8225 823 5 Coup Fulgurant
8226 823 6 Donnernder Tritt
8227 823 7 Patada Relámpago
8228 823 8 Calcio Tonante
8229 823 9 Thunderous Kick
8230 823 11 らいめいげり
8231 823 12 雷鸣蹴击
8232 824 1 ブリザードランス
8233 824 3 블리자드랜스
8234 824 4 雪矛
8235 824 5 Lance de Glace
8236 824 6 Blizzardlanze
8237 824 7 Lanza Glacial
8238 824 8 Lancia Glaciale
8239 824 9 Glacial Lance
8240 824 11 ブリザードランス
8241 824 12 雪矛
8242 825 1 アストラルビット
8243 825 3 아스트랄비트
8244 825 4 星碎
8245 825 5 Éclat Spectral
8246 825 6 Astralfragmente
8247 825 7 Orbes Espectro
8248 825 8 Schegge Astrali
8249 825 9 Astral Barrage
8250 825 11 アストラルビット
8251 825 12 星碎
8252 826 1 ぶきみなじゅもん
8253 826 3 섬뜩한주문
8254 826 4 詭異咒語
8255 826 5 Sort Sinistre
8256 826 6 Schauderspruch
8257 826 7 Conjuro Funesto
8258 826 8 Inquietantesimo
8259 826 9 Eerie Spell
8260 826 11 ぶきみなじゅもん
8261 826 12 诡异咒语
8262 10001 1 ダークラッシュ
8263 10001 5 Charge Noire
8264 10001 6 Cryptoschlag

View file

@ -9,7 +9,7 @@ id,identifier,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_
8,ice-punch,1,15,75,15,100,0,10,2,6,10,2,1,17
9,thunder-punch,1,13,75,15,100,0,10,2,7,10,1,1,17
10,scratch,1,1,40,35,100,0,10,2,1,,5,1,5
11,vice-grip,1,1,55,30,100,0,10,2,1,,5,1,5
11,vise-grip,1,1,55,30,100,0,10,2,1,,5,1,5
12,guillotine,1,1,,5,30,0,10,2,39,,1,14,9
13,razor-wind,1,1,80,10,100,0,11,3,40,,1,2,6
14,swords-dance,1,1,,20,,0,7,1,51,,2,32,11
@ -783,6 +783,7 @@ id,identifier,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_
782,behemoth-bash,8,9,100,5,100,0,10,2,,,,,
783,aura-wheel,8,13,110,10,100,0,10,2,,,,,
784,breaking-swipe,8,16,60,15,100,0,11,2,,,,,
785,branch-poke,8,12,40,40,100,0,11,2,,,,,
786,overdrive,8,13,80,10,100,0,11,3,,,,,
787,apple-acid,8,12,80,10,100,0,10,3,,,,,
788,grav-apple,8,12,80,10,100,0,10,2,,,,,

1 id identifier generation_id type_id power pp accuracy priority target_id damage_class_id effect_id effect_chance contest_type_id contest_effect_id super_contest_effect_id
9 8 ice-punch 1 15 75 15 100 0 10 2 6 10 2 1 17
10 9 thunder-punch 1 13 75 15 100 0 10 2 7 10 1 1 17
11 10 scratch 1 1 40 35 100 0 10 2 1 5 1 5
12 11 vice-grip vise-grip 1 1 55 30 100 0 10 2 1 5 1 5
13 12 guillotine 1 1 5 30 0 10 2 39 1 14 9
14 13 razor-wind 1 1 80 10 100 0 11 3 40 1 2 6
15 14 swords-dance 1 1 20 0 7 1 51 2 32 11
783 782 behemoth-bash 8 9 100 5 100 0 10 2
784 783 aura-wheel 8 13 110 10 100 0 10 2
785 784 breaking-swipe 8 16 60 15 100 0 11 2
786 785 branch-poke 8 12 40 40 100 0 11 2
787 786 overdrive 8 13 80 10 100 0 11 3
788 787 apple-acid 8 12 80 10 100 0 10 3
789 788 grav-apple 8 12 80 10 100 0 10 2

View file

@ -9375,7 +9375,7 @@ pokemon_species_id,local_language_id,name,genus
889,1,ザマゼンタ,つわものポケモン
889,3,자마젠타,강자포켓몬
889,4,藏瑪然特,強者寶可夢
889,5,Zamazent,Pokémon Valeureux
889,5,Zamazenta,Pokémon Valeureux
889,6,Zamazenta,Krieger
889,7,Zamazenta,Pokémon Guerrero
889,8,Zamazenta,Pokémon Guerriero

1 pokemon_species_id local_language_id name genus
9375 889 1 ザマゼンタ つわものポケモン
9376 889 3 자마젠타 강자포켓몬
9377 889 4 藏瑪然特 強者寶可夢
9378 889 5 Zamazent Zamazenta Pokémon Valeureux
9379 889 6 Zamazenta Krieger
9380 889 7 Zamazenta Pokémon Guerrero
9381 889 8 Zamazenta Pokémon Guerriero

@ -1 +1 @@
Subproject commit 5bdf22873dddb3829ebc2c05473ba19fb2b2e9ca
Subproject commit d41c408f7e5be9848260f470e34069c264091a69

View file

@ -4,20 +4,27 @@ services:
image: redis:alpine
volumes:
- redis_data:/data
restart: always
db:
image: postgres
environment:
POSTGRES_PASSWORD: 'pokemon'
POSTGRES_USER: 'ash'
POSTGRES_DB: 'pokeapi'
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon}
POSTGRES_USER: ${POSTGRES_USER:-ash}
POSTGRES_DB: ${POSTGRES_DB:-pokeapi}
volumes:
- pg_data:/var/lib/postgresql/data
restart: always
app:
build:
context: .
dockerfile: ./Resources/docker/app/Dockerfile
user: ${RUN_AS:-pokeapi}
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon}
POSTGRES_USER: ${POSTGRES_USER:-ash}
POSTGRES_DB: ${POSTGRES_DB:-pokeapi}
volumes:
- .:/code
links:
@ -26,19 +33,40 @@ services:
depends_on:
- db
- cache
restart: always
web:
build:
context: ./Resources
dockerfile: ./docker/web/Dockerfile
image: nginx:alpine
ports:
- "80:80"
- "443:443"
restart: always
# command: [nginx-debug, '-g', 'daemon off;']
volumes:
- ./Resources/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./Resources/nginx/ssl:/ssl:ro
volumes_from:
- app:ro
links:
- app
graphql-engine:
image: hasura/graphql-engine:v2.0.0-alpha.5
ports:
- "8080:8080"
depends_on:
- "db"
restart: always
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER:-ash}:${POSTGRES_PASSWORD:-pokemon}@db:5432/${POSTGRES_DB:-pokeapi}
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
HASURA_GRAPHQL_DEV_MODE: "false"
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-pokemon}
HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anon
HASURA_GRAPHQL_ENABLE_TELEMETRY: "false"
# HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets
volumes:
pg_data:
redis_data:

6
graphql/config.yaml Normal file
View file

@ -0,0 +1,6 @@
version: 3
endpoint: http://localhost:8080
metadata_directory: metadata
actions:
kind: synchronous
handler_webhook_baseurl: http://localhost:3000

View file

@ -0,0 +1,5 @@
# GraphQL examples
You can use all the `.gql` examples in our console at https://beta.pokeapi.co/graphql/console/.
Inside the folders you find GraphQL queries implemented in different languages, frameworks and libraries.

View file

@ -0,0 +1,26 @@
"""
Finds Pokemons in Alola that evolve when you are in a particular location.
Variables:
{
"region": "alola"
}
"""
query location_evolutions_in_alola($region: String) {
region: pokemon_v2_region(where: {name: {_eq: $region}}) {
name
location: pokemon_v2_locations_aggregate(where: {pokemon_v2_pokemonevolutions: {id: {_is_null: false}}}) {
nodes {
name
evolutions: pokemon_v2_pokemonevolutions_aggregate {
nodes {
species: pokemon_v2_pokemonspecy {
name
}
}
}
}
}
}
}

View file

@ -0,0 +1,35 @@
"""
Returns the strongest 3 grass and poison pokemon. It uses thier stats to compute their strenght.
"""
query best_grass_poison_pokemons {
pokemon: pokemon_v2_pokemon(
where: {
_and: [
{
pokemon_v2_pokemontypes: {
pokemon_v2_type: { name: { _eq: "grass" } }
}
}
{
pokemon_v2_pokemontypes: {
pokemon_v2_type: { name: { _eq: "poison" } }
}
}
]
}
order_by: {
pokemon_v2_pokemonstats_aggregate: { sum: { base_stat: desc } }
}
limit: 3
) {
name
stats: pokemon_v2_pokemonstats_aggregate(order_by: {}) {
aggregate {
sum {
base_stat
}
}
}
}
}

View file

@ -0,0 +1,17 @@
query samplePokeAPIquery {
# Gets all the pokemon belonging to generation 3
gen3_species: pokemon_v2_pokemonspecies(where: {pokemon_v2_generation: {name: {_eq: "generation-iii"}}}, order_by: {id: asc}) {
name
id
}
# You can run multiple queries at the same time
# Counts how many pokemon where release for each generation
generations: pokemon_v2_generation {
name
pokemon_species: pokemon_v2_pokemonspecies_aggregate {
aggregate {
count
}
}
}
}

View file

@ -0,0 +1,9 @@
# Go examples
## `pokemon.go`
Fetches details about a Pokémon and prints an unformatted JSON to the `stdout`. The name of the Pokémon is passed as a variable.
```sh
go run pokemon.go # | jq
```

View file

@ -0,0 +1,110 @@
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
type Operation struct {
Query string `json:"query"`
Variables map[string]interface{} `json:"variables"`
OperationName string `json:"operationName"`
}
var (
pokemonDetails = Operation{
OperationName: "pokemon_details",
Variables: map[string]interface{}{
"name": "staryu",
},
Query: `
query pokemon_details($name: String) {
species: pokemon_v2_pokemonspecies(where: {name: {_eq: $name}}) {
name
base_happiness
is_legendary
is_mythical
generation: pokemon_v2_generation {
name
}
habitat: pokemon_v2_pokemonhabitat {
name
}
pokemon: pokemon_v2_pokemons_aggregate(limit: 1) {
nodes {
height
name
id
weight
abilities: pokemon_v2_pokemonabilities_aggregate {
nodes {
ability: pokemon_v2_ability {
name
}
}
}
stats: pokemon_v2_pokemonstats {
base_stat
stat: pokemon_v2_stat {
name
}
}
types: pokemon_v2_pokemontypes {
slot
type: pokemon_v2_type {
name
}
}
levelUpMoves: pokemon_v2_pokemonmoves_aggregate(where: {pokemon_v2_movelearnmethod: {name: {_eq: "level-up"}}}, distinct_on: move_id) {
nodes {
move: pokemon_v2_move {
name
}
level
}
}
foundInAsManyPlaces: pokemon_v2_encounters_aggregate {
aggregate {
count
}
}
fireRedItems: pokemon_v2_pokemonitems(where: {pokemon_v2_version: {name: {_eq: "firered"}}}) {
pokemon_v2_item {
name
cost
}
rarity
}
}
}
flavorText: pokemon_v2_pokemonspeciesflavortexts(where: {pokemon_v2_language: {name: {_eq: "en"}}, pokemon_v2_version: {name: {_eq: "firered"}}}) {
flavor_text
}
}
}
`,
}
)
func main() {
url := "https://beta.pokeapi.co/graphql/v1beta"
body, err := json.Marshal(pokemonDetails)
if err != nil {
log.Fatal(err)
}
resp, err := http.Post(url, "", bytes.NewReader(body))
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}

View file

@ -0,0 +1,27 @@
# for each language, list all items and the relative English translation
query getItemsTranslation1 {
pokemon_v2_language {
name
iso639
iso3166
items: pokemon_v2_itemnames {
name
englishName: pokemon_v2_item {
name
}
}
}
}
# for each item, show the English name and get all its translations
query getItemsTranslation2 {
items: pokemon_v2_item {
name
translations: pokemon_v2_itemnames {
foreignName: name
language: pokemon_v2_language {
name
}
}
}
}

View file

@ -0,0 +1,10 @@
# Node examples
## `pokemon.js`
Fetches info about Staryu using `node-fetch`.
```sh
npm i
node pokemon.js
```

13
graphql/examples/node/package-lock.json generated Normal file
View file

@ -0,0 +1,13 @@
{
"name": "examples",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
}
}
}

View file

@ -0,0 +1,14 @@
{
"name": "examples",
"version": "1.0.0",
"description": "",
"main": "''",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"node-fetch": "^2.6.1"
}
}

View file

@ -0,0 +1,125 @@
/*
Get's many details about a pokemon passed as argument (starmie as default).
It gets:
- happiness
- if legendary/mythical
- generation
- habitat
- height
- weight
- ID
- abilities
- stats
- types
- learnable moves by leveling up
- in how many locations it can be found
- holdable items in Fire Red
- flavor text
*/
const fetch = require("node-fetch")
async function fetchGraphQL(query, variables, operationName) {
const result = await fetch(
"https://beta.pokeapi.co/graphql/v1beta",
{
method: "POST",
body: JSON.stringify({
query: query,
variables: variables,
operationName: operationName
})
}
)
return await result.json()
}
function fetchPokemon_details(name="starmie") {
const query = `
query pokemon_details($name: String) {
species: pokemon_v2_pokemonspecies(where: {name: {_eq: $name}}) {
name
base_happiness
is_legendary
is_mythical
generation: pokemon_v2_generation {
name
}
habitat: pokemon_v2_pokemonhabitat {
name
}
pokemon: pokemon_v2_pokemons_aggregate(limit: 1) {
nodes {
height
name
id
weight
abilities: pokemon_v2_pokemonabilities_aggregate {
nodes {
ability: pokemon_v2_ability {
name
}
}
}
stats: pokemon_v2_pokemonstats {
base_stat
stat: pokemon_v2_stat {
name
}
}
types: pokemon_v2_pokemontypes {
slot
type: pokemon_v2_type {
name
}
}
levelUpMoves: pokemon_v2_pokemonmoves_aggregate(where: {pokemon_v2_movelearnmethod: {name: {_eq: "level-up"}}}, distinct_on: move_id) {
nodes {
move: pokemon_v2_move {
name
}
level
}
}
foundInAsManyPlaces: pokemon_v2_encounters_aggregate {
aggregate {
count
}
}
fireRedItems: pokemon_v2_pokemonitems(where: {pokemon_v2_version: {name: {_eq: "firered"}}}) {
pokemon_v2_item {
name
cost
}
rarity
}
}
}
flavorText: pokemon_v2_pokemonspeciesflavortexts(where: {pokemon_v2_language: {name: {_eq: "en"}}, pokemon_v2_version: {name: {_eq: "firered"}}}) {
flavor_text
}
}
}
`
return fetchGraphQL(
query,
{"name": name},
"pokemon_details"
)
}
async function main() {
const pokemon = process.argv.slice(2)[0];
const { errors, data } = await fetchPokemon_details(pokemon)
if (errors) {
console.error(errors)
}
console.log(JSON.stringify(data, null, 2))
}
main()

View file

@ -0,0 +1,23 @@
query tallest {
pokemon: pokemon_v2_pokemon(order_by: {height: desc}, limit: 3, where: {is_default: {_eq: true}}) {
name
height
}
}
query fattest {
pokemon: pokemon_v2_pokemon(order_by: {weight: desc}, limit: 3, where: {is_default: {_eq: true}}) {
name
weight
}
}
query avgHappiness {
species: pokemon_v2_pokemonspecies_aggregate {
aggregate {
avg {
base_happiness
}
}
}
}

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,6 @@
actions: []
custom_types:
enums: []
input_objects: []
objects: []
scalars: []

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1,12 @@
- name: default
kind: postgres
configuration:
connection_info:
database_url:
from_env: HASURA_GRAPHQL_DATABASE_URL
pool_settings:
idle_timeout: 180
max_connections: 50
retries: 1
tables: "!include default/tables/tables.yaml"
functions: "!include default/functions/functions.yaml"

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1,50 @@
array_relationships:
- name: pokemon_v2_abilitychanges
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilitychange
schema: public
- name: pokemon_v2_abilityeffecttexts
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityeffecttext
schema: public
- name: pokemon_v2_abilityflavortexts
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityflavortext
schema: public
- name: pokemon_v2_abilitynames
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityname
schema: public
- name: pokemon_v2_pokemonabilities
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_pokemonability
schema: public
object_relationships:
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_ability
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_abilitychangeeffecttexts
using:
foreign_key_constraint_on:
column: ability_change_id
table:
name: pokemon_v2_abilitychangeeffecttext
schema: public
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilitychange
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_abilitychange
using:
foreign_key_constraint_on: ability_change_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilitychangeeffecttext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityeffecttext
schema: public

View file

@ -0,0 +1,20 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityflavortext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityname
schema: public

View file

@ -0,0 +1,28 @@
array_relationships:
- name: pokemon_v2_berryflavormaps
using:
foreign_key_constraint_on:
column: berry_id
table:
name: pokemon_v2_berryflavormap
schema: public
object_relationships:
- name: pokemon_v2_berryfirmness
using:
foreign_key_constraint_on: berry_firmness_id
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_type
using:
foreign_key_constraint_on: natural_gift_type_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berry
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_berries
using:
foreign_key_constraint_on:
column: berry_firmness_id
table:
name: pokemon_v2_berry
schema: public
- name: pokemon_v2_berryfirmnessnames
using:
foreign_key_constraint_on:
column: berry_firmness_id
table:
name: pokemon_v2_berryfirmnessname
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryfirmness
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berryfirmness
using:
foreign_key_constraint_on: berry_firmness_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryfirmnessname
schema: public

View file

@ -0,0 +1,43 @@
array_relationships:
- name: pokemonV2NaturesByLikesFlavorId
using:
foreign_key_constraint_on:
column: likes_flavor_id
table:
name: pokemon_v2_nature
schema: public
- name: pokemon_v2_berryflavormaps
using:
foreign_key_constraint_on:
column: berry_flavor_id
table:
name: pokemon_v2_berryflavormap
schema: public
- name: pokemon_v2_berryflavornames
using:
foreign_key_constraint_on:
column: berry_flavor_id
table:
name: pokemon_v2_berryflavorname
schema: public
- name: pokemon_v2_natures
using:
foreign_key_constraint_on:
column: hates_flavor_id
table:
name: pokemon_v2_nature
schema: public
object_relationships:
- name: pokemon_v2_contesttype
using:
foreign_key_constraint_on: contest_type_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavor
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berry
using:
foreign_key_constraint_on: berry_id
- name: pokemon_v2_berryflavor
using:
foreign_key_constraint_on: berry_flavor_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavormap
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berryflavor
using:
foreign_key_constraint_on: berry_flavor_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavorname
schema: public

View file

@ -0,0 +1,22 @@
array_relationships:
- name: pokemon_v2_characteristicdescriptions
using:
foreign_key_constraint_on:
column: characteristic_id
table:
name: pokemon_v2_characteristicdescription
schema: public
object_relationships:
- name: pokemon_v2_stat
using:
foreign_key_constraint_on: stat_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_characteristic
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_characteristic
using:
foreign_key_constraint_on: characteristic_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_characteristicdescription
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemonV2MoveBySecondMoveId
using:
foreign_key_constraint_on: second_move_id
- name: pokemon_v2_move
using:
foreign_key_constraint_on: first_move_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contestcombo
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_contesteffecteffecttexts
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_contesteffecteffecttext
schema: public
- name: pokemon_v2_contesteffectflavortexts
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_contesteffectflavortext
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_move
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffect
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_contesteffect
using:
foreign_key_constraint_on: contest_effect_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffecteffecttext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_contesteffect
using:
foreign_key_constraint_on: contest_effect_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffectflavortext
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_berryflavors
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_berryflavor
schema: public
- name: pokemon_v2_contesttypenames
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_contesttypename
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_move
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesttype
schema: public

Some files were not shown because too many files have changed in this diff Show more