ratio no market rollercoin

Usar no F12
 avatar
RKFox
javascript
a month ago
2.0 kB
39
Indexable
// Função para processar e calcular o ratio
function processMarketplaceItems() {
  // Solicita os valores do usuário
  const userPower = parseFloat(prompt("Informe o seu poder atual (em TH/s):", "0")) || 0;
  const userBonus = parseFloat(prompt("Informe o seu bônus atual (%):", "0")) || 0;

  // Converte userPower para unidade base (TH/s)
  const userPowerInThs = userPower * 1000; // Assumimos que o usuário informa em TH/s

  // Seleciona todos os elementos com a classe 'marketplace-buy-item-card'
  const items = document.querySelectorAll('.marketplace-buy-item-card');

  const ratios = Array.from(items).map(item => {
    // Obtém os valores dos elementos internos
    const powerText = item.querySelector('.item-addition-power')?.textContent.trim();
    const bonusText = item.querySelector('.item-addition-bonus')?.textContent.trim();
    const priceText = item.querySelector('.item-price')?.textContent.trim();
    const nameText = item.querySelector('.item-title')?.textContent.trim();

    if (!powerText || !bonusText || !priceText || !nameText) return null;

    // Processa o valor do poder
    let power = parseFloat(powerText.replace(/[^\d.]/g, ''));
    if (powerText.includes('Th/s')) power *= 1000;
    if (powerText.includes('Ph/s')) power *= 1000000;

    // Processa o valor do bônus
    const bonus = parseFloat(bonusText.replace('%', '')) / 100;

    // Processa o preço
    const price = parseFloat(priceText.replace('RLT', '').trim());

    // Calcula o ratio usando os valores do usuário
    const ratio = (price / (((power + userPowerInThs) * (1 + bonus + (userBonus / 100))) - (userPowerInThs * (1 + (userBonus/100)))))*1000000;

    return { name: nameText, ratio };
  }).filter(item => item !== null);

  // Ordena os itens pelo ratio
  ratios.sort((a, b) => a.ratio - b.ratio);

  // Exibe os resultados ordenados
  console.table(ratios.map(({ name, ratio }) => ({
    Nome: name,
    Ratio: ratio.toFixed(8),
  })));
}

// Executa a função
processMarketplaceItems();
Leave a Comment