admiral_stats_parser 0.1.9 → 1.5.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 +10 -9
- data/lib/admiral_stats_parser.rb +13 -8
- data/lib/admiral_stats_parser/model/character_list_info.rb +119 -37
- data/lib/admiral_stats_parser/parser/area_capture_info_parser.rb +26 -26
- data/lib/admiral_stats_parser/parser/character_list_info_parser.rb +37 -15
- data/lib/admiral_stats_parser/parser/equip_book_info_parser.rb +4 -4
- data/lib/admiral_stats_parser/parser/equip_list_info_parser.rb +5 -5
- data/lib/admiral_stats_parser/parser/event_info_parser.rb +22 -22
- data/lib/admiral_stats_parser/parser/personal_basic_info_parser.rb +21 -21
- data/lib/admiral_stats_parser/parser/tc_book_info_parser.rb +22 -22
- data/lib/admiral_stats_parser/version.rb +1 -1
- 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: 2aa3984e3dd25fe1d74fc4512e9887e3ab75f9b9
|
4
|
+
data.tar.gz: 9bd20abb4cbe4ff183f1237e19d025c3ed8d17a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4679a34084c1755bd27852cc4d0dbb90599d72099a54f7ec1e0bf79f5e5abd8249648ad99b769d654a4f6ae16e61cfb2f94762d3983387c7d7a90b9d14f60bce
|
7
|
+
data.tar.gz: ebf05a3b44df45a206436fd2393a1b61c114d8d3f78810ab7fa8f0ea668d29eb3e1fb94bdcc1485972d1c6dc58afb18abd0f33a82b9b9f5d21a3362591b27a4a
|
data/README.md
CHANGED
@@ -56,24 +56,25 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
56
56
|
| 1 | 2016-04-26 〜 2016-06-29 |
|
57
57
|
| 2 | 2016-06-30(REVISION 2 のリリース日)〜 2016-09-14 |
|
58
58
|
| 3 | 2016-09-15 〜 2016-10-26 |
|
59
|
-
| 4 | 2016-10-27 〜 |
|
59
|
+
| 4 | 2016-10-27 〜 2016-12-20 |
|
60
|
+
| 5 | 2016-12-21 〜 |
|
60
61
|
|
61
62
|
各 API version でパースできる JSON の種類は以下の通りです。また、同じ情報でも、API version によって、含まれる情報量が異なる場合があります。その場合は Supported (1), Supported (2) のように記載して区別しています。
|
62
63
|
|
63
|
-
| 提督情報での表示 | URL | API version 1 | API version 2〜
|
64
|
+
| 提督情報での表示 | URL | API version 1 | API version 2〜5 |
|
64
65
|
|:----------------|:----|:--------------|:--------------|
|
65
66
|
| 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) |
|
66
67
|
| 海域情報 | Area/captureInfo | Supported (1) | Supported (2) |
|
67
68
|
| 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) |
|
68
69
|
| 装備図鑑 | EquipBook/info | Supported | Supported |
|
69
70
|
|
70
|
-
| 提督情報での表示 | URL | API version 2 | API version 3〜4 |
|
71
|
-
|
72
|
-
| 艦娘一覧 | CharacterList/info | Supported (1) | Supported (2) |
|
73
|
-
| 装備一覧 | EquipList/info | Supported | Supported |
|
74
|
-
| 任務一覧 | Quest/info | Unsupported | Unsupported |
|
71
|
+
| 提督情報での表示 | URL | API version 2 | API version 3〜4 | API version 5 |
|
72
|
+
|:----------------|:----|:--------------|:-------------|:-------------|
|
73
|
+
| 艦娘一覧 | CharacterList/info | Supported (1) | Supported (2) | Supported (3) |
|
74
|
+
| 装備一覧 | EquipList/info | Supported | Supported | Supported |
|
75
|
+
| 任務一覧 | Quest/info | Unsupported | Unsupported | Unsupported |
|
75
76
|
|
76
|
-
| 提督情報での表示 | URL | API version 4 |
|
77
|
+
| 提督情報での表示 | URL | API version 4〜5 |
|
77
78
|
|:----------------|:----|:--------------|
|
78
79
|
| イベント海域情報 | Event/info | Supported (1) |
|
79
80
|
|
@@ -99,7 +100,7 @@ $ bundle exec rake release
|
|
99
100
|
|
100
101
|
## Contributing
|
101
102
|
|
102
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
103
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/muziyoshiz/admiral_stats_parser. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
103
104
|
|
104
105
|
|
105
106
|
## License
|
data/lib/admiral_stats_parser.rb
CHANGED
@@ -11,7 +11,7 @@ require 'admiral_stats_parser/parser/event_info_parser'
|
|
11
11
|
module AdmiralStatsParser
|
12
12
|
# 最新の API バージョンを返します。
|
13
13
|
def self.get_latest_api_version
|
14
|
-
return
|
14
|
+
return 5
|
15
15
|
end
|
16
16
|
|
17
17
|
# エクスポート時刻を元に、API バージョンを推測して返します。
|
@@ -25,6 +25,9 @@ module AdmiralStatsParser
|
|
25
25
|
# version 4 の開始日
|
26
26
|
return 3 if exported_at < Time.parse('2016-10-27T07:00:00+0900')
|
27
27
|
|
28
|
+
# version 5 の開始日
|
29
|
+
return 4 if exported_at < Time.parse('2016-12-21T07:00:00+0900')
|
30
|
+
|
28
31
|
return self.get_latest_api_version
|
29
32
|
end
|
30
33
|
|
@@ -33,7 +36,7 @@ module AdmiralStatsParser
|
|
33
36
|
case api_version
|
34
37
|
when 1
|
35
38
|
PersonalBasicInfoParser.parse(json, 1)
|
36
|
-
when 2..
|
39
|
+
when 2..5
|
37
40
|
PersonalBasicInfoParser.parse(json, 2)
|
38
41
|
else
|
39
42
|
raise 'unsupported API version'
|
@@ -45,7 +48,7 @@ module AdmiralStatsParser
|
|
45
48
|
case api_version
|
46
49
|
when 1
|
47
50
|
AreaCaptureInfoParser.parse(json, 1)
|
48
|
-
when 2..
|
51
|
+
when 2..5
|
49
52
|
AreaCaptureInfoParser.parse(json, 2)
|
50
53
|
else
|
51
54
|
raise 'unsupported API version'
|
@@ -57,7 +60,7 @@ module AdmiralStatsParser
|
|
57
60
|
case api_version
|
58
61
|
when 1
|
59
62
|
TcBookInfoParser.parse(json, 1)
|
60
|
-
when 2..
|
63
|
+
when 2..5
|
61
64
|
TcBookInfoParser.parse(json, 2)
|
62
65
|
else
|
63
66
|
raise 'unsupported API version'
|
@@ -67,7 +70,7 @@ module AdmiralStatsParser
|
|
67
70
|
# 装備図鑑をパースします。
|
68
71
|
def self.parse_equip_book_info(json, api_version)
|
69
72
|
case api_version
|
70
|
-
when 1..
|
73
|
+
when 1..5
|
71
74
|
EquipBookInfoParser.parse(json)
|
72
75
|
else
|
73
76
|
raise 'unsupported API version'
|
@@ -83,6 +86,8 @@ module AdmiralStatsParser
|
|
83
86
|
CharacterListInfoParser.parse(json, 1)
|
84
87
|
when 3..4
|
85
88
|
CharacterListInfoParser.parse(json, 2)
|
89
|
+
when 5
|
90
|
+
CharacterListInfoParser.parse(json, 3)
|
86
91
|
else
|
87
92
|
raise 'unsupported API version'
|
88
93
|
end
|
@@ -93,7 +98,7 @@ module AdmiralStatsParser
|
|
93
98
|
case api_version
|
94
99
|
when 1
|
95
100
|
raise 'API version 1 does not support equip list info'
|
96
|
-
when 2..
|
101
|
+
when 2..5
|
97
102
|
EquipListInfoParser.parse(json)
|
98
103
|
else
|
99
104
|
raise 'unsupported API version'
|
@@ -105,7 +110,7 @@ module AdmiralStatsParser
|
|
105
110
|
case api_version
|
106
111
|
when 1..3
|
107
112
|
raise "API version #{api_version} does not support event info"
|
108
|
-
when 4
|
113
|
+
when 4..5
|
109
114
|
EventInfoParser.parse(json, 1)
|
110
115
|
else
|
111
116
|
raise 'unsupported API version'
|
@@ -117,7 +122,7 @@ module AdmiralStatsParser
|
|
117
122
|
case api_version
|
118
123
|
when 1..3
|
119
124
|
raise "API version #{api_version} does not support event info"
|
120
|
-
when 4
|
125
|
+
when 4..5
|
121
126
|
{
|
122
127
|
opened: EventInfoParser.opened?(event_info_list, level),
|
123
128
|
all_cleared: EventInfoParser.all_cleared?(event_info_list, level),
|
@@ -27,6 +27,49 @@ class CharacterListInfo
|
|
27
27
|
# 星の数(1〜5)
|
28
28
|
attr_accessor :star_num
|
29
29
|
|
30
|
+
# 艦型
|
31
|
+
# 未取得の場合は、空文字列
|
32
|
+
attr_accessor :ship_class
|
33
|
+
|
34
|
+
# 艦番号(1〜)
|
35
|
+
# 未取得の場合は、-1
|
36
|
+
attr_accessor :ship_class_index
|
37
|
+
|
38
|
+
# 詳細画面で表示する画像のファイル名
|
39
|
+
attr_accessor :tc_img
|
40
|
+
|
41
|
+
# 経験値の獲得割合(%)
|
42
|
+
attr_accessor :exp_percent
|
43
|
+
|
44
|
+
# 最大HP
|
45
|
+
attr_accessor :max_hp
|
46
|
+
|
47
|
+
# 現在HP
|
48
|
+
attr_accessor :real_hp
|
49
|
+
|
50
|
+
# 被弾状態を表す文字列("NORMAL" 以外に何がある?)
|
51
|
+
attr_accessor :damage_status
|
52
|
+
|
53
|
+
# 装備スロット数
|
54
|
+
attr_accessor :slot_num
|
55
|
+
|
56
|
+
# 各スロットの装備名を表す文字列の配列(スロット数が4未満でも、要素は4個)
|
57
|
+
attr_accessor :slot_equip_name
|
58
|
+
|
59
|
+
# 各スロットに搭載可能な艦載機数の配列(スロット数が4未満でも、要素は4個)
|
60
|
+
# 艦載機を搭載できない場合は 0
|
61
|
+
attr_accessor :slot_amount
|
62
|
+
|
63
|
+
# 各スロットの搭載状況を表す文字列の配列(スロット数が4未満でも、要素は4個)
|
64
|
+
# "NONE":
|
65
|
+
# "NOT_EQUIPPED_AIRCRAFT": 艦載機を装備可能なスロットだが、艦載機を装備していない
|
66
|
+
# "EQUIPPED_AIRCRAFT": 艦載機を装備している
|
67
|
+
attr_accessor :slot_disp
|
68
|
+
|
69
|
+
# 各スロットの装備画像のファイル名の配列(スロット数が4未満でも、要素は4個)
|
70
|
+
# 何も装備していない場合、および装備可能なスロットでない場合は、空文字列
|
71
|
+
attr_accessor :slot_img
|
72
|
+
|
30
73
|
# 累計経験値表
|
31
74
|
EXP_TABLE = {
|
32
75
|
92 => 584500,
|
@@ -43,43 +86,82 @@ class CharacterListInfo
|
|
43
86
|
# ただし、Lv をもとに計算する都合上、その Lv になってから取得した経験値は含みません。
|
44
87
|
# この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
|
45
88
|
def lv_to_exp
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
89
|
+
CharacterListInfo.convert_lv_to_exp(@lv)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Lv および経験値の獲得割合を、これまでに取得した累計経験値に変換して返します。
|
93
|
+
# 獲得割合は整数のパーセントなので、実際の累積経験値とは誤差があります。
|
94
|
+
# また、経験値の獲得割合がサポートされる前のデータ(API version 4 以前)では、lv_to_exp と同じ結果を返します。
|
95
|
+
# この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
|
96
|
+
def lv_and_exp_percent_to_exp
|
97
|
+
CharacterListInfo.convert_lv_and_exp_percent_to_exp(@lv, @exp_percent)
|
98
|
+
end
|
99
|
+
|
100
|
+
# 引数で与えられた Lv を、これまでに取得した累計経験値に変換して返します。
|
101
|
+
# ただし、Lv をもとに計算する都合上、その Lv になってから取得した経験値は含みません。
|
102
|
+
# この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
|
103
|
+
def self.convert_lv_to_exp(lv)
|
104
|
+
case lv
|
105
|
+
when 1..50
|
106
|
+
# Lv51までは、必要経験値が100ずつ増えていく
|
107
|
+
lv * (lv - 1) * 100 / 2
|
108
|
+
when 51..60
|
109
|
+
# Lv61までは、次レベルまでの必要経験値が200ずつ増えていく
|
110
|
+
a = 5000
|
111
|
+
d = 200
|
112
|
+
n = lv - 50
|
113
|
+
# Lv50 までの累計経験値 = 122500
|
114
|
+
122500 + n * (2 * a + (n - 1) * d) / 2
|
115
|
+
when 61..70
|
116
|
+
# Lv71までは、次レベルまでの必要経験値が300ずつ増えていく
|
117
|
+
a = 7000
|
118
|
+
d = 300
|
119
|
+
n = lv - 60
|
120
|
+
# Lv60 までの累計経験値 = 181500
|
121
|
+
181500 + n * (2 * a + (n - 1) * d) / 2
|
122
|
+
when 71..80
|
123
|
+
# Lv81までは、次レベルまでの必要経験値が400ずつ増えていく
|
124
|
+
a = 10000
|
125
|
+
d = 400
|
126
|
+
n = lv - 70
|
127
|
+
# Lv70 までの累計経験値 = 265000
|
128
|
+
265000 + n * (2 * a + (n - 1) * d) / 2
|
129
|
+
when 81..91
|
130
|
+
# Lv91までは、次レベルまでの必要経験値が500ずつ増えていく
|
131
|
+
a = 14000
|
132
|
+
d = 500
|
133
|
+
n = lv - 80
|
134
|
+
# Lv80 までの累計経験値 = 383000
|
135
|
+
383000 + n * (2 * a + (n - 1) * d) / 2
|
136
|
+
when 92..99
|
137
|
+
# Lv92以降は規則性がなくなるため、累計経験値表から取得
|
138
|
+
EXP_TABLE[lv]
|
139
|
+
else
|
140
|
+
raise "Unsupported Lv: #{lv}"
|
83
141
|
end
|
84
142
|
end
|
143
|
+
|
144
|
+
# Lv および経験値の獲得割合を、これまでに取得した累計経験値に変換して返します。
|
145
|
+
# 獲得割合は整数のパーセントなので、実際の累積経験値とは誤差があります。
|
146
|
+
# また、経験値の獲得割合がサポートされる前のデータ(API version 4 以前)では、lv_to_exp と同じ結果を返します。
|
147
|
+
# この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
|
148
|
+
def self.convert_lv_and_exp_percent_to_exp(lv, exp_percent)
|
149
|
+
# API version 4 以前のデータには exp_percent が含まれないので、lv_to_exp と同じ結果を返す
|
150
|
+
unless exp_percent
|
151
|
+
return convert_lv_to_exp(lv)
|
152
|
+
end
|
153
|
+
|
154
|
+
# Lv 99 に達している場合、および exp_percent が 0 の場合も、lv_to_exp と同じ結果を返す
|
155
|
+
if lv == 99 or exp_percent == 0
|
156
|
+
return convert_lv_to_exp(lv)
|
157
|
+
end
|
158
|
+
|
159
|
+
# 現在のレベルまでの経験値
|
160
|
+
current_exp = convert_lv_to_exp(lv)
|
161
|
+
# 次のレベルまでの経験値
|
162
|
+
next_exp = convert_lv_to_exp(lv + 1)
|
163
|
+
|
164
|
+
# 次のレベルに達するまでに必要な経験値を加算して返す
|
165
|
+
current_exp + (next_exp - current_exp) * exp_percent / 100
|
166
|
+
end
|
85
167
|
end
|
@@ -4,34 +4,34 @@ require 'admiral_stats_parser/model/area_capture_info'
|
|
4
4
|
class AreaCaptureInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
6
|
1 => {
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
# :
|
11
|
-
:
|
12
|
-
:
|
13
|
-
# :
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
7
|
+
area_id: Integer,
|
8
|
+
area_sub_id: Integer,
|
9
|
+
limit_sec: Integer,
|
10
|
+
# require_gp: Integer,
|
11
|
+
pursuit_map: :boolean,
|
12
|
+
pursuit_map_open: :boolean,
|
13
|
+
# sortie_limit: :boolean,
|
14
|
+
stage_image_name: String,
|
15
|
+
stage_mission_name: String,
|
16
|
+
stage_mission_info: String,
|
17
|
+
stage_clear_item_info: String,
|
18
|
+
stage_drop_item_info: Array,
|
19
|
+
area_clear_state: String,
|
20
20
|
},
|
21
21
|
2 => {
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
22
|
+
area_id: Integer,
|
23
|
+
area_sub_id: Integer,
|
24
|
+
limit_sec: Integer,
|
25
|
+
require_gp: Integer,
|
26
|
+
pursuit_map: :boolean,
|
27
|
+
pursuit_map_open: :boolean,
|
28
|
+
sortie_limit: :boolean,
|
29
|
+
stage_image_name: String,
|
30
|
+
stage_mission_name: String,
|
31
|
+
stage_mission_info: String,
|
32
|
+
stage_clear_item_info: String,
|
33
|
+
stage_drop_item_info: Array,
|
34
|
+
area_clear_state: String,
|
35
35
|
}
|
36
36
|
}
|
37
37
|
|
@@ -4,23 +4,45 @@ require 'admiral_stats_parser/model/character_list_info'
|
|
4
4
|
class CharacterListInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
6
|
1 => {
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
7
|
+
book_no: Integer,
|
8
|
+
lv: Integer,
|
9
|
+
ship_type: String,
|
10
|
+
ship_sort_no: Integer,
|
11
|
+
remodel_lv: Integer,
|
12
|
+
ship_name: String,
|
13
|
+
status_img: String,
|
14
14
|
},
|
15
15
|
2 => {
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
16
|
+
book_no: Integer,
|
17
|
+
lv: Integer,
|
18
|
+
ship_type: String,
|
19
|
+
ship_sort_no: Integer,
|
20
|
+
remodel_lv: Integer,
|
21
|
+
ship_name: String,
|
22
|
+
status_img: String,
|
23
|
+
star_num: Integer,
|
24
|
+
},
|
25
|
+
3 => {
|
26
|
+
book_no: Integer,
|
27
|
+
lv: Integer,
|
28
|
+
ship_type: String,
|
29
|
+
ship_sort_no: Integer,
|
30
|
+
remodel_lv: Integer,
|
31
|
+
ship_name: String,
|
32
|
+
status_img: String,
|
33
|
+
star_num: Integer,
|
34
|
+
ship_class: String,
|
35
|
+
ship_class_index: Integer,
|
36
|
+
tc_img: String,
|
37
|
+
exp_percent: Integer,
|
38
|
+
max_hp: Integer,
|
39
|
+
real_hp: Integer,
|
40
|
+
damage_status: String,
|
41
|
+
slot_num: Integer,
|
42
|
+
slot_equip_name: Array,
|
43
|
+
slot_amount: Array,
|
44
|
+
slot_disp: Array,
|
45
|
+
slot_img: Array,
|
24
46
|
}
|
25
47
|
}
|
26
48
|
|
@@ -3,10 +3,10 @@ require 'admiral_stats_parser/model/equip_book_info'
|
|
3
3
|
|
4
4
|
class EquipBookInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
6
|
+
book_no: Integer,
|
7
|
+
equip_kind: String,
|
8
|
+
equip_name: String,
|
9
|
+
equip_img: String,
|
10
10
|
}
|
11
11
|
|
12
12
|
def self.parse(json)
|
@@ -3,11 +3,11 @@ require 'admiral_stats_parser/model/equip_list_info'
|
|
3
3
|
|
4
4
|
class EquipListInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
6
|
+
type: Integer,
|
7
|
+
equipment_id: Integer,
|
8
|
+
name: String,
|
9
|
+
num: Integer,
|
10
|
+
img: String,
|
11
11
|
}
|
12
12
|
|
13
13
|
def self.parse(json)
|
@@ -4,35 +4,35 @@ require 'admiral_stats_parser/model/event_info'
|
|
4
4
|
class EventInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
6
|
1 => {
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
7
|
+
area_id: Integer,
|
8
|
+
area_sub_id: Integer,
|
9
|
+
level: String,
|
10
|
+
area_kind: String,
|
11
|
+
limit_sec: Integer,
|
12
|
+
require_gp: Integer,
|
13
|
+
sortie_limit: :boolean,
|
14
|
+
stage_image_name: String,
|
15
|
+
stage_mission_name: String,
|
16
|
+
stage_mission_info: String,
|
17
|
+
reward_list: :reward_list,
|
18
|
+
stage_drop_item_info: Array,
|
19
|
+
area_clear_state: String,
|
20
|
+
military_gauge_status: String,
|
21
|
+
ene_military_gauge_val: Integer,
|
22
|
+
military_gauge_left: Integer,
|
23
|
+
boss_status: String,
|
24
|
+
loop_count: Integer,
|
25
25
|
}
|
26
26
|
}
|
27
27
|
|
28
28
|
REWARD_LIST_MANDATORY_KEYS = {
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
29
|
+
data_id: Integer,
|
30
|
+
kind: String,
|
31
|
+
value: Integer,
|
32
32
|
}
|
33
33
|
|
34
34
|
REWARD_LIST_OPTIONAL_KEYS = {
|
35
|
-
:
|
35
|
+
reward_type: String,
|
36
36
|
}
|
37
37
|
|
38
38
|
def self.parse(json, api_version)
|
@@ -4,37 +4,37 @@ require 'admiral_stats_parser/model/personal_basic_info'
|
|
4
4
|
class PersonalBasicInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
6
|
1 => {
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
7
|
+
fuel: Integer,
|
8
|
+
ammo: Integer,
|
9
|
+
steel: Integer,
|
10
|
+
bauxite: Integer,
|
11
|
+
bucket: Integer,
|
12
|
+
level: Integer,
|
13
|
+
room_item_coin: Integer,
|
14
14
|
},
|
15
15
|
2 => {
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
16
|
+
fuel: Integer,
|
17
|
+
ammo: Integer,
|
18
|
+
steel: Integer,
|
19
|
+
bauxite: Integer,
|
20
|
+
bucket: Integer,
|
21
|
+
level: Integer,
|
22
|
+
room_item_coin: Integer,
|
23
|
+
result_point: String,
|
24
|
+
rank: String,
|
25
|
+
title_id: Integer,
|
26
|
+
material_max: Integer,
|
27
|
+
strategy_point: Integer,
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
31
31
|
OPTIONAL_KEYS = {
|
32
32
|
1 => {
|
33
33
|
# 元のデータには必ず提督名が含まれるが、データ解析の上では不要のため、オプションとする
|
34
|
-
:
|
34
|
+
admiral_name: String,
|
35
35
|
},
|
36
36
|
2 => {
|
37
|
-
:
|
37
|
+
admiral_name: String,
|
38
38
|
}
|
39
39
|
}
|
40
40
|
|
@@ -4,30 +4,30 @@ require 'admiral_stats_parser/model/tc_book_info'
|
|
4
4
|
class TcBookInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
6
|
1 => {
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
# :
|
17
|
-
# :
|
7
|
+
book_no: Integer,
|
8
|
+
ship_class: String,
|
9
|
+
ship_class_index: Integer,
|
10
|
+
ship_type: String,
|
11
|
+
ship_name: String,
|
12
|
+
card_index_img: String,
|
13
|
+
card_img_list: Array,
|
14
|
+
variation_num: Integer,
|
15
|
+
acquire_num: Integer,
|
16
|
+
# lv: Integer,
|
17
|
+
# status_img: Array,
|
18
18
|
},
|
19
19
|
2 => {
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
20
|
+
book_no: Integer,
|
21
|
+
ship_class: String,
|
22
|
+
ship_class_index: Integer,
|
23
|
+
ship_type: String,
|
24
|
+
ship_name: String,
|
25
|
+
card_index_img: String,
|
26
|
+
card_img_list: Array,
|
27
|
+
variation_num: Integer,
|
28
|
+
acquire_num: Integer,
|
29
|
+
lv: Integer,
|
30
|
+
status_img: Array,
|
31
31
|
}
|
32
32
|
}
|
33
33
|
|
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:
|
4
|
+
version: 1.5.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: 2017-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|