Anonymous
×
Create a new article
Write your page title here:
We currently have 496 articles on WIKI - Idle Pixel. Type your article name above or click on one of the titles below and start writing!



WIKI - Idle Pixel

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
 
(55 intermediate revisions by the same user not shown)
Line 1: Line 1:
//Variable with Weapon DPS used on Weapons Page
var weaponDPS = {
var weaponDPS = {
     WithoutWeapon: [0,1,3,6,10,15,21,25],
     WithoutWeapon: [0,0.125,0.375,0.750,1.250,1.875,2.625,3.125],
     WoodenSword: [0.125,0.25,0.5,0.875,1.375,2,2.75,3.25],
     WoodenSword: [0.125,0.250,0.500,0.875,1.375,2.000,2.750,3.250],
     Stinger: [0.25,0.375,0.625,1,1.5,2.125,2.875,3.375],
     Stinger: [0.250,0.375,0.625,1.000,1.500,2.125,2.875,3.375],
     PoisonStinger: [0.333333333,0.458333333,0.708333333,1.083333333,1.583333333,2.208333333,2.958333333,3.458333333],
     PoisonStinger: [0.333,0.458,0.708,1.083,1.583,2.208,2.958,3.458],
     IronDagger: [0.333333333,0.5,0.833333333,1.333333333,2,2.833333333,3.833333333,4.5],
     IronDagger: [0.333,0.500,0.833,1.333,2.000,2.833,3.833,4.500],
     SkeletonSword: [0.625,0.75,1,1.375,1.875,2.5,3.25,3.75],
     SkeletonSword: [0.625,0.750,1.000,1.375,1.875,2.500,3.250,3.750],
     Club: [0.666666667,0.75,0.916666667,1.166666667,1.5,1.916666667,2.416666667,2.75],
     Club: [0.667,0.750,0.917,1.167,1.500,1.917,2.417,2.750],
     SpikedClub: [1,1.083333333,1.25,1.5,1.833333333,2.25,2.75,3.083333333],
     SpikedClub: [1.000,1.083,1.250,1.500,1.833,2.250,2.750,3.083],
     Scythe: [1,1.125,1.375,1.75,2.25,2.875,3.625,4.125],
     Scythe: [1.000,1.125,1.375,1.750,2.250,2.875,3.625,4.125],
     StingerDagger: [0.25,0.5625,0.9375,1.5,2.25,3.1875,4.3125,5.0625],
    ScythePlus: [1.000,1.125,1.375,1.750,2.250,2.875,3.625,4.125],
     PoisonStingerDagger: [0.583333333,0.895833333,1.270833333,1.833333333,2.583333333,3.520833333,4.645833333,5.395833333],
     StingerDagger: [0.375,0.563,0.938,1.500,2.250,3.188,4.313,5.063],
     Rapier: [1.5,1.625,1.875,2.25,2.75,3.375,4.125,4.625],
     PoisonStingerDagger: [0.708,0.896,1.271,1.833,2.583,3.521,4.646,5.396],
     PoisonRapier: [1.916666667,2.041666667,2.291666667,2.666666667,3.166666667,3.791666667,4.541666667,5.041666667],
BattleAxe: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
     DenseClub: [1.666666667,1.75,1.916666667,2.166666667,2.5,2.916666667,3.416666667,3.75],
LongSpear: [0.583,0.667,0.833,1.083,1.417,1.833,2.333,2.667],
     SpikedDenseClub: [2.5,2.583333333,2.75,3,3.333333333,3.75,4.25,4.583333333],
Trident: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
     GoldenRapier: [2,2.166666667,2.5,3,3.666666667,4.5,5.5,6.166666667],
LongTrident: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
     PoisonGoldenRapier: [2.777777778,2.944444444,3.277777778,3.777777778,4.444444444,5.277777778,6.277777778,6.944444444],
     Rapier: [1.500,1.625,1.875,2.250,2.750,3.375,4.125,4.625],
     Ballista: [1.166666667,1.333333333,1.666666667,2.166666667,2.833333333,3.666666667,4.666666667,5.333333333],
     PoisonRapier: [1.917,2.042,2.292,2.667,3.167,3.792,4.542,5.042],
     HauntedBow: [0.875,1,1.25,1.625,2.125,2.75,3.5,4]
     DenseClub: [1.667,1.750,1.917,2.167,2.500,2.917,3.417,3.750],
};
     SpikedDenseClub: [2.500,2.583,2.750,3.000,3.333,3.750,4.250,4.583],
     GoldenRapier: [2.000,2.167,2.500,3.000,3.667,4.500,5.500,6.167],
     PoisonGoldenRapier: [2.778,2.944,3.278,3.778,4.444,5.278,6.278,6.944],
     Ballista: [1.167,1.333,1.667,2.167,2.833,3.667,4.667,5.333],
     HauntedBow: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000]
}


// Function to change values on Weapons page table
function compareDPS(value,id) {
function compareDPS(value,id) {
document.getElementById('compareDPST0Row'+id).innerText = Math.round(weaponDPS[value][0] * 100) / 100;
document.getElementById('compareDPST0Row'+id).innerText = Math.round(weaponDPS[value][0] * 100) / 100;
Line 32: Line 39:
}
}


function addSelects(id) {
// Event listeners for weapon change
return '<select onchange="compareDPS(this.value,'+id+')">\
if (document.querySelector('[id^="compareDPS"]')) {
<option value="" disabled selected>Weapon '+id+'</option>\
document.getElementById('compareSelect1').addEventListener("change", function() {
<option value="WithoutWeapon">Without Weapon</option>\
compareDPS(document.getElementById('compareSelect1').value,1)
<option value="WoodenSword">Wooden Sword</option>\
});
<option value="Stinger">Stinger</option>\
document.getElementById('compareSelect2').addEventListener("change", function() {
<option value="PoisonStinger">Poison Stinger</option>\
compareDPS(document.getElementById('compareSelect2').value,2)
<option value="IronDagger">Iron Dagger</option>\
});
<option value="SkeletonSword">Skeleton Sword</option>\
console.log('DPS select listeners added')
<option value="Club">Club</option>\
<option value="SpikedClub">Spiked Club</option>\
<option value="Scythe">Scythe</option>\
<option value="StingerDagger">Stinger Dagger</option>\
<option value="PoisonStingerDagger">Poison Stinger Dagger</option>\
<option value="Rapier">Rapier</option>\
<option value="PoisonRapier">Poison Rapier</option>\
<option value="DenseClub">Dense Club</option>\
<option value="SpikedDenseClub">Spiked Dense Club</option>\
<option value="GoldenRapier">Golden Rapier</option>\
<option value="PoisonGoldenRapier">Poison Golden Rapier</option>\
<option value="Ballista">Ballista</option>\
<option value="HauntedBow">Haunted Bow</option>\
</select>'
}
}


if (document.getElementById('compareSelect1')) {
// Update Log Iframe
document.getElementById('compareSelect1').innerHTML = addSelects(1)
if (document.getElementById('updateLogs')) {
}
document.getElementById('updateLogs').innerHTML = '<iframe src="/custom/updateLogs.php" width="100%" height="600px"></iframe>'
if (document.getElementById('compareSelect2')) {
document.getElementById('compareSelect2').innerHTML = addSelects(2)
}
}


mw.loader.load('https://cdn.jsdelivr.net/gh/cferdinandi/tabby@12/dist/js/tabby.polyfills.min.js')
// Highlight code using Module Lua {{#invoke:Lua|code|CODE HERE}}
 
mw.loader.getScript(
'../custom/highlight.min.js'
).then( function () {
hljs.highlightAll();
console.log('Code highlighted');
});
 
 
// Function to show Hit Change
function hitRateCalc(attacker) {
var defense = document.getElementById("defense" + attacker).value;
var accuracy = document.getElementById("accuracy" + attacker).value;
var darkness = document.getElementById("darkness" + attacker).checked;


var hitChance = 0;


setTimeout(function(){
if (((defense / 2) - accuracy) > 4) {
if (document.querySelector('[id^="tab"]')) {
hitChance = 1 / (Math.max(1, ((defense / 2) - accuracy)) + 1);
document.querySelectorAll('[id^="tab"]').forEach(function (data) {
} else if (((defense / 2) - accuracy) <= 0) {
var ulContent = data.innerText;
hitChance = 1;
var tabsArray = ulContent.split(',');
} else {
var ulElement = data;
hitChance = 1 - (((defense / 2) - accuracy) * 2 / 10);
ulElement.innerHTML = '';
tabsArray.forEach(function(tab) {
var liElement = document.createElement('li');
var aElement = document.createElement('a');
aElement.href = '#' + tab.toLowerCase().replace(/\s+/g, '');
aElement.textContent = tab;
liElement.appendChild(aElement);
ulElement.appendChild(liElement);
});
var tabs = new Tabby('#'+data.id)
})
}
}
},3000);
 
var hitChancePercentage = (hitChance * 100).toFixed(2);
hitChancePercentage = darkness == true ? '50.00' : hitChancePercentage;
document.getElementById("hitRate" + attacker).innerText = hitChancePercentage;
};
 
// Event listeners for accuracy or defense change on Hit Chance calculator
if (document.querySelector('[class="hitChance"]')) {
Array.prototype.forEach.call(document.getElementsByClassName('hitChance'), function(el) {
var attacker = el.getAttribute('data-hit') || ''
document.getElementById('accuracy'+attacker).addEventListener("input", function() {
hitRateCalc(attacker)
});
document.getElementById('defense'+attacker).addEventListener("input", function() {
hitRateCalc(attacker)
});
document.getElementById('darkness'+attacker).addEventListener("change", function() {
hitRateCalc(attacker)
});
hitRateCalc(attacker);
})
console.log('hitChange listeners added')
}
console.log('Page loaded')

Latest revision as of 06:35, 4 November 2024

//Variable with Weapon DPS used on Weapons Page
var weaponDPS = {
    WithoutWeapon: [0,0.125,0.375,0.750,1.250,1.875,2.625,3.125],
    WoodenSword: [0.125,0.250,0.500,0.875,1.375,2.000,2.750,3.250],
    Stinger: [0.250,0.375,0.625,1.000,1.500,2.125,2.875,3.375],
    PoisonStinger: [0.333,0.458,0.708,1.083,1.583,2.208,2.958,3.458],
    IronDagger: [0.333,0.500,0.833,1.333,2.000,2.833,3.833,4.500],
    SkeletonSword: [0.625,0.750,1.000,1.375,1.875,2.500,3.250,3.750],
    Club: [0.667,0.750,0.917,1.167,1.500,1.917,2.417,2.750],
    SpikedClub: [1.000,1.083,1.250,1.500,1.833,2.250,2.750,3.083],
    Scythe: [1.000,1.125,1.375,1.750,2.250,2.875,3.625,4.125],
    ScythePlus: [1.000,1.125,1.375,1.750,2.250,2.875,3.625,4.125],
    StingerDagger: [0.375,0.563,0.938,1.500,2.250,3.188,4.313,5.063],
    PoisonStingerDagger: [0.708,0.896,1.271,1.833,2.583,3.521,4.646,5.396],
	BattleAxe: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
	LongSpear: [0.583,0.667,0.833,1.083,1.417,1.833,2.333,2.667],
	Trident: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
	LongTrident: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000],
    Rapier: [1.500,1.625,1.875,2.250,2.750,3.375,4.125,4.625],
    PoisonRapier: [1.917,2.042,2.292,2.667,3.167,3.792,4.542,5.042],
    DenseClub: [1.667,1.750,1.917,2.167,2.500,2.917,3.417,3.750],
    SpikedDenseClub: [2.500,2.583,2.750,3.000,3.333,3.750,4.250,4.583],
    GoldenRapier: [2.000,2.167,2.500,3.000,3.667,4.500,5.500,6.167],
    PoisonGoldenRapier: [2.778,2.944,3.278,3.778,4.444,5.278,6.278,6.944],
    Ballista: [1.167,1.333,1.667,2.167,2.833,3.667,4.667,5.333],
    HauntedBow: [0.875,1.000,1.250,1.625,2.125,2.750,3.500,4.000]
}

// Function to change values on Weapons page table
function compareDPS(value,id) {
	document.getElementById('compareDPST0Row'+id).innerText = Math.round(weaponDPS[value][0] * 100) / 100;
	document.getElementById('compareDPST1Row'+id).innerText = Math.round(weaponDPS[value][1] * 100) / 100;
	document.getElementById('compareDPST2Row'+id).innerText = Math.round(weaponDPS[value][2] * 100) / 100;
	document.getElementById('compareDPST3Row'+id).innerText = Math.round(weaponDPS[value][3] * 100) / 100;
	document.getElementById('compareDPST4Row'+id).innerText = Math.round(weaponDPS[value][4] * 100) / 100;
	document.getElementById('compareDPST5Row'+id).innerText = Math.round(weaponDPS[value][5] * 100) / 100;
	document.getElementById('compareDPST6Row'+id).innerText = Math.round(weaponDPS[value][6] * 100) / 100;
	document.getElementById('compareDPST7Row'+id).innerText = Math.round(weaponDPS[value][7] * 100) / 100;
}

// Event listeners for weapon change
if (document.querySelector('[id^="compareDPS"]')) {
	document.getElementById('compareSelect1').addEventListener("change", function() {
		compareDPS(document.getElementById('compareSelect1').value,1)
	});
	document.getElementById('compareSelect2').addEventListener("change", function() {
		compareDPS(document.getElementById('compareSelect2').value,2)
	});
	console.log('DPS select listeners added')
}

// Update Log Iframe
if (document.getElementById('updateLogs')) {
	document.getElementById('updateLogs').innerHTML = '<iframe src="/custom/updateLogs.php" width="100%" height="600px"></iframe>'
}

// Highlight code using Module Lua {{#invoke:Lua|code|CODE HERE}}

	mw.loader.getScript(
		'../custom/highlight.min.js'
	).then( function () {
		hljs.highlightAll();
		console.log('Code highlighted');
	});


// Function to show Hit Change 
function hitRateCalc(attacker) {
	var defense = document.getElementById("defense" + attacker).value;
	var accuracy = document.getElementById("accuracy" + attacker).value;
	var darkness = document.getElementById("darkness" + attacker).checked;

	var hitChance = 0;

	if (((defense / 2) - accuracy) > 4) {
		hitChance = 1 / (Math.max(1, ((defense / 2) - accuracy)) + 1);
	} else if (((defense / 2) - accuracy) <= 0) {
		hitChance = 1;
	} else {
		hitChance = 1 - (((defense / 2) - accuracy) * 2 / 10);
	}

	var hitChancePercentage = (hitChance * 100).toFixed(2);
	hitChancePercentage = darkness == true ? '50.00' : hitChancePercentage;
	document.getElementById("hitRate" + attacker).innerText = hitChancePercentage;
};

// Event listeners for accuracy or defense change on Hit Chance calculator
if (document.querySelector('[class="hitChance"]')) {
	Array.prototype.forEach.call(document.getElementsByClassName('hitChance'), function(el) {
		var attacker = el.getAttribute('data-hit') || ''
		document.getElementById('accuracy'+attacker).addEventListener("input", function() {
			hitRateCalc(attacker)
		});
		document.getElementById('defense'+attacker).addEventListener("input", function() {
			hitRateCalc(attacker)
		});
		document.getElementById('darkness'+attacker).addEventListener("change", function() {
			hitRateCalc(attacker)
		});
		hitRateCalc(attacker);
	})
	console.log('hitChange listeners added')
}
console.log('Page loaded')