Skip to content

Commit d3f9247

Browse files
committed
Add class portraits and prune dead VIZ nodes
1 parent c06593e commit d3f9247

4 files changed

Lines changed: 28 additions & 3 deletions

File tree

app/js/config.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ var VizMagicConfig = (function() {
88
/** VIZ blockchain node endpoints (HTTP and WebSocket) */
99
var NODES = [
1010
'https://api.viz.world/',
11-
'https://node.viz.cx/',
12-
'https://viz.lexa.top/',
13-
'wss://solox.world/ws'
11+
'https://node.viz.cx/'
1412
];
1513

1614
/** Protocol identifiers registered on VIZ chain */

app/js/i18n/en.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,28 @@ var LangEN = {
5454
onboarding_name_invalid: 'The ancient runes cannot form this name.',
5555
onboarding_class_title: 'Choose Your Path',
5656
onboarding_class_text: 'The ancient paths of magic lie before you. Each grants different powers.\nChoose wisely — but know that every mage can unlock new paths over time.',
57+
onboarding_path_portrait_title: 'Path Portrait',
58+
onboarding_path_portrait_empty: 'Choose a class to see its image and story.',
5759
onboarding_next: 'Next',
5860
onboarding_back: 'Back',
5961

6062
// Classes
6163
class_stonewarden: 'Stonewarden',
6264
class_stonewarden_desc: 'Stand firm. Nothing shall break you.',
6365
class_stonewarden_detail: 'A great shield. Hard to defeat. Great for beginners.',
66+
class_stonewarden_portrait: 'The Stonewarden came from frontier keeps where every night tests the walls for weakness. He is used to being the one who remains when others have already retreated. His magic is stone, patience, and a will that is hard to bend. He goes where a shield is needed more than applause.',
6467
class_embercaster: 'Embercaster',
6568
class_embercaster_desc: 'Hit hard. Hit fast. Leave nothing behind.',
6669
class_embercaster_detail: 'Hurls massive fire spells. Wins quickly.',
70+
class_embercaster_portrait: 'The Embercaster grew up beside fire and learned too early how sweet it is to command power with a single gesture. He has little love for hesitation or delay. His path is to strike first, brightly and fast, before the enemy can gather themselves. He walks as if flame itself has chosen him for a voice.',
6771
class_moonrunner: 'Moonrunner',
6872
class_moonrunner_desc: 'Swift and stealthy. The best attack is the unseen one.',
6973
class_moonrunner_detail: 'Master of evasion and surprise strikes.',
74+
class_moonrunner_portrait: 'The Moonrunner came from places where silence is worth more than shouting and a mistake costs more than a wound. He sees weakness where others notice only shadow. His strength is speed, patience, and the strike that lands when no one is looking. He walks the edge of the world quietly, but almost always arrives first.',
7075
class_bloomsage: 'Bloomsage',
7176
class_bloomsage_desc: 'Heal, protect, weave vine-traps.',
7277
class_bloomsage_detail: 'Controls the battlefield. Excellent in groups.',
78+
class_bloomsage_portrait: 'The Bloomsage was raised where magic flows through water, roots, and the memory of the earth itself. He can do more than heal and protect — he can change the shape of battle so gently the enemy barely notices. His path is to keep allies standing and bind danger before it blooms. He walks not for spectacle, but for living harmony.',
7379
class_difficulty_easy: 'Easy',
7480
class_difficulty_medium: 'Medium',
7581

app/js/i18n/ru.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,28 @@ var LangRU = {
5454
onboarding_name_invalid: 'Древние руны не могут сформировать это имя.',
5555
onboarding_class_title: 'Выбери Свой Путь',
5656
onboarding_class_text: 'Древние пути магии лежат перед тобой. Каждый даёт разные силы.\nВыбирай мудро — но знай, что каждый маг может открыть новые пути со временем.',
57+
onboarding_path_portrait_title: 'Портрет пути',
58+
onboarding_path_portrait_empty: 'Выберите класс, чтобы увидеть его образ и историю.',
5759
onboarding_next: 'Далее',
5860
onboarding_back: 'Назад',
5961

6062
// Classes
6163
class_stonewarden: 'Стражник',
6264
class_stonewarden_desc: 'Стой твёрдо. Ничто тебя не сломит.',
6365
class_stonewarden_detail: 'Большой щит. Тебя трудно сбить. Отлично для новичков.',
66+
class_stonewarden_portrait: 'Стражник пришёл из приграничных крепостей, где ночь всегда проверяет стены на прочность. Он привык быть тем, кто остаётся, когда другие уже отступили. Его магия — камень, терпение и воля, которую трудно согнуть. Он идёт туда, где нужен щит, а не аплодисменты.',
6467
class_embercaster: 'Искровержец',
6568
class_embercaster_desc: 'Бей сильно. Бей быстро. Ничего не оставляй.',
6669
class_embercaster_detail: 'Швыряет огромные огненные заклинания. Побеждает быстро.',
70+
class_embercaster_portrait: 'Искровержец вырос рядом с огнём и слишком рано понял, как сладка сила, отвечающая на один взмах руки. Он не любит долгих ожиданий и сомнений. Его путь — ударить первым, ярко и так быстро, чтобы враг не успел собраться. Он идёт вперёд, будто пламя уже выбрало его своим голосом.',
6771
class_moonrunner: 'Лунобег',
6872
class_moonrunner_desc: 'Быстрый и скрытный. Лучшая атака — та, которую не увидели.',
6973
class_moonrunner_detail: 'Мастер уклонения и неожиданных ударов.',
74+
class_moonrunner_portrait: 'Лунобег пришёл из мест, где тишина ценится выше крика, а ошибка стоит дороже раны. Он видит слабости там, где другие замечают только тень. Его сила — скорость, терпение и удар в тот миг, когда на него никто не смотрит. Он идёт по краю света тихо, но почти всегда приходит первым.',
7075
class_bloomsage: 'Цветомудр',
7176
class_bloomsage_desc: 'Исцеляй, защищай, плети лозы-ловушки.',
7277
class_bloomsage_detail: 'Контролирует поле боя. Отлично в группе.',
78+
class_bloomsage_portrait: 'Цветомудр вырос там, где магия течёт в воде, корнях и памяти самой земли. Он умеет не только лечить и защищать, но и менять ход битвы незаметно для врага. Его путь — удерживать союзников на ногах и оплетать опасность до того, как она расцветёт. Он идёт не за вспышкой, а за живой гармонией силы.',
7379
class_difficulty_easy: 'Легко',
7480
class_difficulty_medium: 'Средне',
7581

app/js/ui/screens/onboarding.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var OnboardingScreen = (function() {
4848
}
4949

5050
html += '</div>' +
51+
_renderPathPortrait(t) +
5152
'<div class="onboarding-buttons">' +
5253
'<button class="btn btn-secondary" id="btn-class-back">' + t('onboarding_back') + '</button>' +
5354
'<button class="btn btn-primary" id="btn-class-next" ' + (selectedClass ? '' : 'disabled') + '>' + t('onboarding_next') + '</button>' +
@@ -81,6 +82,20 @@ var OnboardingScreen = (function() {
8182
});
8283
}
8384

85+
function _renderPathPortrait(t) {
86+
if (!selectedClass) {
87+
return '<section class="class-portrait-card" aria-live="polite">' +
88+
'<h2>' + t('onboarding_path_portrait_title') + '</h2>' +
89+
'<p class="onboarding-text">' + t('onboarding_path_portrait_empty') + '</p>' +
90+
'</section>';
91+
}
92+
93+
return '<section class="class-portrait-card" aria-live="polite">' +
94+
'<h2>' + t('onboarding_path_portrait_title') + ': ' + t('class_' + selectedClass) + '</h2>' +
95+
'<p class="onboarding-text">' + t('class_' + selectedClass + '_portrait') + '</p>' +
96+
'</section>';
97+
}
98+
8499
function _createCharacterAndFinish() {
85100
var user = VizAccount.getCurrentUser();
86101
if (!user) {

0 commit comments

Comments
 (0)