> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fivenetwork.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Modos de jogo

> Regras de Arena, Plante/Desarme, Economia e Duelo no Five Game.

O Five Game tem dois modos de jogo (**Arena** e **Plante/Desarme**), uma camada opcional de **Economia** e um formato separado de **Duelo** entre times fixos. Esta página reúne as regras de cada um.

***

## Arena

Combate por equipes, sem bomba. O round termina quando um dos times é totalmente eliminado ou quando o tempo do round acaba.

| Situação                              | Resultado                                  |
| ------------------------------------- | ------------------------------------------ |
| Um time é eliminado                   | Vence o time que ainda tem jogadores vivos |
| O tempo acaba com os dois times vivos | O round termina empatado e ninguém pontua  |

Cada jogador nasce a cada round com a faca e as armas do modo de arma escolhido na criação da partida.

***

## Plante/Desarme

Um time ataca e o outro defende. Os atacantes carregam a C4, plantam em um dos sites do mapa e protegem até explodir. Os defensores precisam desarmar ou eliminar os atacantes.

<Steps>
  <Step title="Entrega da bomba">
    No início de cada round a C4 é entregue a um atacante aleatório.
  </Step>

  <Step title="Plante">
    Dentro do raio de um site, o atacante segura a tecla <kbd>E</kbd> pelo tempo de `plantTime` para plantar.
  </Step>

  <Step title="Bomba derrubada">
    Se o portador morre antes de plantar, a bomba cai no chão e qualquer atacante pode recuperá-la dentro do `pickupRadius`, também com <kbd>E</kbd>.
  </Step>

  <Step title="Desarme">
    Após o plante, os defensores desarmam segurando <kbd>E</kbd> dentro do `defuseRadius`. Com o kit de desarme o tempo cai de `defuseTime` para `defuseTimeKit`.
  </Step>
</Steps>

**Condições de vitória do round**

| Situação                           | Vence                                     |
| ---------------------------------- | ----------------------------------------- |
| A bomba explode                    | Atacantes                                 |
| A bomba é desarmada                | Defensores                                |
| Um dos times é eliminado           | O time que sobrou                         |
| O tempo acaba sem a bomba plantada | Defensores                                |
| O tempo acaba com a bomba plantada | O round segue até a explosão ou o desarme |

<Info>
  A inversão de lados é obrigatória no Plante/Desarme: na metade da partida, atacantes e defensores trocam de papel e de base. Por isso a quantidade de rounds precisa ser par.
</Info>

***

## Sistema de rounds (melhor de N)

A partida é configurada pela quantidade total de rounds. Vence o primeiro time a alcançar `floor(N / 2) + 1` rounds.

| Rounds (melhor de) | Vence com | Troca de lado no round |
| :----------------: | :-------: | :--------------------: |
|          4         |     3     |            3           |
|          6         |     4     |            4           |
|          8         |     5     |            5           |
|         12         |     7     |            7           |

<Steps>
  <Step title="Contagem regressiva">
    O primeiro round começa com 10 segundos de contagem. Os demais usam o `roundCountdown` do mapa. Em partidas com economia, a contagem é substituída pela fase de compra.
  </Step>

  <Step title="Troca de lados">
    Com a inversão ativada, bases e papéis são trocados ao entrar no round `floor(N / 2) + 1`, e a contagem longa volta a ser usada nesse round.
  </Step>

  <Step title="Fim da partida">
    Assim que um time alcança o número de rounds necessários, a partida encerra e a tela de resultado é exibida para todos.
  </Step>
</Steps>

<Tip>
  A troca de lados exige um número par de rounds, para que cada time jogue exatamente metade da partida de cada lado. O servidor recusa a criação da partida se a inversão estiver ligada com um número ímpar.
</Tip>

***

## Modos de arma

Aplicam-se às partidas **sem** economia. O criador escolhe qual conjunto de armas os jogadores recebem no início de cada round.

| Modo            | Comportamento                                                           |
| --------------- | ----------------------------------------------------------------------- |
| Apenas Pistolas | Entrega somente a pistola configurada                                   |
| Apenas Fuzil    | Entrega somente o fuzil configurado                                     |
| Apenas Subs     | Entrega somente a submetralhadora configurada                           |
| Misto           | A arma muda conforme a fase da partida, na ordem de `mixedModeSequence` |

<Info>
  No modo Misto a partida é dividida em fases conforme o total de rounds: cada bloco de rounds usa um conjunto diferente de armas. Todo jogador recebe também a faca em qualquer modo.
</Info>

***

## Modo economia

O modo economia é uma opção do **Plante/Desarme**. Em vez de receber um loadout pronto, cada jogador ganha dinheiro por round e compra o próprio equipamento na loja.

<Note>
  Ao ligar a economia, a partida é travada em 5 contra 5, melhor de 12 rounds e sem energético — a velocidade extra passa a vir da faca na mão.
</Note>

### Fase de compra

No início de cada round a loja fica aberta por `buyPhaseDuration` segundos, enquanto os jogadores ainda estão congelados na base.

<Steps>
  <Step title="Abrir a loja">
    Pressione o controle definido em `buyMenuControl` (29, tecla <kbd>B</kbd> no teclado padrão) durante a fase de compra.
  </Step>

  <Step title="Comprar">
    Compre coletes, pistolas, submetralhadoras, fuzis, granadas e o kit de desarme. Comprar uma arma da mesma categoria descarta a anterior no chão.
  </Step>

  <Step title="Vender">
    Enquanto a loja estiver aberta, itens comprados podem ser vendidos de volta pelo mesmo valor.
  </Step>
</Steps>

<Info>
  O kit de desarme só aparece na loja dos defensores e reduz o tempo de desarme para `defuseTimeKit`.
</Info>

### Como o dinheiro é ganho

| Origem           | Valor                                                                         |
| ---------------- | ----------------------------------------------------------------------------- |
| Dinheiro inicial | `economy.startMoney`                                                          |
| Vitória no round | `economy.winBonus` conforme o motivo (eliminação, explosão, desarme ou tempo) |
| Derrota no round | `economy.lossBonus`, crescente a cada derrota seguida                         |
| Abate            | `economy.killBonusByCategory` conforme a categoria da arma                    |
| Assistência      | `economy.assistBonus`                                                         |
| Plantar a bomba  | `economy.bombPlantBonusTeam` para o time inteiro                              |
| Desarmar a bomba | `economy.bombDefuseBonus` para quem desarmou                                  |

O saldo é limitado por `economy.maxMoney`, e na troca de lados tudo é zerado: dinheiro volta ao valor inicial e armas, colete e kit de desarme são perdidos.

### Armas no chão

Ao morrer, o jogador derruba as armas que comprou e o kit de desarme. Qualquer jogador vivo pega o item aproximando-se e pressionando <kbd>E</kbd> dentro do `dropPickupRadius`. O kit de desarme só pode ser recolhido por defensores.

<Tip>
  Granadas não são acumuladas entre rounds: as que sobram são removidas na preparação do round seguinte.
</Tip>

***

## Modo duelo

O duelo é um confronto entre dois times fixos, montados na aba **Duelo** do tablet.

<Steps>
  <Step title="Criar o time">
    Um jogador cria o time definindo nome, avatar (URL `.png` ou `.gif`) e senha opcional. Ele vira o líder.
  </Step>

  <Step title="Montar o elenco">
    Outros jogadores entram no time pela lista, até o limite de `duel.maxTeamMembers`. Só o líder pode desfazer o time; os demais podem sair.
  </Step>

  <Step title="Desafiar">
    O líder desafia outro time e escolhe o modo de jogo. O líder desafiado tem `challengeResponseTimeout` segundos para aceitar ou recusar.
  </Step>

  <Step title="Votação de mapa">
    Aceito o desafio, todos os participantes votam no mapa por `mapVoteDuration` segundos. Empates são decididos por sorteio entre os mais votados.
  </Step>

  <Step title="Votação de arma">
    Só no modo Arena, os participantes votam também no modo de arma por `weaponVoteDuration` segundos.
  </Step>

  <Step title="Partida">
    A partida começa automaticamente com os dois times já formados. Ao terminar, os times são recriados como estavam antes do duelo.
  </Step>
</Steps>

**Configuração fixa das partidas de duelo**

| Item                    | Valor                                        |
| ----------------------- | -------------------------------------------- |
| Rounds (Plante/Desarme) | `duel.rounds`                                |
| Rounds (Arena)          | `duel.arenaRounds`                           |
| Economia                | Ligada no Plante/Desarme, desligada na Arena |
| Troca de lados          | Igual à economia                             |
| Fogo amigo              | Ligado                                       |
| Espectadores            | Permitidos                                   |
| Aposta                  | Sem aposta                                   |

<Info>
  Um time em desafio fica travado até a resposta ou a votação terminarem, e não pode desafiar nem ser desafiado nesse intervalo.
</Info>

***

## Apostas

As apostas são opcionais e definidas na criação da partida, limitadas por `matches.maxBetValue`.

<Steps>
  <Step title="Validação">
    Ao entrar em uma partida apostada, o saldo do jogador é conferido. A partida não inicia se algum participante não tiver o valor.
  </Step>

  <Step title="Cobrança">
    O valor é debitado de todos os jogadores no início da partida e forma o prêmio acumulado.
  </Step>

  <Step title="Premiação">
    Ao fim da partida, o prêmio é dividido igualmente entre os jogadores do time vencedor.
  </Step>
</Steps>

***

## Ranking e perfil

Ao fim de cada partida, o Five Game grava vitórias, derrotas, abates e mortes de todos os participantes na tabela `five_game_profiles`. A aba **Meu Perfil e Ranking** mostra:

* O perfil do jogador, com avatar e estatísticas acumuladas.
* O top 10 do servidor em três categorias: **Mais Vitórias**, **Mais Abates** e **Maior KDR**.
* A posição do próprio jogador, mesmo quando ele está fora do top 10.

<Tip>
  O avatar aceita URLs terminadas em `.png` ou `.gif`. Links de página do Giphy são convertidos automaticamente para o link direto da imagem.
</Tip>

***

## Espectador

<AccordionGroup>
  <Accordion title="Após morrer no round" icon="skull">
    Quem morre passa a acompanhar os companheiros de time vivos até o próximo round. Use <kbd>A</kbd> e <kbd>D</kbd> para trocar de jogador.
  </Accordion>

  <Accordion title="Pela aba Espectar" icon="eye">
    Qualquer jogador fora de partida pode assistir a uma partida em andamento que tenha espectadores liberados. Além de <kbd>A</kbd> e <kbd>D</kbd> para trocar de alvo, o controle 167 (<kbd>F6</kbd> no teclado padrão) encerra a espectação.
  </Accordion>

  <Accordion title="Administradores" icon="user-shield">
    Quem passa na checagem de `framework.isAdmin` consegue espectar até partidas criadas com espectadores desativados.
  </Accordion>
</AccordionGroup>
