admiral_stats_parser 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|