- add: Runes can't be examined by crew. (#129)

* - add: Runes can't be examined by crew.

* - add: No rune pointing.
This commit is contained in:
Aviu00
2024-02-27 21:00:02 +09:00
committed by GitHub
parent 292743ae3e
commit e856e3de2f
4 changed files with 49 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
using System.Linq;
using Content.Server._White.Cult;
using Content.Server.Administration.Logs;
using Content.Server.Pointing.Components;
using Content.Shared.Database;
@@ -12,6 +13,7 @@ using Content.Shared.Mind;
using Content.Shared.Pointing;
using Content.Shared.Popups;
using Content.Shared._White.Administration;
using Content.Shared._White.Cult.Components;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.Player;
@@ -126,11 +128,20 @@ namespace Content.Server.Pointing.EntitySystems
return false;
}
if (TryComp(pointed, out InvisibilityComponent? invisibility) && invisibility.Invisible) // WD
// WD START
if (TryComp(pointed, out InvisibilityComponent? invisibility) && invisibility.Invisible)
{
return false;
}
if (HasComp<CultRuneComponent>(pointed) && !(HasComp<GhostComponent>(player) ||
HasComp<CultistComponent>(player) ||
HasComp<ConstructComponent>(player)))
{
return false;
}
// WD END
if (HasComp<PointingArrowComponent>(pointed))
{
// this is a pointing arrow. no pointing here...

View File

@@ -0,0 +1,6 @@
namespace Content.Shared._White.Cult.Components;
[RegisterComponent]
public sealed partial class CultRuneComponent : Component
{
}

View File

@@ -0,0 +1,23 @@
using Content.Shared._White.Cult.Components;
using Content.Shared.Examine;
using Content.Shared.Ghost;
namespace Content.Shared._White.Cult.Systems;
public sealed class CultRuneSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CultRuneComponent, ExamineAttemptEvent>(OnExamine);
}
private void OnExamine(Entity<CultRuneComponent> ent, ref ExamineAttemptEvent args)
{
if (HasComp<GhostComponent>(args.Examiner) || HasComp<CultistComponent>(args.Examiner))
return;
args.Cancel();
}
}

View File

@@ -13,6 +13,7 @@
- type: CultRuneBase
invokePhrase: "Mah'weyh pleggh at e'ntrath!"
- type: CultRuneOffering
- type: CultRune
- type: entity
parent: CollideRune
@@ -29,6 +30,7 @@
- type: CultRuneBase
invokePhrase: "Qu'laris ver'don, thal'sorin mik'thar!"
- type: CultRuneBuff
- type: CultRune
- type: entity
parent: CollideRune
@@ -49,6 +51,7 @@
interfaces:
- key: enum.CultEmpowerUiKey.Key
type: SpellSelectorBUI
- type: CultRune
- type: entity
parent: CollideRune
@@ -67,6 +70,7 @@
gatherInvokers: false
- type: CultRuneTeleport
label: "безымянная метка"
- type: CultRune
- type: entity
parent: CollideRune
@@ -84,6 +88,7 @@
invokePhrase: "N'ath reth sh'yro eth d'rekkathnor!"
gatherInvokers: true
- type: CultRuneSummoning
- type: CultRune
- type: entity
parent: CollideRune
@@ -100,6 +105,7 @@
- type: CultRuneBase
invokePhrase: "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!"
- type: CultRuneRevive
- type: CultRune
- type: entity
parent: CollideRune
@@ -116,6 +122,7 @@
- type: CultRuneBase
invokePhrase: "Khari'd! Eske'te tannin!"
- type: CultRuneBarrier
- type: CultRune
- type: entity
parent: CollideRune
@@ -133,6 +140,7 @@
invokePhrase: "Dedo ol'btoh!"
- type: CultRuneBloodBoil
projectilePrototype: ProjectileCult
- type: CultRune
- type: entity
parent: BaseRune