refactored data downloader

This commit is contained in:
cdemeyer-teachx
2025-08-20 08:30:07 +09:00
parent dd61d27d98
commit cc78d15068
44 changed files with 248241 additions and 7816 deletions

1
.gitignore vendored
View File

@@ -118,3 +118,4 @@ Thumbs.db
# Logs # Logs
*.log *.log
.specstory/

30688
data/all_moves.json Normal file

File diff suppressed because it is too large Load Diff

5777
data/moves/generation-i.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

12680
data/moves/generation-iii.json Normal file

File diff suppressed because it is too large Load Diff

16635
data/moves/generation-iv.json Normal file

File diff suppressed because it is too large Load Diff

30688
data/moves/generation-ix.json Normal file

File diff suppressed because it is too large Load Diff

19855
data/moves/generation-v.json Normal file

File diff suppressed because it is too large Load Diff

22025
data/moves/generation-vi.json Normal file

File diff suppressed because it is too large Load Diff

26260
data/moves/generation-vii.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,221 +0,0 @@
{
"2": {
"id": 2,
"name": "ivysaur",
"types": [
"grass",
"poison"
],
"base_stats": {
"hp": 60,
"attack": 62,
"defense": 63,
"special_attack": 80,
"special_defense": 80,
"speed": 60
},
"abilities": [
"overgrow",
"chlorophyll"
],
"moves": [
14,
15,
20,
22,
29,
33,
34,
36,
38,
45,
46,
70,
72,
73,
74,
75,
76,
77,
79,
80,
81,
92,
99,
102,
104,
111,
113,
115,
117,
133,
148,
156,
164,
173,
174,
182,
188,
189,
200,
202,
203,
204,
206,
207,
210,
213,
214,
216,
218,
219,
230,
235,
237,
241,
249,
263,
267,
270,
275,
282,
290,
311,
331,
345,
363,
388,
402,
412,
437,
438,
445,
447,
474,
491,
496,
497,
520,
526,
580,
590,
803,
851,
885
],
"weight": 130,
"height": 10,
"base_experience": 142
},
"1": {
"id": 1,
"name": "bulbasaur",
"types": [
"grass",
"poison"
],
"base_stats": {
"hp": 45,
"attack": 49,
"defense": 49,
"special_attack": 65,
"special_defense": 65,
"speed": 45
},
"abilities": [
"overgrow",
"chlorophyll"
],
"moves": [
13,
14,
15,
20,
22,
29,
33,
34,
36,
38,
45,
70,
72,
73,
74,
75,
76,
77,
79,
80,
81,
92,
99,
102,
104,
111,
113,
115,
117,
124,
130,
133,
148,
156,
164,
173,
174,
182,
188,
189,
200,
202,
203,
204,
206,
207,
210,
213,
214,
216,
218,
219,
230,
235,
237,
241,
249,
263,
267,
270,
275,
282,
290,
311,
320,
331,
345,
363,
388,
402,
412,
437,
438,
445,
447,
474,
491,
496,
497,
520,
526,
580,
590,
803,
851,
885
],
"weight": 69,
"height": 7,
"base_experience": 64
}
}

View File

@@ -1,412 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0
}
]

View File

@@ -1,494 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-i"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 1.0,
"generation": "generation-i"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-i"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-i"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 1.0,
"generation": "generation-i"
}
]

View File

@@ -1,650 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-ii"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ii"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ii"
}
]

View File

@@ -1,650 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-iii"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iii"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iii"
}
]

View File

@@ -1,650 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-iv"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-iv"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-iv"
}
]

View File

@@ -1,722 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "bug",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "dragon",
"defending_type": "fairy",
"damage_factor": 0.0,
"generation": "generation-ix"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "dark",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-ix"
},
{
"attacking_type": "fairy",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-ix"
}
]

View File

@@ -1,662 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ghost",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-v"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "dark",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-v"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-v"
}
]

View File

@@ -1,722 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "bug",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "dragon",
"defending_type": "fairy",
"damage_factor": 0.0,
"generation": "generation-vi"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "dark",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vi"
},
{
"attacking_type": "fairy",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vi"
}
]

View File

@@ -1,722 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "bug",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "dragon",
"defending_type": "fairy",
"damage_factor": 0.0,
"generation": "generation-vii"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "dark",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-vii"
},
{
"attacking_type": "fairy",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-vii"
}
]

View File

@@ -1,722 +0,0 @@
[
{
"attacking_type": "normal",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "normal",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "normal",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fire",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "water",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "electric",
"defending_type": "ground",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "water",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "grass",
"defending_type": "dragon",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "ground",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ice",
"defending_type": "ice",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "normal",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fighting",
"defending_type": "ghost",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "poison",
"defending_type": "steel",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "steel",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "electric",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "bug",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "grass",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ground",
"defending_type": "flying",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "rock",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "flying",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "psychic",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "psychic",
"defending_type": "poison",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "psychic",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "psychic",
"defending_type": "psychic",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "psychic",
"defending_type": "dark",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "grass",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "flying",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "ghost",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "bug",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "flying",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "bug",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "fire",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "ground",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "rock",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ghost",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ghost",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "ghost",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "ghost",
"defending_type": "normal",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "dragon",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "dragon",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "dragon",
"defending_type": "fairy",
"damage_factor": 0.0,
"generation": "generation-viii"
},
{
"attacking_type": "dark",
"defending_type": "ghost",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "dark",
"defending_type": "psychic",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "dark",
"defending_type": "fighting",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "dark",
"defending_type": "dark",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "dark",
"defending_type": "fairy",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "rock",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "ice",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "fairy",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "water",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "steel",
"defending_type": "electric",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "fighting",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "dragon",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "dark",
"damage_factor": 2.0,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "poison",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "steel",
"damage_factor": 0.5,
"generation": "generation-viii"
},
{
"attacking_type": "fairy",
"defending_type": "fire",
"damage_factor": 0.5,
"generation": "generation-viii"
}
]

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -0,0 +1,479 @@
{
"normal": {
"double_damage_from": [
"fighting"
],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [
"rock",
"steel"
],
"no_damage_from": [
"ghost"
],
"no_damage_to": [
"ghost"
]
},
"fighting": {
"double_damage_from": [
"flying",
"psychic",
"fairy"
],
"double_damage_to": [
"normal",
"rock",
"steel",
"ice",
"dark"
],
"half_damage_from": [
"rock",
"bug",
"dark"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"psychic",
"fairy"
],
"no_damage_from": [],
"no_damage_to": [
"ghost"
]
},
"flying": {
"double_damage_from": [
"rock",
"electric",
"ice"
],
"double_damage_to": [
"fighting",
"bug",
"grass"
],
"half_damage_from": [
"fighting",
"bug",
"grass"
],
"half_damage_to": [
"rock",
"steel",
"electric"
],
"no_damage_from": [
"ground"
],
"no_damage_to": []
},
"poison": {
"double_damage_from": [
"ground",
"psychic"
],
"double_damage_to": [
"grass",
"fairy"
],
"half_damage_from": [
"fighting",
"poison",
"bug",
"grass",
"fairy"
],
"half_damage_to": [
"poison",
"ground",
"rock",
"ghost"
],
"no_damage_from": [],
"no_damage_to": [
"steel"
]
},
"ground": {
"double_damage_from": [
"water",
"grass",
"ice"
],
"double_damage_to": [
"poison",
"rock",
"steel",
"fire",
"electric"
],
"half_damage_from": [
"poison",
"rock"
],
"half_damage_to": [
"bug",
"grass"
],
"no_damage_from": [
"electric"
],
"no_damage_to": [
"flying"
]
},
"rock": {
"double_damage_from": [
"fighting",
"ground",
"steel",
"water",
"grass"
],
"double_damage_to": [
"flying",
"bug",
"fire",
"ice"
],
"half_damage_from": [
"normal",
"flying",
"poison",
"fire"
],
"half_damage_to": [
"fighting",
"ground",
"steel"
],
"no_damage_from": [],
"no_damage_to": []
},
"bug": {
"double_damage_from": [
"flying",
"rock",
"fire"
],
"double_damage_to": [
"grass",
"psychic",
"dark"
],
"half_damage_from": [
"fighting",
"ground",
"grass"
],
"half_damage_to": [
"fighting",
"flying",
"poison",
"ghost",
"steel",
"fire",
"fairy"
],
"no_damage_from": [],
"no_damage_to": []
},
"ghost": {
"double_damage_from": [
"ghost",
"dark"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"poison",
"bug"
],
"half_damage_to": [
"dark"
],
"no_damage_from": [
"normal",
"fighting"
],
"no_damage_to": [
"normal"
]
},
"steel": {
"double_damage_from": [
"fighting",
"ground",
"fire"
],
"double_damage_to": [
"rock",
"ice",
"fairy"
],
"half_damage_from": [
"normal",
"flying",
"rock",
"bug",
"steel",
"grass",
"psychic",
"ice",
"dragon",
"fairy"
],
"half_damage_to": [
"steel",
"fire",
"water",
"electric"
],
"no_damage_from": [
"poison"
],
"no_damage_to": []
},
"fire": {
"double_damage_from": [
"ground",
"rock",
"water"
],
"double_damage_to": [
"bug",
"steel",
"grass",
"ice"
],
"half_damage_from": [
"bug",
"steel",
"fire",
"grass",
"ice",
"fairy"
],
"half_damage_to": [
"rock",
"fire",
"water",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"water": {
"double_damage_from": [
"grass",
"electric"
],
"double_damage_to": [
"ground",
"rock",
"fire"
],
"half_damage_from": [
"steel",
"fire",
"water",
"ice"
],
"half_damage_to": [
"water",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"grass": {
"double_damage_from": [
"flying",
"poison",
"bug",
"fire",
"ice"
],
"double_damage_to": [
"ground",
"rock",
"water"
],
"half_damage_from": [
"ground",
"water",
"grass",
"electric"
],
"half_damage_to": [
"flying",
"poison",
"bug",
"steel",
"fire",
"grass",
"dragon"
],
"no_damage_from": [],
"no_damage_to": []
},
"electric": {
"double_damage_from": [
"ground"
],
"double_damage_to": [
"flying",
"water"
],
"half_damage_from": [
"flying",
"steel",
"electric"
],
"half_damage_to": [
"grass",
"electric",
"dragon"
],
"no_damage_from": [],
"no_damage_to": [
"ground"
]
},
"psychic": {
"double_damage_from": [
"bug",
"ghost",
"dark"
],
"double_damage_to": [
"fighting",
"poison"
],
"half_damage_from": [
"fighting",
"psychic"
],
"half_damage_to": [
"steel",
"psychic"
],
"no_damage_from": [],
"no_damage_to": [
"dark"
]
},
"ice": {
"double_damage_from": [
"fighting",
"rock",
"steel",
"fire"
],
"double_damage_to": [
"flying",
"ground",
"grass",
"dragon"
],
"half_damage_from": [
"ice"
],
"half_damage_to": [
"steel",
"fire",
"water",
"ice"
],
"no_damage_from": [],
"no_damage_to": []
},
"dragon": {
"double_damage_from": [
"ice",
"dragon",
"fairy"
],
"double_damage_to": [
"dragon"
],
"half_damage_from": [
"fire",
"water",
"grass",
"electric"
],
"half_damage_to": [
"steel"
],
"no_damage_from": [],
"no_damage_to": [
"fairy"
]
},
"dark": {
"double_damage_from": [
"fighting",
"bug",
"fairy"
],
"double_damage_to": [
"ghost",
"psychic"
],
"half_damage_from": [
"ghost",
"dark"
],
"half_damage_to": [
"fighting",
"dark",
"fairy"
],
"no_damage_from": [
"psychic"
],
"no_damage_to": []
},
"fairy": {
"double_damage_from": [
"poison",
"steel"
],
"double_damage_to": [
"fighting",
"dragon",
"dark"
],
"half_damage_from": [
"fighting",
"bug",
"dark"
],
"half_damage_to": [
"poison",
"steel",
"fire"
],
"no_damage_from": [
"dragon"
],
"no_damage_to": []
},
"stellar": {
"double_damage_from": [],
"double_damage_to": [],
"half_damage_from": [],
"half_damage_to": [],
"no_damage_from": [],
"no_damage_to": []
}
}

View File

@@ -1,8 +0,0 @@
# Configure the project
cmake -B build -S .
# Build the project (includes tests)
cmake --build build
# Run all tests
cmake --build build --target test

View File

@@ -1,305 +1,208 @@
# Pokemon Data Downloader # Pokemon Data Tools
A comprehensive tool for downloading Pokemon battle data from the PokeAPI using the `pokebase` library. This tool supports segmented downloading, data validation, and exports data in JSON format optimized for the C++ Pokemon battle simulator. This directory contains tools for downloading and processing Pokemon data from the PokeAPI.
## Features ## Pokemon Downloader (`pokemon_downloader.py`)
- **Segmented Downloads**: Download specific ranges of Pokemon or moves for testing and incremental data collection A comprehensive tool for downloading generation-specific Pokemon data from the PokeAPI.
- **Concurrent Processing**: Multi-threaded downloads with configurable worker counts
- **Data Validation**: Built-in JSON schema validation for data integrity
- **Rate Limiting**: Respectful API usage with automatic rate limiting
- **Progress Tracking**: Beautiful progress bars and detailed logging
- **Battle-Ready Data**: Exports complete Pokemon stats, moves, types, and effectiveness data
- **CLI Interface**: Easy-to-use command-line interface with multiple commands
## Installation ### Features
1. Install dependencies: - **Type Effectiveness**: Downloads type matchup charts for each generation
```bash - **Pokemon Data**: Downloads Pokemon species data including stats, types, and abilities
cd /testbed - **Moves Data**: Downloads move information filtered by generation availability
pip install -r tools/requirements.txt - **Progress Tracking**: Uses progress bars and detailed logging
``` - **Error Handling**: Robust error handling with retry logic
- **Flexible Output**: Configurable output directory structure
2. The tool is ready to use! No additional setup required. ### Usage
## Quick Start #### Basic Usage
### Download a Small Set of Pokemon (Testing)
```bash ```bash
# Download first 5 Pokemon with their moves # Download all data for all generations
python -m tools.data.pokemon_downloader download-pokemon --start 1 --end 5 --include-moves python pokemon_downloader.py --all-generations --all-data-types
# Download specific Pokemon (Pikachu) # Download specific generations and data types
python -m tools.data.pokemon_downloader download-pokemon --start 25 --end 25 --include-moves python pokemon_downloader.py --generations generation-i,generation-ii --data-types types,pokemon
# Download only type effectiveness for Generation I
python pokemon_downloader.py --generations generation-i --data-types types
``` ```
### Download Specific Moves #### Command Line Options
- `--generations`: Comma-separated list of generations (generation-i, generation-ii, etc.)
- `--all-generations`: Download data for all available generations
- `--data-types`: Comma-separated list of data types (types, pokemon, moves)
- `--all-data-types`: Download all data types
- `--output-dir`: Output directory (default: data)
#### Examples
```bash ```bash
# Download first 10 moves # Download Pokemon and moves for Generation I and II
python -m tools.data.pokemon_downloader download-moves --move-ids "1,2,3,4,5,6,7,8,9,10" python tools/data/pokemon_downloader.py \
--generations generation-i,generation-ii \
--data-types pokemon,moves \
--output-dir data
# Download all type effectiveness data
python tools/data/pokemon_downloader.py \
--all-generations \
--data-types types
``` ```
### Download Type Effectiveness Data ### Output Structure
```bash The tool creates the following directory structure:
# Download complete type effectiveness chart
python -m tools.data.pokemon_downloader download-types ```
data/
├── types/
│ ├── generation-i.json
│ ├── generation-ii.json
│ └── ...
├── pokemon/
│ ├── generation-i.json
│ ├── generation-ii.json
│ └── ...
└── moves/
├── generation-i.json
├── generation-ii.json
└── ...
``` ```
### Download Complete Gen 1 Dataset ### Data Formats
```bash #### Type Effectiveness (`types/generation-X.json`)
# Download all Gen 1 Pokemon (1-151) with moves and type data
python -m tools.data.pokemon_downloader download-complete --start 1 --end 151
```
## CLI Commands
### Global Options
- `--output-dir`: Directory to save downloaded data (default: `data`)
- `--cache-dir`: Directory for API response caching (default: `.cache`)
- `--no-validation`: Disable data validation before saving
### Commands
#### `download-pokemon`
Download Pokemon data for a specific ID range.
```bash
python -m tools.data.pokemon_downloader download-pokemon [OPTIONS]
```
Options:
- `--start`: Starting Pokemon ID (default: 1)
- `--end`: Ending Pokemon ID (default: 10)
- `--workers`: Number of concurrent workers (default: 5)
- `--include-moves`: Also download moves for these Pokemon
#### `download-moves`
Download specific moves by ID.
```bash
python -m tools.data.pokemon_downloader download-moves --move-ids "1,2,3,4,5"
```
Options:
- `--move-ids`: Comma-separated list of move IDs
- `--workers`: Number of concurrent workers (default: 5)
#### `download-types`
Download type effectiveness data.
```bash
python -m tools.data.pokemon_downloader download-types
```
#### `download-complete`
Download complete dataset (Pokemon, moves, and type effectiveness).
```bash
python -m tools.data.pokemon_downloader download-complete [OPTIONS]
```
Options:
- `--start`: Starting Pokemon ID (default: 1)
- `--end`: Ending Pokemon ID (default: 151 for Gen 1)
- `--workers`: Number of concurrent workers (default: 5)
## Data Structure
### Pokemon Data Format
```json ```json
{ {
"1": { "fire": {
"id": 1, "double_damage_from": ["water", "ground", "rock"],
"name": "bulbasaur", "double_damage_to": ["grass", "ice", "bug", "steel"],
"types": ["grass", "poison"], "half_damage_from": ["fire", "water", "rock", "dragon"],
"base_stats": { "half_damage_to": ["fire", "water", "rock", "dragon"],
"hp": 45, "no_damage_from": ["fire"],
"attack": 49, "no_damage_to": ["fire"]
"defense": 49,
"special_attack": 65,
"special_defense": 65,
"speed": 45
},
"abilities": ["overgrow", "chlorophyll"],
"moves": [1, 2, 3, 4, ...],
"weight": 69,
"height": 7,
"base_experience": 64
} }
} }
``` ```
### Move Data Format #### Pokemon Data (`pokemon/generation-X.json`)
```json
{
"1": {
"id": 1,
"name": "pound",
"type": "normal",
"power": 40,
"accuracy": 100,
"pp": 35,
"priority": 0,
"damage_class": "physical",
"effect_id": null,
"effect_chance": null,
"target": "selected-pokemon",
"description": "Inflicts regular damage."
}
}
```
### Type Effectiveness Format
```json ```json
[ [
{ {
"attacking_type": "fire", "id": 1,
"defending_type": "grass", "name": "bulbasaur",
"damage_factor": 2.0 "types": ["grass", "poison"],
"stats": {
"hp": 45,
"attack": 49,
"defense": 49,
"special-attack": 65,
"special-defense": 65,
"speed": 45
}, },
{ "abilities": [...],
"attacking_type": "water", "species": {
"defending_type": "fire", "generation": "generation-i",
"damage_factor": 2.0 "is_legendary": false,
"is_mythical": false
}
} }
] ]
``` ```
## Examples #### Moves Data (`moves/generation-X.json`)
### Basic Usage (Python API) ```json
[
```python {
from pathlib import Path "id": 1,
from tools.data.pokemon_downloader import PokemonDownloader "name": "pound",
"power": 40,
# Initialize downloader "pp": 35,
downloader = PokemonDownloader( "accuracy": 100,
output_dir=Path("my_pokemon_data"), "type": "normal",
validate_data=True "damage_class": "physical",
) "generation": "generation-i"
}
# Download first 10 Pokemon ]
pokemon_data = downloader.download_pokemon_batch(1, 10)
downloader.save_pokemon_data(pokemon_data, "starter_pokemon.json")
# Download some moves
move_ids = [1, 2, 3, 4, 5] # Pound, Karate Chop, etc.
moves_data = downloader.download_moves_batch(move_ids)
downloader.save_moves_data(moves_data, "basic_moves.json")
# Download type effectiveness
effectiveness = downloader.download_type_effectiveness()
downloader.save_type_effectiveness(effectiveness, "types.json")
``` ```
### Testing Small Segments ### Dependencies
```python The tool requires the following Python packages (available in `tools/requirements.txt`):
# Test with just 3 Pokemon
python tools/data/test_downloader.py - `requests` - HTTP requests to PokeAPI
- `tqdm` - Progress bars
- `argparse` - Command line argument parsing (built-in)
### API Rate Limiting
The tool includes:
- Retry logic with exponential backoff
- Respectful request timing
- User-agent identification
- Error handling for rate limits
### New Features (Latest Update)
**Efficient Moves Download:**
- Downloads all moves once and saves to `data/all_moves.json`
- Subsequent generations filter from this master file instead of re-downloading
- Dramatically reduces API calls and download time
**Smart Caching:**
- Checks if data files already exist and contain expected amount of data
- Skips re-downloading if files are present and valid
- Supports partial downloads (e.g., if some Pokemon are missing, only downloads missing ones)
**File Structure:**
```
data/
├── all_moves.json # Complete moves database (all generations)
├── types/
│ ├── generation-i.json # Type effectiveness for each generation
│ ├── generation-ii.json
│ └── ...
├── pokemon/
│ ├── generation-i.json # Pokemon data for each generation
│ ├── generation-ii.json
│ └── ...
└── moves/
├── generation-i.json # Moves available in each generation
├── generation-ii.json # (filtered from all_moves.json)
└── ...
``` ```
### Custom Data Validation ### Performance Improvements
```python - **Moves**: Downloads all 900+ moves once, then filters per generation
from tools.data.schemas import DataValidator - **Caching**: Checks file existence and validity before downloading
- **Batch Processing**: Downloads complete datasets efficiently
- **Resume Support**: Can continue interrupted downloads
validator = DataValidator() ### Usage Examples with Caching
# Validate Pokemon data
errors = validator.validate_pokemon_collection(pokemon_data)
if errors:
print("Validation errors:", errors)
```
## Performance Considerations
- **Rate Limiting**: The tool implements 100ms delays between API calls to be respectful
- **Concurrent Workers**: Default of 5 workers balances speed with API courtesy
- **Caching**: API responses are cached to avoid redundant requests
- **Memory Usage**: Large datasets are processed in batches to manage memory
## Recommended Usage Patterns
### For Development/Testing
```bash ```bash
# Start small - download just a few Pokemon # First run - downloads all data
python -m tools.data.pokemon_downloader download-pokemon --start 1 --end 3 --include-moves python tools/data/pokemon_downloader.py --all-generations --all-data-types
# Test specific Pokemon you're interested in # Subsequent runs - uses cached data (much faster!)
python -m tools.data.pokemon_downloader download-pokemon --start 25 --end 25 --include-moves # Pikachu python tools/data/pokemon_downloader.py --all-generations --all-data-types
# Only downloads missing data
python tools/data/pokemon_downloader.py --generations generation-v --data-types pokemon
``` ```
### For Production Data ### Notes
```bash
# Download by generations or batches
python -m tools.data.pokemon_downloader download-pokemon --start 1 --end 50 --include-moves
python -m tools.data.pokemon_downloader download-pokemon --start 51 --end 100 --include-moves
python -m tools.data.pokemon_downloader download-pokemon --start 101 --end 151 --include-moves
# Always download type effectiveness data - Some Pokemon and moves appear in multiple generations
python -m tools.data.pokemon_downloader download-types - Type effectiveness is consistent across generations in the base game
``` - The tool respects the PokeAPI fair use policy
- Data is cached locally to avoid repeated API calls
### For Complete Gen 1 Dataset - `all_moves.json` contains the complete moves database for efficient filtering
```bash
# One command for everything (will take several minutes)
python -m tools.data.pokemon_downloader download-complete --start 1 --end 151
```
## Data Validation
The tool includes comprehensive JSON schema validation:
- **Pokemon Data**: Validates stats, types, abilities, and structure
- **Move Data**: Validates power, accuracy, PP, and damage classes
- **Type Effectiveness**: Validates damage multipliers and type names
- **Generation 1 Focus**: Ensures only valid Gen 1 types and data
Validation errors are displayed during save operations but don't prevent saving (warnings only).
## Integration with C++ Battle Simulator
The exported JSON files are designed to be easily consumed by the C++ battle simulator:
1. **Pokemon Data**: Direct mapping to Pokemon class properties
2. **Move Data**: Complete move information for battle calculations
3. **Type Effectiveness**: Lookup table for damage calculations
4. **Consistent IDs**: All data uses consistent Pokemon and move IDs
## Troubleshooting
### Common Issues
1. **Network Errors**: The tool retries failed requests automatically
2. **Rate Limiting**: Built-in delays prevent API rate limiting
3. **Memory Usage**: Large downloads are processed in batches
4. **Validation Warnings**: Usually safe to ignore, indicate minor data inconsistencies
### Getting Help
- Run tests: `python tools/data/test_downloader.py`
- Check logs: The tool provides detailed logging for debugging
- Validate data: Use `--no-validation` flag if validation is too strict
## Contributing
To extend the downloader:
1. Add new data structures to `pokemon_downloader.py`
2. Update validation schemas in `schemas.py`
3. Add tests to `test_downloader.py`
4. Update this documentation
## License
This tool is part of the Pokemon Battle Simulator project and follows the same license terms.

View File

@@ -1,228 +1,94 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
Example usage of the Pokemon Data Downloader. Example usage of the Pokemon Data Downloader
This script demonstrates various ways to use the Pokemon downloader This script demonstrates how to use the pokemon_downloader.py tool
for different scenarios and use cases. to download different types of Pokemon data from the PokeAPI.
""" """
import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
# Add the tools directory to Python path for imports def run_command(cmd, description):
sys.path.insert(0, str(Path(__file__).parent.parent)) """Run a command and print the description."""
print(f"\n{'='*60}")
print(f"Running: {description}")
print(f"Command: {' '.join(cmd)}")
print(f"{'='*60}")
from data.pokemon_downloader import PokemonDownloader result = subprocess.run(cmd, capture_output=True, text=True)
from data.schemas import DataValidator if result.returncode == 0:
from rich.console import Console print("✓ Success!")
from rich.panel import Panel if result.stdout:
from rich.table import Table print("Output:", result.stdout)
console = Console()
def example_basic_download():
"""Example 1: Basic Pokemon download."""
console.print(Panel.fit("Example 1: Basic Pokemon Download", style="bold blue"))
# Create downloader with custom output directory
downloader = PokemonDownloader(output_dir=Path("example_data"))
# Download first 3 Pokemon (Bulbasaur, Ivysaur, Venusaur)
console.print("Downloading first 3 Pokemon...")
pokemon_data = downloader.download_pokemon_batch(1, 3, max_workers=2)
if pokemon_data:
# Save to file
downloader.save_pokemon_data(pokemon_data, "starter_pokemon.json")
# Display summary
table = downloader.get_stats_summary(pokemon_data)
console.print(table)
console.print("✅ Basic download complete!\n")
def example_moves_download():
"""Example 2: Download specific moves."""
console.print(Panel.fit("Example 2: Download Specific Moves", style="bold blue"))
downloader = PokemonDownloader(output_dir=Path("example_data"))
# Download some classic moves
classic_moves = [1, 2, 33, 34, 36] # Pound, Karate Chop, Tackle, Body Slam, Take Down
console.print(f"Downloading {len(classic_moves)} classic moves...")
moves_data = downloader.download_moves_batch(classic_moves, max_workers=3)
if moves_data:
downloader.save_moves_data(moves_data, "classic_moves.json")
# Show move details
table = Table(title="Downloaded Moves")
table.add_column("Name", style="cyan")
table.add_column("Type", style="green")
table.add_column("Power", style="magenta")
table.add_column("Accuracy", style="yellow")
for move in moves_data.values():
power_str = str(move.power) if move.power else ""
accuracy_str = str(move.accuracy) if move.accuracy else ""
table.add_row(
move.name.title(),
move.type.title(),
power_str,
accuracy_str
)
console.print(table)
console.print("✅ Moves download complete!\n")
def example_validation():
"""Example 3: Data validation."""
console.print(Panel.fit("Example 3: Data Validation", style="bold blue"))
validator = DataValidator()
# Create sample Pokemon data for validation
sample_pokemon = {
"25": { # Pikachu
"id": 25,
"name": "pikachu",
"types": ["electric"],
"base_stats": {
"hp": 35,
"attack": 55,
"defense": 40,
"special_attack": 50,
"special_defense": 50,
"speed": 90
},
"abilities": ["static", "lightning-rod"],
"moves": [1, 2, 3, 4, 5],
"weight": 60,
"height": 4,
"base_experience": 112
}
}
# Validate the data
errors = validator.validate_pokemon_collection(sample_pokemon)
if errors:
console.print(f"❌ Validation found {len(errors)} errors:")
for error in errors:
console.print(f" - {error}")
else: else:
console.print("✅ Sample Pokemon data is valid!") print("✗ Failed!")
if result.stderr:
console.print("✅ Validation example complete!\n") print("Error:", result.stderr)
sys.exit(1)
def example_type_effectiveness():
"""Example 4: Download type effectiveness data."""
console.print(Panel.fit("Example 4: Type Effectiveness", style="bold blue"))
downloader = PokemonDownloader(output_dir=Path("example_data"))
console.print("Downloading type effectiveness data...")
effectiveness_data = downloader.download_type_effectiveness()
if effectiveness_data:
downloader.save_type_effectiveness(effectiveness_data, "type_chart.json")
# Show some interesting type matchups
table = Table(title="Sample Type Effectiveness")
table.add_column("Attacking Type", style="cyan")
table.add_column("Defending Type", style="green")
table.add_column("Effectiveness", style="magenta")
# Show super effective matchups
super_effective = [e for e in effectiveness_data if e.damage_factor == 2.0][:5]
for entry in super_effective:
table.add_row(
entry.attacking_type.title(),
entry.defending_type.title(),
"Super Effective (2x)"
)
console.print(table)
console.print(f"Total effectiveness entries: {len(effectiveness_data)}")
console.print("✅ Type effectiveness download complete!\n")
def example_integrated_workflow():
"""Example 5: Integrated workflow - Pokemon with their moves."""
console.print(Panel.fit("Example 5: Integrated Workflow", style="bold blue"))
downloader = PokemonDownloader(output_dir=Path("example_data"))
# Download a specific Pokemon (Charizard)
console.print("Downloading Charizard (ID: 6)...")
pokemon_data = downloader.download_pokemon_batch(6, 6, max_workers=1)
if pokemon_data:
charizard = pokemon_data[6]
console.print(f"✅ Downloaded {charizard.name.title()}")
console.print(f" - Types: {', '.join(charizard.types)}")
console.print(f" - Base stats total: {sum(charizard.base_stats.__dict__.values())}")
console.print(f" - Can learn {len(charizard.moves)} moves")
# Download first 15 moves that Charizard can learn
charizard_moves = charizard.moves[:15]
console.print(f"\nDownloading {len(charizard_moves)} of Charizard's moves...")
moves_data = downloader.download_moves_batch(charizard_moves, max_workers=3)
if moves_data:
# Save both datasets
downloader.save_pokemon_data(pokemon_data, "charizard.json")
downloader.save_moves_data(moves_data, "charizard_moves.json")
# Show some moves
console.print("\nSample moves Charizard can learn:")
for move_id, move in list(moves_data.items())[:5]:
power_str = f"{move.power} power" if move.power else "status move"
console.print(f" - {move.name.title()} ({move.type} type, {power_str})")
console.print("✅ Integrated workflow complete!\n")
def main(): def main():
"""Run all examples.""" """Demonstrate various usage examples of the Pokemon downloader."""
console.print(Panel.fit(
"🔥 Pokemon Data Downloader Examples",
style="bold red"
))
console.print("This script demonstrates various usage patterns for the Pokemon downloader.\n") print("Pokemon Data Downloader - Usage Examples")
print("=========================================")
# Run examples # Ensure we're in the right directory
try: if not Path("tools/data/pokemon_downloader.py").exists():
example_basic_download() print("Error: Please run this script from the project root directory")
example_moves_download() sys.exit(1)
example_validation()
example_type_effectiveness()
example_integrated_workflow()
console.print(Panel.fit( # Example 1: Download type effectiveness for Generation I
"🎉 All examples completed successfully!\n\n" run_command([
"Check the 'example_data' directory for downloaded files.\n" "python", "tools/data/pokemon_downloader.py",
"You can now use these patterns in your own projects.", "--generations", "generation-i",
style="bold green" "--data-types", "types"
)) ], "Download type effectiveness for Generation I")
except KeyboardInterrupt: # Example 2: Download Pokemon data for multiple generations
console.print("\n⚠️ Examples interrupted by user") run_command([
except Exception as e: "python", "tools/data/pokemon_downloader.py",
console.print(f"\n❌ Error running examples: {e}") "--generations", "generation-i,generation-ii",
return 1 "--data-types", "pokemon"
], "Download Pokemon data for Generations I and II")
return 0 # Example 3: Download moves data for Generation I
run_command([
"python", "tools/data/pokemon_downloader.py",
"--generations", "generation-i",
"--data-types", "moves"
], "Download moves data for Generation I")
# Example 4: Download all data types for one generation
run_command([
"python", "tools/data/pokemon_downloader.py",
"--generations", "generation-i",
"--all-data-types"
], "Download all data types for Generation I")
# Example 5: Download specific data to custom directory
custom_dir = "my_pokemon_data"
run_command([
"python", "tools/data/pokemon_downloader.py",
"--generations", "generation-i",
"--data-types", "types",
"--output-dir", custom_dir
], f"Download type data to custom directory: {custom_dir}")
# Show help
print(f"\n{'='*60}")
print("Available command line options:")
print(f"{'='*60}")
subprocess.run([
"python", "tools/data/pokemon_downloader.py", "--help"
])
print(f"\n{'='*60}")
print("Examples completed successfully!")
print("Check the 'data' directory for downloaded files.")
print(f"{'='*60}")
if __name__ == "__main__": if __name__ == "__main__":
sys.exit(main()) main()

1104
tools/data/pokemon_downloader.py Normal file → Executable file

File diff suppressed because it is too large Load Diff