/*
* @title bookmarklet
* @description DQX特訓ポイントのもらい忘れ確認
* @include http://hiroba.dqx.jp/sc/home/status/detail/
* @license MIT License
* @require
*/
(function(){
var totalPoints = {};
function getText(expression, context) {
return $(expression, context).text();
}
function getNumber(expression, context) {
return parseInt($.trim(getText(expression, context)).replace(/^([0-9,]+).*/, "$1").replace(",", ""));
}
function stampToPoint(stamp) {
if (stamp < 100) {
return 0;
} else if (stamp < 300) {
return 1;
} else if (stamp < 600) {
return 2;
} else if (stamp < 1000) {
return 3;
} else {
return parseInt(stamp / 500) + 2;
}
}
function levelToPoint(level) {
var points = [ 3, 6, 6, 9, 13, 13, 17, 21, 21, 25, 29, 29, 32, 36, 36,
40, 44, 44, 49, 54, 54, 58, 63, 63, 68, 72, 72, 76, 79, 79,
83, 87, 87, 90, 93, 93, 97, 100, 100, 103, 107, 107, 110, 113, 113,
116, 118, 119, 122, 124, 126, 129, 131, 132, 134, 136, 138, 141, 144, 146,
148, 151, 152, 154, 156, 158, 161, 163, 165, 167, 170];
if (level < 10) {
return 0;
}
return points[level - 10];
}
var expRows = $("#jobLvExp table tr");
// 未使用ポイント処理
expRows.each(function(i) {
if (i == 0) {
return true;
}
totalPoints[getText("td.col1", this)] = getNumber("td.col5", this);
});
totalPoints["マスタースキル"] = getNumber("#skillBook ul li:first .point", document);
// 使用済みポイント
for (var k in skillMap) {
var jobSkillPoints = skillMap[k]["jobSkillPoints"];
for (var i = 0; i < jobSkillPoints.length; i++) {
if (!(jobSkillPoints[i]["job"] in totalPoints)) {
totalPoints[jobSkillPoints[i]["job"]] = 0;
}
totalPoints[jobSkillPoints[i]["job"]] += jobSkillPoints[i]["value"];
}
}
console.log(totalPoints);
expRows.each(function() {
var self = $(this);
if (self.find("th").length == 5) {
self.append("<th>未取得特訓ポイント</th>");
}
if (self.find("td").length == 5) {
self.append("<td style=\"text-align:right\"></td>");
}
if (self.find("td").length == 6) {
var syokugyou = self.find("td.col1").text();
var tokkunPoint = stampToPoint(getNumber("td.col4", this));
var levelPoint = levelToPoint(getNumber("td.col2", this));
var unknownPoint = levelPoint + tokkunPoint - totalPoints[syokugyou];
self.find("td:last").html(unknownPoint + " P").text();
}
});
})();