admiral_stats_parser 0.1.9 → 1.5.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 +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
|