Группа, неделя данжа и игра на английском
Три вещи для беты: можно собрать группу до входа в комнату, у данжей каждую неделю свой модификатор, и во всю игру можно играть на английском.
Зачем
До сих пор двум людям, которые хотели играть вместе, приходилось заходить в портал и надеяться, что их закинет в одну комнату. Модификаторы были в дизайне с самого начала, чтобы один и тот же данж не был одинаковым каждую неделю. А дизайн с первой строки требует четыре языка, и чем позже приходит перевод, тем он дороже.
Как это работает
Чтобы собрать группу, коснись кого-нибудь в городе и выбери «Convidar pro grupo». Вмещает до 4. Когда лидер входит в портал, те из группы, кто в городе, идут с ним в ту же комнату, а тот, кто войдёт один позже, попадёт в комнату, где группа уже находится. Чат группы — /p. Без группы игра ищет комнату с людьми похожего уровня (по 10 уровней) и только потом заполняет самую набитую.
У каждой недели свой модификатор, одинаковый для всех данжей: Fúria (враги бьют на 25% сильнее), Fortificados (на 35% больше здоровья), Pressa (на 30% быстрее), Fortuna (чуть больше здоровья и вдвое больше золота) и Tempestade elemental. Он показан наверху комнаты и в информации о Рейде.
В меню есть пункт «Idioma / Language», а при первом запуске игра выбирает язык по языку устройства. Весь интерфейс перенесён в таблицу текстов с более чем 500 записями. Названия контента (предметы, скиллы, классы, монстры, комнаты, рецепты, косметика) тоже имеют английскую версию. Русский и китайский придут позже как новые колонки в той же таблице. Некоторые сообщения, которые сервер собирает сам, например описание лута и объявления, пока остаются на португальском.
Дальше
Фаза интерфейса: поток входа, новая панель и мануал.
Изменения
- feat(rooms): parties, level-band matchmaking and weekly dungeon modifiers
Parties of up to four: invite by tapping a player in the city, accept from a popup, party chat with /p. When the leader takes a portal, the members who are in the city go into the same instance; a member taking the portal alone joins the instance where the party already is. Solo matchmaking prefers an instance in the same level band (tens of levels), then the fullest one; a party prefers an empty room of its own. A weekly modifier from data/modifiers.json (Furia, Fortificados, Pressa, Fortuna, Tempestade elemental) changes enemy health, damage, speed or gold in every dungeon and shows in the room header and the Incursao info. Protocol 17.
- feat(client): Portuguese and English UI (i18n)
All client UI text now goes through a string table: i18n/strings.csv (columns keys,pt_BR,en; 501 snake-case keys, RU/ZH later are new columns), registered in project.godot with pt_BR as fallback. Server notice codes, account errors, rejected-command reasons and food buffs map to key families (notice_*, acc_err_*, reason_*, buff_*). Content names stay Portuguese in data/*.json; data/i18n/en.json holds the English names (items, skills, classes, jobs, mobs and their attacks, rooms and hints, dungeon/incursion layouts, legend phases, portals, buildings, recipes, cosmetics and banners, elements, reactions, chests, grades, affixes, equipment bases, slots, region, farm zones and nodes, hair colors and styles). client/loc.gd (Loc) picks the name for the current locale, falls back to the data name, and can translate a PT text that arrived without an id (room name in the sim meta, layout titles, legend phase texts) by reverse lookup. The main menu has an "Idioma / Language" picker saved to user://settings.cfg ([ui] locale); default is pt_BR when the OS locale starts with "pt", else en. Changing it reloads the scene so HUD, chat and panels rebuild in the new language. --lang=xx forces a locale without saving (screenshots, tests). Chat also accepts /report. tests/test_i18n.gd checks that every key the client uses exists, that no CSV key is unused, that both columns are filled with matching placeholders, and that en.json covers every id of each category. The generated .translation files are gitignored (rebuilt by --import). Pending (still Portuguese in EN): - text formatted by the server: loot_rpc lines, announcements, market sale notices, incursion chest name and drop preview, chest names in the Bag (view has no chest id), legend/explore texts built server-side - gear stat strings (Gear.describe in core) and gear names in market listings, trade and storage views that come without the base id - market search matches the Portuguese item names on the server - guild log dates use day/month in both languages - the report reason sent from the town menu stays PT (it is moderation data)