Itens
Última edição em 07/07/2026, 20:34 por Admin
Itens
Página de game design (não diegética). Hub do sistema de itens de The Sync Survival: define o modelo de dados comum a todo item do jogo e organiza o catálogo por tipo.
1. Visão geral
Todo objeto que pode ser carregado, equipado, consumido ou negociado é um item — e todo item existe em duas camadas:
- Definição (estática): o "molde" do item — nome, taxonomia, dimensões, peso base, valores. Vive num catálogo canônico do servidor, com id estável; o cliente UE espelha cada definição num
PrimaryDataAssetque carrega só a parte visual (mesh, ícone, sons, widgets). - Instância (dinâmica): um item concreto no mundo, com GUID gerado pelo servidor, durabilidade atual, contagem de stack, posição num grid e histórico próprio. Duas instâncias do mesmo molde são objetos distintos — e a hierarquia (item dentro de container dentro de mochila) é expressa por GUIDs, nunca por ponteiros.
O inventário é espacial: cada item ocupa um retângulo W×H em células de grid, pode girar 90° para caber, e containers (mochila, colete, bolsos) oferecem grids próprios e aninháveis — ver Peso e Mobilidade.
Arquitetura (breve): os itens são simulados exclusivamente no servidor Origin — a instância viva é uma Entity, a persistida é um Record. O cliente espelha snapshots/deltas recebidos por opcodes e envia apenas intents (mover, dividir, equipar, usar); nenhuma mutação de item é decidida no cliente.
2. Modelo base — comum a todo item
| Campo | Tipo | Descrição |
|---|---|---|
| Guid | id de instância | Gerado pelo servidor; identifica o item em rede, persistência e UI, e sobrevive a save/load. A definição correspondente é apontada por um id estável de catálogo. |
| Nome | texto | Nome de exibição + descrição curta de UI (na definição, não na instância). |
| Tipo | taxonomia hierárquica | Tipo primário (Arma, Munição, Comida…) + subtipo. Extensível sem tocar no núcleo do sistema. |
| Dimensões no grid | W×H (células) | Footprint espacial; rotação de 90° troca W↔H. Itens dobráveis (coronha dobrada) têm um segundo footprint. |
| Peso | kg | Peso unitário; o peso agregado (item + conteúdo) sobe a hierarquia com cache e alimenta a curva peso→Stamina de Peso e Mobilidade. |
| Durabilidade | atual/máx + 5 estados | Novo 1,0 · Gasto 0,7 · Danificado 0,5 · Muito Danificado 0,3 · Arruinado 0,0 — o mesmo modelo de Proteção e Armaduras. Arruinado perde a função e não volta a Novo. |
| Valor | SYN | Preço base de referência do catálogo; o preço real é do mercado (região, reputação, estado do item). |
| Raridade | 5 níveis | Comum · Incomum · Raro · Épico · Lendário — cor do slot na UI e peso nas tabelas de loot. |
| Stack máximo | inteiro | 1 = não empilha. Dividir/combinar pilhas é transação validada no servidor. |
| Flags | bitmask/tags | Container (oferece grids), Equipável (um dos 14 slots), Consumível, Empunhável, Único (artefatos), QuestItem… |
// Servidor Origin — definicao canonica (catalogo) e instancia (Entity/Record).
// O cliente UE espelha a definicao em PrimaryDataAsset (visual) e a instancia
// em structs atualizadas por opcodes; a UI so emite intents.
USTRUCT()
struct FTSSItemDefinition
{
GENERATED_BODY()
UPROPERTY() FName ItemId; // id estavel do catalogo
UPROPERTY() FText DisplayName;
UPROPERTY() FGameplayTag Type; // TSS.Item.Weapon, TSS.Item.Food, ...
UPROPERTY() FIntPoint GridSize; // W x H em celulas (rotacao troca W/H)
UPROPERTY() float WeightKg = 0.1f;
UPROPERTY() float MaxDurability = 100.f; // 5 estados derivados por faixa
UPROPERTY() int32 ValueSYN = 0;
UPROPERTY() FGameplayTag Rarity;
UPROPERTY() int32 MaxStack = 1;
UPROPERTY() int32 Flags = 0; // Container | Equipavel | Consumivel...
};
USTRUCT()
struct FTSSItemInstance
{
GENERATED_BODY()
UPROPERTY() FGuid InstanceId; // gerado pelo servidor — a identidade
UPROPERTY() FName ItemId; // aponta para a definicao
UPROPERTY() int32 Count = 1; // stack atual
UPROPERTY() float Durability; // atual (0..MaxDurability)
UPROPERTY() FGuid ParentContainer; // hierarquia por GUID, nunca ponteiro
UPROPERTY() FIntPoint Cell; // celula-ancora no grid do pai
UPROPERTY() bool bRotated = false; // girado 90 graus
};
3. Tipos de item
Cada tipo estende o modelo base com os próprios campos — detalhados nas subpáginas:
- Armas — cadência, modos de tiro, dispersão, recuo, slots de attachment, desgaste por tiro e ruído. A arma nunca define dano: dano vem da munição.
- Munição — calibre, massa, velocidade inicial e classe de penetração P-I a P-IV; a fonte de energia da Fórmula de Dano.
- Proteção e Vestuário — os 14 slots de equipamento, classes balísticas C-I a C-IV, zonas cobertas, isolamento e bolsos.
- Comida e Bebida — kcal e ml contra as barras de Fome e Sede de Atributos do Jogador; estados fresco/cozido/estragado e perecibilidade.
- Médicos — a resposta a cada estado ruim do corpo: sangramento, fratura, Dor, infecção, contaminação e Sinal.
- Ferramentas — reparo, craft, acesso e navegação; inclui a bússola analógica que mantém a Dead Zone navegável.
- Acessórios de Arma — miras, supressores, grips e carregadores; modificadores de manuseio por slot.
- Containers — mochilas, coletes e bolsas: grids oferecidos, peso próprio e a regra de acesso rápido vs parar para abrir.
- Recursos e Materiais — o combustível do craft/reparo/construção, com origem regional (salvage).
- Artefatos e Especiais — itens únicos de lore e progressão: Neural Key, Genesis Core, Origin Fragment e afins.
Ver também
- Peso e Mobilidade — slots, grids, hotbar e a curva peso→Stamina.
- Fórmula de Dano e Balística — de onde vêm os números de armas e munições.
- Proteção e Armaduras — classes, absorção e durabilidade em 5 estados.
- Atributos do Jogador — as barras que comida, remédio e peso alimentam.