Files
necromants-tome-7d2d-3-2/Config/challenges.xml
T
AlexCubeandClaude Opus 5 156e046cc2 Череп вместо зомби на скилле, вкладке и двух баффах
Вкладка испытаний подтверждена в игре ("вкладка видна, нож сработал"), лог
чистый - 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>
2026-09-16 22:45:00 +03:00

75 lines
7.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>