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!') } } } }) })