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',
  -- [7] = '?',
}

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 tooltip(text, title)
  return F:tooltip2(text, title, '<br>')
end

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

local test = { explicit = { world = '7' } }
-- print(p.test())

return view(render, test)