1+ use  crate :: engine:: abilities:: Abilities ; 
2+ use  crate :: engine:: items:: Items ; 
13use  crate :: pokemon:: PokemonName ; 
4+ use  crate :: state:: PokemonType ; 
5+ 
6+ pub  struct  MegaEvolveData  { 
7+     pub  id :  PokemonName , 
8+     pub  types :  ( PokemonType ,  PokemonType ) , 
9+     pub  ability :  Abilities , 
10+     pub  base_stats :  ( i16 ,  i16 ,  i16 ,  i16 ,  i16 ,  i16 ) , 
11+ } 
212
313impl  PokemonName  { 
414    /* 
@@ -15,7 +25,345 @@ impl PokemonName {
1525            PokemonName :: PALAFINHERO  => ( 100 ,  160 ,  97 ,  106 ,  87 ,  100 ) , 
1626            PokemonName :: EISCUE  => ( 75 ,  80 ,  110 ,  65 ,  90 ,  50 ) , 
1727            PokemonName :: EISCUENOICE  => ( 75 ,  80 ,  70 ,  65 ,  50 ,  130 ) , 
28+ 
29+             // megas 
30+             PokemonName :: VENUSAURMEGA  => ( 80 ,  100 ,  123 ,  122 ,  120 ,  80 ) , 
31+             PokemonName :: CHARIZARDMEGAX  => ( 78 ,  130 ,  111 ,  130 ,  85 ,  100 ) , 
32+             PokemonName :: CHARIZARDMEGAY  => ( 78 ,  104 ,  78 ,  159 ,  115 ,  100 ) , 
33+             PokemonName :: BLASTOISEMEGA  => ( 79 ,  103 ,  120 ,  135 ,  115 ,  78 ) , 
34+             PokemonName :: BEEDRILLMEGA  => ( 65 ,  150 ,  40 ,  15 ,  80 ,  145 ) , 
35+             PokemonName :: PIDGEOTMEGA  => ( 83 ,  80 ,  80 ,  135 ,  80 ,  121 ) , 
36+             PokemonName :: ALAKAZAMMEGA  => ( 55 ,  50 ,  65 ,  175 ,  105 ,  150 ) , 
37+             PokemonName :: SLOWBROMEGA  => ( 95 ,  75 ,  180 ,  130 ,  80 ,  30 ) , 
38+             PokemonName :: GENGARMEGA  => ( 60 ,  65 ,  80 ,  170 ,  95 ,  130 ) , 
39+             PokemonName :: KANGASKHANMEGA  => ( 105 ,  125 ,  100 ,  60 ,  100 ,  100 ) , 
40+             PokemonName :: PINSIRMEGA  => ( 65 ,  155 ,  120 ,  65 ,  90 ,  105 ) , 
41+             PokemonName :: GYARADOSMEGA  => ( 95 ,  155 ,  109 ,  70 ,  130 ,  81 ) , 
42+             PokemonName :: AERODACTYLMEGA  => ( 80 ,  135 ,  85 ,  70 ,  95 ,  150 ) , 
43+             PokemonName :: MEWTWOMEGAX  => ( 106 ,  190 ,  100 ,  154 ,  100 ,  130 ) , 
44+             PokemonName :: MEWTWOMEGAY  => ( 106 ,  150 ,  70 ,  194 ,  120 ,  140 ) , 
45+             PokemonName :: AMPHAROSMEGA  => ( 90 ,  95 ,  105 ,  165 ,  110 ,  45 ) , 
46+             PokemonName :: STEELIXMEGA  => ( 75 ,  125 ,  230 ,  55 ,  95 ,  30 ) , 
47+             PokemonName :: SCIZORMEGA  => ( 70 ,  150 ,  140 ,  65 ,  100 ,  75 ) , 
48+             PokemonName :: HERACROSSMEGA  => ( 80 ,  185 ,  115 ,  40 ,  105 ,  75 ) , 
49+             PokemonName :: HOUNDOOMMEGA  => ( 75 ,  90 ,  90 ,  140 ,  90 ,  115 ) , 
50+             PokemonName :: TYRANITARMEGA  => ( 100 ,  164 ,  150 ,  95 ,  120 ,  71 ) , 
51+             PokemonName :: SCEPTILEMEGA  => ( 70 ,  110 ,  75 ,  145 ,  85 ,  145 ) , 
52+             PokemonName :: BLAZIKENMEGA  => ( 80 ,  160 ,  80 ,  130 ,  80 ,  100 ) , 
53+             PokemonName :: SWAMPERTMEGA  => ( 100 ,  150 ,  110 ,  95 ,  110 ,  70 ) , 
54+             PokemonName :: GARDEVOIRMEGA  => ( 68 ,  85 ,  65 ,  165 ,  135 ,  100 ) , 
55+             PokemonName :: SABLEYEMEGA  => ( 50 ,  85 ,  125 ,  85 ,  115 ,  20 ) , 
56+             PokemonName :: MAWILEMEGA  => ( 50 ,  105 ,  125 ,  55 ,  95 ,  50 ) , 
57+             PokemonName :: AGGRONMEGA  => ( 70 ,  140 ,  230 ,  60 ,  80 ,  50 ) , 
58+             PokemonName :: MEDICHAMMEGA  => ( 60 ,  100 ,  85 ,  80 ,  85 ,  100 ) , 
59+             PokemonName :: MANECTRICMEGA  => ( 70 ,  75 ,  80 ,  135 ,  80 ,  135 ) , 
60+             PokemonName :: SHARPEDOMEGA  => ( 70 ,  140 ,  70 ,  110 ,  65 ,  105 ) , 
61+             PokemonName :: CAMERUPTMEGA  => ( 70 ,  120 ,  100 ,  145 ,  105 ,  20 ) , 
62+             PokemonName :: ALTARIAMEGA  => ( 75 ,  110 ,  110 ,  110 ,  105 ,  80 ) , 
63+             PokemonName :: BANETTEMEGA  => ( 64 ,  165 ,  75 ,  93 ,  83 ,  75 ) , 
64+             PokemonName :: ABSOLMEGA  => ( 65 ,  150 ,  60 ,  115 ,  60 ,  115 ) , 
65+             PokemonName :: GLALIEMEGA  => ( 80 ,  120 ,  80 ,  120 ,  80 ,  100 ) , 
66+             PokemonName :: SALAMENCEMEGA  => ( 95 ,  145 ,  130 ,  120 ,  90 ,  120 ) , 
67+             PokemonName :: METAGROSSMEGA  => ( 80 ,  145 ,  150 ,  105 ,  110 ,  110 ) , 
68+             PokemonName :: LATIASMEGA  => ( 80 ,  100 ,  120 ,  140 ,  150 ,  110 ) , 
69+             PokemonName :: LATIOSMEGA  => ( 80 ,  130 ,  100 ,  160 ,  120 ,  110 ) , 
70+             PokemonName :: RAYQUAZAMEGA  => ( 105 ,  180 ,  100 ,  180 ,  100 ,  115 ) , 
71+             PokemonName :: LOPUNNYMEGA  => ( 65 ,  136 ,  94 ,  54 ,  96 ,  135 ) , 
72+             PokemonName :: GARCHOMPMEGA  => ( 108 ,  170 ,  115 ,  120 ,  95 ,  92 ) , 
73+             PokemonName :: LUCARIOMEGA  => ( 70 ,  145 ,  88 ,  140 ,  70 ,  112 ) , 
74+             PokemonName :: ABOMASNOWMEGA  => ( 90 ,  132 ,  105 ,  132 ,  105 ,  30 ) , 
75+             PokemonName :: GALLADEMEGA  => ( 68 ,  165 ,  95 ,  65 ,  115 ,  110 ) , 
76+             PokemonName :: AUDINOMEGA  => ( 103 ,  60 ,  126 ,  80 ,  126 ,  50 ) , 
77+             PokemonName :: DIANCIEMEGA  => ( 50 ,  160 ,  110 ,  160 ,  110 ,  110 ) , 
1878            _ => panic ! ( "Base stats not implemented for {}" ,  self ) , 
1979        } 
2080    } 
81+ 
82+     pub  fn  mega_evolve_target ( & self ,  item :  Items )  -> Option < MegaEvolveData >  { 
83+         match  ( self ,  item)  { 
84+             ( PokemonName :: VENUSAUR ,  Items :: VENUSAURITE )  => Some ( MegaEvolveData  { 
85+                 id :  PokemonName :: VENUSAURMEGA , 
86+                 types :  ( PokemonType :: GRASS ,  PokemonType :: POISON ) , 
87+                 ability :  Abilities :: THICKFAT , 
88+                 base_stats :  ( 80 ,  100 ,  123 ,  122 ,  120 ,  80 ) , 
89+             } ) , 
90+             ( PokemonName :: CHARIZARD ,  Items :: CHARIZARDITEX )  => Some ( MegaEvolveData  { 
91+                 id :  PokemonName :: CHARIZARDMEGAX , 
92+                 types :  ( PokemonType :: FIRE ,  PokemonType :: DRAGON ) , 
93+                 ability :  Abilities :: TOUGHCLAWS , 
94+                 base_stats :  ( 78 ,  130 ,  111 ,  130 ,  85 ,  100 ) , 
95+             } ) , 
96+             ( PokemonName :: CHARIZARD ,  Items :: CHARIZARDITEY )  => Some ( MegaEvolveData  { 
97+                 id :  PokemonName :: CHARIZARDMEGAY , 
98+                 types :  ( PokemonType :: FIRE ,  PokemonType :: FLYING ) , 
99+                 ability :  Abilities :: DROUGHT , 
100+                 base_stats :  ( 78 ,  104 ,  78 ,  159 ,  115 ,  100 ) , 
101+             } ) , 
102+             ( PokemonName :: BLASTOISE ,  Items :: BLASTOISINITE )  => Some ( MegaEvolveData  { 
103+                 id :  PokemonName :: BLASTOISEMEGA , 
104+                 types :  ( PokemonType :: WATER ,  PokemonType :: TYPELESS ) , 
105+                 ability :  Abilities :: MEGALAUNCHER , 
106+                 base_stats :  ( 79 ,  103 ,  120 ,  135 ,  115 ,  78 ) , 
107+             } ) , 
108+             ( PokemonName :: BEEDRILL ,  Items :: BEEDRILLITE )  => Some ( MegaEvolveData  { 
109+                 id :  PokemonName :: BEEDRILLMEGA , 
110+                 types :  ( PokemonType :: BUG ,  PokemonType :: POISON ) , 
111+                 ability :  Abilities :: ADAPTABILITY , 
112+                 base_stats :  ( 65 ,  150 ,  40 ,  15 ,  80 ,  145 ) , 
113+             } ) , 
114+             ( PokemonName :: PIDGEOT ,  Items :: PIDGEOTITE )  => Some ( MegaEvolveData  { 
115+                 id :  PokemonName :: PIDGEOTMEGA , 
116+                 types :  ( PokemonType :: NORMAL ,  PokemonType :: FLYING ) , 
117+                 ability :  Abilities :: NOGUARD , 
118+                 base_stats :  ( 83 ,  80 ,  80 ,  135 ,  80 ,  121 ) , 
119+             } ) , 
120+             ( PokemonName :: ALAKAZAM ,  Items :: ALAKAZITE )  => Some ( MegaEvolveData  { 
121+                 id :  PokemonName :: ALAKAZAMMEGA , 
122+                 types :  ( PokemonType :: PSYCHIC ,  PokemonType :: TYPELESS ) , 
123+                 ability :  Abilities :: TRACE , 
124+                 base_stats :  ( 55 ,  50 ,  65 ,  175 ,  105 ,  150 ) , 
125+             } ) , 
126+             ( PokemonName :: SLOWBRO ,  Items :: SLOWBRONITE )  => Some ( MegaEvolveData  { 
127+                 id :  PokemonName :: SLOWBROMEGA , 
128+                 types :  ( PokemonType :: WATER ,  PokemonType :: PSYCHIC ) , 
129+                 ability :  Abilities :: SHELLARMOR , 
130+                 base_stats :  ( 95 ,  75 ,  180 ,  130 ,  80 ,  30 ) , 
131+             } ) , 
132+             ( PokemonName :: GENGAR ,  Items :: GENGARITE )  => Some ( MegaEvolveData  { 
133+                 id :  PokemonName :: GENGARMEGA , 
134+                 types :  ( PokemonType :: GHOST ,  PokemonType :: POISON ) , 
135+                 ability :  Abilities :: SHADOWTAG , 
136+                 base_stats :  ( 60 ,  65 ,  80 ,  170 ,  95 ,  130 ) , 
137+             } ) , 
138+             ( PokemonName :: KANGASKHAN ,  Items :: KANGASKHANITE )  => Some ( MegaEvolveData  { 
139+                 id :  PokemonName :: KANGASKHANMEGA , 
140+                 types :  ( PokemonType :: NORMAL ,  PokemonType :: TYPELESS ) , 
141+                 ability :  Abilities :: PARENTALBOND , 
142+                 base_stats :  ( 105 ,  125 ,  100 ,  60 ,  100 ,  100 ) , 
143+             } ) , 
144+             ( PokemonName :: PINSIR ,  Items :: PINSIRITE )  => Some ( MegaEvolveData  { 
145+                 id :  PokemonName :: PINSIRMEGA , 
146+                 types :  ( PokemonType :: BUG ,  PokemonType :: FLYING ) , 
147+                 ability :  Abilities :: AERILATE , 
148+                 base_stats :  ( 65 ,  155 ,  120 ,  65 ,  90 ,  105 ) , 
149+             } ) , 
150+             ( PokemonName :: GYARADOS ,  Items :: GYARADOSITE )  => Some ( MegaEvolveData  { 
151+                 id :  PokemonName :: GYARADOSMEGA , 
152+                 types :  ( PokemonType :: WATER ,  PokemonType :: DARK ) , 
153+                 ability :  Abilities :: MOLDBREAKER , 
154+                 base_stats :  ( 95 ,  155 ,  109 ,  70 ,  130 ,  81 ) , 
155+             } ) , 
156+             ( PokemonName :: AERODACTYL ,  Items :: AERODACTYLITE )  => Some ( MegaEvolveData  { 
157+                 id :  PokemonName :: AERODACTYLMEGA , 
158+                 types :  ( PokemonType :: ROCK ,  PokemonType :: FLYING ) , 
159+                 ability :  Abilities :: TOUGHCLAWS , 
160+                 base_stats :  ( 80 ,  135 ,  85 ,  70 ,  95 ,  150 ) , 
161+             } ) , 
162+             ( PokemonName :: MEWTWO ,  Items :: MEWTWONITEX )  => Some ( MegaEvolveData  { 
163+                 id :  PokemonName :: MEWTWOMEGAX , 
164+                 types :  ( PokemonType :: PSYCHIC ,  PokemonType :: FIGHTING ) , 
165+                 ability :  Abilities :: STEADFAST , 
166+                 base_stats :  ( 106 ,  190 ,  100 ,  154 ,  100 ,  130 ) , 
167+             } ) , 
168+             ( PokemonName :: MEWTWO ,  Items :: MEWTWONITEY )  => Some ( MegaEvolveData  { 
169+                 id :  PokemonName :: MEWTWOMEGAY , 
170+                 types :  ( PokemonType :: PSYCHIC ,  PokemonType :: TYPELESS ) , 
171+                 ability :  Abilities :: INSOMNIA , 
172+                 base_stats :  ( 106 ,  150 ,  70 ,  194 ,  120 ,  140 ) , 
173+             } ) , 
174+             ( PokemonName :: AMPHAROS ,  Items :: AMPHAROSITE )  => Some ( MegaEvolveData  { 
175+                 id :  PokemonName :: AMPHAROSMEGA , 
176+                 types :  ( PokemonType :: ELECTRIC ,  PokemonType :: DRAGON ) , 
177+                 ability :  Abilities :: MOLDBREAKER , 
178+                 base_stats :  ( 90 ,  95 ,  105 ,  165 ,  110 ,  45 ) , 
179+             } ) , 
180+             ( PokemonName :: STEELIX ,  Items :: STEELIXITE )  => Some ( MegaEvolveData  { 
181+                 id :  PokemonName :: STEELIXMEGA , 
182+                 types :  ( PokemonType :: STEEL ,  PokemonType :: GROUND ) , 
183+                 ability :  Abilities :: SANDFORCE , 
184+                 base_stats :  ( 75 ,  125 ,  230 ,  55 ,  95 ,  30 ) , 
185+             } ) , 
186+             ( PokemonName :: SCIZOR ,  Items :: SCIZORITE )  => Some ( MegaEvolveData  { 
187+                 id :  PokemonName :: SCIZORMEGA , 
188+                 types :  ( PokemonType :: BUG ,  PokemonType :: STEEL ) , 
189+                 ability :  Abilities :: TECHNICIAN , 
190+                 base_stats :  ( 70 ,  150 ,  140 ,  65 ,  100 ,  75 ) , 
191+             } ) , 
192+             ( PokemonName :: HERACROSS ,  Items :: HERACRONITE )  => Some ( MegaEvolveData  { 
193+                 id :  PokemonName :: HERACROSSMEGA , 
194+                 types :  ( PokemonType :: BUG ,  PokemonType :: FIGHTING ) , 
195+                 ability :  Abilities :: SKILLLINK , 
196+                 base_stats :  ( 80 ,  185 ,  115 ,  40 ,  105 ,  75 ) , 
197+             } ) , 
198+             ( PokemonName :: HOUNDOOM ,  Items :: HOUNDOOMINITE )  => Some ( MegaEvolveData  { 
199+                 id :  PokemonName :: HOUNDOOMMEGA , 
200+                 types :  ( PokemonType :: DARK ,  PokemonType :: FIRE ) , 
201+                 ability :  Abilities :: SOLARPOWER , 
202+                 base_stats :  ( 75 ,  90 ,  90 ,  140 ,  90 ,  115 ) , 
203+             } ) , 
204+             ( PokemonName :: TYRANITAR ,  Items :: TYRANITARITE )  => Some ( MegaEvolveData  { 
205+                 id :  PokemonName :: TYRANITARMEGA , 
206+                 types :  ( PokemonType :: ROCK ,  PokemonType :: DARK ) , 
207+                 ability :  Abilities :: SANDSTREAM , 
208+                 base_stats :  ( 100 ,  164 ,  150 ,  95 ,  120 ,  71 ) , 
209+             } ) , 
210+             ( PokemonName :: SCEPTILE ,  Items :: SCEPTILITE )  => Some ( MegaEvolveData  { 
211+                 id :  PokemonName :: SCEPTILEMEGA , 
212+                 types :  ( PokemonType :: GRASS ,  PokemonType :: DRAGON ) , 
213+                 ability :  Abilities :: LIGHTNINGROD , 
214+                 base_stats :  ( 70 ,  110 ,  75 ,  145 ,  85 ,  145 ) , 
215+             } ) , 
216+             ( PokemonName :: BLAZIKEN ,  Items :: BLAZIKENITE )  => Some ( MegaEvolveData  { 
217+                 id :  PokemonName :: BLAZIKENMEGA , 
218+                 types :  ( PokemonType :: FIRE ,  PokemonType :: FIGHTING ) , 
219+                 ability :  Abilities :: SPEEDBOOST , 
220+                 base_stats :  ( 80 ,  160 ,  80 ,  130 ,  80 ,  100 ) , 
221+             } ) , 
222+             ( PokemonName :: SWAMPERT ,  Items :: SWAMPERTITE )  => Some ( MegaEvolveData  { 
223+                 id :  PokemonName :: SWAMPERTMEGA , 
224+                 types :  ( PokemonType :: WATER ,  PokemonType :: GROUND ) , 
225+                 ability :  Abilities :: SWIFTSWIM , 
226+                 base_stats :  ( 100 ,  150 ,  110 ,  95 ,  110 ,  70 ) , 
227+             } ) , 
228+             ( PokemonName :: GARDEVOIR ,  Items :: GARDEVOIRITE )  => Some ( MegaEvolveData  { 
229+                 id :  PokemonName :: GARDEVOIRMEGA , 
230+                 types :  ( PokemonType :: PSYCHIC ,  PokemonType :: FAIRY ) , 
231+                 ability :  Abilities :: PIXILATE , 
232+                 base_stats :  ( 68 ,  85 ,  65 ,  165 ,  135 ,  100 ) , 
233+             } ) , 
234+             ( PokemonName :: SABLEYE ,  Items :: SABLENITE )  => Some ( MegaEvolveData  { 
235+                 id :  PokemonName :: SABLEYEMEGA , 
236+                 types :  ( PokemonType :: DARK ,  PokemonType :: GHOST ) , 
237+                 ability :  Abilities :: MAGICBOUNCE , 
238+                 base_stats :  ( 50 ,  85 ,  125 ,  85 ,  115 ,  20 ) , 
239+             } ) , 
240+             ( PokemonName :: MAWILE ,  Items :: MAWILITE )  => Some ( MegaEvolveData  { 
241+                 id :  PokemonName :: MAWILEMEGA , 
242+                 types :  ( PokemonType :: STEEL ,  PokemonType :: FAIRY ) , 
243+                 ability :  Abilities :: HUGEPOWER , 
244+                 base_stats :  ( 50 ,  105 ,  125 ,  55 ,  95 ,  50 ) , 
245+             } ) , 
246+             ( PokemonName :: AGGRON ,  Items :: AGGRONITE )  => Some ( MegaEvolveData  { 
247+                 id :  PokemonName :: AGGRONMEGA , 
248+                 types :  ( PokemonType :: STEEL ,  PokemonType :: TYPELESS ) , 
249+                 ability :  Abilities :: FILTER , 
250+                 base_stats :  ( 70 ,  140 ,  230 ,  60 ,  80 ,  50 ) , 
251+             } ) , 
252+             ( PokemonName :: MEDICHAM ,  Items :: MEDICHAMITE )  => Some ( MegaEvolveData  { 
253+                 id :  PokemonName :: MEDICHAMMEGA , 
254+                 types :  ( PokemonType :: FIGHTING ,  PokemonType :: PSYCHIC ) , 
255+                 ability :  Abilities :: PUREPOWER , 
256+                 base_stats :  ( 60 ,  100 ,  85 ,  80 ,  85 ,  100 ) , 
257+             } ) , 
258+             ( PokemonName :: MANECTRIC ,  Items :: MANECTITE )  => Some ( MegaEvolveData  { 
259+                 id :  PokemonName :: MANECTRICMEGA , 
260+                 types :  ( PokemonType :: ELECTRIC ,  PokemonType :: TYPELESS ) , 
261+                 ability :  Abilities :: INTIMIDATE , 
262+                 base_stats :  ( 70 ,  75 ,  80 ,  135 ,  80 ,  135 ) , 
263+             } ) , 
264+             ( PokemonName :: SHARPEDO ,  Items :: SHARPEDONITE )  => Some ( MegaEvolveData  { 
265+                 id :  PokemonName :: SHARPEDOMEGA , 
266+                 types :  ( PokemonType :: WATER ,  PokemonType :: DARK ) , 
267+                 ability :  Abilities :: STRONGJAW , 
268+                 base_stats :  ( 70 ,  140 ,  70 ,  110 ,  65 ,  105 ) , 
269+             } ) , 
270+             ( PokemonName :: CAMERUPT ,  Items :: CAMERUPTITE )  => Some ( MegaEvolveData  { 
271+                 id :  PokemonName :: CAMERUPTMEGA , 
272+                 types :  ( PokemonType :: FIRE ,  PokemonType :: GROUND ) , 
273+                 ability :  Abilities :: SHEERFORCE , 
274+                 base_stats :  ( 70 ,  120 ,  100 ,  145 ,  105 ,  20 ) , 
275+             } ) , 
276+             ( PokemonName :: ALTARIA ,  Items :: ALTARIANITE )  => Some ( MegaEvolveData  { 
277+                 id :  PokemonName :: ALTARIAMEGA , 
278+                 types :  ( PokemonType :: DRAGON ,  PokemonType :: FAIRY ) , 
279+                 ability :  Abilities :: PIXILATE , 
280+                 base_stats :  ( 75 ,  110 ,  110 ,  110 ,  105 ,  80 ) , 
281+             } ) , 
282+             ( PokemonName :: BANETTE ,  Items :: BANETTITE )  => Some ( MegaEvolveData  { 
283+                 id :  PokemonName :: BANETTEMEGA , 
284+                 types :  ( PokemonType :: GHOST ,  PokemonType :: TYPELESS ) , 
285+                 ability :  Abilities :: PRANKSTER , 
286+                 base_stats :  ( 64 ,  165 ,  75 ,  93 ,  83 ,  75 ) , 
287+             } ) , 
288+             ( PokemonName :: ABSOL ,  Items :: ABSOLITE )  => Some ( MegaEvolveData  { 
289+                 id :  PokemonName :: ABSOLMEGA , 
290+                 types :  ( PokemonType :: DARK ,  PokemonType :: TYPELESS ) , 
291+                 ability :  Abilities :: MAGICBOUNCE , 
292+                 base_stats :  ( 65 ,  150 ,  60 ,  115 ,  60 ,  115 ) , 
293+             } ) , 
294+             ( PokemonName :: GLALIE ,  Items :: GLALITITE )  => Some ( MegaEvolveData  { 
295+                 id :  PokemonName :: GLALIEMEGA , 
296+                 types :  ( PokemonType :: ICE ,  PokemonType :: TYPELESS ) , 
297+                 ability :  Abilities :: REFRIGERATE , 
298+                 base_stats :  ( 80 ,  120 ,  80 ,  120 ,  80 ,  100 ) , 
299+             } ) , 
300+             ( PokemonName :: SALAMENCE ,  Items :: SALAMENCITE )  => Some ( MegaEvolveData  { 
301+                 id :  PokemonName :: SALAMENCEMEGA , 
302+                 types :  ( PokemonType :: DRAGON ,  PokemonType :: FLYING ) , 
303+                 ability :  Abilities :: AERILATE , 
304+                 base_stats :  ( 95 ,  145 ,  130 ,  120 ,  90 ,  120 ) , 
305+             } ) , 
306+             ( PokemonName :: METAGROSS ,  Items :: METAGROSSITE )  => Some ( MegaEvolveData  { 
307+                 id :  PokemonName :: METAGROSSMEGA , 
308+                 types :  ( PokemonType :: STEEL ,  PokemonType :: PSYCHIC ) , 
309+                 ability :  Abilities :: TOUGHCLAWS , 
310+                 base_stats :  ( 80 ,  145 ,  150 ,  105 ,  110 ,  110 ) , 
311+             } ) , 
312+             ( PokemonName :: LATIAS ,  Items :: LATIASITE )  => Some ( MegaEvolveData  { 
313+                 id :  PokemonName :: LATIASMEGA , 
314+                 types :  ( PokemonType :: DRAGON ,  PokemonType :: PSYCHIC ) , 
315+                 ability :  Abilities :: LEVITATE , 
316+                 base_stats :  ( 80 ,  100 ,  120 ,  140 ,  150 ,  110 ) , 
317+             } ) , 
318+             ( PokemonName :: LATIOS ,  Items :: LATIOSITE )  => Some ( MegaEvolveData  { 
319+                 id :  PokemonName :: LATIOSMEGA , 
320+                 types :  ( PokemonType :: DRAGON ,  PokemonType :: PSYCHIC ) , 
321+                 ability :  Abilities :: LEVITATE , 
322+                 base_stats :  ( 80 ,  130 ,  100 ,  160 ,  120 ,  110 ) , 
323+             } ) , 
324+             ( PokemonName :: LOPUNNY ,  Items :: LOPUNNITE )  => Some ( MegaEvolveData  { 
325+                 id :  PokemonName :: LOPUNNYMEGA , 
326+                 types :  ( PokemonType :: NORMAL ,  PokemonType :: FIGHTING ) , 
327+                 ability :  Abilities :: SCRAPPY , 
328+                 base_stats :  ( 65 ,  136 ,  94 ,  54 ,  96 ,  135 ) , 
329+             } ) , 
330+             ( PokemonName :: GARCHOMP ,  Items :: GARCHOMPITE )  => Some ( MegaEvolveData  { 
331+                 id :  PokemonName :: GARCHOMPMEGA , 
332+                 types :  ( PokemonType :: DRAGON ,  PokemonType :: GROUND ) , 
333+                 ability :  Abilities :: SANDFORCE , 
334+                 base_stats :  ( 108 ,  170 ,  115 ,  120 ,  95 ,  92 ) , 
335+             } ) , 
336+             ( PokemonName :: LUCARIO ,  Items :: LUCARIONITE )  => Some ( MegaEvolveData  { 
337+                 id :  PokemonName :: LUCARIOMEGA , 
338+                 types :  ( PokemonType :: FIGHTING ,  PokemonType :: STEEL ) , 
339+                 ability :  Abilities :: ADAPTABILITY , 
340+                 base_stats :  ( 70 ,  145 ,  88 ,  140 ,  70 ,  112 ) , 
341+             } ) , 
342+             ( PokemonName :: ABOMASNOW ,  Items :: ABOMASITE )  => Some ( MegaEvolveData  { 
343+                 id :  PokemonName :: ABOMASNOWMEGA , 
344+                 types :  ( PokemonType :: GRASS ,  PokemonType :: ICE ) , 
345+                 ability :  Abilities :: SNOWWARNING , 
346+                 base_stats :  ( 90 ,  132 ,  105 ,  132 ,  105 ,  30 ) , 
347+             } ) , 
348+             ( PokemonName :: GALLADE ,  Items :: GALLADITE )  => Some ( MegaEvolveData  { 
349+                 id :  PokemonName :: GALLADEMEGA , 
350+                 types :  ( PokemonType :: PSYCHIC ,  PokemonType :: FIGHTING ) , 
351+                 ability :  Abilities :: INNERFOCUS , 
352+                 base_stats :  ( 68 ,  165 ,  95 ,  65 ,  115 ,  110 ) , 
353+             } ) , 
354+             ( PokemonName :: AUDINO ,  Items :: AUDINITE )  => Some ( MegaEvolveData  { 
355+                 id :  PokemonName :: AUDINOMEGA , 
356+                 types :  ( PokemonType :: NORMAL ,  PokemonType :: FAIRY ) , 
357+                 ability :  Abilities :: HEALER , 
358+                 base_stats :  ( 103 ,  60 ,  126 ,  80 ,  126 ,  50 ) , 
359+             } ) , 
360+             ( PokemonName :: DIANCIE ,  Items :: DIANCITE )  => Some ( MegaEvolveData  { 
361+                 id :  PokemonName :: DIANCIEMEGA , 
362+                 types :  ( PokemonType :: ROCK ,  PokemonType :: FAIRY ) , 
363+                 ability :  Abilities :: MAGICBOUNCE , 
364+                 base_stats :  ( 50 ,  160 ,  110 ,  160 ,  110 ,  110 ) , 
365+             } ) , 
366+             _ => None , 
367+         } 
368+     } 
21369} 
0 commit comments