kill.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. window.addEvent('domready', function() {
  2. var kill_id = document.location.pathname.split('/').getLast();
  3. ykill.api('/kill/' + kill_id, function(data) {
  4. var table = $('victim');
  5. var kill = data['kill'];
  6. var victim = data['victim'];
  7. table.adopt(
  8. new Element('tr').adopt(
  9. new Element('td', {'html': 'time'}),
  10. new Element('td', {'html': kill['kill_time']})
  11. ),
  12. new Element('tr').adopt(
  13. new Element('td', {'html': 'system'}),
  14. new Element('td', {'html': kill['solarSystemName'] + ' (' + kill['security'].toFixed(1) + ')'})
  15. ),
  16. new Element('tr').adopt(
  17. new Element('td').grab(
  18. ykill.portrait(victim['character_id'], victim['character_name'], 'character', '_64.jpg')
  19. ),
  20. new Element('td', {'html': victim['character_name']})
  21. ),
  22. new Element('tr').adopt(
  23. new Element('td').grab(
  24. ykill.portrait(victim['corporation_id'], victim['corporation_name'], 'corporation', '_64.png')
  25. ),
  26. new Element('td', {'html': victim['corporation_name']})
  27. )
  28. );
  29. if (victim['alliance_id'])
  30. table.grab(new Element('tr').adopt(
  31. new Element('td').grab(
  32. ykill.portrait(victim['alliance_id'], victim['alliance_name'], 'alliance', '_64.png')
  33. ),
  34. new Element('td', {'html': victim['alliance_name']})
  35. ));
  36. if (victim['faction_id'])
  37. table.grab(new Element('tr').adopt(
  38. new Element('td').grab(
  39. ykill.portrait(victim['faction_id'], victim['faction_name'], 'alliance', '_64.png')
  40. ),
  41. new Element('td', {'html': victim['faction_name']})
  42. ));
  43. table.grab(new Element('tr').adopt(
  44. new Element('td').grab(
  45. ykill.portrait(victim['ship_type_id'], victim['ship_name'], 'type', '_64.png')
  46. ),
  47. new Element('td', {'html': victim['ship_name']})
  48. ));
  49. var items = data['items'];
  50. var div = $('ship');
  51. div.setStyle('background-image', 'url(//image.eveonline.com/render/' + victim['ship_type_id'] + '_256.png)');
  52. Object.each(data['slots'], function(num, slot) {
  53. var divs = $(slot).getChildren();
  54. for (var i = 0; i < num; i++)
  55. divs[i].addClass('avail');
  56. items[slot].each(function(item) {
  57. var div = $('slot_' + item['flag']);
  58. var bg_img = div.getStyle('background-image');
  59. if (bg_img == 'none')
  60. set_bg_item(div, item['type_id']);
  61. else {
  62. var charge_div = $('charge_' + item['flag']);
  63. if (item['capacity']) {
  64. set_bg_item(div, item['type_id']);
  65. charge_div.setStyle('background-image', bg_img);
  66. } else {
  67. set_bg_item(charge_div, item['type_id']);
  68. }
  69. }
  70. });
  71. });
  72. table = $('attackers');
  73. show_attacker(table, data['final_blow']);
  74. data['attackers'].each(function(char) {
  75. show_attacker(table, char);
  76. });
  77. table = $('items');
  78. var slots = ['subsystem', 'high', 'medium', 'low', 'rig', 'drone bay', 'cargo', 'special hold', 'implant', '???'];
  79. slots.each(function(slot) {
  80. if (!items[slot])
  81. return;
  82. table.grab(new Element('tr').grab(
  83. new Element('td', {'html': slot, 'colspan': 3, 'class': 'slot'})
  84. ));
  85. items[slot].each(function(item) {
  86. var type_id = item['type_id'];
  87. if (type_id instanceof String)
  88. type_id = type_id.split(',', 2)[0];
  89. var count, item_class;
  90. if (item['dropped']) {
  91. count = item['dropped'];
  92. item_class = 'dropped';
  93. } else {
  94. count = item['destroyed'];
  95. item_class = 'destroyed';
  96. }
  97. table.grab(new Element('tr').adopt(
  98. new Element('td').grab(
  99. new Element('img', {
  100. 'src': '//image.eveonline.com/Type/' + type_id + '_32.png',
  101. 'alt': item['item_name'],
  102. })
  103. ),
  104. new Element('td', {'html': item['item_name']}),
  105. new Element('td', {'html': count, 'class': item_class})
  106. ));
  107. });
  108. });
  109. });
  110. function set_bg_item(div, type_id) {
  111. div.setStyle('background-image', 'url(//image.eveonline.com/type/' + type_id + '_32.png)');
  112. }
  113. function show_attacker(table, char) {
  114. var tr = new Element('tr');
  115. var td = new Element('td').adopt(
  116. ykill.portrait(char['character_id'], char['character_name'], 'character', '_32.jpg'),
  117. ykill.portrait(char['corporation_id'], char['corporation_name'], 'corporation', '_32.png')
  118. );
  119. if (char['alliance_id'])
  120. td.grab(ykill.portrait(char['alliance_id'], char['alliance_name'], 'alliance', '_32.png'));
  121. if (char['faction_id'])
  122. td.grab(ykill.portrait(char['faction_id'], char['faction_name'], 'alliance', '_32.png'));
  123. tr.grab(td);
  124. td = new Element('td');
  125. td.appendText(char['character_name']);
  126. td.grab(new Element('br'));
  127. td.appendText(char['corporation_name']);
  128. if (char['alliance_id']) {
  129. td.grab(new Element('br'));
  130. td.appendText(char['alliance_name']);
  131. }
  132. if (char['faction_id']) {
  133. td.grab(new Element('br'));
  134. td.appendText(char['faction_name']);
  135. }
  136. tr.grab(td);
  137. td = new Element('td').adopt(
  138. ykill.portrait(char['ship_type_id'], char['ship_name'], 'type', '_32.png'),
  139. ykill.portrait(char['weapon_type_id'], char['weapon_name'], 'type', '_32.png')
  140. );
  141. tr.grab(td);
  142. tr.grab(new Element('td').appendText(char['damage']));
  143. table.grab(tr);
  144. }
  145. });