Difference between revisions of "MediaWiki:Gadget-SkillForm.js"
Jump to navigation
Jump to search
(Deleting fallback for SkillData.js) |
|||
Line 5: | Line 5: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
if (document.getElementById("skill_calculator")) { | if (document.getElementById("skill_calculator")) { | ||
− | + | $.get("/index.php?title=" + mw.config.get("wgPageName") +"/skilldata&action=raw", function( data, textStatus, jqxhr ) { | |
pagedata = data; | pagedata = data; | ||
build_skill_form(); | build_skill_form(); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
}); | }); | ||
} | } | ||
Line 36: | Line 31: | ||
skill_data = get_skill_data(); | skill_data = get_skill_data(); | ||
− | if (skill_data.text | + | if (skill_data.text) { |
calculator_element = document.getElementById("skill_calculator"); | calculator_element = document.getElementById("skill_calculator"); | ||
calculator_element.outerHTML = | calculator_element.outerHTML = | ||
Line 63: | Line 58: | ||
data = get_skill_data(); | data = get_skill_data(); | ||
− | |||
− | |||
− | |||
if (data !== null) { | if (data !== null) { | ||
index = document.getElementById("skill_level").value; | index = document.getElementById("skill_level").value; |
Revision as of 07:10, 4 May 2017
// Please refer to MediaWiki:SkillData.js to add skill data for new T-Doll pages.
var pagedata;
var SkillData = {};
$(document).ready(function() {
if (document.getElementById("skill_calculator")) {
$.get("/index.php?title=" + mw.config.get("wgPageName") +"/skilldata&action=raw", function( data, textStatus, jqxhr ) {
pagedata = data;
build_skill_form();
});
}
});
function get_skill_data() {
skill_data = {};
var key;
$.each(pagedata.split("\n"), function(index, value) {
if (value.charAt(0) == "!") {
key = value.substring(1).trim();
} else if (value.charAt(0) == "|" && value.charAt(1) !== "-" && value.charAt(1) !== "}") {
if (key == "initial" || key == "text")
skill_data[key] = value.substring(value.lastIndexOf("|") + 1).trim();
else
skill_data[key] = $.map(value.substring(1).split("||"), $.trim);
}
});
return skill_data;
}
function build_skill_form() {
skill_data = get_skill_data();
if (skill_data.text) {
calculator_element = document.getElementById("skill_calculator");
calculator_element.outerHTML =
'<div id="skill_calculator" style="position:absolute"><table cellspacing="5"><tr>' +
'<td rowspan="2" style="background:rgba(128, 128, 128, 0);width:52px;height:52px"></td>' +
'<td colspan="2" style="background:rgba(255, 255, 255, 0.25);min-width: 300px;"> </td>' +
'</tr><tr>' +
'<td style="width:60px"><select class="skill" id="skill_level" onchange="SkillData.display_data">' +
'<option value="0">Lv. 1</option>' +
'<option value="1">Lv. 2</option>' +
'<option value="2">Lv. 3</option>' +
'<option value="3">Lv. 4</option>' +
'<option value="4">Lv. 5</option>' +
'<option value="5">Lv. 6</option>' +
'<option value="6">Lv. 7</option>' +
'<option value="7">Lv. 8</option>' +
'<option value="8">Lv. 9</option>' +
'<option value="9" selected="selected">Lv. 10</option>' +
'</select></td><td id="cooldown"></td></tr><tr></tr></table><p id="description"></p></div>';
document.getElementById("skill_level").onchange = display_data;
display_data();
}
}
function display_data() {
data = get_skill_data();
if (data !== null) {
index = document.getElementById("skill_level").value;
regex = /\(\$\w+\)/g;
formatted_text = data.text;
vars = data.text.match(regex);
for (i = 0; i < vars.length; i++) {
var_name = vars[i].substring(2, vars[i].length - 1);
formatted_text = formatted_text.replace(
vars[i],
data[var_name][index]);
}
if (data.hasOwnProperty('cooldown')) {
cooldownText = '<td id="cooldown" style="color:rgba(255, 182, 0, 1)">' + data.cooldown[index] + 's cooldown';
if (data.hasOwnProperty('initial')) {
cooldownText += ', ' + data.initial + 's initial cooldown';
}
cooldownText += '</td>';
document.getElementById("cooldown").outerHTML = cooldownText;
} else if (data.hasOwnProperty('activation')) {
document.getElementById("cooldown").outerHTML =
'<td id="cooldown" style="color:rgba(255, 182, 0, 1)">' + data.activation[index] + '% chance to activate</td>';
} else {
document.getElementById("cooldown").outerHTML =
'<td id="cooldown" style="color:rgba(255, 182, 0, 1)">Passive</td>';
}
document.getElementById("description").outerHTML =
'<p id="description">' + formatted_text + '</p>';
}
}