Conversation
ОбзорPR выполняет миграцию компонентов, связанных с Chaplain, из пространства имён Возможно связанные PR
Рекомендуемые метки
Рекомендуемые рецензенты
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
Content.Server/ADT/Heretic/EntitySystems/MansusGraspSystem.cs (1)
261-275:⚠️ Potential issue | 🟠 MajorИммунитет здесь неполный — цель всё равно роняет предмет.
На Line 263 защита оборачивает только пакет оглушения. Ниже код всё равно выполняет
_hands.TryDrop(...)иSpendInfusionCharges(...), поэтому magic-immune цель получает побочный эффект, хотя в PR заявлен полный иммунитет от еретической магии. Здесь нужен ранний выход до всей ветки воздействия.💡 Вариант правки
private void OnInfusedInteract(Entity<MansusInfusedComponent> ent, ref InteractHandEvent args) { var target = args.User; if (HasComp<HereticComponent>(target) || HasComp<GhoulComponent>(target)) return; + if (HasComp<MagicImmunityComponent>(target)) + return; + if (HasComp<StatusEffectsComponent>(target)) { - if (!HasComp<MagicImmunityComponent>(target)) - { - _audio.PlayPvs(new SoundPathSpecifier("/Audio/Items/welder.ogg"), target); - _stun.TryKnockdown(target, TimeSpan.FromSeconds(3f), true); - _stamina.TakeStaminaDamage(target, 80f); - _language.DoRatvarian(target, TimeSpan.FromSeconds(10f), true); - } + _audio.PlayPvs(new SoundPathSpecifier("/Audio/Items/welder.ogg"), target); + _stun.TryKnockdown(target, TimeSpan.FromSeconds(3f), true); + _stamina.TakeStaminaDamage(target, 80f); + _language.DoRatvarian(target, TimeSpan.FromSeconds(10f), true); } if (TryComp<HandsComponent>(target, out var hands)) _hands.TryDrop(target, Transform(target).Coordinates);🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Heretic/EntitySystems/MansusGraspSystem.cs` around lines 261 - 275, The current immunity check only skips some effects but still allows the target to drop items and consumes infusion charges even if they have MagicImmunityComponent. To fully honor the magic immunity in the code block within the MansusGraspSystem, add an early return or skip the entire effect handling when the target has MagicImmunityComponent. This should include bypassing the calls to _hands.TryDrop and SpendInfusionCharges to ensure no effects or charge consumption happen on immune targets.Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.cs (3)
6-15:⚠️ Potential issue | 🟡 MinorОтсортируйте
usingпо алфавиту.После добавления
Content.Shared.ADT.Chaplain.Componentsблок больше не идёт в стабильном алфавитном порядке.As per coding guidelines "И ещё смотри за тем чтобы using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.cs` around lines 6 - 15, Упорядочите директивы using в файле HereticAbilitySystem.Void.cs по алфавиту: откройте блок using (строки с Content.Shared.ADT.Heretic.Components, Content.Shared.ADT.Chaplain.Components и т.д.) и переставьте строки в строгом лексикографическом порядке (по полным именам пространств имён), чтобы обеспечить стабильный алфавитный порядок согласно правилам для /ADT/ систем и компонентов; сохраните все существующие using без удаления и проверьте, что System и Robust блоки также вписываются в общий алфавитный порядок.
110-131:⚠️ Potential issue | 🔴 Critical
OnVoidPullне фильтруетMagicImmunityComponentни на одной дистанции.Сейчас immune-цели всё ещё получают урон, нокдаун/curse и притягивание, потому что
topPriority,midPriorityиfarPriorityобрабатываются без раннегоcontinue.🐛 Минимальная правка
foreach (var pookie in topPriority) { + if (HasComp<MagicImmunityComponent>(pookie)) + continue; + if (!TryComp<DamageableComponent>(pookie, out var dmgComp)) continue; ... foreach (var pookie in midPriority) { + if (HasComp<MagicImmunityComponent>(pookie)) + continue; + _stun.TryKnockdown(pookie, TimeSpan.FromSeconds(2.5f), true); if (ent.Comp.CurrentPath == "Void") _voidcurse.DoCurse(pookie); } ... foreach (var pookie in farPriority) + { + if (HasComp<MagicImmunityComponent>(pookie)) + continue; + _throw.TryThrow(pookie, Transform(ent).Coordinates); + }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.cs` around lines 110 - 131, The OnVoidPull handling currently applies effects to entities in topPriority, midPriority, and farPriority without skipping entities with MagicImmunityComponent; update each loop (the topPriority foreach that uses TryComp<DamageableComponent>, the midPriority foreach that calls _stun.TryKnockdown and _voidcurse.DoCurse, and the farPriority foreach that calls _throw.TryThrow) to early-skip immune targets by checking TryComp<MagicImmunityComponent>(pookie, out _) and continue when present so immune entities do not take damage, get knocked down/cursed, or get pulled.
79-92:⚠️ Potential issue | 🔴 Critical
OnVoidBlinkвсё ещё задевает магически-иммунных целей.Оба цикла применяют knockdown, stamina damage и curse без проверки
MagicImmunityComponent, поэтому чаплан и держатель holy melon по-прежнему получают эффект от Void Blink. Это ломает основную цель PR.🐛 Минимальная правка
foreach (var pookie in GetNearbyPeople(ent, power)) { + if (HasComp<MagicImmunityComponent>(pookie)) + continue; + _stun.TryKnockdown(pookie, TimeSpan.FromSeconds(power), true); } ... foreach (var pookie in GetNearbyPeople(ent, ent.Comp.PathStage / 3f)) { + if (HasComp<MagicImmunityComponent>(pookie)) + continue; + _stam.TakeStaminaDamage(pookie, power); if (condition) _voidcurse.DoCurse(pookie); }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.cs` around lines 79 - 92, In OnVoidBlink, both loops call _stun.TryKnockdown, _stam.TakeStaminaDamage and _voidcurse.DoCurse on targets returned by GetNearbyPeople without checking for magic immunity; update both loops to skip targets that have MagicImmunityComponent (e.g., via EntityManager.HasComponent<MagicImmunityComponent>(target) or TryGetComponent<MagicImmunityComponent>(out _)) before calling _stun.TryKnockdown, _stam.TakeStaminaDamage or _voidcurse.DoCurse so magic-immune entities are not affected.Content.Shared/ADT/Chaplain/Components/ChaplainComponent.cs (1)
1-7:⚠️ Potential issue | 🟡 MinorОтсортируйте
usingпо алфавиту.Для
/ADT/компонентов этот блок сейчас выбивается из принятого порядка:Content.Shared.AlertиContent.Shared.Antagстоят после другихContent.Shared.*, аRobust.*перемешаны с ними.As per coding guidelines "И ещё смотри за тем чтобы using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Shared/ADT/Chaplain/Components/ChaplainComponent.cs` around lines 1 - 7, Reorder the top using directives in ChaplainComponent.cs into strict alphabetical order (so all Content.Shared.* and Robust.* usings are sorted) — locate the block containing using Content.Shared.FixedPoint, using Content.Shared.StatusIcon, using Content.Shared.Antag, using Robust.Shared.Prototypes, using Robust.Shared.Audio, using Content.Shared.Alert, using Robust.Shared.GameStates and rearrange them alphabetically (e.g., Content.Shared.Alert, Content.Shared.Antag, Content.Shared.FixedPoint, Content.Shared.StatusIcon, Content.Shared.GameStates, Robust.Shared.Audio, Robust.Shared.Prototypes) so the ADT component follows the project’s using-order guideline.
🧹 Nitpick comments (5)
Content.Server/ADT/Phantom/EntitySystems/PhantomSystem.cs (1)
24-24: Нарушен алфавитный порядок using директив.
Content.Shared.ADT.Chaplain.Componentsдолжен находиться передContent.Shared.ADT.Controlled, так как "Chaplain" < "Controlled" в алфавитном порядке.Предлагаемое исправление
using Content.Shared.ActionBlocker; using Content.Shared.Actions; +using Content.Shared.ADT.Chaplain.Components; using Content.Shared.ADT.Controlled; using Content.Shared.ADT.GhostInteractions; using Content.Shared.ADT.Phantom; using Content.Shared.ADT.Phantom.Components; using Content.Shared.ADT.Silicon.Components; using Content.Shared.Alert; -using Content.Shared.ADT.Chaplain.Components; using Content.Shared.Chat;Согласно правилам кодирования: "using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Phantom/EntitySystems/PhantomSystem.cs` at line 24, The using directives are out of alphabetical order: move the using for Content.Shared.ADT.Chaplain.Components so it appears before Content.Shared.ADT.Controlled in PhantomSystem.cs (the file containing the PhantomSystem class/namespace) to restore alphabetical ordering of ADT usings.Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.cs (1)
15-16: Нарушен алфавитный порядок using директив.
Content.Shared.Actionsдолжен находиться передContent.Shared.ADT.Chaplain.Components, так как "Actions" < "ADT" в алфавитном порядке.Предлагаемое исправление
using Content.Server.Temperature.Systems; -using Content.Shared.ADT.Chaplain.Components; using Content.Shared.Actions; +using Content.Shared.ADT.Chaplain.Components; using Content.Shared.Body.Systems;Согласно правилам кодирования: "using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.cs` around lines 15 - 16, Сортировка using директив нарушена: поместите using Content.Shared.Actions до using Content.Shared.ADT.Chaplain.Components в файле, чтобы соблюсти алфавитный порядок using в системе HereticAbilitySystem (файл HereticAbilitySystem.cs и соответствующий блок using вверху файла); просто поменяйте местами эти две директивы, не меняя остальной код.Content.Client/ADT/Chaplain/EUI/AcceptReligionEui.cs (1)
1-6: Директивы using не в алфавитном порядке.
Content.Shared.ADT.Chaplain.Componentsдолжна располагаться передContent.Shared.ChaplainиContent.Shared.Cloning.♻️ Предлагаемое исправление порядка using
using Content.Client.Eui; -using Content.Shared.Cloning; -using JetBrains.Annotations; -using Robust.Client.Graphics; -using Content.Shared.Chaplain; using Content.Shared.ADT.Chaplain.Components; +using Content.Shared.Chaplain; +using Content.Shared.Cloning; +using JetBrains.Annotations; +using Robust.Client.Graphics;As per coding guidelines: "using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Client/ADT/Chaplain/EUI/AcceptReligionEui.cs` around lines 1 - 6, The using directives in AcceptReligionEui.cs are not alphabetically ordered; move the using for Content.Shared.ADT.Chaplain.Components so it appears before Content.Shared.Chaplain and Content.Shared.Cloning to follow the ADT/component ordering convention—open AcceptReligionEui.cs and reorder the using statements so they are alphabetical (e.g., place Content.Shared.ADT.Chaplain.Components above Content.Shared.Chaplain and Content.Shared.Cloning).Content.Server/ADT/HWAnomCoreLootbox/HWAnomCoreLootboxSystem.cs (1)
1-25: Директивы using не в алфавитном порядке.Директивы using должны быть отсортированы по алфавиту. Например,
Content.Shared.ADT.Chaplain.Componentsдолжна идти передContent.Shared.Body.*, аContent.Shared.CargoпередContent.Shared.DoAfter.♻️ Предлагаемое исправление порядка using
using System.Reflection.Metadata; using Content.Server.Administration.Logs; using Content.Server.Cargo.Systems; using Content.Server.Popups; -using Content.Shared.Body.Systems; -using Content.Shared.Body.Part; -using Content.Shared.ADT.Chaplain.Components; -using Content.Shared.DoAfter; +using Content.Shared.ADT.Chaplain.Components; +using Content.Shared.ADT.HWAnomCoreLootbox; +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; using Content.Shared.Cargo; using Content.Shared.Database; +using Content.Shared.DoAfter; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; using Content.Shared.Hands.EntitySystems; -using Content.Shared.ADT.HWAnomCoreLootbox; using Content.Shared.Interaction.Events; using Content.Shared.Popups; +using Content.Shared.StatusEffect; +using Content.Shared.Traits.Assorted; +using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Random; -using Content.Shared.Eye.Blinding.Components; -using Content.Shared.Eye.Blinding.Systems; -using Content.Shared.Traits.Assorted; -using Content.Shared.StatusEffect; using static Content.Shared.Storage.EntitySpawnCollection; -using Content.Shared.Verbs; using Timer = Robust.Shared.Timing.Timer;As per coding guidelines: "using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Server/ADT/HWAnomCoreLootbox/HWAnomCoreLootboxSystem.cs` around lines 1 - 25, The using directives at the top of HWAnomCoreLootboxSystem.cs are not alphabetized; reorder all using statements into strict alphabetical order (compare namespace strings character-by-character) so that entries like Content.Shared.ADT.Chaplain.Components come before Content.Shared.Body.* and Content.Shared.Cargo comes before Content.Shared.DoAfter; ensure external/Robust namespaces are also placed correctly in the same alphabetical sequence and remove any duplicates or unused usings while preserving necessary ones (e.g., Content.Server.Administration.Logs, Content.Server.Cargo.Systems, Content.Server.Popups, Content.Shared.Body.Systems, Content.Shared.Body.Part, Content.Shared.ADT.HWAnomCoreLootbox, Robust.Shared.Random, Timer = Robust.Shared.Timing.Timer).Content.Client/ADT/Phantom/Systems/PhantomHudSystem.cs (1)
1-9: Директивы using не в алфавитном порядке.Согласно требованиям проекта, директивы using в системах /ADT/ должны быть отсортированы по алфавиту.
♻️ Предлагаемое исправление порядка using
-using Content.Shared.Overlays; -using Content.Shared.StatusIcon.Components; -using Content.Shared.ADT.Phantom.Components; -using Content.Shared.StatusIcon; -using Robust.Shared.Prototypes; -using Content.Client.Overlays; -using Content.Shared.Antag; -using Robust.Client.Player; -using Content.Shared.ADT.Chaplain.Components; +using Content.Client.Overlays; +using Content.Shared.ADT.Chaplain.Components; +using Content.Shared.ADT.Phantom.Components; +using Content.Shared.Antag; +using Content.Shared.Overlays; +using Content.Shared.StatusIcon; +using Content.Shared.StatusIcon.Components; +using Robust.Client.Player; +using Robust.Shared.Prototypes;As per coding guidelines: "using был в алфавитном порядке в наших /ADT/ системах и компонентах".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Content.Client/ADT/Phantom/Systems/PhantomHudSystem.cs` around lines 1 - 9, The using directives at the top of PhantomHudSystem (file PhantomHudSystem.cs) are not sorted alphabetically; reorder the usings (e.g., Content.Client.Overlays, Content.Shared.ADT.Chaplain.Components, Content.Shared.ADT.Phantom.Components, Content.Shared.Antag, Content.Shared.Overlays, Content.Shared.StatusIcon, Content.Shared.StatusIcon.Components, Robust.Client.Player, Robust.Shared.Prototypes) into a single alphabetically sorted block per project convention, preserving any existing blank-line grouping rules and keeping the PhantomHudSystem class and other code unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Content.Server/ADT/Chaplain/Systems/HolyMelonImmunitySystem.cs`:
- Around line 27-37: The RemoveImmunityIfNoOtherMelons logic is removing a
permanent MagicImmunityComponent from users who lack ChaplainComponent; fix by
making the system only remove MagicImmunityComponent if this system previously
added it: ensure OnGotEquippedHand adds a marker component
(HolyMelonMagicImmunityComponent) when it grants immunity and does not treat
pre-existing MagicImmunityComponent as owned, and change
RemoveImmunityIfNoOtherMelons to check for HolyMelonMagicImmunityComponent
before removing MagicImmunityComponent (and only remove the marker+immunity pair
when no other melon sources exist); reference OnGotEquippedHand,
RemoveImmunityIfNoOtherMelons, HolyMelonMagicImmunityComponent,
MagicImmunityComponent, and ChaplainComponent when making the change.
In `@Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs`:
- Around line 108-111: This multi-line conditional that checks
HasComp<MobStateComponent>(target) /
HasComp<HumanoidAppearanceComponent>(target) /
HasComp<RevenantComponent>(target) / HasComp<MagicImmunityComponent>(target)
should be wrapped in an ADT-Tweak block for files outside /ADT/ — add a comment
line "// ADT-Tweak-Start" immediately above the if and a matching "//
ADT-Tweak-End" immediately after the closing brace of that if block (preserving
the existing inline "// ADT-Tweak" tag), so the entire multi-line change is
clearly delimited in RevenantSystem.Abilities.cs around the if that references
HasComp<...>(target).
---
Outside diff comments:
In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.cs`:
- Around line 6-15: Упорядочите директивы using в файле
HereticAbilitySystem.Void.cs по алфавиту: откройте блок using (строки с
Content.Shared.ADT.Heretic.Components, Content.Shared.ADT.Chaplain.Components и
т.д.) и переставьте строки в строгом лексикографическом порядке (по полным
именам пространств имён), чтобы обеспечить стабильный алфавитный порядок
согласно правилам для /ADT/ систем и компонентов; сохраните все существующие
using без удаления и проверьте, что System и Robust блоки также вписываются в
общий алфавитный порядок.
- Around line 110-131: The OnVoidPull handling currently applies effects to
entities in topPriority, midPriority, and farPriority without skipping entities
with MagicImmunityComponent; update each loop (the topPriority foreach that uses
TryComp<DamageableComponent>, the midPriority foreach that calls
_stun.TryKnockdown and _voidcurse.DoCurse, and the farPriority foreach that
calls _throw.TryThrow) to early-skip immune targets by checking
TryComp<MagicImmunityComponent>(pookie, out _) and continue when present so
immune entities do not take damage, get knocked down/cursed, or get pulled.
- Around line 79-92: In OnVoidBlink, both loops call _stun.TryKnockdown,
_stam.TakeStaminaDamage and _voidcurse.DoCurse on targets returned by
GetNearbyPeople without checking for magic immunity; update both loops to skip
targets that have MagicImmunityComponent (e.g., via
EntityManager.HasComponent<MagicImmunityComponent>(target) or
TryGetComponent<MagicImmunityComponent>(out _)) before calling
_stun.TryKnockdown, _stam.TakeStaminaDamage or _voidcurse.DoCurse so
magic-immune entities are not affected.
In `@Content.Server/ADT/Heretic/EntitySystems/MansusGraspSystem.cs`:
- Around line 261-275: The current immunity check only skips some effects but
still allows the target to drop items and consumes infusion charges even if they
have MagicImmunityComponent. To fully honor the magic immunity in the code block
within the MansusGraspSystem, add an early return or skip the entire effect
handling when the target has MagicImmunityComponent. This should include
bypassing the calls to _hands.TryDrop and SpendInfusionCharges to ensure no
effects or charge consumption happen on immune targets.
In `@Content.Shared/ADT/Chaplain/Components/ChaplainComponent.cs`:
- Around line 1-7: Reorder the top using directives in ChaplainComponent.cs into
strict alphabetical order (so all Content.Shared.* and Robust.* usings are
sorted) — locate the block containing using Content.Shared.FixedPoint, using
Content.Shared.StatusIcon, using Content.Shared.Antag, using
Robust.Shared.Prototypes, using Robust.Shared.Audio, using Content.Shared.Alert,
using Robust.Shared.GameStates and rearrange them alphabetically (e.g.,
Content.Shared.Alert, Content.Shared.Antag, Content.Shared.FixedPoint,
Content.Shared.StatusIcon, Content.Shared.GameStates, Robust.Shared.Audio,
Robust.Shared.Prototypes) so the ADT component follows the project’s using-order
guideline.
---
Nitpick comments:
In `@Content.Client/ADT/Chaplain/EUI/AcceptReligionEui.cs`:
- Around line 1-6: The using directives in AcceptReligionEui.cs are not
alphabetically ordered; move the using for
Content.Shared.ADT.Chaplain.Components so it appears before
Content.Shared.Chaplain and Content.Shared.Cloning to follow the ADT/component
ordering convention—open AcceptReligionEui.cs and reorder the using statements
so they are alphabetical (e.g., place Content.Shared.ADT.Chaplain.Components
above Content.Shared.Chaplain and Content.Shared.Cloning).
In `@Content.Client/ADT/Phantom/Systems/PhantomHudSystem.cs`:
- Around line 1-9: The using directives at the top of PhantomHudSystem (file
PhantomHudSystem.cs) are not sorted alphabetically; reorder the usings (e.g.,
Content.Client.Overlays, Content.Shared.ADT.Chaplain.Components,
Content.Shared.ADT.Phantom.Components, Content.Shared.Antag,
Content.Shared.Overlays, Content.Shared.StatusIcon,
Content.Shared.StatusIcon.Components, Robust.Client.Player,
Robust.Shared.Prototypes) into a single alphabetically sorted block per project
convention, preserving any existing blank-line grouping rules and keeping the
PhantomHudSystem class and other code unchanged.
In `@Content.Server/ADT/Heretic/Abilities/HereticAbilitySystem.cs`:
- Around line 15-16: Сортировка using директив нарушена: поместите using
Content.Shared.Actions до using Content.Shared.ADT.Chaplain.Components в файле,
чтобы соблюсти алфавитный порядок using в системе HereticAbilitySystem (файл
HereticAbilitySystem.cs и соответствующий блок using вверху файла); просто
поменяйте местами эти две директивы, не меняя остальной код.
In `@Content.Server/ADT/HWAnomCoreLootbox/HWAnomCoreLootboxSystem.cs`:
- Around line 1-25: The using directives at the top of
HWAnomCoreLootboxSystem.cs are not alphabetized; reorder all using statements
into strict alphabetical order (compare namespace strings
character-by-character) so that entries like
Content.Shared.ADT.Chaplain.Components come before Content.Shared.Body.* and
Content.Shared.Cargo comes before Content.Shared.DoAfter; ensure external/Robust
namespaces are also placed correctly in the same alphabetical sequence and
remove any duplicates or unused usings while preserving necessary ones (e.g.,
Content.Server.Administration.Logs, Content.Server.Cargo.Systems,
Content.Server.Popups, Content.Shared.Body.Systems, Content.Shared.Body.Part,
Content.Shared.ADT.HWAnomCoreLootbox, Robust.Shared.Random, Timer =
Robust.Shared.Timing.Timer).
In `@Content.Server/ADT/Phantom/EntitySystems/PhantomSystem.cs`:
- Line 24: The using directives are out of alphabetical order: move the using
for Content.Shared.ADT.Chaplain.Components so it appears before
Content.Shared.ADT.Controlled in PhantomSystem.cs (the file containing the
PhantomSystem class/namespace) to restore alphabetical ordering of ADT usings.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 1ecd2abf-7153-45b2-9214-dcaa254a04aa
📒 Files selected for processing (31)
Content.Client/ADT/Chaplain/EUI/AcceptReligionEui.csContent.Client/ADT/Chaplain/Systems/ChaplainSystem.csContent.Client/ADT/Phantom/Systems/PhantomHudSystem.csContent.Server/ADT/Chaplain/EUI/AcceptReligionEui.csContent.Server/ADT/Chaplain/Systems/ChaplainSystem.csContent.Server/ADT/Chaplain/Systems/HolyMelonImmunitySystem.csContent.Server/ADT/Chaplain/Systems/MagicProjectileSystem.csContent.Server/ADT/HWAnomCoreLootbox/HWAnomCoreLootboxSystem.csContent.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Ash.csContent.Server/ADT/Heretic/Abilities/HereticAbilitySystem.Void.csContent.Server/ADT/Heretic/Abilities/HereticAbilitySystem.csContent.Server/ADT/Heretic/EntitySystems/MansusGraspSystem.csContent.Server/ADT/Magic/ChainFireballSystem.csContent.Server/ADT/Magic/ImmovableVoidRodSystem.csContent.Server/ADT/Phantom/EntitySystems/PhantomSystem.csContent.Server/ADT/Poltergeist/Systems/PoltergeistSystem.csContent.Server/ADT/Revolitionary/EUI/AcceptRevolutionEui.csContent.Server/Bible/BibleSystem.csContent.Server/Revenant/EntitySystems/RevenantSystem.Abilities.csContent.Shared/ADT/Chaplain/Altar/Systems/SacrificeSystem.csContent.Shared/ADT/Chaplain/Components/ChaplainComponent.csContent.Shared/ADT/Chaplain/Components/HolyMelonImmunityComponent.csContent.Shared/ADT/Chaplain/Components/HolyMelonMagicImmunityComponent.csContent.Shared/ADT/Chaplain/Components/MagicImmunityComponent.csContent.Shared/ADT/Chaplain/Components/MagicProjectileComponent.csContent.Shared/ADT/Chaplain/SharedChaplain.csContent.Shared/Magic/SharedMagicSystem.csResources/Prototypes/ADT/Heretic/Entities/Objects/Weapons/Guns/Projectiles/projectiles.ymlResources/Prototypes/Entities/Objects/Consumable/Food/produce.ymlResources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.ymlResources/Prototypes/Roles/Jobs/Civilian/chaplain.yml
💤 Files with no reviewable changes (1)
- Content.Server/ADT/Revolitionary/EUI/AcceptRevolutionEui.cs
|
За место передачи неуязвимости по факту профессии, лучше сделай, чтобы священник был неуязвим при держании при себе священного оружия |
Священное оружие - это оружие, оно не предназначено для защиты от магии. Сам священник по своей сути оберегают боги от злых сил. Так что вполне логично, что именно он святой. |
Оружие также работает как защита. Мечи в фехтовании, щит, предназначенный как защита, пользовался как оружие так же как и меч. Защищающую силу легче передавать человеку через артефакты, оружие |
|
меня смешит что он может фаербол еблищем сожрать, такая хуйня. |
|
ну и священиков еретиков ещё никто не убирал. |
Со святым арбузом тоже. |
Описание PR
Добавлен полный иммунитет к магии для священника и святого арбуза. Священник теперь неуязвим для всех магических способностей еретика и ревенанта, а магические снаряды (огненный шар, полиморф и др.) поглощаются без эффекта при попадании в цель с иммунитетом.
Почему / Баланс
Священник задуман как духовный защитник станции, способный противостоять тёмным силам. До этого изменения у него не было механической защиты от магии, что делало его уязвимым для еретиков и ревенантов, несмотря на лорную роль "борца с тёмными силами".
Техническая информация
Content.Shared.ADT.Chaplain.Componentsдля консистентностиЧейнджлог
🆑 CrimeMoot