Atributos do Jogador

Player Attributes

Especificação de game design dos atributos do personagem: vitais (Vida, Sangue, Consciência, Dor), condições (Stamina, Fome, Sede, Temperatura, Sinal, Sanidade…), o quadro do Sinal, dependências entre atributos e esboço de implementação em C++.

Última edição em 07/07/2026, 20:22 por Admin

Atributos do Jogador

Página de game design (não diegética), derivada de Sistema de Atributos, Dano e Balística. Define o conjunto completo de atributos do personagem do jogador, suas faixas, taxas e limiares.

Premissa: o jogador é um Free — um humano comum, com um Neural Chip dormente herdado que ele não pediu, não usa e não pode remover. Todos os sistemas partem daí.

Os atributos se dividem em dois grupos: vitais (matam) e condições (degradam os vitais e a performance).


1. Vitais

Os quatro vitais são os valores que decidem se o personagem vive, apaga ou morre. Nenhum deles é uma "barra de HP" isolada: cada um regenera (ou drena) em função dos outros.

AtributoFaixaFunção
Vida (Health)0–100Integridade geral. 0 = morte. Regenera lentamente (0,005–0,03/s) e só com Sangue, Fome e Sede altos.
Sangue (Blood)0–5000Perde por ferimentos/sangramento. Abaixo de ~3000: visão desbota e a Consciência drena; abaixo de 2500: morte. Regenera ~0,3/s apenas alimentado e hidratado; transfusão/soro acelera (~3/s).
Consciência (Choque)0–100Trauma acumulado. Abaixo de 25 = inconsciente (só recupera o controle acima de 50). Regenera 5/s acordado, 1/s desmaiado, com cooldown após cada impacto. Inconsciente na água = afogamento em ~20 s.
Dor0–100Não mata: atrapalha. Sway de mira, tremor de câmera, grunhidos audíveis (stealth), ações mais lentas. Reduzida por analgésicos; alta demais colapsa a Consciência.

Pontos de design importantes:

  • Vida não regenera de graça: a regeneração (0,005–0,03/s) só existe com Sangue, Fome e Sede em níveis altos. Um sobrevivente faminto e sangrando não se recupera — estabiliza ou piora.
  • Sangue é o vital "lento": perdê-lo é fácil (ferimentos, sangramento), recuperá-lo é caro. A janela entre ~3000 (visão desbotando, Consciência drenando) e 2500 (morte) é o tempo que o jogador tem para estancar e se tratar.
  • Consciência é o vital "rápido": um trauma forte pode apagar o personagem sem matá-lo. O nocaute abaixo de 25 com retorno de controle apenas acima de 50 cria um intervalo de vulnerabilidade real — e o afogamento em ~20 s torna água + inconsciência uma sentença.
  • Dor é o vital de interface: nunca reduz a Vida, mas contamina tudo que o jogador faz — mira, câmera, ruído (os grunhidos entregam a posição em stealth) e velocidade de ações. Em nível extremo, colapsa a Consciência.

2. Condições

Condições não matam diretamente (com exceções nos extremos), mas degradam os vitais e a performance de forma contínua.

AtributoFaixaEfeito
Stamina0–100Corrida, salto, escalada, melee pesado, prender a respiração na mira. Barra máxima é reduzida pelo peso carregado.
Fadiga0–100Acúmulo de longo prazo (horas sem descanso). Reduz regeneração de Stamina e estabilidade de mira; some com sono/descanso em zona segura.
Fome (Energia)0–5000 kcalDreno basal 0,01/s; caminhar 0,1; correr 0,3; sprint 0,6. Abaixo de 300: dano à Vida (0,05/s) e o Sangue não regenera.
Sede (Água)0–5000 mlMesmas taxas da fome. Desidratação em Scorchlands drena em dobro.
Temperatura corporal~28–41 °CConforto 36,0–36,5. Hipotermia (Dead Zone) e hipertermia (Scorchlands) causam tremor de mira, drenos e, no extremo, dano contínuo à Vida. Roupas têm valor de isolamento; roupa molhada pesa até 2× e isola pior.
Infecção (ferida)estágios 0–3Ferida aberta/mal tratada tem chance de infectar (~40% se fechada sem desinfecção). Evolui para febre, drenos e morte se não tratada — e ferimento de Desynced carrega o risco maior: o Nanotech Virus (estágio terminal = dessincronização).
Radiação/Contaminação0–100Exposição a nanomáquinas ambientais (Contaminated Zone, Nanostorm, Carrier). Sobe sem proteção NBC; alta = dano contínuo, vômito (perde comida/água), redução da Vida máxima até tratamento.
Sincronização Neural (Exposição ao Sinal)0–100Exclusivo do projeto — ver quadro abaixo.
Sanidade/Percepção0–100Cai com escuridão prolongada, anomalias (Black Lake Phenomenon), gritos de Screamer e Exposição alta. Baixa = alucinações audiovisuais (falsos sons de horda, silhuetas), tremores. Recupera perto de fogueiras, música, zona segura, outros jogadores.
Peso carregadokgReduz a Stamina máxima (ver diagrama de dependências abaixo).
MobilidadederivadoEstado composto: pernas feridas + peso + fadiga + temperatura → velocidade real, capacidade de sprint/salto e ruído de passos.

Observações de design:

  • Fome e Sede compartilham as taxas de dreno (basal 0,01/s; caminhar 0,1; correr 0,3; sprint 0,6) — o custo metabólico de cada postura de movimento é um só número, aplicado às duas barras.
  • Fome abaixo de 300 kcal é o ponto de virada: começa o dano direto à Vida (0,05/s) e o Sangue para de regenerar — a inanição corta a recuperação exatamente quando ela é mais necessária.
  • Temperatura é regional: a mesma barra pune a hipotermia da Dead Zone e a hipertermia de Scorchlands, e transforma roupa molhada (até 2× o peso, isolamento pior) num problema logístico real.
  • Mobilidade não é um número armazenado: é o resultado composto de pernas feridas + peso + fadiga + temperatura, recalculado continuamente.

3. O Sinal (Sincronização Neural)

O chip dormente do jogador reage à Rede. A Exposição sobe: perto de Relay Towers ativas, durante Relay Surge e Signal Broadcast, em território Synced, diante dos agentes de elite. Efeitos por faixa:

  • 0–25: zumbido ocasional; nada mecânico.
  • 25–50: interferência no HUD do chip (marcadores piscam), −Sanidade lenta, Screamers detectam o jogador de mais longe.
  • 50–75: sussurros na estática, sway de mira, a Rede o jogador (patrulhas convergem), navegação/bússola falha.
  • 75–100: pré-sincronização — visão tunelada, comandos de movimento com atraso ("o corpo hesita"), e o risco narrativo: durante um evento de The Second Sync, quem estiver no topo da barra desmaia primeiro.

Reduz com: distância das fontes, blindagem de sinal (interior de bunkers, The Wall nas seções silenciosas — ironia intencional), consumível anti-sinal (drogas da The Disconnect), e zera na Dead Zone — o único lugar onde o chip realmente dorme (ao custo do frio letal e de nenhum eletrônico funcionar).


4. Dependências entre atributos

Nenhum atributo vive sozinho. As três correntes principais:

Fome (kcal) ──┐
              ├──> Sangue (regen ~0,3/s só alimentado E hidratado) ──> Vida (regen 0,0050,03/s)
Sede (ml) ────┘         │
                        └── Sangue < ~3000: visão desbota, Consciência drena
                            Sangue < 2500: morte

Choque (impactos, trauma) ──> Consciência
                              < 25 = inconsciente | controle só volta > 50
                              (Dor extrema também colapsa a Consciência)

Peso carregado ──> Stamina máxima
                   livre até ~6 kg; acima disso cada 1 kg corta ~1,75% da barra (piso 5%)

Em forma de lista:

  • Fome/Sede → Sangue → Vida: comer e beber não cura diretamente — habilita a cadeia de regeneração. Sem kcal e ml, o Sangue não sobe; sem Sangue (e Fome/Sede altos), a Vida não sobe.
  • Choque → Consciência: todo impacto gera Choque, mesmo bloqueado por armadura. A Consciência é o alvo do trauma acumulado, com o nocaute como consequência.
  • Peso → Stamina: o peso carregado não deixa o personagem "lento" por mágica — encolhe a barra máxima de Stamina, e tudo que depende dela (sprint, salto, prender a respiração) encolhe junto.
  • Fadiga modula a corrente inteira por baixo: reduz a regeneração de Stamina e a estabilidade de mira até o personagem dormir em zona segura.

5. Esboço de implementação (Origin + GAS)

Regra arquitetural do projeto: o servidor Origin (custom) é a autoridade total — todos os drenos, regenerações, limiares e estados são simulados no servidor, no seu módulo de atributos. O cliente UE usa o plugin OriginGAS: o GAS roda local e idiomático (GameplayAttribute, GameplayEffect, tags), mas a camada de replicação da UE é desligada — os valores chegam por opcodes do OriginNetwork (snapshot completo na entrada + updates incrementais). O cliente não recalcula nada: espelha.

O AttributeSet do jogador segue o padrão do plugin (espelho client-side dos atributos canônicos do servidor):

/**
 * AttributeSet de sobrevivencia do TSS — espelho client-side dos atributos
 * canonicos simulados no servidor Origin (modulo de atributos).
 *
 * Server e autoritativo: cliente NAO recalcula nada. Estes valores sao
 * populados pelo snapshot de atributos do OriginNetwork na entrada do mundo
 * e atualizados por opcodes incrementais.
 *
 * Replicacao UE desabilitada: mudancas chegam via opcodes OriginNetwork.
 */
UCLASS()
class UTSSSurvivalAttributeSet : public UAttributeSet
{
    GENERATED_BODY()

public:
    // === Vitais (4) ===
    UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
    FGameplayAttributeData Health;          // 0-100; 0 = morte
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Health)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
    FGameplayAttributeData Blood;           // 0-5000; fatal < 2500
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Blood)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
    FGameplayAttributeData Consciousness;   // 0-100; nocaute < 25, retorno > 50
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Consciousness)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
    FGameplayAttributeData Pain;            // 0-100; debuff de manuseio
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Pain)

    // === Condicoes ===
    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData Stamina;         // atual
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Stamina)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData MaxStamina;      // reduzida pelo peso (server calcula)
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, MaxStamina)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData Energy;          // 0-5000 kcal (Fome)
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Energy)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData Hydration;       // 0-5000 ml (Sede)
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Hydration)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData BodyTemperature; // ~28-41 C
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, BodyTemperature)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData Contamination;   // 0-100
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Contamination)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData SignalExposure;  // 0-100 (Sincronizacao Neural)
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, SignalExposure)

    UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
    FGameplayAttributeData Sanity;          // 0-100
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Sanity)

    // === Meta (efemeros; pattern do plugin: o hook server-side converte e zera) ===
    UPROPERTY(BlueprintReadOnly, Category = "TSS|Meta")
    FGameplayAttributeData Damage;          // empurrado pelo GE de dano; vira Health/Blood no server
    ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Damage)
};

Divisão de responsabilidades:

OndeO quê
Servidor Origin (módulo de atributos)Tick autoritativo: drenos por atividade (0,01/0,1/0,3/0,6), regenerações condicionais (Sangue exige Fome+Sede; Vida exige Sangue+Fome+Sede), limiares (morte < 2500 de Sangue; nocaute < 25 de Consciência), estados (infecção, fratura, exposição).
OriginNetwork (opcodes)Snapshot completo dos atributos na entrada + updates incrementais; estados viram tags/efeitos anunciados ao cliente.
Cliente UE (OriginGAS)Espelha os valores no AttributeSet acima; HUD, câmera, sway, pós-processo e áudio leem os atributos — nunca os escrevem. Efeitos cosméticos locais (tremor, vinheta) podem usar GameplayCues disparados pelos opcodes.

Ver também