Нерф священника (#264)
* - remove: Nuke HolyComponent. * - tweak: SuitStorage for weapons. * - tweak: More slots for weapons. * - tweak: Cult magic tweaks. * - fix: Fix desc.
This commit is contained in:
@@ -8,7 +8,6 @@ namespace Content.Server._White.Chaplain;
|
||||
public sealed class NullRodSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly HandsSystem _hands = default!;
|
||||
[Dependency] private readonly PopupSystem _popup = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -24,14 +23,7 @@ public sealed class NullRodSystem : EntitySystem
|
||||
if (args.SelectedWeapon == string.Empty || entity == null)
|
||||
return;
|
||||
|
||||
if (!HasComp<HolyComponent>(entity.Value) && !HasComp<GhostComponent>(entity.Value))
|
||||
{
|
||||
_popup.PopupEntity($"Вам не хватает веры, чтобы использовать {Name(ent)}", entity.Value, entity.Value);
|
||||
return;
|
||||
}
|
||||
|
||||
var weapon = Spawn(args.SelectedWeapon, Transform(entity.Value).Coordinates);
|
||||
EnsureComp<HolyWeaponComponent>(weapon);
|
||||
|
||||
Del(ent);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Linq;
|
||||
using Content.Server._Miracle.GulagSystem;
|
||||
using Content.Server.Actions;
|
||||
using Content.Server.Bible.Components;
|
||||
using Content.Server.Chat.Managers;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Rules;
|
||||
@@ -24,7 +25,6 @@ using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Random;
|
||||
using Content.Shared._White;
|
||||
using Content.Shared._White.Chaplain;
|
||||
using Content.Shared._White.Cult.Components;
|
||||
using Content.Shared._White.Cult.Systems;
|
||||
using Content.Shared.Mind;
|
||||
@@ -357,7 +357,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
|
||||
|
||||
// Chaplain
|
||||
if (!_mindSystem.TryGetMind(player, out _, out var mind) ||
|
||||
mind.OwnedEntity is not { } ownedEntity || HasComp<HolyComponent>(ownedEntity))
|
||||
mind.OwnedEntity is not { } ownedEntity || HasComp<BibleUserComponent>(ownedEntity))
|
||||
continue;
|
||||
|
||||
// Latejoin
|
||||
|
||||
@@ -4,7 +4,6 @@ using Content.Server._White.Cult.Items.Components;
|
||||
using Content.Shared._White.Chaplain;
|
||||
using Content.Shared.Mobs.Components;
|
||||
using Content.Shared.Throwing;
|
||||
using Content.Shared._White.Cult;
|
||||
using CultistComponent = Content.Shared._White.Cult.Components.CultistComponent;
|
||||
|
||||
namespace Content.Server._White.Cult.Items.Systems;
|
||||
@@ -13,6 +12,7 @@ public sealed class ReturnItemOnThrowSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly StunSystem _stun = default!;
|
||||
[Dependency] private readonly HandsSystem _hands = default!;
|
||||
[Dependency] private readonly HolyWeaponSystem _holyWeapon = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -31,7 +31,7 @@ public sealed class ReturnItemOnThrowSystem : EntitySystem
|
||||
if (!HasComp<MobStateComponent>(args.Target))
|
||||
return;
|
||||
|
||||
if (!_stun.IsParalyzed(args.Target) && !isCultist && !HasComp<HolyComponent>(args.Target))
|
||||
if (!_stun.IsParalyzed(args.Target) && !isCultist && !_holyWeapon.IsHoldingHolyWeapon(args.Target))
|
||||
{
|
||||
_stun.TryParalyze(args.Target, TimeSpan.FromSeconds(component.StunTime), true);
|
||||
}
|
||||
|
||||
@@ -6,27 +6,25 @@ using Content.Server.Emp;
|
||||
using Content.Server.EUI;
|
||||
using Content.Server._White.Cult.UI;
|
||||
using Content.Shared._White.Chaplain;
|
||||
using Content.Shared._White.Cult;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Content.Shared.Fluids.Components;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Mobs;
|
||||
using Content.Shared.Mobs.Components;
|
||||
using Content.Shared.Stacks;
|
||||
using Content.Shared.StatusEffect;
|
||||
using Content.Shared.Stunnable;
|
||||
using Content.Shared._White.Cult.Actions;
|
||||
using Content.Shared._White.Cult.Components;
|
||||
using Content.Shared._White.Cult.Systems;
|
||||
using Content.Shared._White.Cult.UI;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Cuffs.Components;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Mindshield.Components;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Map.Components;
|
||||
@@ -49,6 +47,8 @@ public partial class CultSystem
|
||||
[Dependency] private readonly TileSystem _tile = default!;
|
||||
[Dependency] private readonly BloodSpearSystem _bloodSpear = default!;
|
||||
[Dependency] private readonly PhysicsSystem _physics = default!;
|
||||
[Dependency] private readonly HolyWeaponSystem _holyWeapon = default!;
|
||||
[Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
|
||||
|
||||
private const string TileId = "CultFloor";
|
||||
private const string ConcealedTileId = "CultFloorConcealed";
|
||||
@@ -95,15 +95,17 @@ public partial class CultSystem
|
||||
!TryComp<StatusEffectsComponent>(args.Target, out var status))
|
||||
return;
|
||||
|
||||
if (HasComp<HolyComponent>(args.Target))
|
||||
if (_holyWeapon.IsHoldingHolyWeapon(args.Target))
|
||||
{
|
||||
_popupSystem.PopupEntity("Священная сила препятствует магии.", args.Performer, args.Performer);
|
||||
_popupSystem.PopupEntity("Сила священного оружия препятствует магии.", args.Performer, args.Performer,
|
||||
PopupType.MediumCaution);
|
||||
return;
|
||||
}
|
||||
|
||||
if (HasComp<MindShieldComponent>(args.Target))
|
||||
{
|
||||
_popupSystem.PopupEntity("Он имплантирован чипом защиты разума.", args.Performer, args.Performer);
|
||||
_popupSystem.PopupEntity("Он имплантирован чипом защиты разума.", args.Performer, args.Performer,
|
||||
PopupType.MediumCaution);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -122,19 +124,18 @@ public partial class CultSystem
|
||||
!TryComp<ActorComponent>(uid, out var actor))
|
||||
return;
|
||||
|
||||
if (HasComp<HolyComponent>(args.Target))
|
||||
if (_holyWeapon.IsHoldingHolyWeapon(args.Target))
|
||||
{
|
||||
_popupSystem.PopupEntity("Священная сила препятствует магии.", args.Performer, args.Performer);
|
||||
_popupSystem.PopupEntity("Сила священного оружия препятствует магии.", args.Performer, args.Performer,
|
||||
PopupType.MediumCaution);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!HasComp<CultistComponent>(args.Target) && !HasComp<ConstructComponent>(args.Target) &&
|
||||
(!TryComp<MobStateComponent>(args.Target, out var mobStateComponent) ||
|
||||
mobStateComponent.CurrentState is MobState.Alive) &&
|
||||
(!TryComp<CuffableComponent>(args.Target, out var cuffable) || cuffable.Container.Count == 0))
|
||||
_actionBlocker.CanInteract(args.Target, null))
|
||||
{
|
||||
_popupSystem.PopupEntity("Цель должна быть культистом, быть связанной или лежать.", args.Performer,
|
||||
args.Performer);
|
||||
_popupSystem.PopupEntity("Цель должна быть культистом, быть скованной или парализованной.", args.Performer,
|
||||
args.Performer, PopupType.MediumCaution);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -422,7 +423,7 @@ public partial class CultSystem
|
||||
|
||||
_bloodstreamSystem.TryModifyBloodLevel(uid, -5, bloodstream, createPuddle: false);
|
||||
|
||||
if (!HasComp<HolyComponent>(args.Target) &&
|
||||
if (!_holyWeapon.IsHoldingHolyWeapon(args.Target) &&
|
||||
_statusEffectsSystem.TryAddStatusEffect(args.Target, "Muted", TimeSpan.FromSeconds(10), true, "Muted"))
|
||||
{
|
||||
_popupSystem.PopupEntity("Цель обезмолвлена.", args.Performer, args.Performer);
|
||||
|
||||
@@ -17,7 +17,6 @@ using Content.Server.Chemistry.Containers.EntitySystems;
|
||||
using Content.Server.Fluids.Components;
|
||||
using Content.Server.Ghost;
|
||||
using Content.Server.Revenant.Components;
|
||||
using Content.Shared._White.Chaplain;
|
||||
using Content.Shared.Chemistry.Components.SolutionManager;
|
||||
using Content.Shared.Cuffs.Components;
|
||||
using Content.Shared.Damage;
|
||||
@@ -446,7 +445,7 @@ public sealed partial class CultSystem : EntitySystem
|
||||
mind.Mind != null && !IsTarget(mind.Mind.Value);
|
||||
|
||||
// Выполнение действия в зависимости от условий
|
||||
if (canBeConverted && !HasComp<HolyComponent>(victim.Value) &&
|
||||
if (canBeConverted && !HasComp<BibleUserComponent>(victim.Value) &&
|
||||
!HasComp<MindShieldComponent>(victim.Value))
|
||||
{
|
||||
result = Convert(uid, victim.Value, args.User, args.Cultists);
|
||||
|
||||
@@ -28,6 +28,7 @@ public sealed class RunicDoorSystem : EntitySystem
|
||||
[Dependency] private readonly OccluderSystem _occluder = default!;
|
||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||
[Dependency] private readonly CuffableSystem _cuffable = default!;
|
||||
[Dependency] private readonly HolyWeaponSystem _holyWeapon = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -35,7 +36,7 @@ public sealed class RunicDoorSystem : EntitySystem
|
||||
|
||||
SubscribeLocalEvent<RunicDoorComponent, BeforeDoorOpenedEvent>(OnBeforeDoorOpened);
|
||||
SubscribeLocalEvent<RunicDoorComponent, BeforeDoorClosedEvent>(OnBeforeDoorClosed);
|
||||
SubscribeLocalEvent<RunicDoorComponent, AttackedEvent>(OnGetAttacked);
|
||||
// SubscribeLocalEvent<RunicDoorComponent, AttackedEvent>(OnGetAttacked);
|
||||
SubscribeLocalEvent<RunicDoorComponent, ConcealEvent>(OnConceal);
|
||||
}
|
||||
|
||||
@@ -113,7 +114,7 @@ public sealed class RunicDoorSystem : EntitySystem
|
||||
|
||||
_doorSystem.Deny(airlock);
|
||||
|
||||
if (!HasComp<HumanoidAppearanceComponent>(user) || HasComp<HolyComponent>(user) ||
|
||||
if (!HasComp<HumanoidAppearanceComponent>(user) || _holyWeapon.IsHoldingHolyWeapon(user) ||
|
||||
TryComp(airlock, out ConcealableComponent? concealable) && concealable.Concealed)
|
||||
return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user