Вкладка испытаний Некромантии: скелет
Новый Config/challenges.xml - мод его раньше не имел. Категория (вкладка), группа и ОДНО испытание "Первым делом - нож". Одно, а не два заказанных, намеренно: файл трогается впервые, сначала надо увидеть в игре, что вкладка вообще появляется. Нож крафтится сразу и без верстака, то есть проверка занимает минуту. "Безумный донор" добавится одной записью, когда скелет подтвердится. РАЗРОЗНЕННО, НЕ ЦЕПОЧКОЙ (по указанию): у группы нет ни link_challenges, ни hidden_by. Побочная польза - снялось противоречие порядка: Кровь некроманта нельзя скрафтить без ножа, так что "донор" первым в цепочке был бы невыполним. ИКОНКИ ТОЛЬКО ИЗ СИМВОЛЬНОГО АТЛАСА ИГРЫ. В templates.xml оба места, где они рисуются (challenge_entry и category_icon), объявлены БЕЗ атрибута atlas, то есть читают атлас по умолчанию; в ванильном challenges.xml все 215 иконок имеют вид ui_game_symbol_* без исключений. Свой атлас мода (NecroFinal) не поможет - обратиться к нему можно только явным atlas= на спрайте, а дописать его в шаблон нельзя: шаблон один на все испытания, ванильные иконки пропадут. Из 359 собранных символов нашлись некромантские, череп не понадобился. Вкладка - ui_game_symbol_zombie (тот же символ, что у скилла в progression.xml, чтобы вкладка и скилл читались как одно целое), нож - ui_game_symbol_knife. Для "Безумного донора" отложен ui_game_symbol_siphoning_strikes. Локализация: 5 ключей x 13 языков, ключей стало 140. Название вкладки взято слово в слово из craftingNecroNecromancyName. Счётчик в README и SITE_DESCRIPTION обновлён 135 -> 140. ОСОЗНАННЫЙ РИСК: у группы нет reward_text_key и reward_event, хотя у всех 20 ванильных они есть. Ставка на умолчания корня challenges (default_reward, default_reward_text_key). Если не сработает - будет в логе, и это дешевле, чем заводить событие награды вслепую. НЕ ПРОВЕРЕНО В ИГРЕ. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
03b4b8f164
commit
90d8fe331b
@@ -0,0 +1,65 @@
|
||||
<config>
|
||||
<!-- ВКЛАДКА ИСПЫТАНИЙ "Некромантия" (указание 2026-09-16: "Сделать вкладку квестов для
|
||||
некромантии. Типа тех вкладок, где дают опыт за установку первой двери, за установку
|
||||
клеймблока, за повешение факела и сбор ресурсов").
|
||||
|
||||
ЭТО СКЕЛЕТ, А НЕ ГОТОВАЯ ВКЛАДКА. Сознательно одно испытание из двух заказанных:
|
||||
challenges.xml мод не трогал ни разу, и сначала надо увидеть в игре, что вкладка вообще
|
||||
появляется и испытание закрывается. Второе ("Безумный донор", 15 крафтов Крови некроманта,
|
||||
icon="ui_game_symbol_siphoning_strikes") добавляется одной записью, когда это подтвердится.
|
||||
Проверять выбрано "Первым делом - нож": нож крафтится сразу и без верстака, то есть
|
||||
проверка занимает минуту, а не сессию.
|
||||
|
||||
РАЗРОЗНЕННО, НЕ ЦЕПОЧКОЙ (указание: "цепочку ивентов там делать не нужно. Пусть будет
|
||||
разрозненно. Что сделано то и отмечаем"). Поэтому у группы НЕТ ни link_challenges="true",
|
||||
ни hidden_by - оба атрибута стоят у ванильных Basics/Homesteading именно затем, чтобы
|
||||
открывать записи по очереди. Без них испытания видны сразу и закрываются в любом порядке.
|
||||
Побочная польза: снимается противоречие порядка - Кровь некроманта нельзя скрафтить без
|
||||
ножа в инвентаре, так что "донор" первым в цепочке был бы невыполним.
|
||||
|
||||
ОТКУДА ИКОНКИ - разобрано 2026-09-16, и вывод ограничивающий: ТОЛЬКО из символьного
|
||||
атласа игры, свой спрайт туда положить нельзя.
|
||||
- В Data/Config/XUi_InGame/templates.xml оба места, где эти иконки рисуются, объявлены
|
||||
БЕЗ атрибута atlas: строка испытания (challenge_entry, sprite="{iconname}") и кнопка
|
||||
вкладки (category_icon, sprite="{categoryicon}"). Нет atlas - значит атлас по
|
||||
умолчанию, тот, где живут все ui_game_symbol_*.
|
||||
- Подтверждение с другой стороны: в ванильном challenges.xml ВСЕ 215 иконок имеют вид
|
||||
ui_game_symbol_* без единого исключения (проверено вычитанием).
|
||||
- Свой атлас мода (UIAtlases/NecroFinal) тут не поможет: механизм UIAtlases/<Имя>
|
||||
создаёт НОВЫЙ атлас, и обратиться к нему можно только явным atlas="NecroFinal" на
|
||||
спрайте, которого в этих шаблонах нет.
|
||||
- Дописать atlas= в сам шаблон НЕЛЬЗЯ: шаблон один на все испытания, и тогда ванильные
|
||||
215 иконок начнут искаться в нашем атласе и пропадут.
|
||||
Выбирали из 359 доступных ui_game_symbol_*, собранных по ванильным конфигам. -->
|
||||
<append xpath="/challenges">
|
||||
|
||||
<!-- ВКЛАДКА. icon="ui_game_symbol_zombie" выбран намеренно: ровно этот символ стоит у
|
||||
самого скилла "Некромантия" в progression.xml, так что вкладка и скилл читаются как
|
||||
одно целое. Это заодно готовый прецедент - символ в моде уже используется и работает.
|
||||
Годные альтернативы, если в игре зомби-символ окажется неразличим в 28x28:
|
||||
ui_game_symbol_specters_grace, ui_game_symbol_7th_curse, ui_game_symbol_skull. -->
|
||||
<challenge_category name="NecroNecromancy" title_key="challengeCatNecroNecromancy" icon="ui_game_symbol_zombie"/>
|
||||
|
||||
<!-- ГРУППА. Сознательно БЕЗ reward_text_key и reward_event.
|
||||
|
||||
Это осознанный риск скелета, а не забывчивость: у всех 20 ванильных групп они есть, но
|
||||
корень <challenges> объявлен с default_reward="challenge_reward_default" и
|
||||
default_reward_text_key="challenge_reward_100xp", и мы добавляемся именно в этот
|
||||
корень. Если умолчания на группы не распространяются, игра скажет об этом в логе - и
|
||||
это ровно то, ради чего скелет и запускается. Заводить своё событие награды вслепую
|
||||
дороже, чем один раз посмотреть в лог. -->
|
||||
<challenge_group category="NecroNecromancy" name="NecroPath" title_key="challengeGroupNecroPath"/>
|
||||
|
||||
<!-- ИСПЫТАНИЕ. objective type="Craft" без count - ножа нужен один, ровно как у ванильного
|
||||
craftStoneAxe. (count у Craft поддерживается - 18 ванильных целей его имеют, вплоть до
|
||||
resourceForgedIron count="100"; он понадобится второму испытанию, где нужно 15 банок
|
||||
крови.)
|
||||
hint не задан: он необязателен - в ванили одно испытание из 188 обходится без него, а
|
||||
тут подсказка и не нужна, название говорит само за себя. -->
|
||||
<challenge name="necroCraftKnife" title_key="challengeNecroCraftKnifeTitle" icon="ui_game_symbol_knife" group="NecroPath"
|
||||
short_description_key="challengeNecroCraftKnifeShort" description_key="challengeNecroCraftKnifeDesc">
|
||||
<objective type="Craft" item="necroWpnBladeNecroKnife"/>
|
||||
</challenge>
|
||||
|
||||
</append>
|
||||
</config>
|
||||
Reference in New Issue
Block a user