/**
 * @fileoverview Utility module for constants.js
 * 
 * @module games.cripto.ui.constants
 */

export const ConstantesJogo = {
  LARGURA_TELA: 800,
  ALTURA_TELA: 600,
  COR_FUNDO: "#242527",
};

export const ConstantesLayout = {
  MARGEM_PERCENTUAL: 0.03,
  LARGURA_QUADRO_ESQ_PERCENTUAL: 0.2,
  COR_BORDA: 0x00ff00,
  ESPESSURA_BORDA: 5,
  RAIO_ARREDONDAMENTO: 12,
  PADDING_TEXTO: 20,
};

export const ConstantesTexto = {
  ENTRADA: {
    TAMANHO_FONTE: "64px",
    COR: "#00ff00",
    ALINHAMENTO: "left",
    PESO_FONTE: "bold",
  },
  SAIDA: {
    TAMANHO_FONTE: "64px",
    COR: "#ffff00",
    ALINHAMENTO: "left",
    PESO_FONTE: "bold",
  },
};

export const ConstantesAnimacao = {
  CARACTERES_EMBARALHAMENTO: String.fromCharCode(
    ...Array.from({ length: 51 }, (_, i) => 128 + i),
  ),
  CURSOR: "▓",

  ENTRADA: {
    VELOCIDADE_DIGITACAO: 50,
    INTERVALO_PISCAR_CURSOR: 400,
  },

  SAIDA: {
    DURACAO_EMBARALHAMENTO: 20,
    REPETICOES_EMBARALHAMENTO: 2,
    PAUSA_ENTRE_CARACTERES: 15,
  },

  CONCATENACAO: {
    DURACAO_EMBARALHAMENTO: 20,
    REPETICOES_EMBARALHAMENTO: 2,
  },

  MATRIX: {
    CARACTERES_HEX: "0123456789ABCDEF",
    NUMERO_COLUNAS: 7,
    TAMANHO_FONTE: "20px",
    COR_TEXTO: "#00ff00",
    INTERVALO_ATUALIZACAO: 250,
    CARACTERES_POR_COLUNA: 21,
  },
};
