====== Портирование ваших игр с... ====== * [[#raconteur|Raconteur]] * [[#undum|Undum]] * [[#dendry|Dendry]] ===== Raconteur ===== Портирование с Raconteur довольно просто по структуре, но вот что вам нужно проверить: ==== Игра ==== - Salet не имеет зависимостей от библиотек. Raconteur и Undum уже переработаны в его ядре. Почистите свой ''%%package.json%%'' - **ВАЖНО** Salet использует класс ''%%room%%'' в то время как Raconteur оперирует над классом ''%%situation%%'' - **ВАЖНО** Salet использует свойство ''%%dsc%%'' вместо ''%%content%%'' - (совет) Вы можете использовать ''%%elements.js%%'' из Raconteur, но обычно нет нужды городить зависимости ради одной-двух функций. Просто пишите ''%%(content,ref) -> "#{content}"%%'' вместо ''%%(content,ref) -> a(content).once().writer(ref)%%''. Использование то же самое. - Вам может понадобиться проверить свои функции ''%%before%%'' и ''%%after%%'' и переключить их на ''%%enter%%'' и ''%%exit%%''. Это зависит от желаемого поведения. - Вы можете разбить свою игру на несколько файлов, что не отразится на коде. Ищите ''%%concat%%'' в ''%%Gulpfile.coffee%%'' - Также см. раздел "изменения по сравнению Undum" ниже. ==== CSS и HTML разметка ==== - Salet использует прекомпилятор Sass, когда Raconteur предпочитает LESS. - Также Salet использует фреймворк Bootstrap (v4) - Salet по умолчанию прячет блок "tools" вместе с качествами персонажа. Они не показываются игроку. - **ВАЖНО** Salet ожидает, что вы будете загружать jQuery и компилятор Markdown как клиентские библиотеки Javascript. Raconteur просто склеивает всё в один большой комок. (jQuery вставляется **дважды**) ===== Undum ===== Нововведений по сравнению с Undum слишком много, чтобы портировать игры как есть, но я замечу самые большие изменения. (Нововведения не перечислены.) - HTML API убрано. - ''%%animateQuality%%'' убрано. В Salet нет готовых прогресс-линеек. - Качества не показываются игроку автоматически. Вы сами задаёте, что показывать и как это выглядит. - Мобильное меню и вся функциональность при изменении размера окна браузера отданы в CSS. - Функция ''%%enter%%'' переименована в ''%%entering%%''. Функция ''%%enter%%'' также вызывается при входе в ситуацию (теперь - комнату), но сейчас вы можете легко её переписать, не угрожая логике игры. - Ситуация не может быть неявным выбором внутри самой себя. - ''%%optionText%%'' может быть HTML, а не обычным текстом. - Вы можете поймать функцию ''%%processClick%%'' и использовать её для настройки интерфейса игры. - Поправка: вы можете переопределить любую функцию интерфейса. Эффекты показа или скрытия, вывод текста, стирание текста… - ''%%optionText%%'' также может быть //функцией.// - ''%%SimpleSituation%%'' убрана. - jQuery (вместе с Markdown) библиотека **НЕ** поставляется вместе с вашей игрой. Игрок скачивает её с CDN (или, скорее всего, уже имеет её в кэше браузера). Это значит, что по умолчанию игры не запустятся без подключения к Интернету. Если хотите сделать игру доступной вне сети, вам придётся положить нужные библиотеки самостоятельно. - ''%%minChoices%%'' убрана. - Частота ситуаций ещё не написана. (см. [[https://gitlab.com/Oreolek/salet-module/issues/1|задачу 1]]) ===== Dendry ===== - По умолчанию нет опции ''%%subtitle%%''. Но ''%%optionText%%'' - это HTML, так что вы можете оформлять её как захотите, см. #17 - Вместо одного свойства ''%%title%%'' в Salet есть отдельные ''%%optionText%%'', название комнаты и любой заголовок, который вы поставите в текст. Смысл в том, чтобы они могли различаться. - ''%%new-page%%'' становится ''%%clear%%''. По умолчанию оно включено для комнат. - ''%%view-if%%'' становится ''%%canView%%'' - ''%%on-arrival%%'' становится ''%%enter%%'' //или// ''%%before%%''. ''%%before%%'' может быть текстом. Вам придётся описать их как функции, если вы хотите устанавливать переменные. //(просто напишите ''%%before: () -> season += 1%%'')// - ''%%tags%%'' остались без изменений, но с другим синтаксисом: ''%%tags: ["weekly", "weekend", "awesome"]%%'' - Нет особых правил по разделению вашего кода. Делайте что хотите. - Нет особых под-комнат. Каждая комната пишется как комната. Но вы можете делать удобные функции, такие как ''%%dialogue%%'', если ваши комнаты достаточно просты. - Частота ситуаций ещё не написана. (см. #18)