Caixa, Lucro, Império. Snapshot por ciclo, posição calculada no tick. Como o `imperioScore` funciona.
O ranking não é cosmético. Ele é fala pública sobre quem você é no Calçadão. As três categorias visíveis medem coisas diferentes — e quem tenta ganhar todas ao mesmo tempo perde foco.
Quem tem mais dinheiro líquido agora. Snapshot do Character.cash. Volátil — quem comprou estoque grande sai do top, quem acabou de vender entra.
Tom: dinheiro. Selo: "Rei do Caixa".
Especulador. Joga em ciclos curtos. Compra barato, vende caro, fica com cash. Não constrói império — extrai liquidez.
Lucro acumulado desde o começo (lifetimeProfit). Histórico, não muda pra menos.
Tom: positivo (verde). Selo: "Rei do Bagulho".
Operador eficiente. Maximiza margem. Tempo de jogo conta — quem joga há mais tempo tem mais lucro acumulado.
A categoria diferente. Mede tamanho do bagulho:
score = tierWeight × (units × 10 + employees × 3)
| Tier | Weight |
|---|---|
| CAMELO | 1 |
| MEI | 2 |
| ME | 4 |
| EMPRESARIO_LOCAL | 8 |
| CEO_NACIONAL | 16 |
| MAGNATA | 32 |
Construtor. Não tá no LUCRO porque reinveste tudo. Não tá no CAIXA porque queima caixa em expansão. Mas o IMPERIO mede ele.
A cada ciclo, o orchestrator escreve um RankingSnapshot por (character, categoria). Permite leitura O(1) das posições + diff entre N e N-1 (▲/▼).
Constraint única por (character, ciclo, categoria) garante idempotência — tick dobrado não duplica linhas.
lifetimeRevenue. Mais movimentação, não mais lucro.Existem no banco. Aparecem na UI quando o épico desbloquear.
Foca em uma categoria, ignora as outras. Tentar top-5 em CAIXA + LUCRO + IMPERIO ao mesmo tempo significa decisões conflitantes (acumular cash vs reinvestir vs expandir). Escolhe seu jogo.