Difference between revisions of "Module:EquipmentCategoriesKai"
m |
Jigaraphale (talk | contribs) |
||
| (36 intermediate revisions by 5 users not shown) | |||
| Line 2: | Line 2: | ||
local Formatting = require('Module:Formatting') | local Formatting = require('Module:Formatting') | ||
local Equipment = require('Module:Equipment') | local Equipment = require('Module:Equipment') | ||
| − | + | local EquipmentTypesPlural = require('Module:EquipmentTypesPlural') | |
local format = require('Module:Core').format | local format = require('Module:Core').format | ||
local EquipmentCategoriesKai = BaseData{ | local EquipmentCategoriesKai = BaseData{ | ||
_type_category_template = "Category:${equipment_type}", | _type_category_template = "Category:${equipment_type}", | ||
| − | _gun_fit_group_template = "Category:Guns in ${fit_group} fit group", | + | _gun_fit_group_template = "Category:Guns in ${fit_group} fit group",aar_equipment_ids |
} | } | ||
function EquipmentCategoriesKai:Categories(args) | function EquipmentCategoriesKai:Categories(args) | ||
| − | return self{ | + | return self{_args = args}:get_categories() |
| − | |||
| − | |||
end | end | ||
| Line 26: | Line 24: | ||
table.insert(self._categories, "Category:Player equipment") | table.insert(self._categories, "Category:Player equipment") | ||
end | end | ||
| + | |||
| + | local type_names = { | ||
| + | EquipmentTypesPlural.broad_type, | ||
| + | EquipmentTypesPlural.gallery_type, | ||
| + | EquipmentTypesPlural, -- exact_type | ||
| + | EquipmentTypesPlural.icon_type, | ||
| + | -- EquipmentTypesPlural.aircraft_type, | ||
| + | } | ||
function EquipmentCategoriesKai:create_type_categories() | function EquipmentCategoriesKai:create_type_categories() | ||
| + | local types = self._equipment:types() | ||
| + | types[3] = self._equipment:type() | ||
| + | for i, type in ipairs(types) do | ||
| + | local type_name = type_names[i] and type_names[i][type] | ||
| + | if type_name then | ||
| + | table.insert(self._categories, format{self._type_category_template, equipment_type = type_name}) | ||
| + | end | ||
| + | end | ||
| + | -- if types[3] == 3 or types[3] == 38 then | ||
| + | -- local fit_group = self._equipment:gun_fit_group() | ||
| + | -- if fit_group then | ||
| + | -- table.insert(self._categories, format{self._gun_fit_group_template, fit_group = fit_group}) | ||
| + | -- end | ||
| + | -- end | ||
| + | end | ||
| + | |||
| + | -- Chocolatecravinghobo's makeshift temporary hardcode section till something better replaces it and/or the equipment categories rework happens | ||
| + | |||
| + | function EquipmentCategoriesKai:create_stat_categories() --Tried to utilise Formatting:format_equipment_types from Module:Formatting and eq_group from Module:EquipmentInfoKai but couldn't figure it out | ||
| + | local equipment_icon = self._equipment:icon() | ||
local equipment_type = self._equipment:type() | local equipment_type = self._equipment:type() | ||
| − | if | + | -- if equipment_icon == 16 then --HA/MG AA categories disabled due to being phased out. Could make a comeback so disabled rather than deleted. |
| − | table.insert(self._categories, format{self. | + | -- local aa = self._equipment:aa() |
| + | -- if aa and aa >= 8 then | ||
| + | -- table.insert(self._categories, format{"Category:High-angle Guns with 8+ AA stat"}) | ||
| + | -- end | ||
| + | -- elseif equipment_type == 21 then | ||
| + | -- local aa = self._equipment:aa() | ||
| + | -- if aa and aa >= 9 then | ||
| + | -- table.insert(self._categories, format{"Category:${equipment_type} with 9+ AA stat", equipment_type = Formatting:format_equipment_type_plural(equipment_type)}) | ||
| + | -- end | ||
| + | if equipment_type == 12 or equipment_type == 13 or equipment_type == 93 then | ||
| + | local aa = self._equipment:aa() | ||
| + | if aa and aa >= 2 then | ||
| + | table.insert(self._categories, format{"Category:Air Radars"}) | ||
| + | end | ||
| + | local los = self._equipment:los() | ||
| + | if los and los >= 5 then | ||
| + | table.insert(self._categories, format{"Category:Surface Radars"}) | ||
| + | end | ||
| + | elseif equipment_type == 23 or equipment_type == 43 or equipment_type == 44 then | ||
| + | table.insert(self._categories, format{"Category:Items"}) | ||
| + | elseif equipment_type == 7 or equipment_type == 8 or equipment_type == 10 or equipment_type == 11 or equipment_type == 25 or equipment_type == 26 or equipment_icon == 47 then | ||
| + | local asw = self._equipment:asw() | ||
| + | if asw and asw >= 7 then | ||
| + | table.insert(self._categories, format{"Category:Aircraft with 7+ ASW stat"}) | ||
| + | end | ||
end | end | ||
| − | if equipment_type == | + | --equip ID category hardcode section |
| − | local | + | local equipment_id = self._equipment:id() |
| − | if | + | if equipment_type == 7 or equipment_type == 8 or equipment_type == 10 or equipment_type == 11 or equipment_type == 25 or equipment_type == 26 or equipment_type == 47 or equipment_type == 57 then --All non-fighter aircraft |
| − | table.insert(self._categories, format{self. | + | local equipment_aircraft = self._equipment:types() |
| + | local equipment_aircraft = equipment_aircraft[5] | ||
| + | if equipment_id == 207 or equipment_aircraft == 32 then --all Zuiuns but id 207 use aircraft_type 32 | ||
| + | table.insert(self._categories, format{"Category:Zuiuns"}) | ||
| + | end | ||
| + | if equipment_id == 154 or equipment_id == 242 or equipment_id == 243 or equipment_id == 244 or equipment_id == 244 or equipment_id == 320 or equipment_icon == 45 or equipment_icon == 46 or equipment_icon == 58 then | ||
| + | table.insert(self._categories, format{"Category:Carrier-based Night Aircraft"}) | ||
| + | end | ||
| + | local aar_equipment_ids = {93, 94, 143, 144, 343, 374, 466, 481, 545, 559, 570, --Carrier-based Torpedo Bombers | ||
| + | 99, 100, 154, 319, 320, 474, 475, 476, 487, 557, 558, --Carrier-based Dive Bombers | ||
| + | 79, 80, 81, 208, 237, 322, 323, 490, --Seaplane Bombers | ||
| + | 491, --Anti-submarine Patrol Aircraft | ||
| + | 199, 200, --Jet-powered Fighter-Bombers | ||
| + | 170, 224, 388, 404, 405, 406, 433, 444, 453, 454, 479, 484, 504, 562 --Land-based Attack Aircraft | ||
| + | } | ||
| + | for i = 1, #aar_equipment_ids do | ||
| + | if equipment_id == aar_equipment_ids[i] then | ||
| + | table.insert(self._categories, format{"Category:Planes with Anti-Air Resistance"}) | ||
| + | end | ||
| + | end | ||
| + | if equipment_type == 7 then | ||
| + | if equipment_id == 64 or equipment_id == 148 or equipment_id == 233 or equipment_id == 277 or equipment_id == 305 or equipment_id == 306 or equipment_id == 319 or equipment_id == 320 or equipment_id == 391 or equipment_id == 392 or equipment_id == 420 or equipment_id == 421 or equipment_id == 474 or equipment_id == 541 or equipment_id == 544 or equipment_id == 550 or equipment_id == 551 or equipment_id == 552 then | ||
| + | table.insert(self._categories, format{"Category:Anti-Installation Dive Bombers"}) | ||
| + | end | ||
| + | end | ||
| + | elseif equipment_id == 350 or equipment_id == 351 or equipment_id == 352 then | ||
| + | table.insert(self._categories, format{"Category:High Altitude Interceptors"}) | ||
| + | elseif equipment_id == 213 or equipment_id == 214 or equipment_id == 383 or equipment_id == 441 or equipment_id == 443 or equipment_id == 457 or equipment_id == 461 or equipment_id == 512 then | ||
| + | table.insert(self._categories, format{"Category:Late Model Submarine Torpedoes"}) | ||
| + | elseif equipment_type == 15 then | ||
| + | if equipment_id == 44 or equipment_id == 45 or equipment_id == 287 or equipment_id == 288 or equipment_id == 377 or equipment_id == 472 or equipment_id == 569 then | ||
| + | table.insert(self._categories, format{"Category:Depth Charge Projectors"}) | ||
| + | elseif equipment_id == 226 or equipment_id == 227 or equipment_id == 378 or equipment_id == 439 or equipment_id == 488 then | ||
| + | table.insert(self._categories, format{"Category:Depth Charge Racks"}) | ||
| + | elseif equipment_id == 346 or equipment_id == 347 then | ||
| + | table.insert(self._categories, format{"Category:ASW Mortars"}) | ||
| + | else table.insert(self._categories, format{"Category:Unknown-type Depth Charge"}) --Not a category, acts as a notice/warning. | ||
end | end | ||
end | end | ||
end | end | ||
| + | |||
| + | -- end of Chocolatecravinghobo makeshift section | ||
function EquipmentCategoriesKai:create_rarity_categories() | function EquipmentCategoriesKai:create_rarity_categories() | ||
| Line 48: | Line 136: | ||
function EquipmentCategoriesKai:create_obtainability_categories() | function EquipmentCategoriesKai:create_obtainability_categories() | ||
| − | local buildable, improvable, obtainable_through_upgrade = self._equipment:buildable(), self._equipment:improvement_products(), self._equipment:improvement_from() | + | local buildable, obtainable_through_upgrade = self._equipment:buildable(), self._equipment:improvement_from() --improvable category disabled. _improvements = true, causes "Lua error in Module:EquipmentData at line 507: attempt to index field '_improvements' (a boolean value)." |
| + | --local buildable, improvable, obtainable_through_upgrade = self._equipment:buildable(), self._equipment:improvement_products(), self._equipment:improvement_from() | ||
if buildable then | if buildable then | ||
table.insert(self._categories, format{"Category:Equipment buildable in Development"}) | table.insert(self._categories, format{"Category:Equipment buildable in Development"}) | ||
| Line 80: | Line 169: | ||
self:create_static_categories() | self:create_static_categories() | ||
self:create_type_categories() | self:create_type_categories() | ||
| + | self:create_stat_categories() --CCH | ||
--self:create_rarity_categories() | --self:create_rarity_categories() | ||
self:create_obtainability_categories() | self:create_obtainability_categories() | ||
Latest revision as of 16:47, 15 February 2026
Documentation for this module may be created at Module:EquipmentCategoriesKai/doc
local BaseData = require('Module:BaseData')
local Formatting = require('Module:Formatting')
local Equipment = require('Module:Equipment')
local EquipmentTypesPlural = require('Module:EquipmentTypesPlural')
local format = require('Module:Core').format
local EquipmentCategoriesKai = BaseData{
_type_category_template = "Category:${equipment_type}",
_gun_fit_group_template = "Category:Guns in ${fit_group} fit group",aar_equipment_ids
}
function EquipmentCategoriesKai:Categories(args)
return self{_args = args}:get_categories()
end
function EquipmentCategoriesKai:create_equipment()
local name = self._args.name or self._args[1]
if name then
self._equipment = Equipment(name)
end
end
function EquipmentCategoriesKai:create_static_categories()
table.insert(self._categories, "Category:Player equipment")
end
local type_names = {
EquipmentTypesPlural.broad_type,
EquipmentTypesPlural.gallery_type,
EquipmentTypesPlural, -- exact_type
EquipmentTypesPlural.icon_type,
-- EquipmentTypesPlural.aircraft_type,
}
function EquipmentCategoriesKai:create_type_categories()
local types = self._equipment:types()
types[3] = self._equipment:type()
for i, type in ipairs(types) do
local type_name = type_names[i] and type_names[i][type]
if type_name then
table.insert(self._categories, format{self._type_category_template, equipment_type = type_name})
end
end
-- if types[3] == 3 or types[3] == 38 then
-- local fit_group = self._equipment:gun_fit_group()
-- if fit_group then
-- table.insert(self._categories, format{self._gun_fit_group_template, fit_group = fit_group})
-- end
-- end
end
-- Chocolatecravinghobo's makeshift temporary hardcode section till something better replaces it and/or the equipment categories rework happens
function EquipmentCategoriesKai:create_stat_categories() --Tried to utilise Formatting:format_equipment_types from Module:Formatting and eq_group from Module:EquipmentInfoKai but couldn't figure it out
local equipment_icon = self._equipment:icon()
local equipment_type = self._equipment:type()
-- if equipment_icon == 16 then --HA/MG AA categories disabled due to being phased out. Could make a comeback so disabled rather than deleted.
-- local aa = self._equipment:aa()
-- if aa and aa >= 8 then
-- table.insert(self._categories, format{"Category:High-angle Guns with 8+ AA stat"})
-- end
-- elseif equipment_type == 21 then
-- local aa = self._equipment:aa()
-- if aa and aa >= 9 then
-- table.insert(self._categories, format{"Category:${equipment_type} with 9+ AA stat", equipment_type = Formatting:format_equipment_type_plural(equipment_type)})
-- end
if equipment_type == 12 or equipment_type == 13 or equipment_type == 93 then
local aa = self._equipment:aa()
if aa and aa >= 2 then
table.insert(self._categories, format{"Category:Air Radars"})
end
local los = self._equipment:los()
if los and los >= 5 then
table.insert(self._categories, format{"Category:Surface Radars"})
end
elseif equipment_type == 23 or equipment_type == 43 or equipment_type == 44 then
table.insert(self._categories, format{"Category:Items"})
elseif equipment_type == 7 or equipment_type == 8 or equipment_type == 10 or equipment_type == 11 or equipment_type == 25 or equipment_type == 26 or equipment_icon == 47 then
local asw = self._equipment:asw()
if asw and asw >= 7 then
table.insert(self._categories, format{"Category:Aircraft with 7+ ASW stat"})
end
end
--equip ID category hardcode section
local equipment_id = self._equipment:id()
if equipment_type == 7 or equipment_type == 8 or equipment_type == 10 or equipment_type == 11 or equipment_type == 25 or equipment_type == 26 or equipment_type == 47 or equipment_type == 57 then --All non-fighter aircraft
local equipment_aircraft = self._equipment:types()
local equipment_aircraft = equipment_aircraft[5]
if equipment_id == 207 or equipment_aircraft == 32 then --all Zuiuns but id 207 use aircraft_type 32
table.insert(self._categories, format{"Category:Zuiuns"})
end
if equipment_id == 154 or equipment_id == 242 or equipment_id == 243 or equipment_id == 244 or equipment_id == 244 or equipment_id == 320 or equipment_icon == 45 or equipment_icon == 46 or equipment_icon == 58 then
table.insert(self._categories, format{"Category:Carrier-based Night Aircraft"})
end
local aar_equipment_ids = {93, 94, 143, 144, 343, 374, 466, 481, 545, 559, 570, --Carrier-based Torpedo Bombers
99, 100, 154, 319, 320, 474, 475, 476, 487, 557, 558, --Carrier-based Dive Bombers
79, 80, 81, 208, 237, 322, 323, 490, --Seaplane Bombers
491, --Anti-submarine Patrol Aircraft
199, 200, --Jet-powered Fighter-Bombers
170, 224, 388, 404, 405, 406, 433, 444, 453, 454, 479, 484, 504, 562 --Land-based Attack Aircraft
}
for i = 1, #aar_equipment_ids do
if equipment_id == aar_equipment_ids[i] then
table.insert(self._categories, format{"Category:Planes with Anti-Air Resistance"})
end
end
if equipment_type == 7 then
if equipment_id == 64 or equipment_id == 148 or equipment_id == 233 or equipment_id == 277 or equipment_id == 305 or equipment_id == 306 or equipment_id == 319 or equipment_id == 320 or equipment_id == 391 or equipment_id == 392 or equipment_id == 420 or equipment_id == 421 or equipment_id == 474 or equipment_id == 541 or equipment_id == 544 or equipment_id == 550 or equipment_id == 551 or equipment_id == 552 then
table.insert(self._categories, format{"Category:Anti-Installation Dive Bombers"})
end
end
elseif equipment_id == 350 or equipment_id == 351 or equipment_id == 352 then
table.insert(self._categories, format{"Category:High Altitude Interceptors"})
elseif equipment_id == 213 or equipment_id == 214 or equipment_id == 383 or equipment_id == 441 or equipment_id == 443 or equipment_id == 457 or equipment_id == 461 or equipment_id == 512 then
table.insert(self._categories, format{"Category:Late Model Submarine Torpedoes"})
elseif equipment_type == 15 then
if equipment_id == 44 or equipment_id == 45 or equipment_id == 287 or equipment_id == 288 or equipment_id == 377 or equipment_id == 472 or equipment_id == 569 then
table.insert(self._categories, format{"Category:Depth Charge Projectors"})
elseif equipment_id == 226 or equipment_id == 227 or equipment_id == 378 or equipment_id == 439 or equipment_id == 488 then
table.insert(self._categories, format{"Category:Depth Charge Racks"})
elseif equipment_id == 346 or equipment_id == 347 then
table.insert(self._categories, format{"Category:ASW Mortars"})
else table.insert(self._categories, format{"Category:Unknown-type Depth Charge"}) --Not a category, acts as a notice/warning.
end
end
end
-- end of Chocolatecravinghobo makeshift section
function EquipmentCategoriesKai:create_rarity_categories()
local rarity = self._equipment:rarity()
if rarity then
table.insert(self._categories, format{"Category:${rarity} rarity equipment", rarity = Formatting:format_equipment_rarity(rarity)})
end
end
function EquipmentCategoriesKai:create_obtainability_categories()
local buildable, obtainable_through_upgrade = self._equipment:buildable(), self._equipment:improvement_from() --improvable category disabled. _improvements = true, causes "Lua error in Module:EquipmentData at line 507: attempt to index field '_improvements' (a boolean value)."
--local buildable, improvable, obtainable_through_upgrade = self._equipment:buildable(), self._equipment:improvement_products(), self._equipment:improvement_from()
if buildable then
table.insert(self._categories, format{"Category:Equipment buildable in Development"})
end
if improvable then
table.insert(self._categories, format{"Category:Equipment improvable in Akashi's Improvement Arsenal"})
end
if obtainable_through_upgrade then
table.insert(self._categories, format{"Category:Equipment obtainable by upgrade through Akashi's Improvement Arsenal"})
end
end
function EquipmentCategoriesKai:write_categories()
local links = {}
for _, category in ipairs(self._categories) do
table.insert(links, Formatting:format_link(category))
end
return table.concat(links)
end
function EquipmentCategoriesKai:get_categories()
self._categories = {}
self:create_equipment()
if self._equipment then
self:create_categories()
end
return self:write_categories()
end
function EquipmentCategoriesKai:create_categories()
self:create_static_categories()
self:create_type_categories()
self:create_stat_categories() --CCH
--self:create_rarity_categories()
self:create_obtainability_categories()
end
return EquipmentCategoriesKai