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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a71d8cdf82776ba8470feed23cbc37df7b153b4c
4
- data.tar.gz: d538dd7b527aceb0818208b4817ae1526ed6d27b
3
+ metadata.gz: b57c6abd0b22c110362073c2741df23ba9117246
4
+ data.tar.gz: 567a990136ae2c89eb653eba5b0528ba215dbffa
5
5
  SHA512:
6
- metadata.gz: 83ad7209a9976a200cb2710617d633c543ba889be25824223d78b923b5b5e13390ba1a2729bb69cfc18bcaf04388c732ed57272b51ecb1b250480c1c825067c3
7
- data.tar.gz: 1aebe7b34f6e301bbddd9cb2541d19c3703cb2e81081ee187f8773f538b2b095836937678b54d04f3a3b8cf49a179533b54882456d02853e092f34bb8c6e3cfd
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 〜 9 | Supported (3) | Supported (3) | Supported (2) | Supported |
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 | Supported (4) | Supported (2) | Supported (2) |
88
+ | 9 〜 11 | Supported (4) | Supported (2) | Supported (2) |
86
89
 
87
90
  | API version | 改装設計図一覧 |
88
91
  |------------:|:-----|
89
- | 1 〜 6 | Unsupported |
90
- | 7 | Supported (1) |
91
- | 8 〜 9 | Supported (2) |
92
+ | 1 〜 6 | Unsupported |
93
+ | 7 | Supported (1) |
94
+ | 8 〜 11 | Supported (2) |
92
95
 
93
96
  ## Development
94
97
 
@@ -57,6 +57,9 @@ class AreaCaptureInfo
57
57
  # 海域ボスの情報(ボスが存在する場合のみ) (From API version 7?)
58
58
  attr_accessor :boss_info
59
59
 
60
+ # ルートの識別子(複数ルートが存在する場合のみ) (From API version 11)
61
+ attr_accessor :route
62
+
60
63
  # 海域ボスの情報
61
64
  class BossInfo
62
65
  # 海域ゲージの状態
@@ -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..99
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
- # Lv 99 に達している場合、および exp_percent が 0 の場合も、lv_to_exp と同じ結果を返す
158
- if lv == 99 or exp_percent == 0
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 = {
@@ -1,3 +1,3 @@
1
1
  module AdmiralStatsParser
2
- VERSION = "1.9.0"
2
+ VERSION = "1.11.0"
3
3
  end
@@ -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 9
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..9
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..9
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..9
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..9
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..9
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..9
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..9
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..9
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.9.0
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: 2017-09-12 00:00:00.000000000 Z
11
+ date: 2018-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler