Skip to content

Commit

Permalink
New component (#713)
Browse files Browse the repository at this point in the history
# Описание PR
<!-- Что вы изменили в этом пулл реквесте? -->
Добавлен новый компонент "HideGhostWarpComponent".

## Причины изменения
Данный компонент предотвращает возможность призраков (гостов) следовать
за определёнными сущностями, чтобы избежать нежелательных конфликтов....

## Техническая информация
Компонент можно назначить на любую сущность. После его активации
призраки не смогут телепортироваться к этой сущности, благодаря
обновлению логику в функции return в коде компонента, мы будем выходить
из OnGhostWarpToTargetRequest и не телепортироваться.


## Критические изменения
Внесено одно условие в GhostSystem.cs в функции
OnGhostWarpToTargetRequest, что блокирует телепортацию призраков к
объектам с добавленным компонентом.

![image](https://github.com/user-attachments/assets/c48d7f1a-1fc3-448e-9fd0-ed12488db056)

## Требования
<!--
В связи с наплывом ПР'ов нам необходимо убедиться, что ПР'ы следуют
правильным рекомендациям.

Пожалуйста, уделите время прочтению, если делаете пулл реквест (ПР)
впервые.

Отметьте поля ниже, чтобы подтвердить, что Вы действительно видели их
(поставьте X в скобках, например [X]):
-->
- [x] Я прочитал(а) и следую [Руководство по созданию пулл
реквестов](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
Я понимаю, что в противном случае мой ПР может быть закрыт по усмотрению
мейнтейнера.
- [x] Я добавил скриншоты/видео к этому пулл реквесту, демонстрирующие
его изменения в игре, **или** этот пулл реквест не требует демонстрации
в игре

**Чейнджлог**
# NO CL. NO FUN

---------

Co-authored-by: FaDeOkno <[email protected]>
  • Loading branch information
Schrodinger71 and FaDeOkno authored Oct 30, 2024
1 parent 40e7d31 commit c719bf3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Content.Server/ADT/HideGhostWarp/HideGhostWarpComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Content.Server.ADT.Ghost;

/// <summary>
/// Вешаем на сущность, и к ней нельзя будет тепнуться через "Телепорт призрака".
/// </summary>
[RegisterComponent]
public sealed partial class HideGhostWarpComponent : Component
{
}
8 changes: 8 additions & 0 deletions Content.Server/Ghost/GhostSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
using System.Linq;
using System.Numerics;
using Content.Shared.ADT.OnGhostAttemtpDamage;
using Content.Server.ADT.Ghost;

namespace Content.Server.Ghost
{
Expand Down Expand Up @@ -307,6 +308,9 @@ private void OnGhostWarpToTargetRequest(GhostWarpToTargetRequestEvent msg, Entit
}

var target = GetEntity(msg.Target);
if (HasComp<HideGhostWarpComponent>(target)) return; // ADT TWEAK: НАХЕР ГОСТОВ ЗАЕБАЛИ,
// не сможет тепнуться к нему так как вышли из функции
// если цель "target" имеет HideGhostWarp Comp

if (!Exists(target))
{
Expand Down Expand Up @@ -366,6 +370,10 @@ private IEnumerable<GhostWarp> GetPlayerWarps(EntityUid except)

if (attached == except) continue;

if (HasComp<HideGhostWarpComponent>(attached)) continue; // ADT TWEAK: НАХЕР ГОСТОВ ЗАЕБАЛИ,
// не сможет тепнуться к нему так как вышли из функции
// если цель "attached" имеет HideGhostWarp Comp

TryComp<MindContainerComponent>(attached, out var mind);

var jobName = _jobs.MindTryGetJobName(mind?.Mind);
Expand Down

0 comments on commit c719bf3

Please sign in to comment.