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 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