Skip to content

Latest commit

 

History

History
228 lines (189 loc) · 12.7 KB

HISTORIA.md

File metadata and controls

228 lines (189 loc) · 12.7 KB

História — a linha de missões principal

A história é a missão que nunca acaba. Todo personagem recebe o primeiro passo ao entrar no mundo (novo ou de antes da história) e o servidor passa sozinho pro seguinte assim que um termina. Não se aceita, não se abandona. Ela só trava por nível ("Alcance o nível 20") e, na troca de ilha, pela rota estar no ar.

Código: crates/shared/src/historia.rs (passos, falas, epílogo, pontos-chave), crates/server/src/quests.rs (garantir_historia, avancar_historia, checar_trava, cumprir_passo) e GameWorld::tick_historia no servidor.

Sinopse

Há gerações quatro faróis de pedra-trovão, um em cada ilha, seguram a Grande Tempestade longe do arquipélago. Na noite em que o farol do Bosque apaga, você chega à praia como náufrago. Os bichos enlouquecem — o cobre que todos carregam é trovão endurecido —, os Peacemain guardam portos e faróis e os Morganeers, piratas de Morgan, querem a tempestade para eles. De ilha em ilha você reacende os faróis, até jurar como Guardião no Planalto, perto do olho da tempestade. Daí em diante começam as Crônicas da Tempestade.

Capítulos escritos

Capítulo Ilha Ids Passos Travas
I · O Farol do Bosque Bosque (1–20) 700–719 e 803 32 20, antes do barco
II · O Farol Congelado Geleira (20–30) 720–737 18 20, 25, 30
III · Areias que Gritam Ermo (28–42) 737–751 15 35, 40
IV · O Coração da Tempestade Planalto (40–60) 752–768 17 45, 50, 55, 60

Cada passo leva a um ponto-chave:

  • Conversar com NPC da vila ou do porto (Mestre de Missões, Alquimista, Treinador, Ferreiro, Taberneiro, Identificador, Alfaiate, Cartógrafo, Capitão do Porto), com falas escritas. Conclui ao terminar o diálogo.
  • Ir a um ponto-chave (objective_kind::LUGAR): praça, saída da cidade, porto, ponta do cais, mirante (o ponto mais alto da ilha fora da cidade) e costa distante (a terra firme mais longe da praça). As posições saem do relevo e da vila da ilha (historia::ponto_da_historia), não de números escritos. Conclui ao chegar.
  • Caçar o bicho da vez (lobo, urso, pistoleiro, tigre, owlbear, arqueiro, mago ou qualquer um), quebrar pedra, criar e refinar uma peça — os mesmos objetivos das missões do Mestre.
  • Vencer uma dungeon (objective_kind::DUNGEON, alvo = id do conteúdo): só a vitória DAQUELA dungeon conta. Tocar no passo abre o painel de Dungeons já nela. No capítulo I: Porão do Naufrágio (710) e Adega do Contrabandista (717).
  • Trava de nível (objective_kind::NIVEL): fica no rastreador com a barra de XP até o nível e conclui sozinha no level-up.
  • Viagem (objective_kind::VIAGEM): falar com o Capitão do Porto embarca pra ilha seguinte (reconecta no canal dela). Sem canal no ar: "Rota indisponível no momento", sem avançar. Conclui ao entrar no mundo da ilha. O passo LIBERA a ilha: dali em diante o menu Viajar do Capitão (em toda ilha) leva e traz de graça (shared::viagem, ver VILA_E_PORTO.md). O "Ir" de um passo que acontece noutra ilha leva ao Capitão desta.

Recompensas seguem a faixa: ouro, XP, poções (maiores a partir da Geleira), Poção de Experiência nas missões de área (caça e pedra), material na cor da faixa (aço cinza no Bosque, verde na Geleira e no Ermo, azul no Planalto). Nada de equipamento.

Exceção deliberada: o passo 706 entrega uma chave. "O metal da tempestade" dá, além do cobre, 1 Couro cinza. A regra acima continua valendo — chave é material de craft, não equipamento —, mas o registro importa porque é ela que torna possível o passo seguinte: o 707 manda criar a primeira peça, e toda receita de equipamento começa com uma chave (receitas.rs), que na ilha só cai de chefe, a 5%. Sem essa entrega, o 707 pedia por volta do nível 5 algo que o jogador não tinha como fazer. Quem for mexer nas recompensas do 706 precisa saber que está mexendo no destravamento do craft, não num brinde.

O capítulo I carrega o jogador (decisão de 17/09/2026)

O dono pediu que o início "leve a um ponto aceitável: todos os itens podendo farmar, fazer dungeon". A primeira versão só reescreveu textos e a sequência continuou com uma trava "Alcance o nível 5" no passo 704. Com a curva padrão (nível 5 = 15.000 XP) e lobo dando 32, isso eram ~450 lobos.

Agora, no capítulo I:

  • A única trava de nível fica antes do barco: após os tutoriais da ilha, o passo 803 pede nível 20. As secundárias do Bosque ajudam a alcançá-lo. Os passos 704, 710 e 717 continuam sendo coleta e dungeons.
  • A XP dos passos leva o nível, sem contar bicho: nível 6 antes do Porão (pede 6) e 14 antes da Adega (pede 14). A XP é escrita na curva padrão e o servidor aplica o xp_multiplier por cima.
  • Os passos antes do craft entregam a receita inteira da primeira armadura cinza: Berloque ×10 (702), Quintessência ×10 (703), Darksteel ×200 (704), Aço ×30 (705), Cobre ×300 e Couro (706).

Ao embarcar, o personagem desembarca no porto da Geleira e fala com o Capitão no passo 720 antes de seguir para a cidade.

Os dois contratos são testes em historia.rs: capitulo_um_carrega_o_nivel_das_dungeons e o_inicio_entrega_a_primeira_armadura. Os capítulos II a IV ainda têm travas e XP antiga.

De onde vem cada material para farmar depois, o jogador aprende na oficina do Mestre (quests 506-509, ver MISSOES.md).

Crônicas da Tempestade (epílogo procedural)

Depois do passo 768, o índice continua para sempre. Cada crônica tem seis passos, gerados só a partir do índice (historia::cronica):

  1. derrotar N inimigos de qualquer tipo;
  2. quebrar N pedras (paga aço azul);
  3. criar uma peça;
  4. refinar 1–3 vezes;
  5. ir a um ponto-chave (mirante, costa ou cais, alternando);
  6. alcançar o nível 60 + 5 × crônica (65, 70 … 100). Acima do teto de nível (100) vira mais uma caça ("Guardião da Tempestade").

Recompensas crescem por crônica. Ids das crônicas começam em 10000 e vão até 65535 (mais de nove mil crônicas); o mesmo id gera sempre o mesmo passo, e o texto é gerado uma vez por id e guardado.

Estado e persistência

Só duas linhas por personagem em character_quests:

  • a linha marcadora quest_id = 699, status = 3, progress = índice do passo atual;
  • a linha do passo em andamento (id do passo, status e progresso de sempre).

Passo concluído não vira linha: a história infinita não engorda o banco.

Cliente

  • O rastreador mostra o passo da história sempre no topo, dourado com um losango; a trava mostra "Alcance o nível N · você: X" e a barra de XP.
  • Clicar nele liga a auto missão, que segue passo após passo sozinha: pausa nos diálogos (o jogador aperta Próximo/Concluir) e para numa trava de nível com aviso.
  • O menu de todas as missões abre com a seção História: capítulos escritos e as crônicas atual e seguinte, com concluídos, o atual e os futuros com cadeado e o motivo (nível no caminho, passo anterior, ilha).

Tutoriais no capítulo I (19/09/2026)

Cinco passos da história ensinam UMA coisa da interface cada, na hora em que ela começa a fazer falta (objective_kind::TUTORIAL, quests::tutorial):

id passo depois de ação
770 Poção na hora certa 701 (o Alquimista dá as poções) ajustar a % da poção na Barra (Menu › Sistema › Barra)
771 Luta sem as mãos antes de 702 (lobos) ligar o AUTO COMBATE
772 Golpe no automático 703 (Treinador) arrastar uma skill pra CIMA (uso automático)
773 Coleta sem esforço antes de 704 (lenha) ligar o AUTO COLETA
774 O mapa mostra o caminho antes de 709 (mirante) tocar num lugar do mapa
776 A luz nas pedras antes de 704 juntar 270 de Energia (leva até um veio sozinho)
775 O que o nível te deu depois de 776 gastar um ponto de atributo (Menu › Ficha)
777 O primeiro despertar depois de 719 (cap. II) evoluir uma habilidade de tier
  • O cliente avisa o gesto com ClientMessage::Tutorial { acao }, e só com o passo ativo. O "Ir" do passo abre onde se faz (a Barra, o mapa) ou mostra a dica.

  • O 776 é o único tutorial que ANDA. Os outros ensinam um botão; esse ensina um lugar. O destino dele é destino_tipo::COLETA no veio de Energia mais perto (spot_de_coleta_longe com tier == 5), e o auto coleta vai forçado em só Energia — com tronco e pedra ligados ele parava no primeiro toco do caminho. Sem isso o passo era "ache 1 dos 55 cristais do Bosque".

  • Ele pede QUANTIDADE, não um cristal. ENERGIA_DO_TUTORIAL é a soma da escada custo_energia_do_ponto para todos os pontos que os três primeiros níveis rendem (9 pontos × 3 por nível = 270), derivada em const fn pra não descolar das constantes. O crédito conta pelo valor, não por coleta. Cabe em menos de dois veios (240 cada) — mais que isso seria farm, não tutorial.

  • A ordem entre 776 e 775 é contrato, não gosto. Gastar ponto custa Energia (custo_energia_do_ponto), então mandar gastar antes de mandar coletar pede uma coisa que o jogador não tem como fazer — foi o que o dono encontrou jogando em 20/09/2026. Dois testes amarram: pos(776) < pos(775) em tutoriais_no_capitulo_um_uma_acao_cada, e uma_coleta_de_energia_paga_o_primeiro_ponto, que confere que um ciclo de coleta (12 na primeira ilha) cobre o primeiro ponto (10) em toda ilha.

  • Os três novos são contados pelo SERVIDOR (passo_de_tutorial), no ponto em que a ação de fato aconteceu: o ponto gasto em handle_alloc_stat_point (depois de descontar a Energia), o cristal no crédito da pedra tier 5, o tier em handle_evoluir_skill no Ok. Contar no toque do botão fecharia o passo numa tentativa que falta Energia pra concluir.

O foco: tela escura e toque travado (20/09/2026)

Texto no rastreador não ensina onde fica: "toque em COMBATE" não diz onde COMBATE está. client/foco.rs escurece a tela inteira menos um buraco, pisca um anel dourado em volta dele e trava o toque fora dali.

  • Quem desenha um botão que pode ser alvo marca o retângulo (foco::marca(chave, r)); o passo armado pede uma lista de chaves (foco::pede). Ganha a primeira que estiver na tela, e é assim que o buraco anda sozinho MENU → Ficha → "+" sem ninguém saber da ordem de desenho dos outros. O alvo marcado num quadro vale no quadro seguinte.

  • A trava está num lugar só: foco::clique() no lugar de is_mouse_button_pressed(Left), nos 61 pontos da interface. Trava pelo ponto do dedo, não pelo retângulo do widget — é o que faz valer também pro mundo, pro joystick e pra quem eu esquecesse de converter.

  • Armar é tocar no passo no rastreador. Vale por FOCO_TUTORIAL_S (90 s) ou até o passo sair de ACTIVE: se o alvo sumir da tela, o escuro se desfaz sozinho em vez de deixar o jogador preso atrás dele. Chave pedida que ninguém marcou também não acende nada — melhor sem foco que tela preta sem buraco.

  • COLETA_ENERGIA não tem foco: a ação é no mundo, e escurecer a tela esconderia exatamente a pedra que ele precisa achar.

  • O buraco cobre TODA escolha que o passo aceita, e o X junto. Dois passos caíram nisso, os dois achados jogando: "gaste um ponto" marcava o primeiro + e só dava pra subir FOR; "evolua uma habilidade" marcava o botão da skill selecionada e só dava pra subir a primeira da lista. Nos dois o foco não estava errado — estava certo demais, apontando uma das respostas certas e trancando as outras.

    A Ficha marca a união da coluna de + (só os que dão pra apertar — apontar um travado é mandar bater onde não responde) e Habilidades marca o painel inteiro. O X entra no buraco nos dois: sem ele o jogador fica preso no painel até o foco expirar sozinho. Três testes cobram — o_foco_do_tutorial_abre_a_coluna_toda_dos_mais, o_buraco_cobre_a_escolha_inteira e o do fechar.

  • Ids fora da sequência de propósito: a história agora anda pela POSIÇÃO na lista (id_do_passo, indice, capitulo_escrito), e não por 700 + índice. Inserir passo não renumera nenhum outro.

  • O jogador guarda o ÍNDICE na linha marcadora; quem já tinha passado do ponto de inserção tem o marcador realinhado ao passo em andamento no login (quests::garantir_historia). Esse personagem não vê os tutoriais que ficaram para trás.

Planalto da Tormenta (28/09/2026)

O capítulo IV recebeu os passos 855–859 entre os ids existentes: visita às Encostas, vitória no Mosteiro, visita à Forja, vitória na Forja do Titã e chegada ao farol. O 758 agora aponta ao Vale do Trovão. Veja PLANALTO.