Mudanças entre as edições de "MediaWiki:Common.js"
Ir para navegação
Ir para pesquisar
Etiqueta: Revertido |
Etiqueta: Revertido |
||
| Linha 5: | Linha 5: | ||
const levelMaximo = 100 | const levelMaximo = 100 | ||
Edição das 00h56min de 19 de agosto de 2021
$(function () {
var myElement = document.getElementById('mw-calculator');
myElement.innerHTML = 'any HTML';
}());{
const levelMaximo = 100
//Colocar classe active no tier ativo
$('.radios label').click(function(){
if($(barra).hasClass("darkmode-ativo")){
$('.radios label').removeClass('active');
$(this).addClass('active');
$('.radios label.active').css('border-color','white')
}
else{
$('.radios label').removeClass('active');
$(this).addClass('active');
$('.radios label.active').css('border-color','rgb(94, 93, 93)')
}
})
//Dinamiza o background conforme o tier muda
/*
$('input[type=radio]').click(function(){
var body = $('body')
if ($('#tier1').is(":checked")){
body.css('background-color','rgba(132, 255, 255, 0.5)')
}
if ($('#tier2').is(":checked")){
body.css('background-color','rgba(255, 229, 127, 0.5)')
}
if ($('#tier3').is(":checked")){
body.css('background-color','rgba(173, 168, 168, 0.5)')
}
if ($('#tier4').is(":checked")){
body.css('background-color','rgba(133, 119, 89, 0.5)')
}
})
*/
//Funções de verificação
function verificaLevel(levelAtual){
if(levelAtual == ''){
return false
}
levelAtual = parseInt(levelAtual)
if(levelAtual > levelMaximo || levelAtual <= 0){
return false
}
}
function verificaLevelDeseja(lvlDeseja){
if(lvlDeseja == ''){
return false
}
lvlDeseja = parseInt(lvlDeseja)
if(lvlDeseja > levelMaximo || lvlDeseja <= 0 || lvlDeseja <= parseInt($('input[name=levelAtual]').val())){
return false
}
}
function verificaPorcentoFalta(porcentoFalta){
if(porcentoFalta == ''){
return false
}
porcentoFalta = parseInt(porcentoFalta)
if(porcentoFalta > 100 || porcentoFalta <= 0){
return false
}
}
//Funções de estilização
function aplicarCampoInvalido(el){
el.css('border','2px solid red')
return false
}
function resetarCampoInvalido(el){
el.css('border','1px solid #ccc')
}
$('input[name=levelAtual]').focus(function(){
resetarCampoInvalido($(this))
})
$('input[name=lvlDeseja]').focus(function(){
resetarCampoInvalido($(this))
})
$('input[name=porcentoFalta]').focus(function(){
resetarCampoInvalido($(this))
})
function elementoFocado(el){
el.css('border','1px solid #3394CE')
}
function elementoDesfocado(el) {
el.css('border','1px solid #7e7e7e')
}
$('input[type=number]').focus(function(){
elementoFocado($(this))
})
$('input[type=number]').blur(function(){
elementoDesfocado($(this))
})
$('form').submit(function(e){
e.preventDefault()
//Verifica se os dados passados estão corretos
if(verificaLevel($('input[name=levelAtual]').val()) == false){
aplicarCampoInvalido($('input[name=levelAtual]'))
}
if(verificaPorcentoFalta($('input[name=porcentoFalta]').val()) == false){
aplicarCampoInvalido($('input[name=porcentoFalta]'))
}
if(verificaLevelDeseja($('input[name=lvlDeseja]').val()) == false){
aplicarCampoInvalido($('input[name=lvlDeseja]'))
}
//Pega o valor do tier
if ($('#tier1').is(":checked")){
var tier = parseFloat($('#tier1').val())
}else if ($('#tier2').is(":checked")){
var tier = parseInt($('#tier2').val())
}else if ($('#tier3').is(":checked")){
var tier = parseInt($('#tier3').val())
}else if ($('#tier4').is(":checked")){
var tier = parseInt($('#tier4').val())
}
if(tier == undefined){
return false
}
//Pega os dados e transforma em variaveis
var levelAtual = parseInt($('input[name=levelAtual]').val())
var porcentoFalta = parseInt($('input[name=porcentoFalta]').val())
var lvlDeseja = parseInt($('input[name=lvlDeseja]').val())
var potP = $('input[name=potP]').val()
var potM = $('input[name=potM]').val()
var potG = $('input[name=potG]').val()
var xpTem = 100 - porcentoFalta //Xp atual (%) que ele tem agora, será usada depois pra ficar mais precisa a variavel xp
var box = $('#box')
//Caso o usúario deixe as poções vazias o sistema interpreta que ele queria deixar como 0 caso não tenha feito isso ele pega o valor deixado pelo usúario
if(potP == '' || potP < 0){
potP = 0
}else{
potP = parseInt($('input[name=potP]').val())
}
if(potM == '' || potM < 0){
potM = 0
}else{
potM = parseInt($('input[name=potM]').val())
}
if(potG == '' || potG < 0){
potG = 0
}else{
potG = parseInt($('input[name=potG]').val())
}
//Pega o valor da xp atual dele por meio de uma formula
var xp = ((50 * ((levelAtual - 1) ** 3) - 150 * ((levelAtual - 1) ** 2) + 400 * (levelAtual - 1)) / 3) + ((50 * levelAtual ** 2 - 150 * levelAtual + 200) * xpTem / 100)
//Pega a xp que ele precisa ter para chegar no level desejado
var xpDesejada = (50 * ((lvlDeseja - 1) ** 3) - 150 * ((lvlDeseja - 1) ** 2) + 400 * (lvlDeseja - 1)) / 3
console.log(xpDesejada)
//A xp que falta para ele ir da xp atual para a xp desejada
var xpFaltante = Math.round((xpDesejada - xp) - ((potP * (1000 * tier)) + (potM * (10000 * tier)) + (potG * (100000 * tier))))
//Pega quantas poções ele precisa usar com base no tier e na xp que falta
var potPFalta = Math.ceil((xpFaltante / (1000 * tier)))
var potMFalta = (xpFaltante / (10000 * tier)).toFixed(1)
var potGFalta = (xpFaltante / (100000 * tier)).toFixed(2)
//Usado pra verificar se precisa-se colocar o excedente de poções ou não
potPFalta = potPFalta.toString()
console.log(potPFalta.lastIndexOf('0'))
console.log(potPFalta.lastIndexOf('0') + 1)
console.log(potPFalta.length)
//Se tiver zero e esse zero tiver no final ele informa que n haverá excedente de poção pequena
if((potPFalta.indexOf('0') != -1) && potPFalta.lastIndexOf('0') + 1 == potPFalta.length){
var potPFaltaExcedeu = 0
potPFalta = parseInt(potPFalta)
potMFalta = parseFloat(potMFalta)
potMFalta = Math.ceil(potMFalta)
var notPotPFaltaExcedeu = true
}else{
potPFalta = parseInt(potPFalta)
potMFalta = Math.floor(potMFalta)
var potPFaltaExcedeu = potPFalta - potMFalta * 10
}
potMFalta = potMFalta.toString()
if((potMFalta.indexOf('0') != -1) && potMFalta.lastIndexOf('0') + 1 == potMFalta.length){
potMFaltaExcedeu = 0
potMFalta = parseFloat(potMFalta)
potMFalta = Math.ceil(potMFalta)
potGFalta = Math.floor(potGFalta)
var notPotMFaltaExcedeu = true
}
else{
potGFalta = Math.floor(potGFalta)
var potMFaltaExcedeu = potMFalta - potGFalta * 10
}
if(potPFalta > 1){
var potPFaltaStr = 'poções pequenas'
}else{
var potPFaltaStr = 'poção pequena'
}
if(potMFalta > 1){
var potMFaltaStr = 'poções médias'
}else{
var potMFaltaStr = 'poção média'
}
if(potGFalta > 1){
var potGFaltaStr = 'poções grandes'
}else{
var potGFaltaStr = 'poção grande'
}
//Pega com base nas poções que ele gastou quanta xp ele ganhou
var xpGanhou = (xp + ((potP * 1000 * tier) + (potM * 10000 * tier) + (potG * 100000 * tier)))
//vai ocorrer um laço 70 vezes para ver em qual lvl o xpGanhou se encaixa
for(var c = 0; c <= levelMaximo; c++){
/*Formula pra saber o level que chegou com base na xp que ganhou, se a xp que ganhou for maior que a xp de um certo level esse certo level "c" é o level que ele conseguio */
if(xpGanhou >= (50 * ((c - 1) ** 3) - 150 * ((c - 1) ** 2) + 400 * (c - 1)) / 3){
var levelConseguiu = c
xpGanhou = xpGanhou
/*Agora se a xp ganhou for maior ou igual a xp do level que ele conseguio vai criar um variavel xptonext*/
}
}
//xptonext é o valor da xp que falta para o príximo level chego nesse resultado fazendo a seguinte formula:
var xptonext = (50 * (levelConseguiu) ** 2 - 150 * (levelConseguiu) + 200) - (xpGanhou - (50 * ((levelConseguiu - 1) ** 3) - 150 * ((levelConseguiu - 1) ** 2) + 400 * (levelConseguiu - 1)) / 3)
//falttonext é a xp que falta do level que ele chegou para o próximo (valor como se fosse 100% de xp para upar)
var falttonext = (50 * levelConseguiu ** 2 - 150 * levelConseguiu + 200)
for(var n = 1; n <= 100; n++){
//Ele testa o xp de cada porcentagem ou seja quando n for 1 ele pega o xp de 1% do levelConseguiu e coloca na variavel resultado, caso resultado for menor ou igual ao xptonext, ou seja, quando ele chegar na porcentagem que mostra a porcentagem que falta para o próximo level a variavel porcento será n
var resultado = (50 * levelConseguiu ** 2 - 150 * levelConseguiu + 200) * n / 100
if(xptonext >= resultado){
var porcento = n
resultado = (50 * levelConseguiu ** 2 - 150 * levelConseguiu + 200) * n / 100
//Caso o xptonext seja muito baixo ele vai colocar porcento como 1%
}else if(((50 * levelConseguiu ** 2 - 150 * levelConseguiu + 200) * 1 / 100) >= xptonext){
resultado = (50 * levelConseguiu ** 2 - 150 * levelConseguiu + 200) * 1 / 100
var porcento = 1
}
}
if(porcentoFalta && levelAtual != undefined && lvlDeseja != undefined && potP != undefined && potM != undefined && potG != undefined){
if(verificaLevelDeseja($('input[name=lvlDeseja]').val()) == undefined && verificaPorcentoFalta($('input[name=porcentoFalta]').val()) == undefined && verificaLevel($('input[name=levelAtual]').val()) == undefined){
box.fadeOut()
$(box).empty();
$(box).fadeIn();
if(levelConseguiu == levelMaximo){
box.append('<h2 class="h2-max">Você chegou ao level '+ levelMaximo +'!'+'</h2>')
}
else if(levelConseguiu == levelAtual || levelConseguiu < lvlDeseja){
if(levelConseguiu == levelAtual){
if(potMFalta >= 1 || potGFalta >= 1){
box.append('Você não upou nenhum level e faltam '+porcento+'% para o próximo level, porém se quiser chegar ao '+lvlDeseja+' você precisa utilizar algumas poções, você pode escolher entre:')
}else{
box.append('Você não upou nenhum level e faltam '+porcento+'% para o próximo level, porém se quiser chegar ao '+lvlDeseja+' você precisa utilizar algumas poções pequenas:')
}
}
else if(levelConseguiu < lvlDeseja){
if(potMFalta >= 1 || potGFalta >= 1){
box.append('<h2>Você Upou!</h2>'+'Você chegou ao level '+levelConseguiu+' e faltam '+porcento+'% para o próximo level, porém se quiser chegar ao '+lvlDeseja+' você precisa utilizar algumas poções, você pode escolher entre:')
}else{
box.append('<h2>Você Upou!</h2>'+'Você chegou ao level '+levelConseguiu+' e faltam '+porcento+'% para o próximo level, porém se quiser chegar ao '+lvlDeseja+' você precisa utilizar algumas poções pequenas:')
}
}
box.append("<p style=\"text-align: center\">(Os valores abaixo são aproximados)</p>")
if(potMFalta >= 1 & potGFalta >= 1){
if(notPotMFaltaExcedeu == true && notPotPFaltaExcedeu == true){
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFalta+' '+potMFaltaStr+'</p></div>'+'<div class="pocao-grande">'+'<p><img src="imagens/potG-C.png" alt="Poção grande" title="Poção Grande">'+potGFalta+' '+potGFaltaStr+'</p></div></div>')
}
else if(notPotMFaltaExcedeu == true){
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFalta+' '+potMFaltaStr+' e'+'<img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFaltaExcedeu+' poções pequenas'+'</p></div>'+'<div class="pocao-grande">'+'<p><img src="imagens/potG-C.png" alt="Poção grande" title="Poção Grande">'+potGFalta+' '+potGFaltaStr+' e'+'<img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFaltaExcedeu+' poções pequenas'+'</p></div></div>')
}else if(notPotPFaltaExcedeu == true){
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFalta+' '+potMFaltaStr+'</p></div>'+'<div class="pocao-grande">'+'<p><img src="imagens/potG-C.png" alt="Poção grande" title="Poção Grande">'+potGFalta+' '+potGFaltaStr+' e'+'<img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFaltaExcedeu+' '+potMFaltaStr+'</p></div></div>')
}else{
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+ potMFalta+' '+potMFaltaStr+' e'+'<img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFaltaExcedeu+' poções pequenas'+'</p></div>'+'<div class="pocao-grande">'+'<p><img src="imagens/potG-C.png" alt="Poção grande" title="Poção Grande">'+potGFalta+' '+potGFaltaStr+'<img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFaltaExcedeu+' '+potMFaltaStr+' e'+'<img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFaltaExcedeu+' poções pequenas'+'</p></div></div>')
}
}
else if(potMFalta >= 1){
if(notPotPFaltaExcedeu == true){
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFalta+' '+potMFaltaStr+'</p></div></div>')
}else{
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' poções pequenas'+'</p></div>'+'<div class="pocao-media">'+'<p><img src="imagens/potM-C.png" alt="Poção média" title="Poção Média">'+potMFalta+' '+potMFaltaStr+' e'+'<img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFaltaExcedeu+' poções pequenas'+'</p></div></div>')
}
}else{
box.append('<div><div class="pocao-pequena">'+'<p><img src="imagens/potP-C.png" alt="Poção pequena" title="Poção Pequena">'+potPFalta+' '+potPFaltaStr+'</p></div></div>')
}
}
else if(levelConseguiu >= lvlDeseja){
box.css('text-align','center')
box.append('<h2>Você Upou!</h2>'+'Você chegou ao level '+levelConseguiu+' e faltam '+porcento+'% para o próximo level!')
}
}
}
})
})