/* ===== Deadlock radar data ===== */
const ITEM_CATS = {
  weapon:  'var(--cat-weapon)',
  vitality:'var(--cat-vitality)',
  spirit:  'var(--cat-spirit)',
};

// build an item slot list of length n; filled ones get a category
function items(spec){
  // spec like ['weapon','vitality','spirit',null]
  return spec.map(c => c ? {cat:c} : null);
}
// abilities: 4 slots, last = ultimate. cd = current cooldown (s), max = full cd
function ab(g, cd, max, ult){ return {g, cd, max:max||cd||1, ult:!!ult}; }

const ICON='assets/heroes/';
const HEROES = {
  vindicta:{name:'Vindicta',  abbr:'VN', hue:268, icon:ICON+'vindicta.png'},
  haze:    {name:'Haze',      abbr:'HZ', hue:312, icon:ICON+'haze.png'},
  seven:   {name:'Seven',     abbr:'SV', hue:48 , icon:ICON+'seven.png'},
  infernus:{name:'Infernus',  abbr:'IF', hue:18 , icon:ICON+'infernus.png'},
  geist:   {name:'Lady Geist',abbr:'LG', hue:288, icon:ICON+'ladygeist.png'},
  wraith:  {name:'Wraith',    abbr:'WR', hue:200, icon:ICON+'wraith.png'},
  abrams:  {name:'Abrams',    abbr:'AB', hue:8  , icon:ICON+'abrams.png'},
  bebop:   {name:'Bebop',     abbr:'BB', hue:188, icon:ICON+'bebop.png'},
  dynamo:  {name:'Dynamo',    abbr:'DY', hue:222, icon:ICON+'dynamo.png'},
  talon:   {name:'Grey Talon',abbr:'GT', hue:96 , icon:ICON+'greytalon.png'},
  mcginnis:{name:'McGinnis',  abbr:'MG', hue:32 , icon:ICON+'mcginnis.png'},
  paradox: {name:'Paradox',   abbr:'PX', hue:330, icon:ICON+'paradox.png'},
};

const ALLIES = [
  {id:'a1', hero:'vindicta', nick:'shadowfax',  lvl:14, kda:'8/3/12',  souls:14260, net:'21.4k', hp:88,  alive:true,
    abils:[ab('Q',0,9),ab('W',4,18),ab('E',0,22),ab('R',31,140,true)],
    its:items(['weapon','spirit','vitality','weapon','spirit',null])},
  {id:'a2', hero:'haze',     nick:'kqly',       lvl:13, kda:'11/5/6', souls:13180, net:'19.8k', hp:64,  alive:true,
    abils:[ab('Q',6,12),ab('W',0,16),ab('E',0,28),ab('R',0,110,true)],
    its:items(['weapon','weapon','vitality','spirit',null,null])},
  {id:'a3', hero:'seven',    nick:'b1t',        lvl:12, kda:'4/2/15', souls:11940, net:'17.9k', hp:100, alive:true,
    abils:[ab('Q',0,10),ab('W',9,20),ab('E',0,15),ab('R',58,150,true)],
    its:items(['spirit','spirit','vitality','weapon',null,null])},
  {id:'a4', hero:'infernus', nick:'donk',       lvl:13, kda:'14/4/9', souls:15020, net:'22.6k', hp:72,  alive:true,
    abils:[ab('Q',0,8),ab('W',0,24),ab('E',3,17),ab('R',0,120,true)],
    its:items(['weapon','vitality','spirit','vitality','weapon',null])},
  {id:'a5', hero:'geist',    nick:'sh1ro',      lvl:11, kda:'3/6/11', souls:9870,  net:'14.8k', hp:38,  alive:true,
    abils:[ab('Q',11,20),ab('W',0,14),ab('E',0,30),ab('R',77,130,true)],
    its:items(['spirit','vitality','spirit',null,null,null])},
  {id:'a6', hero:'wraith',   nick:'zywoo',      lvl:14, kda:'17/2/4', souls:16340, net:'24.5k', hp:0,   alive:false, respawn:18,
    abils:[ab('Q',0,11),ab('W',0,16),ab('E',7,19),ab('R',0,100,true)],
    its:items(['weapon','weapon','spirit','vitality','spirit','weapon'])},
];

const ENEMIES = [
  {id:'e1', hero:'abrams',   nick:'Nickname',   lvl:13, kda:'9/7/8',  souls:13760, net:'20.6k', hp:100, alive:true,
    abils:[ab('Q',0,12),ab('W',5,18),ab('E',0,26),ab('R',0,115,true)],
    its:items(['vitality','vitality','weapon','spirit',null,null])},
  {id:'e2', hero:'bebop',    nick:'Nickname',   lvl:12, kda:'6/5/14', souls:12110, net:'18.2k', hp:70,  alive:true,
    abils:[ab('Q',8,14),ab('W',0,20),ab('E',0,16),ab('R',44,135,true)],
    its:items(['spirit','spirit','vitality','weapon',null,null])},
  {id:'e3', hero:'dynamo',   nick:'Nickname',   lvl:13, kda:'2/4/19', souls:11280, net:'16.9k', hp:54,  alive:true,
    abils:[ab('Q',0,15),ab('W',0,22),ab('E',12,28),ab('R',0,160,true)],
    its:items(['spirit','vitality','spirit','vitality',null,null])},
  {id:'e4', hero:'talon',    nick:'Nickname',   lvl:14, kda:'15/3/5', souls:15880, net:'23.8k', hp:82,  alive:true,
    abils:[ab('Q',0,9),ab('W',6,13),ab('E',0,21),ab('R',19,120,true)],
    its:items(['weapon','weapon','spirit','vitality','weapon',null])},
  {id:'e5', hero:'mcginnis', nick:'Nickname',   lvl:12, kda:'7/6/11', souls:12640, net:'19.0k', hp:91,  alive:true,
    abils:[ab('Q',0,17),ab('W',0,19),ab('E',4,24),ab('R',0,140,true)],
    its:items(['weapon','vitality','vitality','spirit',null,null])},
  {id:'e6', hero:'paradox',  nick:'Nickname',   lvl:11, kda:'5/8/9',  souls:9920,  net:'14.9k', hp:0,   alive:false, respawn:9,
    abils:[ab('Q',3,16),ab('W',0,18),ab('E',0,25),ab('R',88,150,true)],
    its:items(['spirit','spirit','weapon',null,null,null])},
];

window.RD = { HEROES, ALLIES, ENEMIES, ITEM_CATS };
