Noxus Idle
Menu

Combate e dano — engenharia reversa do LoL Idle

Fonte: o cliente do jogo baixado em 2026-10-10 (src/motor.js é quem faz as contas de combate do Summoner’s Rift; src/arena.js, o combate de Runeterra, reaproveita as mesmas funções via M.interno — arena.js:14). Linhas citadas como motor.js:1055 golpear. Tudo que não é fórmula do jogo está marcado como estimativa.

Entregáveis desta página:

Arquivo O que é
site/calc.js calculadora (módulo ES puro, sem DOM)
data/combate.json dados do jogo (campeões, habilidades, itens, monstros, constantes), gerado do código real
scripts/combate-gera-dados.mjs gera o JSON importando src/motor.js (as fórmulas das habilidades viram coeficientes, com teste de linearidade)
scripts/combate-verifica.mjs compara a calculadora com as funções REAIS do jogo: 52 casos, 52 OK, 0 FAIL
scripts/combate-exemplos.mjs gera as tabelas da seção Como usar a calculadora

1. O caminho de um golpe (resumo)

atributos(estado)                  → AD, vida, armadura, crítico, penetração… (motor.js:430)
efetivo(estado, d, a)              → AD do momento: + Força Noxiana, × Vontade do General (motor.js:1185)
golpeBasico / habilidade           → "bruto" (AD, ou base + % AD da habilidade, + bônus de itens) (motor.js:1512)
golpear(…, bruto, fonte)           → mitigação × multiplicadores × crítico × fator de nível (motor.js:1055)
tickInimigos                       → Hemorragia (dano por segundo, à parte) (motor.js:1482)

Fórmula completa de golpear (motor.js:1055–1094):

armadura efetiva = armaduraMonstro × (1 − reduçãoArmadura) × (1 − penArmadura)          (físico)
                 = armaduraMonstro × 0,6 × (1 − penMágica)                              (mágico, Poder de Habilidade)
dano = bruto × 100 / (100 + armadura efetiva)
     × (1 + Grito + 1%·Disciplina + 25% buff do Barão)
     × papel.dano do campeão
     × danoCrítico (se crítico)
     × 1,15 (chefe + Lembranças do Lorde Dominik)
     × (1 + Domínio de Noxus no alvo)
     × (1 + dano de habilidade do Foco)  (Katarina)
     × fatorDanoJogador (monstro muito acima do seu nível)

2. Atributos do personagem

2.1 Crescimento por nível — motor.js:376 crescimento, motor.js:430 atributos

g(nível) = (n−1)·(0,7025 + 0,0175·(n−1)), n = min(nível, 18)   + max(0, nível − 18)
AD base   = adBase + adNivel·g          (Darius: 64 + 3,9·g — KITS, motor.js:758)
Vida base = hp + hpperlevel·g           (Darius: 652 + 114·g — dados.js, Data Dragon)
Armadura  = armor + armorperlevel·g     (Darius: 37 + 5,2·g)
RM        = spellblock + 3,5·g          (o 3,5 é fixo do motor, não do Data Dragon)
Mana      = mp + mpperlevel·g + 8·Foco + mana de itens
Vel. atq. = min(2,5; attackspeed × (1 + attackspeedperlevel/100·g + vel. bônus))
Regen vida/s = (hpregen + hpregenperlevel·g)/5 + 0,1·Vitalidade + regen de itens
Regen mana/s = ((mpregen + mpregenperlevel·g)/5)·3 + 0,06·Foco

Até o 18 é a curva do LoL (g(18) = 17); depois cresce +1 por nível (g(50) = 49).

Darius sem atributos e sem itens (gerado com a calculadora):

Nível g AD Vida Armadura RM Mana Vel. ataque Regen vida/s Regen mana/s Força Noxiana (+AD)
1 0 64 652 37 32 263 0,625 2,0 3,96 30
10 7,74 94,2 1.534 77,2 59,1 712 0,673 3,47 5,59 135,9
18 17 130,3 2.590 125,4 91,5 1.249 0,731 5,23 7,53 230
20 19 138,1 2.818 135,8 98,5 1.365 0,744 5,61 7,95 238
30 29 177,1 3.958 187,8 133,5 1.945 0,806 7,51 10,05 278
40 39 216,1 5.098 239,8 168,5 2.525 0,869 9,41 12,15 318
45 44 235,6 5.668 265,8 186 2.815 0,900 10,36 13,20 338
50 49 255,1 6.238 291,8 203,5 3.105 0,931 11,31 14,25 358

Base dos 6 campeões (KITS, motor.js:756; stats do Data Dragon em dados*.js):

Campeão AD base + /g Vida + /g Armadura + /g RM Mana + /g Vel. atq. (+%/g) Papel: dano causado / recebido
Darius 64 + 3,9 652 + 114 37 + 5,2 32 263 + 58 0,625 (1%) 1,00 / 0,80
Ezreal 66 + 4,2 600 + 102 24 + 4,2 33 375 + 70 0,625 (2,5%) 1,05 / 1,00
Lux 54 + 3,3 580 + 99 21 + 5,2 30 440 + 23,5 0,669 (3%) 0,97 / 1,10
Yasuo 60 + 3,9 590 + 110 32 + 4,6 32 Fluxo 100 0,697 (3,5%) 1,00 / 1,00
Katarina 58 + 3,4 672 + 108 32 + 4,7 32 sem mana 0,658 (2,74%) 1,05 / 0,95
Taric 55 + 3,3 645 + 99 40 + 4,3 28 300 + 60 0,625 (2%) 0,95 / 0,72

2.2 Pontos de atributo — motor.js:383 ATRIBUTOS, motor.js:441, motor.js:421 PONTOS_POR_NIVEL

3 pontos por nível (ganharXp, motor.js:2413): 147 pontos no nível 50. Sem teto por atributo (só os tetos de efeito abaixo).

Atributo Por ponto Teto Observação
Força +1,2 AD (campeão de magia: +2 AP) — entra antes dos % de item/conquista, então é multiplicado por eles
Vitalidade +20 vida, +0,1 regen/s — antes do % de vida de item (Máscara Abissal etc.) e da conquista
Resistência +1,5 armadura, +1 RM — antes dos % de armadura/RM
Agilidade +0,8% vel. ataque (somado ao bônus de itens), +0,25% esquiva esquiva 25% a esquiva anula o golpe inteiro do monstro (inimigoAtaca, motor.js:1569)
Foco +8 mana, +0,06 mana/s, −0,4% recarga recarga 30% (40% com itens) Katarina: +0,2% dano de habilidade (FOCO_DANO_HAB); Yasuo: +1% Fluxo

2.3 Itens: refino e qualidade — motor.js:54 BONUS_REFINO, motor.js:154 QUALIDADES, motor.js:201 infoItem

atributo do item = atributo base × (1 + 0,12·refino) × mult(qualidade)

Vale para ad, ap, mana, vida, armadura, rm, va, rv, critico, regen, cdr. Não vale para os % (adPct, apPct, vidaPct, armPct, rmPct, esquiva, penMag) nem para os efeitos especiais (Cutelo, Trindade, Hidra…): infoItem só multiplica a lista fixa; o resto vem cru do item (atributos, motor.js:447).

Multiplicador total (refino × qualidade):

Refino C (0,9) B (1,0) A (1,15) S (1,35) SS (1,7)
+0 0,900 1,000 1,150 1,350 1,700
+1 1,008 1,120 1,288 1,512 1,904
+2 1,116 1,240 1,426 1,674 2,108
+3 1,224 1,360 1,564 1,836 2,312
+4 1,332 1,480 1,702 1,998 2,516
+5 1,440 1,600 1,840 2,160 2,720

Item sem marca de qualidade = B (qualidadeDe, motor.js:144). Equipamento: 4 itens + 1 bota, cada lendário uma vez (cabeNoEquip, motor.js:2508; ESPACOS, motor.js:27).

2.4 Ordem em que atributos() monta os números (motor.js:430–482)

  1. Base do nível (2.1) + pontos de atributo (2.2).
  2. Soma de todos os itens (já com refino × qualidade).
  3. vida × (1 + Σ vidaPct).
  4. Armadura Sangrenta do Suserano (2501): AD += 2% × (vida − vida base) — usa a vida depois do vidaPct e antes da conquista.
  5. Gume do Infinito (3031): dano crítico 1,75 → 2,15.
  6. Mana máxima; Cajado do Arcanjo (3003): AP += 3% da mana; Rabadon (3089): AP × 1,35.
  7. AD × (1 + Σ adPct), AP × (1 + Σ apPct), armadura × (1 + Σ armPct + Bastião do Taric), RM × (1 + Σ rmPct).
  8. Conquistas (bonusConquistas, motor.js:3089) e mascote (bonusMascote, motor.js:3124): AD e AP × (1 + Σ ad), vida × (1 + Σ vida), armadura × (1 + conquista + Krugzinho), RM × (1 + conquista + Krugzinho). Conquistas com bônus: Centurião +2% AD, Carniceiro +3% AD, Mão de Noxus +3% AD +3% vida, Carrasco do Barão +3% AD, Veterano +2% vida, Caçador de Arautos +2% vida, Imortal +3% armadura, Discípulo de Ornn +2% armadura, Matador de Dragões +3% RM (CONQUISTAS, motor.js:3070). Krugzinho: +1% armadura e RM por nível (até 20).
  9. bonusAd = AD final − AD base (é este o “AD bônus” da R e da Hemorragia).

3. Dano do ataque básico — motor.js:1512 golpeBasico

bruto = AD efetivo
      + Banho de Sangue (F): min(1,5·AD, %vidaPerdida × vida que falta ao alvo)
      → W pronta: bruto = mult(W) × AD   (substitui tudo acima)
      + Lâmina Encantada: 2 × AD base (Força da Trindade 3078) ou 1 × AD base (Fulgor 3057), no 1º básico após QUALQUER habilidade
      + 40 (Couraça do Defunto 3742, 1× a cada 4 s)
      + 5% da vida ATUAL do alvo (Espada do Rei Destruído 3153)
crítico = Céu Dividido (6610) no 1º golpe em cada alvo  OU  sorteio < chance de crítico
golpear(bruto, fonte = 'ataque' ou 'W', crítico)

AD efetivo (efetivo, motor.js:1185):

AD efetivo = (AD + Força Noxiana) × (1 + Vontade do General)
Força Noxiana (bonusPoder, motor.js:1191) = 30 + 200·(min(nível,18) − 1)/17 + 4·max(0, nível − 18)
Vontade do General (D, rank r) = vontade[r] × (1 − vida atual/vida máx.)     vontade = 15% … 42%

Efeitos depois do golpe: Cutelo Negro (3071) tira 6% da armadura do alvo por golpe, até 30%; Fago (3044) dá +8% de velocidade de ataque por 2 s; Dançarina Fantasma (3046) +6% por acúmulo (até 5, 3 s). Em área (só outros alvos): Runaan (3085) 55% do bruto em 2 outros; Hidra Raivosa (3074) 40% do AD nos outros; Quebrapassos (6631) 80% do AD em todos ao alcance a cada 5 s; Hidra Titânica (3748) 1,5% da vida máxima do Darius em todos ao alcance (inclusive o alvo).

AD × AP, físico × mágico

  • Ataques básicos, efeitos de item e mascote são físicos para todos (golpear, motor.js:1062).
  • Lux, Katarina e Taric (magia: true): toda habilidade vira mágica com Poder de Habilidade.
  • Monstros não têm RM própria: RM do monstro = 60% da armadura (RM_MONSTRO, motor.js:1046).
  • Dano mágico sem Poder (magico && !poder) ignora toda defesa.

Mitigação — motor.js:1034 mitigar

dano × 100 / (100 + max(0, armadura)) — a mesma conta para armadura e RM, para quem bate e para quem apanha.

Defesa 25 50 100 150 200 300 400
Redução 20% 33% 50% 60% 67% 75% 80%

Penetração — atributos (motor.js:477) e golpear (motor.js:1063)

Não existe letalidade (penetração fixa). Só porcentagens, multiplicativas:

penArmadura = 1 − (1 − penE) × (0,7 se Lembranças do Lorde Dominik 3036)
penE = Apreender (E do Darius, PASSIVA: vale com a E fora da barra) = 20%, 23%, … 45% (rank 1–10)
armadura efetiva = armadura × (1 − Cutelo, até 30%) × (1 − penArmadura)
penMágica = min(60%, 40% Cajado do Vazio 3135 + penMag das botas de mago)

Exemplo: E rank 6 (35%) + Dominik → 54,5% de penetração; com Cutelo cheio, o monstro fica com 0,7 × 0,455 = 32% da armadura.

Crítico — atributos (motor.js:479) e golpeBasico (motor.js:1539)

  • Chance = soma do critico dos itens (com refino/qualidade), teto 100%. Não há crítico por atributo.
  • Dano crítico = 175%; Gume do Infinito +40% → 215%.
  • Só ataques básicos (inclusive o golpe da W) critam; habilidades não (exceto as do Yasuo que sorteiam).
  • Yasuo: chance × 2, mais 10% + 0,18%/nível (até 18%), e o crítico causa 80% do normal (HAB_YASUO.P, motor.js:635).
  • Céu Dividido: o 1º ataque em cada inimigo é crítico garantido e cura 6% da vida que falta.

Velocidade de ataque e teto — atributos (motor.js:472), avancarAtaque (motor.js:1502), jogo.js:27 DT

vel = min(2,5; base × (1 + %porNível·g + Σ va de itens + 0,8%·Agilidade))
intervalo = 1/vel, descontado por tick de 0,05 s × (1 + Fago 8% + Dançarina 6%×acúmulos + buffs de habilidade)

Achado 1 — o tick quantiza a velocidade. O motor roda em passos fixos de DT = 0,05 s (jogo.js:27) e só bate no tick em que o relógio fica ≤ 0. O intervalo real é ⌈(1/vel)/0,05⌉ × 0,05:

Vel. no painel 0,625 0,8 1,0 1,1 1,2 1,3 1,5 1,75 2,0 2,2 2,4 2,5
Ticks 32 25 20 19 17 16 14 12 11 10 9 9
Ataques/s reais 0,625 0,800 1,000 1,053 1,176 1,250 1,429 1,667 1,818 2,000 2,222 2,222

Ou seja, o teto prático é 2,22 ataques/s, e há “degraus”: 1,25 a 1,33 dão o mesmo resultado. Achado 2: os bônus do Fago, da Dançarina e de habilidades (Respiração do Vento, Sede de Sangue, Bravata…) entram no desconto do relógio, depois do teto de 2,5 — eles passam do teto.


4. Hemorragia e Força Noxiana (passiva do Darius) — tickInimigos (motor.js:1482), aplicarHemorragia (motor.js:1134)

  • Todo golpear com acumula (básico, W, Q, A, T, M, N; não itens nem mascote) dá +1 acúmulo (máx. 5) e renova 5 s.
  • Dano por acúmulo por segundo: (13 + 0,3 × AD bônus efetivo + 4 × nível) / 5, mitigado pela armadura × (1 − penArmadura).
  • Achado 3: a Hemorragia ignora o Grito, o papel, o Cutelo, o crítico e a penalidade de nível (fatorDanoJogador). Contra monstro bem acima do seu nível ela perde menos que o resto.
  • Ao chegar a 5 acúmulos (com a Força desligada) liga a Força Noxiana por 5 s: +AD = bonusPoder(nível) (tabela 2.1) e todo golpe põe o alvo direto em 5 acúmulos.
  • Achado 4: ela só religa quando um alvo sobe de <5 para 5. Num alvo que fica em 5 acúmulos (chefe, luta longa) a Força Noxiana acontece uma vez (os primeiros 5 s); em grupo, cada monstro novo pode religar.
  • Guilhotina ®: (base + 75% AD bônus) × (1 + 20% × acúmulos), dano verdadeiro (nada reduz, nem nível). A IA só usa se mata; em monstro comum a recarga volta para 0,6 s (acoesDarius.R, motor.js:1685).

5. Roubo de vida, cura, regeneração e escudos

Mecanismo Regra Onde
Roubo de vida cura = dano final × rv, só fonte === 'ataque' (o golpe da W não cura) golpear, motor.js:1086
Sedenta por Sangue (3072) cura que passa da vida máxima vira escudo, até 25% da vida motor.js:1089
Semblante Espiritual (3065) toda curar × 1,25 (roubo, Q, Céu, Banho…; poção não) curar, motor.js:1144
Q do Darius cura 13% × vida que falta × min(3, atingidos) acoesDarius.Q, motor.js:1699
Banho de Sangue (F) custa 8% da vida atual; 6 s de +dano; cada básico em alvo sangrando cura 1%–1,9% da vida máx. motor.js:1517, 1708
Domínio de Noxus (N) cada abate na área cura 4% da vida que falta motor.js:1336
Regeneração regen/s contínuo (2.1); buff do Barão: ×1,5 por 180 s e +25% de dano passo, motor.js:1213; BARAO
Poções 300 / 900 / 2.200 de vida (níveis 1/15/30), exaustão 1 s; automáticas só com VIP POCOES, motor.js:211
Escudos d.escudo absorve antes da vida (receberDano, motor.js:2380). Sterak (3053): 60% da vida bônus abaixo de 30% (90 s); Lux W, Yasuo Fluxo (80 + 28·nível), Taric W/F motor.js:2347
Outros defensivos Anjo (3026) revive com 50% (300 s); Zhonya (3157) 2,5 s invulnerável abaixo de 25% (120 s); Véu da Banshee (3102) bloqueia 1 golpe a cada 40 s; Dança da Morte (6333) adia 30% do dano em 3 s e limpa ao matar (+15% da vida que falta) receberDano, processarAbates

6. Monstros

6.1 Atributos — CURVA (motor.js:223), MONSTROS (motor.js:230), criarMonstro (motor.js:934)

vida     = (150 + 100·n + n²) × ajuste(n).vida × mult da espécie
AD       = (9 + 4,8·n + 0,13·n²) × ajuste(n).dano × mult
armadura = (5 + 1,5·n) × mult                 (RM = 60% disso)
ajuste(n) = planilha BALANCO (balanco.js): vida 0,70→1,00 e dano 0,65→1,00 do nível 1 ao 21+

Exemplos: Tropa Corpo a Corpo 5 = 506 de vida / 23,5 AD / 7,5 armadura; Brambleback 25 = 7.205 / 315 / 51; Criatura do Vazio 45 = 8.678 / 635 / 72,5; Barão Nashor 50 = 122.400 / 1.837 / 144. Chefes nascem no nível máximo da zona + 2 (gerarGrupo, motor.js:988).

6.2 Noturnos e furiosos — NOTURNO (motor.js:964), FURIOSO (motor.js:974)

Tipo Chance Vida AD Vel. ataque XP / ouro Saque
Noturno (de noite, Rift e Runeterra, nunca chefe) 35% de cada monstro ×1,4 ×1,25 — ×1,8 / ×1,5 sorteado 2×
Furioso (só Rift, 1 por grupo, sem chefe) 5% dos grupos ×4 ×1,5 ×1,15 ×5 / ×5 3× (espólios/gemas 2×)
Aura do furioso (nos outros do grupo, enquanto ele vive) — — ×1,25 ×1,2 — —

6.3 Monstro acima do seu nível — NIVEL_DIF (motor.js:1051)

d = max(0, nívelMonstro − seuNível − 4)
dano que o monstro causa  × min(3;    1 + 0,15·d)     (fatorDanoMonstro, aplicado em receberDano)
dano que você causa nele  × max(0,25; 1 − 0,07·d)     (fatorDanoJogador, aplicado em golpear)
Níveis acima ≤4 5 6 7 8 10 12 14 15+ 18+
Dano dele ×1 ×1,15 ×1,30 ×1,45 ×1,60 ×1,90 ×2,20 ×2,50 ×2,65… ×3
Seu dano ×1 ×0,93 ×0,86 ×0,79 ×0,72 ×0,58 ×0,44 ×0,30 ×0,25 ×0,25

Não afeta a Hemorragia, a R, as queimaduras de chefe nem o PvP.

6.4 Dano que você recebe — inimigoAtaca (motor.js:1563), receberDano (motor.js:2347)

defesa = (monstro mágico ? RM : armadura) × (1 + 1%·Disciplina + Estandarte de Noxus + Pele de Diamante)
golpe  = mitigar(AD × aura, defesa) × fatorDanoMonstro × papel.recebido    (Darius 0,8)
esquiva: o golpe inteiro some com chance = esquiva
intervalo do monstro = 1/(vel. × aura), também em ticks de 0,05 s; monstro lento (W/E/T do Darius) ataca a 60%

Mecânicas de chefe (mecanicaChefe, motor.js:2674), golpe = mitigar(AD × k, defesa) × fatorDanoMonstro × papel: Investida 3,5× (físico), Pancada 2,2× (físico), Olho 2,6× (mágico), Sopro 2,2× (mágico) + queima 3% da vida/s por 4 s, Chuva 1,8× + 2,5%/s por 3 s, Ácido 1,2× + 2,8%/s por 5 s, Tentáculos 2,6× (físico); Rugido: +50% vel. por 5 s; Barão invoca 2 Larvas (nível − 6). Qualquer atordoamento (Avanço Noxiano) interrompe o golpe carregado.


7. Habilidades: custo, recarga e escala

  • Recarga efetiva = recarga[rank] × (1 − reduçãoRecarga) (passo → usar, motor.js:1434; Runeterra: usarHabilidade, arena.js:1183).
  • reduçãoRecarga = min(40%, min(30%, 0,4%·Foco) + Σ cdr dos itens) (motor.js:475). Não existe “haste”; os cdr de item (Partícula 5%, Botas Ionianas 8%, Lucidez Escarlate 15%, Ímpeto Cósmico 15%…) são escalados por refino/qualidade.
  • Outras reduções: Bravata do Taric (−1 s em tudo por golpe), Q do Ezreal (−1,5 s nas outras), abates da Katarina (−1,5 s em Q/W/E), e a Q do Yasuo: max(1,5; recarga / max(1, vel.ataque/0,697)) (recargaQYasuo, motor.js:1894).
  • Mana: gasta ao usar; sem mana suficiente a habilidade não sai (pode, motor.js:1431).
  • Só as 4 habilidades da barra (BARRA = 4, motor.js:784) são usadas; passivas (D) e a penetração da E valem fora dela.
  • Ranks: 1 ponto por nível (ganharXp); Q/W/E até ⌈nível/2⌉; extras 1 + ⌊(nível − liberação)/2⌋; R nos níveis 6/11/16/25/35; N nos 45/46/47/48/50 (rankMaximoNoNivel, motor.js:789).
  • Achado 5: a Lâmina Encantada (Trindade/Fulgor) arma depois de qualquer habilidade, inclusive E, Grito e Estandarte.
  • O Grito de Guerra (G) soma no multiplicador de golpear: vale para básicos, habilidades, itens e mascote; não para Hemorragia e R.

7.1 Darius (HAB_DARIUS, motor.js:491 e HAB_DARIUS_KIT, motor.js:611) — valores no rank 1 / 5 / 10 (R e N: 1 / 3 / 5)

Tecla Habilidade Libera Ranks Recarga (s) Mana Dano (bruto, antes da mitigação)
Q Dizimar 1 10 9 / 7 / 4,5 20 / 28 / 38 50 + 100% AD / 170 + 120% AD / 320 + 145% AD (área)
W Ataque Mutilador 1 10 5 / 4,4 / 3,4 20 / 24 / 30 140% / 160% / 185% AD no próximo básico (pode critar; lentidão 2 s)
E Apreender 1 10 26 / 19 / 13 45 puxa; passiva: penetração 20% / 32% / 45%
R Guilhotina de Noxus 6 5 120 / 80 / 50 100 / 0 / 0 125 / 375 / 625 + 75% AD bônus, × (1 + 20%·acúmulos), verdadeiro
G Grito de Guerra 8 10 25 / 21 / 16 40 / 48 / 58 +15% / +27% / +42% de todo dano por 8 s
A Avanço Noxiano 13 10 12 / 10 / 7,5 35 / 43 / 53 60 + 80% / 180 + 100% / 330 + 125% AD, atordoa 1 s
D Vontade do General 18 10 passiva — +15% / +27% / +42% AD × fração da vida perdida
F Banho de Sangue 23 10 22 / 20 / 17,5 8% da vida 6 s: +3% / 4,6% / 6,6% da vida que falta ao alvo (teto 1,5× AD) por básico
T Pisotear 28 10 10 / 8,4 / 6,4 40 / 56 / 76 70 + 90% / 210 + 106% / 385 + 126% AD (área)
B Estandarte de Noxus 33 10 35 / 29 / 21,5 60 / 68 / 78 +20% / +36% / +56% armadura e RM por 10 s, +2% mana/s
M Ruptura Noxiana 38 10 13 / 11,4 / 9,4 40 / 52 / 67 110 + 100% / 330 + 124% / 605 + 154% AD, +35% em quem sangra, até 4
N Domínio de Noxus 45 5 90 / 70 / 55 100 70 + 35% / 140 + 45% / 210 + 55% AD a cada 0,5 s por 10 s; alvo leva até +30% de tudo

Regras da IA do Rift (acoesDarius motor.js:1683, acoesComuns motor.js:1636; ordem N R E A G B F T Q M W): Q só com 2+ monstros, chefe ou vida < 80%; T e M com 2+ ou chefe; N com 3+ ou chefe; E com alguém chegando ou chefe; B com 2+, chefe ou vida < 70%; F com vida > 40%; W com mana > 40%; R quando mata (e mana > 60% se não for chefe); A sempre, menos contra o Arauto (fica guardado para interromper a Investida). Em Runeterra (arena.js:421) o jogador aperta quando quer; Q/T acertam tudo num raio de 2,4 tiles (AR.area), R salta até 3,5 tiles, M é uma linha de 6.

Os outros campeões usam a mesma estrutura (HAB_EZREAL 526, HAB_LUX 571, HAB_YASUO 634, HAB_KATARINA 673, HAB_TARIC 716); os coeficientes por rank de todas as habilidades estão em data/combate.json → kits.<id>.hab.<tecla>.formulas.


8. Runeterra (arena.js)

O dano é idêntico: arena.js chama golpear, golpeBasico, tickInimigos, inimigoAtaca, receberDano do motor (arena.js:14). Muda: posição/alcance (AR.alcance Darius 1,6 tiles), quem é atingido, o bônus de 30% de XP e drop (ARENA.bonus, não afeta dano), regeneração de 5%/s nas cidades (MUNDO.regenCidade) e algumas habilidades com fator próprio em Runeterra (Bravata do Taric × 0,8, emRuneterra). Dano em jogador (PvP) é calculado no servidor — não está no cliente.


Como usar a calculadora

site/calc.js é ES module puro; importa data/combate.json com import … with { type: 'json' } (Node 22+, navegadores atuais). Para regenerar os dados depois de baixar uma versão nova do jogo: node scripts/combate-gera-dados.mjs.

import { statsDoPersonagem, monstro, danoPorGolpe, dpsBasico, dpsComHabilidades, tempoParaMatar, danoRecebido,
  melhorBarra, ranksAutomaticos } from './site/calc.js';

const s = statsDoPersonagem({ campeao: 'darius', nivel: 30,
  atributos: { forca: 40, vitalidade: 35, resistencia: 12 },
  itens: [{ id: '3071', refino: 3, qualidade: 'A' }, '2501+2', '3078+2~S', '3742+1', '3047+2'],   // objeto ou texto do save
  ranks: { Q: 5, W: 3, E: 5, R: 4, G: 4, A: 4, D: 3, F: 2 },        // omita para usar ranksAutomaticos(campeao, nivel)
  conquistas: ['centuriao'], mascote: { id: 'krug', nivel: 5 } });
const m = monstro('Arauto do Vale', 35);                  // { noturno: true } ou { furioso: true } no 3º argumento
danoPorGolpe(s, m);                                      // { normal, critico, medio, armaduraEfetiva, fatorNivel, curaPorGolpe… }
danoPorGolpe(s, m, { fonte: 'Q' });                       // dano de uma habilidade (rank do stats.ranks)
dpsBasico(s, m);                                         // DPS de regime: ataques + Hemorragia (5 acúmulos) + itens
dpsComHabilidades('darius', s.ranks, s, m, { barra: ['Q', 'W', 'G', 'A'], alvos: 1 });
tempoParaMatar(s, 'Arauto do Vale', 35, { barra: ['Q', 'W', 'G', 'A'], crit: 'medio' });   // simulação tick a tick
danoRecebido(s, m);                                      // { porGolpe, golpesPorSeg, dps, segundosParaMorrer… }
melhorBarra(s, 'Arauto do Vale', 35);                    // todas as barras de 4, ordenadas pelo tempo para matar

O que é exato e o que é estimativa:

Função Status
statsDoPersonagem, monstro, danoPorGolpe, danoRecebido, danoGolpeChefe, ranksAutomaticos, sangramentoPorSegundo exatas (iguais ao jogo até 1e-9)
tempoParaMatar (modos crit: 'nunca'/'sempre') exata, tick a tick, para 1 monstro que não revida (sem Espinhos, sem mecânica de chefe, Darius de vida cheia)
tempoParaMatar (modo 'medio') crítico como valor esperado por golpe (o jogo sorteia)
dpsBasico estimativa de regime (Cutelo cheio, Fago/Dançarina ativos, 5 acúmulos, sem Força Noxiana); bate com o jogo em ±1,4%
dpsComHabilidades estimativa: cada habilidade da barra a cada recarga, limitada pela mana; W = troca de 1 básico + ~0,5 golpe; respeita as regras da IA do Rift (ia: false para Runeterra). Para Ezreal/Lux/Yasuo/Katarina/Taric conta só o dano direto
melhorBarra força bruta na simulação (~330 barras; ~4 s contra o Barão)

Exemplos (Darius, gerados por node scripts/combate-exemplos.mjs)

Colunas: golpe = dano de um básico não crítico; DPS básico = dpsBasico (inclui Hemorragia); tempo p/ matar = tempoParaMatar com crítico médio, com e sem a barra. O tempo simulado é menor que vida/DPS porque inclui os 5 s de Força Noxiana do começo.

Darius nível 10 (Rota Superior)

Atributos { forca: 14, vitalidade: 13 }; ranks Q3 W2 E2 R1 G2. Itens: Fago, Espada Longa ~A, Cristal de Rubi, Couraça de Pano ~C, Botas. Barra: Q W E R.

AD (base + bônus) Vida Armadura RM Vel. ataque Crítico Pen. armadura Recarga Mana (regen/s)
137,5 (94,2 + 43,3) 2.224 95,7 59,1 0,67 0% 23% −0% 712 (5,59)
Alvo Vida / armadura Golpe (normal) DPS básico + sangue DPS com habilidades* Tempo p/ matar (barra) Tempo p/ matar (só ataques) Dano recebido/golpe DPS recebido
Tropa Corpo a Corpo 10 1.038 / 12 126 150 (sangue 60) 174 5,2 s 7,1 s 21 16,5
Tropa de Cerco 10 1.868 / 24 116 139 (sangue 56) 161 8 s 10,6 s 34 17,2
Lobo Gigante 12 1.413 / 18,4 120 144 (sangue 58) 167 5,7 s 8,5 s 32 25,8

Contra um grupo de 3 Tropas, a barra sugerida é Q W G E (215 de DPS somando os 3 alvos; a mana só dá para 53% dos usos).

Darius nível 20 (Lobos / Campo Vermelho), só épicos

Atributos { forca: 25, vitalidade: 22, resistencia: 10 }; ranks Q4 W3 E4 R3 G4 A2. Itens: Fago +2, Martelo de Guerra de Caulfield +1 ~A, Tiamat +1, Cota de Malha, Botas Galvanizadas de Aço +1. Barra: Q W R A.

AD (base + bônus) Vida Armadura RM Vel. ataque Crítico Pen. armadura Recarga Mana (regen/s)
240,5 (138,1 + 102,4) 3.618 224,4 108,5 0,74 0% 29% −0% 1.365 (7,95)
Alvo Vida / armadura Golpe (normal) DPS básico + sangue DPS com habilidades* Tempo p/ matar (barra) Tempo p/ matar (só ataques) Dano recebido/golpe DPS recebido
Lobo Gigante 20 2.749 / 28 201 264 (sangue 103) 327 4,5 s 8,8 s 41 33
Brambleback Vermelho 20 5.498 / 42 185 243 (sangue 95) 302 11,6 s 18,8 s 56 30,5
Brambleback Vermelho 26 7.537 / 52,8 150 210 (sangue 90) 258 23,1 s 32,6 s 107 57,6

O Brambleback 26 está 6 níveis acima: o Darius bate 14% menos e apanha 30% mais (6.3). Barra sugerida contra 3 Lobos: Q W G A.

Darius nível 30 (Rio / Dragão), 3 lendários

Atributos { forca: 40, vitalidade: 35, resistencia: 12 }; ranks Q5 W3 E5 R4 G4 A4 D3 F2; conquistas Centurião, Veterano, Imortal. Itens: Cutelo Negro +3 ~A, Armadura Sangrenta do Suserano +2, Força da Trindade +2 ~S, Couraça do Defunto +1, Botas Galvanizadas de Aço +2. Barra: Q W G A.

AD (base + bônus) Vida Armadura RM Vel. ataque Crítico Pen. armadura Recarga Mana (regen/s)
463,7 (177,1 + 286,6) 7.180 313,7 145,5 1,12 0% 32% −0% 1.945 (10,05)
Alvo Vida / armadura Golpe (normal) DPS básico + sangue DPS com habilidades* Tempo p/ matar (barra) Tempo p/ matar (só ataques) Dano recebido/golpe DPS recebido
Arraia do Rio 30 6.075 / 80 300 521 (sangue 142) 759 5,8 s 9,9 s 42 20,9
Dragão Ancião (filhote) 30 6.480 / 60 329 563 (sangue 156) 818 5,8 s 9,2 s 68 39,9
Arauto do Vale 35 (chefe) 48.750 / 86,3 272 484 (sangue 138) 741 61,4 s 99,1 s 187 110

melhorBarra contra o Arauto 35: Q W G F em 50,1 s (a barra do exemplo leva 61,4 s; a pior, E R G A, 85,6 s). Contra a Arraia 30 sozinha: W R G A em 4,6 s.

Darius nível 45 (Covil do Barão), 4 lendários refinados

Atributos { forca: 60, vitalidade: 50, resistencia: 20, agilidade: 2 }; ranks Q5 W4 E6 R5 G5 A5 D5 F3 T3 B1 M2 N1; 6 conquistas de dano/vida; Krugzinho nível 12. Itens: Cutelo Negro +4 ~S, Armadura Sangrenta do Suserano +3 ~A, Quebrapassos +3, Lembranças do Lorde Dominik +2, Botas Galvanizadas de Aço +3 ~A. Barra: N R M G.

AD (base + bônus) Vida Armadura RM Vel. ataque Crítico Pen. armadura Recarga Mana (regen/s)
659,6 (235,6 + 424) 9.460 383,8 236,9 1,12 31% 54,5% −0% 2.815 (13,2)
Alvo Vida / armadura Golpe (normal) DPS básico + sangue DPS com habilidades* Tempo p/ matar (barra) Tempo p/ matar (só ataques) Dano recebido/golpe DPS recebido
Criatura do Vazio 45 8.678 / 72,5 496 1.054 (sangue 241) 1.138 4,6 s 7 s 151 (mág.) 103,4
Dragão Ancião (filhote) 47 11.294 / 90,6 467 1.004 (sangue 227) 1.084 6,4 s 9,1 s 112 65,6
Barão Nashor 50 (chefe) 122.400 / 144 426 927 (sangue 193) 1.144 95,8 s 129,7 s 502 (mág.) 249,5

*DPS com habilidades = estimativa de regime com a barra do exemplo contra 1 alvo (regras da IA do Rift).

Habilidades desse Darius 45 contra o Barão 50 (dpsComHabilidades(...).habilidades, alvo a 50% da vida):

Tecla Rank Recarga Mana Dano por uso DPS Observação
Q Dizimar 5 7,0 28 705 101 contra chefe a IA usa
W Ataque Mutilador 4 4,6 22 626 136 ganho sobre o básico que ela substitui (estimativa)
R Guilhotina 5 50 0 execução — mata se a vida ≤ 1.886 (5 acúmulos)
G Grito de Guerra 5 21 48 +27% por 8 s (+10,3% médio)
A Avanço Noxiano 5 10 43 616 62
F Banho de Sangue 3 21 8% vida 5.961 284 o mais forte em chefe (vida que falta ao alvo; teto 1,5× AD por golpe)
T Pisotear 3 9,2 48 577 63
M Ruptura Noxiana 2 12,6 43 855 68
N Domínio de Noxus 1 90 100 5.372 60 20 pulsos; o alvo também leva até +30% dos outros golpes

melhorBarra contra o Barão 50: W G F N em 69,4 s (Q W G F 70,6 s; a barra N R M G do exemplo 95,8 s; a pior, E R T B, 119,8 s). Contra a Criatura do Vazio 45 sozinha: W R G A em 3,7 s. Cuidado: a simulação mantém o Darius de vida cheia; na luta real o Barão (502 mágico por golpe, 250 DPS) derruba a vida e muda a Vontade do General e a regra do Banho de Sangue (> 40%).

Verificação (node scripts/combate-verifica.mjs)

Compara a calculadora com o motor real, em Node, chamando atributos, criarMonstro, M.interno.efetivo/golpear/ tickInimigos/inimigoAtaca/mecanicaChefe, subirAutomatico e o passo inteiro (1 monstro, Math.random fixo):

Grupo Casos Critério Resultado
Atributos (11 builds: Darius 1/10/20/30/45/crítico, Ezreal, Lux, Yasuo, Katarina, Taric; 23 campos cada) 11 igual (1e-9) 11 OK
Monstros (15 espécies × níveis 1/10/25/50, + noturno) 1 igual OK
Dano de um golpe (básico, crítico, nível acima, Força Noxiana, Vontade + Grito, Q, A, M, N, W, R, Lux Q mágica, Katarina E, Yasuo + Dominik) 15 igual 15 OK
Hemorragia (1 tick, 5 acúmulos) 1 igual OK
Dano recebido (físico, mágico, nível acima, aura de furioso, papel da Lux e do Taric, Investida do Arauto) 7 igual 7 OK
Ranks automáticos (Darius e Lux, níveis 2–50) 1 igual OK
Tempo para matar no passo real (só ataques e com barras, chefes, R executando, sempre/nunca crítico, nível acima) 10 mesmo tick 10 OK
Vida restante após 8/12/20 s de passo real 3 igual (1e-7) 3 OK
DPS de regime (dpsBasico) contra 50 s de passo real 3 ±2% (deu −1,4%, +0,7%, +0,9%) 3 OK
Total 52 52 OK, 0 FAIL

Teste de sensibilidade: mudar o coeficiente da Hemorragia de 0,30 para 0,31 na calculadora faz 5 casos falharem.

Limitações conhecidas

  • tempoParaMatar simula 1 monstro sem revide: sem Armadura de Espinhos (3075: 10 + 10% da armadura bônus por golpe recebido), sem mecânicas de chefe, sem Larvas do Barão, vida do Darius só cai pelo Banho de Sangue.
  • As habilidades na simulação são só as do Darius (a IA do Rift). Para os outros campeões, a simulação faz só ataques básicos.
  • Grupos (2–4 monstros no Rift) e itens de área contam só no dpsComHabilidades (parâmetro alvos), como estimativa.
  • O crítico médio, a W (+0,5 golpe) e o limite de mana do dpsComHabilidades são heurísticas da calculadora, não do jogo.