mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
WIP: Add pickup data.
I think that PickupSlot is actually an unnecessary complication. It should be merged with PickupItem.
This commit is contained in:
parent
787a7b864b
commit
b473c66d95
5 changed files with 947 additions and 0 deletions
|
@ -176,6 +176,8 @@ Mics tables
|
||||||
|
|
||||||
.. dex-table:: Experience
|
.. dex-table:: Experience
|
||||||
.. dex-table:: PalPark
|
.. dex-table:: PalPark
|
||||||
|
.. dex-table:: PickupItem
|
||||||
|
.. dex-table:: PickupSlot
|
||||||
.. dex-table:: StatHint
|
.. dex-table:: StatHint
|
||||||
|
|
||||||
Conquest tables
|
Conquest tables
|
||||||
|
|
661
pokedex/data/csv/pickup_items.csv
Normal file
661
pokedex/data/csv/pickup_items.csv
Normal file
|
@ -0,0 +1,661 @@
|
||||||
|
slot_id,min_level,max_level,item_id
|
||||||
|
1,1,10,17
|
||||||
|
1,11,20,18
|
||||||
|
1,21,30,26
|
||||||
|
1,31,40,3
|
||||||
|
1,41,50,79
|
||||||
|
1,51,60,78
|
||||||
|
1,61,70,57
|
||||||
|
1,71,80,27
|
||||||
|
1,81,90,2
|
||||||
|
1,91,100,25
|
||||||
|
2,1,10,18
|
||||||
|
2,11,20,26
|
||||||
|
2,21,30,3
|
||||||
|
2,31,40,79
|
||||||
|
2,41,50,78
|
||||||
|
2,51,60,57
|
||||||
|
2,61,70,27
|
||||||
|
2,71,80,2
|
||||||
|
2,81,90,25
|
||||||
|
2,91,100,50
|
||||||
|
3,1,10,26
|
||||||
|
3,11,20,3
|
||||||
|
3,21,30,79
|
||||||
|
3,31,40,78
|
||||||
|
3,41,50,57
|
||||||
|
3,51,60,27
|
||||||
|
3,61,70,2
|
||||||
|
3,71,80,25
|
||||||
|
3,81,90,50
|
||||||
|
3,91,100,46
|
||||||
|
4,1,10,3
|
||||||
|
4,11,20,79
|
||||||
|
4,21,30,78
|
||||||
|
4,31,40,57
|
||||||
|
4,41,50,27
|
||||||
|
4,51,60,2
|
||||||
|
4,61,70,25
|
||||||
|
4,71,80,50
|
||||||
|
4,81,90,46
|
||||||
|
4,91,100,28
|
||||||
|
5,1,10,79
|
||||||
|
5,11,20,78
|
||||||
|
5,21,30,57
|
||||||
|
5,31,40,27
|
||||||
|
5,41,50,2
|
||||||
|
5,51,60,25
|
||||||
|
5,61,70,50
|
||||||
|
5,71,80,46
|
||||||
|
5,81,90,28
|
||||||
|
5,91,100,45
|
||||||
|
6,1,10,78
|
||||||
|
6,11,20,57
|
||||||
|
6,21,30,27
|
||||||
|
6,31,40,2
|
||||||
|
6,41,50,25
|
||||||
|
6,51,60,50
|
||||||
|
6,61,70,46
|
||||||
|
6,71,80,28
|
||||||
|
6,81,90,45
|
||||||
|
6,91,100,23
|
||||||
|
7,1,10,57
|
||||||
|
7,11,20,27
|
||||||
|
7,21,30,2
|
||||||
|
7,31,40,25
|
||||||
|
7,41,50,50
|
||||||
|
7,51,60,46
|
||||||
|
7,61,70,28
|
||||||
|
7,71,80,45
|
||||||
|
7,81,90,23
|
||||||
|
7,91,100,29
|
||||||
|
8,1,10,27
|
||||||
|
8,11,20,2
|
||||||
|
8,21,30,25
|
||||||
|
8,31,40,50
|
||||||
|
8,41,50,46
|
||||||
|
8,51,60,28
|
||||||
|
8,61,70,45
|
||||||
|
8,71,80,23
|
||||||
|
8,81,90,29
|
||||||
|
8,91,100,51
|
||||||
|
9,1,10,2
|
||||||
|
9,11,20,25
|
||||||
|
9,21,30,50
|
||||||
|
9,31,40,46
|
||||||
|
9,41,50,28
|
||||||
|
9,51,60,45
|
||||||
|
9,61,70,23
|
||||||
|
9,71,80,29
|
||||||
|
9,81,90,51
|
||||||
|
9,91,100,41
|
||||||
|
10,1,10,92
|
||||||
|
10,11,20,198
|
||||||
|
10,21,30,23
|
||||||
|
10,31,40,38
|
||||||
|
10,41,50,191
|
||||||
|
10,51,60,348
|
||||||
|
10,61,70,40
|
||||||
|
10,71,80,305
|
||||||
|
10,81,90,211
|
||||||
|
10,91,100,330
|
||||||
|
11,1,10,25
|
||||||
|
11,11,20,92
|
||||||
|
11,21,30,198
|
||||||
|
11,31,40,23
|
||||||
|
11,41,50,38
|
||||||
|
11,51,60,191
|
||||||
|
11,61,70,348
|
||||||
|
11,71,80,40
|
||||||
|
11,81,90,305
|
||||||
|
11,91,100,211
|
||||||
|
12,1,10,17
|
||||||
|
12,11,20,18
|
||||||
|
12,21,30,26
|
||||||
|
12,31,40,3
|
||||||
|
12,41,50,79
|
||||||
|
12,51,60,78
|
||||||
|
12,61,70,27
|
||||||
|
12,71,80,25
|
||||||
|
12,81,90,2
|
||||||
|
12,91,100,28
|
||||||
|
13,1,10,18
|
||||||
|
13,11,20,26
|
||||||
|
13,21,30,3
|
||||||
|
13,31,40,79
|
||||||
|
13,41,50,78
|
||||||
|
13,51,60,27
|
||||||
|
13,61,70,25
|
||||||
|
13,71,80,2
|
||||||
|
13,81,90,28
|
||||||
|
13,91,100,50
|
||||||
|
14,1,10,26
|
||||||
|
14,11,20,3
|
||||||
|
14,21,30,79
|
||||||
|
14,31,40,78
|
||||||
|
14,41,50,27
|
||||||
|
14,51,60,25
|
||||||
|
14,61,70,2
|
||||||
|
14,71,80,28
|
||||||
|
14,81,90,50
|
||||||
|
14,91,100,108
|
||||||
|
15,1,10,3
|
||||||
|
15,11,20,79
|
||||||
|
15,21,30,78
|
||||||
|
15,31,40,27
|
||||||
|
15,41,50,25
|
||||||
|
15,51,60,2
|
||||||
|
15,61,70,28
|
||||||
|
15,71,80,50
|
||||||
|
15,81,90,108
|
||||||
|
15,91,100,107
|
||||||
|
16,1,10,79
|
||||||
|
16,11,20,78
|
||||||
|
16,21,30,27
|
||||||
|
16,31,40,25
|
||||||
|
16,41,50,2
|
||||||
|
16,51,60,28
|
||||||
|
16,61,70,50
|
||||||
|
16,71,80,108
|
||||||
|
16,81,90,107
|
||||||
|
16,91,100,109
|
||||||
|
17,1,10,78
|
||||||
|
17,11,20,27
|
||||||
|
17,21,30,25
|
||||||
|
17,31,40,2
|
||||||
|
17,41,50,28
|
||||||
|
17,51,60,50
|
||||||
|
17,61,70,108
|
||||||
|
17,71,80,107
|
||||||
|
17,81,90,109
|
||||||
|
17,91,100,23
|
||||||
|
18,1,10,27
|
||||||
|
18,11,20,25
|
||||||
|
18,21,30,2
|
||||||
|
18,31,40,28
|
||||||
|
18,41,50,50
|
||||||
|
18,51,60,108
|
||||||
|
18,61,70,107
|
||||||
|
18,71,80,109
|
||||||
|
18,81,90,23
|
||||||
|
18,91,100,29
|
||||||
|
19,1,10,25
|
||||||
|
19,11,20,2
|
||||||
|
19,21,30,28
|
||||||
|
19,31,40,50
|
||||||
|
19,41,50,108
|
||||||
|
19,51,60,107
|
||||||
|
19,61,70,109
|
||||||
|
19,71,80,23
|
||||||
|
19,81,90,29
|
||||||
|
19,91,100,51
|
||||||
|
20,1,10,2
|
||||||
|
20,11,20,28
|
||||||
|
20,21,30,50
|
||||||
|
20,31,40,108
|
||||||
|
20,41,50,107
|
||||||
|
20,51,60,109
|
||||||
|
20,61,70,23
|
||||||
|
20,71,80,29
|
||||||
|
20,81,90,51
|
||||||
|
20,91,100,41
|
||||||
|
21,1,10,92
|
||||||
|
21,11,20,198
|
||||||
|
21,21,30,23
|
||||||
|
21,31,40,38
|
||||||
|
21,41,50,191
|
||||||
|
21,51,60,348
|
||||||
|
21,61,70,40
|
||||||
|
21,71,80,305
|
||||||
|
21,81,90,211
|
||||||
|
21,91,100,330
|
||||||
|
22,1,10,25
|
||||||
|
22,11,20,92
|
||||||
|
22,21,30,198
|
||||||
|
22,31,40,23
|
||||||
|
22,41,50,38
|
||||||
|
22,51,60,191
|
||||||
|
22,61,70,348
|
||||||
|
22,71,80,40
|
||||||
|
22,81,90,305
|
||||||
|
22,91,100,211
|
||||||
|
23,1,10,17
|
||||||
|
23,11,20,18
|
||||||
|
23,21,30,26
|
||||||
|
23,31,40,3
|
||||||
|
23,41,50,79
|
||||||
|
23,51,60,78
|
||||||
|
23,61,70,27
|
||||||
|
23,71,80,25
|
||||||
|
23,81,90,2
|
||||||
|
23,91,100,28
|
||||||
|
24,1,10,18
|
||||||
|
24,11,20,26
|
||||||
|
24,21,30,3
|
||||||
|
24,31,40,79
|
||||||
|
24,41,50,78
|
||||||
|
24,51,60,27
|
||||||
|
24,61,70,25
|
||||||
|
24,71,80,2
|
||||||
|
24,81,90,28
|
||||||
|
24,91,100,50
|
||||||
|
25,1,10,26
|
||||||
|
25,11,20,3
|
||||||
|
25,21,30,79
|
||||||
|
25,31,40,78
|
||||||
|
25,41,50,27
|
||||||
|
25,51,60,25
|
||||||
|
25,61,70,2
|
||||||
|
25,71,80,28
|
||||||
|
25,81,90,50
|
||||||
|
25,91,100,108
|
||||||
|
26,1,10,3
|
||||||
|
26,11,20,79
|
||||||
|
26,21,30,78
|
||||||
|
26,31,40,27
|
||||||
|
26,41,50,25
|
||||||
|
26,51,60,2
|
||||||
|
26,61,70,28
|
||||||
|
26,71,80,50
|
||||||
|
26,81,90,108
|
||||||
|
26,91,100,107
|
||||||
|
27,1,10,79
|
||||||
|
27,11,20,78
|
||||||
|
27,21,30,27
|
||||||
|
27,31,40,25
|
||||||
|
27,41,50,2
|
||||||
|
27,51,60,28
|
||||||
|
27,61,70,50
|
||||||
|
27,71,80,108
|
||||||
|
27,81,90,107
|
||||||
|
27,91,100,109
|
||||||
|
28,1,10,78
|
||||||
|
28,11,20,27
|
||||||
|
28,21,30,25
|
||||||
|
28,31,40,2
|
||||||
|
28,41,50,28
|
||||||
|
28,51,60,50
|
||||||
|
28,61,70,108
|
||||||
|
28,71,80,107
|
||||||
|
28,81,90,109
|
||||||
|
28,91,100,23
|
||||||
|
29,1,10,27
|
||||||
|
29,11,20,25
|
||||||
|
29,21,30,2
|
||||||
|
29,31,40,28
|
||||||
|
29,41,50,50
|
||||||
|
29,51,60,108
|
||||||
|
29,61,70,107
|
||||||
|
29,71,80,109
|
||||||
|
29,81,90,23
|
||||||
|
29,91,100,29
|
||||||
|
30,1,10,25
|
||||||
|
30,11,20,2
|
||||||
|
30,21,30,28
|
||||||
|
30,31,40,50
|
||||||
|
30,41,50,108
|
||||||
|
30,51,60,107
|
||||||
|
30,61,70,109
|
||||||
|
30,71,80,23
|
||||||
|
30,81,90,29
|
||||||
|
30,91,100,51
|
||||||
|
31,1,10,2
|
||||||
|
31,11,20,28
|
||||||
|
31,21,30,50
|
||||||
|
31,31,40,108
|
||||||
|
31,41,50,107
|
||||||
|
31,51,60,109
|
||||||
|
31,61,70,23
|
||||||
|
31,71,80,29
|
||||||
|
31,81,90,51
|
||||||
|
31,91,100,41
|
||||||
|
32,1,10,92
|
||||||
|
32,11,20,198
|
||||||
|
32,21,30,23
|
||||||
|
32,31,40,38
|
||||||
|
32,41,50,191
|
||||||
|
32,51,60,348
|
||||||
|
32,61,70,40
|
||||||
|
32,71,80,305
|
||||||
|
32,81,90,211
|
||||||
|
32,91,100,330
|
||||||
|
33,1,10,25
|
||||||
|
33,11,20,92
|
||||||
|
33,21,30,198
|
||||||
|
33,31,40,23
|
||||||
|
33,41,50,38
|
||||||
|
33,51,60,191
|
||||||
|
33,61,70,348
|
||||||
|
33,71,80,40
|
||||||
|
33,81,90,305
|
||||||
|
33,91,100,211
|
||||||
|
34,1,10,17
|
||||||
|
34,11,20,18
|
||||||
|
34,21,30,26
|
||||||
|
34,31,40,3
|
||||||
|
34,41,50,79
|
||||||
|
34,51,60,78
|
||||||
|
34,61,70,27
|
||||||
|
34,71,80,25
|
||||||
|
34,81,90,2
|
||||||
|
34,91,100,28
|
||||||
|
35,1,10,18
|
||||||
|
35,11,20,26
|
||||||
|
35,21,30,3
|
||||||
|
35,31,40,79
|
||||||
|
35,41,50,78
|
||||||
|
35,51,60,27
|
||||||
|
35,61,70,25
|
||||||
|
35,71,80,2
|
||||||
|
35,81,90,28
|
||||||
|
35,91,100,50
|
||||||
|
36,1,10,26
|
||||||
|
36,11,20,3
|
||||||
|
36,21,30,79
|
||||||
|
36,31,40,78
|
||||||
|
36,41,50,27
|
||||||
|
36,51,60,25
|
||||||
|
36,61,70,2
|
||||||
|
36,71,80,28
|
||||||
|
36,81,90,50
|
||||||
|
36,91,100,80
|
||||||
|
37,1,10,3
|
||||||
|
37,11,20,79
|
||||||
|
37,21,30,78
|
||||||
|
37,31,40,27
|
||||||
|
37,41,50,25
|
||||||
|
37,51,60,2
|
||||||
|
37,61,70,28
|
||||||
|
37,71,80,50
|
||||||
|
37,81,90,80
|
||||||
|
37,91,100,81
|
||||||
|
38,1,10,79
|
||||||
|
38,11,20,78
|
||||||
|
38,21,30,27
|
||||||
|
38,31,40,25
|
||||||
|
38,41,50,2
|
||||||
|
38,51,60,28
|
||||||
|
38,61,70,50
|
||||||
|
38,71,80,80
|
||||||
|
38,81,90,81
|
||||||
|
38,91,100,93
|
||||||
|
39,1,10,78
|
||||||
|
39,11,20,27
|
||||||
|
39,21,30,25
|
||||||
|
39,31,40,2
|
||||||
|
39,41,50,28
|
||||||
|
39,51,60,50
|
||||||
|
39,61,70,80
|
||||||
|
39,71,80,81
|
||||||
|
39,81,90,93
|
||||||
|
39,91,100,23
|
||||||
|
40,1,10,27
|
||||||
|
40,11,20,25
|
||||||
|
40,21,30,2
|
||||||
|
40,31,40,28
|
||||||
|
40,41,50,50
|
||||||
|
40,51,60,80
|
||||||
|
40,61,70,81
|
||||||
|
40,71,80,93
|
||||||
|
40,81,90,23
|
||||||
|
40,91,100,29
|
||||||
|
41,1,10,25
|
||||||
|
41,11,20,2
|
||||||
|
41,21,30,28
|
||||||
|
41,31,40,50
|
||||||
|
41,41,50,80
|
||||||
|
41,51,60,81
|
||||||
|
41,61,70,93
|
||||||
|
41,71,80,23
|
||||||
|
41,81,90,29
|
||||||
|
41,91,100,51
|
||||||
|
42,1,10,2
|
||||||
|
42,11,20,28
|
||||||
|
42,21,30,50
|
||||||
|
42,31,40,80
|
||||||
|
42,41,50,81
|
||||||
|
42,51,60,93
|
||||||
|
42,61,70,23
|
||||||
|
42,71,80,29
|
||||||
|
42,81,90,51
|
||||||
|
42,91,100,41
|
||||||
|
43,1,10,92
|
||||||
|
43,11,20,198
|
||||||
|
43,21,30,23
|
||||||
|
43,31,40,38
|
||||||
|
43,41,50,255
|
||||||
|
43,51,60,360
|
||||||
|
43,61,70,40
|
||||||
|
43,71,80,390
|
||||||
|
43,81,90,211
|
||||||
|
43,91,100,330
|
||||||
|
44,1,10,25
|
||||||
|
44,11,20,92
|
||||||
|
44,21,30,198
|
||||||
|
44,31,40,23
|
||||||
|
44,41,50,38
|
||||||
|
44,51,60,255
|
||||||
|
44,61,70,360
|
||||||
|
44,71,80,40
|
||||||
|
44,81,90,390
|
||||||
|
44,91,100,211
|
||||||
|
45,1,10,17
|
||||||
|
45,11,20,18
|
||||||
|
45,21,30,26
|
||||||
|
45,31,40,3
|
||||||
|
45,41,50,79
|
||||||
|
45,51,60,78
|
||||||
|
45,61,70,27
|
||||||
|
45,71,80,25
|
||||||
|
45,81,90,2
|
||||||
|
45,91,100,28
|
||||||
|
46,1,10,18
|
||||||
|
46,11,20,26
|
||||||
|
46,21,30,3
|
||||||
|
46,31,40,79
|
||||||
|
46,41,50,78
|
||||||
|
46,51,60,27
|
||||||
|
46,61,70,25
|
||||||
|
46,71,80,2
|
||||||
|
46,81,90,28
|
||||||
|
46,91,100,50
|
||||||
|
47,1,10,26
|
||||||
|
47,11,20,3
|
||||||
|
47,21,30,79
|
||||||
|
47,31,40,78
|
||||||
|
47,41,50,27
|
||||||
|
47,51,60,25
|
||||||
|
47,61,70,2
|
||||||
|
47,71,80,28
|
||||||
|
47,81,90,50
|
||||||
|
47,91,100,80
|
||||||
|
48,1,10,3
|
||||||
|
48,11,20,79
|
||||||
|
48,21,30,78
|
||||||
|
48,31,40,27
|
||||||
|
48,41,50,25
|
||||||
|
48,51,60,2
|
||||||
|
48,61,70,28
|
||||||
|
48,71,80,50
|
||||||
|
48,81,90,80
|
||||||
|
48,91,100,81
|
||||||
|
49,1,10,79
|
||||||
|
49,11,20,78
|
||||||
|
49,21,30,27
|
||||||
|
49,31,40,25
|
||||||
|
49,41,50,2
|
||||||
|
49,51,60,28
|
||||||
|
49,61,70,50
|
||||||
|
49,71,80,80
|
||||||
|
49,81,90,81
|
||||||
|
49,91,100,93
|
||||||
|
50,1,10,78
|
||||||
|
50,11,20,27
|
||||||
|
50,21,30,25
|
||||||
|
50,31,40,2
|
||||||
|
50,41,50,28
|
||||||
|
50,51,60,50
|
||||||
|
50,61,70,80
|
||||||
|
50,71,80,81
|
||||||
|
50,81,90,93
|
||||||
|
50,91,100,23
|
||||||
|
51,1,10,27
|
||||||
|
51,11,20,25
|
||||||
|
51,21,30,2
|
||||||
|
51,31,40,28
|
||||||
|
51,41,50,50
|
||||||
|
51,51,60,80
|
||||||
|
51,61,70,81
|
||||||
|
51,71,80,93
|
||||||
|
51,81,90,23
|
||||||
|
51,91,100,29
|
||||||
|
52,1,10,25
|
||||||
|
52,11,20,2
|
||||||
|
52,21,30,28
|
||||||
|
52,31,40,50
|
||||||
|
52,41,50,80
|
||||||
|
52,51,60,81
|
||||||
|
52,61,70,93
|
||||||
|
52,71,80,23
|
||||||
|
52,81,90,29
|
||||||
|
52,91,100,51
|
||||||
|
53,1,10,2
|
||||||
|
53,11,20,28
|
||||||
|
53,21,30,50
|
||||||
|
53,31,40,80
|
||||||
|
53,41,50,81
|
||||||
|
53,51,60,93
|
||||||
|
53,61,70,23
|
||||||
|
53,71,80,29
|
||||||
|
53,81,90,51
|
||||||
|
53,91,100,41
|
||||||
|
54,1,10,92
|
||||||
|
54,11,20,198
|
||||||
|
54,21,30,23
|
||||||
|
54,31,40,38
|
||||||
|
54,41,50,255
|
||||||
|
54,51,60,580
|
||||||
|
54,61,70,40
|
||||||
|
54,71,80,580
|
||||||
|
54,81,90,211
|
||||||
|
54,91,100,580
|
||||||
|
55,1,10,25
|
||||||
|
55,11,20,92
|
||||||
|
55,21,30,198
|
||||||
|
55,31,40,23
|
||||||
|
55,41,50,38
|
||||||
|
55,51,60,255
|
||||||
|
55,61,70,580
|
||||||
|
55,71,80,40
|
||||||
|
55,81,90,580
|
||||||
|
55,91,100,211
|
||||||
|
56,1,10,17
|
||||||
|
56,11,20,18
|
||||||
|
56,21,30,26
|
||||||
|
56,31,40,3
|
||||||
|
56,41,50,79
|
||||||
|
56,51,60,78
|
||||||
|
56,61,70,27
|
||||||
|
56,71,80,25
|
||||||
|
56,81,90,2
|
||||||
|
56,91,100,28
|
||||||
|
57,1,10,18
|
||||||
|
57,11,20,26
|
||||||
|
57,21,30,3
|
||||||
|
57,31,40,79
|
||||||
|
57,41,50,78
|
||||||
|
57,51,60,27
|
||||||
|
57,61,70,25
|
||||||
|
57,71,80,2
|
||||||
|
57,81,90,28
|
||||||
|
57,91,100,50
|
||||||
|
58,1,10,26
|
||||||
|
58,11,20,3
|
||||||
|
58,21,30,79
|
||||||
|
58,31,40,78
|
||||||
|
58,41,50,27
|
||||||
|
58,51,60,25
|
||||||
|
58,61,70,2
|
||||||
|
58,71,80,28
|
||||||
|
58,81,90,50
|
||||||
|
58,91,100,80
|
||||||
|
59,1,10,3
|
||||||
|
59,11,20,79
|
||||||
|
59,21,30,78
|
||||||
|
59,31,40,27
|
||||||
|
59,41,50,25
|
||||||
|
59,51,60,2
|
||||||
|
59,61,70,28
|
||||||
|
59,71,80,50
|
||||||
|
59,81,90,80
|
||||||
|
59,91,100,81
|
||||||
|
60,1,10,79
|
||||||
|
60,11,20,78
|
||||||
|
60,21,30,27
|
||||||
|
60,31,40,25
|
||||||
|
60,41,50,2
|
||||||
|
60,51,60,28
|
||||||
|
60,61,70,50
|
||||||
|
60,71,80,80
|
||||||
|
60,81,90,81
|
||||||
|
60,91,100,93
|
||||||
|
61,1,10,78
|
||||||
|
61,11,20,27
|
||||||
|
61,21,30,25
|
||||||
|
61,31,40,2
|
||||||
|
61,41,50,28
|
||||||
|
61,51,60,50
|
||||||
|
61,61,70,80
|
||||||
|
61,71,80,81
|
||||||
|
61,81,90,93
|
||||||
|
61,91,100,23
|
||||||
|
62,1,10,27
|
||||||
|
62,11,20,25
|
||||||
|
62,21,30,2
|
||||||
|
62,31,40,28
|
||||||
|
62,41,50,50
|
||||||
|
62,51,60,80
|
||||||
|
62,61,70,81
|
||||||
|
62,71,80,93
|
||||||
|
62,81,90,23
|
||||||
|
62,91,100,29
|
||||||
|
63,1,10,25
|
||||||
|
63,11,20,2
|
||||||
|
63,21,30,28
|
||||||
|
63,31,40,50
|
||||||
|
63,41,50,80
|
||||||
|
63,51,60,81
|
||||||
|
63,61,70,93
|
||||||
|
63,71,80,23
|
||||||
|
63,81,90,29
|
||||||
|
63,91,100,51
|
||||||
|
64,1,10,2
|
||||||
|
64,11,20,28
|
||||||
|
64,21,30,50
|
||||||
|
64,31,40,80
|
||||||
|
64,41,50,81
|
||||||
|
64,51,60,93
|
||||||
|
64,61,70,23
|
||||||
|
64,71,80,29
|
||||||
|
64,81,90,51
|
||||||
|
64,91,100,41
|
||||||
|
65,1,10,92
|
||||||
|
65,11,20,198
|
||||||
|
65,21,30,23
|
||||||
|
65,31,40,38
|
||||||
|
65,41,50,255
|
||||||
|
65,51,60,580
|
||||||
|
65,61,70,40
|
||||||
|
65,71,80,580
|
||||||
|
65,81,90,211
|
||||||
|
65,91,100,580
|
||||||
|
66,1,10,25
|
||||||
|
66,11,20,92
|
||||||
|
66,21,30,198
|
||||||
|
66,31,40,23
|
||||||
|
66,41,50,38
|
||||||
|
66,51,60,255
|
||||||
|
66,61,70,580
|
||||||
|
66,71,80,40
|
||||||
|
66,81,90,580
|
||||||
|
66,91,100,211
|
|
67
pokedex/data/csv/pickup_slots.csv
Normal file
67
pokedex/data/csv/pickup_slots.csv
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
id,version_group_id,slot,rarity
|
||||||
|
1,6,0,30
|
||||||
|
2,6,1,10
|
||||||
|
3,6,2,10
|
||||||
|
4,6,3,10
|
||||||
|
5,6,4,10
|
||||||
|
6,6,5,10
|
||||||
|
7,6,6,10
|
||||||
|
8,6,7,5
|
||||||
|
9,6,8,3
|
||||||
|
10,6,9,1
|
||||||
|
11,6,10,1
|
||||||
|
12,8,0,30
|
||||||
|
13,8,1,10
|
||||||
|
14,8,2,10
|
||||||
|
15,8,3,10
|
||||||
|
16,8,4,10
|
||||||
|
17,8,5,10
|
||||||
|
18,8,6,10
|
||||||
|
19,8,7,5
|
||||||
|
20,8,8,3
|
||||||
|
21,8,9,1
|
||||||
|
22,8,10,1
|
||||||
|
23,9,0,30
|
||||||
|
24,9,1,10
|
||||||
|
25,9,2,10
|
||||||
|
26,9,3,10
|
||||||
|
27,9,4,10
|
||||||
|
28,9,5,10
|
||||||
|
29,9,6,10
|
||||||
|
30,9,7,5
|
||||||
|
31,9,8,3
|
||||||
|
32,9,9,1
|
||||||
|
33,9,10,1
|
||||||
|
34,10,0,30
|
||||||
|
35,10,1,10
|
||||||
|
36,10,2,10
|
||||||
|
37,10,3,10
|
||||||
|
38,10,4,10
|
||||||
|
39,10,5,10
|
||||||
|
40,10,6,10
|
||||||
|
41,10,7,5
|
||||||
|
42,10,8,3
|
||||||
|
43,10,9,1
|
||||||
|
44,10,10,1
|
||||||
|
45,11,0,30
|
||||||
|
46,11,1,10
|
||||||
|
47,11,2,10
|
||||||
|
48,11,3,10
|
||||||
|
49,11,4,10
|
||||||
|
50,11,5,10
|
||||||
|
51,11,6,10
|
||||||
|
52,11,7,4
|
||||||
|
53,11,8,4
|
||||||
|
54,11,9,1
|
||||||
|
55,11,10,1
|
||||||
|
56,14,0,30
|
||||||
|
57,14,1,10
|
||||||
|
58,14,2,10
|
||||||
|
59,14,3,10
|
||||||
|
60,14,4,10
|
||||||
|
61,14,5,10
|
||||||
|
62,14,6,10
|
||||||
|
63,14,7,4
|
||||||
|
64,14,8,4
|
||||||
|
65,14,9,1
|
||||||
|
66,14,10,1
|
|
|
@ -1466,6 +1466,45 @@ create_translation_table('pal_park_area_names', PalParkArea, 'names',
|
||||||
info=dict(description="The name", format='plaintext', official=False)),
|
info=dict(description="The name", format='plaintext', official=False)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class PickupItem(TableBase):
|
||||||
|
u"""Items which can be found with the Pickup ability.
|
||||||
|
|
||||||
|
Level ranges are assumed not to overlap, and max_level is assumed to be
|
||||||
|
constant with respect to min_level.
|
||||||
|
"""
|
||||||
|
|
||||||
|
__tablename__ = 'pickup_items'
|
||||||
|
__singlename__ = 'pickup_item'
|
||||||
|
|
||||||
|
slot_id = Column(Integer, ForeignKey('pickup_slots.id'), primary_key=True,
|
||||||
|
info=dict(description="The slot"))
|
||||||
|
min_level = Column(Integer, nullable=False, primary_key=True,
|
||||||
|
info=dict(description="Minimum level at which this slot applies"))
|
||||||
|
max_level = Column(Integer, nullable=False,
|
||||||
|
info=dict(description="Maximum level at which this slot applies"))
|
||||||
|
item_id = Column(Integer, ForeignKey('items.id'),
|
||||||
|
info=dict(description="The item"))
|
||||||
|
|
||||||
|
class PickupSlot(TableBase):
|
||||||
|
u"""The chance of finding a particular item with Pickup."""
|
||||||
|
|
||||||
|
__tablename__ = 'pickup_slots'
|
||||||
|
__singlename__ = 'pickup_slot'
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True,
|
||||||
|
info=dict(description=""))
|
||||||
|
version_group_id = Column(Integer, ForeignKey('version_groups.id'),
|
||||||
|
info=dict(description="The version group"))
|
||||||
|
slot = Column(Integer, nullable=False,
|
||||||
|
info=dict(description="Index of the slot + 1"))
|
||||||
|
rarity = Column(Integer, nullable=False,
|
||||||
|
info=dict(description="Percent chance of this slot being chosen"))
|
||||||
|
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint(version_group_id, slot),
|
||||||
|
{},
|
||||||
|
)
|
||||||
|
|
||||||
class PokeathlonStat(TableBase):
|
class PokeathlonStat(TableBase):
|
||||||
u"""A Pokéathlon stat, such as "Stamina" or "Jump".
|
u"""A Pokéathlon stat, such as "Stamina" or "Jump".
|
||||||
"""
|
"""
|
||||||
|
@ -2471,6 +2510,12 @@ PalPark.area = relationship(PalParkArea,
|
||||||
innerjoin=True, lazy='joined')
|
innerjoin=True, lazy='joined')
|
||||||
|
|
||||||
|
|
||||||
|
PickupItem.slot = relationship(PickupSlot)
|
||||||
|
PickupItem.item = relationship(Item)
|
||||||
|
|
||||||
|
PickupSlot.version_group = relationship(VersionGroup)
|
||||||
|
|
||||||
|
|
||||||
Pokedex.region = relationship(Region,
|
Pokedex.region = relationship(Region,
|
||||||
innerjoin=True,
|
innerjoin=True,
|
||||||
backref='pokedexes')
|
backref='pokedexes')
|
||||||
|
|
172
scripts/pickup.py
Normal file
172
scripts/pickup.py
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
from random import randint
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
import pokedex.db
|
||||||
|
import pokedex.db.tables as t
|
||||||
|
|
||||||
|
Pickup = namedtuple('Pickup', 'version_group rates common_items rare_items')
|
||||||
|
|
||||||
|
# The item lists below are taken directly from the games, and differ from
|
||||||
|
# the popularly reported values, e.g., on Serebii and Bulbapedia, in the
|
||||||
|
# following ways:
|
||||||
|
#
|
||||||
|
# - Hyper Potion at level 1-10, 1%, instead of various other items
|
||||||
|
# - There are no Lucky Eggs. Anywhere. Ever.
|
||||||
|
|
||||||
|
# These rates have been verified in SoulSilver
|
||||||
|
rates = [30, 10, 10, 10, 10, 10, 10, 5, 3]
|
||||||
|
|
||||||
|
# The following function is a sketch how the pickup items are chosen, taken
|
||||||
|
# from SoulSilver (U). For full details set a breakpoint at 0x02244106.
|
||||||
|
#
|
||||||
|
# Note that the 1% items are backwards:
|
||||||
|
# n=98 gives index 1, and n=99 gives index 0
|
||||||
|
def get_reward(pickup, level, n=None):
|
||||||
|
if n is None:
|
||||||
|
n = randint(0, 99)
|
||||||
|
level = (level - 1) // 10
|
||||||
|
assert 0 <= level < 10
|
||||||
|
threshold = 0
|
||||||
|
for index, rate in enumerate(pickup.rates):
|
||||||
|
threshold += rate
|
||||||
|
if n < threshold:
|
||||||
|
return pickup.common_items[level + index]
|
||||||
|
else:
|
||||||
|
assert 98 <= n <= 99
|
||||||
|
index = 99 - n
|
||||||
|
assert 0 <= index <= 1
|
||||||
|
return pickup.rare_items[level + index]
|
||||||
|
|
||||||
|
# Emerald (U)
|
||||||
|
# The rewards lists are located at 0x31c440 in the ROM.
|
||||||
|
# The second immediately follows the first, at 0x31C464.
|
||||||
|
# 0x0031C440: 0D000E00 16000300 56005500 4B001700 ........V.U.K...
|
||||||
|
# 0x0031C450: 02001500 44004000 18003F00 13001900 ....D.@...?.....
|
||||||
|
# 0x0031C460: 45002500 15006E00 BB001300 2200B400 E.%...n....."...
|
||||||
|
# 0x0031C470: 4C012400 2101C800 3A011E28 323C4650 L.$.!...:..(2<FP
|
||||||
|
em = Pickup('emerald', rates,
|
||||||
|
[0x0D, 0x0E, 0x16, 0x03, 0x56, 0x55, 0x4B, 0x17, 0x02,
|
||||||
|
0x15, 0x44, 0x40, 0x18, 0x3F, 0x13, 0x19, 0x45, 0x25],
|
||||||
|
[0x15, 0x6E, 0xBB, 0x13, 0x22, 0xB4, 0x14C, 0x24, 0x121, 0xC8, 0x13A],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Diamond (U)
|
||||||
|
# The common rewards list is found at 0x1ddb64 in the ROM
|
||||||
|
# 0x001DDB60: 9301A100 11001200 1A000300 4F004E00 ............O.N.
|
||||||
|
# 0x001DDB70: 1B001900 02001C00 32006C00 6B006D00 ........2.l.k.m.
|
||||||
|
# 0x001DDB80: 17001D00 33002900 1B000080 1B000080 ....3.).........
|
||||||
|
# The rare rewards list is found at 0x1dda88 in the ROM
|
||||||
|
# 0x001DDA80: 0C641550 2A284014 19005C00 DD001700 .d.P*(@...\.....
|
||||||
|
# 0x001DDA90: 2600D600 73012800 4801EA00 61010000 &...s.(.H...a...
|
||||||
|
dp = Pickup('diamond-pearl', rates,
|
||||||
|
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
|
||||||
|
0x1C, 0x32, 0x6C, 0x6B, 0x6D, 0x17, 0x1D, 0x33, 0x29],
|
||||||
|
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0xD6, 0x173, 0x28, 0x148, 0xEA, 0x161],
|
||||||
|
)
|
||||||
|
pl = dp._replace(version_group='platinum')
|
||||||
|
|
||||||
|
# SoulSilver (U)
|
||||||
|
# The rewards lists are found in overlay 12. All overlays are compressed.
|
||||||
|
# After decompression, the common rewards can be found at 0x34B44.
|
||||||
|
# 0x00034B40: 2C012D01 11001200 1A000300 4F004E00 ,.-.........O.N.
|
||||||
|
# 0x00034B50: 1B001900 02001C00 32005000 51005D00 ........2.P.Q.].
|
||||||
|
# 0x00034B60: 17001D00 33002900 80000000 00000000 ....3.).........
|
||||||
|
# And the rare rewards can be found at 0x34A4C.
|
||||||
|
# 0x00034A40: 01C80596 0C641550 2A284014 19005C00 .....d.P*(@...\.
|
||||||
|
# 0x00034A50: DD001700 26001601 7F012800 9D01EA00 ....&.....(.....
|
||||||
|
# 0x00034A60: 61010000 08000000 01000000 02000000 a...............
|
||||||
|
# These lists can also be found in the RAM during battle, at 0x0226c404 and 0x226c30c.
|
||||||
|
hg = Pickup('heartgold-soulsilver', rates,
|
||||||
|
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
|
||||||
|
0x1C, 0x32, 0x50, 0x51, 0x5D, 0x17, 0x1D, 0x33, 0x29],
|
||||||
|
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0x116, 0x17F, 0x28, 0x19D, 0xEA, 0x161],
|
||||||
|
)
|
||||||
|
|
||||||
|
# White (J)
|
||||||
|
# Found in overlay 0x5C. As in SoulSilver, it must be decompressed.
|
||||||
|
# The common rewards are found at 0x7CE, with the rare rewards immediately
|
||||||
|
# preceding them at 0x7B8.
|
||||||
|
# 0x000007B0: 14191E23 282D3200 19005C00 DD001700 ...#(-2...\.....
|
||||||
|
# 0x000007C0: 26001601 19022800 1902EA00 19021100 &.....(.........
|
||||||
|
# 0x000007D0: 12001A00 03004F00 4E001B00 19000200 ......O.N.......
|
||||||
|
# 0x000007E0: 1C003200 50005100 5D001700 1D003300 ..2.P.Q.].....3.
|
||||||
|
# 0x000007F0: 29000000 61941B02 D5941B02 A9941B02 )...a...........
|
||||||
|
#
|
||||||
|
# Note that the rates have changed slightly: the 5/3 slots are now 4/4 slots.
|
||||||
|
bw = Pickup('black-white', [30, 10, 10, 10, 10, 10, 10, 4, 4],
|
||||||
|
[0x11, 0x12, 0x1A, 0x03, 0x4F, 0x4E, 0x1B, 0x19, 0x02,
|
||||||
|
0x1C, 0x32, 0x50, 0x51, 0x5D, 0x17, 0x1D, 0x33, 0x29],
|
||||||
|
[0x19, 0x5C, 0xDD, 0x17, 0x26, 0x116, 0x219, 0x28, 0x219, 0xEA, 0x219],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Black 2 (J)
|
||||||
|
# Found in overlay 0xA6. Must be decompressed.
|
||||||
|
# Common rewards at 0x7FA. Rare rewards immediately prior, at 0x7E4.
|
||||||
|
# Same items as B/W 1.
|
||||||
|
# 0x000007E0: 282D3200 19005C00 DD001700 26001601 (-2...\.....&...
|
||||||
|
# 0x000007F0: 19022800 1902EA00 19021100 12001A00 ..(.............
|
||||||
|
# 0x00000800: 03004F00 4E001B00 19000200 1C003200 ..O.N.........2.
|
||||||
|
# 0x00000810: 50005100 5D001700 1D003300 29000000 P.Q.].....3.)...
|
||||||
|
# 0x00000820: 61C81902 D5C81902 A9C81902 00000000 a...............
|
||||||
|
bw2 = bw._replace(version_group='black2-white2')
|
||||||
|
|
||||||
|
|
||||||
|
# Alright let's add these to the database
|
||||||
|
|
||||||
|
pickups = [em, dp, pl, hg, bw, bw2]
|
||||||
|
|
||||||
|
sess = pokedex.db.connect()
|
||||||
|
|
||||||
|
version_groups = {}
|
||||||
|
for vg in sess.query(t.VersionGroup).all():
|
||||||
|
version_groups[vg.identifier] = vg
|
||||||
|
|
||||||
|
def get_item(generation_id, item_index):
|
||||||
|
item = (sess.query(t.Item)
|
||||||
|
.join(t.ItemGameIndex)
|
||||||
|
.filter(t.ItemGameIndex.generation_id == generation_id)
|
||||||
|
.filter(t.ItemGameIndex.game_index == item_index)
|
||||||
|
.one())
|
||||||
|
return item
|
||||||
|
|
||||||
|
def add_slot(version_group, index, rarity):
|
||||||
|
ps = t.PickupSlot()
|
||||||
|
ps.version_group = version_group
|
||||||
|
ps.slot = index
|
||||||
|
ps.rarity = rarity
|
||||||
|
|
||||||
|
sess.add(ps)
|
||||||
|
return ps
|
||||||
|
|
||||||
|
for pickup in pickups:
|
||||||
|
version_group = version_groups[pickup.version_group]
|
||||||
|
slots = []
|
||||||
|
for i, rarity in enumerate(pickup.rates + [1, 1]):
|
||||||
|
slot = add_slot(version_group, i, rarity)
|
||||||
|
slots.append(slot)
|
||||||
|
|
||||||
|
def get_items(items):
|
||||||
|
return [get_item(version_group.generation_id, item_index)
|
||||||
|
for item_index in items]
|
||||||
|
|
||||||
|
common_items = get_items(pickup.common_items)
|
||||||
|
rare_items = get_items(pickup.rare_items)
|
||||||
|
|
||||||
|
for tier in range(10):
|
||||||
|
min_level = 1 + tier * 10
|
||||||
|
max_level = 10 + tier * 10
|
||||||
|
|
||||||
|
items = common_items[tier:tier+len(pickup.rates)]
|
||||||
|
items += reversed(rare_items[tier:tier+2])
|
||||||
|
|
||||||
|
for slot, item in zip(slots, items):
|
||||||
|
pi = t.PickupItem()
|
||||||
|
pi.min_level = min_level
|
||||||
|
pi.max_level = max_level
|
||||||
|
pi.slot = slot
|
||||||
|
pi.item = item
|
||||||
|
sess.add(pi)
|
||||||
|
|
||||||
|
sess.commit()
|
Loading…
Reference in a new issue