diff --git a/data/inventory.json b/data/inventory.json deleted file mode 100644 index d6ee19d9..00000000 --- a/data/inventory.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "item-groups": { - "apricorn": { - "name": "Apricorns" - }, - "av-candy": { - "name": "AV candy" - }, - "ball": { - "name": "Poké balls" - }, - "battle-item": { - "name": "Battle items" - }, - "berry": { - "name": "Berries" - }, - "body-style": { - "name": "Body styles" - }, - "curry-ingredient": { - "name": "Curry ingredients" - }, - "etc": { - "name": "Et cetera" - }, - "ev-item": { - "name": "EV-enhancing items" - }, - "evo-item": { - "name": "Evolution items" - }, - "exp-candy": { - "name": "Experience candy" - }, - "flute": { - "name": "Flutes" - }, - "fossil": { - "name": "Fossils" - }, - "gem": { - "name": "Gems" - }, - "hm": { - "name": "HMs (Hidden Machines)" - }, - "hold-item": { - "name": "Held items" - }, - "incense": { - "name": "Incense" - }, - "key-item": { - "name": "Key items" - }, - "mail": { - "name": "Mail" - }, - "medicine": { - "name": "Medicine" - }, - "mega-stone": { - "name": "Mega Stones" - }, - "memory": { - "name": "Memory" - }, - "mint": { - "name": "Mints" - }, - "mulch": { - "name": "Mulch" - }, - "other-item": { - "name": "Other items" - }, - "partner-gift": { - "name": "Partner gifts" - }, - "petal": { - "name": "Petals" - }, - "plate": { - "name": "Plates" - }, - "poke-candy": { - "name": "Poké candy" - }, - "roto": { - "name": "Rotom powers" - }, - "scarf": { - "name": "Scarves" - }, - "shard": { - "name": "Shards" - }, - "storage": { - "name": "Storage" - }, - "tm": { - "name": "TMs (Technical Machines)" - }, - "tr": { - "name": "TRs (Technical Records)" - }, - "valuable-item": { - "name": "Valuable items" - }, - "wonder-launcher": { - "name": "Wonder Launcher items" - }, - "z-crystals": { - "name": "Z-crystals" - } - } -} diff --git a/data/meta.json b/data/meta.json new file mode 100644 index 00000000..5d3f95f2 --- /dev/null +++ b/data/meta.json @@ -0,0 +1,206 @@ +{ + "item-groups": { + "apricorn": { + "name": { + "eng": "Apricorns" + } + }, + "av-candy": { + "name": { + "eng": "AV candy" + } + }, + "ball": { + "name": { + "eng": "Poké balls" + } + }, + "battle-item": { + "name": { + "eng": "Battle items" + } + }, + "berry": { + "name": { + "eng": "Berries" + } + }, + "body-style": { + "name": { + "eng": "Body styles" + } + }, + "curry-ingredient": { + "name": { + "eng": "Curry ingredients" + } + }, + "etc": { + "name": { + "eng": "Et cetera" + } + }, + "ev-item": { + "name": { + "eng": "EV-enhancing items" + } + }, + "evo-item": { + "name": { + "eng": "Evolution items" + } + }, + "exp-candy": { + "name": { + "eng": "Experience candy" + } + }, + "flute": { + "name": { + "eng": "Flutes" + } + }, + "fossil": { + "name": { + "eng": "Fossils" + } + }, + "gem": { + "name": { + "eng": "Gems" + } + }, + "hm": { + "name": { + "eng": "HMs (Hidden Machines)" + } + }, + "hold-item": { + "name": { + "eng": "Held items" + } + }, + "incense": { + "name": { + "eng": "Incense" + } + }, + "key-item": { + "name": { + "eng": "Key items" + } + }, + "mail": { + "name": { + "eng": "Mail" + } + }, + "medicine": { + "name": { + "eng": "Medicine" + } + }, + "mega-stone": { + "name": { + "eng": "Mega Stones" + } + }, + "memory": { + "name": { + "eng": "Memory" + } + }, + "mint": { + "name": { + "eng": "Mints" + } + }, + "mulch": { + "name": { + "eng": "Mulch" + } + }, + "other-item": { + "name": { + "eng": "Other items" + } + }, + "partner-gift": { + "name": { + "eng": "Partner gifts" + } + }, + "petal": { + "name": { + "eng": "Petals" + } + }, + "plate": { + "name": { + "eng": "Plates" + } + }, + "poke-candy": { + "name": { + "eng": "Poké candy" + } + }, + "roto": { + "name": { + "eng": "Rotom powers" + } + }, + "scarf": { + "name": { + "eng": "Scarves" + } + }, + "shard": { + "name": { + "eng": "Shards" + } + }, + "storage": { + "name": { + "eng": "Storage" + } + }, + "tm": { + "name": { + "eng": "TMs (Technical Machines)" + } + }, + "tr": { + "name": { + "eng": "TRs (Technical Records)" + } + }, + "valuable-item": { + "name": { + "eng": "Valuable items" + } + }, + "wonder-launcher": { + "name": { + "eng": "Wonder Launcher items" + } + }, + "z-crystals": { + "name": { + "eng": "Z-crystals" + } + } + }, + "misc-groups": { + "body-style": { + "name": { + "eng": "Body styles (shape)" + } + }, + "ribbon": { + "name": { + "eng": "Ribbons" + } + } + } +} diff --git a/data/misc.json b/data/misc.json new file mode 100644 index 00000000..68566cdf --- /dev/null +++ b/data/misc.json @@ -0,0 +1,1890 @@ +{ + "ribbon": [ + { + "name": { + "eng": "Ability Ribbon", + "jpn": "アビリティリボン", + "jpn_ro": "Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/ability-ribbon.png" + } + }, + { + "name": { + "eng": "Alert Ribbon", + "jpn": "しゃっきリボン", + "jpn_ro": "Brisk Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling an invigorating event that created life energy.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/alert-ribbon.png", + "gen-8": "ribbon/gen8/alert-ribbon.png" + } + }, + { + "name": { + "eng": "Alola Champion Ribbon", + "jpn": "アローラチャンプリボン", + "jpn_ro": "Alola Champ Ribbon" + }, + "origin_gen": 7, + "description": { + "eng": "A Ribbon awarded for becoming the Alola Champion and entering the Alola Hall of Fame.", + "from_gen": 7 + }, + "files": { + "gen-7": "ribbon/alola-champion-ribbon.png", + "gen-8": "ribbon/gen8/alola-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Artist Ribbon", + "jpn": "ブロマイドリボン", + "jpn_ro": "Bromide Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded for being chosen as a super sketch model in the Hoenn region.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/artist-ribbon.png", + "gen-8": "ribbon/gen8/artist-ribbon.png" + } + }, + { + "name": { + "eng": "Battle Champion Ribbon", + "jpn": "バトルチャンプリボン", + "jpn_ro": "Battle Champ Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon awarded to a Battle Competition Champion.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/battle-champion-ribbon.png", + "gen-8": "ribbon/gen8/battle-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Battle Memory Ribbon", + "jpn": "おもいでバトルリボン", + "jpn_ro": "Battle Memories Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A commemorative Ribbon representing all of the Ribbons you collected for battling somewhere long ago.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/battle-memory-ribbon.png", + "gen-8": "ribbon/gen8/battle-memory-ribbon.png" + } + }, + { + "name": { + "eng": "Battle Memory Ribbon", + "jpn": "おもいでバトルリボン", + "jpn_ro": "Battle Memories Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A commemorative Ribbon representing all of the Ribbons you collected for battling somewhere long ago.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/battle-memory-ribbon-gold.png" + } + }, + { + "name": { + "eng": "Battle Royal Master Ribbon", + "jpn": "ロイヤルマスターリボン", + "jpn_ro": "Royal Master Ribbon" + }, + "origin_gen": 7, + "description": { + "eng": "A Ribbon that can be given to a Pokémon that has achieved victory in the Battle Royal.", + "from_gen": 7 + }, + "files": { + "gen-7": "ribbon/battle-royal-master-ribbon.png", + "gen-8": "ribbon/gen8/battle-royal-master-ribbon.png" + } + }, + { + "name": { + "eng": "Battle Tree Great Ribbon", + "jpn": "グレートツリーリボン", + "jpn_ro": "Great Tree Ribbon" + }, + "origin_gen": 7, + "description": { + "eng": "A Ribbon awarded for winning against a Battle Legend in the Battle Tree.", + "from_gen": 7 + }, + "files": { + "gen-7": "ribbon/battle-tree-great-ribbon.png", + "gen-8": "ribbon/gen8/battle-tree-great-ribbon.png" + } + }, + { + "name": { + "eng": "Battle Tree Master Ribbon", + "jpn": "マスターツリーリボン", + "jpn_ro": "Master Tree Ribbon" + }, + "origin_gen": 7, + "description": { + "eng": "A Ribbon awarded for winning against a Battle Legend in super battles in the Battle Tree.", + "from_gen": 7 + }, + "files": { + "gen-7": "ribbon/battle-tree-master-ribbon.png", + "gen-8": "ribbon/gen8/battle-tree-master-ribbon.png" + } + }, + { + "name": { + "eng": "Beauty Master Ribbon", + "jpn": "うつくしさマスターリボン", + "jpn_ro": "Beauty Master Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has perfectly embodied Beauty in Pokémon Contests.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/beauty-master-ribbon.png", + "gen-8": "ribbon/gen8/beauty-master-ribbon.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon", + "jpn": "ビューティリボン", + "jpn_ro": "Beauty Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Beauty Contest Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/beauty-ribbon-hoenn.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon", + "jpn": "ビューティリボン", + "jpn_ro": "Beauty Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Beauty Category Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/beauty-ribbon-sinnoh.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Great", + "jpn": "ビューティリボンスーパー", + "jpn_ro": "Beauty Ribbon Super" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Beauty Category Great Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/beauty-ribbon-great-sinnoh.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Hyper", + "jpn": "ビューティリボンハイパー", + "jpn_ro": "Beauty Ribbon Hyper" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Beauty Contest Hyper Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/beauty-ribbon-hyper-hoenn.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Master", + "jpn": "ビューティリボンマスター", + "jpn_ro": "Beauty Ribbon Master" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Beauty Contest Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/beauty-ribbon-master-hoenn.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Master", + "jpn": "ビューティリボンマスター", + "jpn_ro": "Beauty Ribbon Master" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Beauty Category Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/beauty-ribbon-master-sinnoh.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Super", + "jpn": "ビューティリボンスーパー", + "jpn_ro": "Beauty Ribbon Super" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Beauty Contest Super Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/beauty-ribbon-super-hoenn.png" + } + }, + { + "name": { + "eng": "Beauty Ribbon Ultra", + "jpn": "ビューティリボンハイパー", + "jpn_ro": "Beauty Ribbon Hyper" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Beauty Category Ultra Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/beauty-ribbon-ultra-sinnoh.png" + } + }, + { + "name": { + "eng": "Best Friends Ribbon", + "jpn": "なかよしリボン", + "jpn_ro": "Good Friend Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon that can be given to a Pokémon with which you share a close and meaningful bond.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/best-friends-ribbon.png", + "gen-8": "ribbon/gen8/best-friends-ribbon.png" + } + }, + { + "name": { + "eng": "Birthday Ribbon", + "jpn": "バースデーリボン", + "jpn_ro": "Birthday Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon that commemorates a birthday.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/birthday-ribbon.png", + "gen-8": "ribbon/gen8/birthday-ribbon.png" + } + }, + { + "name": { + "eng": "Blue Ribbon", + "jpn": "ブルーリボン", + "jpn_ro": "Blue Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/blue-ribbon.png" + } + }, + { + "name": { + "eng": "Careless Ribbon", + "jpn": "うっかリボン", + "jpn_ro": "Careless Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling a careless error that helped steer life decisions.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/careless-ribbon.png", + "gen-8": "ribbon/gen8/careless-ribbon.png" + } + }, + { + "name": { + "eng": "Carnival Ribbon", + "jpn": "カーニバルリボン", + "jpn_ro": "Carnival Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/carnival-ribbon.png" + } + }, + { + "name": { + "eng": "Champion Ribbon", + "jpn": "チャンプリボン", + "jpn_ro": "Champ Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded for clearing the Pokémon League and entering the Hall of Fame somewhere long ago.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/champion-ribbon.png", + "gen-8": "ribbon/gen8/champion-ribbon.png" + } + }, + { + "name": { + "eng": "Classic Ribbon", + "jpn": "クラシックリボン", + "jpn_ro": "Classic Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon that proclaims love for Pokémon.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/classic-ribbon.png", + "gen-8": "ribbon/gen8/classic-ribbon.png" + } + }, + { + "name": { + "eng": "Cleverness Master Ribbon", + "jpn": "かしこさマスターリボン", + "jpn_ro": "Cleverness Master Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has perfectly embodied Cleverness in Pokémon Contests.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/cleverness-master-ribbon.png", + "gen-8": "ribbon/gen8/cleverness-master-ribbon.png" + } + }, + { + "name": { + "eng": "Contest Memory Ribbon", + "jpn": "おもいでコンテストリボン", + "jpn_ro": "Contest Memories Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A commemorative Ribbon representing all of the Ribbons you collected for contests somewhere long ago.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/contest-memory-ribbon.png", + "gen-8": "ribbon/gen8/contest-memory-ribbon.png" + } + }, + { + "name": { + "eng": "Contest Memory Ribbon", + "jpn": "おもいでコンテストリボン", + "jpn_ro": "Contest Memories Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A commemorative Ribbon representing all of the Ribbons you collected for contests somewhere long ago.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/contest-memory-ribbon-gold.png" + } + }, + { + "name": { + "eng": "Contest Star Ribbon", + "jpn": "コンテストスターリボン", + "jpn_ro": "Contest Star Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has performed superbly in every kind of contest.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/contest-star-ribbon.png", + "gen-8": "ribbon/gen8/contest-star-ribbon.png" + } + }, + { + "name": { + "eng": "Cool Ribbon", + "jpn": "クールリボン", + "jpn_ro": "Cool Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cool Contest Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cool-ribbon-hoenn.png" + } + }, + { + "name": { + "eng": "Cool Ribbon", + "jpn": "クールリボン", + "jpn_ro": "Cool Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cool Category Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cool-ribbon-sinnoh.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Great", + "jpn": "クールリボンスーパー", + "jpn_ro": "Cool Ribbon Super" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cool Category Great Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cool-ribbon-great-sinnoh.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Hyper", + "jpn": "クールリボンハイパー", + "jpn_ro": "Cool Ribbon Hyper" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cool Contest Hyper Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cool-ribbon-hyper-hoenn.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Master", + "jpn": "クールリボンマスター", + "jpn_ro": "Cool Ribbon Master" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cool Contest Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cool-ribbon-master-hoenn.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Master", + "jpn": "クールリボンマスター", + "jpn_ro": "Cool Ribbon Master" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cool Category Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cool-ribbon-master-sinnoh.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Super", + "jpn": "クールリボンスーパー", + "jpn_ro": "Cool Ribbon Super" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cool Contest Super Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cool-ribbon-super-hoenn.png" + } + }, + { + "name": { + "eng": "Cool Ribbon Ultra", + "jpn": "クールリボンハイパー", + "jpn_ro": "Cool Ribbon Hyper" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cool Category Ultra Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cool-ribbon-ultra-sinnoh.png" + } + }, + { + "name": { + "eng": "Coolness Master Ribbon", + "jpn": "かっこよさマスターリボン", + "jpn_ro": "Coolness Master Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has perfectly embodied Coolness in Pokémon Contests.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/coolness-master-ribbon.png", + "gen-8": "ribbon/gen8/coolness-master-ribbon.png" + } + }, + { + "name": { + "eng": "Country Ribbon", + "jpn": "カントリーリボン", + "jpn_ro": "Country Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded to a Pokémon League Champion.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/country-ribbon.png", + "gen-8": "ribbon/gen8/country-ribbon.png" + } + }, + { + "name": { + "eng": "Cute Ribbon", + "jpn": "キュートリボン", + "jpn_ro": "Cute Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cute Contest Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cute-ribbon-hoenn.png" + } + }, + { + "name": { + "eng": "Cute Ribbon", + "jpn": "キュートリボン", + "jpn_ro": "Cute Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cute Category Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cute-ribbon-sinnoh.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Great", + "jpn": "キュートリボンスーパー", + "jpn_ro": "Cute Ribbon Super" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cute Category Great Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cute-ribbon-great-sinnoh.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Hyper", + "jpn": "キュートリボンハイパー", + "jpn_ro": "Cute Ribbon Hyper" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cute Contest Hyper Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cute-ribbon-hyper-hoenn.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Master", + "jpn": "キュートリボンマスター", + "jpn_ro": "Cute Ribbon Master" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cute Contest Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cute-ribbon-master-hoenn.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Master", + "jpn": "キュートリボンマスター", + "jpn_ro": "Cute Ribbon Master" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cute Category Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cute-ribbon-master-sinnoh.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Super", + "jpn": "キュートリボンスーパー", + "jpn_ro": "Cute Ribbon Super" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Cute Contest Super Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/cute-ribbon-super-hoenn.png" + } + }, + { + "name": { + "eng": "Cute Ribbon Ultra", + "jpn": "キュートリボンハイパー", + "jpn_ro": "Cute Ribbon Hyper" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Cute Category Ultra Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/cute-ribbon-ultra-sinnoh.png" + } + }, + { + "name": { + "eng": "Cuteness Master Ribbon", + "jpn": "かわいさマスターリボン", + "jpn_ro": "Cuteness Master Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has perfectly embodied Cuteness in Pokémon Contests.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/cuteness-master-ribbon.png", + "gen-8": "ribbon/gen8/cuteness-master-ribbon.png" + } + }, + { + "name": { + "eng": "Double Ability Ribbon", + "jpn": "ダブルアビリティリボン", + "jpn_ro": "Double Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for completing the Battle Tower Double challenge.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/double-ability-ribbon.png" + } + }, + { + "name": { + "eng": "Downcast Ribbon", + "jpn": "しょんぼリボン", + "jpn_ro": "Downhearted Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling feelings of sadness that added spice to life.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/downcast-ribbon.png", + "gen-8": "ribbon/gen8/downcast-ribbon.png" + } + }, + { + "name": { + "eng": "Earth Ribbon", + "jpn": "アースリボン", + "jpn_ro": "Earth Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded for winning one hundred battles in a row.", + "from_gen": 8 + }, + "files": { + "gen-3": "ribbon/earth-ribbon.png", + "gen-8": "ribbon/gen8/earth-ribbon.png" + } + }, + { + "name": { + "eng": "Effort Ribbon", + "jpn": "がんばリボン", + "jpn_ro": "Effort Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded for being an exceptionally hard worker.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/effort-ribbon.png", + "gen-8": "ribbon/gen8/effort-ribbon.png" + } + }, + { + "name": { + "eng": "Event Ribbon", + "jpn": "イベントリボン", + "jpn_ro": "Event Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon awarded for participating in a special Pokémon event.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/event-ribbon.png", + "gen-8": "ribbon/gen8/event-ribbon.png" + } + }, + { + "name": { + "eng": "Expert Battler Ribbon", + "jpn": "マスターバトルリボン", + "jpn_ro": "Master Battle Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon that can be given to a brave Pokémon that has honed its battle skills to an art.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/expert-battler-ribbon.png", + "gen-8": "ribbon/gen8/expert-battler-ribbon.png" + } + }, + { + "name": { + "eng": "Festival Ribbon", + "jpn": "フェスティバルリボン", + "jpn_ro": "Festival Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/festival-ribbon.png" + } + }, + { + "name": { + "eng": "Footprint Ribbon", + "jpn": "あしあとリボン", + "jpn_ro": "Footprint Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded to a Pokémon deemed to have a top-quality footprint.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/footprint-ribbon.png", + "gen-8": "ribbon/gen8/footprint-ribbon.png" + } + }, + { + "name": { + "eng": "Gorgeous Ribbon", + "jpn": "ゴージャスリボン", + "jpn_ro": "Gorgeous Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "An extraordinarily gorgeous and extravagant Ribbon.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/gorgeous-ribbon.png", + "gen-8": "ribbon/gen8/gorgeous-ribbon.png" + } + }, + { + "name": { + "eng": "Gorgeous Royal Ribbon", + "jpn": "ゴージャスロイヤルリボン", + "jpn_ro": "Gorgeous Royal Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A gorgeous and regal Ribbon that is the peak of fabulous.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/gorgeous-royal-ribbon.png", + "gen-8": "ribbon/gen8/gorgeous-royal-ribbon.png" + } + }, + { + "name": { + "eng": "Great Ability Ribbon", + "jpn": "グレートアビリティリボン", + "jpn_ro": "Great Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for defeating the Tower Tycoon at the Battle Tower.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/great-ability-ribbon.png" + } + }, + { + "name": { + "eng": "Green Ribbon", + "jpn": "グリーンリボン", + "jpn_ro": "Green Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/green-ribbon.png" + } + }, + { + "name": { + "eng": "History Ribbon", + "jpn": "ヒストリーリボン", + "jpn_ro": "History Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for setting a historical record.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/history-ribbon.png" + } + }, + { + "name": { + "eng": "Hoenn Champion Ribbon", + "jpn": "ホウエンチャンプリボン", + "jpn_ro": "Hoenn Champ Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded for beating the Hoenn Champion and entering the Hoenn Hall of Fame.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/hoenn-champion-ribbon.png", + "gen-8": "ribbon/gen8/hoenn-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Kalos Champion Ribbon", + "jpn": "カロスチャンプリボン", + "jpn_ro": "Kalos Champ Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded for beating the Kalos Champion and entering the Kalos Hall of Fame.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/kalos-champion-ribbon.png", + "gen-8": "ribbon/gen8/kalos-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Land Ribbon", + "jpn": "ランドリボン", + "jpn_ro": "Land Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-3": "ribbon/land-ribbon.png" + } + }, + { + "name": { + "eng": "Legend Ribbon", + "jpn": "レジェンドリボン", + "jpn_ro": "Legend Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for setting a legendary record.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/legend-ribbon.png", + "gen-8": "ribbon/gen8/legend-ribbon.png" + } + }, + { + "name": { + "eng": "Marine Ribbon", + "jpn": "マリンリボン", + "jpn_ro": "Marine Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-3": "ribbon/marine-ribbon.png" + } + }, + { + "name": { + "eng": "Multi Ability Ribbon", + "jpn": "マルチアビリティリボン", + "jpn_ro": "Multi Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for completing the Battle Tower Multi challenge.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/multi-ability-ribbon.png" + } + }, + { + "name": { + "eng": "National Champion Ribbon", + "jpn": "ナショナルチャンプリボン", + "jpn_ro": "National Champ Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon awarded to a National Champion in the Pokémon World Championships.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/national-champion-ribbon.png", + "gen-8": "ribbon/gen8/national-champion-ribbon.png" + } + }, + { + "name": { + "eng": "National Ribbon", + "jpn": "ナショナルリボン", + "jpn_ro": "National Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded for overcoming all difficult challenges.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/national-ribbon.png", + "gen-8": "ribbon/gen8/national-ribbon.png" + } + }, + { + "name": { + "eng": "Pair Ability Ribbon", + "jpn": "ペアアビリティリボン", + "jpn_ro": "Pair Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for completing the Battle Tower Link Multi challenge.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/pair-ability-ribbon.png" + } + }, + { + "name": { + "eng": "Premier Ribbon", + "jpn": "プレミアリボン", + "jpn_ro": "Premier Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for a special holiday.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/premier-ribbon.png", + "gen-8": "ribbon/gen8/premier-ribbon.png" + } + }, + { + "name": { + "eng": "Record Ribbon", + "jpn": "レコードリボン", + "jpn_ro": "Record Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for setting an incredible record.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/record-ribbon.png", + "gen-8": "ribbon/gen8/record-ribbon.png" + } + }, + { + "name": { + "eng": "Red Ribbon", + "jpn": "レッドリボン", + "jpn_ro": "Red Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-4": "ribbon/red-ribbon.png" + } + }, + { + "name": { + "eng": "Regional Champion Ribbon", + "jpn": "エリアチャンプリボン", + "jpn_ro": "Area Champ Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon awarded to a Regional Champion in the Pokémon World Championships.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/regional-champion-ribbon.png", + "gen-8": "ribbon/gen8/regional-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Relax Ribbon", + "jpn": "すっきリボン", + "jpn_ro": "Refreshed Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling a refreshing event that added sparkle to life.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/relax-ribbon.png", + "gen-8": "ribbon/gen8/relax-ribbon.png" + } + }, + { + "name": { + "eng": "Royal Ribbon", + "jpn": "ロイヤルリボン", + "jpn_ro": "Royal Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "An incredibly regal Ribbon with an air of nobility.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/royal-ribbon.png", + "gen-8": "ribbon/gen8/royal-ribbon.png" + } + }, + { + "name": { + "eng": "Shock Ribbon", + "jpn": "どっきリボン", + "jpn_ro": "Shock Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling a thrilling event that made life more exciting.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/shock-ribbon.png", + "gen-8": "ribbon/gen8/shock-ribbon.png" + } + }, + { + "name": { + "eng": "Sinnoh Champion Ribbon", + "jpn": "シンオウチャンプリボン", + "jpn_ro": "Sinnoh Champ Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for beating the Sinnoh Champion and entering the Sinnoh Hall of Fame.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/sinnoh-champion-ribbon.png", + "gen-8": "ribbon/gen8/sinnoh-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Skillful Battler Ribbon", + "jpn": "グレートバトルリボン", + "jpn_ro": "Great Battle Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon that can be given to a Pokémon that has achieved victory in difficult battles.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/skillful-battler-ribbon.png", + "gen-8": "ribbon/gen8/skillful-battler-ribbon.png" + } + }, + { + "name": { + "eng": "Sky Ribbon", + "jpn": "スカイリボン", + "jpn_ro": "Sky Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A commemorative Ribbon obtained in a Mystery Zone.", + "from_gen": 4 + }, + "files": { + "gen-3": "ribbon/sky-ribbon.png" + } + }, + { + "name": { + "eng": "Smart Ribbon", + "jpn": "ジーニアスリボン", + "jpn_ro": "Genius Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Smart Contest Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/smart-ribbon-hoenn.png" + } + }, + { + "name": { + "eng": "Smart Ribbon", + "jpn": "ジーニアスリボン", + "jpn_ro": "Genius Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Smart Category Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/smart-ribbon-sinnoh.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Great", + "jpn": "ジーニアスリボンスーパー", + "jpn_ro": "Genius Ribbon Super" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Smart Category Great Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/smart-ribbon-great-sinnoh.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Hyper", + "jpn": "ジーニアスリボンハイパー", + "jpn_ro": "Genius Ribbon Hyper" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Smart Contest Hyper Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/smart-ribbon-hyper-hoenn.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Master", + "jpn": "ジーニアスリボンマスター", + "jpn_ro": "Genius Ribbon Master" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Smart Category Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/smart-ribbon-master-sinnoh.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Master", + "jpn": "ジーニアスリボンマスター", + "jpn_ro": "Genius Ribbon Master" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Smart Contest Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/smart-ribbon-master-hoenn.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Super", + "jpn": "ジーニアスリボンスーパー", + "jpn_ro": "Genius Ribbon Super" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Smart Contest Super Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/smart-ribbon-super-hoenn.png" + } + }, + { + "name": { + "eng": "Smart Ribbon Ultra", + "jpn": "ジーニアスリボンハイパー", + "jpn_ro": "Genius Ribbon Hyper" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Smart Category Ultra Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/smart-ribbon-ultra-sinnoh.png" + } + }, + { + "name": { + "eng": "Smile Ribbon", + "jpn": "にっこリボン", + "jpn_ro": "Smile Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling that smiles enrich the quality of life.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/smile-ribbon.png", + "gen-8": "ribbon/gen8/smile-ribbon.png" + } + }, + { + "name": { + "eng": "Snooze Ribbon", + "jpn": "ぐっすリボン", + "jpn_ro": "Snooze Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon for recalling a deep slumber that made life soothing.", + "from_gen": 7 + }, + "files": { + "gen-4": "ribbon/snooze-ribbon.png", + "gen-8": "ribbon/gen8/snooze-ribbon.png" + } + }, + { + "name": { + "eng": "Souvenir Ribbon", + "jpn": "メモリアルリボン", + "jpn_ro": "Memorial Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon for cherishing a special memory.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/souvenir-ribbon.png", + "gen-8": "ribbon/gen8/souvenir-ribbon.png" + } + }, + { + "name": { + "eng": "Special Ribbon", + "jpn": "スペシャルリボン", + "jpn_ro": "Special Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A special Ribbon for a special day.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/special-ribbon.png", + "gen-8": "ribbon/gen8/special-ribbon.png" + } + }, + { + "name": { + "eng": "Tough Ribbon", + "jpn": "パワフルリボン", + "jpn_ro": "Powerful Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Tough Category Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/tough-ribbon-sinnoh.png" + } + }, + { + "name": { + "eng": "Tough Ribbon", + "jpn": "パワフルリボン", + "jpn_ro": "Powerful Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Tough Contest Normal Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/tough-ribbon-hoenn.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Great", + "jpn": "パワフルリボンスーパー", + "jpn_ro": "Powerful Ribbon Super" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Tough Category Great Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/tough-ribbon-great-sinnoh.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Hyper", + "jpn": "パワフルリボンハイパー", + "jpn_ro": "Powerful Ribbon Hyper" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Tough Contest Hyper Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/tough-ribbon-hyper-hoenn.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Master", + "jpn": "パワフルリボンマスター", + "jpn_ro": "Powerful Ribbon Master" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Tough Category Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/tough-ribbon-master-sinnoh.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Master", + "jpn": "パワフルリボンマスター", + "jpn_ro": "Powerful Ribbon Master" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Tough Contest Master Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/tough-ribbon-master-hoenn.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Super", + "jpn": "パワフルリボンスーパー", + "jpn_ro": "Powerful Ribbon Super" + }, + "origin_gen": 3, + "description": { + "eng": "Hoenn Tough Contest Super Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/tough-ribbon-super-hoenn.png" + } + }, + { + "name": { + "eng": "Tough Ribbon Ultra", + "jpn": "パワフルリボンハイパー", + "jpn_ro": "Powerful Ribbon Hyper" + }, + "origin_gen": 4, + "description": { + "eng": "Super Contest Tough Category Ultra Rank winner!", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/tough-ribbon-ultra-sinnoh.png" + } + }, + { + "name": { + "eng": "Toughness Master Ribbon", + "jpn": "たくましさマスターリボン", + "jpn_ro": "Hardiness Master Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon awarded to a Pokémon that has perfectly embodied Toughness in Pokémon Contests.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/toughness-master-ribbon.png", + "gen-8": "ribbon/gen8/toughness-master-ribbon.png" + } + }, + { + "name": { + "eng": "Training Ribbon", + "jpn": "しゅぎょうリボン", + "jpn_ro": "Training Ribbon" + }, + "origin_gen": 6, + "description": { + "eng": "A Ribbon that can be given to a Pokémon that has overcome rigorous trials and training.", + "from_gen": 7 + }, + "files": { + "gen-6": "ribbon/training-ribbon.png", + "gen-8": "ribbon/gen8/training-ribbon.png" + } + }, + { + "name": { + "eng": "Victory Ribbon", + "jpn": "ビクトリーリボン", + "jpn_ro": "Victory Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 100 challenge.", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/victory-ribbon.png" + } + }, + { + "name": { + "eng": "Winning Ribbon", + "jpn": "ウイニングリボン", + "jpn_ro": "Winning Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 50 challenge.", + "from_gen": 5 + }, + "files": { + "gen-3": "ribbon/winning-ribbon.png" + } + }, + { + "name": { + "eng": "Wishing Ribbon", + "jpn": "ウィッシュリボン", + "jpn_ro": "Wish Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon said to make your wish come true.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/wishing-ribbon.png", + "gen-8": "ribbon/gen8/wishing-ribbon.png" + } + }, + { + "name": { + "eng": "World Ability Ribbon", + "jpn": "ワールドアビリティリボン", + "jpn_ro": "World Ability Ribbon" + }, + "origin_gen": 4, + "description": { + "eng": "A Ribbon awarded for completing the Wi-Fi Battle Tower challenge.", + "from_gen": 5 + }, + "files": { + "gen-4": "ribbon/world-ability-ribbon.png" + } + }, + { + "name": { + "eng": "World Champion Ribbon", + "jpn": "ワールドチャンプリボン", + "jpn_ro": "World Champ Ribbon" + }, + "origin_gen": 5, + "description": { + "eng": "A Ribbon awarded to a World Champion in the Pokémon World Championships.", + "from_gen": 7 + }, + "files": { + "gen-5": "ribbon/world-champion-ribbon.png", + "gen-8": "ribbon/gen8/world-champion-ribbon.png" + } + }, + { + "name": { + "eng": "World Ribbon", + "jpn": "ワールドリボン", + "jpn_ro": "World Ribbon" + }, + "origin_gen": 3, + "description": { + "eng": "A Ribbon awarded to a Pokémon League Champion.", + "from_gen": 7 + }, + "files": { + "gen-3": "ribbon/world-ribbon.png", + "gen-8": "ribbon/gen8/world-ribbon.png" + } + }, + { + "name": { + "eng": "Galar Champion Ribbon", + "jpn": "ガラルチャンプリボン", + "jpn_ro": "Galar Champ Ribbon" + }, + "origin_gen": 8, + "description": { + "eng": "A Ribbon awarded for becoming the Galar Champion and entering the Galar Hall of Fame.", + "from_gen": 8 + }, + "files": { + "gen-8": "ribbon/gen8/galar-champion-ribbon.png" + } + }, + { + "name": { + "eng": "Tower Master Ribbon", + "jpn": "マスタータワーリボン", + "jpn_ro": "Master Tower Ribbon" + }, + "origin_gen": 8, + "description": { + "eng": "A Ribbon awarded for winning against a champion in the Battle Tower.", + "from_gen": 8 + }, + "files": { + "gen-8": "ribbon/gen8/tower-master-ribbon.png" + } + }, + { + "name": { + "eng": "Master Rank Ribbon", + "jpn": "マスターランクリボン", + "jpn_ro": "Master Rank Ribbon" + }, + "origin_gen": 8, + "description": { + "eng": "A Ribbon awarded for winning against a Trainer in the Master Ball Tier of Ranked Battles.", + "from_gen": 8 + }, + "files": { + "gen-8": "ribbon/gen8/master-rank-ribbon.png" + } + } + ], + "body-style": [ + { + "name": { + "eng": "Pokémon consisting of only a head", + "jpn": "頭だけのポケモン", + "jpn_ro": "Kao dake no Pokémon" + }, + "files": { + "gen-6": "body-style/head-gen6.png", + "gen-8": "body-style/head-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon consisting of a head and legs", + "jpn": "頭と脚だけのポケモン", + "jpn_ro": "Kao to ashi dake no Pokémon" + }, + "files": { + "gen-6": "body-style/head-legs-gen6.png", + "gen-8": "body-style/head-legs-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with fins", + "jpn": "ひれが付いたポケモン", + "jpn_ro": "Hira ga tsuita Pokémon" + }, + "files": { + "gen-6": "body-style/fins-gen6.png", + "gen-8": "body-style/fins-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with an insectoid body", + "jpn": "羽を持たない虫型のポケモン", + "jpn_ro": "Hane wo motanai mushikata no Pokémon" + }, + "files": { + "gen-6": "body-style/insectoid-gen6.png", + "gen-8": "body-style/insectoid-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with a quadruped body", + "jpn": "4本脚のポケモン", + "jpn_ro": "Yonhon ashi no Pokémon" + }, + "files": { + "gen-6": "body-style/quadruped-gen6.png", + "gen-8": "body-style/quadruped-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with two or more pairs of wings", + "jpn": "羽を持つ虫型のポケモン", + "jpn_ro": "Hane wo motsu mushikata no Pokémon" + }, + "files": { + "gen-6": "body-style/wings-multiple-gen6.png", + "gen-8": "body-style/wings-multiple-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon consisting of multiple bodies", + "jpn": "複数の体を持つポケモン", + "jpn_ro": "Fukusuu no karada wo motsu Pokémon" + }, + "files": { + "gen-6": "body-style/multiple-gen6.png", + "gen-8": "body-style/multiple-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with tentacles or a multiped body", + "jpn": "複数の脚を持つポケモン", + "jpn_ro": "Fukusuu no ashi wo motsu Pokémon" + }, + "files": { + "gen-6": "body-style/tentacles-gen6.png", + "gen-8": "body-style/tentacles-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon consisting of a head and a base", + "jpn": "頭と胴体だけのポケモン", + "jpn_ro": "Atama to doutai dake no Pokémon" + }, + "files": { + "gen-6": "body-style/head-base-gen6.png", + "gen-8": "body-style/head-base-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with a bipedal, tailed form", + "jpn": "尾を持つ2本脚のポケモン", + "jpn_ro": "O wo motsu nitai ashi no Pokémon" + }, + "files": { + "gen-6": "body-style/bipedal-tailed-gen6.png", + "gen-8": "body-style/bipedal-tailed-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with a bipedal, tailless form", + "jpn": "尾を持たない2本脚のポケモン", + "jpn_ro": "O wo motanai nitai ashi no Pokémon" + }, + "files": { + "gen-6": "body-style/bipedal-tailless-gen6.png", + "gen-8": "body-style/bipedal-tailless-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with a single pair of wings", + "jpn": "一対の翼を持つポケモン", + "jpn_ro": "Ittai no tsubasa wo motsu Pokémon" + }, + "files": { + "gen-6": "body-style/wings-single-gen6.png", + "gen-8": "body-style/wings-single-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon with serpentine bodies", + "jpn": "蛇型のポケモン", + "jpn_ro": "Hebikata no Pokémon" + }, + "files": { + "gen-6": "body-style/serpentine-gen6.png", + "gen-8": "body-style/serpentine-gen8.png" + } + }, + { + "name": { + "eng": "Pokémon consisting of a head and arms", + "jpn": "頭と腕だけのポケモン", + "jpn_ro": "Atama to ude dake no Pokémon" + }, + "files": { + "gen-6": "body-style/head-arms-gen6.png", + "gen-8": "body-style/head-arms-gen8.png" + } + } + ] +} diff --git a/docs/index.html b/docs/index.html index 73fd3e65..9b4b256e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ PokéSprite - Index @@ -17,7 +17,7 @@

Shiny VenusaurPokéSprite

Database project of box and inventory sprites from the Pokémon core series games

- +

See the project page on Github for more information.

Legacy images

diff --git a/docs/overview/dex-gen7.html b/docs/overview/dex-gen7.html index f7855da3..02fb3027 100644 --- a/docs/overview/dex-gen7.html +++ b/docs/overview/dex-gen7.html @@ -5,7 +5,7 @@ PokéSprite - Gen 7 @@ -17,7 +17,7 @@

Shiny VenusaurPokéSprite

Database project of box and inventory sprites from the Pokémon core series games

- +

This table lists all Pokémon box sprites for Gen 7, which can be found in the pokemon-gen7x directory. The list is up-to-date as of Pokémon Sword/Shield, and some of the sprites are from an earlier generation. All shiny sprites were custom-made and are not found in-game.

All box sprites are 68×56 as of Gen 8; the old Gen 7 sprites have been updated to the new size and contrast. (The original 40×30 sprites from Gen 7 are still available in the legacy sprites directory.)

@@ -30,7 +30,7 @@
- + diff --git a/docs/overview/dex-gen8-new.html b/docs/overview/dex-gen8-new.html index f87d6cee..85dd4faa 100644 --- a/docs/overview/dex-gen8-new.html +++ b/docs/overview/dex-gen8-new.html @@ -5,7 +5,7 @@ PokéSprite - Gen 8 (new sprites only) @@ -17,7 +17,7 @@

Shiny VenusaurPokéSprite

Database project of box and inventory sprites from the Pokémon core series games

- +

This table lists all Pokémon box sprites for Gen 8 (new sprites only), which can be found in the pokemon-gen8 directory. The list is up-to-date as of Pokémon Sword/Shield, and some of the sprites are from an earlier generation. All shiny sprites were custom-made and are not found in-game.

All box sprites are 68×56 as of Gen 8; the old Gen 7 sprites have been updated to the new size and contrast. (The original 40×30 sprites from Gen 7 are still available in the legacy sprites directory.)

@@ -30,7 +30,7 @@
Gen 7 sprite overview table
pokesprite-images v2.0.4 master-345 [182a9cc5]
Gen 7 sprite overview table
pokesprite-images v2.0.4 HEAD-350 [091ac9a6]
#DexName名前/ローマ字SpritesFormSlug
- + diff --git a/docs/overview/dex-gen8.html b/docs/overview/dex-gen8.html index e71308cf..0a334886 100644 --- a/docs/overview/dex-gen8.html +++ b/docs/overview/dex-gen8.html @@ -5,7 +5,7 @@ PokéSprite - Gen 8 @@ -17,7 +17,7 @@

Shiny VenusaurPokéSprite

Database project of box and inventory sprites from the Pokémon core series games

- +

This table lists all Pokémon box sprites for Gen 8, which can be found in the pokemon-gen8 directory. The list is up-to-date as of Pokémon Sword/Shield, and some of the sprites are from an earlier generation. All shiny sprites were custom-made and are not found in-game.

All box sprites are 68×56 as of Gen 8; the old Gen 7 sprites have been updated to the new size and contrast. (The original 40×30 sprites from Gen 7 are still available in the legacy sprites directory.)

@@ -30,7 +30,7 @@
Gen 8 sprite overview table (new sprites only)
pokesprite-images v2.0.4 master-345 [182a9cc5]
Gen 8 sprite overview table (new sprites only)
pokesprite-images v2.0.4 HEAD-350 [091ac9a6]
#DexName名前/ローマ字SpritesFormSlug
- + diff --git a/docs/overview/inventory.html b/docs/overview/inventory.html index 480866a9..02e14703 100644 --- a/docs/overview/inventory.html +++ b/docs/overview/inventory.html @@ -5,7 +5,7 @@ PokéSprite - Gen None @@ -17,7 +17,7 @@

Shiny VenusaurPokéSprite

Database project of box and inventory sprites from the Pokémon core series games

- +

This table lists all inventory item sprites. These items are from the last several games and is up-to-date as of Pokémon Sword/Shield. The sprites are from Gen 3 through 8.

All sprites are 32×32 in size. There are sets of sprites: one with a Sword/Shield style white outline around the sprites, and one without (as all previous games). Both sets contain the same number of sprites.

@@ -26,7 +26,7 @@
Gen 8 sprite overview table
pokesprite-images v2.0.4 master-345 [182a9cc5]
Gen 8 sprite overview table
pokesprite-images v2.0.4 HEAD-350 [091ac9a6]
#DexName名前/ローマ字SpritesFormSlug
- + diff --git a/docs/overview/misc.html b/docs/overview/misc.html new file mode 100644 index 00000000..80cbacbf --- /dev/null +++ b/docs/overview/misc.html @@ -0,0 +1,1036 @@ + + + + + PokéSprite - Gen None + + + + + +
+
+

Shiny VenusaurPokéSprite

+

Database project of box and inventory sprites from the Pokémon core series games

+ + +

This table lists all miscellaneous sprites—all that aren't Pokémon box sprites or inventory items.

+

+ The data for this list can be found in data/misc.json. +

+ +

See the project page on Github for more information.

+
+
Inventory sprite overview table
pokesprite-images v2.0.4 master-345 [182a9cc5]
Inventory sprite overview table
pokesprite-images v2.0.4 HEAD-350 [091ac9a6]
#Item IDNameSpritesGroupFilename/notes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Miscellaneous sprite overview table
pokesprite-images v2.0.4 HEAD-350 [091ac9a6]
Ribbons
#Name名前SpriteOriginFilename/gen
1Ability RibbonアビリティリボンSprite for 'Ability Ribbon'Gen 4ribbon/ability-ribbon.pngGen 4
2Alert RibbonしゃっきリボンSprite for 'Alert Ribbon'Gen 4ribbon/alert-ribbon.pngGen 4
3Alola Champion RibbonアローラチャンプリボンSprite for 'Alola Champion Ribbon'Gen 7ribbon/alola-champion-ribbon.pngGen 7
4Artist RibbonブロマイドリボンSprite for 'Artist Ribbon'Gen 3ribbon/artist-ribbon.pngGen 3
5Battle Champion RibbonバトルチャンプリボンSprite for 'Battle Champion Ribbon'Gen 5ribbon/battle-champion-ribbon.pngGen 5
6Battle Memory RibbonおもいでバトルリボンSprite for 'Battle Memory Ribbon'Gen 6ribbon/battle-memory-ribbon.pngGen 6
7Battle Memory RibbonおもいでバトルリボンSprite for 'Battle Memory Ribbon'Gen 6ribbon/battle-memory-ribbon-gold.pngGen 6
8Battle Royal Master RibbonロイヤルマスターリボンSprite for 'Battle Royal Master Ribbon'Gen 7ribbon/battle-royal-master-ribbon.pngGen 7
9Battle Tree Great RibbonグレートツリーリボンSprite for 'Battle Tree Great Ribbon'Gen 7ribbon/battle-tree-great-ribbon.pngGen 7
10Battle Tree Master RibbonマスターツリーリボンSprite for 'Battle Tree Master Ribbon'Gen 7ribbon/battle-tree-master-ribbon.pngGen 7
11Beauty Master RibbonうつくしさマスターリボンSprite for 'Beauty Master Ribbon'Gen 6ribbon/beauty-master-ribbon.pngGen 6
12Beauty RibbonビューティリボンSprite for 'Beauty Ribbon'Gen 3ribbon/beauty-ribbon-hoenn.pngGen 3
13Beauty RibbonビューティリボンSprite for 'Beauty Ribbon'Gen 4ribbon/beauty-ribbon-sinnoh.pngGen 4
14Beauty Ribbon GreatビューティリボンスーパーSprite for 'Beauty Ribbon Great'Gen 4ribbon/beauty-ribbon-great-sinnoh.pngGen 4
15Beauty Ribbon HyperビューティリボンハイパーSprite for 'Beauty Ribbon Hyper'Gen 3ribbon/beauty-ribbon-hyper-hoenn.pngGen 3
16Beauty Ribbon MasterビューティリボンマスターSprite for 'Beauty Ribbon Master'Gen 3ribbon/beauty-ribbon-master-hoenn.pngGen 3
17Beauty Ribbon MasterビューティリボンマスターSprite for 'Beauty Ribbon Master'Gen 4ribbon/beauty-ribbon-master-sinnoh.pngGen 4
18Beauty Ribbon SuperビューティリボンスーパーSprite for 'Beauty Ribbon Super'Gen 3ribbon/beauty-ribbon-super-hoenn.pngGen 3
19Beauty Ribbon UltraビューティリボンハイパーSprite for 'Beauty Ribbon Ultra'Gen 4ribbon/beauty-ribbon-ultra-sinnoh.pngGen 4
20Best Friends RibbonなかよしリボンSprite for 'Best Friends Ribbon'Gen 6ribbon/best-friends-ribbon.pngGen 6
21Birthday RibbonバースデーリボンSprite for 'Birthday Ribbon'Gen 5ribbon/birthday-ribbon.pngGen 5
22Blue RibbonブルーリボンSprite for 'Blue Ribbon'Gen 4ribbon/blue-ribbon.pngGen 4
23Careless RibbonうっかリボンSprite for 'Careless Ribbon'Gen 4ribbon/careless-ribbon.pngGen 4
24Carnival RibbonカーニバルリボンSprite for 'Carnival Ribbon'Gen 4ribbon/carnival-ribbon.pngGen 4
25Champion RibbonチャンプリボンSprite for 'Champion Ribbon'Gen 3ribbon/champion-ribbon.pngGen 3
26Classic RibbonクラシックリボンSprite for 'Classic Ribbon'Gen 4ribbon/classic-ribbon.pngGen 4
27Cleverness Master RibbonかしこさマスターリボンSprite for 'Cleverness Master Ribbon'Gen 6ribbon/cleverness-master-ribbon.pngGen 6
28Contest Memory RibbonおもいでコンテストリボンSprite for 'Contest Memory Ribbon'Gen 6ribbon/contest-memory-ribbon.pngGen 6
29Contest Memory RibbonおもいでコンテストリボンSprite for 'Contest Memory Ribbon'Gen 6ribbon/contest-memory-ribbon-gold.pngGen 6
30Contest Star RibbonコンテストスターリボンSprite for 'Contest Star Ribbon'Gen 6ribbon/contest-star-ribbon.pngGen 6
31Cool RibbonクールリボンSprite for 'Cool Ribbon'Gen 3ribbon/cool-ribbon-hoenn.pngGen 3
32Cool RibbonクールリボンSprite for 'Cool Ribbon'Gen 4ribbon/cool-ribbon-sinnoh.pngGen 4
33Cool Ribbon GreatクールリボンスーパーSprite for 'Cool Ribbon Great'Gen 4ribbon/cool-ribbon-great-sinnoh.pngGen 4
34Cool Ribbon HyperクールリボンハイパーSprite for 'Cool Ribbon Hyper'Gen 3ribbon/cool-ribbon-hyper-hoenn.pngGen 3
35Cool Ribbon MasterクールリボンマスターSprite for 'Cool Ribbon Master'Gen 3ribbon/cool-ribbon-master-hoenn.pngGen 3
36Cool Ribbon MasterクールリボンマスターSprite for 'Cool Ribbon Master'Gen 4ribbon/cool-ribbon-master-sinnoh.pngGen 4
37Cool Ribbon SuperクールリボンスーパーSprite for 'Cool Ribbon Super'Gen 3ribbon/cool-ribbon-super-hoenn.pngGen 3
38Cool Ribbon UltraクールリボンハイパーSprite for 'Cool Ribbon Ultra'Gen 4ribbon/cool-ribbon-ultra-sinnoh.pngGen 4
39Coolness Master RibbonかっこよさマスターリボンSprite for 'Coolness Master Ribbon'Gen 6ribbon/coolness-master-ribbon.pngGen 6
40Country RibbonカントリーリボンSprite for 'Country Ribbon'Gen 3ribbon/country-ribbon.pngGen 3
41Cute RibbonキュートリボンSprite for 'Cute Ribbon'Gen 3ribbon/cute-ribbon-hoenn.pngGen 3
42Cute RibbonキュートリボンSprite for 'Cute Ribbon'Gen 4ribbon/cute-ribbon-sinnoh.pngGen 4
43Cute Ribbon GreatキュートリボンスーパーSprite for 'Cute Ribbon Great'Gen 4ribbon/cute-ribbon-great-sinnoh.pngGen 4
44Cute Ribbon HyperキュートリボンハイパーSprite for 'Cute Ribbon Hyper'Gen 3ribbon/cute-ribbon-hyper-hoenn.pngGen 3
45Cute Ribbon MasterキュートリボンマスターSprite for 'Cute Ribbon Master'Gen 3ribbon/cute-ribbon-master-hoenn.pngGen 3
46Cute Ribbon MasterキュートリボンマスターSprite for 'Cute Ribbon Master'Gen 4ribbon/cute-ribbon-master-sinnoh.pngGen 4
47Cute Ribbon SuperキュートリボンスーパーSprite for 'Cute Ribbon Super'Gen 3ribbon/cute-ribbon-super-hoenn.pngGen 3
48Cute Ribbon UltraキュートリボンハイパーSprite for 'Cute Ribbon Ultra'Gen 4ribbon/cute-ribbon-ultra-sinnoh.pngGen 4
49Cuteness Master RibbonかわいさマスターリボンSprite for 'Cuteness Master Ribbon'Gen 6ribbon/cuteness-master-ribbon.pngGen 6
50Double Ability RibbonダブルアビリティリボンSprite for 'Double Ability Ribbon'Gen 4ribbon/double-ability-ribbon.pngGen 4
51Downcast RibbonしょんぼリボンSprite for 'Downcast Ribbon'Gen 4ribbon/downcast-ribbon.pngGen 4
52Earth RibbonアースリボンSprite for 'Earth Ribbon'Gen 3ribbon/earth-ribbon.pngGen 3
53Effort RibbonがんばリボンSprite for 'Effort Ribbon'Gen 3ribbon/effort-ribbon.pngGen 3
54Event RibbonイベントリボンSprite for 'Event Ribbon'Gen 5ribbon/event-ribbon.pngGen 5
55Expert Battler RibbonマスターバトルリボンSprite for 'Expert Battler Ribbon'Gen 6ribbon/expert-battler-ribbon.pngGen 6
56Festival RibbonフェスティバルリボンSprite for 'Festival Ribbon'Gen 4ribbon/festival-ribbon.pngGen 4
57Footprint RibbonあしあとリボンSprite for 'Footprint Ribbon'Gen 4ribbon/footprint-ribbon.pngGen 4
58Gorgeous RibbonゴージャスリボンSprite for 'Gorgeous Ribbon'Gen 4ribbon/gorgeous-ribbon.pngGen 4
59Gorgeous Royal RibbonゴージャスロイヤルリボンSprite for 'Gorgeous Royal Ribbon'Gen 4ribbon/gorgeous-royal-ribbon.pngGen 4
60Great Ability RibbonグレートアビリティリボンSprite for 'Great Ability Ribbon'Gen 4ribbon/great-ability-ribbon.pngGen 4
61Green RibbonグリーンリボンSprite for 'Green Ribbon'Gen 4ribbon/green-ribbon.pngGen 4
62History RibbonヒストリーリボンSprite for 'History Ribbon'Gen 4ribbon/history-ribbon.pngGen 4
63Hoenn Champion Ribbonホウエン チャンプリボンSprite for 'Hoenn Champion Ribbon'Gen 6ribbon/hoenn-champion-ribbon.pngGen 6
64Kalos Champion Ribbonカロス チャンプリボンSprite for 'Kalos Champion Ribbon'Gen 6ribbon/kalos-champion-ribbon.pngGen 6
65Land RibbonランドリボンSprite for 'Land Ribbon'Gen 3ribbon/land-ribbon.pngGen 3
66Legend RibbonレジェンドリボンSprite for 'Legend Ribbon'Gen 4ribbon/legend-ribbon.pngGen 4
67Marine RibbonマリンリボンSprite for 'Marine Ribbon'Gen 3ribbon/marine-ribbon.pngGen 3
68Multi Ability RibbonマルチアビリティリボンSprite for 'Multi Ability Ribbon'Gen 4ribbon/multi-ability-ribbon.pngGen 4
69National Champion RibbonナショナルチャンプリボンSprite for 'National Champion Ribbon'Gen 5ribbon/national-champion-ribbon.pngGen 5
70National RibbonナショナルリボンSprite for 'National Ribbon'Gen 3ribbon/national-ribbon.pngGen 3
71Pair Ability RibbonペアアビリティリボンSprite for 'Pair Ability Ribbon'Gen 4ribbon/pair-ability-ribbon.pngGen 4
72Premier RibbonプレミアリボンSprite for 'Premier Ribbon'Gen 4ribbon/premier-ribbon.pngGen 4
73Record RibbonレコードリボンSprite for 'Record Ribbon'Gen 4ribbon/record-ribbon.pngGen 4
74Red RibbonレッドリボンSprite for 'Red Ribbon'Gen 4ribbon/red-ribbon.pngGen 4
75Regional Champion RibbonエリアチャンプリボンSprite for 'Regional Champion Ribbon'Gen 5ribbon/regional-champion-ribbon.pngGen 5
76Relax RibbonすっきリボンSprite for 'Relax Ribbon'Gen 4ribbon/relax-ribbon.pngGen 4
77Royal RibbonロイヤルリボンSprite for 'Royal Ribbon'Gen 4ribbon/royal-ribbon.pngGen 4
78Shock RibbonどっきリボンSprite for 'Shock Ribbon'Gen 4ribbon/shock-ribbon.pngGen 4
79Sinnoh Champ Ribbonシンオウ チャンプリボンSprite for 'Sinnoh Champ Ribbon'Gen 4ribbon/sinnoh-champ-ribbon.pngGen 4
80Skillful Battler RibbonグレートバトルリボンSprite for 'Skillful Battler Ribbon'Gen 6ribbon/skillful-battler-ribbon.pngGen 6
81Sky RibbonスカイリボンSprite for 'Sky Ribbon'Gen 3ribbon/sky-ribbon.pngGen 3
82Smart RibbonジーニアスリボンSprite for 'Smart Ribbon'Gen 3ribbon/smart-ribbon-hoenn.pngGen 3
83Smart RibbonジーニアスリボンSprite for 'Smart Ribbon'Gen 4ribbon/smart-ribbon-sinnoh.pngGen 4
84Smart Ribbon GreatジーニアスリボンスーパーSprite for 'Smart Ribbon Great'Gen 4ribbon/smart-ribbon-great-sinnoh.pngGen 4
85Smart Ribbon HyperジーニアスリボンハイパーSprite for 'Smart Ribbon Hyper'Gen 3ribbon/smart-ribbon-hyper-hoenn.pngGen 3
86Smart Ribbon MasterジーニアスリボンマスターSprite for 'Smart Ribbon Master'Gen 4ribbon/smart-ribbon-master-sinnoh.pngGen 4
87Smart Ribbon MasterジーニアスリボンマスターSprite for 'Smart Ribbon Master'Gen 3ribbon/smart-ribbon-master-hoenn.pngGen 3
88Smart Ribbon SuperジーニアスリボンスーパーSprite for 'Smart Ribbon Super'Gen 3ribbon/smart-ribbon-super-hoenn.pngGen 3
89Smart Ribbon UltraジーニアスリボンハイパーSprite for 'Smart Ribbon Ultra'Gen 4ribbon/smart-ribbon-ultra-sinnoh.pngGen 4
90Smile RibbonにっこリボンSprite for 'Smile Ribbon'Gen 4ribbon/smile-ribbon.pngGen 4
91Snooze RibbonぐっすリボンSprite for 'Snooze Ribbon'Gen 4ribbon/snooze-ribbon.pngGen 4
92Souvenir RibbonメモリアルリボンSprite for 'Souvenir Ribbon'Gen 5ribbon/souvenir-ribbon.pngGen 5
93Special RibbonスペシャルリボンSprite for 'Special Ribbon'Gen 5ribbon/special-ribbon.pngGen 5
94Tough RibbonパワフルリボンSprite for 'Tough Ribbon'Gen 4ribbon/tough-ribbon-sinnoh.pngGen 4
95Tough RibbonパワフルリボンSprite for 'Tough Ribbon'Gen 3ribbon/tough-ribbon-hoenn.pngGen 3
96Tough Ribbon GreatパワフルリボンスーパーSprite for 'Tough Ribbon Great'Gen 4ribbon/tough-ribbon-great-sinnoh.pngGen 4
97Tough Ribbon HyperパワフルリボンハイパーSprite for 'Tough Ribbon Hyper'Gen 3ribbon/tough-ribbon-hyper-hoenn.pngGen 3
98Tough Ribbon MasterパワフルリボンマスターSprite for 'Tough Ribbon Master'Gen 4ribbon/tough-ribbon-master-sinnoh.pngGen 4
99Tough Ribbon MasterパワフルリボンマスターSprite for 'Tough Ribbon Master'Gen 3ribbon/tough-ribbon-master-hoenn.pngGen 3
100Tough Ribbon SuperパワフルリボンスーパーSprite for 'Tough Ribbon Super'Gen 3ribbon/tough-ribbon-super-hoenn.pngGen 3
101Tough Ribbon UltraパワフルリボンハイパーSprite for 'Tough Ribbon Ultra'Gen 4ribbon/tough-ribbon-ultra-sinnoh.pngGen 4
102Toughness Master RibbonたくましさマスターリボンSprite for 'Toughness Master Ribbon'Gen 6ribbon/toughness-master-ribbon.pngGen 6
103Training RibbonしゅぎょうリボンSprite for 'Training Ribbon'Gen 6ribbon/training-ribbon.pngGen 6
104Victory RibbonビクトリーリボンSprite for 'Victory Ribbon'Gen 3ribbon/victory-ribbon.pngGen 3
105Winning RibbonウイニングリボンSprite for 'Winning Ribbon'Gen 3ribbon/winning-ribbon.pngGen 3
106Wishing RibbonウィッシュリボンSprite for 'Wishing Ribbon'Gen 5ribbon/wishing-ribbon.pngGen 5
107World Ability RibbonワールドアビリティリボンSprite for 'World Ability Ribbon'Gen 4ribbon/world-ability-ribbon.pngGen 4
108World Champion RibbonワールドチャンプリボンSprite for 'World Champion Ribbon'Gen 5ribbon/world-champion-ribbon.pngGen 5
109World RibbonワールドリボンSprite for 'World Ribbon'Gen 3ribbon/world-ribbon.pngGen 3
+ Note: ribbons for Gen 3 have had their sizes padded to 40×40 up from 32×32, and ribbons from Gen 3 and 4 have had their gamma curve adjusted to be identical to that of the later gens—both for consistency.
+
+
+

The sprite images are © Nintendo/Creatures Inc./GAME FREAK Inc.
+ Everything else, and the programming code, is governed by the MIT license.

+
+
+ + + diff --git a/docs/resources/docs-style.css b/docs/resources/gh-markdown.css similarity index 69% rename from docs/resources/docs-style.css rename to docs/resources/gh-markdown.css index 012b3332..787ef7ef 100644 --- a/docs/resources/docs-style.css +++ b/docs/resources/gh-markdown.css @@ -1,4 +1,8 @@ -/** Github markdown styling (minimized) - plus some small adjustments for PokéSprite */ +/** + * Github markdown styling + * + * Minimized and with some modifications. + */ :root { --gh-black: #24292e; @@ -274,7 +278,7 @@ .markdown-body table, .markdown-body ul { margin-bottom: 16px; - margin-top: 0; + margin-top: 16px; } .markdown-body hr { @@ -421,7 +425,8 @@ border-top: 1px solid var(--shade-5); } -.markdown-body table tr:nth-child(2n) { +.markdown-body table tbody:not(.alternating) tr:nth-child(2n), +.markdown-body table tbody.alternating:nth-child(2n) tr { background-color: var(--shade-2); } @@ -586,167 +591,3 @@ .markdown-body .text-section.last { padding-bottom: 2em; } - -/** Sprite overview table */ - -.markdown-body .pokesprite { - width: 100%; -} -.markdown-body .pokesprite tr.header th { - text-align: left; -} -.markdown-body .pokesprite tr.header th, -.markdown-body .pokesprite tr.header td { - white-space: nowrap; -} -.markdown-body .pokesprite thead tr.title th { - text-align: left; - background: var(--shade-0); - line-height: 23px !important; -} -.markdown-body .pokesprite thead tr.title th span { - font-weight: normal; - display: block; - font-size: smaller; - line-height: 1.5; - color: var(--shade-7) -} -.markdown-body .pokesprite tbody tr:hover td { - background: var(--shade-3); -} -.markdown-body .pokesprite tbody tr td[rowspan] { - background: var(--shade-0); -} -.markdown-body .pokesprite tbody tr td.group { - font-weight: 500; -} -.markdown-body .pokesprite tbody tr td.item-id { - padding-bottom: 0; -} -.markdown-body .pokesprite tbody tr td.item-id code { - display: inline-block; - padding-top: 1px; -} -.markdown-body .pokesprite tbody attr span { - border-bottom: 1px dotted var(--gh-black); -} -.markdown-body .pokesprite tbody th, -.markdown-body .pokesprite tbody td { - vertical-align: top; - white-space: nowrap; - width: 10%; -} -.markdown-body .pokesprite tbody td code { - padding: 0; - background: transparent; -} -/* Image no. column */ -.markdown-body .pokesprite tr.header th:first-child, -.markdown-body .pokesprite tbody td:first-child { - text-align: right; - width: 1px; -} -/* Slug column - the table is designed so this column fills out most of the remaining space. */ -.markdown-body .pokesprite tr.header th:last-child, -.markdown-body .pokesprite tbody td:last-child { - width: 40%; -} -/* Form column - contains the form name, and is optionally followed by one or two td.min nodes. */ -.markdown-body .pokesprite tbody td.form { - width: 15%; -} -.markdown-body .pokesprite tbody td.min { - width: 0.1%; - text-align: center; - font-size: 14px; - font-weight: 500; -} -.markdown-body .pokesprite tbody td.min.gender-m { - color: #0c8bff; -} -.markdown-body .pokesprite tbody td.min.gender-f { - color: #ff3b60; -} -/* Pokémon sprites */ -.markdown-body .pokesprite tbody img { - image-rendering: pixelated; - image-rendering: crisp-edges; - max-width: inherit; -} -.markdown-body .pokesprite tbody td.image { - padding-left: 0; - padding-right: 0; - text-align: center; - width: 1px; -} -.markdown-body .pokesprite tbody td.image.item { - padding-top: 0; - padding-bottom: 0; -} -.markdown-body .pokesprite tfoot td { - line-height: 23px !important; -} -.markdown-body .pokesprite tfoot td span { - line-height: 1.5; - margin-top: 0.5em; - font-size: smaller; - font-weight: normal; - display: block; -} -.markdown-body .pokesprite tfoot td span:first-child { - margin-top: 0; -} -/* Some magic to get border rounding working. */ -.markdown-body .pokesprite { - border-collapse: separate; -} -.markdown-body .pokesprite td, -.markdown-body .pokesprite th { - border: none; - border-top: 1px solid var(--shade-4); - border-left: 1px solid var(--shade-4); -} -.markdown-body .pokesprite td:last-child, -.markdown-body .pokesprite th:last-child { - border-right: 1px solid var(--shade-4); -} -.markdown-body .pokesprite thead tr:first-child th:first-child { - border-top-left-radius: var(--rounding); -} -.markdown-body .pokesprite thead tr:first-child th:last-child { - border-top-right-radius: var(--rounding); -} -.markdown-body .pokesprite tfoot tr:last-child td { - border-bottom: 1px solid var(--shade-4); -} -.markdown-body .pokesprite tfoot tr:last-child td:first-child { - border-bottom-left-radius: var(--rounding); -} -.markdown-body .pokesprite tfoot tr:last-child td:last-child { - border-bottom-right-radius: var(--rounding); -} - -/* Differences per gen. */ - -.markdown-body .pokesprite th, -.markdown-body .pokesprite td { - line-height: 23px; -} -.markdown-body .pokesprite.gen8 th, -.markdown-body .pokesprite.gen8 td { - line-height: 33px; -} -.markdown-body .pokesprite tbody img { - display: block; - margin-left: auto !important; - margin-right: auto !important; -} -.markdown-body .pokesprite tbody img.i { - margin: 2px 0 0 0; -} -.markdown-body .pokesprite tbody img.p { - margin: -28px 0 -4px 0; -} -.markdown-body .pokesprite.gen8 tbody img.p { - margin: -18px 0 -4px 0; -} diff --git a/docs/resources/pokesprite-docs.css b/docs/resources/pokesprite-docs.css new file mode 100644 index 00000000..05596a61 --- /dev/null +++ b/docs/resources/pokesprite-docs.css @@ -0,0 +1,190 @@ +/** + * Sprite overview table + * + * See gh-markdown.css for variables. + */ + +/* Column sizes */ +.markdown-body .pokesprite { + width: min-content; + margin: auto; +} +.markdown-body .pokesprite tbody th, +.markdown-body .pokesprite tbody td { +} +.markdown-body .pokesprite tbody td.filler { + width: 50%; +} +/* Slug column - the table is designed so this column fills out most of the remaining space. */ +.markdown-body .pokesprite tr.header th:last-child, +.markdown-body .pokesprite tbody td:last-child { +} +/* Form column - contains the form name, and is optionally followed by one or two td.min nodes. */ +.markdown-body .pokesprite tbody td.form { +} +.markdown-body .pokesprite tbody td.min { + width: 0.1%; +} +.markdown-body .pokesprite tbody td.image { + width: 1px; +} + +/* The rest */ +.markdown-body .pokesprite tr.header th { + text-align: left; + background-color: var(--shade-2); +} +.markdown-body .pokesprite tr.header th, +.markdown-body .pokesprite tr.header td { + white-space: nowrap; +} +.markdown-body .pokesprite thead tr.title th { + text-align: left; + background: var(--shade-0); + line-height: 23px !important; +} +.markdown-body .pokesprite thead tr.title th span { + font-weight: normal; + display: block; + font-size: smaller; + line-height: 1.5; + color: var(--shade-7) +} +.markdown-body .pokesprite tbody tr:hover td { + background: var(--shade-3); +} +.markdown-body .pokesprite tbody:not(.alternating) tr td[rowspan] { + background: var(--shade-0); +} +.markdown-body .pokesprite tbody tr td.group { + font-weight: 500; +} +.markdown-body .pokesprite tbody tr td.item-id { + padding-bottom: 0; +} +.markdown-body .pokesprite tbody tr td.item-id code { + display: inline-block; + padding-top: 1px; +} +.markdown-body .pokesprite tbody tr.variable-height td { + vertical-align: middle; +} +.markdown-body .pokesprite tbody attr span { + border-bottom: 1px dotted var(--gh-black); +} +.markdown-body .pokesprite tbody th, +.markdown-body .pokesprite tbody td { + vertical-align: top; + white-space: nowrap; +} +.markdown-body .pokesprite tbody td code { + padding: 0; + background: transparent; +} +/* Image no. column */ +.markdown-body .pokesprite tr.header th:first-child, +.markdown-body .pokesprite tbody td:first-child { + text-align: right; + width: 1px; +} +.markdown-body .pokesprite tbody td.min { + text-align: center; + font-size: 14px; + font-weight: 500; +} +.markdown-body .pokesprite tbody td.min.gender-m { + color: #0c8bff; +} +.markdown-body .pokesprite tbody td.min.gender-f { + color: #ff3b60; +} +/* Pokémon sprites */ +.markdown-body .pokesprite tbody img { + image-rendering: pixelated; + image-rendering: crisp-edges; + max-width: inherit; +} +.markdown-body .pokesprite tbody td.image { + padding-left: 0; + padding-right: 0; + text-align: center; +} +.markdown-body .pokesprite tbody td.image.item { + padding-top: 0; + padding-bottom: 0; +} +.markdown-body .pokesprite tfoot td { + line-height: 23px !important; +} +.markdown-body .pokesprite tfoot td .footnote { + line-height: 1.5; + font-size: smaller; + font-weight: normal; + display: block; + margin: -0.5em 0; +} +.markdown-body .pokesprite tfoot td .footnote > * { + margin: 0.5em 0; +} +/* Some magic to get border rounding working. */ +.markdown-body .pokesprite { + border-collapse: separate; +} +.markdown-body .pokesprite td, +.markdown-body .pokesprite th { + border: none; + border-top: 1px solid var(--shade-4); + border-left: 1px solid var(--shade-4); +} +.markdown-body .pokesprite td:last-child, +.markdown-body .pokesprite th:last-child { + border-right: 1px solid var(--shade-4); +} +.markdown-body .pokesprite thead tr:first-child th:first-child { + border-top-left-radius: var(--rounding); +} +.markdown-body .pokesprite thead tr:first-child th:last-child { + border-top-right-radius: var(--rounding); +} +.markdown-body .pokesprite tfoot tr:last-child td { + border-bottom: 1px solid var(--shade-4); +} +.markdown-body .pokesprite tfoot tr:last-child td:first-child { + border-bottom-left-radius: var(--rounding); +} +.markdown-body .pokesprite tfoot tr:last-child td:last-child { + border-bottom-right-radius: var(--rounding); +} + +/* Differences per gen. */ + +.markdown-body .pokesprite th, +.markdown-body .pokesprite td { + line-height: 23px; +} +.markdown-body .pokesprite.gen8 th, +.markdown-body .pokesprite.gen8 td { + line-height: 33px; +} +.markdown-body .pokesprite tbody img { + display: block; + margin-left: auto !important; + margin-right: auto !important; +} +.markdown-body .pokesprite tbody img.i { + margin: 2px 0 0 0; +} +.markdown-body .pokesprite tbody img.p { + margin: -28px 0 -4px 0; +} +.markdown-body .pokesprite.gen8 tbody img.p { + margin: -18px 0 -4px 0; +} +.markdown-body .pokesprite tbody img.retina-ribbon-gen8, +.markdown-body .pokesprite tbody img.retina-body-style-gen8 { + width: 32px; + height: 32px; +} +.markdown-body .pokesprite tbody img.retina-ribbon-gen8 { + margin: 4px; +} diff --git a/items/body-style/bipedal-tailed.png b/items/body-style/bipedal-tailed.png deleted file mode 100644 index ee3ee190..00000000 Binary files a/items/body-style/bipedal-tailed.png and /dev/null differ diff --git a/items/body-style/bipedal-tailless.png b/items/body-style/bipedal-tailless.png deleted file mode 100644 index 7dddb1b1..00000000 Binary files a/items/body-style/bipedal-tailless.png and /dev/null differ diff --git a/items/body-style/fins.png b/items/body-style/fins.png deleted file mode 100644 index 9b147179..00000000 Binary files a/items/body-style/fins.png and /dev/null differ diff --git a/items/body-style/head-arms.png b/items/body-style/head-arms.png deleted file mode 100644 index 9c8e73eb..00000000 Binary files a/items/body-style/head-arms.png and /dev/null differ diff --git a/items/body-style/head-base.png b/items/body-style/head-base.png deleted file mode 100644 index 33d25291..00000000 Binary files a/items/body-style/head-base.png and /dev/null differ diff --git a/items/body-style/head-legs.png b/items/body-style/head-legs.png deleted file mode 100644 index 748c7f45..00000000 Binary files a/items/body-style/head-legs.png and /dev/null differ diff --git a/items/body-style/head.png b/items/body-style/head.png deleted file mode 100644 index 1ebce58e..00000000 Binary files a/items/body-style/head.png and /dev/null differ diff --git a/items/body-style/insectoid.png b/items/body-style/insectoid.png deleted file mode 100644 index 993bb64d..00000000 Binary files a/items/body-style/insectoid.png and /dev/null differ diff --git a/items/body-style/multiple.png b/items/body-style/multiple.png deleted file mode 100644 index 396fe4d8..00000000 Binary files a/items/body-style/multiple.png and /dev/null differ diff --git a/items/body-style/quadruped.png b/items/body-style/quadruped.png deleted file mode 100644 index f839fa9c..00000000 Binary files a/items/body-style/quadruped.png and /dev/null differ diff --git a/items/body-style/serpentine.png b/items/body-style/serpentine.png deleted file mode 100644 index f936799f..00000000 Binary files a/items/body-style/serpentine.png and /dev/null differ diff --git a/items/body-style/tentacles.png b/items/body-style/tentacles.png deleted file mode 100644 index 9ffc70e9..00000000 Binary files a/items/body-style/tentacles.png and /dev/null differ diff --git a/items/body-style/wings-multiple.png b/items/body-style/wings-multiple.png deleted file mode 100644 index 2c22bd97..00000000 Binary files a/items/body-style/wings-multiple.png and /dev/null differ diff --git a/items/body-style/wings-single.png b/items/body-style/wings-single.png deleted file mode 100644 index e74b08d4..00000000 Binary files a/items/body-style/wings-single.png and /dev/null differ diff --git a/items-outline/body-style/bipedal-tailed.png b/misc/body-style/bipedal-tailed-gen6.png similarity index 100% rename from items-outline/body-style/bipedal-tailed.png rename to misc/body-style/bipedal-tailed-gen6.png diff --git a/misc/body-style/bipedal-tailed-gen8.png b/misc/body-style/bipedal-tailed-gen8.png new file mode 100644 index 00000000..f8a9c80c Binary files /dev/null and b/misc/body-style/bipedal-tailed-gen8.png differ diff --git a/items-outline/body-style/bipedal-tailless.png b/misc/body-style/bipedal-tailless-gen6.png similarity index 100% rename from items-outline/body-style/bipedal-tailless.png rename to misc/body-style/bipedal-tailless-gen6.png diff --git a/misc/body-style/bipedal-tailless-gen8.png b/misc/body-style/bipedal-tailless-gen8.png new file mode 100644 index 00000000..0ef516fb Binary files /dev/null and b/misc/body-style/bipedal-tailless-gen8.png differ diff --git a/items-outline/body-style/fins.png b/misc/body-style/fins-gen6.png similarity index 100% rename from items-outline/body-style/fins.png rename to misc/body-style/fins-gen6.png diff --git a/misc/body-style/fins-gen8.png b/misc/body-style/fins-gen8.png new file mode 100644 index 00000000..3b0d7618 Binary files /dev/null and b/misc/body-style/fins-gen8.png differ diff --git a/items-outline/body-style/head-arms.png b/misc/body-style/head-arms-gen6.png similarity index 100% rename from items-outline/body-style/head-arms.png rename to misc/body-style/head-arms-gen6.png diff --git a/misc/body-style/head-arms-gen8.png b/misc/body-style/head-arms-gen8.png new file mode 100644 index 00000000..6505da0a Binary files /dev/null and b/misc/body-style/head-arms-gen8.png differ diff --git a/items-outline/body-style/head-base.png b/misc/body-style/head-base-gen6.png similarity index 100% rename from items-outline/body-style/head-base.png rename to misc/body-style/head-base-gen6.png diff --git a/misc/body-style/head-base-gen8.png b/misc/body-style/head-base-gen8.png new file mode 100644 index 00000000..b60c3520 Binary files /dev/null and b/misc/body-style/head-base-gen8.png differ diff --git a/items-outline/body-style/head.png b/misc/body-style/head-gen6.png similarity index 100% rename from items-outline/body-style/head.png rename to misc/body-style/head-gen6.png diff --git a/misc/body-style/head-gen8.png b/misc/body-style/head-gen8.png new file mode 100644 index 00000000..43f3c648 Binary files /dev/null and b/misc/body-style/head-gen8.png differ diff --git a/items-outline/body-style/head-legs.png b/misc/body-style/head-legs-gen6.png similarity index 100% rename from items-outline/body-style/head-legs.png rename to misc/body-style/head-legs-gen6.png diff --git a/misc/body-style/head-legs-gen8.png b/misc/body-style/head-legs-gen8.png new file mode 100644 index 00000000..53eec4de Binary files /dev/null and b/misc/body-style/head-legs-gen8.png differ diff --git a/items-outline/body-style/insectoid.png b/misc/body-style/insectoid-gen6.png similarity index 100% rename from items-outline/body-style/insectoid.png rename to misc/body-style/insectoid-gen6.png diff --git a/misc/body-style/insectoid-gen8.png b/misc/body-style/insectoid-gen8.png new file mode 100644 index 00000000..925ac783 Binary files /dev/null and b/misc/body-style/insectoid-gen8.png differ diff --git a/items-outline/body-style/multiple.png b/misc/body-style/multiple-gen6.png similarity index 100% rename from items-outline/body-style/multiple.png rename to misc/body-style/multiple-gen6.png diff --git a/misc/body-style/multiple-gen8.png b/misc/body-style/multiple-gen8.png new file mode 100644 index 00000000..d17dd870 Binary files /dev/null and b/misc/body-style/multiple-gen8.png differ diff --git a/items-outline/body-style/quadruped.png b/misc/body-style/quadruped-gen6.png similarity index 100% rename from items-outline/body-style/quadruped.png rename to misc/body-style/quadruped-gen6.png diff --git a/misc/body-style/quadruped-gen8.png b/misc/body-style/quadruped-gen8.png new file mode 100644 index 00000000..b0a9a1f9 Binary files /dev/null and b/misc/body-style/quadruped-gen8.png differ diff --git a/items-outline/body-style/serpentine.png b/misc/body-style/serpentine-gen6.png similarity index 100% rename from items-outline/body-style/serpentine.png rename to misc/body-style/serpentine-gen6.png diff --git a/misc/body-style/serpentine-gen8.png b/misc/body-style/serpentine-gen8.png new file mode 100644 index 00000000..68ec6dd1 Binary files /dev/null and b/misc/body-style/serpentine-gen8.png differ diff --git a/items-outline/body-style/tentacles.png b/misc/body-style/tentacles-gen6.png similarity index 100% rename from items-outline/body-style/tentacles.png rename to misc/body-style/tentacles-gen6.png diff --git a/misc/body-style/tentacles-gen8.png b/misc/body-style/tentacles-gen8.png new file mode 100644 index 00000000..4553efef Binary files /dev/null and b/misc/body-style/tentacles-gen8.png differ diff --git a/items-outline/body-style/wings-multiple.png b/misc/body-style/wings-multiple-gen6.png similarity index 100% rename from items-outline/body-style/wings-multiple.png rename to misc/body-style/wings-multiple-gen6.png diff --git a/misc/body-style/wings-multiple-gen8.png b/misc/body-style/wings-multiple-gen8.png new file mode 100644 index 00000000..ba2a49db Binary files /dev/null and b/misc/body-style/wings-multiple-gen8.png differ diff --git a/items-outline/body-style/wings-single.png b/misc/body-style/wings-single-gen6.png similarity index 100% rename from items-outline/body-style/wings-single.png rename to misc/body-style/wings-single-gen6.png diff --git a/misc/body-style/wings-single-gen8.png b/misc/body-style/wings-single-gen8.png new file mode 100644 index 00000000..3aacb4a8 Binary files /dev/null and b/misc/body-style/wings-single-gen8.png differ diff --git a/misc/ribbon/ability-ribbon.png b/misc/ribbon/ability-ribbon.png new file mode 100644 index 00000000..ff0c63a7 Binary files /dev/null and b/misc/ribbon/ability-ribbon.png differ diff --git a/misc/ribbon/alert-ribbon.png b/misc/ribbon/alert-ribbon.png new file mode 100644 index 00000000..b3e4f220 Binary files /dev/null and b/misc/ribbon/alert-ribbon.png differ diff --git a/misc/ribbon/alola-champion-ribbon.png b/misc/ribbon/alola-champion-ribbon.png new file mode 100644 index 00000000..8eae70c8 Binary files /dev/null and b/misc/ribbon/alola-champion-ribbon.png differ diff --git a/misc/ribbon/artist-ribbon.png b/misc/ribbon/artist-ribbon.png new file mode 100644 index 00000000..598cf5e3 Binary files /dev/null and b/misc/ribbon/artist-ribbon.png differ diff --git a/misc/ribbon/battle-champion-ribbon.png b/misc/ribbon/battle-champion-ribbon.png new file mode 100644 index 00000000..5cccf2e1 Binary files /dev/null and b/misc/ribbon/battle-champion-ribbon.png differ diff --git a/misc/ribbon/battle-memory-ribbon-gold.png b/misc/ribbon/battle-memory-ribbon-gold.png new file mode 100644 index 00000000..4d0fe533 Binary files /dev/null and b/misc/ribbon/battle-memory-ribbon-gold.png differ diff --git a/misc/ribbon/battle-memory-ribbon.png b/misc/ribbon/battle-memory-ribbon.png new file mode 100644 index 00000000..b7aa4082 Binary files /dev/null and b/misc/ribbon/battle-memory-ribbon.png differ diff --git a/misc/ribbon/battle-royal-master-ribbon.png b/misc/ribbon/battle-royal-master-ribbon.png new file mode 100644 index 00000000..06c5392e Binary files /dev/null and b/misc/ribbon/battle-royal-master-ribbon.png differ diff --git a/misc/ribbon/battle-tree-great-ribbon.png b/misc/ribbon/battle-tree-great-ribbon.png new file mode 100644 index 00000000..099030a8 Binary files /dev/null and b/misc/ribbon/battle-tree-great-ribbon.png differ diff --git a/misc/ribbon/battle-tree-master-ribbon.png b/misc/ribbon/battle-tree-master-ribbon.png new file mode 100644 index 00000000..02bd5620 Binary files /dev/null and b/misc/ribbon/battle-tree-master-ribbon.png differ diff --git a/misc/ribbon/beauty-master-ribbon.png b/misc/ribbon/beauty-master-ribbon.png new file mode 100644 index 00000000..f0562691 Binary files /dev/null and b/misc/ribbon/beauty-master-ribbon.png differ diff --git a/misc/ribbon/beauty-ribbon-great-sinnoh.png b/misc/ribbon/beauty-ribbon-great-sinnoh.png new file mode 100644 index 00000000..4229096c Binary files /dev/null and b/misc/ribbon/beauty-ribbon-great-sinnoh.png differ diff --git a/misc/ribbon/beauty-ribbon-hoenn.png b/misc/ribbon/beauty-ribbon-hoenn.png new file mode 100644 index 00000000..00eb28d6 Binary files /dev/null and b/misc/ribbon/beauty-ribbon-hoenn.png differ diff --git a/misc/ribbon/beauty-ribbon-hyper-hoenn.png b/misc/ribbon/beauty-ribbon-hyper-hoenn.png new file mode 100644 index 00000000..cba0512e Binary files /dev/null and b/misc/ribbon/beauty-ribbon-hyper-hoenn.png differ diff --git a/misc/ribbon/beauty-ribbon-master-hoenn.png b/misc/ribbon/beauty-ribbon-master-hoenn.png new file mode 100644 index 00000000..86d757a2 Binary files /dev/null and b/misc/ribbon/beauty-ribbon-master-hoenn.png differ diff --git a/misc/ribbon/beauty-ribbon-master-sinnoh.png b/misc/ribbon/beauty-ribbon-master-sinnoh.png new file mode 100644 index 00000000..cdef09cd Binary files /dev/null and b/misc/ribbon/beauty-ribbon-master-sinnoh.png differ diff --git a/misc/ribbon/beauty-ribbon-sinnoh.png b/misc/ribbon/beauty-ribbon-sinnoh.png new file mode 100644 index 00000000..b9cffdce Binary files /dev/null and b/misc/ribbon/beauty-ribbon-sinnoh.png differ diff --git a/misc/ribbon/beauty-ribbon-super-hoenn.png b/misc/ribbon/beauty-ribbon-super-hoenn.png new file mode 100644 index 00000000..03f0b98c Binary files /dev/null and b/misc/ribbon/beauty-ribbon-super-hoenn.png differ diff --git a/misc/ribbon/beauty-ribbon-ultra-sinnoh.png b/misc/ribbon/beauty-ribbon-ultra-sinnoh.png new file mode 100644 index 00000000..617c3314 Binary files /dev/null and b/misc/ribbon/beauty-ribbon-ultra-sinnoh.png differ diff --git a/misc/ribbon/best-friends-ribbon.png b/misc/ribbon/best-friends-ribbon.png new file mode 100644 index 00000000..ec0f45d0 Binary files /dev/null and b/misc/ribbon/best-friends-ribbon.png differ diff --git a/misc/ribbon/birthday-ribbon.png b/misc/ribbon/birthday-ribbon.png new file mode 100644 index 00000000..b801b240 Binary files /dev/null and b/misc/ribbon/birthday-ribbon.png differ diff --git a/misc/ribbon/blue-ribbon.png b/misc/ribbon/blue-ribbon.png new file mode 100644 index 00000000..82778bcb Binary files /dev/null and b/misc/ribbon/blue-ribbon.png differ diff --git a/misc/ribbon/careless-ribbon.png b/misc/ribbon/careless-ribbon.png new file mode 100644 index 00000000..b0dc6256 Binary files /dev/null and b/misc/ribbon/careless-ribbon.png differ diff --git a/misc/ribbon/carnival-ribbon.png b/misc/ribbon/carnival-ribbon.png new file mode 100644 index 00000000..9c33162b Binary files /dev/null and b/misc/ribbon/carnival-ribbon.png differ diff --git a/misc/ribbon/champion-ribbon.png b/misc/ribbon/champion-ribbon.png new file mode 100644 index 00000000..41055690 Binary files /dev/null and b/misc/ribbon/champion-ribbon.png differ diff --git a/misc/ribbon/classic-ribbon.png b/misc/ribbon/classic-ribbon.png new file mode 100644 index 00000000..5fed8058 Binary files /dev/null and b/misc/ribbon/classic-ribbon.png differ diff --git a/misc/ribbon/cleverness-master-ribbon.png b/misc/ribbon/cleverness-master-ribbon.png new file mode 100644 index 00000000..c2defe0d Binary files /dev/null and b/misc/ribbon/cleverness-master-ribbon.png differ diff --git a/misc/ribbon/contest-memory-ribbon-gold.png b/misc/ribbon/contest-memory-ribbon-gold.png new file mode 100644 index 00000000..4c0da2ed Binary files /dev/null and b/misc/ribbon/contest-memory-ribbon-gold.png differ diff --git a/misc/ribbon/contest-memory-ribbon.png b/misc/ribbon/contest-memory-ribbon.png new file mode 100644 index 00000000..c4cb24ac Binary files /dev/null and b/misc/ribbon/contest-memory-ribbon.png differ diff --git a/misc/ribbon/contest-star-ribbon.png b/misc/ribbon/contest-star-ribbon.png new file mode 100644 index 00000000..fb7d0982 Binary files /dev/null and b/misc/ribbon/contest-star-ribbon.png differ diff --git a/misc/ribbon/cool-ribbon-great-sinnoh.png b/misc/ribbon/cool-ribbon-great-sinnoh.png new file mode 100644 index 00000000..d5120b79 Binary files /dev/null and b/misc/ribbon/cool-ribbon-great-sinnoh.png differ diff --git a/misc/ribbon/cool-ribbon-hoenn.png b/misc/ribbon/cool-ribbon-hoenn.png new file mode 100644 index 00000000..dded77b9 Binary files /dev/null and b/misc/ribbon/cool-ribbon-hoenn.png differ diff --git a/misc/ribbon/cool-ribbon-hyper-hoenn.png b/misc/ribbon/cool-ribbon-hyper-hoenn.png new file mode 100644 index 00000000..2c8583cf Binary files /dev/null and b/misc/ribbon/cool-ribbon-hyper-hoenn.png differ diff --git a/misc/ribbon/cool-ribbon-master-hoenn.png b/misc/ribbon/cool-ribbon-master-hoenn.png new file mode 100644 index 00000000..249029bb Binary files /dev/null and b/misc/ribbon/cool-ribbon-master-hoenn.png differ diff --git a/misc/ribbon/cool-ribbon-master-sinnoh.png b/misc/ribbon/cool-ribbon-master-sinnoh.png new file mode 100644 index 00000000..6a7df964 Binary files /dev/null and b/misc/ribbon/cool-ribbon-master-sinnoh.png differ diff --git a/misc/ribbon/cool-ribbon-sinnoh.png b/misc/ribbon/cool-ribbon-sinnoh.png new file mode 100644 index 00000000..d28ee5cb Binary files /dev/null and b/misc/ribbon/cool-ribbon-sinnoh.png differ diff --git a/misc/ribbon/cool-ribbon-super-hoenn.png b/misc/ribbon/cool-ribbon-super-hoenn.png new file mode 100644 index 00000000..2b5076a3 Binary files /dev/null and b/misc/ribbon/cool-ribbon-super-hoenn.png differ diff --git a/misc/ribbon/cool-ribbon-ultra-sinnoh.png b/misc/ribbon/cool-ribbon-ultra-sinnoh.png new file mode 100644 index 00000000..268282fa Binary files /dev/null and b/misc/ribbon/cool-ribbon-ultra-sinnoh.png differ diff --git a/misc/ribbon/coolness-master-ribbon.png b/misc/ribbon/coolness-master-ribbon.png new file mode 100644 index 00000000..a31d1d25 Binary files /dev/null and b/misc/ribbon/coolness-master-ribbon.png differ diff --git a/misc/ribbon/country-ribbon.png b/misc/ribbon/country-ribbon.png new file mode 100644 index 00000000..c19faa58 Binary files /dev/null and b/misc/ribbon/country-ribbon.png differ diff --git a/misc/ribbon/cute-ribbon-great-sinnoh.png b/misc/ribbon/cute-ribbon-great-sinnoh.png new file mode 100644 index 00000000..b0292689 Binary files /dev/null and b/misc/ribbon/cute-ribbon-great-sinnoh.png differ diff --git a/misc/ribbon/cute-ribbon-hoenn.png b/misc/ribbon/cute-ribbon-hoenn.png new file mode 100644 index 00000000..994e6e62 Binary files /dev/null and b/misc/ribbon/cute-ribbon-hoenn.png differ diff --git a/misc/ribbon/cute-ribbon-hyper-hoenn.png b/misc/ribbon/cute-ribbon-hyper-hoenn.png new file mode 100644 index 00000000..277e7c33 Binary files /dev/null and b/misc/ribbon/cute-ribbon-hyper-hoenn.png differ diff --git a/misc/ribbon/cute-ribbon-master-hoenn.png b/misc/ribbon/cute-ribbon-master-hoenn.png new file mode 100644 index 00000000..c3d6deb3 Binary files /dev/null and b/misc/ribbon/cute-ribbon-master-hoenn.png differ diff --git a/misc/ribbon/cute-ribbon-master-sinnoh.png b/misc/ribbon/cute-ribbon-master-sinnoh.png new file mode 100644 index 00000000..7161e601 Binary files /dev/null and b/misc/ribbon/cute-ribbon-master-sinnoh.png differ diff --git a/misc/ribbon/cute-ribbon-sinnoh.png b/misc/ribbon/cute-ribbon-sinnoh.png new file mode 100644 index 00000000..b1393bc8 Binary files /dev/null and b/misc/ribbon/cute-ribbon-sinnoh.png differ diff --git a/misc/ribbon/cute-ribbon-super-hoenn.png b/misc/ribbon/cute-ribbon-super-hoenn.png new file mode 100644 index 00000000..54d566f9 Binary files /dev/null and b/misc/ribbon/cute-ribbon-super-hoenn.png differ diff --git a/misc/ribbon/cute-ribbon-ultra-sinnoh.png b/misc/ribbon/cute-ribbon-ultra-sinnoh.png new file mode 100644 index 00000000..cccf62b0 Binary files /dev/null and b/misc/ribbon/cute-ribbon-ultra-sinnoh.png differ diff --git a/misc/ribbon/cuteness-master-ribbon.png b/misc/ribbon/cuteness-master-ribbon.png new file mode 100644 index 00000000..95fd1bf9 Binary files /dev/null and b/misc/ribbon/cuteness-master-ribbon.png differ diff --git a/misc/ribbon/double-ability-ribbon.png b/misc/ribbon/double-ability-ribbon.png new file mode 100644 index 00000000..c6d24d0e Binary files /dev/null and b/misc/ribbon/double-ability-ribbon.png differ diff --git a/misc/ribbon/downcast-ribbon.png b/misc/ribbon/downcast-ribbon.png new file mode 100644 index 00000000..53732d5c Binary files /dev/null and b/misc/ribbon/downcast-ribbon.png differ diff --git a/misc/ribbon/earth-ribbon.png b/misc/ribbon/earth-ribbon.png new file mode 100644 index 00000000..408beec4 Binary files /dev/null and b/misc/ribbon/earth-ribbon.png differ diff --git a/misc/ribbon/effort-ribbon.png b/misc/ribbon/effort-ribbon.png new file mode 100644 index 00000000..15992e29 Binary files /dev/null and b/misc/ribbon/effort-ribbon.png differ diff --git a/misc/ribbon/event-ribbon.png b/misc/ribbon/event-ribbon.png new file mode 100644 index 00000000..b39c4c7f Binary files /dev/null and b/misc/ribbon/event-ribbon.png differ diff --git a/misc/ribbon/expert-battler-ribbon.png b/misc/ribbon/expert-battler-ribbon.png new file mode 100644 index 00000000..09425c03 Binary files /dev/null and b/misc/ribbon/expert-battler-ribbon.png differ diff --git a/misc/ribbon/festival-ribbon.png b/misc/ribbon/festival-ribbon.png new file mode 100644 index 00000000..897631c9 Binary files /dev/null and b/misc/ribbon/festival-ribbon.png differ diff --git a/misc/ribbon/footprint-ribbon.png b/misc/ribbon/footprint-ribbon.png new file mode 100644 index 00000000..f6d17fb9 Binary files /dev/null and b/misc/ribbon/footprint-ribbon.png differ diff --git a/misc/ribbon/gen8/alert-ribbon.png b/misc/ribbon/gen8/alert-ribbon.png new file mode 100644 index 00000000..8582fb2e Binary files /dev/null and b/misc/ribbon/gen8/alert-ribbon.png differ diff --git a/misc/ribbon/gen8/alola-champion-ribbon.png b/misc/ribbon/gen8/alola-champion-ribbon.png new file mode 100644 index 00000000..0d957f70 Binary files /dev/null and b/misc/ribbon/gen8/alola-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/artist-ribbon.png b/misc/ribbon/gen8/artist-ribbon.png new file mode 100644 index 00000000..fd924c59 Binary files /dev/null and b/misc/ribbon/gen8/artist-ribbon.png differ diff --git a/misc/ribbon/gen8/battle-champion-ribbon.png b/misc/ribbon/gen8/battle-champion-ribbon.png new file mode 100644 index 00000000..468b2582 Binary files /dev/null and b/misc/ribbon/gen8/battle-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/battle-memory-ribbon.png b/misc/ribbon/gen8/battle-memory-ribbon.png new file mode 100644 index 00000000..e0c060f6 Binary files /dev/null and b/misc/ribbon/gen8/battle-memory-ribbon.png differ diff --git a/misc/ribbon/gen8/battle-royal-master-ribbon.png b/misc/ribbon/gen8/battle-royal-master-ribbon.png new file mode 100644 index 00000000..f2ec5191 Binary files /dev/null and b/misc/ribbon/gen8/battle-royal-master-ribbon.png differ diff --git a/misc/ribbon/gen8/battle-tree-great-ribbon.png b/misc/ribbon/gen8/battle-tree-great-ribbon.png new file mode 100644 index 00000000..5bb20f97 Binary files /dev/null and b/misc/ribbon/gen8/battle-tree-great-ribbon.png differ diff --git a/misc/ribbon/gen8/battle-tree-master-ribbon.png b/misc/ribbon/gen8/battle-tree-master-ribbon.png new file mode 100644 index 00000000..a636c84e Binary files /dev/null and b/misc/ribbon/gen8/battle-tree-master-ribbon.png differ diff --git a/misc/ribbon/gen8/beauty-master-ribbon.png b/misc/ribbon/gen8/beauty-master-ribbon.png new file mode 100644 index 00000000..533644c4 Binary files /dev/null and b/misc/ribbon/gen8/beauty-master-ribbon.png differ diff --git a/misc/ribbon/gen8/best-friends-ribbon.png b/misc/ribbon/gen8/best-friends-ribbon.png new file mode 100644 index 00000000..697068d2 Binary files /dev/null and b/misc/ribbon/gen8/best-friends-ribbon.png differ diff --git a/misc/ribbon/gen8/birthday-ribbon.png b/misc/ribbon/gen8/birthday-ribbon.png new file mode 100644 index 00000000..87d02ee7 Binary files /dev/null and b/misc/ribbon/gen8/birthday-ribbon.png differ diff --git a/misc/ribbon/gen8/careless-ribbon.png b/misc/ribbon/gen8/careless-ribbon.png new file mode 100644 index 00000000..fc2fbe52 Binary files /dev/null and b/misc/ribbon/gen8/careless-ribbon.png differ diff --git a/misc/ribbon/gen8/champion-ribbon.png b/misc/ribbon/gen8/champion-ribbon.png new file mode 100644 index 00000000..d622e63f Binary files /dev/null and b/misc/ribbon/gen8/champion-ribbon.png differ diff --git a/misc/ribbon/gen8/classic-ribbon.png b/misc/ribbon/gen8/classic-ribbon.png new file mode 100644 index 00000000..244d4100 Binary files /dev/null and b/misc/ribbon/gen8/classic-ribbon.png differ diff --git a/misc/ribbon/gen8/cleverness-master-ribbon.png b/misc/ribbon/gen8/cleverness-master-ribbon.png new file mode 100644 index 00000000..731d063b Binary files /dev/null and b/misc/ribbon/gen8/cleverness-master-ribbon.png differ diff --git a/misc/ribbon/gen8/contest-memory-ribbon.png b/misc/ribbon/gen8/contest-memory-ribbon.png new file mode 100644 index 00000000..c845f8e1 Binary files /dev/null and b/misc/ribbon/gen8/contest-memory-ribbon.png differ diff --git a/misc/ribbon/gen8/contest-star-ribbon.png b/misc/ribbon/gen8/contest-star-ribbon.png new file mode 100644 index 00000000..7bbd3a02 Binary files /dev/null and b/misc/ribbon/gen8/contest-star-ribbon.png differ diff --git a/misc/ribbon/gen8/coolness-master-ribbon.png b/misc/ribbon/gen8/coolness-master-ribbon.png new file mode 100644 index 00000000..18e3ccc1 Binary files /dev/null and b/misc/ribbon/gen8/coolness-master-ribbon.png differ diff --git a/misc/ribbon/gen8/country-ribbon.png b/misc/ribbon/gen8/country-ribbon.png new file mode 100644 index 00000000..a2566306 Binary files /dev/null and b/misc/ribbon/gen8/country-ribbon.png differ diff --git a/misc/ribbon/gen8/cuteness-master-ribbon.png b/misc/ribbon/gen8/cuteness-master-ribbon.png new file mode 100644 index 00000000..c167df4c Binary files /dev/null and b/misc/ribbon/gen8/cuteness-master-ribbon.png differ diff --git a/misc/ribbon/gen8/downcast-ribbon.png b/misc/ribbon/gen8/downcast-ribbon.png new file mode 100644 index 00000000..4f8e1c13 Binary files /dev/null and b/misc/ribbon/gen8/downcast-ribbon.png differ diff --git a/misc/ribbon/gen8/earth-ribbon.png b/misc/ribbon/gen8/earth-ribbon.png new file mode 100644 index 00000000..175295d1 Binary files /dev/null and b/misc/ribbon/gen8/earth-ribbon.png differ diff --git a/misc/ribbon/gen8/effort-ribbon.png b/misc/ribbon/gen8/effort-ribbon.png new file mode 100644 index 00000000..dbf55c49 Binary files /dev/null and b/misc/ribbon/gen8/effort-ribbon.png differ diff --git a/misc/ribbon/gen8/event-ribbon.png b/misc/ribbon/gen8/event-ribbon.png new file mode 100644 index 00000000..d7e6d13c Binary files /dev/null and b/misc/ribbon/gen8/event-ribbon.png differ diff --git a/misc/ribbon/gen8/expert-battler-ribbon.png b/misc/ribbon/gen8/expert-battler-ribbon.png new file mode 100644 index 00000000..c95b6c75 Binary files /dev/null and b/misc/ribbon/gen8/expert-battler-ribbon.png differ diff --git a/misc/ribbon/gen8/footprint-ribbon.png b/misc/ribbon/gen8/footprint-ribbon.png new file mode 100644 index 00000000..9a7edd9b Binary files /dev/null and b/misc/ribbon/gen8/footprint-ribbon.png differ diff --git a/misc/ribbon/gen8/galar-champion-ribbon.png b/misc/ribbon/gen8/galar-champion-ribbon.png new file mode 100644 index 00000000..1ca428c1 Binary files /dev/null and b/misc/ribbon/gen8/galar-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/gorgeous-ribbon.png b/misc/ribbon/gen8/gorgeous-ribbon.png new file mode 100644 index 00000000..fd79764d Binary files /dev/null and b/misc/ribbon/gen8/gorgeous-ribbon.png differ diff --git a/misc/ribbon/gen8/gorgeous-royal-ribbon.png b/misc/ribbon/gen8/gorgeous-royal-ribbon.png new file mode 100644 index 00000000..4704ab76 Binary files /dev/null and b/misc/ribbon/gen8/gorgeous-royal-ribbon.png differ diff --git a/misc/ribbon/gen8/hoenn-champion-ribbon.png b/misc/ribbon/gen8/hoenn-champion-ribbon.png new file mode 100644 index 00000000..91a67f70 Binary files /dev/null and b/misc/ribbon/gen8/hoenn-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/kalos-champion-ribbon.png b/misc/ribbon/gen8/kalos-champion-ribbon.png new file mode 100644 index 00000000..c4c76fac Binary files /dev/null and b/misc/ribbon/gen8/kalos-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/legend-ribbon.png b/misc/ribbon/gen8/legend-ribbon.png new file mode 100644 index 00000000..00b5f3ae Binary files /dev/null and b/misc/ribbon/gen8/legend-ribbon.png differ diff --git a/misc/ribbon/gen8/master-rank-ribbon.png b/misc/ribbon/gen8/master-rank-ribbon.png new file mode 100644 index 00000000..cc389306 Binary files /dev/null and b/misc/ribbon/gen8/master-rank-ribbon.png differ diff --git a/misc/ribbon/gen8/national-champion-ribbon.png b/misc/ribbon/gen8/national-champion-ribbon.png new file mode 100644 index 00000000..97668b25 Binary files /dev/null and b/misc/ribbon/gen8/national-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/national-ribbon.png b/misc/ribbon/gen8/national-ribbon.png new file mode 100644 index 00000000..6b0d5507 Binary files /dev/null and b/misc/ribbon/gen8/national-ribbon.png differ diff --git a/misc/ribbon/gen8/premier-ribbon.png b/misc/ribbon/gen8/premier-ribbon.png new file mode 100644 index 00000000..125d9ee1 Binary files /dev/null and b/misc/ribbon/gen8/premier-ribbon.png differ diff --git a/misc/ribbon/gen8/record-ribbon.png b/misc/ribbon/gen8/record-ribbon.png new file mode 100644 index 00000000..706d4bd8 Binary files /dev/null and b/misc/ribbon/gen8/record-ribbon.png differ diff --git a/misc/ribbon/gen8/regional-champion-ribbon.png b/misc/ribbon/gen8/regional-champion-ribbon.png new file mode 100644 index 00000000..3385a7c4 Binary files /dev/null and b/misc/ribbon/gen8/regional-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/relax-ribbon.png b/misc/ribbon/gen8/relax-ribbon.png new file mode 100644 index 00000000..b40debb2 Binary files /dev/null and b/misc/ribbon/gen8/relax-ribbon.png differ diff --git a/misc/ribbon/gen8/royal-ribbon.png b/misc/ribbon/gen8/royal-ribbon.png new file mode 100644 index 00000000..175decdb Binary files /dev/null and b/misc/ribbon/gen8/royal-ribbon.png differ diff --git a/misc/ribbon/gen8/shock-ribbon.png b/misc/ribbon/gen8/shock-ribbon.png new file mode 100644 index 00000000..885f8e02 Binary files /dev/null and b/misc/ribbon/gen8/shock-ribbon.png differ diff --git a/misc/ribbon/gen8/sinnoh-champion-ribbon.png b/misc/ribbon/gen8/sinnoh-champion-ribbon.png new file mode 100644 index 00000000..0937264e Binary files /dev/null and b/misc/ribbon/gen8/sinnoh-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/skillful-battler-ribbon.png b/misc/ribbon/gen8/skillful-battler-ribbon.png new file mode 100644 index 00000000..3ddf016d Binary files /dev/null and b/misc/ribbon/gen8/skillful-battler-ribbon.png differ diff --git a/misc/ribbon/gen8/smile-ribbon.png b/misc/ribbon/gen8/smile-ribbon.png new file mode 100644 index 00000000..8b7150ee Binary files /dev/null and b/misc/ribbon/gen8/smile-ribbon.png differ diff --git a/misc/ribbon/gen8/snooze-ribbon.png b/misc/ribbon/gen8/snooze-ribbon.png new file mode 100644 index 00000000..07a42ba4 Binary files /dev/null and b/misc/ribbon/gen8/snooze-ribbon.png differ diff --git a/misc/ribbon/gen8/souvenir-ribbon.png b/misc/ribbon/gen8/souvenir-ribbon.png new file mode 100644 index 00000000..4957838c Binary files /dev/null and b/misc/ribbon/gen8/souvenir-ribbon.png differ diff --git a/misc/ribbon/gen8/special-ribbon.png b/misc/ribbon/gen8/special-ribbon.png new file mode 100644 index 00000000..642ec534 Binary files /dev/null and b/misc/ribbon/gen8/special-ribbon.png differ diff --git a/misc/ribbon/gen8/toughness-master-ribbon.png b/misc/ribbon/gen8/toughness-master-ribbon.png new file mode 100644 index 00000000..c1f328ca Binary files /dev/null and b/misc/ribbon/gen8/toughness-master-ribbon.png differ diff --git a/misc/ribbon/gen8/tower-master-ribbon.png b/misc/ribbon/gen8/tower-master-ribbon.png new file mode 100644 index 00000000..b8b66c9e Binary files /dev/null and b/misc/ribbon/gen8/tower-master-ribbon.png differ diff --git a/misc/ribbon/gen8/training-ribbon.png b/misc/ribbon/gen8/training-ribbon.png new file mode 100644 index 00000000..da8e9cc6 Binary files /dev/null and b/misc/ribbon/gen8/training-ribbon.png differ diff --git a/misc/ribbon/gen8/wishing-ribbon.png b/misc/ribbon/gen8/wishing-ribbon.png new file mode 100644 index 00000000..45658218 Binary files /dev/null and b/misc/ribbon/gen8/wishing-ribbon.png differ diff --git a/misc/ribbon/gen8/world-champion-ribbon.png b/misc/ribbon/gen8/world-champion-ribbon.png new file mode 100644 index 00000000..7a3e7e86 Binary files /dev/null and b/misc/ribbon/gen8/world-champion-ribbon.png differ diff --git a/misc/ribbon/gen8/world-ribbon.png b/misc/ribbon/gen8/world-ribbon.png new file mode 100644 index 00000000..6ac30060 Binary files /dev/null and b/misc/ribbon/gen8/world-ribbon.png differ diff --git a/misc/ribbon/gorgeous-ribbon.png b/misc/ribbon/gorgeous-ribbon.png new file mode 100644 index 00000000..cb89a591 Binary files /dev/null and b/misc/ribbon/gorgeous-ribbon.png differ diff --git a/misc/ribbon/gorgeous-royal-ribbon.png b/misc/ribbon/gorgeous-royal-ribbon.png new file mode 100644 index 00000000..3a35419f Binary files /dev/null and b/misc/ribbon/gorgeous-royal-ribbon.png differ diff --git a/misc/ribbon/great-ability-ribbon.png b/misc/ribbon/great-ability-ribbon.png new file mode 100644 index 00000000..8d5ca7c5 Binary files /dev/null and b/misc/ribbon/great-ability-ribbon.png differ diff --git a/misc/ribbon/green-ribbon.png b/misc/ribbon/green-ribbon.png new file mode 100644 index 00000000..5ed2326f Binary files /dev/null and b/misc/ribbon/green-ribbon.png differ diff --git a/misc/ribbon/history-ribbon.png b/misc/ribbon/history-ribbon.png new file mode 100644 index 00000000..b39c4c7f Binary files /dev/null and b/misc/ribbon/history-ribbon.png differ diff --git a/misc/ribbon/hoenn-champion-ribbon.png b/misc/ribbon/hoenn-champion-ribbon.png new file mode 100644 index 00000000..4dbff00e Binary files /dev/null and b/misc/ribbon/hoenn-champion-ribbon.png differ diff --git a/misc/ribbon/kalos-champion-ribbon.png b/misc/ribbon/kalos-champion-ribbon.png new file mode 100644 index 00000000..e2403bc3 Binary files /dev/null and b/misc/ribbon/kalos-champion-ribbon.png differ diff --git a/misc/ribbon/land-ribbon.png b/misc/ribbon/land-ribbon.png new file mode 100644 index 00000000..483deca1 Binary files /dev/null and b/misc/ribbon/land-ribbon.png differ diff --git a/misc/ribbon/legend-ribbon.png b/misc/ribbon/legend-ribbon.png new file mode 100644 index 00000000..0c7dbdf0 Binary files /dev/null and b/misc/ribbon/legend-ribbon.png differ diff --git a/misc/ribbon/marine-ribbon.png b/misc/ribbon/marine-ribbon.png new file mode 100644 index 00000000..eb4fdd18 Binary files /dev/null and b/misc/ribbon/marine-ribbon.png differ diff --git a/misc/ribbon/multi-ability-ribbon.png b/misc/ribbon/multi-ability-ribbon.png new file mode 100644 index 00000000..b4e9a1e8 Binary files /dev/null and b/misc/ribbon/multi-ability-ribbon.png differ diff --git a/misc/ribbon/national-champion-ribbon.png b/misc/ribbon/national-champion-ribbon.png new file mode 100644 index 00000000..f7613532 Binary files /dev/null and b/misc/ribbon/national-champion-ribbon.png differ diff --git a/misc/ribbon/national-ribbon.png b/misc/ribbon/national-ribbon.png new file mode 100644 index 00000000..67a9f5dd Binary files /dev/null and b/misc/ribbon/national-ribbon.png differ diff --git a/misc/ribbon/pair-ability-ribbon.png b/misc/ribbon/pair-ability-ribbon.png new file mode 100644 index 00000000..a308d3cf Binary files /dev/null and b/misc/ribbon/pair-ability-ribbon.png differ diff --git a/misc/ribbon/premier-ribbon.png b/misc/ribbon/premier-ribbon.png new file mode 100644 index 00000000..7445b602 Binary files /dev/null and b/misc/ribbon/premier-ribbon.png differ diff --git a/misc/ribbon/record-ribbon.png b/misc/ribbon/record-ribbon.png new file mode 100644 index 00000000..1524a30a Binary files /dev/null and b/misc/ribbon/record-ribbon.png differ diff --git a/misc/ribbon/red-ribbon.png b/misc/ribbon/red-ribbon.png new file mode 100644 index 00000000..ce576524 Binary files /dev/null and b/misc/ribbon/red-ribbon.png differ diff --git a/misc/ribbon/regional-champion-ribbon.png b/misc/ribbon/regional-champion-ribbon.png new file mode 100644 index 00000000..5f6071b0 Binary files /dev/null and b/misc/ribbon/regional-champion-ribbon.png differ diff --git a/misc/ribbon/relax-ribbon.png b/misc/ribbon/relax-ribbon.png new file mode 100644 index 00000000..ff641d91 Binary files /dev/null and b/misc/ribbon/relax-ribbon.png differ diff --git a/misc/ribbon/royal-ribbon.png b/misc/ribbon/royal-ribbon.png new file mode 100644 index 00000000..d7b8514a Binary files /dev/null and b/misc/ribbon/royal-ribbon.png differ diff --git a/misc/ribbon/shock-ribbon.png b/misc/ribbon/shock-ribbon.png new file mode 100644 index 00000000..f691f22b Binary files /dev/null and b/misc/ribbon/shock-ribbon.png differ diff --git a/misc/ribbon/sinnoh-champion-ribbon.png b/misc/ribbon/sinnoh-champion-ribbon.png new file mode 100644 index 00000000..b9285d19 Binary files /dev/null and b/misc/ribbon/sinnoh-champion-ribbon.png differ diff --git a/misc/ribbon/skillful-battler-ribbon.png b/misc/ribbon/skillful-battler-ribbon.png new file mode 100644 index 00000000..320f9e96 Binary files /dev/null and b/misc/ribbon/skillful-battler-ribbon.png differ diff --git a/misc/ribbon/sky-ribbon.png b/misc/ribbon/sky-ribbon.png new file mode 100644 index 00000000..d9b14f90 Binary files /dev/null and b/misc/ribbon/sky-ribbon.png differ diff --git a/misc/ribbon/smart-ribbon-great-sinnoh.png b/misc/ribbon/smart-ribbon-great-sinnoh.png new file mode 100644 index 00000000..3af4be8e Binary files /dev/null and b/misc/ribbon/smart-ribbon-great-sinnoh.png differ diff --git a/misc/ribbon/smart-ribbon-hoenn.png b/misc/ribbon/smart-ribbon-hoenn.png new file mode 100644 index 00000000..f78dbe4c Binary files /dev/null and b/misc/ribbon/smart-ribbon-hoenn.png differ diff --git a/misc/ribbon/smart-ribbon-hyper-hoenn.png b/misc/ribbon/smart-ribbon-hyper-hoenn.png new file mode 100644 index 00000000..2a694482 Binary files /dev/null and b/misc/ribbon/smart-ribbon-hyper-hoenn.png differ diff --git a/misc/ribbon/smart-ribbon-master-hoenn.png b/misc/ribbon/smart-ribbon-master-hoenn.png new file mode 100644 index 00000000..cdfba3cb Binary files /dev/null and b/misc/ribbon/smart-ribbon-master-hoenn.png differ diff --git a/misc/ribbon/smart-ribbon-master-sinnoh.png b/misc/ribbon/smart-ribbon-master-sinnoh.png new file mode 100644 index 00000000..c8660f83 Binary files /dev/null and b/misc/ribbon/smart-ribbon-master-sinnoh.png differ diff --git a/misc/ribbon/smart-ribbon-sinnoh.png b/misc/ribbon/smart-ribbon-sinnoh.png new file mode 100644 index 00000000..e5f9e87c Binary files /dev/null and b/misc/ribbon/smart-ribbon-sinnoh.png differ diff --git a/misc/ribbon/smart-ribbon-super-hoenn.png b/misc/ribbon/smart-ribbon-super-hoenn.png new file mode 100644 index 00000000..fcd098db Binary files /dev/null and b/misc/ribbon/smart-ribbon-super-hoenn.png differ diff --git a/misc/ribbon/smart-ribbon-ultra-sinnoh.png b/misc/ribbon/smart-ribbon-ultra-sinnoh.png new file mode 100644 index 00000000..d089f827 Binary files /dev/null and b/misc/ribbon/smart-ribbon-ultra-sinnoh.png differ diff --git a/misc/ribbon/smile-ribbon.png b/misc/ribbon/smile-ribbon.png new file mode 100644 index 00000000..68105f34 Binary files /dev/null and b/misc/ribbon/smile-ribbon.png differ diff --git a/misc/ribbon/snooze-ribbon.png b/misc/ribbon/snooze-ribbon.png new file mode 100644 index 00000000..28b6cb63 Binary files /dev/null and b/misc/ribbon/snooze-ribbon.png differ diff --git a/misc/ribbon/souvenir-ribbon.png b/misc/ribbon/souvenir-ribbon.png new file mode 100644 index 00000000..897631c9 Binary files /dev/null and b/misc/ribbon/souvenir-ribbon.png differ diff --git a/misc/ribbon/special-ribbon.png b/misc/ribbon/special-ribbon.png new file mode 100644 index 00000000..7082186d Binary files /dev/null and b/misc/ribbon/special-ribbon.png differ diff --git a/misc/ribbon/tough-ribbon-great-sinnoh.png b/misc/ribbon/tough-ribbon-great-sinnoh.png new file mode 100644 index 00000000..05392370 Binary files /dev/null and b/misc/ribbon/tough-ribbon-great-sinnoh.png differ diff --git a/misc/ribbon/tough-ribbon-hoenn.png b/misc/ribbon/tough-ribbon-hoenn.png new file mode 100644 index 00000000..5262acc6 Binary files /dev/null and b/misc/ribbon/tough-ribbon-hoenn.png differ diff --git a/misc/ribbon/tough-ribbon-hyper-hoenn.png b/misc/ribbon/tough-ribbon-hyper-hoenn.png new file mode 100644 index 00000000..047869f1 Binary files /dev/null and b/misc/ribbon/tough-ribbon-hyper-hoenn.png differ diff --git a/misc/ribbon/tough-ribbon-master-hoenn.png b/misc/ribbon/tough-ribbon-master-hoenn.png new file mode 100644 index 00000000..150b299c Binary files /dev/null and b/misc/ribbon/tough-ribbon-master-hoenn.png differ diff --git a/misc/ribbon/tough-ribbon-master-sinnoh.png b/misc/ribbon/tough-ribbon-master-sinnoh.png new file mode 100644 index 00000000..5d7b44a9 Binary files /dev/null and b/misc/ribbon/tough-ribbon-master-sinnoh.png differ diff --git a/misc/ribbon/tough-ribbon-sinnoh.png b/misc/ribbon/tough-ribbon-sinnoh.png new file mode 100644 index 00000000..c501b368 Binary files /dev/null and b/misc/ribbon/tough-ribbon-sinnoh.png differ diff --git a/misc/ribbon/tough-ribbon-super-hoenn.png b/misc/ribbon/tough-ribbon-super-hoenn.png new file mode 100644 index 00000000..51e833d0 Binary files /dev/null and b/misc/ribbon/tough-ribbon-super-hoenn.png differ diff --git a/misc/ribbon/tough-ribbon-ultra-sinnoh.png b/misc/ribbon/tough-ribbon-ultra-sinnoh.png new file mode 100644 index 00000000..1b0a9fc0 Binary files /dev/null and b/misc/ribbon/tough-ribbon-ultra-sinnoh.png differ diff --git a/misc/ribbon/toughness-master-ribbon.png b/misc/ribbon/toughness-master-ribbon.png new file mode 100644 index 00000000..8995b75a Binary files /dev/null and b/misc/ribbon/toughness-master-ribbon.png differ diff --git a/misc/ribbon/training-ribbon.png b/misc/ribbon/training-ribbon.png new file mode 100644 index 00000000..0539c864 Binary files /dev/null and b/misc/ribbon/training-ribbon.png differ diff --git a/misc/ribbon/victory-ribbon.png b/misc/ribbon/victory-ribbon.png new file mode 100644 index 00000000..ccd0d92a Binary files /dev/null and b/misc/ribbon/victory-ribbon.png differ diff --git a/misc/ribbon/winning-ribbon.png b/misc/ribbon/winning-ribbon.png new file mode 100644 index 00000000..5beeb3ef Binary files /dev/null and b/misc/ribbon/winning-ribbon.png differ diff --git a/misc/ribbon/wishing-ribbon.png b/misc/ribbon/wishing-ribbon.png new file mode 100644 index 00000000..9c33162b Binary files /dev/null and b/misc/ribbon/wishing-ribbon.png differ diff --git a/misc/ribbon/world-ability-ribbon.png b/misc/ribbon/world-ability-ribbon.png new file mode 100644 index 00000000..ce69dd31 Binary files /dev/null and b/misc/ribbon/world-ability-ribbon.png differ diff --git a/misc/ribbon/world-champion-ribbon.png b/misc/ribbon/world-champion-ribbon.png new file mode 100644 index 00000000..aaaadad2 Binary files /dev/null and b/misc/ribbon/world-champion-ribbon.png differ diff --git a/misc/ribbon/world-ribbon.png b/misc/ribbon/world-ribbon.png new file mode 100644 index 00000000..db09aecf Binary files /dev/null and b/misc/ribbon/world-ribbon.png differ diff --git a/package.json b/package.json index 5abd84c7..3a51136d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pokesprite-images", - "version": "2.0.4", + "version": "2.0.5", "description": "Database project of box and inventory sprites from the Pokémon core series games", "files": [ "contributors.md", diff --git a/scripts/gen_docs.py b/scripts/gen_docs.py index 0d175bf8..63e20da4 100755 --- a/scripts/gen_docs.py +++ b/scripts/gen_docs.py @@ -7,6 +7,7 @@ # * docs/overview/dex-gen7.html # * docs/overview/dex-gen8.html # * docs/overview/dex-gen8-new.html +# * docs/overview/misc.html # * docs/overview/inventory.html # * docs/index.html # @@ -15,6 +16,7 @@ import json import subprocess +import html from os import makedirs from os.path import abspath, dirname from pathlib import Path @@ -24,9 +26,10 @@ BASE_DIR = str(Path(dirname(abspath(__file__))).parent) TARGET_DIR = f'{BASE_DIR}/docs' DEX_JSON = f'{BASE_DIR}/data/pokemon.json' ITM_JSON = f'{BASE_DIR}/data/item-map.json' +MSC_JSON = f'{BASE_DIR}/data/misc.json' ITM_UNL_JSON = f'{BASE_DIR}/data/item-unlinked.json' ETC_JSON = f'{BASE_DIR}/data/other-sprites.json' -INVENTORY_JSON = f'{BASE_DIR}/data/inventory.json' +META_JSON = f'{BASE_DIR}/data/meta.json' PROJECT_URL = 'https://github.com/msikma/pokesprite' DOCS_BASE_URL = 'https://msikma.github.io/pokesprite' REPO_BASE_URL = 'https://raw.githubusercontent.com/msikma/pokesprite/master' @@ -83,16 +86,29 @@ def generate_index_page(version, commit): }, 'Index', version, commit, '.') return content -def wrap_docs_page(table_content, gen, gen_dir, curr_page, json_file, is_items_page, version, commit, sprites_counter, new_sprites_only): +def wrap_docs_page(table_content, gen, gen_dir, curr_page, json_file, title, is_items_page, is_misc_page, version, commit, sprites_counter, new_sprites_only, items_list): '''Wraps a documentation page in a table node and adds styling''' gen_url = f'{REPO_BASE_URL}/{gen_dir}' json_url = f'{REPO_BASE_URL}/data/{json_file}' gen_link = f'{gen_dir}' json_link = f'data/{json_file}' + + if title is None and gen: + title = 'Gen ' + str(gen) + (f' (new sprites only)' if new_sprites_only else '') + main_info = '''

This table lists all inventory item sprites. These items are from the last several games and is up-to-date as of Pokémon Sword/Shield. The sprites are from Gen 3 through 8.

-

All sprites are 32×32 in size. There are sets of sprites: one with a Sword/Shield style white outline around the sprites, and one without (as all previous games). Both sets contain the same number of sprites.

+

All sprites are 32×32 in size. There are two sets of sprites: one with a Sword/Shield style white outline around the sprites, and one without (as all previous games). Both sets contain the same number of sprites, and both are listed below.

''' if is_items_page else ''' +

This table lists all miscellaneous sprites—all that aren't Pokémon box sprites or inventory items.

The following groups of sprites are included:

+ +

+ The data for this list can be found in %(json_link)s. +

+ ''' % { + 'items_list': '\n'.join(items_list), + 'json_link': json_link + } if is_misc_page else '''

This table lists all Pokémon box sprites for Gen %(gen)s%(subtype)s, which can be found in the %(gen_link)s directory. The list is up-to-date as of Pokémon Sword/Shield, and some of the sprites are from an earlier generation. All shiny sprites were custom-made and are not found in-game.

All box sprites are 68×56 as of Gen 8; the old Gen 7 sprites have been updated to the new size and contrast. (The original 40×30 sprites from Gen 7 are still available in the legacy sprites directory.)

@@ -115,7 +131,7 @@ def wrap_docs_page(table_content, gen, gen_dir, curr_page, json_file, is_items_p %(main_info)s

See the project page on Github for more information.

- +
%(table_content)s
@@ -126,7 +142,7 @@ def wrap_docs_page(table_content, gen, gen_dir, curr_page, json_file, is_items_p ''' % { 'table_content': table_content, 'title_sprite': get_title_venusaur(), - 'gen': gen, + 'gen': ' gen%s' % gen if gen else '', 'main_info': main_info, 'curr_page': curr_page, 'version': version, @@ -134,7 +150,7 @@ def wrap_docs_page(table_content, gen, gen_dir, curr_page, json_file, is_items_p 'commit': commit, 'project_url': PROJECT_URL, 'sprites_counter': sprites_counter - }, 'Gen ' + str(gen) + (f' (new sprites only)' if new_sprites_only else ''), version, commit, '..') + }, title, version, commit, '..') def get_menu_links(curr_page): menu = [ @@ -142,7 +158,8 @@ def get_menu_links(curr_page): ['overview/dex-gen7', 'dex-gen7', 'Gen 7'], ['overview/dex-gen8', 'dex-gen8', 'Gen 8'], ['overview/dex-gen8-new', 'dex-gen8-new', 'Gen 8 (New sprites)'], - ['overview/inventory', 'inventory', 'Inventory'] + ['overview/inventory', 'inventory', 'Inventory'], + ['overview/misc', 'misc', 'Miscellaneous'] ] menu_links = ['
  • %s
  • ' % (docs_url(item[0]), 'curr' if item[1] == curr_page else '', item[2]) for item in menu] return ''.join(menu_links) @@ -156,14 +173,15 @@ def wrap_in_html(content, title, version, commit, res_dir = '.'): - PokéSprite - %(title)s + PokéSprite%(title)s - + + %(content)s @@ -172,7 +190,7 @@ def wrap_in_html(content, title, version, commit, res_dir = '.'): '''.strip() % { 'res_dir': res_dir, 'content': content, - 'title': title, + 'title': ' - ' + title if title else '', 'version': version, 'commit': commit } @@ -219,8 +237,9 @@ def read_data(): return { 'dex': read_json_file(DEX_JSON), 'itm': read_json_file(ITM_JSON), + 'misc': read_json_file(MSC_JSON), 'itm_unl': read_json_file(ITM_UNL_JSON), - 'inv': read_json_file(INVENTORY_JSON), + 'meta': read_json_file(META_JSON), 'etc': read_json_file(ETC_JSON) } @@ -274,6 +293,13 @@ def get_itm_url(base, ns, group, file): '.png' ]) +def get_misc_url(base, file): + return ''.join([ + base, + '/misc/', + file + ]) + def get_pkm_gen(is_prev_gen_icon, docs_gen): prev_gen = str(int(docs_gen) - 1) if is_prev_gen_icon: @@ -312,8 +338,11 @@ def get_td_node(td): attr = ' class="image"' if str(td)[:4] == '{td}' -def get_img_node(url, name, form_name, type): - return f'{form_name}' +def get_img_node(url, name, form_name, type, retina_type = None): + form_name = html.escape(form_name) + cls = [type, 'retina-' + retina_type if retina_type else ''] + cls = ' '.join(cls).strip() + return f'{form_name}' def reset_counter(): '''Resets the global sprite counter''' @@ -359,6 +388,121 @@ def append_pkm_form(cols, base, slug_display, slug_file, form_name, form_alias, if has_female and add_female: append_pkm(cols, base, slug_display, slug_file, form_name, form_alias, has_female, True, False, is_unofficial_icon, is_prev_gen_icon, docs_gen) if has_right and add_right: append_pkm(cols, base, slug_display, slug_file, form_name, form_alias, has_female, False, True, is_unofficial_icon, is_prev_gen_icon, docs_gen) +def generate_misc_table(misc, meta, curr_page, json_file, version = '[unknown]', commit = '[unknown]'): + '''Generates a documentation table for miscellaneous sprites''' + # Note: this table works slightly different than the rest. + # Instead of having one , it has many of them, + # each one containing one item with potentially multiple sprites. + reset_counter() + groups = meta['misc-groups'] + order = ['ribbon', 'body-style'] + base_url = REPO_BASE_URL + + # List of items to display in the opening text. + page_content_list = ['
  • ' + groups[group]['name']['eng'] + '
  • ' for group in order] + + sprites_counter = 0 + + buffer = [] + buffer.append('') + buffer.append('Miscellaneous sprite overview table
    pokesprite-images v%(version)s %(commit)s' % { 'version': version, 'commit': commit }) + buffer.append('') + buffer.append('') + + # Ribbons + buffer.append('') + buffer.append('%s' % groups['ribbon']['name']['eng']) + buffer.append('') + buffer.append('') + buffer.append('#Name名前OriginSpriteFilename/gen') + buffer.append('') + + for item in misc['ribbon']: + name = item['name'] + name_eng = name['eng'] + name_jpn = name['jpn'] + name_jpn_ro = name['jpn_ro'] + origin_gen = item['origin_gen'] + desc = item['description'] + desc_eng = desc['eng'] + desc_gen = desc['from_gen'] + desc_eng_esc = html.escape(desc_eng) + name_eng_desc = f'{name_eng}' + row_n = 0 + files = item['files'].items() + buffer.append('') + for k, v in files: + count = get_counter() + gen_n = k.split('-')[1] + buffer.append('') + buffer.append(f'{count}') + if row_n == 0: + rows = len(files) + rowspan = f' rowspan="{rows}"' if rows > 1 else '' + buffer.append(f'{name_eng_desc}') + buffer.append(f'{name_jpn}') + buffer.append(f'Gen {origin_gen}') + buffer.append('' + get_img_node(get_misc_url(base_url, v), None, f"Sprite for '{name_eng}'", 'm', 'ribbon-gen8' if gen_n == '8' else None) + '') + buffer.append(f'{v}') + buffer.append(f'Gen {gen_n}') + buffer.append('') + sprites_counter += 1 + row_n += 1 + buffer.append('') + + # Body styles + buffer.append('') + buffer.append('%s' % groups['body-style']['name']['eng']) + buffer.append('') + buffer.append('') + buffer.append('#Type種類SpriteFilename/gen') + buffer.append('') + + for item in misc['body-style']: + name = item['name'] + name_eng = name['eng'] + name_jpn = name['jpn'] + row_n = 0 + files = item['files'].items() + buffer.append('') + for k, v in files: + count = get_counter() + gen_n = k.split('-')[1] + buffer.append('') + buffer.append(f'{count}') + if row_n == 0: + rows = len(files) + rowspan = f' rowspan="{rows}"' if rows > 1 else '' + buffer.append(f'{name_eng}') + buffer.append(f'{name_jpn}') + buffer.append('' + get_img_node(get_misc_url(base_url, v), None, f"Sprite for '{name_eng}'", 'm', 'body-style-gen8') + '') + buffer.append(f'{v}') + buffer.append(f'Gen {gen_n}') + buffer.append('') + sprites_counter += 1 + row_n += 1 + buffer.append('') + + buffer.append('') + buffer.append('') + buffer.append(''' + + +
    +

    Note: for consistency and ease of use, several edits have been made to the ribbons:

    +
      +
    • ribbons from Gen 3 have had their sizes padded to 40×40 (up from 32×32 originally);
    • +
    • ribbons from Gen 3 and 4 have had their gamma curve adjusted to be identical to that of the later gens.
    • +
    +

    The higher resolution sprites from Gen 8 have not been resized; they're just being displayed at a smaller size in this preview.

    +
    + + ''') + buffer.append('') + buffer.append('') + + return wrap_docs_page('\n'.join(buffer), None, None, curr_page, json_file, 'Miscellaneous sprites', False, True, version, commit, sprites_counter, False, page_content_list) + def generate_items_table(itm, itm_unl, inv, etc, dirs, curr_page, json_file, version = '[unknown]', commit = '[unknown]'): '''Generates a documentation table for inventory sprites''' reset_counter() @@ -386,9 +530,9 @@ def generate_items_table(itm, itm_unl, inv, etc, dirs, curr_page, json_file, ver type = { 'name': name, 'id': None, 'linked': False, 'type': details['type'], 'dupe_id': details.get('of', {}).get('item_id') } of_file = details.get('of', {}).get('file') if details['type'] == 'duplicate' and of_file: - type['expl'] = f'Duplicate of {of_file}' + type['expl'] = f'Duplicate of "{of_file}"' if details['type'] == 'specific' and of_file: - type['expl'] = f'Subitem of {of_file}' + type['expl'] = f'Subitem of "{of_file}"' item_dict[group].append(type) for group, items in item_dict.items(): @@ -397,14 +541,14 @@ def generate_items_table(itm, itm_unl, inv, etc, dirs, curr_page, json_file, ver for group, items in item_dict.items(): if not len(items): continue title = inv['item-groups'].get(group, None) - title = title['name'] if title else group.title() + title = title['name']['eng'] if title else group.title() buffer.append(f'{title}') for item in items: count = get_counter() name = item['name'] id = item['id'] expl = item.get('expl', False) - imgs = ['' + get_img_node(get_itm_url(base_url, dir, group, name), None, f'"{name}" (dir)', 'i') + '' for dir in dirs] + imgs = ['' + get_img_node(get_itm_url(base_url, dir, group, name), None, f'"{name}" ({dir})', 'i') + '' for dir in dirs] filename = group + '/' + name + '.png' buffer.append('') buffer.append(f'{count}') @@ -416,7 +560,8 @@ def generate_items_table(itm, itm_unl, inv, etc, dirs, curr_page, json_file, ver buffer.append(''.join(imgs)) buffer.append(f'{group}') if expl: - buffer.append(f'{filename} ({expl})') + expl_esc = html.escape(expl) + buffer.append(f'{filename}') else: buffer.append(f'{filename}') buffer.append('') @@ -429,13 +574,15 @@ def generate_items_table(itm, itm_unl, inv, etc, dirs, curr_page, json_file, ver buffer.append(''' - Note: item IDs are accurate only for the latest Pokémon game.
    - Only filenames are available, not proper item names or aliases (hence some items appear multiple times). This will be fixed in a future release. +
    +

    Note: item IDs are accurate only for the latest Pokémon game.

    +

    Only filenames are available, not proper item names or aliases (hence some items appear multiple times). This will be fixed in a future release.

    +
    ''') buffer.append('') buffer.append('') - return wrap_docs_page('\n'.join(buffer), None, None, curr_page, json_file, True, version, commit, sprites_counter, new_sprites_only) + return wrap_docs_page('\n'.join(buffer), None, None, curr_page, json_file, 'Inventory item sprites', True, False, version, commit, sprites_counter, new_sprites_only, None) def generate_dex_table(dex, etc, gen, gen_dir, curr_page, json_file, add_female = True, add_right = False, version = '[unknown]', commit = '[unknown]'): '''Generates a documentation table for Pokémon sprites''' @@ -541,13 +688,15 @@ def generate_dex_table(dex, etc, gen, gen_dir, curr_page, json_file, add_female buffer.append(''' - †: form is an alias of another form and doesn't have a separate image.
    - ‡: this icon is unofficial (not directly lifted from the games; only applies to non-shiny sprites, as shiny sprites are all unofficial). +
    +

    †: form is an alias of another form and doesn't have a separate image.

    +

    ‡: this icon is unofficial (not directly lifted from the games; only applies to non-shiny sprites, as shiny sprites are all unofficial).

    +
    ''') buffer.append('') buffer.append('') - return wrap_docs_page('\n'.join(buffer), gen, gen_dir, curr_page, json_file, False, version, commit, sprites_counter, new_sprites_only) + return wrap_docs_page('\n'.join(buffer), gen, gen_dir, curr_page, json_file, None, False, False, version, commit, sprites_counter, new_sprites_only, None) def main(): '''Generates several documentation files for the /docs directory''' @@ -558,7 +707,8 @@ def main(): write_file(f'{TARGET_DIR}/overview/dex-gen7.html', generate_dex_table(json_data['dex'], json_data['etc'], 7, 'pokemon-gen7x', 'dex-gen7', 'pokemon.json', True, False, version, commit)) write_file(f'{TARGET_DIR}/overview/dex-gen8.html', generate_dex_table(json_data['dex'], json_data['etc'], 8, 'pokemon-gen8', 'dex-gen8', 'pokemon.json', True, False, version, commit)) write_file(f'{TARGET_DIR}/overview/dex-gen8-new.html', generate_dex_table(json_data['dex'], json_data['etc'], 8, 'pokemon-gen8', 'dex-gen8-new', 'pokemon.json', True, False, version, commit)) - write_file(f'{TARGET_DIR}/overview/inventory.html', generate_items_table(json_data['itm'], json_data['itm_unl'], json_data['inv'], json_data['etc'], ['items', 'items-outline'], 'inventory', 'item-map.json', version, commit)) + write_file(f'{TARGET_DIR}/overview/inventory.html', generate_items_table(json_data['itm'], json_data['itm_unl'], json_data['meta'], json_data['etc'], ['items', 'items-outline'], 'inventory', 'item-map.json', version, commit)) + write_file(f'{TARGET_DIR}/overview/misc.html', generate_misc_table(json_data['misc'], json_data['meta'], 'misc', 'misc.json', version, commit)) write_file(f'{TARGET_DIR}/index.html', generate_index_page(version, commit)) if __name__== "__main__":