- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Changes
Jump to navigation
Jump to search
Line 1:
Line 1:
+
Line 65:
Line 66:
− _artillery_spotting_modes = { +
− +
− +
− +
− +
− +
− +
+
+
Line 375:
Line 378:
− +
Line 398:
Line 401:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
− +
− +
− +
− +
− +
− +
Line 417:
Line 435:
− +
− +
− return self._artillery_spotting_modes[mode] +
+
+
+
+
+
+
+
+
+
+
Replace artillery spotting percentages with actual numbers
local BaseData = require("Module:BaseData")
local BaseData = require("Module:BaseData")
local Formatting = require('Module:Formatting')
local format = require('Module:StringInterpolation').format
local format = require('Module:StringInterpolation').format
[3] = "Bombing, displayed as Shelling",
[3] = "Bombing, displayed as Shelling",
},
},
_artillery_spotting_actions = {
[1] = "Double Attack (120% x2)",
[1] = "Double Attack",
[2] = "Double Attack (120% x2) / Cut-in: Secondary Gun (110%)",
[2] = "Cut-in: Secondary Gun",
[3] = "Double Attack (120% x2) / Cut-in: AP (150%)",
[3] = "Cut-in: Radar",
[4] = "Cut-in: Secondary Gun (110%)",
[4] = "Cut-in: AP", --130%
[5] = "Cut-in: Secondary Gun (110%) / Cut-in: Radar (120%)",
[5] = "Cut-in: AP", --150%
[6] = "Cut-in: Secondary Gun (110%) / Cut-in: AP (130%)",
},
_artillery_spotting_attack_counts = {
[1] = "x2",
},
},
_night_battle_modes = {
_night_battle_modes = {
-- Detect possible day time special attack modifiers.
-- Detect possible day time special attack modifiers.
function ShipCapabilities:artillery_spotting()
function ShipCapabilities:artillery_spotting(post_cap_attack_power)
local total_space = self._ship:total_space()
local total_space = self._ship:total_space()
if not total_space or total_space <= 0 then
if not total_space or total_space <= 0 then
end
end
if seaplanes >= 1 then
if seaplanes >= 1 then
local attack_power
if post_cap_attack_power then
attack_power = post_cap_attack_power
if attack_power == 0 then
return false
end
else
local attack_mode
--assume no pre-cap modifiers
attack_mode, attack_power = self:day_battle()
if not attack_mode then
return false
end
attack_power = math.min(attack_power, 150)
end
if main_guns >= 2 then
if main_guns >= 2 then
if ap_shells >= 1 then
if ap_shells >= 1 then
return 3
return {{1, attack_power * 1.2}, {5, attack_power * 1.5}}
elseif secondary_guns >= 1 then
elseif secondary_guns >= 1 then
return 2
return {{1, attack_power * 1.2}, {2, attack_power * 1.1}}
end
end
return 1
return {{1, attack_power * 1.2}}
elseif main_guns == 1 and secondary_guns >= 1 then
elseif main_guns == 1 and secondary_guns >= 1 then
if radars >= 1 then
if radars >= 1 then
return 5
return {{2, attack_power * 1.1}, {3, attack_power * 1.2}}
elseif ap_shells >= 1 then
elseif ap_shells >= 1 then
return 6
return {{2, attack_power * 1.1}, {4, attack_power * 1.3}}
end
end
return 4
return {{2, attack_power * 1.1}}
end
end
end
end
end
end
function ShipCapabilities:format_artillery_spotting(mode)
function ShipCapabilities:format_artillery_spotting(modes)
if mode then
if modes then
local result = {}
for _, mode in ipairs(modes) do
local attack_power = tostring(math.floor(mode[2]))
local attack_mode = mode[1]
local attack_count = self._artillery_spotting_attack_counts[attack_mode]
if attack_count then
attack_power = attack_power .. " " .. attack_count
end
table.insert(result, format{self._attack_template, mode = self._artillery_spotting_actions[attack_mode], attack_power = attack_power})
end
return Formatting:tooltip(table.concat(result, " / "), "Assuming Parallel Engagement, Line Ahead, and no damage penalty.")
end
end
return "No"
return "No"