Учу покупателей правильно формулировать заказ
Когда покупатель приходит на кассу, ему нужно озвучить игроку список товаров для покупки. Но как сгенерировать такую фразу?
Человеки приходят на кассу уже с каким-то заказом в голове. Когда игрок принимает заказ, НПС проходится по своему заказу, сравнивает сначала наличие товаров на полках, отсеивает ненайденные, затем проверяет цены - разумные ли они и готов ли он за столько купить товар.
После этих двух базовых проверок, покупатель сформирует свой окончательный заказ и сообщает его игроку.
Ситуации с заказом могут сложиться разные: что-то не нашлось, что-то дорогое, ничего не нашлось или всё нормально.
Допустим, у нас сформировался список, который надо показать игроку, показываем, в чем проблема? Проблема в падежах)
Вариант 1(Простой)
Самое первое, что приходит в голову: "Ну давай подгоним фразы так, чтобы выдавать список товаров в именительном падеже, раз у нас названия товаров в этой форме."
Давай!
И тогда мы получим что-то вроде:
"Привет, дай мне следующие товары: молоко, мука, бумага, соль"
или
"Жаль, не могу найти на полках товары: мука, молоко, батон, сахар"
Согласись, звучит слишком по-терминаторски и вряд ли в жизни часто услышишь такое предложение от живого человека. Поэтому думаем дальше.
Вариант 2(Падежи)
В жизни, я бы сказал подобную фразу следующим образом:
"Привет, дай мне, пожалуйста, молоко, муку, бумагу и соль."
или
"Жаль, не могу найти на полках муку, молоко, батон и сахар."
Посмотрим на оба варианта и выделим для себя отличия.
Во-первых, названия товаров теперь в винительном падеже.
Во-вторых, в конце перечисления запятая уходит и появляется союз "и".
С этими двумя отличиями и будем пока работать.Чтобы добавить склонения, нужны 6 форм слова под каждый падеж. Чтобы не ограничивать себя в будущем от формирования фраз, ведь в других вариантах может уже быть не винительный падеж, а, например, родительный.Сказано - сделано, каждому названию товаров прописаны все 6 падежей.Теперь, в таблице локализации, где лежит сам вариант фразы, нужно добавить какой-нибудь маркер, чтобы игра понимала, форму какого падежа ей нужно использовать для списка товаров.
Дальше, добавляем союз "и" между последним и предпоследним элементом перечисления.
Чтобы такое:
Превратить в вот такое:
Уже звучит, на мой взгляд, привычнее, чем именительный падеж и список.
Но нашёлся ещё один момент. Переносы.
Пока тестировал всю эту систему с формированием заказа, заметил, что неприятно отрывается при переносе "шт" от числа.
Чтобы это поправить, обычный пробел был заменён на неразрывный пробел. Теперь, на новую строку перенесётся всё название товара полностью и его количество в скобках.
Количество товаров
После всего этого, было ещё немного странно, что покупатель приходит, не находит товары из списка и сообщает не только их названия, но и сколько штук он хотел купить. Поэтому в таблице добавился ещё один маркер - маркер отображения количества товаров.
Теперь, количество штук подписывается только у тех товаров, которые НПС готов купить:
P.S.
Можно было пойти дальше и вводить единственное/множественное число, а значит и ещё дополнительно по 6 форм склонений. Но пока остановимся на таком среднем варианте, чтобы было куда расти 🤓
Ещё, можете подать заявку на самый-самый первый плейтест!