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)
- Base do nível (2.1) + pontos de atributo (2.2).
- Soma de todos os itens (já com refino × qualidade).
vida × (1 + Σ vidaPct).- Armadura Sangrenta do Suserano (2501):
AD += 2% × (vida − vida base)— usa a vida depois do vidaPct e antes da conquista. - Gume do Infinito (3031): dano crítico 1,75 → 2,15.
- Mana máxima; Cajado do Arcanjo (3003):
AP += 3% da mana; Rabadon (3089):AP × 1,35. AD × (1 + Σ adPct),AP × (1 + Σ apPct),armadura × (1 + Σ armPct + Bastião do Taric),RM × (1 + Σ rmPct).- 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). 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
criticodos 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
golpearcomacumula(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”; oscdrde 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⌉; extras1 + ⌊(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
tempoParaMatarsimula 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âmetroalvos), como estimativa. - O crítico médio, a W (+0,5 golpe) e o limite de mana do
dpsComHabilidadessão heurísticas da calculadora, não do jogo.