Вкладка испытаний подтверждена в игре ("вкладка видна, нож сработал"), лог
чистый - ERR за весь запуск ноль, challenges загрузились за 0.08. Заодно
подтвердилось, что осознанный риск скелета сыграл: у группы нет reward_event и
reward_text_key, и игра не сказала ни слова - умолчания корня challenges на
группы распространяются.
По указанию пользователя ui_game_symbol_zombie заменён на ui_game_symbol_skull
во всех четырёх живых местах мода:
progression.xml:90 crafting_skill craftingNecroNecromancy - сам скилл
challenges.xml:41 challenge_category NecroNecromancy - вкладка
buffs.xml:14 buffNecroZombieKillTrackerDisplay - счётчик убийств
buffs.xml:175 buffNecroDarkSense - Тёмное чутьё
Причина пользователя: "Значок зомби - протокольная рожа, как у уголовника. Череп
будет более некромантским."
Вкладка и скилл меняются ТОЛЬКО ПАРОЙ - они обязаны читаться как одно целое. Это
записано комментарием в challenges.xml, чтобы позже их не развели по одному.
СОЗНАТЕЛЬНО НЕ ТРОНУТО: комментарий buffs.xml:150 упоминает ui_game_symbol_zombie,
но описывает ВАНИЛЬНЫЙ класс nav_object="zombie" и его собственную иконку на
карте и компасе. Это не наша иконка, текст не устарел.
Чистый XML, пересборка не нужна.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
75 lines
7.2 KiB
XML
75 lines
7.2 KiB
XML
<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">
|
||
|
||
<!-- ВКЛАДКА. Череп, и это ОДНО РЕШЕНИЕ С ИКОНКОЙ САМОГО СКИЛЛА "Некромантия" в
|
||
progression.xml: вкладка и скилл обязаны читаться как одно целое, поэтому меняются
|
||
только парой. Разойдутся - и панель скилла с вкладкой испытаний перестанут выглядеть
|
||
как одна система.
|
||
|
||
Сначала (16.09) здесь стоял ui_game_symbol_zombie - по тому же принципу совпадения со
|
||
скиллом, у которого он тогда и стоял. В игре вкладка отобразилась и испытание
|
||
сработало, после чего пользователь заменил символ на череп: "Для некроманта это более
|
||
атмосферно". Заменено разом во всех четырёх живых местах мода (здесь, скилл в
|
||
progression.xml и два баффа в buffs.xml), разбор - в BACKLOG.md.
|
||
|
||
Годные альтернативы, если череп когда-нибудь разонравится:
|
||
ui_game_symbol_specters_grace, ui_game_symbol_7th_curse,
|
||
ui_game_symbol_near_death_trauma. -->
|
||
<challenge_category name="NecroNecromancy" title_key="challengeCatNecroNecromancy" icon="ui_game_symbol_skull"/>
|
||
|
||
<!-- ГРУППА. Сознательно БЕЗ 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>
|