Skip to content

Commit 7fb00a6

Browse files
authored
Борги, борги, борги, борги и борги! (#329)
* Revert "commit2" This reverts commit 47e4a12. # Conflicts: # Resources/Prototypes/_Wega/Entities/Mobs/Species/android.yml * Revert "fix-translate" This reverts commit 65cd54a. # Conflicts: # Resources/Prototypes/_Wega/Entities/Objects/Weapons/Melee/sabre.yml # Conflicts: # Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl # Conflicts: # Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/vehicles/buckleable.ftl * Reapply "fix-translate" This reverts commit ab4df34. * Reapply "commit2" This reverts commit caaab7e. * Mining_borg * rebalance * fix * tank-module * two-rofls * bluesheild-emp * gps * gps2
1 parent e1f3184 commit 7fb00a6

File tree

71 files changed

+749
-95
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+749
-95
lines changed

Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
33
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls"
44
Title="{Loc 'borg-select-type-menu-title'}"
5-
SetSize="550 300">
5+
SetSize="550 340"> <!-- Corvax-Wega-Edit -->
66
<BoxContainer Orientation="Vertical">
77
<BoxContainer Orientation="Horizontal" VerticalExpand="True">
88
<!-- Left pane: selection of borg type -->

Content.Shared/Lock/LockingWhitelistSystem.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,10 @@ private void OnUserLockToggleAttempt(Entity<LockingWhitelistComponent> ent, ref
2525

2626
args.Cancelled = true;
2727
}
28+
// Corvax-Wega-Start
29+
public void SetList(Entity<LockingWhitelistComponent> ent, EntityWhitelist list)
30+
{
31+
ent.Comp.Blacklist = list;
32+
}
33+
// Corvax-Wega-End
2834
}

Content.Shared/Silicons/Borgs/BorgTypePrototype.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Robust.Shared.Audio;
77
using Robust.Shared.Prototypes;
88
using Content.Shared.Corvax.TTS; // Corvax-Wega-tts-borg
9+
using Content.Shared.Lock; // Corvax-Wega-borg
910

1011
namespace Content.Shared.Silicons.Borgs;
1112

@@ -160,4 +161,11 @@ public sealed partial class BorgTypePrototype : IPrototype
160161
[DataField]
161162
public string? VoicePrototypeId { get; set; } = "TrainingRobot";
162163
// Corvax-TTS-end
164+
165+
/// Corvax-Wega-Start
166+
/// Blacklist Locks LockingWhitelistComponent
167+
/// </summary>
168+
[DataField]
169+
public EntityWhitelist? Blacklist { get; set; }
170+
// Corvax-Wega-End
163171
}

Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using Robust.Shared.Player;
88
using Robust.Shared.Prototypes;
99
using Content.Shared.Corvax.TTS; // Corvax-Wega-tts-borg
10-
10+
using Content.Shared.Lock; // Corvax-Wega-borg
1111

1212
namespace Content.Shared.Silicons.Borgs;
1313

@@ -23,6 +23,7 @@ public abstract class SharedBorgSwitchableTypeSystem : EntitySystem
2323
[Dependency] private readonly SharedUserInterfaceSystem _userInterface = default!;
2424
[Dependency] protected readonly IPrototypeManager Prototypes = default!;
2525
[Dependency] private readonly InteractionPopupSystem _interactionPopup = default!;
26+
[Dependency] private readonly LockingWhitelistSystem _lockingWhiteList = default!; // Corvax-Wega-borg
2627

2728
public static readonly EntProtoId ActionId = "ActionSelectBorgType";
2829

@@ -129,7 +130,13 @@ protected virtual void UpdateEntityAppearance(
129130
{
130131
tts.VoicePrototypeId = prototype.VoicePrototypeId;
131132
}
132-
// Corvax-TTS-end
133+
// Corvax-TTS-end
134+
// Corvax-Wega-Start
135+
if (TryComp(entity, out LockingWhitelistComponent? locking) && prototype.Blacklist != null)
136+
{
137+
_lockingWhiteList.SetList((entity.Owner, locking), prototype.Blacklist);
138+
}
139+
// Corvax-Wega-End
133140

134141
if (prototype.SpriteBodyMovementState is { } movementState)
135142
{
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Robust.Shared.GameStates;
2+
3+
namespace Content.Shared.Weapons.Hitscan.Components;
4+
5+
/// <summary>
6+
/// Allows for hitscan entities to ignite their targets. This component modifies the ignition chance, as well as how many stacks are added once ignited.
7+
/// </summary>
8+
[RegisterComponent, AutoGenerateComponentState(true)]
9+
public sealed partial class HitscanEMPComponent : Component
10+
{
11+
/// <summary>
12+
/// EMP range.
13+
/// </summary>
14+
[DataField, AutoNetworkedField]
15+
public float Range = 1.0f;
16+
17+
/// <summary>
18+
/// How much energy (in Joules) will be consumed per battery in range.
19+
/// </summary>
20+
[DataField, AutoNetworkedField]
21+
public float EnergyConsumption;
22+
23+
/// <summary>
24+
/// How long it disables targets.
25+
/// </summary>
26+
[DataField, AutoNetworkedField]
27+
public TimeSpan DisableDuration = TimeSpan.FromSeconds(10);
28+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using Content.Shared.Emp;
2+
using Content.Shared.Weapons.Hitscan.Components;
3+
using Content.Shared.Weapons.Hitscan.Events;
4+
using Content.Shared.Mobs.Components;
5+
6+
namespace Content.Shared.Weapons.Hitscan.Systems;
7+
8+
public sealed class HitscanEMPSystem : EntitySystem
9+
{
10+
[Dependency] private readonly SharedEmpSystem _emp = default!;
11+
12+
public override void Initialize()
13+
{
14+
base.Initialize();
15+
16+
SubscribeLocalEvent<HitscanEMPComponent, HitscanRaycastFiredEvent>(OnHitscanHit);
17+
}
18+
19+
//The hitscan has hit the target, rolls a chance to ignite and ignite if it succeeds.
20+
private void OnHitscanHit(Entity<HitscanEMPComponent> ent, ref HitscanRaycastFiredEvent args)
21+
{
22+
//If the roll succeeds, the target is set on fire.
23+
var target = args.Data.HitEntity;
24+
if (target == null)
25+
return;
26+
27+
if (HasComp<MobStateComponent>(target.Value))
28+
_emp.EmpPulse(Transform(target.Value).Coordinates, ent.Comp.Range, ent.Comp.EnergyConsumption, ent.Comp.DisableDuration);
29+
}
30+
}

Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ ghost-role-information-possessed-blade-description = Ты — древний к
3434
ghost-role-information-taxibot-name = Таксибот
3535
ghost-role-information-taxibot-description = Отвезите членов экипажа к месту назначения.
3636
ghost-role-information-idol-name = Айдол
37-
ghost-role-information-idol-description = Помощник одинокого Культиста.
37+
ghost-role-information-idol-description = Помощник одинокого Культиста.

Resources/Locale/ru-RU/robotics/borg_modules.ftl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
borg-slot-cables-empty = Кабели
2-
borg-slot-construction-empty = Строительные материалы
2+
# Corvax-Wega-start
3+
borg-slot-construction-empty = Ресурсы и модульная часть
4+
# Corvax-Wega-end
35
borg-slot-circuitboards-empty = Платы
46
borg-slot-flatpacks-empty = Упаковки
57
borg-slot-tiles-empty = Плитки
@@ -8,7 +10,9 @@ borg-slot-small-containers-empty = Маленькие ёмкости
810
borg-slot-chemical-containers-empty = Химические ёмкости
911
borg-slot-documents-empty = Книги и бумаги
1012
borg-slot-soap-empty = Мыло
11-
borg-slot-instruments-empty = Музыкальные инструменты
13+
# Corvax-Wega-start
14+
borg-slot-instruments-empty = Муз. инструменты
15+
# Corvax-Wega-end
1216
borg-slot-beakers-empty = Мензурки
1317
borg-slot-brains-empty = Мозги и ММИ
1418
borg-slot-modules-empty = Модули

Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/misc/identification_cards.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ ent-MinerMedicIDCard = ID-карта шахтёра медика
1818
.desc = { ent-IDCardStandard.desc }
1919
ent-IDCardNeck = бейджик служебного доступа
2020
.desc = Специальный бейджик с доступами служебной группы, позволяя проходить в большенство помещений. Снимайте только его перед использованием!
21-
ent-WardenHelperIDCard = ID карта помощника смотрителя
21+
ent-WardenHelperIDCard = ID-карта помощника смотрителя
2222
.desc = { ent-IDCardStandard.desc }

Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_items.ftl

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Обычные
22
ent-WeaponMeleeNeedleBorg = стальная палка
33
.desc = Заостренная палка, которая раньше лопала шарики, а теперь будет и лопать головы недругов.
4-
ent-PickaxeBorg = кирка
4+
ent-PickaxeBorg = встроенная кирка
55
.desc = { ent-Pickaxe.desc }
6+
.suffix = Киборг
67
ent-BorgGeneratorCommonCandy = генератор конфет
78
.desc = Успокойте членов экипажа вкусной ( или нет ) конфеткой! Убедите их, что Вы знакомый дядя для них!
89
.suffix = 10% мед веществ
@@ -130,6 +131,9 @@ ent-BorgGeneratorMaterialPlasteel = генератор пачек пластал
130131
.desc = Генератор материи, настроенный на генерацию пачек пластали.
131132
132133
# Врач
134+
ent-HandheldCrewMonitorBorg = встроенный монитор экипажа
135+
.desc = НаноТрейзен не смогла встроить в Вас монитор, так что довольствуетесь этим.
136+
.suffix = Киборг
133137
ent-BorgSyringe = { ent-BaseSyringe }
134138
.desc = { ent-BaseSyringe.desc }
135139
.suffix = Киборг
@@ -172,6 +176,8 @@ ent-WeaponProtoKineticAcceleratorBorg = протокинетический ус
172176
.desc = Стреляет кинетическими зарядами с низким уроном на короткое расстояние.
173177
ent-MailBagBorg = встроенная сумка для почты
174178
.desc = Сумка шахтерского киборга для почты, хотя внешне оно похоже на обычную сумку, вмещает в себя как целая тележка!
179+
ent-DocumentBorg = карта очков киборга
180+
.desc = Теперь Вы официально способны получать очки с переработчика руды. Не забудьте подписать только карту на всякий случай.
175181
176182
# НИО, не РНД йоу
177183
ent-WeaponPistolCHIMPBorg = встроенный излучатель М.А.Р.Т.Ы.Х.
@@ -217,15 +223,21 @@ ent-XenoRCD = РСУ ксеноборгов
217223
ent-MiniSyringePax = { ent-MiniSyringe }
218224
.desc = { ent-MiniSyringe.desc }
219225
.suffix = Пакс
220-
ent-MiniSyringeMute = { ent-MiniSyringe }
226+
ent-MiniSyringeImpedrezene = { ent-MiniSyringe }
221227
.desc = { ent-MiniSyringe.desc }
222-
.suffix = Токсин немоты
228+
.suffix = Импедризин
223229
ent-BorgGeneratorMiniSyringePax = генератор снарядов пакса
224230
.desc = Встроенный генератор снарядов для шприцемета, который не позволит жертве дать отпор.
225-
ent-BorgGeneratorMiniSyringeMute = генератор снарядов токсина немоты
231+
ent-BorgGeneratorMiniSyringeImpedrezene = генератор снарядов импедризина
226232
.desc = Встроенный генератор снарядов для шприцемета, который не позволит жертве что-либо сказать.
233+
ent-XenoborgHoloprojectorEMPTrap = проектор ЭМИ ловушек
234+
.desc = Устройство для создания проекции ловушки, которая существует 2 минуты.
227235
ent-RepeirModeDeviceXenoborg = устройство самовосстановления ксеноборгов
228236
.desc = Устройство для поддержки корпуса в целом состоянии.
237+
ent-RepeirModeDeviceXenoborgHeavy = устройство самовосстановления тяжёлого ксеноборга
238+
.desc = Устройство для поддержки корпуса в целом состоянии усилинное под Ваш вес.
239+
ent-BorgGeneratorNanopastXenoborg = генератор нанопасты ксеноборгов
240+
.desc = Устройство для генерации тюбиков нанопасты, позволяющая экстренно залатать дыры у синтетиков.
229241
230242
# Иконка
231243
ent-BorgIconRollerBed = Заглушка

0 commit comments

Comments
 (0)