Игра на Twine Sugarcube или 1000 и 1 страдание (инструкция для начинающих) Часть 5.
Учимся прокачивать персонажа и его дом. А также создадим инвентарь, добавим магазин для покупки шмоток и научимся этими шмотками усиливать персонажа.
ПРОКАЧКА ПЕРСОНАЖА
После лечения по первоначальной задумке было решено добавить библиотеку, где герой продвигался бы дальше по сюжету. Но это будет потом. А пока я просто добавил возможность прокачки ГГ в библиотеке.
Добавляем 2 новых пассажа library и library_event
Блок library:
<<if $story == 27>> это уже для поздних этапов игры, не обращаем внимания.
Блок library_event:
Как видно, выше 80 интеллекта я не даю подняться (не хочу, что бы мой персонаж был умнее меня). Это будет реализовано значительно позже с помощью артефактов.
НОВЫЙ ДОМ И ОПЛАТА ЗА НЕГО
Следом по сюжету идет покупка нового дома. Для этого:
1. Добавил переменные $house_type, $days_to_rent
2. Через <<elseif $story 22>> добавил у ведьмы необходимость снять жилье и помыться.
3. Добавил пассажи rent_pay, wash, home_purchase
Сами пассажи набил следующим текстом:
home_purchase (ссылку на него добавил на улице)
Пассаж home дополнил:
Пассаж rent_pay:
Пассаж wash:
ИНВЕНТАРЬ и ЭКИПИРОВКА
Вот и настала ЕГО очередь. Инвентарь! По такому случаю я заготовил сразу 2 мема:
Могу лишь сказать, что задача оказалась невероятно сложной именно в творческом плане. Интернет наполнен разнообразными формумами, как именно его лучше сделать, и TWINE SUGARCUBE тут не исключение. Однако стоит понимать, что ты, либо либо обладаешь знаниями, намного превосходящими мои (особенно в Jawa Script), либо выкручиваешься, как и я.
Эксперты, настало Ваше время неистово доминировать доминировать надо мной в комментариях.
По итогу, посмотрев на другие игры на этом же движке и покопавшись в форумах, решил отказаться от части задумок (например от реакции на цвет одежды(технически такая возможность осталась, но придется каждую шмотку прописывать отдельно)). В конечном итоге пришел к следующей схеме:
1. Каждая вещь будет задана своей переменной
2. Этой переменной будет присваиваться определенное значение, и в зависимости от значения предмет будет, либо активным, либо экипированным, либо просто лежать в инвентаре.
Итак после того, как прописали ведьме квест по переодеванию ГГ, идем в промпты:
StoryInit дополняем шмотками:
Так же промпт StoryCaption дополняем таблицей и шмотками:
Не забываем сюда
добавить текст
Как видите, ничего лучше, чем проверить на условие равна ли переменная предмета двум, я не придумал, и при большом количестве вещей, этот код становится действительно монструозным. Думаю, когда в игре будет не 8 шмоток, а за 50, моя реакция будет такой:
Надеюсь, к тому времени я придумаю что-то по лучше...
МАГАЗИН
Так же добавил магазин (пассажи shop и shop_1):
Пассаж shop:
Пассаж shop_1:
Постарался предусмотреть все: наличие или отсутствие денег, а так же проверка если у персонажа уже этот предмет: К счастью, браузеры умеют автоматически масштабировать изображения, и надо всего лишь указать style="display:block; max-width:200px; в ссылке на изображение, чтобы получить изображение шириной в 200 пикселей.
Далее добавил пассажи для гардероба и смены одежды:
Чуть ниже будет виден код и чтобы не усложнять его многоуровневыми <<if>> конструкциями, пришлось сделать смену каждой шмотки отдельно. Они целиком однотипные, поэтому покажу на примере только одного блока, но перед этим опишу, что находится в пассаже wardrobe:
Пассаж change_cap:
Так же в пассаже wardrobe я реализовал увеличение множителей урона от шмоток:
Обнуление было добавлено с целью избежать вечного накопления усилений ГГ.
Кнопки «НАЗАД» и «ВЕРНУТЬСЯ»
В очередной раз мучая Chat-GPT тупыми вопросами, я узнал про новые возможности движка
А именно про кнопку <<back>>.
Но я же человек не глупый (Хорошо! Не настолько глупый!). И сразу нырнул в бездну документации, а когда вынырнул, стал обладателем уникальных знаний про <<back>>. и <<return>>.
Если вкратце, то кнопка <<return>> просто возвращает Вас в предыдущий пассаж (из вообще любого места), а кнопка <<back>> не только возвращает Вас в предыдущий пассаж, но и возвращает предыдущие значения переменных.
Именно вторая кнопка мне очень помогла в надеванием шмоток. Создателем этих кнопок я хочу сказать только одно:
П.С. если будете задавать чат ботам много вопросов, то можно запросто их сломать. А еще они ломаются сами по себе, так что насколько бы я не был туп, и не был умен чат-бот, свои знания в голове все же надо держать.
КНОПКА ИНВЕНТАРЯ И СТАТИСТИКИ:
Благодаря вышеописанным кнопкам я, наконец, смог сделать кнопки инвентаря и статистики.
Через пассаж StoryCaption добавляем 2 новых пассажа:
Для наглядности я вынес их отдельно от остальных блоков:
Пассаж statistic:
Как видно, написано тут мало и больше для себя, но в принципе можно будет писать сюда что угодно. Главное, не создавать внутри statistic и inventory новые переходы, иначе не получится вернуться в простые комнаты (или придется делать дополнительные ссылки, типо кнопки «Я застрял», которая перенесет героя домой)
Пассаж statistic практически полностью повторяет пассаж wardrobe, но это временно. Его я буду расписывать значительно позже:
В следующей части я буду завершить разработку игры. Прокачаем все характеристики персонажа, создадим квест победы над боссом и добавим пару мелочей.
Напоминаю про бота. Не обязательно пользоваться именно этим, но в принципе на использование ботов я Вас сильно агитирую.