// ==UserScript==
// @name PSO2 Weapon Library tool
// @namespace https://greasyfork.org/en/users/3372-nixxquality
// @version 1.0-RC2
// @description Keep track of what weapons you have in your weapon library
// @author nixx quality
// @match http://pso2.swiki.jp/index.php?%E3%82%BD%E3%83%BC%E3%83%89
// @match http://pso2.swiki.jp/index.php?%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC%E3%83%89%E3%83%A9%E3%83%B3%E3%82%B9
// @match http://pso2.swiki.jp/index.php?%E3%83%91%E3%83%AB%E3%83%81%E3%82%B6%E3%83%B3
// @match http://pso2.swiki.jp/index.php?%E3%83%84%E3%82%A4%E3%83%B3%E3%83%80%E3%82%AC%E3%83%BC
// @match http://pso2.swiki.jp/index.php?%E3%83%80%E3%83%96%E3%83%AB%E3%82%BB%E3%82%A4%E3%83%90%E3%83%BC
// @match http://pso2.swiki.jp/index.php?%E3%83%8A%E3%83%83%E3%82%AF%E3%83%AB
// @match http://pso2.swiki.jp/index.php?%E3%82%AC%E3%83%B3%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5
// @match http://pso2.swiki.jp/index.php?%E3%82%AB%E3%82%BF%E3%83%8A
// @match http://pso2.swiki.jp/index.php?%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%96%E3%83%AC%E3%83%BC%E3%83%89
// @match http://pso2.swiki.jp/index.php?%E3%82%A2%E3%82%B5%E3%83%AB%E3%83%88%E3%83%A9%E3%82%A4%E3%83%95%E3%83%AB
// @match http://pso2.swiki.jp/index.php?%E3%83%A9%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC
// @match http://pso2.swiki.jp/index.php?%E3%83%84%E3%82%A4%E3%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%82%AC%E3%83%B3
// @match http://pso2.swiki.jp/index.php?%E3%83%90%E3%83%AC%E3%83%83%E3%83%88%E3%83%9C%E3%82%A6
// @match http://pso2.swiki.jp/index.php?%E3%83%AD%E3%83%83%E3%83%89
// @match http://pso2.swiki.jp/index.php?%E3%82%BF%E3%83%AA%E3%82%B9
// @match http://pso2.swiki.jp/index.php?%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%83%96%E3%83%BC%E3%83%84
// @grant none
// ==/UserScript==
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// translation data
var translation = new Map([
/// Swords
// Common
["ソード", "Sword"],
["ギガッシュ", "Gigush"],
["ブレイカー", "Breaker"],
["アルバソード", "Alva Sword"],
["アルバギガッシュ", "Alva Gigush"],
["アルバブレイカー", "Alva Breaker"],
["ヴィタソード", "Vita Sword"],
["ヴィタギガッシュ", "Vita Gigush"],
["ヴィタブレイカー", "Vita Breaker"],
["クレイモア", "Claymore"],
["キャリバー", "Calibur"],
["アルバクレイモア", "Alva Claymore"],
["アルバキャリバー", "Alva Calibur"],
["ヴィタクレイモア", "Vita Claymore"],
["ヴィタキャリバー", "Vita Calibur"],
// 7☆
["ザックス", "Zaxe"],
["トラディシオン/ナハト", "Haseo's Scythe"],
["ウィングスパーダ", "Wing Spada"],
["ザンバ", "Zanba"],
["スティールハーツ", "Steel Hearts"],
["ラストサバイバー", "Last Survivor"],
["ウェーブボード", "Wave Board"],
["ブリザックス", "Blizaxe"],
["赤のソード", "Red Sword"],
["青のソード", "Blue Sword"],
// 8☆
["スペース・ツナ", "Space Tuna"],
["ヴォルスケイル", "Vol Scale"],
["タルナーダ", "Tarnada"],
["アリスティン", "Aristin"],
["フリーズ・ツナ", "Freeze Tuna"],
["ディニアエッジ", "Dinia Edge"],
["ホーリーツリー", "Holy Tree"],
["コートエッジ", "Coat Edge"],
["ラムダアリスティン", "Lambda Aristin"],
// 9☆
//["阿鼻", ""],
["イクタチ", "Ikutachi"],
["アーディロウ", "Ardillo"],
["アズロリンガー", "Azurro Ringer"],
["ラムダアーディロウ", "Lambda Ardillo"],
["ブレイザックス", "Blazaxe"],
// 10☆
["コートエッジD", "Coat Edge D"],
["ルイングローム", "Ruin Gloam"],
["フォルトゥナ", "Fortuna"],
["ルインシャルム", "Ruin Charm"],
["キレートエディア", "Chelate Edia"],
["マダムノアマガサ", "Madam's Umbrella"],
["ダーヴルソード", "Darvle Sword"],
["サディーナエッジ", "Sadiena Edge"],
["エルダーペイン", "Elder Pain"],
["カグダチ", "Kagudachi"],
["ダルバダソード", "Dalvada Sword"],
["グリッドエディア", "Grid Edia"],
["ギアフレイド", "Gearfreid"],
["バーンスパーダ", "Burn Spada"],
["ルインミラーシ", "Ruin Mirage"],
["ロッソリンガー", "Rosso Ringer"],
["クラハダチ", "Kurahadachi"],
["フラメブランド", "Flamme Brand"],
["ディオアリスティン", "Dio Aristin"],
["ファラストエディア", "Falast Edia"],
["ドラゴンスレイヤー", "Dragon Slayer"],
["ディオアーディロウ", "Dio Ardillo"],
["ルインレーヴェ", "Ruin Lowe"],
["ヴェルデリンガー", "Verde Ringer"],
["トレイターリニア", "Traitor Linear"],
["クルセイドロア", "Crusade Lore"],
["ザッパーエッジ", "Zapper Edge"],
["新光大刃", "Pristine Greatsword"],
["レイトラス", "Raytrus"],
// 11☆
["レインボーボード", "Rainbow Board"],
["ウルシハリセン", "Urushi Harisen"],
["ウェドルラビエイト", "Weddle Rabiate"],
["ロサードリーゼス", "Rosadolieses"],
["デイジーチェイン", "Daisy Chain"],
["ローズスチュワード", "Rose Steward"],
["紅葉姫", "Momijihime"],
["バイオグリオン", "Bio Glion"],
["ファーレンエンダー", "Fahrenender"],
["フォンリーゼス", "Phonlieses"],
["ジャグローク", "Jugroque"],
["シャープサイクラー", "Sharp Cycler"],
["ブレイクライナー", "Break Liner"],
["サファイザリア", "Sapphizaria"],
["ウェドルエイド", "Weddle Aid"],
["ギグルドミナ", "Gigur Domina"],
["アルケラス", "Alceras"],
["ダルスソレイド", "Dalz Soleid"],
//["ジェラーテ", ""],
["ダヴィアルソード", "Davial Sword"],
//["トウシャロウ", ""],
["トレイターグリフ", "Traitor Glyph"],
["ストラジオ", "Stradio"],
["キーンサイクラー", "Keen Cycler"],
// 12☆
["エリュシオーヌ", "Ely Sion"],
["ライブグリオン", "Live Glion"],
["リンドクレイ", "Lind Cray"],
["ライトニングエスパーダ", "Lightning Espada"],
["チェインソード", "Chainsawd"],
//["イクサコウシャ", ""],
// 13☆
//["朔桜", ""],
["イデアルエッジ", "Ideal Edge"],
//["ネメシスキャリバー", ""],
["アーレスソード", "Ares Sword"],
["スレイヴキャリバー", "Slave Calibur"],
/// Wired Lances
// Common
["ワイヤードランス", "Wired Lance"],
["ワイヤードゲイン", "Wired Gain"],
["ワイヤードオーバー", "Wired Over"],
["アルバランス", "Alva Lance"],
["アルバゲイン", "Alva Gain"],
["アルバオーバー", "Alva Over"],
["ヴィタランス", "Vita Lance"],
["ヴィタゲイン", "Vita Gain"],
["ヴィタオーバー", "Vita Over"],
["ワイヤードトライ", "Wired Tri"],
["ワイヤードアーチ", "Wired Arch"],
["アルバトライ", "Alva Tri"],
["アルバアーチ", "Alva Arch"],
["ヴィタトライ", "Vita Tri"],
["ヴィタアーチ", "Vita Arch"],
// 7☆
["ロケットパンチ/ナハト", "Rocket Punch / Nacht"],
["クシャネビュラ", "Kuscha Nebula"],
["ネイクロー/ナハト", "Neiclaw / Nacht"],
["ファティウーマ/リヒト", "Phyteuma / Licht"],
["デイライトスカー", "Daylight Scar"],
["ファントムハット", "Phantom Hat"],
["ラムダクシャネビュラ", "Lambda Kuscha Nebula"],
["赤のワイヤードランス", "Red Wired Lance"],
["青のワイヤードランス", "Blue Wired Lance"],
// 8☆
["グッダスケラ", "Gudda Skela"],
["マルモスファング", "Malmoth Fang"],
["ブレイド・ボール", "Blade Ball"],
["ラズライル", "Razrail"],
["ベルカード", "Belcard"],
["ハイペリオン", "Hyperion"],
["カールドランサー", "Curldranser"],
["ラムダベルカード", "Lambda Belcard"],
["ラムダハイペリオン", "Lambda Hyperion"],
// 9☆
["ジャグリアス", "Jagriath"],
["エナジーヒューザー", "Energy Huezer"],
["ラムダジャグリアス", "Lambda Jagriath"],
["ネイクロー", "Neiclaw"],
["ディオクシャネビュラ", "Dio Kuscha Nebula"],
["ディオベルカード", "Dio Belcard"],
// 10☆
["ロケットパンチ", "Rocket Punch"],
["ベルクヴェルカー", "Belk Welker"],
["グワナーダランス", "Gwanahda Lance"],
["シェルオプス", "Shell Opus"],
["アサシンクロー", "Assassin Claw"],
["ブルートギフト", "Brute Gift"],
["ギガススピナー", "Gigas Spinner"],
["ロッソヴァルガー", "Rosso Welker"],
["ブルートカース", "Brute Curse"],
["カタドランサー", "Catadranser"],
["ウィールローレン", "Wheel Rolen"],
["シェルガイア", "Shell Gaia"],
["クリスライル", "Crysrail"],
["ヴァイスビュート", "Weisse Butte"],
["ダルマルファング", "Dal Mal Fang"],
["Gネロランス", "G Nero Lance"],
["ディオハイペリオン", "Dio Hyperion"],
["シェルクロノス", "Shell Chronos"],
["ディアボリックガント", "Diabolic Gauntlet"],
["タイドヴァルガー", "Tide Valger"],
["ディオジャグリアス", "Dio Jagriath"],
["ビブラスランス", "Vibrace Lance"],
["セイントラスター", "Saint Luster"],
["ヤサカニノマガタマ", "Yasakani no Magatama"],
["ヘレティックエンド", "Heretic End"],
["イミディエイトフェザー", "Immediate Feather"],
// 11☆
["ゴーストハット", "Ghost Hat"],
["ラミアスラウナー", "Lamia Slauner"],
["ファルクロー", "Falclaw"],
//["ヒュリオランシヴ", ""],
["ヒュリオランサー", "Hurio Lancer"],
["ラミアスロイアー", "Lamia Slawyer"],
["ダールワイグル", "Darl Weigle"],
["嵐魔", "Ranma"],
["クラテルネイルス", "Crater Nails"],
["ファーレントリッガー", "Fahrentrigger"],
["バイオレードル", "Bio Radle"],
["グラスクライン", "Glass Klein"],
["グロリアスウィング", "Glorious Wing"],
["フルキュリオ", "Full Curio"],
["ファティウーマ", "Phyteuma"],
["ネプトアンカー", "Nepto Anchor"],
["アンジャクゥーリ", "Anjakuhri"],
["ブルートネグロ", "Brute Negro"],
["ククノチノマガタマ", "Kukunochi no Magatama"],
["リムリーゼ", "Rimliese"],
["セイントグロス", "Saint Gloss"],
["サギタレオーネ", "Sagita Leone"],
["マークキュリオ", "Mark Curio"],
// 12☆
["ラッピーフウセン", "Rappy Fuusen"],
["禍矛ユクカ", "<span style=color:red>Evil</span> Yukuka"],
["ライブレードル", "Live Radle"],
["刃鞭パラティーゼル", "Whipblade Paratizel"],
["蛇腹グリゴロス", "Serpent Grigoros"],
// 13☆
//["風霞", ""],
["イデアルシザーズ", "Ideal Scissors"],
//["ネメシスチェイン", ""],
["アーレスランス", "Ares Lance"],
["スレイヴチェイン", "Slave Chain"],
//["エルデトロス", ""],
]);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var tabl = document.getElementsByTagName("table")[1];
var thead = tabl.childNodes[0].childNodes[0];
var tbody = tabl.childNodes[2];
var headeritem = document.createElement("th");
headeritem.className = "style_th";
thead.insertBefore(headeritem, thead.firstChild);
if (localStorage.translateItems == null)
{
localStorage.translateItems = "true";
}
var translatetoggle = document.createElement("p");
var translatetogglebox = document.createElement("input");
translatetogglebox.type = "checkbox";
translatetogglebox.checked = localStorage.translateItems == "true" ? true : false;
translatetogglebox.addEventListener("change", function() {
for (i = 0; i < tbody.childElementCount; i++)
{
if (this.checked && translation.get(tbody.childNodes[i].dataset.name))
{
tbody.childNodes[i].childNodes[3].firstChild.innerHTML = translation.get(tbody.childNodes[i].dataset.name);
}
else
{
tbody.childNodes[i].childNodes[3].firstChild.text = tbody.childNodes[i].dataset.name;
}
}
localStorage.translateItems = this.checked;
});
tabl.parentElement.parentElement.insertBefore(translatetoggle, tabl.parentElement);
translatetoggle.appendChild(translatetogglebox);
translatetoggle.appendChild(document.createTextNode(" Translate items"));
function checkboxclicked()
{
this.parentElement.style.backgroundColor = this.checked ? "green" : "red";
localStorage[this.parentElement.parentElement.dataset.name] = this.checked;
}
for (i = 0; i < tbody.childElementCount; i++)
{
itemname = tbody.childNodes[i].childNodes[2].firstChild.text;
tbody.childNodes[i].dataset.name = itemname;
if (localStorage.translateItems == "true" && translation.get(itemname))
{
tbody.childNodes[i].childNodes[2].firstChild.innerHTML = translation.get(itemname);
}
checkboxtd = document.createElement("td");
checkboxtd.style.textAlign = "center";
checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.style.width = "30px";
checkbox.style.height = "30px";
if (tbody.childNodes[i].childNodes[0].style.backgroundColor != "rgb(255, 204, 153)") // ignore extended weapon listing
{
checkboxtd.style.backgroundColor = "red";
checkboxtd.appendChild(checkbox);
}
if (localStorage[itemname] == "true")
{
checkboxtd.style.backgroundColor = "green";
checkbox.checked = true;
}
checkbox.addEventListener("change", checkboxclicked);
tbody.childNodes[i].insertBefore(checkboxtd, tbody.childNodes[i].firstChild);
}