Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hidden-desc-fix #2285

Merged
merged 3 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему корвакс?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Потому что скрытые описания - от Корвуха?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ладно

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace Content.Server.Corvax.HiddenDescription;

/// <summary>
/// Shows hidden description from entity in container
/// </summary>
[RegisterComponent]
public sealed partial class HiddenDescriptionContainerShowerComponent : Component { }
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

using Content.Shared.Examine;
using Robust.Server.Containers;

namespace Content.Server.Corvax.HiddenDescription;

public sealed class HiddenDescriptionContainerShowerSystem : EntitySystem
{
[Dependency] private readonly ContainerSystem _container = default!;
[Dependency] private readonly HiddenDescriptionSystem _hiddenDescription = default!;

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<HiddenDescriptionContainerShowerComponent, ExaminedEvent>(OnExamine);
}

private void OnExamine(Entity<HiddenDescriptionContainerShowerComponent> entity, ref ExaminedEvent args)
{
foreach (var container in _container.GetAllContainers(entity.Owner))
{
foreach (var containedEntity in container.ContainedEntities)
{
if (TryComp<HiddenDescriptionComponent>(containedEntity, out var hiddenDescription))
{
_hiddenDescription.PushExamineInformation(hiddenDescription, ref args);
}
}
}
}
}
13 changes: 11 additions & 2 deletions Content.Server/Corvax/HiddenDescription/HiddenDescriptionSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,18 @@ public override void Initialize()
}

private void OnExamine(Entity<HiddenDescriptionComponent> hiddenDesc, ref ExaminedEvent args)
// SS220-fix-hidden-desc-fix-begin
{
PushExamineInformation(hiddenDesc.Comp, ref args);
}

public void PushExamineInformation(HiddenDescriptionComponent component, ref ExaminedEvent args)
// SS220-fix-hidden-desc-fix-end
{
_mind.TryGetMind(args.Examiner, out var mindId, out var mindComponent);

foreach (var item in hiddenDesc.Comp.Entries)
// foreach (var item in hiddenDesc.Comp.Entries) SS220-hidden-desc-fix
foreach (var item in component.Entries) // SS220-hidden-desc-fix
{
var isJobAllow = false;
if (_roles.MindHasRole<JobRoleComponent>((mindId, mindComponent), out var jobRole))
Expand All @@ -40,7 +48,8 @@ private void OnExamine(Entity<HiddenDescriptionComponent> hiddenDesc, ref Examin
: isMindWhitelistPassed || isBodyWhitelistPassed || isJobAllow;

if (passed)
args.PushMarkup(Loc.GetString(item.Label), hiddenDesc.Comp.PushPriority);
// args.PushMarkup(Loc.GetString(item.Label), hiddenDesc.Comp.PushPriority);
args.PushMarkup(Loc.GetString(item.Label), component.PushPriority); // SS220-hidden-desc-fix
}
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,49 @@ ent-ImplanterAdmeme = { ent-Implanter }
ent-BaseImplantOnlyImplanter = { ent-Implanter }
.desc = Одноразовый шприц, специально предназначенный для введения подкожных имплантов.
ent-BaseImplantOnlyImplanterSyndi = имплантер синдиката
.desc = Компактный одноразовый шприц, специально предназначенный для введения подкожных имплантов.
ent-SadTromboneImplanter = имплантер Грустный тромбон
.desc = Одноразовый имплантер, содержащий имплант, который проигрывает грустную мелодию при смерти владельца.
ent-LightImplanter = имплантер Свет
.desc = Одноразовый имплантер, содержащий имплант, который излучает свет при активации.
ent-TrackingImplanter = имплантер Трекер
.desc = Одноразовый имплантер, содержащий имплант, постоянно передающий координаты владельца.
ent-StorageImplanter = имплантер Хранилище
.desc = Одноразовый имплантер, содержащий имплант, создающий хранилище в теле владельца.
ent-FreedomImplanter = имплантер Свобода
.desc = Одноразовый имплантер, содержащий имплант, позволяющий владельцу три раза освободиться от наручников и других ограничителей.
ent-UplinkImplanter = имплантер Аплинк
.desc = Одноразовый имплантер, содержащий имплант, позволяющий владельцу пользоваться аплинком.
ent-MicroBombImplanter = имплантер Микробомба
.desc = Одноразовый имплантер, содержащий неизвлекаемый имплант, вызывающий небольшой взрыв при смерти владельца.
ent-MacroBombImplanter = имплантер Макробомба
.desc = Одноразовый имплантер, содержащий имплант, вызывающий мощный взрыв при смерти владельца по истечении заданного времени.
ent-BikeHornImplanter = имплантер Клаксон
.desc = Одноразовый имплантер, содержащий имплант, позволяющий пользователю хонкать когда угодно.
ent-EmpImplanter = имплантер ЭМИ
.desc = Одноразовый имплантер, содержащий имплант, позволяющий пользователю создавать электромагнитные импульсы при активации.
ent-DnaScramblerImplanter = имплантер Миксер ДНК
.desc = Одноразовый имплантер, содержащий имплант, позволяющий пользователю пользователю один раз произвольно изменить свою внешность и имя.
ent-DeathRattleImplanter = имплантер Предсмертный Хрип
.desc = Одноразовый имплантер, содержащий имплант, сообщающий в радиоканал Синдиката, если пользователь окажется в критическом состоянии или умрёт.
ent-MindShieldImplanter = имплантер Щит разума
.desc = Одноразовый имплантер, содержащий имплант, гарантирующий лояльность корпорации Nanotrasen.
ent-DeathAcidifierImplanter = имплантер Посмертный растворитель
.desc = Одноразовый имплантер, содержащий имплант, уничтожающий экипировку владельца.
.desc = { ent-Implanter.desc }
ent-SadTromboneImplanter = { ent-Implanter }
.suffix = Грустный тромбон
.desc = { ent-Implanter.desc }
ent-LightImplanter = { ent-Implanter }
.suffix = Свет
.desc = { ent-Implanter.desc }
ent-TrackingImplanter = { ent-Implanter }
.suffix = Трекер
.desc = { ent-Implanter.desc }
ent-StorageImplanter = { ent-Implanter }
.suffix = Хранилище
.desc = { ent-Implanter.desc }
ent-FreedomImplanter = { ent-Implanter }
.suffix = Свобода
.desc = { ent-Implanter.desc }
ent-UplinkImplanter = { ent-Implanter }
.suffix = Аплинк
.desc = { ent-Implanter.desc }
ent-MicroBombImplanter = { ent-Implanter }
.suffix = Микробомба
.desc = { ent-Implanter.desc }
ent-MacroBombImplanter = { ent-Implanter }
.suffix = Макробомба
.desc ={ ent-Implanter.desc }
ent-BikeHornImplanter = { ent-Implanter }
.suffix = Клаксон
.desc = { ent-Implanter.desc }
ent-EmpImplanter = { ent-Implanter }
.suffix = ЭМИ
.desc = { ent-Implanter.desc }
ent-DnaScramblerImplanter = { ent-Implanter }
.suffix = миксер ДНК
.desc = { ent-Implanter.desc }
ent-DeathRattleImplanter = { ent-Implanter }
.suffix = предсмертный хрип
.desc = { ent-Implanter.desc }
ent-MindShieldImplanter = { ent-Implanter }
.suffix = Защита разума
.desc = { ent-Implanter.desc }
ent-DeathAcidifierImplanter = { ent-Implanter }
.suffix = растворитель
.desc = { ent-Implanter.desc }
ent-ScramImplanter = { ent-Implanter }
.suffix = побег
.desc = { ent-BaseImplantOnlyImplanterSyndi.desc }
.desc = { ent-Implanter.desc }
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
ent-BaseSubdermalImplant = имплант
.desc = Микрочип, который вживляют под кожу.
.desc = Имплант без подписи.
# Corvax-HiddenDesc-Start
ent-SadTromboneImplant = { ent-BaseSubdermalImplant }
.suffix = Грустный тромбон
.desc = { ent-BaseSubdermalImplant.desc }
.desc = имплант подписан "грустный тромбон"
ent-LightImplant = { ent-BaseSubdermalImplant }
.suffix = Свет
.desc = { ent-BaseSubdermalImplant.desc }
.desc = имплант подписан "свет"
ent-BikeHornImplant = { ent-BaseSubdermalImplant }
.suffix = хонк-имплант
.desc = { ent-BaseSubdermalImplant.desc }
.desc = имплант подписан "велосипедный клаксон"
ent-TrackingImplant = { ent-BaseSubdermalImplant }
.suffix = Трекер
.desc = { ent-BaseSubdermalImplant.desc }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,18 @@ hidden-desc-ThermalGoogles-research = [color=#D381C9]Неожиданно для

hidden-desc-ThermalVisorImplanter-research = [color=#D381C9]Сверив номера на имплантере, вы замечаете знакомый шаблон. Когда-то НаноТрейзен исследовала возможность ксеноморфов видеть людей сквозь преграды, открытые испытания тех чипов имели такой же шаблон серийных номеров, видимо доработка была успешна, но должна ли была Вам в руки попасть уже засекреченная разработка?[/color]

hidden-desc-MindShieldImplanter-security = [color=#009ae1]Внутри имплантера находится имплант защиты разума.[/color]
hidden-desc-TrackingImplanter-security = [color=#009ae1]Внутри имплантера нахоится имплант-трекер.[/color]

hidden-desc-MindSlaveImplant-medical = [color=#52B4E9]Сверив номера импланта внутри, вы понимаете, что это несертифицированный имплант. При внимательном осмотре вы понимаете что этот имплант обладает ИИ, подавляющим разум имплантированного.[/color]
hidden-desc-MindSlaveImplant-research = [color=#D381C9]Внимательно осмотрев имплант, вы понимаете, что это внутри имплант, губительно влияющий на нервную систему.[/color]
hidden-desc-MindSlaveImplant-syndicate = [color=#e31735]Этот имплант подчиняет разум владельца тому, кто установил имлпант. При извлечении импланта контроль над разумом теряется.[/color]

# Regular decriptions below

ent-ThermalVisorImplanter = имплантер Термального Зрения
.desc = Одноразовый имплантер, содержащий извлекаемым имплант, позволяющий видеть тела существ сквозь преграды.
ent-ThermalVisorImplanter = { ent-Implanter }
.desc = { ent-Implanter.desc }
.suffix = Термальное зрение
ent-ThermalVisionImplant = имплант Термального Зрения
.desc = Микрочип, который вживляют под кожу.

Expand Down
8 changes: 5 additions & 3 deletions Resources/Locale/ru-RU/ss220/implant/mindslave.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@ mindslave-notification-window-text-freed =
mindslave-notification-window-accept = Понятно

#entities
ent-MindSlaveImplanter = имплантер Подчинитель разума
.desc = Одноразовый имплантер, содержащий имплант, который подчиняет разум владельца тому, кто установил имплант.
ent-MindSlaveImplanter = { ent-Implanter }
.desc = { ent-Implanter.desc }
.suffix = Подчинитель
ent-MindSlaveImplant = Подчинитель разума
.desc = Этот имплант подчиняет разум владельца тому, кто установил имлпант. При извлечении импланта контроль над разумом теряется.
.desc = { ent-BaseSubdermalImplant.desc }

ent-MindslaveFixerCerebralImplant = конфигуратор имплантов
.desc = Небольшое устройство, позволяющее произвести более тонкую настройку имплантов. На корпусе расположилось лого "Interdyne pharmaceutics".
ent-MindslaveFixSurgeryGuide = инструкция
Expand Down
Loading
Loading