/**
 * @fileoverview Utility module for tourSteps.js
 * 
 * @module games.mole-mash.config.tourSteps
 */

import {
  createWelcomeStep,
  createGameAreaStep,
  createToolboxStep,
  createWorkspaceStep,
  createRunButtonStep,
  createResetInfoStep,
  createPhaseSelectorStep,
  createPhaseInfoStep,
  createHelpButtonStep,
  gameIcons,
  defaultGameTourOptions,
} from "../../../../utils/tourHelpers";

export const moleMashTourSteps = [
  createWelcomeStep({
    gameName: "Toupeira no Buraco",
    description:
      "Bem-vindo ao jardim lógico! Sua missão é controlar os saltos da toupeira através de código e lógica de programação.",
    challenge:
      "Aprenda a usar coordenadas, loops, variáveis de memória e algoritmos de IA para criar o salto perfeito.",
    iconSvg: gameIcons.mole,
  }),

  createGameAreaStep({
    title: "O Jardim (Grid 3x3)",
    description:
      "Aqui é onde a toupeira aparece. O tabuleiro possui 3 linhas e 3 colunas. Lembre-se: qualquer movimento fora desse intervalo (1 a 3) fará a toupeira fugir do jardim!",
  }),

  createToolboxStep({
    description:
      "Sua caixa de ferramentas! Comece com movimentos simples e desbloqueie blocos de sorteio aleatório, variáveis de memória e loops complexos conforme avança.",
  }),

  createWorkspaceStep({
    description:
      "Arraste os blocos para cá para montar a lógica. Você aprenderá a guardar a posição anterior da toupeira em variáveis para que ela nunca salte no mesmo lugar duas vezes.",
  }),

  createRunButtonStep({
    description:
      "Hora do show! Clique aqui para executar seu script. Observe a toupeira saltar e confira se ela está seguindo as regras da fase atual.",
  }),

  createResetInfoStep({
    description:
      "Algo deu errado ou o código travou? O botão de reset limpa o histórico de movimentos e coloca a toupeira de volta na posição central (2, 2).",
  }),

  createPhaseSelectorStep({
    description:
      "A jornada do programador: comece movendo a toupeira manualmente e termine criando um ciclo infinito de saltos inteligentes na Fase 10.",
  }),

  createPhaseInfoStep({
    description:
      "Fique de olho nos objetivos! Algumas fases exigem que você use variáveis específicas (como ult_l e ult_c) ou que a toupeira realize 50 saltos seguidos sem errar.",
  }),

  createHelpButtonStep({
    description:
      'Dúvidas sobre como usar o bloco "Enquanto" ou como funcionam as coordenadas? Abra o tour de ajuda a qualquer momento.',
  }),
];

export const moleMashTourOptions = defaultGameTourOptions;
