Added bonus files for lookup data. Added calcs for new stats.
Showing
10 changed files
with
931 additions
and
9 deletions
data/envoy_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 0, | ||
4 | "fort": 0, | ||
5 | "ref": 2, | ||
6 | "will": 2 | ||
7 | }, | ||
8 | { | ||
9 | "atk": 1, | ||
10 | "fort": 0, | ||
11 | "ref": 3, | ||
12 | "will": 3 | ||
13 | }, | ||
14 | { | ||
15 | "atk": 2, | ||
16 | "fort": 1, | ||
17 | "ref": 3, | ||
18 | "will": 3 | ||
19 | }, | ||
20 | { | ||
21 | "atk": 3, | ||
22 | "fort": 2, | ||
23 | "ref": 4, | ||
24 | "will": 4 | ||
25 | }, | ||
26 | { | ||
27 | "atk": 3, | ||
28 | "fort": 1, | ||
29 | "ref": 4, | ||
30 | "will": 4 | ||
31 | }, | ||
32 | { | ||
33 | "atk": 4, | ||
34 | "fort": 2, | ||
35 | "ref": 5, | ||
36 | "will": 5 | ||
37 | }, | ||
38 | { | ||
39 | "atk": 5, | ||
40 | "fort": 3, | ||
41 | "ref": 5, | ||
42 | "will": 5 | ||
43 | }, | ||
44 | { | ||
45 | "atk": 6, | ||
46 | "fort": 2, | ||
47 | "ref": 6, | ||
48 | "will": 6 | ||
49 | }, | ||
50 | { | ||
51 | "atk": 6, | ||
52 | "fort": 3, | ||
53 | "ref": 6, | ||
54 | "will": 6 | ||
55 | }, | ||
56 | { | ||
57 | "atk": 7, | ||
58 | "fort": 3, | ||
59 | "ref": 7, | ||
60 | "will": 7 | ||
61 | }, | ||
62 | { | ||
63 | "atk": 8, | ||
64 | "fort": 3, | ||
65 | "ref": 7, | ||
66 | "will": 7 | ||
67 | }, | ||
68 | { | ||
69 | "atk": 9, | ||
70 | "fort": 4, | ||
71 | "ref": 8, | ||
72 | "will": 8 | ||
73 | }, | ||
74 | { | ||
75 | "atk": 9, | ||
76 | "fort": 4, | ||
77 | "ref": 8, | ||
78 | "will": 8 | ||
79 | }, | ||
80 | { | ||
81 | "atk": 10, | ||
82 | "fort": 4, | ||
83 | "ref": 9, | ||
84 | "will": 9 | ||
85 | }, | ||
86 | { | ||
87 | "atk": 11, | ||
88 | "fort": 5, | ||
89 | "ref": 9, | ||
90 | "will": 9 | ||
91 | }, | ||
92 | { | ||
93 | "atk": 12, | ||
94 | "fort": 5, | ||
95 | "ref": 10, | ||
96 | "will": 10 | ||
97 | }, | ||
98 | { | ||
99 | "atk": 12, | ||
100 | "fort": 5, | ||
101 | "ref": 10, | ||
102 | "will": 10 | ||
103 | }, | ||
104 | { | ||
105 | "atk": 13, | ||
106 | "fort": 6, | ||
107 | "ref": 11, | ||
108 | "will": 11 | ||
109 | }, | ||
110 | { | ||
111 | "atk": 14, | ||
112 | "fort": 6, | ||
113 | "ref": 11, | ||
114 | "will": 11 | ||
115 | }, | ||
116 | { | ||
117 | "atk": 15, | ||
118 | "fort": 6, | ||
119 | "ref": 12, | ||
120 | "will": 12 | ||
121 | } | ||
122 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/mechanic_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 0, | ||
4 | "fort": 2, | ||
5 | "ref": 2, | ||
6 | "will": 0 | ||
7 | }, | ||
8 | { | ||
9 | "atk": 1, | ||
10 | "fort": 3, | ||
11 | "ref": 3, | ||
12 | "will": 0 | ||
13 | }, | ||
14 | { | ||
15 | "atk": 2, | ||
16 | "fort": 3, | ||
17 | "ref": 3, | ||
18 | "will": 1 | ||
19 | }, | ||
20 | { | ||
21 | "atk": 3, | ||
22 | "fort": 4, | ||
23 | "ref": 4, | ||
24 | "will": 1 | ||
25 | }, | ||
26 | { | ||
27 | "atk": 3, | ||
28 | "fort": 4, | ||
29 | "ref": 4, | ||
30 | "will": 1 | ||
31 | }, | ||
32 | { | ||
33 | "atk": 4, | ||
34 | "fort": 5, | ||
35 | "ref": 5, | ||
36 | "will": 2 | ||
37 | }, | ||
38 | { | ||
39 | "atk": 5, | ||
40 | "fort": 5, | ||
41 | "ref": 5, | ||
42 | "will": 2 | ||
43 | }, | ||
44 | { | ||
45 | "atk": 6, | ||
46 | "fort": 6, | ||
47 | "ref": 6, | ||
48 | "will": 2 | ||
49 | }, | ||
50 | { | ||
51 | "atk": 6, | ||
52 | "fort": 6, | ||
53 | "ref": 6, | ||
54 | "will": 3 | ||
55 | }, | ||
56 | { | ||
57 | "atk": 7, | ||
58 | "fort": 7, | ||
59 | "ref": 7, | ||
60 | "will": 3 | ||
61 | }, | ||
62 | { | ||
63 | "atk": 8, | ||
64 | "fort": 7, | ||
65 | "ref": 7, | ||
66 | "will": 3 | ||
67 | }, | ||
68 | { | ||
69 | "atk": 9, | ||
70 | "fort": 8, | ||
71 | "ref": 8, | ||
72 | "will": 4 | ||
73 | }, | ||
74 | { | ||
75 | "atk": 9, | ||
76 | "fort": 8, | ||
77 | "ref": 8, | ||
78 | "will": 4 | ||
79 | }, | ||
80 | { | ||
81 | "atk": 10, | ||
82 | "fort": 9, | ||
83 | "ref": 9, | ||
84 | "will": 4 | ||
85 | }, | ||
86 | { | ||
87 | "atk": 11, | ||
88 | "fort": 9, | ||
89 | "ref": 9, | ||
90 | "will": 5 | ||
91 | }, | ||
92 | { | ||
93 | "atk": 12, | ||
94 | "fort": 10, | ||
95 | "ref": 10, | ||
96 | "will": 5 | ||
97 | }, | ||
98 | { | ||
99 | "atk": 12, | ||
100 | "fort": 10, | ||
101 | "ref": 10, | ||
102 | "will": 5 | ||
103 | }, | ||
104 | { | ||
105 | "atk": 13, | ||
106 | "fort": 11, | ||
107 | "ref": 11, | ||
108 | "will": 6 | ||
109 | }, | ||
110 | { | ||
111 | "atk": 14, | ||
112 | "fort": 11, | ||
113 | "ref": 11, | ||
114 | "will": 6 | ||
115 | }, | ||
116 | { | ||
117 | "atk": 15, | ||
118 | "fort": 12, | ||
119 | "ref": 12, | ||
120 | "will": 6 | ||
121 | } | ||
122 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/mystic_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 0, | ||
4 | "fort": 0, | ||
5 | "ref": 0, | ||
6 | "will": 2, | ||
7 | "spells": [2, 0, 0, 0, 0, 0] | ||
8 | }, | ||
9 | { | ||
10 | "atk": 1, | ||
11 | "fort": 0, | ||
12 | "ref": 0, | ||
13 | "will": 3, | ||
14 | "spells": [2, 0, 0, 0, 0, 0] | ||
15 | }, | ||
16 | { | ||
17 | "atk": 2, | ||
18 | "fort": 1, | ||
19 | "ref": 1, | ||
20 | "will": 3, | ||
21 | "spells": [3, 0, 0, 0, 0, 0] | ||
22 | }, | ||
23 | { | ||
24 | "atk": 3, | ||
25 | "fort": 1, | ||
26 | "ref": 1, | ||
27 | "will": 4, | ||
28 | "spells": [3, 2, 0, 0, 0, 0] | ||
29 | }, | ||
30 | { | ||
31 | "atk": 3, | ||
32 | "fort": 1, | ||
33 | "ref": 1, | ||
34 | "will": 4, | ||
35 | "spells": [4, 2, 0, 0, 0, 0] | ||
36 | }, | ||
37 | { | ||
38 | "atk": 4, | ||
39 | "fort": 2, | ||
40 | "ref": 2, | ||
41 | "will": 5, | ||
42 | "spells": [4, 3, 0, 0, 0, 0] | ||
43 | }, | ||
44 | { | ||
45 | "atk": 5, | ||
46 | "fort": 2, | ||
47 | "ref": 2, | ||
48 | "will": 5, | ||
49 | "spells": [4, 3, 2, 0, 0, 0] | ||
50 | }, | ||
51 | { | ||
52 | "atk": 6, | ||
53 | "fort": 2, | ||
54 | "ref": 2, | ||
55 | "will": 6, | ||
56 | "spells": [4, 4, 2, 0, 0, 0] | ||
57 | }, | ||
58 | { | ||
59 | "atk": 6, | ||
60 | "fort": 3, | ||
61 | "ref": 3, | ||
62 | "will": 6, | ||
63 | "spells": [5, 4, 3, 0, 0, 0] | ||
64 | }, | ||
65 | { | ||
66 | "atk": 7, | ||
67 | "fort": 3, | ||
68 | "ref": 3, | ||
69 | "will": 7, | ||
70 | "spells": [5, 4, 3, 2, 0, 0] | ||
71 | }, | ||
72 | { | ||
73 | "atk": 8, | ||
74 | "fort": 3, | ||
75 | "ref": 3, | ||
76 | "will": 7, | ||
77 | "spells": [5, 4, 4, 2, 0, 0] | ||
78 | }, | ||
79 | { | ||
80 | "atk": 9, | ||
81 | "fort": 4, | ||
82 | "ref": 4, | ||
83 | "will": 8, | ||
84 | "spells": [5, 5, 4, 3, 0, 0] | ||
85 | }, | ||
86 | { | ||
87 | "atk": 9, | ||
88 | "fort": 4, | ||
89 | "ref": 4, | ||
90 | "will": 8, | ||
91 | "spells": [5, 5, 4, 3, 2, 0] | ||
92 | }, | ||
93 | { | ||
94 | "atk": 10, | ||
95 | "fort": 4, | ||
96 | "ref": 4, | ||
97 | "will": 9, | ||
98 | "spells": [5, 5, 4, 4, 2, 0] | ||
99 | }, | ||
100 | { | ||
101 | "atk": 11, | ||
102 | "fort": 5, | ||
103 | "ref": 5, | ||
104 | "will": 9, | ||
105 | "spells": [5, 5, 5, 4, 3, 0] | ||
106 | }, | ||
107 | { | ||
108 | "atk": 12, | ||
109 | "fort": 5, | ||
110 | "ref": 5, | ||
111 | "will": 10, | ||
112 | "spells": [5, 5, 5, 4, 3, 2] | ||
113 | }, | ||
114 | { | ||
115 | "atk": 12, | ||
116 | "fort": 5, | ||
117 | "ref": 5, | ||
118 | "will": 10, | ||
119 | "spells": [5, 5, 5, 4, 4, 2] | ||
120 | }, | ||
121 | { | ||
122 | "atk": 13, | ||
123 | "fort": 6, | ||
124 | "ref": 6, | ||
125 | "will": 11, | ||
126 | "spells": [5, 5, 5, 5, 4, 3] | ||
127 | }, | ||
128 | { | ||
129 | "atk": 14, | ||
130 | "fort": 6, | ||
131 | "ref": 6, | ||
132 | "will": 11, | ||
133 | "spells": [5, 5, 5, 5, 5, 4] | ||
134 | }, | ||
135 | { | ||
136 | "atk": 15, | ||
137 | "fort": 6, | ||
138 | "ref": 6, | ||
139 | "will": 12, | ||
140 | "spells": [5, 5, 5, 5, 5, 5] | ||
141 | } | ||
142 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/operative_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 0, | ||
4 | "fort": 0, | ||
5 | "ref": 2, | ||
6 | "will": 2 | ||
7 | }, | ||
8 | { | ||
9 | "atk": 1, | ||
10 | "fort":0, | ||
11 | "ref": 3, | ||
12 | "will": 3 | ||
13 | }, | ||
14 | { | ||
15 | "atk": 2, | ||
16 | "fort": 1, | ||
17 | "ref": 3, | ||
18 | "will": 3 | ||
19 | }, | ||
20 | { | ||
21 | "atk": 3, | ||
22 | "fort": 1, | ||
23 | "ref": 4, | ||
24 | "will": 4 | ||
25 | }, | ||
26 | { | ||
27 | "atk": 3, | ||
28 | "fort": 1, | ||
29 | "ref": 4, | ||
30 | "will": 4 | ||
31 | }, | ||
32 | { | ||
33 | "atk": 4, | ||
34 | "fort": 2, | ||
35 | "ref": 5, | ||
36 | "will": 5 | ||
37 | }, | ||
38 | { | ||
39 | "atk": 5, | ||
40 | "fort": 2, | ||
41 | "ref": 5, | ||
42 | "will": 5 | ||
43 | }, | ||
44 | { | ||
45 | "atk": 6, | ||
46 | "fort": 2, | ||
47 | "ref": 6, | ||
48 | "will": 6 | ||
49 | }, | ||
50 | { | ||
51 | "atk": 6, | ||
52 | "fort": 3, | ||
53 | "ref": 6, | ||
54 | "will": 6 | ||
55 | }, | ||
56 | { | ||
57 | "atk": 7, | ||
58 | "fort": 3, | ||
59 | "ref": 7, | ||
60 | "will": 7 | ||
61 | }, | ||
62 | { | ||
63 | "atk": 8, | ||
64 | "fort": 3, | ||
65 | "ref": 7, | ||
66 | "will": 7 | ||
67 | }, | ||
68 | { | ||
69 | "atk": 9, | ||
70 | "fort": 4, | ||
71 | "ref": 8, | ||
72 | "will": 8 | ||
73 | }, | ||
74 | { | ||
75 | "atk": 9, | ||
76 | "fort": 4, | ||
77 | "ref": 8, | ||
78 | "will": 8 | ||
79 | }, | ||
80 | { | ||
81 | "atk": 10, | ||
82 | "fort": 4, | ||
83 | "ref": 9, | ||
84 | "will": 9 | ||
85 | }, | ||
86 | { | ||
87 | "atk": 11, | ||
88 | "fort": 5, | ||
89 | "ref": 9, | ||
90 | "will": 9 | ||
91 | }, | ||
92 | { | ||
93 | "atk": 12, | ||
94 | "fort": 5, | ||
95 | "ref": 10, | ||
96 | "will": 10 | ||
97 | }, | ||
98 | { | ||
99 | "atk": 12, | ||
100 | "fort": 5, | ||
101 | "ref": 10, | ||
102 | "will": 10 | ||
103 | }, | ||
104 | { | ||
105 | "atk": 13, | ||
106 | "fort": 6, | ||
107 | "ref": 11, | ||
108 | "will": 11 | ||
109 | }, | ||
110 | { | ||
111 | "atk": 14, | ||
112 | "fort": 6, | ||
113 | "ref": 11, | ||
114 | "will": 11 | ||
115 | }, | ||
116 | { | ||
117 | "atk": 15, | ||
118 | "fort": 6, | ||
119 | "ref": 12, | ||
120 | "will": 12 | ||
121 | } | ||
122 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/solarian_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 1, | ||
4 | "fort": 2, | ||
5 | "ref": 0, | ||
6 | "will": 2 | ||
7 | }, | ||
8 | { | ||
9 | "atk": 2, | ||
10 | "fort": 3, | ||
11 | "ref": 0, | ||
12 | "will": 3 | ||
13 | }, | ||
14 | { | ||
15 | "atk": 3, | ||
16 | "fort": 3, | ||
17 | "ref": 1, | ||
18 | "will": 3 | ||
19 | }, | ||
20 | { | ||
21 | "atk": 4, | ||
22 | "fort": 4, | ||
23 | "ref": 1, | ||
24 | "will": 4 | ||
25 | }, | ||
26 | { | ||
27 | "atk": 5, | ||
28 | "fort": 4, | ||
29 | "ref": 1, | ||
30 | "will": 4 | ||
31 | }, | ||
32 | { | ||
33 | "atk": 6, | ||
34 | "fort": 5, | ||
35 | "ref": 2, | ||
36 | "will": 5 | ||
37 | }, | ||
38 | { | ||
39 | "atk": 7, | ||
40 | "fort": 5, | ||
41 | "ref": 2, | ||
42 | "will": 5 | ||
43 | }, | ||
44 | { | ||
45 | "atk": 8, | ||
46 | "fort": 6, | ||
47 | "ref": 2, | ||
48 | "will": 6 | ||
49 | }, | ||
50 | { | ||
51 | "atk": 9, | ||
52 | "fort": 6, | ||
53 | "ref": 3, | ||
54 | "will": 6 | ||
55 | }, | ||
56 | { | ||
57 | "atk": 10, | ||
58 | "fort": 7, | ||
59 | "ref": 3, | ||
60 | "will": 7 | ||
61 | }, | ||
62 | { | ||
63 | "atk": 11, | ||
64 | "fort": 7, | ||
65 | "ref": 3, | ||
66 | "will": 7 | ||
67 | }, | ||
68 | { | ||
69 | "atk": 12, | ||
70 | "fort": 8, | ||
71 | "ref": 4, | ||
72 | "will": 8 | ||
73 | }, | ||
74 | { | ||
75 | "atk": 13, | ||
76 | "fort": 8, | ||
77 | "ref": 4, | ||
78 | "will": 8 | ||
79 | }, | ||
80 | { | ||
81 | "atk": 14, | ||
82 | "fort": 9, | ||
83 | "ref": 4, | ||
84 | "will": 9 | ||
85 | }, | ||
86 | { | ||
87 | "atk": 15, | ||
88 | "fort": 9, | ||
89 | "ref": 5, | ||
90 | "will": 9 | ||
91 | }, | ||
92 | { | ||
93 | "atk": 16, | ||
94 | "fort": 10, | ||
95 | "ref": 5, | ||
96 | "will": 10 | ||
97 | }, | ||
98 | { | ||
99 | "atk": 17, | ||
100 | "fort": 10, | ||
101 | "ref": 5, | ||
102 | "will": 10 | ||
103 | }, | ||
104 | { | ||
105 | "atk": 18, | ||
106 | "fort": 11, | ||
107 | "ref": 6, | ||
108 | "will": 11 | ||
109 | }, | ||
110 | { | ||
111 | "atk": 19, | ||
112 | "fort": 11, | ||
113 | "ref": 6, | ||
114 | "will": 11 | ||
115 | }, | ||
116 | { | ||
117 | "atk": 20, | ||
118 | "fort": 12, | ||
119 | "ref": 6, | ||
120 | "will": 12 | ||
121 | } | ||
122 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/soldier_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 1, | ||
4 | "fort": 2, | ||
5 | "ref": 0, | ||
6 | "will": 2 | ||
7 | }, | ||
8 | { | ||
9 | "atk": 2, | ||
10 | "fort": 3, | ||
11 | "ref": 0, | ||
12 | "will": 3 | ||
13 | }, | ||
14 | { | ||
15 | "atk": 3, | ||
16 | "fort": 3, | ||
17 | "ref": 1, | ||
18 | "will": 3 | ||
19 | }, | ||
20 | { | ||
21 | "atk": 4, | ||
22 | "fort": 4, | ||
23 | "ref": 1, | ||
24 | "will": 4 | ||
25 | }, | ||
26 | { | ||
27 | "atk": 5, | ||
28 | "fort": 4, | ||
29 | "ref": 1, | ||
30 | "will": 4 | ||
31 | }, | ||
32 | { | ||
33 | "atk": 6, | ||
34 | "fort": 5, | ||
35 | "ref": 2, | ||
36 | "will": 5 | ||
37 | }, | ||
38 | { | ||
39 | "atk": 7, | ||
40 | "fort": 5, | ||
41 | "ref": 2, | ||
42 | "will": 5 | ||
43 | }, | ||
44 | { | ||
45 | "atk": 8, | ||
46 | "fort": 6, | ||
47 | "ref": 2, | ||
48 | "will": 6 | ||
49 | }, | ||
50 | { | ||
51 | "atk": 9, | ||
52 | "fort": 6, | ||
53 | "ref": 3, | ||
54 | "will": 6 | ||
55 | }, | ||
56 | { | ||
57 | "atk": 10, | ||
58 | "fort": 7, | ||
59 | "ref": 3, | ||
60 | "will": 7 | ||
61 | }, | ||
62 | { | ||
63 | "atk": 11, | ||
64 | "fort": 7, | ||
65 | "ref": 3, | ||
66 | "will": 7 | ||
67 | }, | ||
68 | { | ||
69 | "atk": 12, | ||
70 | "fort": 8, | ||
71 | "ref": 4, | ||
72 | "will": 8 | ||
73 | }, | ||
74 | { | ||
75 | "atk": 13, | ||
76 | "fort": 8, | ||
77 | "ref": 4, | ||
78 | "will": 8 | ||
79 | }, | ||
80 | { | ||
81 | "atk": 14, | ||
82 | "fort": 9, | ||
83 | "ref": 4, | ||
84 | "will": 9 | ||
85 | }, | ||
86 | { | ||
87 | "atk": 15, | ||
88 | "fort": 9, | ||
89 | "ref": 5, | ||
90 | "will": 9 | ||
91 | }, | ||
92 | { | ||
93 | "atk": 16, | ||
94 | "fort": 10, | ||
95 | "ref": 5, | ||
96 | "will": 10 | ||
97 | }, | ||
98 | { | ||
99 | "atk": 17, | ||
100 | "fort": 10, | ||
101 | "ref": 5, | ||
102 | "will": 10 | ||
103 | }, | ||
104 | { | ||
105 | "atk": 18, | ||
106 | "fort": 11, | ||
107 | "ref": 6, | ||
108 | "will": 11 | ||
109 | }, | ||
110 | { | ||
111 | "atk": 19, | ||
112 | "fort": 11, | ||
113 | "ref": 6, | ||
114 | "will": 11 | ||
115 | }, | ||
116 | { | ||
117 | "atk": 20, | ||
118 | "fort": 12, | ||
119 | "ref": 6, | ||
120 | "will": 12 | ||
121 | } | ||
122 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
data/technomancer_bonus.json
0 → 100644
1 | [ | ||
2 | { | ||
3 | "atk": 0, | ||
4 | "fort": 0, | ||
5 | "ref": 0, | ||
6 | "will": 2, | ||
7 | "spells": [2, 0, 0, 0, 0, 0] | ||
8 | }, | ||
9 | { | ||
10 | "atk": 1, | ||
11 | "fort": 0, | ||
12 | "ref": 0, | ||
13 | "will": 3, | ||
14 | "spells": [2, 0, 0, 0, 0, 0] | ||
15 | }, | ||
16 | { | ||
17 | "atk": 2, | ||
18 | "fort": 1, | ||
19 | "ref": 1, | ||
20 | "will": 3, | ||
21 | "spells": [3, 0, 0, 0, 0, 0] | ||
22 | }, | ||
23 | { | ||
24 | "atk": 3, | ||
25 | "fort": 1, | ||
26 | "ref": 1, | ||
27 | "will": 4, | ||
28 | "spells": [3, 2, 0, 0, 0, 0] | ||
29 | }, | ||
30 | { | ||
31 | "atk": 3, | ||
32 | "fort": 1, | ||
33 | "ref": 1, | ||
34 | "will": 4, | ||
35 | "spells": [4, 2, 0, 0, 0, 0] | ||
36 | }, | ||
37 | { | ||
38 | "atk": 4, | ||
39 | "fort": 2, | ||
40 | "ref": 2, | ||
41 | "will": 5, | ||
42 | "spells": [4, 3, 0, 0, 0, 0] | ||
43 | }, | ||
44 | { | ||
45 | "atk": 5, | ||
46 | "fort": 2, | ||
47 | "ref": 2, | ||
48 | "will": 5, | ||
49 | "spells": [4, 3, 2, 0, 0, 0] | ||
50 | }, | ||
51 | { | ||
52 | "atk": 6, | ||
53 | "fort": 2, | ||
54 | "ref": 2, | ||
55 | "will": 6, | ||
56 | "spells": [4, 4, 2, 0, 0, 0] | ||
57 | }, | ||
58 | { | ||
59 | "atk": 6, | ||
60 | "fort": 3, | ||
61 | "ref": 3, | ||
62 | "will": 6, | ||
63 | "spells": [5, 4, 3, 0, 0, 0] | ||
64 | }, | ||
65 | { | ||
66 | "atk": 7, | ||
67 | "fort": 3, | ||
68 | "ref": 3, | ||
69 | "will": 7, | ||
70 | "spells": [5, 4, 3, 2, 0, 0] | ||
71 | }, | ||
72 | { | ||
73 | "atk": 8, | ||
74 | "fort": 3, | ||
75 | "ref": 3, | ||
76 | "will": 7, | ||
77 | "spells": [5, 4, 4, 2, 0, 0] | ||
78 | }, | ||
79 | { | ||
80 | "atk": 9, | ||
81 | "fort": 4, | ||
82 | "ref": 4, | ||
83 | "will": 8, | ||
84 | "spells": [5, 5, 4, 3, 0, 0] | ||
85 | }, | ||
86 | { | ||
87 | "atk": 9, | ||
88 | "fort": 4, | ||
89 | "ref": 4, | ||
90 | "will": 8, | ||
91 | "spells": [5, 5, 4, 3, 2, 0] | ||
92 | }, | ||
93 | { | ||
94 | "atk": 10, | ||
95 | "fort": 4, | ||
96 | "ref": 4, | ||
97 | "will": 9, | ||
98 | "spells": [5, 5, 4, 4, 2, 0] | ||
99 | }, | ||
100 | { | ||
101 | "atk": 11, | ||
102 | "fort": 5, | ||
103 | "ref": 5, | ||
104 | "will": 9, | ||
105 | "spells": [5, 5, 5, 4, 3, 0] | ||
106 | }, | ||
107 | { | ||
108 | "atk": 12, | ||
109 | "fort": 5, | ||
110 | "ref": 5, | ||
111 | "will": 10, | ||
112 | "spells": [5, 5, 5, 4, 3, 2] | ||
113 | }, | ||
114 | { | ||
115 | "atk": 12, | ||
116 | "fort": 5, | ||
117 | "ref": 5, | ||
118 | "will": 10, | ||
119 | "spells": [5, 5, 5, 4, 4, 2] | ||
120 | }, | ||
121 | { | ||
122 | "atk": 13, | ||
123 | "fort": 6, | ||
124 | "ref": 6, | ||
125 | "will": 11, | ||
126 | "spells": [5, 5, 5, 5, 4, 3] | ||
127 | }, | ||
128 | { | ||
129 | "atk": 14, | ||
130 | "fort": 6, | ||
131 | "ref": 6, | ||
132 | "will": 11, | ||
133 | "spells": [5, 5, 5, 5, 5, 4] | ||
134 | }, | ||
135 | { | ||
136 | "atk": 15, | ||
137 | "fort": 6, | ||
138 | "ref": 6, | ||
139 | "will": 12, | ||
140 | "spells": [5, 5, 5, 5, 5, 5] | ||
141 | } | ||
142 | ] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | {"name": "test", "password": "6c76899eb15393064b4f4db94805e5862232920b", "room": "town/tavern", "abilities": {"str": 10, "dex": 23, "con": 10, "int": 12, "wis": 10, "cha": 8}, "equipment": {"finger": [null, null], "hand": [null, null], "arm": [null, null], "leg": [null, null], "foot": [null, null], "head": null, "neck": null, "back": null, "body": null, "waist": null}, "inventory": {"bag": [{"expires": 0, "inventory": {"shirt": [{"expires": 0}]}}]}, "prompt": "hp %hp mp %mp> ", "aliases": {}, "hp": 100, "mp": 10, "maxhp": 100, "maxmp": 10, "maxsta": 10, "sta": 10, "aa": "1d2", "mpr": 0.25, "star": 0.4, "weapon": null, "sp": {}, "at": {"kick": {"cost": 5, "dmg": "2d4", "desc": "You unleash a powerful kick"}}, "createstep": 7, "color_enabled": true, "over_13": true, "race": "Android", "theme": "Ace Pilot", "class": "Envoy", "abilitypoints": 0} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | {"name": "test", "password": "6c76899eb15393064b4f4db94805e5862232920b", "room": "town/tavern", "abilities": {"str": 10, "dex": 23, "con": 10, "int": 12, "wis": 10, "cha": 8}, "equipment": {"finger": [null, null], "hand": [null, null], "arm": [null, null], "leg": [null, null], "foot": [null, null], "head": null, "neck": null, "back": null, "body": null, "waist": null}, "inventory": {"bag": [{"expires": 0, "inventory": {"shirt": [{"expires": 0}]}}]}, "prompt": "hp %hp mp %mp> ", "aliases": {}, "hp": 100, "mp": 10, "maxhp": 100, "maxmp": 10, "maxsta": 10, "sta": 10, "aa": "1d2", "mpr": 0.25, "star": 0.4, "weapon": null, "sp": {}, "at": {"kick": {"cost": 5, "dmg": "2d4", "desc": "You unleash a powerful kick"}}, "createstep": 7, "color_enabled": true, "over_13": true, "race": "Android", "theme": "Ace Pilot", "class": "Envoy", "abilitypoints": 0, "baseattack": 0, "fort": 0, "ref": 2, "will": 2} | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -109,46 +109,57 @@ classes = { | ... | @@ -109,46 +109,57 @@ classes = { |
109 | "keyability": "cha", | 109 | "keyability": "cha", |
110 | "proficiencies": ["light armor", "basic melee", "grenades", "small arms"], | 110 | "proficiencies": ["light armor", "basic melee", "grenades", "small arms"], |
111 | "skillperlevel": 8, | 111 | "skillperlevel": 8, |
112 | "hp": 6 | ||
112 | }, | 113 | }, |
113 | "Mechanic": { | 114 | "Mechanic": { |
114 | "skills": ["Athletics", "Perception", "Computers", "Physical Science", "Engineering", "Piloting", "Medicine", "Profession"], | 115 | "skills": ["Athletics", "Perception", "Computers", "Physical Science", "Engineering", "Piloting", "Medicine", "Profession"], |
115 | "keyability": "int", | 116 | "keyability": "int", |
116 | "proficiencies": ["light armor", "basic melee", "grenades", "small arms"], | 117 | "proficiencies": ["light armor", "basic melee", "grenades", "small arms"], |
117 | "skillperlevel": 4, | 118 | "skillperlevel": 4, |
119 | "hp": 6 | ||
118 | }, | 120 | }, |
119 | "Mystic": { | 121 | "Mystic": { |
120 | "skills": ["Bluff", "Medicine", "Culture", "Mysticism", "Diplomacy", "Perception", "Disguise", "Profession", "Intimidate", "Sense Motive", "Life Science", "Survival"], | 122 | "skills": ["Bluff", "Medicine", "Culture", "Mysticism", "Diplomacy", "Perception", "Disguise", "Profession", "Intimidate", "Sense Motive", "Life Science", "Survival"], |
121 | "keyability": "wis", | 123 | "keyability": "wis", |
122 | "proficiencies": ["light armor", "basic melee", "small arms"], | 124 | "proficiencies": ["light armor", "basic melee", "small arms"], |
123 | "skillperlevel": 6, | 125 | "skillperlevel": 6, |
126 | "hp": 6 | ||
124 | }, | 127 | }, |
125 | "Operative": { | 128 | "Operative": { |
126 | "skills": ["Acrobatics", "Medicine", "Athletics", "Perception", "Bluff", "Piloting", "Computers", "Profession", "Culture", "Sense Motive", "Disguise", "Sleight of Hand", "Engineering", "Stealth", "Intimidate", "Survival"], | 129 | "skills": ["Acrobatics", "Medicine", "Athletics", "Perception", "Bluff", "Piloting", "Computers", "Profession", "Culture", "Sense Motive", "Disguise", "Sleight of Hand", "Engineering", "Stealth", "Intimidate", "Survival"], |
127 | "keyability": "dex", | 130 | "keyability": "dex", |
128 | "proficiencies": ["light armor", "basic melee", "small arms", "sniper weapons"], | 131 | "proficiencies": ["light armor", "basic melee", "small arms", "sniper weapons"], |
129 | "skillperlevel": 8, | 132 | "skillperlevel": 8, |
133 | "hp": 6 | ||
130 | }, | 134 | }, |
131 | "Solarian": { | 135 | "Solarian": { |
132 | "skills": ["Acrobatics", "Perception", "Athletics", "Physical Science", "Diplomacy", "Profession", "Intimidate", "Sense Motive", "Mysticism", "Stealth"], | 136 | "skills": ["Acrobatics", "Perception", "Athletics", "Physical Science", "Diplomacy", "Profession", "Intimidate", "Sense Motive", "Mysticism", "Stealth"], |
133 | "keyability": "cha", | 137 | "keyability": "cha", |
134 | "proficiencies": ["light armor", "basic melee", "advanced melee", "small arms"], | 138 | "proficiencies": ["light armor", "basic melee", "advanced melee", "small arms"], |
135 | "skillperlevel": 4, | 139 | "skillperlevel": 4, |
140 | "hp": 7 | ||
136 | }, | 141 | }, |
137 | "Soldier": { | 142 | "Soldier": { |
138 | "skills": ["Acrobatics", "Medicine", "Athletics", "Piloting", "Engineering", "Profession", "Intimidate", "Survival"], | 143 | "skills": ["Acrobatics", "Medicine", "Athletics", "Piloting", "Engineering", "Profession", "Intimidate", "Survival"], |
139 | "keyability": "str", | 144 | "keyability": "str", |
140 | "proficiencies": ["light armor", "heavy armor", "basic melee", "advanced melee", "small arms", "long arms", "heavy weapons", "sniper weapons", "grenades"], | 145 | "proficiencies": ["light armor", "heavy armor", "basic melee", "advanced melee", "small arms", "long arms", "heavy weapons", "sniper weapons", "grenades"], |
141 | "skillperlevel": 4, | 146 | "skillperlevel": 4, |
147 | "hp": 7 | ||
142 | }, | 148 | }, |
143 | "Technomancer": { | 149 | "Technomancer": { |
144 | "skills": ["Computers", "Physical Science", "Engineering", "Piloting", "Life Science", "Profession", "Mysticism", "Sleight of Hand"], | 150 | "skills": ["Computers", "Physical Science", "Engineering", "Piloting", "Life Science", "Profession", "Mysticism", "Sleight of Hand"], |
145 | "keyability": "int", | 151 | "keyability": "int", |
146 | "proficiencies": ["light armor", "basic melee", "small arms"], | 152 | "proficiencies": ["light armor", "basic melee", "small arms"], |
147 | "skillperlevel": 4, | 153 | "skillperlevel": 4, |
154 | "hp": 5 | ||
148 | } | 155 | } |
149 | } | 156 | } |
150 | 157 | ||
151 | 158 | ||
159 | def get_ability_mod(id, ability): | ||
160 | ability_modifiers = [-5, -4, -4, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8] | ||
161 | return ability_modifiers[players[id]["abilities"][ability]] | ||
162 | |||
152 | def show_prompt(pid): | 163 | def show_prompt(pid): |
153 | if "prompt" not in players[pid]: | 164 | if "prompt" not in players[pid]: |
154 | players[pid]["prompt"] = "> " | 165 | players[pid]["prompt"] = "> " |
... | @@ -370,13 +381,29 @@ def handle_character_create(id, command, params): | ... | @@ -370,13 +381,29 @@ def handle_character_create(id, command, params): |
370 | mud.send_message(id, '%cyanPlease spend all available ability points.') | 381 | mud.send_message(id, '%cyanPlease spend all available ability points.') |
371 | show_abilities(id) | 382 | show_abilities(id) |
372 | else: | 383 | else: |
384 | pclass = classes[players[id]["class"]] | ||
385 | class_bonuses = load_object_from_file('data/{}_bonus.json'.format(players[id]["class"].lower())) | ||
386 | players[id]["baseattack"] = class_bonuses[0]["atk"] | ||
387 | players[id]["fort"] = class_bonuses[0]["fort"] | ||
388 | players[id]["ref"] = class_bonuses[0]["ref"] | ||
389 | players[id]["will"] = class_bonuses[0]["will"] | ||
390 | players[id]["maxhp"] = races[players[id]["race"]]["hp"] + pclass["hp"] | ||
391 | players[id]["hp"] = players[id]["maxhp"] | ||
392 | # Class SP is the same HP, so no need to store both in the classes dict | ||
393 | players[id]["maxsp"] = get_ability_mod(id, "con") + pclass["hp"] | ||
394 | players[id]["sp"] = players[id]["maxsp"] | ||
395 | players[id]["maxrp"] = 1 + get_ability_mod(id, pclass["keyability"]) | ||
396 | if players[id]["maxrp"] < 1: | ||
397 | players[id]["maxrp"] = 1 | ||
398 | players[id]["rp"] = players[id]["maxrp"] | ||
373 | players[id]["createstep"] = 7 | 399 | players[id]["createstep"] = 7 |
374 | elif not command.isdigit() or int(command) + 1 > len(players[id]["abilities"]) or int(command) < 0: | 400 | elif not command.isdigit() or int(command) + 1 > len(players[id]["abilities"]) or int(command) < 0: |
375 | show_abilities(id) | 401 | show_abilities(id) |
376 | else: | 402 | else: |
377 | ability_name = list(players[id]["abilities"])[int(command)] | 403 | ability_name = list(players[id]["abilities"])[int(command)] |
378 | 404 | if players[id]["abilities"][ability_name] >= 18: | |
379 | if players[id]["abilitypoints"] > 0: | 405 | mud.send_message(id, '%cyanYou cannot raise an ability higher than 18 during character creation.') |
406 | elif players[id]["abilitypoints"] > 0: | ||
380 | players[id]["abilities"][ability_name] += 1 | 407 | players[id]["abilities"][ability_name] += 1 |
381 | players[id]["abilitypoints"] -= 1 | 408 | players[id]["abilitypoints"] -= 1 |
382 | show_abilities(id) | 409 | show_abilities(id) |
... | @@ -442,12 +469,12 @@ while True: | ... | @@ -442,12 +469,12 @@ while True: |
442 | if id not in players: | 469 | if id not in players: |
443 | continue | 470 | continue |
444 | 471 | ||
445 | # go through all the players in the game | 472 | # # go through all the players in the game |
446 | for pid, pl in players.items(): | 473 | # for pid, pl in players.items(): |
447 | # send each player a message to tell them about the diconnected | 474 | # # send each player a message to tell them about the diconnected |
448 | # player | 475 | # # player |
449 | if players[pid].get("name") is not None: | 476 | # if players[pid].get("name") is not None: |
450 | mud.send_message(pid, "{} quit the game".format(players[pid]["name"])) | 477 | # mud.send_message(pid, "{} quit the game".format(players[pid]["name"])) |
451 | 478 | ||
452 | # remove the player's entry in the player dictionary | 479 | # remove the player's entry in the player dictionary |
453 | if players[id]["name"] is not None: | 480 | if players[id]["name"] is not None: | ... | ... |
-
Please register or sign in to post a comment