diff --git a/README.md b/README.md index 0445228..cc88dfe 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ The API Hashing service is a paid service that allows third party Pokémon GO de * [cyraxx](https://github.com/cyraxx) for [pogobuf](https://github.com/cyraxx/pogobuf) and [node-pogo-protos](https://github.com/cyraxx/node-pogo-protos) * [AeonLucid](https://github.com/AeonLucid) for [POGOProtos](https://github.com/AeonLucid/POGOProtos) * [PkParaíso](https://www.pkparaiso.com) for the [animated sprites](https://www.pkparaiso.com/xy/sprites_pokemon.php), licensed under [CC BY-NC-ND 3.0](https://creativecommons.org/licenses/by-nc-nd/3.0/) +* [Ryan Kane](https://github.com/ryankane) for the [candy images and colors](http://rmkane.com/experiment/pokemon/candy/) ## Legal This Project is in no way affiliated with, authorized, maintained, sponsored or endorsed by Niantic, The Pokémon Company, Nintendo or any of its affiliates or subsidiaries. This is an independent and unofficial API for educational use ONLY. Using the Project might be against the TOS diff --git a/app/app.global.css b/app/app.global.css index cde658a..5e0ebee 100644 --- a/app/app.global.css +++ b/app/app.global.css @@ -549,6 +549,19 @@ color: #32b741; color: #3c605c; } +#pokemon_candy_icon { + height: 24px; + width: 24px; + position: relative; + bottom: -6px; + margin-right: 4px; + display: inline-block; +} + +#pokemon_candy_icon canvas { + max-width: 24px; +} + #pokemon_evolve_info { display: block; width: 100%; diff --git a/app/imgs/candy/candy_base_color.png b/app/imgs/candy/candy_base_color.png new file mode 100644 index 0000000..b24f828 Binary files /dev/null and b/app/imgs/candy/candy_base_color.png differ diff --git a/app/imgs/candy/candy_highlight.png b/app/imgs/candy/candy_highlight.png new file mode 100644 index 0000000..207e49e Binary files /dev/null and b/app/imgs/candy/candy_highlight.png differ diff --git a/app/imgs/candy/candy_secondary_color.png b/app/imgs/candy/candy_secondary_color.png new file mode 100644 index 0000000..7c4d1af Binary files /dev/null and b/app/imgs/candy/candy_secondary_color.png differ diff --git a/app/imgs/candy/colors.csv b/app/imgs/candy/colors.csv new file mode 100644 index 0000000..39eecb2 --- /dev/null +++ b/app/imgs/candy/colors.csv @@ -0,0 +1,132 @@ +id pokemon primaryColor secondaryColor verified +1 Bulbasaur #36C8A4 #A3FB83 TRUE +2 Charmander #F09230 #FFE699 TRUE +3 Squirtle #85C4D6 #F2E8BE TRUE +4 Caterpie #A5CD87 #FAE3B1 TRUE +5 Weedle #E7BC83 #DB76AD TRUE +6 Pidgey #E9E0B7 #D29E65 TRUE +7 Rattata #A989BA #D9D7BE TRUE +8 Spearow #EBB9A0 #FE5D6C TRUE +9 Ekans #CBA8C9 #F1E090 TRUE +10 Pikachu #F5D368 #E2A65D TRUE +11 Sandshrew #E0D2A4 #C9B180 TRUE +12 Nidoran F #C5D3E4 #9697C5 TRUE +13 Nidoran M #D59FC1 #C37096 TRUE +14 Clefairy #F1D3D1 #F1BFC0 TRUE +15 Vulpix #F5865E #F6D29C TRUE +16 Jigglypuff #F1D2E1 #EAB9CE TRUE +17 Zubat #478ABF #DC8DD7 TRUE +18 Oddish #7095BF #75C06B TRUE +19 Paras #F1873D #FFD159 TRUE +20 Venonat #998FD6 #E24379 TRUE +21 Diglett #B08570 #EEC5DC TRUE +22 Meowth #ECE0C4 #FFE28A TRUE +23 Psyduck #F4C487 #EEEED8 TRUE +24 Mankey #E5D6CB #C3927F TRUE +25 Growlithe #F3A056 #3F3D2A TRUE +26 Poliwag #849FCA #ECECF6 TRUE +27 Abra #E5CE5C #8E7994 TRUE +28 Machop #A1BBDE #DCCEB1 TRUE +29 Bellsprout #EBE16E #AFD57E TRUE +30 Tentacool #71ACD8 #C24589 TRUE +31 Geodude #ACA078 #756108 TRUE +32 Ponyta #EDE7C7 #F59062 TRUE +33 Slowpoke #DFA1B9 #EEE1C7 TRUE +34 Magnemite #D0DAE0 #92B6C6 TRUE +35 Farfetch'd #AC9E95 #95FB97 TRUE +36 Doduo #C89462 #AF755F TRUE +37 Seel #C7DFE8 #B6CAED TRUE +38 Grimer #BFA4C7 #5F5370 TRUE +39 Shellder #AB9CC5 #E0B5B3 TRUE +40 Gastly #242223 #9B7FB7 TRUE +41 Onix #B5B6B8 #626264 TRUE +42 Drowzee #F8CB58 #AF7961 TRUE +43 Krabby #EB9063 #EDD9CE TRUE +44 Voltorb #B64656 #F0E5EA TRUE +45 Exeggcute #F4DDE7 #EFC3C1 TRUE +46 Cubone #D4D5D6 #CBB57A TRUE +47 Hitmonlee #BD9F88 #EEE1C7 TRUE +48 Hitmonchan #C8ABBB #E4643B TRUE +49 Lickitung #E3AEB9 #F0E4CA TRUE +50 Koffing #8B8FAE #DEE0BF TRUE +51 Rhyhorn #BCBDBF #959CA2 TRUE +52 Chansey #E0AEB2 #C68D87 TRUE +53 Tangela #666C9D #E46E8C TRUE +54 Kangaskhan #978781 #E3DDB8 TRUE +55 Horsea #9FCFE9 #FCF7D7 TRUE +56 Goldeen #E6E6E7 #F38469 TRUE +57 Staryu #B49569 #F5E688 TRUE +58 Mr_Mime #E56387 #FFCED5 TRUE +59 Scyther #92C587 #F6F0CF TRUE +60 Jynx #C44552 #643187 TRUE +61 Electabuzz #F5DB77 #14175E TRUE +62 Magmar #F5D477 #F0664E TRUE +63 Pinsir #BCB1AB #CFD4D8 TRUE +64 Tauros #D8A058 #887E6F TRUE +65 Magikarp #E87839 #F6F0CF TRUE +66 Lapras #6BA7D4 #FFF0DA TRUE +67 Ditto #F2ABC0 #DA74AC TRUE +68 Eevee #CA9761 #7E5621 TRUE +69 Porygon #E7757C #6BC7C5 TRUE +70 Omanyte #DDDCCC #73CEE2 TRUE +71 Kabuto #C18335 #4E4E48 TRUE +72 Aerodactyl #D4BAD3 #B196C5 TRUE +73 Snorlax #326583 #E3DACE TRUE +74 Articuno #8dc0e6 #5b99bb TRUE +75 Zapdos #f8de8a #af9354 TRUE +76 Moltres #fccf81 #e6845f TRUE +77 Dratini #90AED4 #EFEAE6 TRUE +78 Mewtwo #c8d3ea #8d96b5 TRUE +79 Mew #eedfe9 #e7bbce TRUE +80 Chikorita #CBDAAE #86C07C TRUE +81 Cyndaquil #185E62 #EED9AC TRUE +82 Totodile #96B8C1 #BF8390 TRUE +83 Sentret #AA8374 #FDFAEE TRUE +84 Hoothoot #A88F77 #3A3836 TRUE +85 Ledyba #E4845F #291F1D TRUE +86 Spinarak #A4D08C #F6DA8C TRUE +87 Chinchou #728ABD #EEDC9D TRUE +88 Togepi #EADEB2 #BDC4CE TRUE +89 Natu #85BD57 #E9CA67 TRUE +90 Mareep #F2E5C2 #5A84B1 TRUE +91 Marill #52B3E4 #E1F4F6 TRUE +92 Sudowoodo #AE9F85 #88AB72 TRUE +93 Hoppip #EB92A8 #A8CF86 TRUE +94 Aipom #BA9DB7 #DBC4B1 TRUE +95 Sunkern #EAD887 #83B177 TRUE +96 Yanma #BC836F #A6AD72 TRUE +97 Wooper #97C3DA #B593A0 TRUE +98 Murkrow #3B5670 #F0D3A4 TRUE +99 Misdreavus #8994A0 #B97F85 TRUE +100 Unown #51626E #CED6E0 TRUE +101 Wobbuffet #54ADC9 #2E2F33 TRUE +102 Girafarig #E7AB3D #39281F TRUE +103 Pineco #1A4146 #8FABA0 TRUE +104 Dunsparce #F2DF93 #4B908C TRUE +105 Gligar #D18EB2 #598ABC TRUE +106 Snubbull #E78C96 #3B2F2D TRUE +107 Qwilfish #4A7471 #E5EAB4 TRUE +108 Shuckle #942D2B #F5CF6C TRUE +109 Heracross #2B5978 #93AFC1 TRUE +110 Sneasel #5F8795 #D76B68 TRUE +111 Teddiursa #E09659 #FBE699 TRUE +112 Slugma #E69881 #F4CC94 TRUE +113 Swinub #B28B73 #D88C89 TRUE +114 Corsola #e697a2 #ccd5db TRUE +115 Remoraid #AEC8B7 #709687 TRUE +116 Delibird #FFFFFF #000000 FALSE +117 Mantine #425161 #EDDEE8 TRUE +118 Skarmory #D2D9E9 #923A3B TRUE +119 Houndour #867770 #B5816C TRUE +120 Phanpy #9CCFCF #D06D52 TRUE +121 Stantler #BB9780 #EDDE9A TRUE +122 Smeargle #FFFFFF #000000 TRUE +123 Tyrogue #D7C1D0 #926E4A TRUE +124 Miltank #F1BABE #EEE0B7 TRUE +125 Raikou #FFFFFF #000000 FALSE +126 Entei #FFFFFF #000000 FALSE +127 Suicune #FFFFFF #000000 FALSE +128 Larvitar #B5BF96 #595755 TRUE +129 Lugia #FFFFFF #000000 FALSE +130 Ho-oh #FFFFFF #000000 FALSE +131 Celebi #FFFFFF #000000 FALSE diff --git a/app/imgs/candy/colors.json b/app/imgs/candy/colors.json new file mode 100644 index 0000000..cada019 --- /dev/null +++ b/app/imgs/candy/colors.json @@ -0,0 +1,788 @@ +{ + "1": { + "pokemon": "Bulbasaur", + "primaryColor": "#36C8A4", + "secondaryColor": "#A3FB83", + "verified": "TRUE" + }, + "4": { + "pokemon": "Charmander", + "primaryColor": "#F09230", + "secondaryColor": "#FFE699", + "verified": "TRUE" + }, + "7": { + "pokemon": "Squirtle", + "primaryColor": "#85C4D6", + "secondaryColor": "#F2E8BE", + "verified": "TRUE" + }, + "10": { + "pokemon": "Caterpie", + "primaryColor": "#A5CD87", + "secondaryColor": "#FAE3B1", + "verified": "TRUE" + }, + "13": { + "pokemon": "Weedle", + "primaryColor": "#E7BC83", + "secondaryColor": "#DB76AD", + "verified": "TRUE" + }, + "16": { + "pokemon": "Pidgey", + "primaryColor": "#E9E0B7", + "secondaryColor": "#D29E65", + "verified": "TRUE" + }, + "19": { + "pokemon": "Rattata", + "primaryColor": "#A989BA", + "secondaryColor": "#D9D7BE", + "verified": "TRUE" + }, + "21": { + "pokemon": "Spearow", + "primaryColor": "#EBB9A0", + "secondaryColor": "#FE5D6C", + "verified": "TRUE" + }, + "23": { + "pokemon": "Ekans", + "primaryColor": "#CBA8C9", + "secondaryColor": "#F1E090", + "verified": "TRUE" + }, + "25": { + "pokemon": "Pikachu", + "primaryColor": "#F5D368", + "secondaryColor": "#E2A65D", + "verified": "TRUE" + }, + "27": { + "pokemon": "Sandshrew", + "primaryColor": "#E0D2A4", + "secondaryColor": "#C9B180", + "verified": "TRUE" + }, + "29": { + "pokemon": "Nidoran F", + "primaryColor": "#C5D3E4", + "secondaryColor": "#9697C5", + "verified": "TRUE" + }, + "32": { + "pokemon": "Nidoran M", + "primaryColor": "#D59FC1", + "secondaryColor": "#C37096", + "verified": "TRUE" + }, + "35": { + "pokemon": "Clefairy", + "primaryColor": "#F1D3D1", + "secondaryColor": "#F1BFC0", + "verified": "TRUE" + }, + "37": { + "pokemon": "Vulpix", + "primaryColor": "#F5865E", + "secondaryColor": "#F6D29C", + "verified": "TRUE" + }, + "39": { + "pokemon": "Jigglypuff", + "primaryColor": "#F1D2E1", + "secondaryColor": "#EAB9CE", + "verified": "TRUE" + }, + "41": { + "pokemon": "Zubat", + "primaryColor": "#478ABF", + "secondaryColor": "#DC8DD7", + "verified": "TRUE" + }, + "43": { + "pokemon": "Oddish", + "primaryColor": "#7095BF", + "secondaryColor": "#75C06B", + "verified": "TRUE" + }, + "46": { + "pokemon": "Paras", + "primaryColor": "#F1873D", + "secondaryColor": "#FFD159", + "verified": "TRUE" + }, + "48": { + "pokemon": "Venonat", + "primaryColor": "#998FD6", + "secondaryColor": "#E24379", + "verified": "TRUE" + }, + "50": { + "pokemon": "Diglett", + "primaryColor": "#B08570", + "secondaryColor": "#EEC5DC", + "verified": "TRUE" + }, + "52": { + "pokemon": "Meowth", + "primaryColor": "#ECE0C4", + "secondaryColor": "#FFE28A", + "verified": "TRUE" + }, + "54": { + "pokemon": "Psyduck", + "primaryColor": "#F4C487", + "secondaryColor": "#EEEED8", + "verified": "TRUE" + }, + "56": { + "pokemon": "Mankey", + "primaryColor": "#E5D6CB", + "secondaryColor": "#C3927F", + "verified": "TRUE" + }, + "58": { + "pokemon": "Growlithe", + "primaryColor": "#F3A056", + "secondaryColor": "#3F3D2A", + "verified": "TRUE" + }, + "60": { + "pokemon": "Poliwag", + "primaryColor": "#849FCA", + "secondaryColor": "#ECECF6", + "verified": "TRUE" + }, + "63": { + "pokemon": "Abra", + "primaryColor": "#E5CE5C", + "secondaryColor": "#8E7994", + "verified": "TRUE" + }, + "66": { + "pokemon": "Machop", + "primaryColor": "#A1BBDE", + "secondaryColor": "#DCCEB1", + "verified": "TRUE" + }, + "69": { + "pokemon": "Bellsprout", + "primaryColor": "#EBE16E", + "secondaryColor": "#AFD57E", + "verified": "TRUE" + }, + "72": { + "pokemon": "Tentacool", + "primaryColor": "#71ACD8", + "secondaryColor": "#C24589", + "verified": "TRUE" + }, + "74": { + "pokemon": "Geodude", + "primaryColor": "#ACA078", + "secondaryColor": "#756108", + "verified": "TRUE" + }, + "77": { + "pokemon": "Ponyta", + "primaryColor": "#EDE7C7", + "secondaryColor": "#F59062", + "verified": "TRUE" + }, + "79": { + "pokemon": "Slowpoke", + "primaryColor": "#DFA1B9", + "secondaryColor": "#EEE1C7", + "verified": "TRUE" + }, + "81": { + "pokemon": "Magnemite", + "primaryColor": "#D0DAE0", + "secondaryColor": "#92B6C6", + "verified": "TRUE" + }, + "83": { + "pokemon": "Farfetch'd", + "primaryColor": "#AC9E95", + "secondaryColor": "#95FB97", + "verified": "TRUE" + }, + "84": { + "pokemon": "Doduo", + "primaryColor": "#C89462", + "secondaryColor": "#AF755F", + "verified": "TRUE" + }, + "86": { + "pokemon": "Seel", + "primaryColor": "#C7DFE8", + "secondaryColor": "#B6CAED", + "verified": "TRUE" + }, + "88": { + "pokemon": "Grimer", + "primaryColor": "#BFA4C7", + "secondaryColor": "#5F5370", + "verified": "TRUE" + }, + "90": { + "pokemon": "Shellder", + "primaryColor": "#AB9CC5", + "secondaryColor": "#E0B5B3", + "verified": "TRUE" + }, + "92": { + "pokemon": "Gastly", + "primaryColor": "#242223", + "secondaryColor": "#9B7FB7", + "verified": "TRUE" + }, + "95": { + "pokemon": "Onix", + "primaryColor": "#B5B6B8", + "secondaryColor": "#626264", + "verified": "TRUE" + }, + "96": { + "pokemon": "Drowzee", + "primaryColor": "#F8CB58", + "secondaryColor": "#AF7961", + "verified": "TRUE" + }, + "98": { + "pokemon": "Krabby", + "primaryColor": "#EB9063", + "secondaryColor": "#EDD9CE", + "verified": "TRUE" + }, + "100": { + "pokemon": "Voltorb", + "primaryColor": "#B64656", + "secondaryColor": "#F0E5EA", + "verified": "TRUE" + }, + "102": { + "pokemon": "Exeggcute", + "primaryColor": "#F4DDE7", + "secondaryColor": "#EFC3C1", + "verified": "TRUE" + }, + "104": { + "pokemon": "Cubone", + "primaryColor": "#D4D5D6", + "secondaryColor": "#CBB57A", + "verified": "TRUE" + }, + "106": { + "pokemon": "Hitmonlee", + "primaryColor": "#BD9F88", + "secondaryColor": "#EEE1C7", + "verified": "TRUE" + }, + "107": { + "pokemon": "Hitmonchan", + "primaryColor": "#C8ABBB", + "secondaryColor": "#E4643B", + "verified": "TRUE" + }, + "108": { + "pokemon": "Lickitung", + "primaryColor": "#E3AEB9", + "secondaryColor": "#F0E4CA", + "verified": "TRUE" + }, + "109": { + "pokemon": "Koffing", + "primaryColor": "#8B8FAE", + "secondaryColor": "#DEE0BF", + "verified": "TRUE" + }, + "111": { + "pokemon": "Rhyhorn", + "primaryColor": "#BCBDBF", + "secondaryColor": "#959CA2", + "verified": "TRUE" + }, + "113": { + "pokemon": "Chansey", + "primaryColor": "#E0AEB2", + "secondaryColor": "#C68D87", + "verified": "TRUE" + }, + "114": { + "pokemon": "Tangela", + "primaryColor": "#666C9D", + "secondaryColor": "#E46E8C", + "verified": "TRUE" + }, + "115": { + "pokemon": "Kangaskhan", + "primaryColor": "#978781", + "secondaryColor": "#E3DDB8", + "verified": "TRUE" + }, + "116": { + "pokemon": "Horsea", + "primaryColor": "#9FCFE9", + "secondaryColor": "#FCF7D7", + "verified": "TRUE" + }, + "118": { + "pokemon": "Goldeen", + "primaryColor": "#E6E6E7", + "secondaryColor": "#F38469", + "verified": "TRUE" + }, + "120": { + "pokemon": "Staryu", + "primaryColor": "#B49569", + "secondaryColor": "#F5E688", + "verified": "TRUE" + }, + "122": { + "pokemon": "Mr_Mime", + "primaryColor": "#E56387", + "secondaryColor": "#FFCED5", + "verified": "TRUE" + }, + "123": { + "pokemon": "Scyther", + "primaryColor": "#92C587", + "secondaryColor": "#F6F0CF", + "verified": "TRUE" + }, + "124": { + "pokemon": "Jynx", + "primaryColor": "#C44552", + "secondaryColor": "#643187", + "verified": "TRUE" + }, + "125": { + "pokemon": "Electabuzz", + "primaryColor": "#F5DB77", + "secondaryColor": "#14175E", + "verified": "TRUE" + }, + "126": { + "pokemon": "Magmar", + "primaryColor": "#F5D477", + "secondaryColor": "#F0664E", + "verified": "TRUE" + }, + "127": { + "pokemon": "Pinsir", + "primaryColor": "#BCB1AB", + "secondaryColor": "#CFD4D8", + "verified": "TRUE" + }, + "128": { + "pokemon": "Tauros", + "primaryColor": "#D8A058", + "secondaryColor": "#887E6F", + "verified": "TRUE" + }, + "129": { + "pokemon": "Magikarp", + "primaryColor": "#E87839", + "secondaryColor": "#F6F0CF", + "verified": "TRUE" + }, + "131": { + "pokemon": "Lapras", + "primaryColor": "#6BA7D4", + "secondaryColor": "#FFF0DA", + "verified": "TRUE" + }, + "132": { + "pokemon": "Ditto", + "primaryColor": "#F2ABC0", + "secondaryColor": "#DA74AC", + "verified": "TRUE" + }, + "133": { + "pokemon": "Eevee", + "primaryColor": "#CA9761", + "secondaryColor": "#7E5621", + "verified": "TRUE" + }, + "137": { + "pokemon": "Porygon", + "primaryColor": "#E7757C", + "secondaryColor": "#6BC7C5", + "verified": "TRUE" + }, + "138": { + "pokemon": "Omanyte", + "primaryColor": "#DDDCCC", + "secondaryColor": "#73CEE2", + "verified": "TRUE" + }, + "140": { + "pokemon": "Kabuto", + "primaryColor": "#C18335", + "secondaryColor": "#4E4E48", + "verified": "TRUE" + }, + "142": { + "pokemon": "Aerodactyl", + "primaryColor": "#D4BAD3", + "secondaryColor": "#B196C5", + "verified": "TRUE" + }, + "143": { + "pokemon": "Snorlax", + "primaryColor": "#326583", + "secondaryColor": "#E3DACE", + "verified": "TRUE" + }, + "144": { + "pokemon": "Articuno", + "primaryColor": "#8dc0e6", + "secondaryColor": "#5b99bb", + "verified": "TRUE" + }, + "145": { + "pokemon": "Zapdos", + "primaryColor": "#f8de8a", + "secondaryColor": "#af9354", + "verified": "TRUE" + }, + "146": { + "pokemon": "Moltres", + "primaryColor": "#fccf81", + "secondaryColor": "#e6845f", + "verified": "TRUE" + }, + "147": { + "pokemon": "Dratini", + "primaryColor": "#90AED4", + "secondaryColor": "#EFEAE6", + "verified": "TRUE" + }, + "150": { + "pokemon": "Mewtwo", + "primaryColor": "#c8d3ea", + "secondaryColor": "#8d96b5", + "verified": "TRUE" + }, + "151": { + "pokemon": "Mew", + "primaryColor": "#eedfe9", + "secondaryColor": "#e7bbce", + "verified": "TRUE" + }, + "152": { + "pokemon": "Chikorita", + "primaryColor": "#CBDAAE", + "secondaryColor": "#86C07C", + "verified": "TRUE" + }, + "155": { + "pokemon": "Cyndaquil", + "primaryColor": "#185E62", + "secondaryColor": "#EED9AC", + "verified": "TRUE" + }, + "158": { + "pokemon": "Totodile", + "primaryColor": "#96B8C1", + "secondaryColor": "#BF8390", + "verified": "TRUE" + }, + "161": { + "pokemon": "Sentret", + "primaryColor": "#AA8374", + "secondaryColor": "#FDFAEE", + "verified": "TRUE" + }, + "163": { + "pokemon": "Hoothoot", + "primaryColor": "#A88F77", + "secondaryColor": "#3A3836", + "verified": "TRUE" + }, + "165": { + "pokemon": "Ledyba", + "primaryColor": "#E4845F", + "secondaryColor": "#291F1D", + "verified": "TRUE" + }, + "167": { + "pokemon": "Spinarak", + "primaryColor": "#A4D08C", + "secondaryColor": "#F6DA8C", + "verified": "TRUE" + }, + "170": { + "pokemon": "Chinchou", + "primaryColor": "#728ABD", + "secondaryColor": "#EEDC9D", + "verified": "TRUE" + }, + "175": { + "pokemon": "Togepi", + "primaryColor": "#EADEB2", + "secondaryColor": "#BDC4CE", + "verified": "TRUE" + }, + "177": { + "pokemon": "Natu", + "primaryColor": "#85BD57", + "secondaryColor": "#E9CA67", + "verified": "TRUE" + }, + "179": { + "pokemon": "Mareep", + "primaryColor": "#F2E5C2", + "secondaryColor": "#5A84B1", + "verified": "TRUE" + }, + "183": { + "pokemon": "Marill", + "primaryColor": "#52B3E4", + "secondaryColor": "#E1F4F6", + "verified": "TRUE" + }, + "185": { + "pokemon": "Sudowoodo", + "primaryColor": "#AE9F85", + "secondaryColor": "#88AB72", + "verified": "TRUE" + }, + "187": { + "pokemon": "Hoppip", + "primaryColor": "#EB92A8", + "secondaryColor": "#A8CF86", + "verified": "TRUE" + }, + "190": { + "pokemon": "Aipom", + "primaryColor": "#BA9DB7", + "secondaryColor": "#DBC4B1", + "verified": "TRUE" + }, + "191": { + "pokemon": "Sunkern", + "primaryColor": "#EAD887", + "secondaryColor": "#83B177", + "verified": "TRUE" + }, + "193": { + "pokemon": "Yanma", + "primaryColor": "#BC836F", + "secondaryColor": "#A6AD72", + "verified": "TRUE" + }, + "194": { + "pokemon": "Wooper", + "primaryColor": "#97C3DA", + "secondaryColor": "#B593A0", + "verified": "TRUE" + }, + "198": { + "pokemon": "Murkrow", + "primaryColor": "#3B5670", + "secondaryColor": "#F0D3A4", + "verified": "TRUE" + }, + "200": { + "pokemon": "Misdreavus", + "primaryColor": "#8994A0", + "secondaryColor": "#B97F85", + "verified": "TRUE" + }, + "201": { + "pokemon": "Unown", + "primaryColor": "#51626E", + "secondaryColor": "#CED6E0", + "verified": "TRUE" + }, + "202": { + "pokemon": "Wobbuffet", + "primaryColor": "#54ADC9", + "secondaryColor": "#2E2F33", + "verified": "TRUE" + }, + "203": { + "pokemon": "Girafarig", + "primaryColor": "#E7AB3D", + "secondaryColor": "#39281F", + "verified": "TRUE" + }, + "204": { + "pokemon": "Pineco", + "primaryColor": "#1A4146", + "secondaryColor": "#8FABA0", + "verified": "TRUE" + }, + "206": { + "pokemon": "Dunsparce", + "primaryColor": "#F2DF93", + "secondaryColor": "#4B908C", + "verified": "TRUE" + }, + "207": { + "pokemon": "Gligar", + "primaryColor": "#D18EB2", + "secondaryColor": "#598ABC", + "verified": "TRUE" + }, + "209": { + "pokemon": "Snubbull", + "primaryColor": "#E78C96", + "secondaryColor": "#3B2F2D", + "verified": "TRUE" + }, + "211": { + "pokemon": "Qwilfish", + "primaryColor": "#4A7471", + "secondaryColor": "#E5EAB4", + "verified": "TRUE" + }, + "213": { + "pokemon": "Shuckle", + "primaryColor": "#942D2B", + "secondaryColor": "#F5CF6C", + "verified": "TRUE" + }, + "214": { + "pokemon": "Heracross", + "primaryColor": "#2B5978", + "secondaryColor": "#93AFC1", + "verified": "TRUE" + }, + "215": { + "pokemon": "Sneasel", + "primaryColor": "#5F8795", + "secondaryColor": "#D76B68", + "verified": "TRUE" + }, + "216": { + "pokemon": "Teddiursa", + "primaryColor": "#E09659", + "secondaryColor": "#FBE699", + "verified": "TRUE" + }, + "218": { + "pokemon": "Slugma", + "primaryColor": "#E69881", + "secondaryColor": "#F4CC94", + "verified": "TRUE" + }, + "220": { + "pokemon": "Swinub", + "primaryColor": "#B28B73", + "secondaryColor": "#D88C89", + "verified": "TRUE" + }, + "222": { + "pokemon": "Corsola", + "primaryColor": "#e697a2", + "secondaryColor": "#ccd5db", + "verified": "TRUE" + }, + "223": { + "pokemon": "Remoraid", + "primaryColor": "#AEC8B7", + "secondaryColor": "#709687", + "verified": "TRUE" + }, + "225": { + "pokemon": "Delibird", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "226": { + "pokemon": "Mantine", + "primaryColor": "#425161", + "secondaryColor": "#EDDEE8", + "verified": "TRUE" + }, + "227": { + "pokemon": "Skarmory", + "primaryColor": "#D2D9E9", + "secondaryColor": "#923A3B", + "verified": "TRUE" + }, + "228": { + "pokemon": "Houndour", + "primaryColor": "#867770", + "secondaryColor": "#B5816C", + "verified": "TRUE" + }, + "231": { + "pokemon": "Phanpy", + "primaryColor": "#9CCFCF", + "secondaryColor": "#D06D52", + "verified": "TRUE" + }, + "234": { + "pokemon": "Stantler", + "primaryColor": "#BB9780", + "secondaryColor": "#EDDE9A", + "verified": "TRUE" + }, + "235": { + "pokemon": "Smeargle", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "TRUE" + }, + "236": { + "pokemon": "Tyrogue", + "primaryColor": "#D7C1D0", + "secondaryColor": "#926E4A", + "verified": "TRUE" + }, + "241": { + "pokemon": "Miltank", + "primaryColor": "#F1BABE", + "secondaryColor": "#EEE0B7", + "verified": "TRUE" + }, + "243": { + "pokemon": "Raikou", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "244": { + "pokemon": "Entei", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "245": { + "pokemon": "Suicune", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "246": { + "pokemon": "Larvitar", + "primaryColor": "#B5BF96", + "secondaryColor": "#595755", + "verified": "TRUE" + }, + "249": { + "pokemon": "Lugia", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "250": { + "pokemon": "Ho-oh", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + }, + "251": { + "pokemon": "Celebi", + "primaryColor": "#FFFFFF", + "secondaryColor": "#000000", + "verified": "FALSE" + } +} diff --git a/app/screens/Detail/components/ModalBody.js b/app/screens/Detail/components/ModalBody.js index e741bf3..d62f8ca 100644 --- a/app/screens/Detail/components/ModalBody.js +++ b/app/screens/Detail/components/ModalBody.js @@ -120,7 +120,16 @@ class ModalBody extends React.Component {
CP Per Upgrade
-
{candies}
+
+
+ {this.handleCandyIcon(pokemon)} +
+ {candies} +
{`${utils.getName(pokemon.family_id)} Candy`}
@@ -172,6 +181,107 @@ class ModalBody extends React.Component { } return imgPath } + + handleCandyIcon = (pokemon) => { + // http://rmkane.com/experiment/pokemon/candy/index.html + let imagesLoaded = 0 + + const WIDTH = 256 + const HEIGHT = 256 + const IMAGES = { + primaryColor: { + src: './imgs/candy/candy_base_color.png', + obj: null + }, + secondaryColor: { + src: './imgs/candy/candy_secondary_color.png', + obj: null + }, + highlight: { + src: './imgs/candy/candy_highlight.png', + obj: null + } + } + const COLORS = [utils.getCandyColor(pokemon.family_id)] + + function render(record, targetSelector) { + const layer = [ + createLayer(WIDTH, HEIGHT), + createLayer(WIDTH, HEIGHT), + createLayer(WIDTH, HEIGHT), + ] + + layer[0].drawImage(IMAGES.primaryColor.obj, 0, 0) + applyColorMask(layer[0], COLORS[0].primaryColor) + + layer[1].drawImage(IMAGES.secondaryColor.obj, 0, 0) + applyColorMask(layer[1], COLORS[0].secondaryColor) + + layer[0].drawImage(layer[1].canvas, 0, 0) + layer[0].drawImage(IMAGES.highlight.obj, 0, 0) + + const canvas = layer[0].canvas + document.getElementById(targetSelector).appendChild(canvas) + } + + function loadImages(images, callback) { + const keys = Object.keys(images) + for (let index = 0; index < keys.length; index++) { + loadImage(images[keys[index]], callback) + } + } + + function loadImage(image, callback) { + image.obj = new Image() + image.obj.onload = () => { + if (imagesLoaded++ >= Object.keys(IMAGES).length - 1) { + callback() + } + } + image.obj.src = image.src + } + + function createLayer(width, height) { + const layer = document.createElement('canvas') + layer.className = 'layer' + layer.width = width + layer.height = height || width + return layer.getContext('2d') + } + + function applyColorMask(ctx, color) { + if (color.indexOf('#') !== 0) color = `# ${color}` + const rgba = hexToRgbA(color) + const imgData = ctx.getImageData(0, 0, WIDTH, HEIGHT) + for (let byte = 0; byte < imgData.data.length; byte += 4) { + for (let p = 0; p < 4; p++) { + imgData.data[byte + p] = rgba[p] * (imgData.data[byte + p] / 255) + } + } + ctx.putImageData(imgData, 0, 0) + } + + function hexToRgbA(hex) { + if (/^#([A-F0-9]{3}){1,2}$/i.test(hex)) { + let c = hex.substring(1).split('') + if (c.length === 3) { + c = [c[0], c[0], c[1], c[1], c[2], c[2]] + } + c = parseInt(c.join(''), 16) + return [(c >> 16) & 0xFF, (c >> 8) & 0xFF, c & 0xFF, 0xFF] + } + } + + function onLoad(records) { + records.forEach(record => { + render(record, 'pokemon_candy_icon') + }) + } + + loadImages(IMAGES, () => { + onLoad(COLORS) + }) + } } export default ModalBody diff --git a/app/utils.js b/app/utils.js index 1cdc0af..2d2b526 100644 --- a/app/utils.js +++ b/app/utils.js @@ -127,6 +127,795 @@ const levelCpMultiplier = { 40.5: 0.7931164 } +const candyColors = { + 1: { + pokemon: 'Bulbasaur', + primaryColor: '#36C8A4', + secondaryColor: '#A3FB83', + verified: true + }, + 4: { + pokemon: 'Charmander', + primaryColor: '#F09230', + secondaryColor: '#FFE699', + verified: true + }, + 7: { + pokemon: 'Squirtle', + primaryColor: '#85C4D6', + secondaryColor: '#F2E8BE', + verified: true + }, + 10: { + pokemon: 'Caterpie', + primaryColor: '#A5CD87', + secondaryColor: '#FAE3B1', + verified: true + }, + 13: { + pokemon: 'Weedle', + primaryColor: '#E7BC83', + secondaryColor: '#DB76AD', + verified: true + }, + 16: { + pokemon: 'Pidgey', + primaryColor: '#E9E0B7', + secondaryColor: '#D29E65', + verified: true + }, + 19: { + pokemon: 'Rattata', + primaryColor: '#A989BA', + secondaryColor: '#D9D7BE', + verified: true + }, + 21: { + pokemon: 'Spearow', + primaryColor: '#EBB9A0', + secondaryColor: '#FE5D6C', + verified: true + }, + 23: { + pokemon: 'Ekans', + primaryColor: '#CBA8C9', + secondaryColor: '#F1E090', + verified: true + }, + 25: { + pokemon: 'Pikachu', + primaryColor: '#F5D368', + secondaryColor: '#E2A65D', + verified: true + }, + 27: { + pokemon: 'Sandshrew', + primaryColor: '#E0D2A4', + secondaryColor: '#C9B180', + verified: true + }, + 29: { + pokemon: 'Nidoran F', + primaryColor: '#C5D3E4', + secondaryColor: '#9697C5', + verified: true + }, + 32: { + pokemon: 'Nidoran M', + primaryColor: '#D59FC1', + secondaryColor: '#C37096', + verified: true + }, + 35: { + pokemon: 'Clefairy', + primaryColor: '#F1D3D1', + secondaryColor: '#F1BFC0', + verified: true + }, + 37: { + pokemon: 'Vulpix', + primaryColor: '#F5865E', + secondaryColor: '#F6D29C', + verified: true + }, + 39: { + pokemon: 'Jigglypuff', + primaryColor: '#F1D2E1', + secondaryColor: '#EAB9CE', + verified: true + }, + 41: { + pokemon: 'Zubat', + primaryColor: '#478ABF', + secondaryColor: '#DC8DD7', + verified: true + }, + 43: { + pokemon: 'Oddish', + primaryColor: '#7095BF', + secondaryColor: '#75C06B', + verified: true + }, + 46: { + pokemon: 'Paras', + primaryColor: '#F1873D', + secondaryColor: '#FFD159', + verified: true + }, + 48: { + pokemon: 'Venonat', + primaryColor: '#998FD6', + secondaryColor: '#E24379', + verified: true + }, + 50: { + pokemon: 'Diglett', + primaryColor: '#B08570', + secondaryColor: '#EEC5DC', + verified: true + }, + 52: { + pokemon: 'Meowth', + primaryColor: '#ECE0C4', + secondaryColor: '#FFE28A', + verified: true + }, + 54: { + pokemon: 'Psyduck', + primaryColor: '#F4C487', + secondaryColor: '#EEEED8', + verified: true + }, + 56: { + pokemon: 'Mankey', + primaryColor: '#E5D6CB', + secondaryColor: '#C3927F', + verified: true + }, + 58: { + pokemon: 'Growlithe', + primaryColor: '#F3A056', + secondaryColor: '#3F3D2A', + verified: true + }, + 60: { + pokemon: 'Poliwag', + primaryColor: '#849FCA', + secondaryColor: '#ECECF6', + verified: true + }, + 63: { + pokemon: 'Abra', + primaryColor: '#E5CE5C', + secondaryColor: '#8E7994', + verified: true + }, + 66: { + pokemon: 'Machop', + primaryColor: '#A1BBDE', + secondaryColor: '#DCCEB1', + verified: true + }, + 69: { + pokemon: 'Bellsprout', + primaryColor: '#EBE16E', + secondaryColor: '#AFD57E', + verified: true + }, + 72: { + pokemon: 'Tentacool', + primaryColor: '#71ACD8', + secondaryColor: '#C24589', + verified: true + }, + 74: { + pokemon: 'Geodude', + primaryColor: '#ACA078', + secondaryColor: '#756108', + verified: true + }, + 77: { + pokemon: 'Ponyta', + primaryColor: '#EDE7C7', + secondaryColor: '#F59062', + verified: true + }, + 79: { + pokemon: 'Slowpoke', + primaryColor: '#DFA1B9', + secondaryColor: '#EEE1C7', + verified: true + }, + 81: { + pokemon: 'Magnemite', + primaryColor: '#D0DAE0', + secondaryColor: '#92B6C6', + verified: true + }, + 83: { + pokemon: 'Farfetch\'d', + primaryColor: '#AC9E95', + secondaryColor: '#95FB97', + verified: true + }, + 84: { + pokemon: 'Doduo', + primaryColor: '#C89462', + secondaryColor: '#AF755F', + verified: true + }, + 86: { + pokemon: 'Seel', + primaryColor: '#C7DFE8', + secondaryColor: '#B6CAED', + verified: true + }, + 88: { + pokemon: 'Grimer', + primaryColor: '#BFA4C7', + secondaryColor: '#5F5370', + verified: true + }, + 90: { + pokemon: 'Shellder', + primaryColor: '#AB9CC5', + secondaryColor: '#E0B5B3', + verified: true + }, + 92: { + pokemon: 'Gastly', + primaryColor: '#242223', + secondaryColor: '#9B7FB7', + verified: true + }, + 95: { + pokemon: 'Onix', + primaryColor: '#B5B6B8', + secondaryColor: '#626264', + verified: true + }, + 96: { + pokemon: 'Drowzee', + primaryColor: '#F8CB58', + secondaryColor: '#AF7961', + verified: true + }, + 98: { + pokemon: 'Krabby', + primaryColor: '#EB9063', + secondaryColor: '#EDD9CE', + verified: true + }, + 100: { + pokemon: 'Voltorb', + primaryColor: '#B64656', + secondaryColor: '#F0E5EA', + verified: true + }, + 102: { + pokemon: 'Exeggcute', + primaryColor: '#F4DDE7', + secondaryColor: '#EFC3C1', + verified: true + }, + 104: { + pokemon: 'Cubone', + primaryColor: '#D4D5D6', + secondaryColor: '#CBB57A', + verified: true + }, + 106: { + pokemon: 'Hitmonlee', + primaryColor: '#BD9F88', + secondaryColor: '#EEE1C7', + verified: true + }, + 107: { + pokemon: 'Hitmonchan', + primaryColor: '#C8ABBB', + secondaryColor: '#E4643B', + verified: true + }, + 108: { + pokemon: 'Lickitung', + primaryColor: '#E3AEB9', + secondaryColor: '#F0E4CA', + verified: true + }, + 109: { + pokemon: 'Koffing', + primaryColor: '#8B8FAE', + secondaryColor: '#DEE0BF', + verified: true + }, + 111: { + pokemon: 'Rhyhorn', + primaryColor: '#BCBDBF', + secondaryColor: '#959CA2', + verified: true + }, + 113: { + pokemon: 'Chansey', + primaryColor: '#E0AEB2', + secondaryColor: '#C68D87', + verified: true + }, + 114: { + pokemon: 'Tangela', + primaryColor: '#666C9D', + secondaryColor: '#E46E8C', + verified: true + }, + 115: { + pokemon: 'Kangaskhan', + primaryColor: '#978781', + secondaryColor: '#E3DDB8', + verified: true + }, + 116: { + pokemon: 'Horsea', + primaryColor: '#9FCFE9', + secondaryColor: '#FCF7D7', + verified: true + }, + 118: { + pokemon: 'Goldeen', + primaryColor: '#E6E6E7', + secondaryColor: '#F38469', + verified: true + }, + 120: { + pokemon: 'Staryu', + primaryColor: '#B49569', + secondaryColor: '#F5E688', + verified: true + }, + 122: { + pokemon: 'Mr_Mime', + primaryColor: '#E56387', + secondaryColor: '#FFCED5', + verified: true + }, + 123: { + pokemon: 'Scyther', + primaryColor: '#92C587', + secondaryColor: '#F6F0CF', + verified: true + }, + 124: { + pokemon: 'Jynx', + primaryColor: '#C44552', + secondaryColor: '#643187', + verified: true + }, + 125: { + pokemon: 'Electabuzz', + primaryColor: '#F5DB77', + secondaryColor: '#14175E', + verified: true + }, + 126: { + pokemon: 'Magmar', + primaryColor: '#F5D477', + secondaryColor: '#F0664E', + verified: true + }, + 127: { + pokemon: 'Pinsir', + primaryColor: '#BCB1AB', + secondaryColor: '#CFD4D8', + verified: true + }, + 128: { + pokemon: 'Tauros', + primaryColor: '#D8A058', + secondaryColor: '#887E6F', + verified: true + }, + 129: { + pokemon: 'Magikarp', + primaryColor: '#E87839', + secondaryColor: '#F6F0CF', + verified: true + }, + 131: { + pokemon: 'Lapras', + primaryColor: '#6BA7D4', + secondaryColor: '#FFF0DA', + verified: true + }, + 132: { + pokemon: 'Ditto', + primaryColor: '#F2ABC0', + secondaryColor: '#DA74AC', + verified: true + }, + 133: { + pokemon: 'Eevee', + primaryColor: '#CA9761', + secondaryColor: '#7E5621', + verified: true + }, + 137: { + pokemon: 'Porygon', + primaryColor: '#E7757C', + secondaryColor: '#6BC7C5', + verified: true + }, + 138: { + pokemon: 'Omanyte', + primaryColor: '#DDDCCC', + secondaryColor: '#73CEE2', + verified: true + }, + 140: { + pokemon: 'Kabuto', + primaryColor: '#C18335', + secondaryColor: '#4E4E48', + verified: true + }, + 142: { + pokemon: 'Aerodactyl', + primaryColor: '#D4BAD3', + secondaryColor: '#B196C5', + verified: true + }, + 143: { + pokemon: 'Snorlax', + primaryColor: '#326583', + secondaryColor: '#E3DACE', + verified: true + }, + 144: { + pokemon: 'Articuno', + primaryColor: '#8dc0e6', + secondaryColor: '#5b99bb', + verified: true + }, + 145: { + pokemon: 'Zapdos', + primaryColor: '#f8de8a', + secondaryColor: '#af9354', + verified: true + }, + 146: { + pokemon: 'Moltres', + primaryColor: '#fccf81', + secondaryColor: '#e6845f', + verified: true + }, + 147: { + pokemon: 'Dratini', + primaryColor: '#90AED4', + secondaryColor: '#EFEAE6', + verified: true + }, + 150: { + pokemon: 'Mewtwo', + primaryColor: '#c8d3ea', + secondaryColor: '#8d96b5', + verified: true + }, + 151: { + pokemon: 'Mew', + primaryColor: '#eedfe9', + secondaryColor: '#e7bbce', + verified: true + }, + 152: { + pokemon: 'Chikorita', + primaryColor: '#CBDAAE', + secondaryColor: '#86C07C', + verified: true + }, + 155: { + pokemon: 'Cyndaquil', + primaryColor: '#185E62', + secondaryColor: '#EED9AC', + verified: true + }, + 158: { + pokemon: 'Totodile', + primaryColor: '#96B8C1', + secondaryColor: '#BF8390', + verified: true + }, + 161: { + pokemon: 'Sentret', + primaryColor: '#AA8374', + secondaryColor: '#FDFAEE', + verified: true + }, + 163: { + pokemon: 'Hoothoot', + primaryColor: '#A88F77', + secondaryColor: '#3A3836', + verified: true + }, + 165: { + pokemon: 'Ledyba', + primaryColor: '#E4845F', + secondaryColor: '#291F1D', + verified: true + }, + 167: { + pokemon: 'Spinarak', + primaryColor: '#A4D08C', + secondaryColor: '#F6DA8C', + verified: true + }, + 170: { + pokemon: 'Chinchou', + primaryColor: '#728ABD', + secondaryColor: '#EEDC9D', + verified: true + }, + 175: { + pokemon: 'Togepi', + primaryColor: '#EADEB2', + secondaryColor: '#BDC4CE', + verified: true + }, + 177: { + pokemon: 'Natu', + primaryColor: '#85BD57', + secondaryColor: '#E9CA67', + verified: true + }, + 179: { + pokemon: 'Mareep', + primaryColor: '#F2E5C2', + secondaryColor: '#5A84B1', + verified: true + }, + 183: { + pokemon: 'Marill', + primaryColor: '#52B3E4', + secondaryColor: '#E1F4F6', + verified: true + }, + 185: { + pokemon: 'Sudowoodo', + primaryColor: '#AE9F85', + secondaryColor: '#88AB72', + verified: true + }, + 187: { + pokemon: 'Hoppip', + primaryColor: '#EB92A8', + secondaryColor: '#A8CF86', + verified: true + }, + 190: { + pokemon: 'Aipom', + primaryColor: '#BA9DB7', + secondaryColor: '#DBC4B1', + verified: true + }, + 191: { + pokemon: 'Sunkern', + primaryColor: '#EAD887', + secondaryColor: '#83B177', + verified: true + }, + 193: { + pokemon: 'Yanma', + primaryColor: '#BC836F', + secondaryColor: '#A6AD72', + verified: true + }, + 194: { + pokemon: 'Wooper', + primaryColor: '#97C3DA', + secondaryColor: '#B593A0', + verified: true + }, + 198: { + pokemon: 'Murkrow', + primaryColor: '#3B5670', + secondaryColor: '#F0D3A4', + verified: true + }, + 200: { + pokemon: 'Misdreavus', + primaryColor: '#8994A0', + secondaryColor: '#B97F85', + verified: true + }, + 201: { + pokemon: 'Unown', + primaryColor: '#51626E', + secondaryColor: '#CED6E0', + verified: true + }, + 202: { + pokemon: 'Wobbuffet', + primaryColor: '#54ADC9', + secondaryColor: '#2E2F33', + verified: true + }, + 203: { + pokemon: 'Girafarig', + primaryColor: '#E7AB3D', + secondaryColor: '#39281F', + verified: true + }, + 204: { + pokemon: 'Pineco', + primaryColor: '#1A4146', + secondaryColor: '#8FABA0', + verified: true + }, + 206: { + pokemon: 'Dunsparce', + primaryColor: '#F2DF93', + secondaryColor: '#4B908C', + verified: true + }, + 207: { + pokemon: 'Gligar', + primaryColor: '#D18EB2', + secondaryColor: '#598ABC', + verified: true + }, + 209: { + pokemon: 'Snubbull', + primaryColor: '#E78C96', + secondaryColor: '#3B2F2D', + verified: true + }, + 211: { + pokemon: 'Qwilfish', + primaryColor: '#4A7471', + secondaryColor: '#E5EAB4', + verified: true + }, + 213: { + pokemon: 'Shuckle', + primaryColor: '#942D2B', + secondaryColor: '#F5CF6C', + verified: true + }, + 214: { + pokemon: 'Heracross', + primaryColor: '#2B5978', + secondaryColor: '#93AFC1', + verified: true + }, + 215: { + pokemon: 'Sneasel', + primaryColor: '#5F8795', + secondaryColor: '#D76B68', + verified: true + }, + 216: { + pokemon: 'Teddiursa', + primaryColor: '#E09659', + secondaryColor: '#FBE699', + verified: true + }, + 218: { + pokemon: 'Slugma', + primaryColor: '#E69881', + secondaryColor: '#F4CC94', + verified: true + }, + 220: { + pokemon: 'Swinub', + primaryColor: '#B28B73', + secondaryColor: '#D88C89', + verified: true + }, + 222: { + pokemon: 'Corsola', + primaryColor: '#e697a2', + secondaryColor: '#ccd5db', + verified: true + }, + 223: { + pokemon: 'Remoraid', + primaryColor: '#AEC8B7', + secondaryColor: '#709687', + verified: true + }, + 225: { + pokemon: 'Delibird', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 226: { + pokemon: 'Mantine', + primaryColor: '#425161', + secondaryColor: '#EDDEE8', + verified: true + }, + 227: { + pokemon: 'Skarmory', + primaryColor: '#D2D9E9', + secondaryColor: '#923A3B', + verified: true + }, + 228: { + pokemon: 'Houndour', + primaryColor: '#867770', + secondaryColor: '#B5816C', + verified: true + }, + 231: { + pokemon: 'Phanpy', + primaryColor: '#9CCFCF', + secondaryColor: '#D06D52', + verified: true + }, + 234: { + pokemon: 'Stantler', + primaryColor: '#BB9780', + secondaryColor: '#EDDE9A', + verified: true + }, + 235: { + pokemon: 'Smeargle', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: true + }, + 236: { + pokemon: 'Tyrogue', + primaryColor: '#D7C1D0', + secondaryColor: '#926E4A', + verified: true + }, + 241: { + pokemon: 'Miltank', + primaryColor: '#F1BABE', + secondaryColor: '#EEE0B7', + verified: true + }, + 243: { + pokemon: 'Raikou', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 244: { + pokemon: 'Entei', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 245: { + pokemon: 'Suicune', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 246: { + pokemon: 'Larvitar', + primaryColor: '#B5BF96', + secondaryColor: '#595755', + verified: true + }, + 249: { + pokemon: 'Lugia', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 250: { + pokemon: 'Ho-oh', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + }, + 251: { + pokemon: 'Celebi', + primaryColor: '#FFFFFF', + secondaryColor: '#000000', + verified: false + } +} + function getLevel(cpMultiplier) { let level @@ -385,6 +1174,10 @@ const utils = { return FORMS[form] }, + getCandyColor(id) { + return candyColors[id] + }, + capitalize, }