Proteção e Armaduras
Armor & Protection
Design do sistema de proteção: classes balísticas I–IV, área protegida real, durabilidade em 5 estados, trauma sem perfuração, penetração parcial e os quatro tipos de proteção (balística, corte, contaminação, térmica).
Última edição em 07/07/2026, 20:15 por Admin
Proteção e Armaduras
Página de game design (não diegética), derivada do Sistema de Atributos, Dano e Balística. Define como coletes, capacetes e roupas protegem o jogador — um modelo híbrido: multiplicadores por zona de acerto + durabilidade que absorve dano.
O princípio norteador é proteção honesta: o item protege exatamente a área que cobre, bloqueia apenas o que sua classe permite, transfere trauma mesmo quando segura o tiro e, arruinado, não protege nada.
1. Classe balística (I–IV)
Cada peça de armadura tem uma classe balística conceitual, de I a IV, que define contra quais calibres o item bloqueia a penetração:
- Projétil de classe igual ou inferior à do item → bloqueado (com trauma, ver §4).
- Projétil de classe superior à do colete → penetração parcial ou total.
- Munição perfurante (AP) eleva a classe efetiva do projétil: atravessa colete de classe compatível com dano razoável ao corpo, fazendo um furo "limpo".
Comportamentos esperados (herdados da página-hub):
- Munição AP vs colete classe III: atravessa com dano razoável ao corpo.
- Munição comum no mesmo colete classe III: não penetra, mas o trauma (Choque) pode derrubar — e o colete fica Danificado.
- Capacete balístico segura fragmentos e calibres de pistola (com Choque alto — possível nocaute); não é garantia contra fuzil: a energia excedente atravessa.
2. Área protegida real
A hitbox é honesta: o item só protege as zonas que cobre fisicamente.
- O colete cobre tórax e abdômen — não cobre pescoço, braços nem cabeça.
- Tiro no ombro não é "tiro no colete".
- Cada zona de dano do corpo lista os slots de equipamento que a protegem (cabeça → capacete/máscara/óculos; tórax → colete/roupa/mochila com coeficiente menor).
3. Durabilidade (5 estados)
O item absorve dano e degrada. São cinco estados, cada um com seu fator de proteção:
| Estado | Fator |
|---|---|
| Novo | 1,0 |
| Gasto | 0,7 |
| Danificado | 0,5 |
| Muito Danificado | 0,3 |
| Arruinado | 0,0 |
- Item Arruinado não protege e perde toda a função.
- Arruinado não é reparável ao estado Novo — apenas parcialmente, nas oficinas dos assentamentos (Iron Haven, Sanctuary Prime).
- Todo acerto na zona coberta consome durabilidade do item, mesmo quando bloqueado.
4. Trauma sem perfuração
Bloquear não é sair ileso. Quando a armadura segura o projétil, a energia do impacto ainda é transferida ao corpo como Choque + Dor — a "costela trincada" narrativa.
- Calibre grande bloqueado = possível queda ou nocaute (Choque abaixo do limiar de Consciência = inconsciência).
- É o cenário clássico do capacete que segurou o tiro de pistola: o jogador sobrevive, mas pode apagar.
5. Penetração parcial
Quando a energia do projétil excede pouco a proteção do item, o resultado não é binário: o projétil entra com dano reduzido e aplica sangramento leve. É o meio-termo entre o bloqueio limpo e a travessia total.
6. Dano ao conteúdo
Itens guardados dentro do colete ou da mochila, na zona atingida, podem ser danificados pelo impacto — há um coeficiente de transferência para o conteúdo. Carregar o kit médico no bolso frontal do colete tem um custo real.
7. Os quatro tipos de proteção
Um mesmo item raramente oferece todas — montar o loadout é escolher contra o que se proteger:
| Tipo | Fontes típicas | Uso por zona |
|---|---|---|
| Balística | colete, capacete | combate com armas de fogo em qualquer região |
| Corte/impacto | roupas grossas | contra Desynced e melee — mordida em braço protegido não abre ferida |
| Contaminação | máscara com filtro + roupa selada | obrigatória na Contaminated Zone e durante Nanostorm; filtros são consumíveis |
| Térmica | isolamento | Dead Zone e noite de deserto; roupa molhada perde isolamento e dobra de peso |
8. Esboço de implementação
Perfil de armadura como dado (estilo Unreal), com os quatro tipos de proteção em bitmask:
UENUM(BlueprintType, meta = (Bitflags))
enum class EProtecaoTipo : uint8
{
Nenhuma = 0,
Balistica = 1 << 0,
Corte = 1 << 1,
Contaminacao = 1 << 2,
Termica = 1 << 3
};
USTRUCT(BlueprintType)
struct FArmorProfile
{
GENERATED_BODY()
// Classe balistica conceitual (I a IV): ate onde o item bloqueia penetracao.
UPROPERTY(EditDefaultsOnly, meta = (ClampMin = 1, ClampMax = 4))
int32 Classe = 2;
// Hitbox honesta: apenas as zonas fisicamente cobertas (colete = torax/abdomen).
UPROPERTY(EditDefaultsOnly)
TArray<EBodyZone> ZonasCobertas;
// 5 estados: Novo 1.0 / Gasto 0.7 / Danificado 0.5 / Muito Danificado 0.3 / Arruinado 0.0
UPROPERTY(BlueprintReadOnly)
float Durabilidade = 1.0f;
// Bitmask dos tipos de protecao (um item raramente tem todos).
UPROPERTY(EditDefaultsOnly, meta = (Bitmask, BitmaskEnum = "EProtecaoTipo"))
uint8 Protecoes = static_cast<uint8>(EProtecaoTipo::Balistica);
};
Resolução de um acerto contra a armadura — os três desfechos possíveis:
UENUM(BlueprintType)
enum class EArmorHitResult : uint8
{
Bloqueado, // zero penetracao; trauma (Choque + Dor) transferido
PenetracaoParcial, // energia excede pouco: dano reduzido + sangramento leve
Atravessou // classe superior, zona descoberta ou item arruinado
};
EArmorHitResult ResolveArmorHit(FArmorProfile& Armor, const FProjectileImpact& Hit,
float& OutDanoCorpo, float& OutChoque)
{
// Zona descoberta ou item arruinado: nao protege nada.
if (Armor.Durabilidade <= 0.f || !Armor.ZonasCobertas.Contains(Hit.Zona))
{
OutDanoCorpo = Hit.DanoBase;
return EArmorHitResult::Atravessou;
}
// Todo acerto na zona coberta desgasta o item (5 estados).
DegradeArmor(Armor, Hit.Energia);
// AP eleva a classe efetiva do projetil.
const int32 ClasseMunicao = Hit.ClassePenetracao;
if (ClasseMunicao > Armor.Classe)
{
OutDanoCorpo = Hit.DanoBase * ModPenetracao(ClasseMunicao, Armor.Classe);
return EArmorHitResult::Atravessou;
}
if (EnergiaExcedePouco(Hit, Armor)) // meio-termo, nao binario
{
OutDanoCorpo = Hit.DanoBase * FatorDanoReduzido; // + fonte de sangramento leve
return EArmorHitResult::PenetracaoParcial;
}
// Bloqueado: bloquear nao e sair ileso — a energia vira trauma.
OutDanoCorpo = 0.f;
OutChoque = Hit.Energia * TraumaTransferCoef(Armor.Classe); // calibre grande = possivel nocaute
return EArmorHitResult::Bloqueado;
}
(Valores auxiliares como FatorDanoReduzido e os coeficientes de trauma são ilustrativos — a fonte-da-verdade numérica é a tabela desta página e a fórmula de dano da página-hub.)
Ver também
- Sistema de Atributos, Dano e Balística — pipeline completo de dano, balística e zonas do corpo.
- Contaminated Zone, Nanostorm, Dead Zone — zonas que ditam o tipo de proteção obrigatória.