Skip to content

fix(magic): treat clanmates as allies for room wards - #3940

Merged
bylins merged 1 commit into
masterfrom
fix/castle-ward-recast
Sep 22, 2026
Merged

bylins merged 1 commit into
masterfrom
fix/castle-ward-recast

Conversation

@bylins

@bylins bylins commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Калидар (клетка Склеп [85532]): «запечатать комнату» в своём замке выкидывает заклинателя вон.

Вы произнесли заклинание "запечатать комнату".
Вы дописали заклинание "запечатать комнату" в свой часослов.
Охолонись малец, на своих бросаться не дело!
Защитная магия взяла вас за шиворот и выкинула вон из замка!

Разбор

ClassifyRoomAffectAccess() (magic_rooms.cpp) считала «своим» только самого автора
заклятия и его группу. Соклановец, перекрывающий печать, которую раньше наложил другой
член клана, проходил как чужак: в ветке перекрытия существующего kAfDispellable-заклятия
вызывается pk_agro_action(ch, author), а тот в комнате с флагом kHouse выдворяет
«агрессора» из замка.

Правка

Соклановец автора теперь такой же «свой», как соратник по группе. Плюс отдельное правило
для своего замка: член клана действует свободно и тогда, когда автор печати не в игре, —
комната принадлежит клану, а не тому, кто накладывал.

Правка в одной точке, поэтому чинит и остальные места, где та же классификация решает
судьбу комнатного заклятия: снятие чар (magic.cpp), мобовая проверка «враждебной» печати
(fight.cpp).

Проверка

Сборка -Dbuild_tests=true чистая, ./tests/tests — 723 passed.

🤖 Generated with Claude Code

Перекрытие комнатного заклятия соклановца считалось нападением: «свой»
в ClassifyRoomAffectAccess -- только сам автор или его группа. В клан-замке
это доводило до pk_agro_action и выбрасывало заклинателя вон:

  Охолонись малец, на своих бросаться не дело!
  Защитная магия взяла вас за шиворот и выкинула вон из замка!

Теперь соклановец автора -- такой же «свой», как соратник по группе, а
внутри своего замка член клана действует свободно и тогда, когда автор
печати не в игре: комната принадлежит клану, а не тому, кто накладывал.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@bylins
bylins merged commit 4929f8a into master Sep 22, 2026
20 checks passed
@bylins
bylins deleted the fix/castle-ward-recast branch September 22, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant