LeekScript 2 (ранее LeekScript 1.1) — это вторая версия LeekScript, языка Leek Wars, выпущенная 28 февраля 2021 года. Она направлена на очистку языка, внесение исправлений и добавление объекта ориентированного программирования.
Поскольку в способ работы языка внесены глубокие изменения, это версия без обратной совместимости, которая активируется вручную пользователем в редакторе.
Версия 2 — это шаг к будущей версии, анонсированной в 2016 году. Таким образом, многие запланированные функции присутствуют в версии 2, что позволяет постепенно совершенствовать язык, и эти функции очень полезны для кодирования сложного ИИ.
Специальная страница справки по миграции доступна здесь: Миграция LeekScript с 1 на 2.
Добавлено объектно-ориентированное программирование: классы и объекты. См. страницу Классы и объекты для получения всей документации по этому дополнению.
Ключевые слова новый, класс, расширяет, статический, общедоступный, защищенный, частный, реализует, интерфейс, конструктор, это , super и instanceof зарезервированы для ООП и поэтому больше не доступны для имен переменных или функций.
Непримитивные значения, т.е. массивы и объекты, по умолчанию передаются по ссылке. Примитивные значения (число, логическое значение, строка) всегда копируются.
Синтаксис @ больше не используется и поэтому не рекомендуется везде. В LeekScript 2 невозможно создать ссылки на примитивное значение.
Возможность добавления ссылок в массивы (и объекты), что позволяет создавать сложные и/или рекурсивные структуры по разумной цене.
Примеры структур данных, которые сложно получить в 1 и очень легко во 2:
Добавлена функция clone(value, [level]) для точного клонирования значения:
В редакторе возвращено несколько семантических ошибок вместо одной (также доступно в LS 1).


Полный стек вызовов отображается под каждой ошибкой, а не только одной строкой перед ней (также доступно в LS 1).

Но, конечно, всегда можно им воспользоваться. (также доступно в LS 1)
Ограничение на размер массива снято, затраты на операции достаточны для ограничения их использования.
Исправлено arrayFilter: массив корректно переиндексируется, не оставляя пустых значений.
Исправлено экранирование строки "\\", которая корректно отображает один \ вместо двух.
Исправление глобальных объявлений в нескольких файлах.
Исправлена ошибка, из-за которой оператор ^= становился двоичным ИЛИ вместо степени.
Функция перемешивания учитывает генератор случайных чисел, подключенный к боевому начальному числу, и поэтому является детерминированным для одного и того же начального числа. Это может привести к различиям между двумя боями, сгенерированными из одного и того же семени, что повлияет на тесты.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.