admiral_stats_parser 1.9.0 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -6
- data/lib/admiral_stats_parser/model/area_capture_info.rb +3 -0
- data/lib/admiral_stats_parser/model/character_list_info.rb +56 -4
- data/lib/admiral_stats_parser/parser/area_capture_info_parser.rb +19 -0
- data/lib/admiral_stats_parser/version.rb +1 -1
- data/lib/admiral_stats_parser.rb +19 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b57c6abd0b22c110362073c2741df23ba9117246
|
4
|
+
data.tar.gz: 567a990136ae2c89eb653eba5b0528ba215dbffa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adef4c2139224f3da128a955e7ec1b6018603c6b61caaf56b1c3f30ee4e1c8a4b988e32b597a37714ab9d57ca652cfa969248f8e44f5e55651de0fabcc377049
|
7
|
+
data.tar.gz: f6128ae306b4d80d44dc912777f698293b509f4d54a72c2bf25de468532bd21ae7613e44a012b23ee0b0dad4f91d26ab6b87429db6e15521b3c8a41f92683882
|
data/README.md
CHANGED
@@ -64,7 +64,9 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
64
64
|
| 6 | 2017-02-14 〜 2017-04-25 |
|
65
65
|
| 7 | 2017-04-26 〜 2017-05-31(第2回イベントの終了日) |
|
66
66
|
| 8 | 2017-06-01 〜 2017-07-30 |
|
67
|
-
| 9 | 2017-07-31 〜 |
|
67
|
+
| 9 | 2017-07-31 〜 2017-09-20 |
|
68
|
+
| 10 | 2017-09-21 〜 2018-01-31 |
|
69
|
+
| 11 | 2018-02-01 (VERSION A REVISION 3 のリリース日) 〜 |
|
68
70
|
|
69
71
|
各 API version でパースできる JSON の種類は以下の通りです。また、同じ情報でも、API version によって、含まれる情報量が異なる場合があります。その場合は Supported (1), Supported (2) のように記載して区別しています。
|
70
72
|
|
@@ -72,7 +74,8 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
72
74
|
|------------:|:-----|:-----|:-----|:-----|
|
73
75
|
| 1 | Supported (1) | Supported (1) | Supported (1) | Supported |
|
74
76
|
| 2 〜 6 | Supported (2) | Supported (2) | Supported (2) | Supported |
|
75
|
-
| 7 〜
|
77
|
+
| 7 〜 10 | Supported (3) | Supported (3) | Supported (2) | Supported |
|
78
|
+
| 11 | Supported (3) | Supported (4) | Supported (2) | Supported |
|
76
79
|
|
77
80
|
| API version | 艦娘一覧 | 装備一覧 | イベント海域情報 |
|
78
81
|
|------------:|:-----|:-----|:-----|
|
@@ -82,13 +85,13 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
82
85
|
| 4 | Supported (2) | Supported (1) | Supported (1) |
|
83
86
|
| 5 〜 6 | Supported (3) | Supported (1) | Supported (1) |
|
84
87
|
| 7 〜 8 | Supported (4) | Supported (1) | Supported (2) |
|
85
|
-
| 9
|
88
|
+
| 9 〜 11 | Supported (4) | Supported (2) | Supported (2) |
|
86
89
|
|
87
90
|
| API version | 改装設計図一覧 |
|
88
91
|
|------------:|:-----|
|
89
|
-
| 1 〜 6
|
90
|
-
| 7
|
91
|
-
| 8 〜
|
92
|
+
| 1 〜 6 | Unsupported |
|
93
|
+
| 7 | Supported (1) |
|
94
|
+
| 8 〜 11 | Supported (2) |
|
92
95
|
|
93
96
|
## Development
|
94
97
|
|
@@ -83,6 +83,8 @@ class CharacterListInfo
|
|
83
83
|
97 => 761500,
|
84
84
|
98 => 851500,
|
85
85
|
99 => 1000000,
|
86
|
+
100 => 1000000,
|
87
|
+
101 => 1010000,
|
86
88
|
}
|
87
89
|
|
88
90
|
# Lv を、これまでに取得した累計経験値に変換して返します。
|
@@ -136,9 +138,58 @@ class CharacterListInfo
|
|
136
138
|
n = lv - 80
|
137
139
|
# Lv80 までの累計経験値 = 383000
|
138
140
|
383000 + n * (2 * a + (n - 1) * d) / 2
|
139
|
-
when 92..
|
140
|
-
# Lv92
|
141
|
+
when 92..101
|
142
|
+
# Lv92〜101は規則性がないため、累計経験値表から取得
|
141
143
|
EXP_TABLE[lv]
|
144
|
+
when 102..111
|
145
|
+
# Lv111までは、次レベルまでの必要経験値が1000ずつ増えていく
|
146
|
+
a = 1000
|
147
|
+
d = 1000
|
148
|
+
n = lv - 101
|
149
|
+
# Lv101 までの累計経験値 = 1010000
|
150
|
+
1010000 + n * (2 * a + (n - 1) * d) / 2
|
151
|
+
when 112..116
|
152
|
+
# Lv116までは、次レベルまでの必要経験値が2000ずつ増えていく
|
153
|
+
a = 12000
|
154
|
+
d = 2000
|
155
|
+
n = lv - 111
|
156
|
+
# Lv111 までの累計経験値 = 1065000
|
157
|
+
1065000 + n * (2 * a + (n - 1) * d) / 2
|
158
|
+
when 117..121
|
159
|
+
# Lv121までは、次レベルまでの必要経験値が3000ずつ増えていく
|
160
|
+
a = 23000
|
161
|
+
d = 3000
|
162
|
+
n = lv - 116
|
163
|
+
# Lv116 までの累計経験値 = 1145000
|
164
|
+
1145000 + n * (2 * a + (n - 1) * d) / 2
|
165
|
+
when 122..131
|
166
|
+
# Lv131までは、次レベルまでの必要経験値が4000ずつ増えていく
|
167
|
+
a = 39000
|
168
|
+
d = 4000
|
169
|
+
n = lv - 121
|
170
|
+
# Lv121 までの累計経験値 = 1290000
|
171
|
+
1290000 + n * (2 * a + (n - 1) * d) / 2
|
172
|
+
when 132..140
|
173
|
+
# Lv140までは、次レベルまでの必要経験値が5000ずつ増えていく
|
174
|
+
a = 80000
|
175
|
+
d = 5000
|
176
|
+
n = lv - 131
|
177
|
+
# Lv131 までの累計経験値 = 1860000
|
178
|
+
1860000 + n * (2 * a + (n - 1) * d) / 2
|
179
|
+
when 141..145
|
180
|
+
# Lv145までは、次レベルまでの必要経験値が7000ずつ増えていく
|
181
|
+
a = 127000
|
182
|
+
d = 7000
|
183
|
+
n = lv - 140
|
184
|
+
# Lv140 までの累計経験値 = 2760000
|
185
|
+
2760000 + n * (2 * a + (n - 1) * d) / 2
|
186
|
+
when 146..150
|
187
|
+
# Lv150までは、次レベルまでの必要経験値が8000ずつ増えていく
|
188
|
+
a = 163000
|
189
|
+
d = 8000
|
190
|
+
n = lv - 145
|
191
|
+
# Lv145 までの累計経験値 = 3465000
|
192
|
+
3465000 + n * (2 * a + (n - 1) * d) / 2
|
142
193
|
else
|
143
194
|
raise "Unsupported Lv: #{lv}"
|
144
195
|
end
|
@@ -154,8 +205,9 @@ class CharacterListInfo
|
|
154
205
|
return convert_lv_to_exp(lv)
|
155
206
|
end
|
156
207
|
|
157
|
-
#
|
158
|
-
|
208
|
+
# exp_percent が 0 の場合、lv_to_exp と同じ結果を返す
|
209
|
+
# これは Lv が上限の場合に next_exp が解決できない問題を避けるため
|
210
|
+
if exp_percent == 0
|
159
211
|
return convert_lv_to_exp(lv)
|
160
212
|
end
|
161
213
|
|
@@ -46,6 +46,21 @@ class AreaCaptureInfoParser
|
|
46
46
|
stage_drop_item_info: Array,
|
47
47
|
area_clear_state: String,
|
48
48
|
},
|
49
|
+
4 => {
|
50
|
+
area_id: Integer,
|
51
|
+
area_sub_id: Integer,
|
52
|
+
limit_sec: Integer,
|
53
|
+
require_gp: Integer,
|
54
|
+
pursuit_map: :boolean,
|
55
|
+
pursuit_map_open: :boolean,
|
56
|
+
sortie_limit: :boolean,
|
57
|
+
stage_image_name: String,
|
58
|
+
stage_mission_name: String,
|
59
|
+
stage_mission_info: String,
|
60
|
+
stage_clear_item_info: String,
|
61
|
+
stage_drop_item_info: Array,
|
62
|
+
area_clear_state: String,
|
63
|
+
},
|
49
64
|
}
|
50
65
|
|
51
66
|
OPTIONAL_KEYS = {
|
@@ -54,6 +69,10 @@ class AreaCaptureInfoParser
|
|
54
69
|
3 => {
|
55
70
|
boss_info: :boss_info,
|
56
71
|
},
|
72
|
+
4 => {
|
73
|
+
boss_info: :boss_info,
|
74
|
+
route: String,
|
75
|
+
},
|
57
76
|
}
|
58
77
|
|
59
78
|
BOSS_INFO_MANDATORY_KEYS = {
|
data/lib/admiral_stats_parser.rb
CHANGED
@@ -12,7 +12,7 @@ require 'admiral_stats_parser/parser/blueprint_list_info_parser'
|
|
12
12
|
module AdmiralStatsParser
|
13
13
|
# 最新の API バージョンを返します。
|
14
14
|
def self.get_latest_api_version
|
15
|
-
return
|
15
|
+
return 11
|
16
16
|
end
|
17
17
|
|
18
18
|
# エクスポート時刻を元に、API バージョンを推測して返します。
|
@@ -41,6 +41,12 @@ module AdmiralStatsParser
|
|
41
41
|
# version 9 の開始日
|
42
42
|
return 8 if exported_at < Time.parse('2017-07-31T07:00:00+0900')
|
43
43
|
|
44
|
+
# version 10 の開始日
|
45
|
+
return 9 if exported_at < Time.parse('2017-09-21T07:00:00+0900')
|
46
|
+
|
47
|
+
# version 11 の開始日
|
48
|
+
return 10 if exported_at < Time.parse('2018-02-01T07:00:00+0900')
|
49
|
+
|
44
50
|
return self.get_latest_api_version
|
45
51
|
end
|
46
52
|
|
@@ -51,7 +57,7 @@ module AdmiralStatsParser
|
|
51
57
|
PersonalBasicInfoParser.parse(json, 1)
|
52
58
|
when 2..6
|
53
59
|
PersonalBasicInfoParser.parse(json, 2)
|
54
|
-
when 7..
|
60
|
+
when 7..11
|
55
61
|
PersonalBasicInfoParser.parse(json, 3)
|
56
62
|
else
|
57
63
|
raise 'unsupported API version'
|
@@ -65,8 +71,10 @@ module AdmiralStatsParser
|
|
65
71
|
AreaCaptureInfoParser.parse(json, 1)
|
66
72
|
when 2..6
|
67
73
|
AreaCaptureInfoParser.parse(json, 2)
|
68
|
-
when 7..
|
74
|
+
when 7..10
|
69
75
|
AreaCaptureInfoParser.parse(json, 3)
|
76
|
+
when 11
|
77
|
+
AreaCaptureInfoParser.parse(json, 4)
|
70
78
|
else
|
71
79
|
raise 'unsupported API version'
|
72
80
|
end
|
@@ -77,7 +85,7 @@ module AdmiralStatsParser
|
|
77
85
|
case api_version
|
78
86
|
when 1
|
79
87
|
TcBookInfoParser.parse(json, 1)
|
80
|
-
when 2..
|
88
|
+
when 2..11
|
81
89
|
TcBookInfoParser.parse(json, 2)
|
82
90
|
else
|
83
91
|
raise 'unsupported API version'
|
@@ -87,7 +95,7 @@ module AdmiralStatsParser
|
|
87
95
|
# 装備図鑑をパースします。
|
88
96
|
def self.parse_equip_book_info(json, api_version)
|
89
97
|
case api_version
|
90
|
-
when 1..
|
98
|
+
when 1..11
|
91
99
|
EquipBookInfoParser.parse(json)
|
92
100
|
else
|
93
101
|
raise 'unsupported API version'
|
@@ -105,7 +113,7 @@ module AdmiralStatsParser
|
|
105
113
|
CharacterListInfoParser.parse(json, 2)
|
106
114
|
when 5..6
|
107
115
|
CharacterListInfoParser.parse(json, 3)
|
108
|
-
when 7..
|
116
|
+
when 7..11
|
109
117
|
CharacterListInfoParser.parse(json, 4)
|
110
118
|
else
|
111
119
|
raise 'unsupported API version'
|
@@ -119,7 +127,7 @@ module AdmiralStatsParser
|
|
119
127
|
raise 'API version 1 does not support equip list info'
|
120
128
|
when 2..8
|
121
129
|
EquipListInfoParser.parse(json, 1)
|
122
|
-
when 9
|
130
|
+
when 9..11
|
123
131
|
EquipListInfoParser.parse(json, 2)
|
124
132
|
else
|
125
133
|
raise 'unsupported API version'
|
@@ -131,7 +139,7 @@ module AdmiralStatsParser
|
|
131
139
|
case api_version
|
132
140
|
when 1..8
|
133
141
|
EquipListInfoParser.parse_max_slot_num(json, 1)
|
134
|
-
when 9
|
142
|
+
when 9..11
|
135
143
|
EquipListInfoParser.parse_max_slot_num(json, 2)
|
136
144
|
else
|
137
145
|
raise 'unsupported API version'
|
@@ -145,7 +153,7 @@ module AdmiralStatsParser
|
|
145
153
|
raise "API version #{api_version} does not support event info"
|
146
154
|
when 4..6
|
147
155
|
EventInfoParser.parse(json, 1)
|
148
|
-
when 7..
|
156
|
+
when 7..11
|
149
157
|
EventInfoParser.parse(json, 2)
|
150
158
|
else
|
151
159
|
raise 'unsupported API version'
|
@@ -157,7 +165,7 @@ module AdmiralStatsParser
|
|
157
165
|
case api_version
|
158
166
|
when 1..3
|
159
167
|
raise "API version #{api_version} does not support event info"
|
160
|
-
when 4..
|
168
|
+
when 4..11
|
161
169
|
{
|
162
170
|
opened: EventInfoParser.opened?(event_info_list, level, period),
|
163
171
|
all_cleared: EventInfoParser.all_cleared?(event_info_list, level, period),
|
@@ -178,7 +186,7 @@ module AdmiralStatsParser
|
|
178
186
|
raise "API version #{api_version} does not support blueprint list info"
|
179
187
|
when 7
|
180
188
|
BlueprintListInfoParser.parse(json, 1)
|
181
|
-
when 8..
|
189
|
+
when 8..11
|
182
190
|
BlueprintListInfoParser.parse(json, 2)
|
183
191
|
else
|
184
192
|
raise 'unsupported API version'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: admiral_stats_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Yoshizawa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|