Module:View/Expedition

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

local U = require('Module:Core')
local F = require('Module:Formatting')
local view = require('Module:View')
local data = require('Module:Data/Expedition')

local backgrounds = {
  [0] = 'EDEDED',
  [1] = 'EDEDED',
  [2] = 'EDEDD5',
  [3] = 'CFE8E8',
  [4] = 'C5E6D5',
  [5] = 'D3D3EB',
}

local template = [=[|-
|style="${style}"|${id}
|style="${style}"|${name}
|style="${style}"|${time}
|style="${style}"|${hq}
|style="${style}"|${ship}
|style="${style}"|${fuel}
|style="${style}"|${ammo}
|style="${style}"|${steel}
|style="${style}"|${bauxite}
|style="${style}"|${item1}
|style="${style}"|${item2}]=]

local function formatTime(time)
  return math.floor(time / 60) .. ':' .. time % 60
end

local function render(args)
  local id = args.explicit.id
  local e = U.ifindBy(data, function(e) return e.disp_no == id end)
  return U.format{
    template,
    style = string.format('text-align: center; height: 35px; background: #%s; color:#000', backgrounds[e.maparea_id] or backgrounds[0]),
    id = F:tooltip(id, 'ID number as displayed in game'),
    name = F:tooltip(e.name, e.details),
    time = F:tooltip(formatTime(e.time), 'Time required for expedition'),
    hq = F:tooltip(args.explicit.hq or '??', 'Admiral experience gained upon completion from this expedition'),
    ship = F:tooltip(args.explicit.ship or '??', 'Ship experience gained upon completion from this expedition'),
    fuel = F:tooltip(args.explicit.fuel or '??', 'Base resources gain from expedition (at 100% ratio)'),
    ammo = F:tooltip(args.explicit.ammo or '??', 'Base resources gain from expedition (at 100% ratio)'),
    steel = F:tooltip(args.explicit.steel or '??', 'Base resources gain from expedition (at 100% ratio)'),
    bauxite = F:tooltip(args.explicit.bauxite or '??', 'Base resources gain from expedition (at 100% ratio)'),
    item1 = args.explicit.item1 or '??',
    item2 = args.explicit.item2 or '??',
  }
end

local test = { explicit = { id = '01' } }

return view(render, test)