poi-plugin-item-improvement2 1.0.5 → 1.0.9

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.
@@ -5,25 +5,9 @@
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
7
  <list default="true" id="40128e24-f8c8-43c8-87be-27f4e2d2db24" name="更改" comment="">
8
- <change afterPath="$PROJECT_DIR$/assets/icon/145.png" afterDir="false" />
9
- <change afterPath="$PROJECT_DIR$/assets/icon/150.png" afterDir="false" />
10
- <change afterPath="$PROJECT_DIR$/assets/icon/2.png" afterDir="false" />
11
- <change afterPath="$PROJECT_DIR$/assets/icon/241.png" afterDir="false" />
12
- <change afterPath="$PROJECT_DIR$/assets/icon/95.png" afterDir="false" />
13
- <change beforePath="$PROJECT_DIR$/assets/db/arsenal_all.nedb" beforeDir="false" afterPath="$PROJECT_DIR$/assets/db/arsenal_all.nedb" afterDir="false" />
14
- <change beforePath="$PROJECT_DIR$/assets/db/arsenal_weekday.nedb" beforeDir="false" afterPath="$PROJECT_DIR$/assets/db/arsenal_weekday.nedb" afterDir="false" />
15
- <change beforePath="$PROJECT_DIR$/assets/db/items.nedb" beforeDir="false" afterPath="$PROJECT_DIR$/assets/db/items.nedb" afterDir="false" />
16
- <change beforePath="$PROJECT_DIR$/assets/icon/100.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/100.png" afterDir="false" />
17
- <change beforePath="$PROJECT_DIR$/assets/icon/104.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/104.png" afterDir="false" />
18
- <change beforePath="$PROJECT_DIR$/assets/icon/57.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/57.png" afterDir="false" />
19
- <change beforePath="$PROJECT_DIR$/assets/icon/70.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/70.png" afterDir="false" />
20
- <change beforePath="$PROJECT_DIR$/assets/icon/75.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/75.png" afterDir="false" />
21
- <change beforePath="$PROJECT_DIR$/assets/icon/77.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/77.png" afterDir="false" />
22
- <change beforePath="$PROJECT_DIR$/assets/icon/78.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/78.png" afterDir="false" />
23
- <change beforePath="$PROJECT_DIR$/assets/icon/91.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/91.png" afterDir="false" />
24
- <change beforePath="$PROJECT_DIR$/assets/icon/92.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/92.png" afterDir="false" />
25
- <change beforePath="$PROJECT_DIR$/assets/icon/94.png" beforeDir="false" afterPath="$PROJECT_DIR$/assets/icon/94.png" afterDir="false" />
8
+ <change afterPath="$PROJECT_DIR$/listeners/remodel-listener.js" afterDir="false" />
26
9
  <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
10
+ <change beforePath="$PROJECT_DIR$/views/detail-row.es" beforeDir="false" afterPath="$PROJECT_DIR$/views/detail-row.es" afterDir="false" />
27
11
  </list>
28
12
  <option name="SHOW_DIALOG" value="false" />
29
13
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -53,36 +37,36 @@
53
37
  <option name="hideEmptyMiddlePackages" value="true" />
54
38
  <option name="showLibraryContents" value="true" />
55
39
  </component>
56
- <component name="PropertiesComponent"><![CDATA[{
57
- "keyToString": {
58
- "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
59
- "ModuleVcsDetector.initialDetectionPerformed": "true",
60
- "Node.js.item-info-row.es.executor": "Run",
61
- "Node.js.item-info-row.js.executor": "Run",
62
- "Node.js.mat-row.es.executor": "Run",
63
- "Node.js.publish.js.executor": "Run",
64
- "Node.js.selectors.es.executor": "Run",
65
- "Node.js.useitem-icon.es.executor": "Run",
66
- "RunOnceActivity.ShowReadmeOnStart": "true",
67
- "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
68
- "RunOnceActivity.git.unshallow": "true",
69
- "RunOnceActivity.typescript.service.memoryLimit.init": "true",
70
- "SHARE_PROJECT_CONFIGURATION_FILES": "true",
71
- "git-widget-placeholder": "main",
72
- "javascript.preferred.runtime.type.id": "node",
73
- "last_opened_file_path": "/Users/sakana/code/plugin-item-improvement/assets/db",
74
- "node.js.detected.package.eslint": "true",
75
- "node.js.detected.package.stylelint": "true",
76
- "node.js.detected.package.tslint": "true",
77
- "node.js.selected.package.eslint": "(autodetect)",
78
- "node.js.selected.package.stylelint": "",
79
- "node.js.selected.package.tslint": "(autodetect)",
80
- "nodejs_package_manager_path": "npm",
81
- "settings.editor.selected.configurable": "preferences.pluginManager",
82
- "ts.external.directory.path": "/Applications/WebStorm.app/Contents/plugins/javascript-plugin/jsLanguageServicesImpl/external",
83
- "vue.rearranger.settings.migration": "true"
40
+ <component name="PropertiesComponent">{
41
+ &quot;keyToString&quot;: {
42
+ &quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
43
+ &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
44
+ &quot;Node.js.item-info-row.es.executor&quot;: &quot;Run&quot;,
45
+ &quot;Node.js.item-info-row.js.executor&quot;: &quot;Run&quot;,
46
+ &quot;Node.js.mat-row.es.executor&quot;: &quot;Run&quot;,
47
+ &quot;Node.js.publish.js.executor&quot;: &quot;Run&quot;,
48
+ &quot;Node.js.selectors.es.executor&quot;: &quot;Run&quot;,
49
+ &quot;Node.js.useitem-icon.es.executor&quot;: &quot;Run&quot;,
50
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
51
+ &quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
52
+ &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
53
+ &quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
54
+ &quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
55
+ &quot;git-widget-placeholder&quot;: &quot;main&quot;,
56
+ &quot;javascript.preferred.runtime.type.id&quot;: &quot;node&quot;,
57
+ &quot;last_opened_file_path&quot;: &quot;/Users/sakana/code/plugin-item-improvement/assets/db&quot;,
58
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
59
+ &quot;node.js.detected.package.stylelint&quot;: &quot;true&quot;,
60
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
61
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
62
+ &quot;node.js.selected.package.stylelint&quot;: &quot;&quot;,
63
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
64
+ &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
65
+ &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
66
+ &quot;ts.external.directory.path&quot;: &quot;/Applications/WebStorm.app/Contents/plugins/javascript-plugin/jsLanguageServicesImpl/external&quot;,
67
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
84
68
  }
85
- }]]></component>
69
+ }</component>
86
70
  <component name="RecentsManager">
87
71
  <key name="CopyFile.RECENT_KEYS">
88
72
  <recent name="$PROJECT_DIR$/assets/db" />
@@ -137,46 +121,31 @@
137
121
  <workItem from="1768548645399" duration="890000" />
138
122
  <workItem from="1768577343916" duration="24825000" />
139
123
  <workItem from="1777260186359" duration="1000" />
140
- <workItem from="1780066941937" duration="88031000" />
124
+ <workItem from="1780066941937" duration="100451000" />
125
+ <workItem from="1780894554460" duration="8000" />
126
+ <workItem from="1781055823534" duration="1349000" />
127
+ <workItem from="1781144981241" duration="715000" />
128
+ <workItem from="1781487047876" duration="3080000" />
141
129
  </task>
142
130
  <servers />
143
131
  </component>
144
132
  <component name="TypeScriptGeneratedFilesManager">
145
133
  <option name="version" value="3" />
146
134
  </component>
147
- <component name="Vcs.Log.Tabs.Properties">
148
- <option name="OPEN_GENERIC_TABS">
149
- <map>
150
- <entry key="712592f3-c312-49ef-9be5-7df54c39e845" value="TOOL_WINDOW" />
151
- </map>
135
+ <component name="Vcs.Log.History.Properties">
136
+ <option name="COLUMN_ID_ORDER">
137
+ <list>
138
+ <option value="Default.Root" />
139
+ <option value="Default.Author" />
140
+ <option value="Default.Date" />
141
+ <option value="GitHub.CommitStatus" />
142
+ <option value="Default.Subject" />
143
+ </list>
152
144
  </option>
145
+ </component>
146
+ <component name="Vcs.Log.Tabs.Properties">
153
147
  <option name="TAB_STATES">
154
148
  <map>
155
- <entry key="712592f3-c312-49ef-9be5-7df54c39e845">
156
- <value>
157
- <State>
158
- <option name="FILTERS">
159
- <map>
160
- <entry key="branch">
161
- <value>
162
- <list>
163
- <option value="HEAD" />
164
- </list>
165
- </value>
166
- </entry>
167
- <entry key="roots">
168
- <value>
169
- <list>
170
- <option value="$PROJECT_DIR$" />
171
- </list>
172
- </value>
173
- </entry>
174
- </map>
175
- </option>
176
- <option name="SHOW_ONLY_AFFECTED_CHANGES" value="true" />
177
- </State>
178
- </value>
179
- </entry>
180
149
  <entry key="MAIN">
181
150
  <value>
182
151
  <State />
@@ -80,7 +80,7 @@
80
80
  {"id": 1, "sort": 1, "improvement": [{"baseResource": [10, 20, 40, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 1, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [2, 3, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [2, 4, 2, 6], "targetWeapon": {"id": 293, "level": 0}, "consumables": [{"id": 28, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [1], "text": "睦月", "week": [true, true, true, true, true, true, true]}, {"id": [2], "text": "如月", "week": [true, true, true, true, true, true, true]}]}]}
81
81
  {"id": 293, "sort": 293, "improvement": [{"baseResource": [10, 30, 50, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [3, 4, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [4, 5, 2, 4], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 28, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [434], "text": "睦月改二", "week": [false, true, true, true, true, true, false]}, {"id": [435], "text": "如月改二", "week": [true, false, false, true, true, true, true]}]}]}
82
82
  {"id": 78, "sort": 78, "improvement": [{"baseResource": [10, 20, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [3, 3, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 2, "count": 1, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [4, 5, 2, 3], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 78, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [174], "text": "Z1", "week": [true, false, false, true, true, true, true]}, {"id": [175], "text": "Z3", "week": [true, true, true, false, false, true, true]}]}]}
83
- {"id": 297, "sort": 297, "improvement": [{"baseResource": [10, 30, 50, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [5, 6, 3, 5], "targetWeapon": {"id": 294, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [9], "text": "吹雪", "week": [false, true, true, true, false, false, false]}, {"id": [10], "text": "白雪", "week": [true, true, true, true, true, true, true]}, {"id": [11], "text": "深雪", "week": [false, false, false, false, true, true, true]}]}]}
83
+ {"id": 297, "sort": 297, "improvement": [{"baseResource": [10, 30, 50, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [5, 6, 3, 5], "targetWeapon": {"id": 294, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [9], "text": "吹雪", "week": [false, true, true, true, false, false, false]}, {"id": [10], "text": "白雪", "week": [true, true, true, true, true, true, true]}, {"id": [11], "text": "深雪", "week": [false, false, false, false, true, true, true]}, {"id": [486], "text": "浦波・改二", "week": [true, true, false, false, false, true, true]}, {"id": [368], "text": "浦波改", "week": [false, true, false, false, false, false, false]}, {"id": [206], "text": "磯波改", "week": [true, true, false, false, false, true, true]}, {"id": [666], "text": "磯波改二", "week": [true, false, false, false, true, true, true]}, {"id": [986], "text": "白雪改二", "week": [true, false, false, false, true, true, true]}]}]}
84
84
  {"id": 2, "sort": 2, "improvement": [{"baseResource": [10, 30, 60, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 2, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [2, 3, 3, 6], "targetWeapon": {"id": 63, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [0], "text": "", "week": [true, true, true, true, true, true, true]}]}]}
85
85
  {"id": 294, "sort": 294, "improvement": [{"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [426], "text": "吹雪改二", "week": [true, true, true, true, true, true, true]}, {"id": [1035], "text": "吹雪改三", "week": [false, true, true, true, false, false, false]}, {"id": [420], "text": "叢雲改二", "week": [false, false, false, true, true, true, true]}]}, {"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [9, 17, 6, 8], "targetWeapon": {"id": 455, "level": 1}, "consumables": [{"id": 294, "count": 1, "type": 0}, {"id": 75, "count": 1, "type": 1}]}], "shipWeekList": [{"id": [647], "text": "浦波改二", "week": [true, false, false, false, false, false, true]}, {"id": [959], "text": "深雪改二", "week": [true, true, true, true, false, false, false]}]}, {"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [11, 18, 8, 11], "targetWeapon": {"id": 295, "level": 0}, "consumables": [{"id": 121, "count": 1, "type": 0}, {"id": 75, "count": 1, "type": 1}, {"id": 78, "count": 1, "type": 1}]}], "shipWeekList": [{"id": [666], "text": "磯波改二", "week": [false, false, false, false, true, true, true]}]}]}
86
86
  {"id": 63, "sort": 63, "improvement": [{"baseResource": [10, 40, 70, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 2, 2, 3], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [2, 3, 2, 4], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 63, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [4, 8, 4, 7], "targetWeapon": {"id": 266, "level": 0}, "consumables": [{"id": 2, "count": 3, "type": 0}]}], "shipWeekList": [{"id": [144], "text": "夕立改二", "week": [false, true, true, true, false, false, false]}, {"id": [195], "text": "綾波改二", "week": [false, true, true, true, false, false, false]}, {"id": [469], "text": "江風改二", "week": [false, true, true, true, true, false, false]}]}]}
@@ -80,7 +80,7 @@
80
80
  {"id": 1, "name": "12cm単装砲", "improvementList": [{"baseResource": [10, 20, 40, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 1, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [2, 3, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [2, 4, 2, 6], "targetWeapon": {"id": 293, "level": 0}, "consumables": [{"id": 28, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [1], "text": "睦月", "week": [true, true, true, true, true, true, true]}, {"id": [2], "text": "如月", "week": [true, true, true, true, true, true, true]}]}]}
81
81
  {"id": 293, "name": "12cm単装砲改二", "improvementList": [{"baseResource": [10, 30, 50, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [3, 4, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 1, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [4, 5, 2, 4], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 28, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [434], "text": "睦月改二", "week": [false, true, true, true, true, true, false]}, {"id": [435], "text": "如月改二", "week": [true, false, false, true, true, true, true]}]}]}
82
82
  {"id": 78, "name": "12.7cm単装砲", "improvementList": [{"baseResource": [10, 20, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [3, 3, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 2, "count": 1, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [4, 5, 2, 3], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 78, "count": 1, "type": 0}]}], "shipWeekList": [{"id": [174], "text": "Z1", "week": [true, false, false, true, true, true, true]}, {"id": [175], "text": "Z3", "week": [true, true, true, false, false, true, true]}]}]}
83
- {"id": 297, "name": "12.7cm連装砲A型", "improvementList": [{"baseResource": [10, 30, 50, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [5, 6, 3, 5], "targetWeapon": {"id": 294, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [9], "text": "吹雪", "week": [false, true, true, true, false, false, false]}, {"id": [10], "text": "白雪", "week": [true, true, true, true, true, true, true]}, {"id": [11], "text": "深雪", "week": [false, false, false, false, true, true, true]}]}]}
83
+ {"id": 297, "name": "12.7cm連装砲A型", "improvementList": [{"baseResource": [10, 30, 50, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [5, 6, 3, 5], "targetWeapon": {"id": 294, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [9], "text": "吹雪", "week": [false, true, true, true, false, false, false]}, {"id": [10], "text": "白雪", "week": [true, true, true, true, true, true, true]}, {"id": [11], "text": "深雪", "week": [false, false, false, false, true, true, true]}, {"id": [486], "text": "浦波・改二", "week": [true, true, false, false, false, true, true]}, {"id": [368], "text": "浦波改", "week": [false, true, false, false, false, false, false]}, {"id": [206], "text": "磯波改", "week": [true, true, false, false, false, true, true]}, {"id": [666], "text": "磯波改二", "week": [true, false, false, false, true, true, true]}, {"id": [986], "text": "白雪改二", "week": [true, false, false, false, true, true, true]}]}]}
84
84
  {"id": 2, "name": "12.7cm連装砲", "improvementList": [{"baseResource": [10, 30, 60, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [1, 2, 1, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 2, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [2, 3, 3, 6], "targetWeapon": {"id": 63, "level": 0}, "consumables": [{"id": 2, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [0], "text": "", "week": [true, true, true, true, true, true, true]}]}]}
85
85
  {"id": 294, "name": "12.7cm連装砲A型改二", "improvementList": [{"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}], "shipWeekList": [{"id": [426], "text": "吹雪改二", "week": [true, true, true, true, true, true, true]}, {"id": [1035], "text": "吹雪改三", "week": [false, true, true, true, false, false, false]}, {"id": [420], "text": "叢雲改二", "week": [false, false, false, true, true, true, true]}]}, {"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [9, 17, 6, 8], "targetWeapon": {"id": 455, "level": 1}, "consumables": [{"id": 294, "count": 1, "type": 0}, {"id": 75, "count": 1, "type": 1}]}], "shipWeekList": [{"id": [647], "text": "浦波改二", "week": [true, false, false, false, false, false, true]}, {"id": [959], "text": "深雪改二", "week": [true, true, true, true, false, false, false]}]}, {"baseResource": [10, 40, 70, 10], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 3, 2, 2], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 297, "count": 2, "type": 0}]}, {"stageText": "★6~★9", "industryResource": [3, 4, 3, 5], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 3, "count": 2, "type": 0}]}, {"stageText": "", "industryResource": [11, 18, 8, 11], "targetWeapon": {"id": 295, "level": 0}, "consumables": [{"id": 121, "count": 1, "type": 0}, {"id": 75, "count": 1, "type": 1}, {"id": 78, "count": 1, "type": 1}]}], "shipWeekList": [{"id": [666], "text": "磯波改二", "week": [false, false, false, false, true, true, true]}]}]}
86
86
  {"id": 63, "name": "12.7cm連装砲B型改二", "improvementList": [{"baseResource": [10, 40, 70, 0], "stageList": [{"stageText": "★0~★5", "industryResource": [2, 2, 2, 3], "targetWeapon": {"id": 0, "level": 0}, "consumables": []}, {"stageText": "★6~★9", "industryResource": [2, 3, 2, 4], "targetWeapon": {"id": 0, "level": 0}, "consumables": [{"id": 63, "count": 1, "type": 0}]}, {"stageText": "", "industryResource": [4, 8, 4, 7], "targetWeapon": {"id": 266, "level": 0}, "consumables": [{"id": 2, "count": 3, "type": 0}]}], "shipWeekList": [{"id": [144], "text": "夕立改二", "week": [false, true, true, true, false, false, false]}, {"id": [195], "text": "綾波改二", "week": [false, true, true, true, false, false, false]}, {"id": [469], "text": "江風改二", "week": [false, true, true, true, true, false, false]}]}]}
@@ -0,0 +1,284 @@
1
+ // listeners/remodel-listener.js
2
+
3
+ /**
4
+ * 改修监听器 - 监听并上报改修操作
5
+ *
6
+ * 监听的接口:
7
+ * - api_req_kousyou/remodel_slot (执行改修) → 上报核心数据
8
+ * - api_req_kousyou/remodel_slotlist_detail (获取明细) → 记录当前选中的装备
9
+ */
10
+
11
+ // ========== 配置 ==========
12
+ const REPORT_URL = 'http://localhost:3000/api/remodel' // 替换为你的服务器地址
13
+ const DEBUG = true // 调试模式,会打印详细日志
14
+
15
+ // =========- 工具函数 ==========
16
+ function log(...args) {
17
+ if (DEBUG) {
18
+ console.log('[改修监听器]', ...args)
19
+ }
20
+ }
21
+
22
+ // 生成唯一ID
23
+ function generateId() {
24
+ return `${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
25
+ }
26
+
27
+ // ========== 状态缓存 ==========
28
+ // 用于临时存储用户当前选中的装备(因为改修请求不传装备ID)
29
+ let currentSelectedSlotId = null
30
+ let currentSelectedSlotTimestamp = 0
31
+
32
+ // 重试队列(可选)
33
+ let retryQueue = []
34
+ const RETRY_KEY = 'poi_remodel_retry_queue'
35
+
36
+ // ========== 数据解析 ==========
37
+
38
+ /**
39
+ * 解析改修明细响应 (remodel_slotlist_detail)
40
+ * 用户点击某个装备时触发,记录当前选中的装备ID
41
+ */
42
+ function parseRemodelDetail(payload) {
43
+ const { body } = payload
44
+ const data = body.api_data
45
+
46
+ const slotId = data.api_req_slot_id
47
+ const slotNum = data.api_req_slot_num
48
+
49
+ // 更新缓存
50
+ currentSelectedSlotId = slotId
51
+ currentSelectedSlotTimestamp = Date.now()
52
+
53
+ log('选中装备:', { slotId, slotNum, timestamp: currentSelectedSlotTimestamp })
54
+
55
+ return {
56
+ type: 'SELECT_EQUIPMENT',
57
+ slotId,
58
+ slotNum,
59
+ timestamp: currentSelectedSlotTimestamp,
60
+ // 消耗信息(预览)
61
+ consumption: {
62
+ buildkit: data.api_req_buildkit,
63
+ remodelkit: data.api_req_remodelkit,
64
+ certainBuildkit: data.api_certain_buildkit,
65
+ certainRemodelkit: data.api_certain_remodelkit,
66
+ useitemId: data.api_req_useitem_id,
67
+ useitemNum: data.api_req_useitem_num,
68
+ useitemId2: data.api_req_useitem_id2,
69
+ useitemNum2: data.api_req_useitem_num2,
70
+ },
71
+ needSecure: data.api_change_flag === 1, // 是否需要确保材料
72
+ }
73
+ }
74
+
75
+ /**
76
+ * 解析改修执行响应 (remodel_slot)
77
+ * 这是核心上报数据
78
+ */
79
+ function parseRemodelExecute(payload) {
80
+ const { body } = payload
81
+ const data = body.api_data
82
+
83
+ // 如果没有缓存,尝试从响应中获取(虽然响应里可能有,但不一定)
84
+ const equipmentId = currentSelectedSlotId || data.api_slot_id
85
+
86
+ log('改修执行:', {
87
+ equipmentId,
88
+ beforeLevel: data.api_remodel_level_before,
89
+ afterLevel: data.api_remodel_level,
90
+ result: data.api_result === 1 ? '成功' : '失败',
91
+ })
92
+
93
+ const record = {
94
+ id: generateId(),
95
+ timestamp: Date.now(),
96
+ date: new Date().toISOString(),
97
+
98
+ // 改修结果
99
+ success: data.api_result === 1,
100
+ equipmentId: equipmentId,
101
+ beforeLevel: data.api_remodel_level_before,
102
+ afterLevel: data.api_remodel_level,
103
+
104
+ // 消耗(实际消耗,从响应中获取)
105
+ consumption: {
106
+ buildkit: data.api_req_buildkit,
107
+ remodelkit: data.api_req_remodelkit,
108
+ certainBuildkit: data.api_certain_buildkit,
109
+ certainRemodelkit: data.api_certain_remodelkit,
110
+ useitemId: data.api_useitem_id,
111
+ useitemNum: data.api_useitem_num,
112
+ useitemId2: data.api_useitem_id2,
113
+ useitemNum2: data.api_useitem_num2,
114
+ },
115
+
116
+ // 元数据
117
+ source: 'poi-plugin-item-improvement2',
118
+ version: '1.0.0',
119
+ }
120
+
121
+ // 清空缓存(改修完成后重置)
122
+ // 注意:不要立即清空,因为可能连续改修同一个装备
123
+ // currentSelectedSlotId = null
124
+
125
+ return record
126
+ }
127
+
128
+ // ========== 上报功能 ==========
129
+
130
+ /**
131
+ * 上报数据到服务器
132
+ */
133
+ async function sendReport(data) {
134
+ if (!REPORT_URL || REPORT_URL === 'http://localhost:3000/api/remodel') {
135
+ log('未配置上报地址,仅打印日志')
136
+ log('上报数据:', JSON.stringify(data, null, 2))
137
+ return { success: true, mock: true }
138
+ }
139
+
140
+ try {
141
+ const response = await fetch(REPORT_URL, {
142
+ method: 'POST',
143
+ headers: {
144
+ 'Content-Type': 'application/json',
145
+ },
146
+ body: JSON.stringify(data),
147
+ })
148
+
149
+ if (response.ok) {
150
+ log('上报成功:', data.id)
151
+ return { success: true }
152
+ } else {
153
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`)
154
+ }
155
+ } catch (error) {
156
+ log('上报失败:', error.message)
157
+ // 保存到重试队列
158
+ saveToRetryQueue(data)
159
+ return { success: false, error: error.message }
160
+ }
161
+ }
162
+
163
+ /**
164
+ * 保存失败的上报到本地队列
165
+ */
166
+ function saveToRetryQueue(record) {
167
+ try {
168
+ const queue = JSON.parse(localStorage.getItem(RETRY_KEY) || '[]')
169
+ queue.push({
170
+ ...record,
171
+ retryCount: (record.retryCount || 0) + 1,
172
+ lastRetry: Date.now(),
173
+ })
174
+ // 只保留最近100条
175
+ const trimmed = queue.slice(-100)
176
+ localStorage.setItem(RETRY_KEY, JSON.stringify(trimmed))
177
+ log('已加入重试队列,当前队列长度:', trimmed.length)
178
+ } catch (e) {
179
+ console.error('[改修监听器] 保存重试队列失败:', e)
180
+ }
181
+ }
182
+
183
+ /**
184
+ * 重试失败的上报
185
+ */
186
+ async function retryFailedReports() {
187
+ try {
188
+ const queue = JSON.parse(localStorage.getItem(RETRY_KEY) || '[]')
189
+ if (queue.length === 0) return
190
+
191
+ log('开始重试失败队列,共', queue.length, '条')
192
+
193
+ const remaining = []
194
+ for (const record of queue) {
195
+ if (record.retryCount >= 3) {
196
+ log('超过重试次数,丢弃:', record.id)
197
+ continue
198
+ }
199
+
200
+ const result = await sendReport(record)
201
+ if (!result.success) {
202
+ remaining.push(record)
203
+ }
204
+ }
205
+
206
+ localStorage.setItem(RETRY_KEY, JSON.stringify(remaining))
207
+ log('重试完成,剩余:', remaining.length)
208
+ } catch (e) {
209
+ console.error('[改修监听器] 重试失败:', e)
210
+ }
211
+ }
212
+
213
+ // ========== 事件监听 ==========
214
+
215
+ let eventHandler = null
216
+ let onlineHandler = null
217
+
218
+ /**
219
+ * 启动改修监听器
220
+ */
221
+ export function startRemodelListener() {
222
+ if (eventHandler) {
223
+ log('监听器已存在,跳过启动')
224
+ return
225
+ }
226
+
227
+ log('启动改修监听器')
228
+
229
+ // 主事件处理器
230
+ eventHandler = (event) => {
231
+ const { path, body } = event.detail
232
+
233
+ // 1. 监听改修明细(用户选中装备)
234
+ if (path === '/kcsapi/api_req_kousyou/remodel_slotlist_detail') {
235
+ const detailData = parseRemodelDetail({ body })
236
+ // 明细数据不上报,仅用于缓存,但可以打印日志
237
+ if (DEBUG) {
238
+ log('[明细]', detailData)
239
+ }
240
+ }
241
+
242
+ // 2. 监听改修执行(核心上报)
243
+ if (path === '/kcsapi/api_req_kousyou/remodel_slot') {
244
+ const record = parseRemodelExecute({ body })
245
+ log('[改修]', record)
246
+ sendReport(record)
247
+ }
248
+ }
249
+
250
+ window.addEventListener('kancolle.api.response', eventHandler)
251
+
252
+ // 网络恢复时重试
253
+ onlineHandler = () => {
254
+ log('网络已恢复,开始重试')
255
+ retryFailedReports()
256
+ }
257
+ window.addEventListener('online', onlineHandler)
258
+
259
+ // 启动时重试
260
+ retryFailedReports()
261
+ }
262
+
263
+ /**
264
+ * 停止改修监听器
265
+ */
266
+ export function stopRemodelListener() {
267
+ if (eventHandler) {
268
+ window.removeEventListener('kancolle.api.response', eventHandler)
269
+ eventHandler = null
270
+ log('监听器已停止')
271
+ }
272
+
273
+ if (onlineHandler) {
274
+ window.removeEventListener('online', onlineHandler)
275
+ onlineHandler = null
276
+ }
277
+ }
278
+
279
+ // 插件卸载时自动清理
280
+ if (typeof module !== 'undefined' && module.hot) {
281
+ module.hot.dispose(() => {
282
+ stopRemodelListener()
283
+ })
284
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poi-plugin-item-improvement2",
3
- "version": "1.0.5",
3
+ "version": "1.0.9",
4
4
  "description": "use new data source",
5
5
  "main": "index.es",
6
6
  "scripts": {
@@ -28,7 +28,7 @@ const {
28
28
  } = window.i18n['poi-plugin-item-improvement2'];
29
29
  const WEEKDAY = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
30
30
 
31
- const parseItem = ($equips, $useitems, itemId, count, type, available) => {
31
+ const parseItem = ($equips, $useitems, itemId, count, type, useitemAvailable, available) => {
32
32
  // console.log('availableitem',available[itemId])
33
33
  //type 0 武器
34
34
  //type 1 useitem
@@ -39,7 +39,8 @@ const parseItem = ($equips, $useitems, itemId, count, type, available) => {
39
39
  name: _lodash.default.get($useitems, [itemId, 'api_name']),
40
40
  count: count,
41
41
  id: itemId,
42
- type: 'useitem'
42
+ type: 'useitem',
43
+ available: useitemAvailable[itemId] ? useitemAvailable[itemId].api_count : 0
43
44
  };
44
45
  } else {
45
46
  return {
@@ -57,6 +58,7 @@ const DetailRow = (0, _reactRedux.connect)(state => ({
57
58
  $const: (0, _selectors.constSelector)(state) || {},
58
59
  chains: (0, _selectors2.adjustedRemodelChainsSelector)(state),
59
60
  uniqMap: (0, _selectors2.shipUniqueMapSelector)(state),
61
+ useitemAvailable: state.info.useitems,
60
62
  available: (0, _selectors2.equipAvailableSelector)(state)
61
63
  }))(({
62
64
  row: row,
@@ -65,6 +67,7 @@ const DetailRow = (0, _reactRedux.connect)(state => ({
65
67
  $equips,
66
68
  $useitems
67
69
  },
70
+ useitemAvailable,
68
71
  available
69
72
  }) => {
70
73
  const result = [];
@@ -80,7 +83,6 @@ const DetailRow = (0, _reactRedux.connect)(state => ({
80
83
  return {
81
84
  name: shipWeek.text,
82
85
  days,
83
- fullWeek,
84
86
  dayText: fullWeek ? '' : `(${days.map(i => __(WEEKDAY[i])).join(' / ')})`
85
87
  };
86
88
  }); // skip if no ships
@@ -93,7 +95,7 @@ const DetailRow = (0, _reactRedux.connect)(state => ({
93
95
  stageList.forEach((stage, index, arr) => {
94
96
  const isFirst = index === 0;
95
97
  const isLast = index === arr.length - 1;
96
- const items = (stage.consumables || []).map(consumable => parseItem($equips, $useitems, consumable.id, consumable.count, consumable.type, available));
98
+ const items = (stage.consumables || []).map(consumable => parseItem($equips, $useitems, consumable.id, consumable.count, consumable.type, useitemAvailable, available));
97
99
  const upgradeInfo = {
98
100
  icon: 0,
99
101
  id: 0,
package/views/mat-row.js CHANGED
@@ -53,7 +53,6 @@ const MatRow = ({
53
53
  stageText,
54
54
  rowCnt,
55
55
  isFirst,
56
- isLast,
57
56
  day,
58
57
  assistants,
59
58
  upgrade,
@@ -61,12 +60,12 @@ const MatRow = ({
61
60
  development,
62
61
  improvement
63
62
  }) => {
64
- let hishoCol = assistants.map(hisho => _react.default.createElement("div", {
63
+ let hishoCol = assistants.map(assistant => (assistant.days.includes(day) || day === -1) && _react.default.createElement("div", {
65
64
  className: "hisho-col",
66
- key: hisho.name
67
- }, hisho.name, day === -1 && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("br", null), _react.default.createElement("span", {
65
+ key: assistant.name
66
+ }, assistant.name, day === -1 && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("br", null), _react.default.createElement("span", {
68
67
  className: "available-days"
69
- }, hisho.dayText))));
68
+ }, assistant.dayText))));
70
69
  let stageRow = '';
71
70
  let star = '';
72
71