| Line 11: |
Line 11: |
| | local EquipmentByApiId = require('Module:Collection/EquipmentByApiId') | | local EquipmentByApiId = require('Module:Collection/EquipmentByApiId') |
| | | | |
| − | local function getShipCard(ship) | + | local function getShipCard(ship, hp, maxHp) |
| | + | local minHp = type(hp) == 'table' and U.imin(hp) or hp |
| | local id = tonumber(ship) | | local id = tonumber(ship) |
| | if id then | | if id then |
| | ship = ShipsByApiId[id] | | ship = ShipsByApiId[id] |
| | end | | end |
| − | return ShipBattleCardKai:Asset({ ship, hd = true, size = '160px' }) | + | return ShipBattleCardKai:Asset({ |
| | + | ship, |
| | + | hd = true, |
| | + | size = '160px', |
| | + | damaged = hp / maxHp <= 0.5 and 'true' or 'false', |
| | + | layers = hp / maxHp <= 0.5 and 'status_medium_damage' or hp / maxHp <= 0.75 and 'status_light_damage' or '', |
| | + | }) |
| | end | | end |
| | | | |
| Line 85: |
Line 92: |
| | | | |
| | local function formatHp(hps, maxHp) | | local function formatHp(hps, maxHp) |
| − | return string.format( | + | local minHp = U.imin(hps) |
| − | '<span class="explain" title="%s">~/%s</span>',
| + | if minHp / maxHp <= 0.5 then |
| − | U.ijoin(hps, ', '),
| + | return string.format('{{color|red|{{tooltip|~/%s|%s}}}}', maxHp, U.ijoin(hps, ', ')) |
| − | maxHp
| + | elseif minHp / maxHp <= 0.75 then |
| − | ) | + | return string.format('{{color|coral|{{tooltip|~/%s|%s}}}}', maxHp, U.ijoin(hps, ', ')) |
| | + | else |
| | + | return string.format('{{tooltip|~/%s|%s}}', maxHp, U.ijoin(hps, ', ')) |
| | + | end |
| | end | | end |
| | | | |
| Line 141: |
Line 151: |
| | table.insert(result, string.format( | | table.insert(result, string.format( |
| | '|-\n|%s||%s||style="text-align:left;white-space:nowrap"|%s||%s||%s||%s||%s||%s', | | '|-\n|%s||%s||style="text-align:left;white-space:nowrap"|%s||%s||%s||%s||%s||%s', |
| − | getShipCard(ship.ship), | + | getShipCard(ship.ship, ship.hp, ship.maxHp), |
| | ship.level, | | ship.level, |
| | U.ijoin(U.imap(ship.equipment, function(eq) return getEquipmentCard(eq, cardSize) end)), | | U.ijoin(U.imap(ship.equipment, function(eq) return getEquipmentCard(eq, cardSize) end)), |