BvS Item Checker

Helps you find out which items you are missing in BvS

  1. // ==UserScript==
  2. // @name BvS Item Checker
  3. // @namespace 2011, Lunatrius; 2013, DTC
  4. // @description Helps you find out which items you are missing in BvS
  5. // @include http*://*animecubed.com/billy/bvs/itemorder.html
  6. // @include http*://*animecubedgaming.com/billy/bvs/itemorder.html
  7. // @grant none
  8. // @icon data:image/vnd.microsoft.icon;base64,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
  9. // @version 1.55
  10. // @history 1.55 New Holiday item - Channel28
  11. // @history 1.54 New domain - animecubedgaming.com - Channel28
  12. // @history 1.53 New Kaiju drop, new Snow item and Reaper's Game Day 2 item added - by Channel28
  13. // @history 1.52 Reaper's Game item added - by Channel28
  14. // @history 1.51 Now https compatible - by Channel28
  15. // @history 1.50 New Kaiju drop - by Channel28
  16. // @history 1.49 Ginyu Camera added - by Channel28
  17. // @history 1.48 Blank Stare from Mission Lady Alley - by Channel28
  18. // @history 1.47 New Kaiju drop - by Channel28
  19. // @history 1.46 When Taltamir fixed the "SnowPlow" to MegaPlow in v1.39 he missed something, this fixes it - by Channel28
  20. // @history 1.45 FIXED THE BUG - Snow Items would sometimes not show even though you had them - by Channel28, thanks to Terrec for finding exactly where the bug occurred!
  21. // @history 1.44 The Eleven desired count changed to 21 *Worked out the bug but not how to fix it* - by Channel28
  22. // @history 1.43 New Kaiju drop *Found bugs in system, still working on fixing them* - by Channel28
  23. // @history 1.42 Pet - Salty Dog, Tiny Bee A-Salt Rifle and Retail items - by Channel28 & Kgummy
  24. // @history 1.41 Pet - Gamble Fish, LifeTimer, Silver Locket, Deck Holster and Custom Deck Box - by Channel28 & MeP
  25. // @history 1.40 Red Skull Pin placing Player Pin & New Sponsor Item - by Channel28
  26. // @history 1.39 MegaPlow was incorrectly listed as SnowPlow - update from taltamir
  27. // @history 1.38 first version by taltamir. Changed snowman desired count from 1 to 11 (it's bonus stacks up to 11 times). Added the five missing pets. Split up special and unobtainable categories. Update from taltamir.
  28. // @history 1.37 Moved Snow Items and now count them.
  29. // @history 1.36 Added Two Kaiju Drops, More Pocketwatchs, and Shoveling Items
  30. // @history 1.35 Added Pets removed a few unobtainable items
  31. // @history 1.34 Added Pet and Pachinko items
  32. // @history 1.33 Fixed Beat-Up Teddy's capitalization
  33. // @history 1.32 Added Sleek Keel [Kurokage]
  34. // @history 1.31 Added Flask of Mist and Kitty Ears [HirumaTeri]
  35. // @history 1.30 Added Mirror Shard to General category
  36. // @history 1.30 Added Framed Certificate to Sponsor category
  37. // @history 1.30 Added watches
  38. // @history 1.30 Removed the update checker
  39. // @history 1.29 Changed the names of Fayt/Jadian/Jasticus/Zenovia Drop
  40. // @history 1.28 Added Adonis DNA, Tangerine Pantsu, Sandwich Gatari, Badger items, Fayt/Jadian/Jasticus/Zenovia Drop [Sena]
  41. // @history 1.27 Fixed Silver Petals, Explosing Tags (-s suffix was missing)
  42. // @history 1.26 Added Glowslinging Category [worldslaya]
  43. // @history 1.26 Added Glissando, Key Signature, Semiquaver [worldslaya]
  44. // @history 1.26 Added Flower Wars Category. [worldslaya]
  45. // @history 1.26 Added Cardboard Hanafuda Deck, Floral Hanafuda Deck, Mulberry Hanafuda Deck, and Lycoral Hanafuda Deck [worldslaya]
  46. // @history 1.25 Added Mondo Keycard to BillyCon category [Fiachra]
  47. // @history 1.24 Added 11DBHK's Head-Sized Cookie to Holiday category [North]
  48. // @history 1.24 Added a sccript icon (works on GM v0.9.0+)
  49. // @history 1.23 Added Season Five Collection to WorldKaiju category
  50. // @history 1.23 Added Broforce, B-Class Laser to Kaiju - Minor category
  51. // @history 1.23 Added M Ball to Arena category
  52. // @history 1.23 Added Cheeky Stop Sign to Special category
  53. // @history 1.22 Added Control Rod to Kaiju - Minor category
  54. // @history 1.22 Added Locket of Lei, Matches of Supe to Holiday category [worldslaya]
  55. // @history 1.22 Added Holiday - Candyween category [worldslaya]
  56. // @history 1.22 Added Billy Bromide, Emosuke Bromide, Lil' Ro Bromide, Lil' Shammy Bromide, Robogirl Bromide, Stalkergirl Bromide to Holiday - Candyween category [worldslaya]
  57. // @history 1.22 Added Professor's Hat, Utility Belt to General category
  58. // @history 1.22 Added Ninja Tortoise to Special category
  59. // @history 1.21 Added Fruit Stand to BillyCon category
  60. // @history 1.20 Moved Headband of Awesome to Minor Kaiju category
  61. // @history 1.19 Added BillyCon category
  62. // @history 1.19 Moved BillyCon Emblem to BillyCon category
  63. // @history 1.19 Added Novelty Bullcrap, Manly Apron
  64. // @history 1.18 Added Player Pin, Franklin Badge, Evil's Bane
  65. // @history 1.17 Added Cold Hard Cash
  66. // @history 1.16 Added Sharktooth Necklace, Jutsu Barrage
  67. // @history 1.16 Added the ability to show completed categories after hiding them
  68. // @history 1.15 You may now hide completed categories
  69. // @history 1.14 Moved Tiny Bees to a separate category, added Something Good and Lightning Draw
  70. // @history 1.13 Added Senjutsu Reserves
  71. // @history 1.12 Moved The Final Countdown and The Touch to Special/Unobtainable, added Mahjong Sets
  72. // @history 1.11 Changed Destiny Warrior to Shadow Warrior, Destiny Fulfilled to Ancestor Spirit
  73. // @history 1.10 Changed Persocom to Persocomp
  74. // @history 1.09 Added Wasteland categories, removed the old ones
  75. // @history 1.08 Added Book of the Twilight, new sponsor items [Ren Po Ken(i), TheSpy]
  76. // @history 1.07 Added Knightmare Mark 86, sponsor items [Guess, TheSpy]
  77. // @history 1.06 Added 50 Monochrome Pheromone requirement for Reaper Driving Gloves [blueddict]
  78. // @history 1.05 Moved non-loopable items to a separate category, added CAPSLOCK, reordered categories
  79. // @history 1.04 Added different styles for different type of items, added PizzaWitch ingredients check
  80. // @history 1.03 Bug fix
  81. // @history 1.02 A major rewrite
  82. // @history 1.01 Small fixes [portwizard]
  83. // @history 1.00 Initial release
  84. // @licence MIT; http://www.opensource.org/licenses/mit-license.php
  85. // @copyright 2011, Lunatrius; 2013, DTC
  86. // ==/UserScript==
  87.  
  88. // browser compatibility
  89. function addStyle(css){
  90. var head = document.getElementsByTagName("head")[0];
  91. if (!head)
  92. return;
  93. var style = document.createElement("style");
  94. style.type = "text/css";
  95. style.textContent = css;
  96. head.appendChild(style);
  97. }
  98.  
  99. // nifty stuff
  100. var divMain = null;
  101. var myItems = new Array();
  102. var pwIngredients = [];
  103. pwIngredients["Polyester Delivery Jacket"] = [
  104. [1, "Polyester Delivery Jacket"]
  105. ];
  106. pwIngredients["Streamlined Delivery Jacket"] = [
  107. [100, "Regular Fur Piece"],
  108. [200, "Wooden Tile"]
  109. ];
  110. pwIngredients["Reinforced Delivery Jacket"] = [
  111. [50, "Quality Fur Piece"],
  112. [50, "Rubber Bits"],
  113. [100, "Ceramic Tile"],
  114. [5, "Ruby Ryo Coin"]
  115. ];
  116. pwIngredients["Wasteland Delivery Jacket"] = [
  117. [1, "Dustcloak of Sneaking"],
  118. [5, "Indestructible Thread"],
  119. [30, "Steel Tile"],
  120. [3, "Sapphire Ryo Coin"]
  121. ];
  122. pwIngredients["Dimensional Delivery Jacket"] = [
  123. [20, "Essence of Earth"],
  124. [1, "Mottled Wing"],
  125. [1, "SNAKE Oil Lite"],
  126. [2, "Emerald Ryo Coin"]
  127. ];
  128. pwIngredients["Hushed as the Wood"] = [
  129. [1, "Kimono of Shadows"],
  130. [6, "Drunken Pirate Flag"],
  131. [1, "Screaming Rune"],
  132. [2, "Diamond Ryo Coin"]
  133. ];
  134. pwIngredients["Scuffed Delivery Hat"] = [
  135. [1, "Scuffed Delivery Hat"]
  136. ];
  137. pwIngredients["Reinforced Delivery Hat"] = [
  138. [1, "Blue Flower Hairpin"],
  139. [500, "Exploding Tags"]
  140. ];
  141. pwIngredients["Monochrome Delivery Hat"] = [
  142. [100, "Note Page"],
  143. [10, "Heck Butterfly"],
  144. [10, "Swallowtail Butterfly"],
  145. [5, "Ruby Ryo Coin"]
  146. ];
  147. pwIngredients["Wasteland Delivery Hat"] = [
  148. [1, "Solid Shades"],
  149. [100, "Storybook Page"],
  150. [1, "Hat of Sakyura"],
  151. [3, "Sapphire Ryo Coin"]
  152. ];
  153. pwIngredients["Virtual Delivery Hat"] = [
  154. [20, "Essence of Fire"],
  155. [20, "Essence of Wind"],
  156. [1, "Holy Spur"],
  157. [2, "Polar Star"],
  158. [3, "Emerald Ryo Coin"]
  159. ];
  160. pwIngredients["Stalwart as the Mount"] = [
  161. [1, "Laughing Rune"],
  162. [2, "SNAKE Oil"],
  163. [6, "Manji Headlights"],
  164. [1, "Cowl of the Second HoCage"],
  165. [2, "Diamond Ryo Coin"],
  166. [5, "Spirit of the Demon of the Sand"]
  167. ];
  168. pwIngredients["Tattered Driving Gloves"] = [
  169. [1, "Tattered Driving Gloves"]
  170. ];
  171. pwIngredients["Stitched Driving Gloves"] = [
  172. [50, "Filtered Thread"],
  173. [50, "Silver Petals"]
  174. ];
  175. pwIngredients["Leather Driving Gloves"] = [
  176. [10, "Wasteland Hide Piece"],
  177. [10, "Fanboy Shirt"],
  178. [10, "Copper Ring"],
  179. [3, "Ruby Ryo Coin"]
  180. ];
  181. pwIngredients["Reaper Driving Gloves"] = [
  182. [50, "Monochrome Pheromone"],
  183. [5, "Soul Glove"],
  184. [10, "Gold Ring"],
  185. [1, "Pistol of Repeating"],
  186. [3, "Sapphire Ryo Coin"]
  187. ];
  188. pwIngredients["Twilight Gauntlets"] = [
  189. [20, "Essence of Water"],
  190. [10, "Platinum Ring"],
  191. [1, "Finite Spiral"],
  192. [2, "Emerald Ryo Coin"]
  193. ];
  194. pwIngredients["Fierce as the Flame"] = [
  195. [1, "Raging Rune"],
  196. [5, "Spirit of the Nine-Tailed Fox"],
  197. [10, "Cobalt Ring"],
  198. [6, "Red and Black Shades"],
  199. [2, "Diamond Ryo Coin"],
  200. [10, "Cobalt Sliver"]
  201. ];
  202. pwIngredients["Tacky Keychain"] = [
  203. [1, "Tacky Keychain"]
  204. ];
  205. pwIngredients["Functional Keychain"] = [
  206. [20, "Metal Scraps"],
  207. [100, "Kunai"]
  208. ];
  209. pwIngredients["Trendy Keychain"] = [
  210. [50, "ShinyShiny"],
  211. [20, "Poison Needles"],
  212. [10, "Copper Coin"],
  213. [3, "Ruby Ryo Coin"]
  214. ];
  215. pwIngredients["Monochrome Keychain"] = [
  216. [5, "Dark Draft"],
  217. [50, "Hot Picture of Robogirl"],
  218. [10, "Silver Coin"],
  219. [4, "Sapphire Ryo Coin"]
  220. ];
  221. pwIngredients["Digital Keychain"] = [
  222. [20, "Essence of Lightning"],
  223. [1, "Soundless Jade"],
  224. [10, "Gold Coin"],
  225. [1, "Grind Core"]
  226. ];
  227. pwIngredients["Swift as the Wind"] = [
  228. [1, "Crying Rune"],
  229. [1, "Sho Nuff Elixir"],
  230. [1, "Scythe of Razing"]
  231. ];
  232.  
  233. var fwIngredients = [];
  234. fwIngredients["Cardboard Hanafuda Deck"] = [
  235. [100, "Note Page"]
  236. ];
  237. fwIngredients["Floral Hanafuda Deck"] = [
  238. [100, "Smokeblossom"],
  239. [300, "Note Page"],
  240. [50, "Copper Dust"],
  241. [1, "Cardboard Hanafuda Deck"]
  242. ];
  243. fwIngredients["Mulberry Hanafuda Deck"] = [
  244. [500, "Note Page"],
  245. [100, "Silver Dust"],
  246. [200, "Smokeblossom"],
  247. [100, "Tasty Twig"],
  248. [100, "Exploding Tags"],
  249. [1, "Floral Hanafuda Deck"]
  250. ];
  251. fwIngredients["Lycoral Hanafuda Deck"] = [
  252. [1100, "Silver Petals"],
  253. [500, "Storybook Page"],
  254. [1000, "Cobalt Dust"],
  255. [300, "Smokeblossom"],
  256. [250, "Tasty Twig"],
  257. [500, "Exploding Tags"],
  258. [1, "Mulberry Hanafuda Deck"]
  259. ];
  260.  
  261. var mjIngredients = [];
  262. mjIngredients["Ashen Mahjong Set"] = [
  263. [136, "Ash-Covered Tile"]
  264. ];
  265. mjIngredients["Wooden Mahjong Set"] = [
  266. [136, "Wooden Tile"],
  267. [1, "Ashen Mahjong Set"]
  268. ];
  269. mjIngredients["Ceramic Mahjong Set"] = [
  270. [136, "Ceramic Tile"],
  271. [1, "Wooden Mahjong Set"]
  272. ];
  273. mjIngredients["Steel Mahjong Set"] = [
  274. [136, "Steel Tile"],
  275. [1, "Ceramic Mahjong Set"]
  276. ];
  277.  
  278. var sIngredients = [];
  279. sIngredients["Snowman"] = [
  280. [11, "Snowman"]
  281. ];
  282. sIngredients["Snowshovel"] = [
  283. [5, "Snowman"]
  284. ];
  285. sIngredients["MegaPlow"] = [
  286. [5, "Snowshovel"]
  287. ];
  288. sIngredients["Plowtron"] = [
  289. [5, "MegaPlow"]
  290. ];
  291. sIngredients["The Eleven"] = [
  292. [21, "The Eleven"]
  293. ];
  294.  
  295. // table style
  296. addStyle([
  297. ".itemsNormal {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  298. ".itemsNormal thead {background-color: #DCB48C;}",
  299. ".itemsNormal thead tr th {border: 1px outset #DCB48C; cursor: pointer;}",
  300. ".itemsNormal tbody {background-color: #DCB48C;}",
  301. ".itemsNormal tbody tr th {background-color: #DCB48C; border: 1px outset #DCB48C; width: 50%;}",
  302. ".itemsNormal tbody tr td {background-color: #EAD8C3; padding: 3px;}",
  303. ".itemsNormal a {color: #A10000;}",
  304.  
  305. ".itemsSingle {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  306. ".itemsSingle thead {background-color: #8CDCB4;}",
  307. ".itemsSingle thead tr th {border: 1px outset #8CDCB4; cursor: pointer;}",
  308. ".itemsSingle tbody {background-color: #8CDCB4;}",
  309. ".itemsSingle tbody tr th {background-color: #8CDCB4; border: 1px outset #8CDCB4; width: 50%;}",
  310. ".itemsSingle tbody tr td {background-color: #C3EAD8; padding: 3px;}",
  311. ".itemsSingle a {color: #A10000;}",
  312.  
  313. ".itemsWasteland {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  314. ".itemsWasteland thead {background-color: #CE8CDC;}",
  315. ".itemsWasteland thead tr th {border: 1px outset #CE8CDC; cursor: pointer;}",
  316. ".itemsWasteland tbody {background-color: #CE8CDC;}",
  317. ".itemsWasteland tbody tr th {background-color: #CE8CDC; border: 1px outset #CE8CDC; width: 50%;}",
  318. ".itemsWasteland tbody tr td {background-color: #E2C3EA; padding: 3px;}",
  319. ".itemsWasteland a {color: #A10000;}",
  320.  
  321. ".itemsPizzaWitch {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  322. ".itemsPizzaWitch thead {background-color: #8CB4DC;}",
  323. ".itemsPizzaWitch thead tr th {border: 1px outset #8CB4DC; cursor: pointer;}",
  324. ".itemsPizzaWitch tbody {background-color: #8CB4DC;}",
  325. ".itemsPizzaWitch tbody tr th {background-color: #8CB4DC; border: 1px outset #8CB4DC; width: 50%;}",
  326. ".itemsPizzaWitch tbody tr td {background-color: #C3D8EA; padding: 3px;}",
  327. ".itemsPizzaWitch a {color: #A10000;}",
  328.  
  329. ".itemsMahjong {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  330. ".itemsMahjong thead {background-color: #8CDCCD;}",
  331. ".itemsMahjong thead tr th {border: 1px outset #8CDCCD; cursor: pointer;}",
  332. ".itemsMahjong tbody {background-color: #8CDCCD;}",
  333. ".itemsMahjong tbody tr th {background-color: #8CDCCD; border: 1px outset #8CDCCD; width: 50%;}",
  334. ".itemsMahjong tbody tr td {background-color: #C3EAE1; padding: 3px;}",
  335. ".itemsMahjong a {color: #A10000;}",
  336.  
  337. ".itemsFlowerwars {width: 100%; border-spacing: 1px; font-size:12px; background-color: #000000; margin-bottom: 4px;}",
  338. ".itemsFlowerwars thead {background-color: #8CDCCD;}",
  339. ".itemsFlowerwars thead tr th {border: 1px outset #8CDCCD; cursor: pointer;}",
  340. ".itemsFlowerwars tbody {background-color: #8CDCCD;}",
  341. ".itemsFlowerwars tbody tr th {background-color: #8CDCCD; border: 1px outset #8CDCCD; width: 50%;}",
  342. ".itemsFlowerwars tbody tr td {background-color: #C3EAE1; padding: 3px;}",
  343. ".itemsFlowerwars a {color: #A10000;}"
  344. ].join("\n"));
  345.  
  346. // remove leading and trailing whitespace
  347. function strip(str)
  348. {
  349. str = str.replace(/^\s+/, "");
  350. str = str.replace(/\s+$/, "");
  351. str = str.replace(/\s+/g, " ");
  352. return str;
  353. }
  354.  
  355. // remove an element from the array (with the given value)
  356. Array.prototype.remove = function(arrayItem) {
  357. for(var arrayIndex = 0; arrayIndex < this.length; arrayIndex++) {
  358. if(arrayItem == this[arrayIndex]) {
  359. this.splice(arrayIndex, 1);
  360. return true;
  361. }
  362. }
  363. return false;
  364. }
  365.  
  366. // remove element from the array up to the specified item (with the given value)
  367. Array.prototype.removeTo = function(arrayItem) {
  368. for(var arrayIndex = 0; arrayIndex < this.length; arrayIndex++) {
  369. if(typeof(this[arrayIndex]) == "object") {
  370. for(var arrayIndex2 = 0; arrayIndex2 < this[arrayIndex].length; arrayIndex2++) {
  371. if(arrayItem == this[arrayIndex][arrayIndex2]) {
  372. this.splice(0, arrayIndex + 1);
  373. return true;
  374. }
  375. }
  376. }
  377. else {
  378. if(arrayItem == this[arrayIndex]) {
  379. this.splice(0, arrayIndex + 1);
  380. return true;
  381. }
  382. }
  383. }
  384. return false;
  385. }
  386.  
  387. // get item count
  388. function getCount(item) {
  389. for(var iItem = 0; iItem < myItems.length; iItem++) {
  390. if(myItems[iItem][1] == item) {
  391. return myItems[iItem][0];
  392. }
  393. }
  394. return 0;
  395. }
  396.  
  397. // create the table containing item information
  398. function generateTable(caption, have, need, type) {
  399. if(!divMain)
  400. return;
  401.  
  402. // table
  403. var table = document.createElement("table");
  404. table.className = "items" + type;
  405. divMain.appendChild(table);
  406.  
  407. // table header
  408. var thead = document.createElement("thead");
  409. table.appendChild(thead);
  410.  
  411. // table header - row
  412. var thead_tr = document.createElement("tr");
  413. thead.appendChild(thead_tr);
  414.  
  415. // table header column
  416. var thead_tr_th = document.createElement("th");
  417. thead_tr_th.setAttribute("colspan", "2");
  418. thead_tr_th.innerHTML = caption;
  419. thead_tr.appendChild(thead_tr_th);
  420.  
  421. // table body
  422. var tbody = document.createElement("tbody");
  423. tbody.style.display = "none";
  424. table.appendChild(tbody);
  425.  
  426. // table body - sub header row
  427. var tbody_tr = document.createElement("tr");
  428. tbody.appendChild(tbody_tr);
  429.  
  430. // table body - sub header column 1
  431. var tbody_tr_th1 = document.createElement("th");
  432. tbody_tr_th1.innerHTML = "Already have";
  433. tbody_tr.appendChild(tbody_tr_th1);
  434.  
  435. // table body - sub header column 2
  436. var tbody_tr_th2 = document.createElement("th");
  437. tbody_tr_th2.innerHTML = "Still need";
  438. tbody_tr.appendChild(tbody_tr_th2);
  439.  
  440. // table body row
  441. var tbody_tr = document.createElement("tr");
  442. tbody.appendChild(tbody_tr);
  443.  
  444. // table body column 1
  445. var tbody_tr_td1 = document.createElement("td");
  446. tbody_tr_td1.setAttribute("valign", "top");
  447. tbody_tr_td1.innerHTML = have;
  448. tbody_tr.appendChild(tbody_tr_td1);
  449.  
  450. // table body column 2
  451. var tbody_tr_td2 = document.createElement("td");
  452. tbody_tr_td2.setAttribute("valign", "top");
  453. tbody_tr_td2.innerHTML = need;
  454. tbody_tr.appendChild(tbody_tr_td2);
  455.  
  456. // add the click handler
  457. thead_tr_th.addEventListener('click', function() {
  458. if(tbody.style.display == "none") {
  459. tbody.style.display = "";
  460. thead_tr_th.style.borderStyle = "inset";
  461. thead_tr_th.style.color = "yellow";
  462. }
  463. else {
  464. tbody.style.display = "none";
  465. thead_tr_th.style.borderStyle = "outset";
  466. thead_tr_th.style.color = "";
  467. }
  468. }, true);
  469. }
  470.  
  471. // ...
  472. function normalCheck(caption, items) {
  473. var have = "";
  474. var need = "";
  475. var items2 = new Array();
  476.  
  477. // seperate items
  478. for(var i in myItems) {
  479. if(items.remove(myItems[i][1])) {
  480. items2.push(myItems[i][1]);
  481. }
  482. }
  483.  
  484. // have
  485. items2.sort();
  486. for(var i = 0; i < items2.length; i++) {
  487. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  488. }
  489.  
  490. // need
  491. items.sort();
  492. for(var i = 0; i < items.length; i++) {
  493. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  494. }
  495.  
  496. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Normal");
  497. }
  498.  
  499. // ...
  500. function singleCheck(caption, items) {
  501. var have = "";
  502. var need = "";
  503. var items2 = new Array();
  504.  
  505. // seperate items
  506. for(var i in myItems) {
  507. if(items.remove(myItems[i][1])) {
  508. items2.push(myItems[i][1]);
  509. }
  510. }
  511.  
  512. // have
  513. items2.sort();
  514. for(var i = 0; i < items2.length; i++) {
  515. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  516. }
  517.  
  518. if(have.length == 0) {
  519. // need
  520. items.sort();
  521. for(var i = 0; i < items.length; i++) {
  522. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  523. }
  524. }
  525.  
  526. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Single");
  527. }
  528.  
  529. // ...
  530. function wastelandCheck(caption, items) {
  531. var have = "";
  532. var need = "";
  533. var items2 = new Array();
  534.  
  535. // seperate items
  536. for(var i in myItems) {
  537. if(items.removeTo(myItems[i][1])) {
  538. items2.pop();
  539. items2.push(myItems[i][1]);
  540. }
  541. }
  542.  
  543. // have
  544. for(var i = 0; i < items2.length; i++) {
  545. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  546. }
  547.  
  548. // need
  549. for(var i = 0; i < items.length; i++) {
  550. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  551. }
  552.  
  553. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Wasteland");
  554. }
  555.  
  556. // ...
  557. function pizzawitchCheck(caption, items) {
  558. var have = "";
  559. var need = "";
  560. var items2 = new Array();
  561.  
  562. // seperate items
  563. for(var i in myItems) {
  564. if(items.removeTo(myItems[i][1])) {
  565. items2.push(myItems[i][1]);
  566. }
  567. }
  568.  
  569. // have
  570. for(var i = 0; i < items2.length; i++) {
  571. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  572. }
  573.  
  574. // need
  575. for(var i = 0; i < items.length; i++) {
  576. var item = "";
  577. if(typeof(items[i]) == "string") {
  578. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  579. item = items[i];
  580. }
  581. else {
  582. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i][0] + "\" target=\"_blank\">" + items[i][0] + "</a><br/>";
  583. item = items[i][0];
  584. }
  585.  
  586. try {
  587. var ingredients = pwIngredients[item];
  588. if(ingredients.length > 0) {
  589. need += "<ul style=\"margin-top:0px;\">";
  590. for(var j = 0; j < ingredients.length; j++) {
  591. var itemNeed = ingredients[j][0];
  592. var itemName = ingredients[j][1];
  593. var itemHave = getCount(itemName);
  594. need += "<li>" + itemNeed + " <a href=\"http://bvs.wikidot.com/items:" + itemName + "\" target=\"_blank\">" + itemName + "</a> (<font style=\"color:" + (itemNeed <= itemHave ? "green" : "red") + ";\">" + itemHave + "</font>)</li>";
  595. }
  596. need += "</ul>";
  597. }
  598. }
  599. catch(e) {
  600. // nothing
  601. }
  602. }
  603.  
  604. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "PizzaWitch");
  605. }
  606.  
  607. // ...
  608. function mahjongCheck(caption, items) {
  609. var have = "";
  610. var need = "";
  611. var items2 = new Array();
  612.  
  613. // seperate items
  614. for(var i in myItems) {
  615. if(items.removeTo(myItems[i][1])) {
  616. items2.push(myItems[i][1]);
  617. }
  618. }
  619.  
  620. // have
  621. for(var i = 0; i < items2.length; i++) {
  622. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  623. }
  624.  
  625. // need
  626. for(var i = 0; i < items.length; i++) {
  627. var item = "";
  628. if(typeof(items[i]) == "string") {
  629. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  630. item = items[i];
  631. }
  632. else {
  633. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i][0] + "\" target=\"_blank\">" + items[i][0] + "</a><br/>";
  634. item = items[i][0];
  635. }
  636.  
  637. try {
  638. var ingredients = mjIngredients[item];
  639. if(ingredients.length > 0) {
  640. need += "<ul style=\"margin-top:0px;\">";
  641. for(var j = 0; j < ingredients.length; j++) {
  642. var itemNeed = ingredients[j][0];
  643. var itemName = ingredients[j][1];
  644. var itemHave = getCount(itemName);
  645. need += "<li>" + itemNeed + " <a href=\"http://bvs.wikidot.com/items:" + itemName + "\" target=\"_blank\">" + itemName + "</a> (<font style=\"color:" + (itemNeed <= itemHave ? "green" : "red") + ";\">" + itemHave + "</font>)</li>";
  646. }
  647. need += "</ul>";
  648. }
  649. }
  650. catch(e) {
  651. // nothing
  652. }
  653. }
  654.  
  655. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Mahjong");
  656. }
  657.  
  658. // ...
  659. function flowerwarsCheck(caption, items) {
  660. var have = "";
  661. var need = "";
  662. var items2 = new Array();
  663.  
  664. // seperate items
  665. for(var i in myItems) {
  666. if(items.removeTo(myItems[i][1])) {
  667. items2.push(myItems[i][1]);
  668. }
  669. }
  670.  
  671. // have
  672. for(var i = 0; i < items2.length; i++) {
  673. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  674. }
  675.  
  676. // need
  677. for(var i = 0; i < items.length; i++) {
  678. var item = "";
  679. if(typeof(items[i]) == "string") {
  680. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  681. item = items[i];
  682. }
  683. else {
  684. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i][0] + "\" target=\"_blank\">" + items[i][0] + "</a><br/>";
  685. item = items[i][0];
  686. }
  687.  
  688. try {
  689. var ingredients = fwIngredients[item];
  690. if(ingredients.length > 0) {
  691. need += "<ul style=\"margin-top:0px;\">";
  692. for(var j = 0; j < ingredients.length; j++) {
  693. var itemNeed = ingredients[j][0];
  694. var itemName = ingredients[j][1];
  695. var itemHave = getCount(itemName);
  696. need += "<li>" + itemNeed + " <a href=\"http://bvs.wikidot.com/items:" + itemName + "\" target=\"_blank\">" + itemName + "</a> (<font style=\"color:" + (itemNeed <= itemHave ? "green" : "red") + ";\">" + itemHave + "</font>)</li>";
  697. }
  698. need += "</ul>";
  699. }
  700. }
  701. catch(e) {
  702. // nothing
  703. }
  704. }
  705.  
  706. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Flowerwars");
  707. }
  708.  
  709. // ...
  710. function badgerCheck(caption, items) {
  711. var have = "";
  712. var need = "";
  713. var items2 = new Array();
  714.  
  715. // seperate items
  716. for(var i in myItems) {
  717. if(items.removeTo(myItems[i][1])) {
  718. items2.push(myItems[i][1]);
  719. }
  720. }
  721.  
  722. // have
  723. for(var i = 0; i < items2.length; i++) {
  724. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a><br/>";
  725. }
  726.  
  727. // need
  728. for(var i = 0; i < items.length; i++) {
  729. var item = "";
  730. if(typeof(items[i]) == "string") {
  731. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  732. item = items[i];
  733. }
  734. else {
  735. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i][0] + "\" target=\"_blank\">" + items[i][0] + "</a><br/>";
  736. item = items[i][0];
  737. }
  738. }
  739.  
  740. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Flowerwars");
  741. }
  742.  
  743. // ...
  744. function snowCheck(caption, items) {
  745. var have = "";
  746. var need = "";
  747. var items2 = new Array();
  748.  
  749. // seperate items
  750. for(var i in myItems) {
  751. if(items.remove(myItems[i][1])) {
  752. items2.push(myItems[i][1]);
  753. }
  754. }
  755.  
  756. // have
  757. for(var i = 0; i < items2.length; i++) {
  758. var itemThis = getCount(items2[i]);
  759. have += "<a href=\"http://bvs.wikidot.com/items:" + items2[i] + "\" target=\"_blank\">" + items2[i] + "</a>" + "(" + itemThis + ")" + "<br/>";
  760. }
  761.  
  762. // need
  763. for(var i = 0; i < items.length; i++) {
  764. var item = "";
  765. if(typeof(items[i]) == "string") {
  766. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i] + "\" target=\"_blank\">" + items[i] + "</a><br/>";
  767. item = items[i];
  768. }
  769. else {
  770. need += "<a href=\"http://bvs.wikidot.com/items:" + items[i][0] + "\" target=\"_blank\">" + items[i][0] + "</a><br/>";
  771. item = items[i][0];
  772. }
  773.  
  774. try {
  775. var ingredients = sIngredients[item];
  776. if(ingredients.length > 0) {
  777. need += "<ul style=\"margin-top:0px;\">";
  778. for(var j = 0; j < ingredients.length; j++) {
  779. var itemNeed = ingredients[j][0];
  780. var itemName = ingredients[j][1];
  781. var itemHave = getCount(itemName);
  782. need += "<li>" + itemNeed + " <a href=\"http://bvs.wikidot.com/items:" + itemName + "\" target=\"_blank\">" + itemName + "</a> (<font style=\"color:" + (itemNeed <= itemHave ? "green" : "red") + ";\">" + itemHave + "</font>)</li>";
  783. }
  784. need += "</ul>";
  785. }
  786. }
  787. catch(e) {
  788. // nothing
  789. }
  790. }
  791.  
  792. generateTable(caption + (need.length > 0 ? "" : " [Complete]"), have.length > 0 ? have : "<i>None</i>", need.length > 0 ? need : "<i>None</i>", "Normal");
  793. }
  794.  
  795. // main stuff
  796. function main() {
  797. var node = null;
  798. var snap = document.evaluate("//font/b[contains(text(),'Item Reorganization')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  799. for (var i = 0; i < snap.snapshotLength; i++) {
  800. node = snap.snapshotItem(i);
  801. }
  802.  
  803. if(node == null) {
  804. return;
  805. }
  806.  
  807. divMain = document.createElement("div");
  808. node.parentNode.insertBefore(divMain, node);
  809.  
  810. var snap = document.evaluate("//ul[@id='DragContainer7']/li[not(contains(@id,'XX'))]/font[1]/text()|//ul[@id='DragContainer7']/li[not(contains(@id,'XX'))]/text()", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  811. for (var i = 0; i < snap.snapshotLength; i += 2) {
  812. myItems.push([snap.snapshotItem(i).nodeValue, strip(snap.snapshotItem(i + 1).nodeValue)]);
  813. }
  814.  
  815. var a = document.createElement("a");
  816. a.style.color = "#A10000";
  817. a.style.fontWeight = "bold";
  818. a.style.fontSize = "12px";
  819. a.style.cursor = "pointer";
  820. a.innerHTML = "Hide/Show completed";
  821. a.addEventListener('click', function() {
  822. var snap = document.evaluate("//table[contains(.//text(),'[Complete]')]", divMain, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  823. for (var i = 0; i < snap.snapshotLength; i++) {
  824. if(snap.snapshotItem(i).style.display == "")
  825. snap.snapshotItem(i).style.display = "none";
  826. else
  827. snap.snapshotItem(i).style.display = "";
  828. }
  829. }, true);
  830. divMain.appendChild(a);
  831.  
  832. normalCheck("Arena", ["Letter of Marque", "Eye of the Tiger", "Jazz Hands", "X-Ray Specs", "Warrior of Courage", "Warrior of Power", "Warrior of Wisdom", "Matrix of Leadership", "Shadow Warrior", "NanuMachines", "The Mark of Eleventy Billion", "Aura of Gratitude", "Officer's Pay", "Thrill of Battle", "Streamlined Focus", "Warbound", "Arena Favorite", "Risky Badge", "Duelist's Aura", "Duelist's Eye", "M Ball"]);
  833. normalCheck("BurgerNinja/PizzaWitch", ["Knightmare Frame", "The Mark of The RNG", "PizzaWitch Key", "PizzaWitch Cape", "Knightmare Mark 86"]);
  834. normalCheck("General", ["Basic Ninja Gear", "Pika-Bike", "Sannin's Premium", "Stripe of Honor", "Survived the Impossible", "Glowing Mood Ring", "Monster Mask", "Sascha", "Sandwich Dispenser", "Goo Stabilization Recipe", "Gothic Album", "Pink Hair Dye", "Restraining Order", "The Five Rings", "Professor's Hat", "Utility Belt", "Tangerine Pantsu", "Sandwich Gatari", "Mirror Shard", "Pet License"]);
  835. normalCheck("Golden", ["Pirate Hat", "Golden Band of Courage", "Golden Band of Power", "Golden Band of Wisdom", "Golden Collar of Courage", "Golden Collar of Power", "Golden Collar of Wisdom", "Golden Star of Courage", "Golden Star of Power", "Golden Star of Wisdom"]);
  836. normalCheck("Holiday", ["Shortbunny", "Fireworks Launcher", "11DBHK's Birthday Hat", "Book of Follet", "Whip of Rosa", "Bat of Casper", "Bow of Windia", "Hat of Sakyura", "Ninja-Mas Star", "CAPSLOCK", "Sharktooth Necklace", "Locket of Lei", "Matches of Supe", "11DBHK's Head-Sized Cookie", "Ninja-Mas List", "Festive Fedora"]);
  837. normalCheck("Holiday - Candyween", ["Robogirl Bromide", "Billy Bromide", "Stalkergirl Bromide", "Emosuke Bromide", "Lil' Ro Bromide", "Lil' Shammy Bromide"]);
  838. normalCheck("Kaiju - Minor", ["Amalga Eye", "B-Class Laser", "Bear Coat", "Beta Reader", "Big Mouth", "Book of Spoilers", "Broforce", "Carapace Armor", "Catbro", "Catgirl Entourage", "Claw Card", "Cold Hard Cash", "Control Rod", "Crisis-Com", "Dramatic Monologue", "Driving Music", "Firebrand", "Flask of Mist", "Frozen Rose", "Fruits Basket", "Go Piece", "Granola Camouflage", "Groupies", "Hacksaw", "Headband of Awesome", "Helix Tattoo", "Huggly Teddybear", "Jutsu Barrage", "Kaiju Memento", "Kitty Ears", "Lab Coat", "Late-Night Snack", "Lightning Draw", "Little Wooden Cubes", "Lucky Coin", "Magical Wand", "Merchant Sigil", "Money Printer", "Monkey Cymbals", "Monoract", "Noble Phantasm", "Perfect Hair", "Persocomp", "Pink Skull", "Plug Suit", "Poisoned Daggers", "Pokerballs", "Polar Star", "Power Over 9000", "Red Water", "Regalia", "Rocket Punch", "Senjutsu Reserves", "Shiny Belt", "Something Good", "Soul of Steel", "Spirit of the Demon of the Sand", "Spirit of the Nine-Tailed Fox", "Stocking Sword", "Student ID", "Tire Tracks", "Troll Account", "Thunderclaw Ring", "Ultra Dessert", "Vampire Cloak"]);
  839. normalCheck("Kaiju - Major", ["Avant-Guards", "Crystal Tumblers", "Flaming Spit Technique", "'Goodbye Kitten' Pink Taser", "Makeshift Booth", "Parting Gifts", "Pokey Stick", "Quality Cookware", "Remote Scout", "Sad Robot", "Surplus Ordnance", "Time Reversal Cube", "Training Montage", "Zombja Survival Guide"]);
  840. normalCheck("Party House", ["Claymore", "Dartboard", "Over 11000", "Pinchy Claw", "Sevens Trophy", "The Glow", "Party Animal", "Adonis DNA"]);
  841. normalCheck("Party House - Wheel", ["Codec", "K-Dog's Headband", "Love Love Paradise", "Necklace of the First HoCage", "Stealth Suit"]);
  842. normalCheck("R00t", ["Book of the Twilight", "Crusader's Sword", "Daybreak", "Eleven Tails", "Epitaph of the Twilight", "Iron Bond", "Kimono of Shadows", "Lycoris", "R00t Password", "Spear of Wotan", "Aromatic Grass", "Risky Coffee", "Tri-Edge"]);
  843. normalCheck("R00t - Lost Weapons", ["Holy Spur", "Mottled Wing", "Wanton Rose", "Finite Spiral", "Voice Enslaver", "Tickling Death", "Prancing Haze", "Soundless Jade"]);
  844. normalCheck("Reaper/Monochrome", ["Hollow Leg", "Blue Flower Hairpin", "Heck Butterfly", "Silver Hairpin", "Soul Glove", "Swallowtail Butterfly", "Sword of the Reaper", "Dark Band", "Ancestor Spirit", "Loyal Sacrifice", "Sight Beyond Sight", "Eclipsed"]);
  845. normalCheck("Referral", ["Helper Pin", "Coolness Badge", "11DBHK's Purple Shades", "11DBHK's Gold Necklace", "Aviator Goggles", "Pat on the Back", "Piece of the Action"]);
  846. normalCheck("Shop", ["Chakra Armor", "Desert Robes", "Dog Collar", "Giant Fan", "Knapsack", "Ninja Dog", "Ninja Puppet", "Trench Knife"]);
  847. normalCheck("Wasteland", ["Basic Blueprints", "Ancient Blueprints", "Storm's Embrace", "Storm's Fury", "Storm's Path"]);
  848. normalCheck("World Kaiju", ["K-Belt", "Special Attack Uniform", "Season One Collection", "Season Two Collection", "Season Three Collection", "Season Four Collection", "Season Five Collection"]);
  849. normalCheck("Zombja", ["Boomstick", "Flamethrower", "Nonja Chef", "Nonja Sidekick", "Dirty Shovel", "Z-Virus"]);
  850. normalCheck("BillyCon", ["BillyCon Emblem", "Novelty Bullcrap", "Manly Apron", "Fruit Stand", "Mondo Keycard"]);
  851. normalCheck("Special", ["The Final Countdown", "The Touch", "Cheeky Stop Sign"]);
  852. normalCheck("Unobtainable", ["Secret Tech", "ProTip"]);
  853. normalCheck("Non-Loopable", ["RingEye", "The Note", "The Tote", "The Cote", "Ninpo Mask", "Counterfeit Permit", "Captain's Jacket", "Hall Pass", "Awesome Pants", "Substitute Soul Reaper Badge", "Soul Candy", "PizzaWitch Uniform", "License to Speed", "Wired Reflexes"]);
  854. normalCheck("Glowslinging", ["Semiquaver", "Glissando", "Key Signature"]);
  855. normalCheck("Pachinko", ["Dragon Tattoo", "Pinky Finger", "Pompadour", "Ten-Ton Hammer", "Wooden Sword"]);
  856. snowCheck("BillyTV", ["The Eleven"]);
  857. snowCheck("Snow", ["Snowman", "Snowshovel", "MegaPlow", "Plowtron"]);
  858. singleCheck("Chaos & Order", ["Franklin Badge", "Evil's Bane"]);
  859. singleCheck("Sponsor", ["Enormous Hammer", "ElevenCannon", "Dresden's File", "Tiny Bear Pistols", "SuperChunin", "Manly Tears", "555 Phone", "Framed Certificate", "Sleek Keel", "Unmissed Trick"]);
  860. singleCheck("Valentine", ["Beat-Up Teddy", "Creepy Love Letter", "Emo Valentine", "Pink Bouquet"]);
  861. singleCheck("Tiny Bees", ["Tiny Bee Rifle", "Tiny Bee Pistols", "Tiny Bee 2.0", "Tiny BeeZooka", "Tiny Bee A-Salt Rifle"]);
  862. singleCheck("Pets", ["Pet - Ninja Kitty", "Pet - Cave Puppy", "Pet - Awkward Penguin", "Pet - Ninja Tortoise", "Pet - Honey Badger", "Pet - Ninja Squirrel", "Pet - Fanboy Sidekick", "Pet - COURAGE WOLF", "Pet - Blazing Phoenix", "Pet - Red Herring", "Pet - 1.1 Tailed Fox", "Pet - Gamble Fish", "Pet - Salty Dog"]);
  863. wastelandCheck("Wasteland Cloaks", ["Basic Dustcloak", "Weighted Dustcloak", "Wasteland Dustcloak", "Dustcloak of Sneaking"]);
  864. wastelandCheck("Wasteland Scythes", ["Makeshift Scythe", "Silver Scythe", "Wasteland Scythe", "Scythe of Razing"]);
  865. wastelandCheck("Wasteland Pistols", ["Makeshift Pistol", "Average Pistol", "Wasteland Pistol", "Pistol of Repeating"]);
  866. wastelandCheck("Wasteland Shades", ["Desert Shades", "Solid Shades"]);
  867. wastelandCheck("Wasteland Boots", ["Fur-Lined Boots", "Quality Boots", "Wasteland Boots", "Boots of Walking"]);
  868. wastelandCheck("Wasteland Cowls", ["Basic Cowl", "Dark Cowl", "Wasteland Cowl", "Cowl of the Second HoCage"]);
  869. pizzawitchCheck("PizzaWitch Jackets", ["Polyester Delivery Jacket", "Streamlined Delivery Jacket", "Reinforced Delivery Jacket", "Wasteland Delivery Jacket", "Dimensional Delivery Jacket", "Hushed as the Wood"]);
  870. pizzawitchCheck("PizzaWitch Hats", ["Scuffed Delivery Hat", "Reinforced Delivery Hat", "Monochrome Delivery Hat", "Wasteland Delivery Hat", "Virtual Delivery Hat", "Stalwart as the Mount"]);
  871. pizzawitchCheck("PizzaWitch Gloves", ["Tattered Driving Gloves", "Stitched Driving Gloves", "Leather Driving Gloves", ["Reaper Driving Gloves", "Shikai Driving Gloves", "Bankai Driving Gloves", "Cobra Kai Driving Gloves"], "Twilight Gauntlets", "Fierce as the Flame"]);
  872. pizzawitchCheck("PizzaWitch Keychains", ["Tacky Keychain", "Functional Keychain", "Trendy Keychain", "Monochrome Keychain", "Digital Keychain", "Swift as the Wind"]);
  873. mahjongCheck("Mahjong Sets", ["Ashen Mahjong Set", "Wooden Mahjong Set", "Ceramic Mahjong Set", "Steel Mahjong Set"]);
  874. flowerwarsCheck("Hanafuda Decks", ["Cardboard Hanafuda Deck", "Floral Hanafuda Deck", "Mulberry Hanafuda Deck", "Lycoral Hanafuda Deck"]);
  875. badgerCheck("Badger", ["Card Badger Hat", "Card Badger Binder", "Card Badger Playmat", "Ultra Badger"]);
  876. badgerCheck("Watches", ["Crushed Pocketwatch", "Wrecked Pocketwatch", "Smashed Pocketwatch", "Broken Pocketwatch", "Cracked Pocketwatch", "Tarnished Pocketwatch", "Dinged Pocketwatch", "New Pocketwatch"]);
  877. badgerCheck("Player Pin", ["Player Pin", "Red Skull Pin"]);
  878. normalCheck("Hero's Quest", ["LifeTimer", "Silver Locket"]);
  879. normalCheck("Perfect Poker", ["Deck Holster", "Custom Deck Box"]);
  880. normalCheck("Retail", ["Employee Nametag", "Vertical Pricing Gear", "Ginyu Camera"]);
  881. normalCheck("Mission Lady Alley (WOTA)", ["Blank Stare"]);
  882. normalCheck("Reaper's Game", ["Chakra Soul - Acedia", "Chakra Soul - Superbia"]);
  883. }
  884.  
  885. // ...
  886. main();