LeekScript 2 (anteriormente LeekScript 1.1) é a segunda versão do LeekScript, a linguagem de Leek Wars, lançada em 28 de fevereiro de 2021. Tem como objetivo limpar a linguagem, fazer correções e adicionar objeto de programação orientado.
Como são feitas profundas modificações no funcionamento da linguagem, esta é uma versão sem compatibilidade com versões anteriores que é ativada manualmente pelo usuário no editor.
A versão 2 é um passo em direção à futura versão anunciada em 2016. Muitas funcionalidades planejadas estão, portanto, presentes na versão 2, permitindo que a linguagem seja avançada gradativamente, sendo estas funcionalidades muito benéficas para a codificação de IA complexa.
Uma página de ajuda dedicada à migração está disponível aqui: LeekScript 1 to 2 Migration.
Adicionado programação orientada a objetos: classes e objetos. Veja a página Classes and Objects para toda a documentação sobre esta adição.
As palavras-chave new, class, extends, static, public, protegido, privado, implementos, interface, construtor, este , super e instanceof são reservados para OOP e, portanto, não estão mais disponíveis para nomes de variáveis ou funções.
Valores não primitivos, ou seja, arrays e objetos são passados por referência por padrão. Valores primitivos (número, booleano, string) são sempre copiados.
A sintaxe @ não é mais usada e, portanto, está obsoleta em todos os lugares. Não é possível no LeekScript 2 criar referências a um valor primitivo.
Capacidade de adicionar referências em arrays (e objetos), permitindo criar estruturas complexas e/ou recursivas a um custo razoável.
Exemplos de estruturas de dados difíceis de conseguir em 1 e muito fáceis em 2:
Adicionada uma função clone(value, [level]) para clonar um valor com precisão:
Vários erros semânticos retornaram no editor ao invés de apenas um (também disponível no LS 1).


A pilha de chamadas completa é exibida abaixo de cada erro, em vez de apenas uma linha antes (também disponível em LS 1).

Mas é sempre possível usá-lo, é claro. (também disponível em LS 1)
O limite de tamanho do array é removido, sendo o custo em operações suficiente para limitar seu uso.
ArrayFilter fixo: o array é reindexado corretamente sem deixar valores nulos.
Corrigido o escape da string "\\" que exibe corretamente um único \ em vez de dois.
Correção em declarações globais em vários arquivos.
Corrigido o operador ^= tornando-se o OR binário em vez da potência.
A função shuffle leva em consideração o gerador de números aleatórios conectado à semente de combate e, portanto, é determinística para a mesma semente. Pode causar variações entre duas lutas geradas a partir da mesma semente, o que impacta os testes.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.