Widget:BoostCalcForm: mudanças entre as edições

sem sumário de edição
Sem resumo de edição
Sem resumo de edição
 
(27 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
<div>
<style>
<h5 class="text-center">Resultado</h5>
.mw-body-content {
<h6 data-target="boostCalc-result"></h6>
    display: flex;
</div>
}
 
.mw-parser-output {
display: inline-block;
    padding: .5rem 2rem;
    margin: 0 auto;
    border: 30px solid transparent;
    border-image: url(https://wiki.pokexgames.com/images/3/37/Calculadora-de-Boost.png) 38;
}
</style>
 


<form class="boostCalc__form" data-target="calcBoostForm">
<form class="boostCalc__form" data-target="calcBoostForm">
Linha 28: Linha 38:
         <div class="checkbox-group">
         <div class="checkbox-group">
             <input placeholder=" " type="checkbox" name="specialBoost" id="specialBoostCheckbox">
             <input placeholder=" " type="checkbox" name="specialBoost" id="specialBoostCheckbox">
             <label for="specialBoostCheckbox">Você irá usar metal, crystal ou ancient stone ?</label>
             <label for="specialBoostCheckbox">Marque se você irá usar metal, crystal ou ancient stone!</label>
         </div>
         </div>


Linha 39: Linha 49:
              
              
             <div>
             <div>
                 <img src="http://51.161.108.38/images/a/a0/Seta-Calculadora.png" alt="Seta">
                 <img src="https://wiki.pokexgames.com/images/a/a0/Seta-Calculadora.png" alt="Seta">
             </div>
             </div>


Linha 50: Linha 60:


         <div class="input-group">
         <div class="input-group">
             <input placeholder=" " name="stonePrice" id="stonePrice" class="boostCalc__input" type="number">
             <input placeholder=" " name="stonePrice" id="stonePrice" step="0.01" class="boostCalc__input" type="number">
             <label class="boostCalc__label" for="stonePrice">Digite o preço da stone (Ex: 8)</label>
             <label class="boostCalc__label" for="stonePrice">Digite o preço da stone (Ex: 8)</label>
         </div>
         </div>


         <div class="input-group">
         <div class="input-group">
             <input placeholder=" " name="stonePrice" id="stonePrice" class="boostCalc__input" type="number">
             <input placeholder=" " name="boostStonePrice" id="boostStonePrice" step="0.01" class="boostCalc__input" type="number">
             <label class="boostCalc__label" for="stonePrice">Digite o preço da Boost stone (Ex: 180)</label>
             <label class="boostCalc__label" for="boostStonePrice">Digite o preço da Boost stone (Ex: 180)</label>
         </div>
         </div>


<div class="d-flex justify-center">
<div class="d-flex justify-center align-center flex-column">
<button type="submit" class="hover-minimize" style="background:none;border:none;margin-top:1.5rem;cursor:pointer;">
<button type="submit" class="hover-minimize" style="background:none;border:none;margin-top:1.5rem;cursor:pointer;">
<img style="border-radius:12px;" src="http://51.161.108.38/images/d/d3/Banner_calculadora.png" alt="Imagem botão calcular boost" />
<img style="border-radius:12px;" src="https://wiki.pokexgames.com/images/d/d3/Banner_calculadora.png" alt="Imagem botão calcular boost" />
</button>
</button>
<a href="javascript:void(0);" data-target="clearForm" class="mt-1"> Limpar campos </a>
</div>
</div>
     </form>
     </form>
<div data-target="boostCalc-resultContainer" class="boostCalc__resultContainer d-none mt-2">
<h5 class="boostCalc__resultTitle">Resultado</h5>
<h6 data-target="boostCalc-result" class="boostCalc__result"></h6>
</div>


<script>
<script>
       // Função para formatar numeros para o padrão decimal
       // Função para formatar numeros para o padrão decimal
         const formatNumber = (number) => Number(number).toLocaleString("pt-BR", { style: "decimal" });
         const formatNumber = (number) => Number(number).toLocaleString("pt-BR", { style: "decimal" });
       
        document.querySelector("[data-target='clearForm']").addEventListener("click", function() {
            document.getElementById("boostType").value = "2";
            document.getElementById("specialBoostCheckbox").checked= false;
            document.getElementById("startBoost").value = "0";
            document.getElementById("endBoost").value = "50";
            document.getElementById("stonePrice").value = "";
            document.getElementById("boostStonePrice").value = "";
            document.querySelector("[data-target='boostCalc-resultContainer']").classList.add("d-none");
        });


         // Função que retorna o calculo de gasto para boostar um pokemon (Forma normal)  
         // Função que retorna o calculo de gasto para boostar um pokemon (Forma normal)  
        function calcNormalBoost(initBoost, endBoost, boostType, stonePrice, boostStonePrice) {
function calcNormalBoost(initBoost, endBoost, boostType, stonePrice, boostStonePrice) {
            const responseBoost = [];
    const responseBoost = [];
            let usedNormalStones = 0;
    let usedNormalStones = 0;
            let usedBoostStones = 0;
    let usedBoostStones = 0;
            let stonesForBoost = 0;
    let stonesForBoost = 0;


            for (i = 1; i <= initBoost; i++) {
    for (i = 0; i <= initBoost; i++) {
                if (i % boostType === 0) stonesForBoost++;
        if (i % boostType === 0) stonesForBoost++;
            }
    }


            for (i = initBoost + 1; i <= endBoost; i++) {
    for (i = initBoost + 1; i <= endBoost; i++) {  
                if (i % boostType != 0 && i != initBoost) stonesForBoost++;
        if ((stonesForBoost * stonePrice) < boostStonePrice) {
            usedNormalStones += stonesForBoost;
        } else {
            usedBoostStones++;
        }


                if ((stonesForBoost * stonePrice) < boostStonePrice) {
        if (i % boostType == 0 && i != initBoost) stonesForBoost++;
                    usedNormalStones += stonesForBoost;
                } else {
                    usedBoostStones++;
                }


                responseBoost.push(
        responseBoost.push(
                    {
            {
                        price: formatNumber((usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice)),
                price: (usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice),
                        normal_stones: usedNormalStones,
                normal_stones: usedNormalStones,
                        boost_stones: usedBoostStones,
                boost_stones: usedBoostStones,
                        boost: i
                boost: i
                    }
                );
             }
             }
        );
    }


            return responseBoost;
    return responseBoost;
        }
}
 
         // Função que retorna o calculo de gasto para boostar um pokemon (Exceção)  
         // Função que retorna o calculo de gasto para boostar um pokemon (Exceção)  
         function calcExceptionBoost(initBoost, endBoost, boostType, stonePrice, boostStonePrice) {
         function calcExceptionBoost(initBoost, endBoost, boostType, stonePrice, boostStonePrice) {
             const responseBoost = [];
             const responseBoost = [];
            let usedStones = 0;
             let usedNormalStones = 0;
             let usedNormalStones = 0;
             let usedBoostStones = 0;
             let usedBoostStones = 0;
Linha 138: Linha 162:
                     responseBoost.push(
                     responseBoost.push(
                         {
                         {
                             price: formatNumber((usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice)),
                             price: (usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice),
                             normal_stones: usedNormalStones,
                             normal_stones: usedNormalStones,
                             boost_stones: usedBoostStones,
                             boost_stones: usedBoostStones,
Linha 158: Linha 182:
                 responseBoost.push(
                 responseBoost.push(
                     {
                     {
                         price: formatNumber((usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice)),
                         price: (usedNormalStones * stonePrice) + (usedBoostStones * boostStonePrice),
                         normal_stones: usedNormalStones,
                         normal_stones: usedNormalStones,
                         boost_stones: usedBoostStones,
                         boost_stones: usedBoostStones,
Linha 177: Linha 201:
                 let result;
                 let result;
                 const formData = new FormData(form);
                 const formData = new FormData(form);
                 const boostType = formData.get("boostType");
                 const boostType = Number(formData.get("boostType"));
                 const specialBoost = formData.get("specialBoost");
                 const specialBoost = formData.get("specialBoost");
                 const stonePrice = formData.get("stonePrice") ? Number(formData.get("stonePrice")) > 1000 ? Number(formData.get("stonePrice")) / 1000 : Number(formData.get("stonePrice")) : 0;
                 const stonePrice = formData.get("stonePrice") ? Number(formData.get("stonePrice")) > 1000 ? Number(formData.get("stonePrice")) / 1000 : Number(formData.get("stonePrice")) : 0;
Linha 194: Linha 218:
                       Pedras comuns: <span class=""> ${result[result.length - 1].normal_stones} </span>
                       Pedras comuns: <span class=""> ${result[result.length - 1].normal_stones} </span>
                       Pedras de boost: <span class=""> ${result[result.length - 1].boost_stones} </span>
                       Pedras de boost: <span class=""> ${result[result.length - 1].boost_stones} </span>
                       Custo total: <span class=""> ${result[result.length - 1].price} K </span>
                       Custo total: <span class=""> ${result[result.length - 1].price >= 1000 ? `${formatNumber(result[result.length - 1].price / 1000)} KK` : `${formatNumber(result[result.length - 1].price)} K`}</span>
                     `;
                     `;
                 } else {
                 } else {
Linha 201: Linha 225:
                       Pedras comuns: <span class=""> ${result[result.length - 1].normal_stones} </span>
                       Pedras comuns: <span class=""> ${result[result.length - 1].normal_stones} </span>
                       Pedras de boost: <span class=""> ${result[result.length - 1].boost_stones} </span>
                       Pedras de boost: <span class=""> ${result[result.length - 1].boost_stones} </span>
                       Custo total: <span class=""> ${result[result.length - 1].price} K </span>
                       Custo total: <span class=""> ${result[result.length - 1].price >= 1000 ? `${formatNumber(result[result.length - 1].price / 1000)} KK` : `${formatNumber(result[result.length - 1].price / 1000)} K`}</span>
                     `;
                     `;
                 }
                 }
              // console.log("Relação de boost a boost:");
              // console.log(result);
              document.querySelector("[data-target='boostCalc-resultContainer']").classList.remove("d-none");
             });
             });
         });         
         });         
</script>
</script>