"order" of Pokémon forms is shared between unrelated species
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 領域
- databases
調査の方向性
まず pokemon_forms.csv、Pokémon Forms documentation、リンクされた pull request #1532 を確認し、現在の order の挙動と既存の重複値を理解します。order または id の置き換えについて合意し、データモデルへの影響を定義し、影響を受けるフォームレコードを一貫して更新して初めて、作業は完了です。
索引モデルが issue の本文から書いたものです。
説明
At present, the order column of the pokemon_forms.csv is mostly just an incrementing list that groups all forms of the same species together. This makes it very inconvenient to insert new forms for pre-existing Pokémon, as every subsequent entry needs to have its order incremented.
However, while the list at first appears to be an incrementing list (with a unique value per form), this is not actually the case (as I discovered in https://github.com/PokeAPI/pokeapi/pull/1532). The documentation does note
Multiple forms may have equal order, in which case they should fall back on sorting by name.
The first major group of non-unique entries is Alcremie. The Alcremie forms have distinct order values for each Cream, but each Cream shares the same order value across Sweets. So alcremie-vanilla-cream-berry-sweet is 1256 and alcremie-ruby-cream-berry-sweet is 1257, but alcremie-vanilla-cream-love-sweet is also 1256.
However, after Alcremie, there are a bunch of DLC Sword & Shield Pokémon, Hisui Pokémon, and Paldean Pokémon that share order values with Gigantamax Pokémon and forms introduced in Hisui and Paldea. Some examples:
| order | Entry 1 | Entry 2 |
|---|---|---|
| 1292 | eternatus-eternamax | venusaur-gmax |
| 1293 | kubfu | charizard-gmax |
| 1294 | urshifu-single-strike | blastoise-gmax |
| 1313 | fuecoco | flapple-gmax |
| 1314 | crocalor | appletun-gmax |
| 1327 | rabsca | growlithe-hisui |
| 1328 | greavard | arcanine-hisui |
| 1373 | naclstack | miraidon-aquatic-mode |
| 1374 | garganacl | miraidon-glide-mode |
Proposal
My proposal is that the order column do something similar to what Pokémon Champions does internally: Concatenate a National Pokédex number and a form ID to produce a unique identifier for a specific form of a Pokémon. For example, Venusaur (Pokédex #0003) would be form ID 00003000, while Mega Venusaur would be form ID 00003001, and Charmander (Pokédex #0004) would be form ID 0004000. (Since these are integers, the leading 0's would be stripped, but I've included them here to illustrate how the numeric identifiers are based on Pokédex numbers.)
This could even replace the existing id column of the pokemon_forms.csv table, and the order column could just be deprecated.
- 主要言語
- Python
- スター
- 5.4k
- フォーク
- 1.2k
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 18
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PokeAPI/pokeapi のほかの issue
-
難易度 2/5 1〜2日 初心者へのやさしさ 76/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
-
UV hardlink files オープン
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
-
Ball legality オープン
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
PokeAPI/pokeapi の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
stephrobert/dsoxlab#238 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
sublimehq/package_control#1780 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
nwg-piotr/nwg-displays#145 ·