Module:EnemyShipData

Revision as of 20:53, 3 June 2015 by com>Ckwng (ShipCapabilities support)

Documentation for this module may be created at Module:EnemyShipData/doc

local ShipData = require("Module:ShipData")
local EnemyShipData = ShipData{
    _constructor_module = "Module:EnemyShip",
}

EnemyShipData.hp_leveled = EnemyShipData.hp
EnemyShipData.firepower_leveled = EnemyShipData.firepower
EnemyShipData.torpedo_leveled = EnemyShipData.torpedo
EnemyShipData.aa_leveled = EnemyShipData.aa
EnemyShipData.armor_leveled = EnemyShipData.armor
EnemyShipData.asw_leveled = EnemyShipData.asw
EnemyShipData.evasion_leveled = EnemyShipData.evasion
EnemyShipData.los_leveled = EnemyShipData.los
EnemyShipData.luck_leveled = EnemyShipData.luck

function EnemyShipData:air_power()
    local air_power = 0
    for i=1, self:slots() or 0 do
        local slot_equipment, slot_space = self:slot(i)
        if slot_equipment == nil or slot_space == nil then
            --we have missing information, fall back to hard-coded air power
            air_power = self._as_rating
            break
        elseif slot_equipment ~= false then
            --if there is an equipment
            local slot_equipment_type = slot_equipment:type()
            local slot_equipment_aa = slot_equipment:aa()
            if slot_equipment_aa and
               (slot_equipment_type == 6 or 
                slot_equipment_type == 7 or 
                slot_equipment_type == 8 or 
                slot_equipment_type == 11) then
                air_power = air_power + 
                   math.floor(math.sqrt(slot_space) * slot_equipment_aa)
            elseif slot_equipment_aa == nil then
            --we have missing information, fall back to hard-coded air power
                air_power = self._as_rating
                break
            end
        end
    end
    return air_power
end
 
EnemyShipData.__call = EnemyShipData.create
 
return EnemyShipData