helialprofile.png
Welcome to IOPWiki, Commander. You can contribute to this wiki without an account. Learn how to contribute and join our Discord server.

Difference between revisions of "MediaWiki:Gadget-SkillForm.js"

Welcome to IOP Wiki. This website is maintained by the Girls' Frontline community and is free to edit by anyone.
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 ) {
+
$.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();
}).fail(function() {
 
$.getScript( "/index.php?title=MediaWiki:SkillData.js&action=raw&ctype=text/javascript", function( inner_data, inner_textStatus, inner_jqxhr ) {
 
get_skill_data = get_skill_data_legacy;
 
build_skill_form();
 
});
 
 
});
 
});
 
}
 
}
Line 36: Line 31:
 
     skill_data = get_skill_data();
 
     skill_data = get_skill_data();
  
     if (skill_data.text || skill_data[mw.config.get("wgPageName")]) {
+
     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.text) {
 
    data = skill_data[mw.config.get("wgPageName")];
 
    }
 
 
     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;">&#8199;</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>';
    }
}