Mudanças entre as edições de "MediaWiki:Common.js"
Ir para navegação
Ir para pesquisar
Etiqueta: Revertido |
Etiqueta: Revertido |
||
| Linha 1: | Linha 1: | ||
mw. | $(function () { | ||
var myElement = document.getElementById('mw-calculator'); | |||
myElement.innerHTML = 'any HTML'; | |||
}());{ | |||
const levelMaximo = 100 | |||
//Dark mode | |||
var circulo = $('.toggle-dark-mode .circle-toggle') | |||
var barra = $('.toggle-dark-mode') | |||
$(barra).click(function(){ | |||
if($(barra).hasClass("darkmode-ativo")){ | |||
$(barra).removeClass('darkmode-ativo') | |||
$('html').css('background-color','rgba(226, 225, 225, 0.7)') | |||
circulo.animate({'left':'0'}) | |||
$('.tier').css('color','black') | |||
$('.radios label.active').css('border-color','rgb(94, 93, 93)') | |||
$('.informacoes-box').css('background-color','rgb(241, 241, 241)').css('border','1px solid black') | |||
$('.informacoes-box .getinf').css('color','black') | |||
$('.informacoes-box input[type=number]').css('border-color','rgb(126, 126, 126)') | |||
$('.container > h2').css('color','#3394CE') | |||
$('.box-up h2').css('color','#3394CE') | |||
$('.box-up:not(h2)').css('color','black') | |||
} | |||
else{ | |||
$(barra).addClass('darkmode-ativo') | |||
$('html').css('background-color','#18191A') | |||
circulo.animate({'left':'40px'}) | |||
$('.tier').css('color','white') | |||
$('.radios label.active').css('border-color','white') | |||
$('.informacoes-box').css('background-color','#242526').css('border','none') | |||
$('.informacoes-box .getinf').css('color','white') | |||
$('.informacoes-box input[type=number]').css('border-color','#18191A') | |||
$('.container > h2').css('color','#4194FF') | |||
$('.box-up h2').css('color','#4194FF') | |||
$('.box-up:not(h2)').css('color','white') | |||
$('.w100 input[type=submit]').css('background-color','#4194FF') | |||
} | |||
}) | |||
//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!') | |||
} | |||
} | |||
} | |||
}) | |||
}) | |||
Edição das 00h50min de 19 de agosto de 2021
$(function () {
var myElement = document.getElementById('mw-calculator');
myElement.innerHTML = 'any HTML';
}());{
const levelMaximo = 100
//Dark mode
var circulo = $('.toggle-dark-mode .circle-toggle')
var barra = $('.toggle-dark-mode')
$(barra).click(function(){
if($(barra).hasClass("darkmode-ativo")){
$(barra).removeClass('darkmode-ativo')
$('html').css('background-color','rgba(226, 225, 225, 0.7)')
circulo.animate({'left':'0'})
$('.tier').css('color','black')
$('.radios label.active').css('border-color','rgb(94, 93, 93)')
$('.informacoes-box').css('background-color','rgb(241, 241, 241)').css('border','1px solid black')
$('.informacoes-box .getinf').css('color','black')
$('.informacoes-box input[type=number]').css('border-color','rgb(126, 126, 126)')
$('.container > h2').css('color','#3394CE')
$('.box-up h2').css('color','#3394CE')
$('.box-up:not(h2)').css('color','black')
}
else{
$(barra).addClass('darkmode-ativo')
$('html').css('background-color','#18191A')
circulo.animate({'left':'40px'})
$('.tier').css('color','white')
$('.radios label.active').css('border-color','white')
$('.informacoes-box').css('background-color','#242526').css('border','none')
$('.informacoes-box .getinf').css('color','white')
$('.informacoes-box input[type=number]').css('border-color','#18191A')
$('.container > h2').css('color','#4194FF')
$('.box-up h2').css('color','#4194FF')
$('.box-up:not(h2)').css('color','white')
$('.w100 input[type=submit]').css('background-color','#4194FF')
}
})
//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!')
}
}
}
})
})