@@ -2,6 +2,7 @@ using Content.Shared.Actions;
|
||||
using Content.Shared.Interaction;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
using System.Linq;
|
||||
|
||||
namespace Content.Server.Actions;
|
||||
|
||||
@@ -58,13 +59,21 @@ public sealed class ActionOnInteractSystem : EntitySystem
|
||||
|
||||
private void OnAfterInteract(EntityUid uid, ActionOnInteractComponent component, AfterInteractEvent args)
|
||||
{
|
||||
if (args.Handled || component.ActionEntities == null)
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
if (component.ActionEntities is not { } actionEnts)
|
||||
{
|
||||
if (!TryComp<ActionsContainerComponent>(uid, out var actionsContainerComponent))
|
||||
return;
|
||||
|
||||
actionEnts = actionsContainerComponent.Container.ContainedEntities.ToList();
|
||||
}
|
||||
|
||||
// First, try entity target actions
|
||||
if (args.Target != null)
|
||||
{
|
||||
var entOptions = GetValidActions<EntityTargetActionComponent>(component.ActionEntities, args.CanReach);
|
||||
var entOptions = GetValidActions<EntityTargetActionComponent>(actionEnts, args.CanReach);
|
||||
for (var i = entOptions.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var action = entOptions[i];
|
||||
@@ -77,8 +86,6 @@ public sealed class ActionOnInteractSystem : EntitySystem
|
||||
var (entActId, entAct) = _random.Pick(entOptions);
|
||||
if (entAct.Event != null)
|
||||
{
|
||||
entAct.Event.Performer = args.User;
|
||||
entAct.Event.Action = entActId;
|
||||
entAct.Event.Target = args.Target.Value;
|
||||
}
|
||||
|
||||
@@ -87,29 +94,6 @@ public sealed class ActionOnInteractSystem : EntitySystem
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// else: try world target actions
|
||||
var options = GetValidActions<WorldTargetActionComponent>(component.ActionEntities, args.CanReach);
|
||||
for (var i = options.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var action = options[i];
|
||||
if (!_actions.ValidateWorldTarget(args.User, args.ClickLocation, action))
|
||||
options.RemoveAt(i);
|
||||
}
|
||||
|
||||
if (options.Count == 0)
|
||||
return;
|
||||
|
||||
var (actId, act) = _random.Pick(options);
|
||||
if (act.Event != null)
|
||||
{
|
||||
act.Event.Performer = args.User;
|
||||
act.Event.Action = actId;
|
||||
act.Event.Target = args.ClickLocation;
|
||||
}
|
||||
|
||||
_actions.PerformAction(args.User, null, actId, act, act.Event, _timing.CurTime, false);
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private bool ValidAction(BaseActionComponent action, bool canReach = true)
|
||||
|
||||
@@ -23,7 +23,6 @@ public sealed partial class HaltComponent : Component
|
||||
["dontmove-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/dontmove.ogg"),
|
||||
["floor-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/floor.ogg"),
|
||||
["robocop-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/robocop.ogg"),
|
||||
["god-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/god.ogg"),
|
||||
["freeze-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/freeze.ogg"),
|
||||
["imperial-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/imperial.ogg"),
|
||||
["bash-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/bash.ogg"),
|
||||
@@ -31,7 +30,6 @@ public sealed partial class HaltComponent : Component
|
||||
["asshole-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/asshole.ogg"),
|
||||
["stfu-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/stfu.ogg"),
|
||||
["shutup-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/shutup.ogg"),
|
||||
["super-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/super.ogg"),
|
||||
["dredd-phrase"] = new SoundPathSpecifier("/Audio/Voice/Complionator/dredd.ogg")
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,50 +1,4 @@
|
||||
Entries:
|
||||
- author: RavMorgan
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0433\u043E\u0432\
|
||||
\u043D\u043E\u0447\u0430\u0442!"
|
||||
type: Add
|
||||
id: 133
|
||||
time: '2023-04-09T21:34:26.0000000+00:00'
|
||||
- author: BELNAKBU
|
||||
changes:
|
||||
- message: "\u0423\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0430 \u0434\u0430\u043B\
|
||||
\u044C\u043D\u043E\u0441\u0442\u044C \u043E\u0441\u043C\u043E\u0442\u0440\u0430\
|
||||
\ \u0430\u0439\u0434\u0438 \u043A\u0430\u0440\u0442\u044B."
|
||||
type: Tweak
|
||||
- message: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0441\
|
||||
\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0439 \u043E\u0433\
|
||||
\u043D\u0435\u0442\u0443\u0448\u0438\u0442\u0435\u043B\u044F \u0443\u0432\u0435\
|
||||
\u043B\u0438\u0447\u0435\u043D\u043E \u0434\u043E 10 \u0432\u043C\u0435\u0441\
|
||||
\u0442\u043E 6.6. \u0421\u0438\u043B\u0430 \u043E\u0442\u0442\u0430\u043B\u043A\
|
||||
\u0438\u0432\u0430\u043D\u0438\u044F \u0443\u0432\u0435\u043B\u0438\u0447\u0435\
|
||||
\u043D\u0430 \u0432\u0442\u0440\u043E\u0435"
|
||||
type: Tweak
|
||||
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0448\u043F\u0440\u0438\u0446\u044B\
|
||||
\ \u0438 \u0433\u0438\u043F\u043E\u0441\u043F\u0440\u0435\u0438 \u043D\u0435\
|
||||
\ \u043F\u0440\u043E\u0431\u0438\u0432\u0430\u044E\u0442 \u0441\u043A\u0432\u043E\
|
||||
\u0437\u044C \u0441\u043A\u0430\u0444\u0430\u043D\u0434\u0440\u044B, \u043A\u043E\
|
||||
\u0441\u0442\u044E\u043C\u044B \u0431\u0438\u043E/\u0440\u0430\u0434\u0438\u043E\
|
||||
\u0437\u0430\u0449\u0438\u0442\u044B \u0438 \u0441\u0430\u043F\u0435\u0440\u043D\
|
||||
\u0443\u044E \u0431\u0440\u043E\u043D\u044E, \u043E\u0434\u043D\u0430\u043A\u043E\
|
||||
\ \u0435\u0441\u043B\u0438 \u0448\u043B\u0435\u043C \u0441\u043D\u044F\u0442\
|
||||
, \u043E\u043D\u0438 \u043F\u043E \u043F\u0440\u0435\u0436\u043D\u0435\u043C\
|
||||
\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442"
|
||||
type: Add
|
||||
- message: "\u0412\u044B\u0441\u0442\u0440\u0435\u043B\u044B \u0434\u0438\u0437\u0435\
|
||||
\u0439\u0431\u043B\u0435\u0440\u0430 \u043F\u0440\u043E\u0445\u043E\u0434\u044F\
|
||||
\u0442 \u0441\u043A\u0432\u043E\u0437\u044C \u0441\u0442\u0435\u043A\u043B\u043E"
|
||||
type: Fix
|
||||
id: 134
|
||||
time: '2023-04-09T21:46:00.0000000+00:00'
|
||||
- author: Valtos
|
||||
changes:
|
||||
- message: "banlist \u0441\u043D\u043E\u0432\u0430 \u0432\u044B\u0432\u043E\u0434\
|
||||
\u0438\u0442 \u0431\u0430\u043D\u044B \u0441\u043E \u0432\u0441\u0435\u0445\
|
||||
\ \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u0432."
|
||||
type: Fix
|
||||
id: 135
|
||||
time: '2023-04-09T22:20:52.0000000+00:00'
|
||||
- author: Valtos
|
||||
changes:
|
||||
- message: "\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0441\u043B\
|
||||
@@ -8907,3 +8861,39 @@
|
||||
id: 632
|
||||
time: '2024-12-15T15:12:30.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/827
|
||||
- author: Ivangelion
|
||||
changes:
|
||||
- message: "\u0424\u0438\u043A\u0441 RGB \u043F\u043E\u0441\u043E\u0445\u0430. \u0418\
|
||||
\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0432\u0435\u0442\u0430\
|
||||
\ \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043B\u0438\u0432\u0430\
|
||||
\u0442\u044C\u0441\u044F \u0440\u0430\u0437\u043D\u044B\u043C\u0438 \u0446\u0432\
|
||||
\u0435\u0442\u0430\u043C\u0438 \u0435\u0441\u043B\u0438 \u043A\u043B\u0438\u043A\
|
||||
\u0430\u0442\u044C \u043F\u043E \u043D\u0438\u043C \u043F\u043E\u0441\u043E\u0445\
|
||||
\u043E\u043C"
|
||||
type: Fix
|
||||
id: 633
|
||||
time: '2024-12-21T13:57:37.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/835
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u043D\u0435\u0441\
|
||||
\u043A\u043E\u043B\u044C\u043A\u043E \u043D\u043E\u0432\u043E\u0433\u043E\u0434\
|
||||
\u043D\u0438\u0445 \u0432\u0435\u0449\u0435\u0439."
|
||||
type: Add
|
||||
id: 634
|
||||
time: '2024-12-21T14:36:41.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/837
|
||||
- author: Hero_010
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u043B\u043E\u043A\
|
||||
\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0441\u0438\u043D\u0445\u0440\
|
||||
\u043E\u043D\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u0430\u043D\u043E\u043C\
|
||||
\u0430\u043B\u0438\u0439."
|
||||
type: Add
|
||||
- message: "\u0423\u0431\u0440\u0430\u043D\u044B \u043B\u0438\u0448\u043D\u0438\u0435\
|
||||
\ \u0444\u0440\u0430\u0437\u044B \u0443 \u043C\u0430\u0441\u043A\u0438 \u0421\
|
||||
\u0411."
|
||||
type: Remove
|
||||
id: 635
|
||||
time: '2024-12-21T20:30:21.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/836
|
||||
|
||||
@@ -7,8 +7,7 @@ justice-phrase = Приготовьтесь к справедливости!
|
||||
running-phrase = Бег только увеличит ваш срок.
|
||||
dontmove-phrase = Не двигаться, уёбок!
|
||||
floor-phrase = На пол, сука!
|
||||
robocop-phrase = Мёртвый или живой ты пойдешь со мной.
|
||||
god-phrase = Бог создал сегодня для жуликов, которых мы не могли поймать вчера.
|
||||
robocop-phrase = Мёртвый или живой - ты пойдешь со мной.
|
||||
freeze-phrase = Замри, подонок!
|
||||
imperial-phrase = Стоять, преступная мразь!
|
||||
bash-phrase = Остановись или я тебя ударю.
|
||||
@@ -16,5 +15,5 @@ harry-phrase = Сделай мой день.
|
||||
asshole-phrase = Хватит нарушать закон, гадина.
|
||||
stfu-phrase = Вы имеете право завалить ебало.
|
||||
shutup-phrase = Заткнись нахуй!
|
||||
super-phrase = Сейчас ты познаешь гнев золотой сферы.
|
||||
dredd-phrase = Я ЗАКОН!
|
||||
|
||||
|
||||
2
Resources/Locale/ru-RU/_white/items/ItemFunSnowglobe.ftl
Normal file
@@ -0,0 +1,2 @@
|
||||
ent-ItemFunSnowglobe = снежный шар
|
||||
.desc = Заключённая зима, вечно жаждущая свободы.
|
||||
@@ -9,9 +9,12 @@ ent-BodyBag = мешок для тел
|
||||
ent-AnomalyLocatorUnpowered = локатор аномалий
|
||||
.desc = Устройство, предназначенное для помощи в обнаружении аномалий. Вы проверили газодобытчиков?
|
||||
.suffix = Без питания
|
||||
ent-AnomalyLocatorWideUnpowered = широкополосный локатор аномалий
|
||||
ent-AnomalyLocatorWide = широкополосный локатор аномалий
|
||||
.desc = Устройство, которое ищет аномалии с увеличенного расстояния, но не имеет возможности определить расстояние до них.
|
||||
.suffix = Без питания
|
||||
ent-AnomalyLocatorWideUnpowered = { ent-AnomalyLocatorWide }
|
||||
.desc = { ent-AnomalyLocatorWide.desc }
|
||||
ent-AnomalyLocatorWideEmpty = { ent-AnomalyLocatorWide }
|
||||
.desc = { ent-AnomalyLocatorWide.desc }
|
||||
ent-BorgModuleCable = кабельный кибернетический модуль
|
||||
.desc = кабельный кибернетический модуль
|
||||
ent-BorgModuleGPS = GPS-модуль кибернетики
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ent-ClothingOuterReindeerSweater = свитер с оленями
|
||||
.desc = Уютный свитер, созданный специально для поддержания праздничного настроения.
|
||||
@@ -0,0 +1,2 @@
|
||||
ent-ChristmasLights = новогодние гирлянды
|
||||
.desc = Чувство праздника.
|
||||
@@ -10,6 +10,10 @@ ent-PinpointerUniversal = универсальный пинпоинтер
|
||||
.desc = Портативное устройство слежения, которое фиксируется на любом физическом объекте в выключенном состоянии.
|
||||
ent-HandheldStationMap = карта станции
|
||||
.desc = Отображает показания текущей станции.
|
||||
ent-HandheldStationMapUnpowered = { ent-HandheldStationMap }
|
||||
.desc = { ent-HandheldStationMap.desc }
|
||||
ent-HandheldStationMapEmpty = { ent-HandheldStationMap }
|
||||
.desc = { ent-HandheldStationMap.desc }
|
||||
ent-StationRecordsComputerCircuitboard = компьютерная плата записей станции
|
||||
.desc = Компьютерная печатная плата для компьютера, записывающего станцию.
|
||||
ent-CargoBountyComputerCircuitboard = компьютерная плата грузовых наград
|
||||
|
||||
@@ -1,54 +1,83 @@
|
||||
signal-port-name-autoclose = Автозакрытие
|
||||
signal-port-description-autoclose = Переключает, должно ли устройство автоматически закрываться.
|
||||
|
||||
signal-port-name-toggle = Переключить
|
||||
signal-port-description-toggle = Переключает состояние устройства.
|
||||
|
||||
signal-port-name-on-receiver = Вкл
|
||||
signal-port-description-on-receiver = Включает устройство.
|
||||
|
||||
signal-port-name-off-receiver = Выкл
|
||||
signal-port-description-off-receiver = Выключает устройство.
|
||||
|
||||
signal-port-name-forward = Вперёд
|
||||
signal-port-description-forward = Заставляет устройство (например, конвейер) работать в нормальном направлении.
|
||||
|
||||
signal-port-name-reverse = Обратно
|
||||
signal-port-description-reverse = Заставляет устройство (например, конвейер) работать в обратном направлении.
|
||||
|
||||
signal-port-name-open = Открыть
|
||||
signal-port-description-open = Открывает устройство.
|
||||
|
||||
signal-port-name-close = Закрыть
|
||||
signal-port-description-close = Закрывает устройство.
|
||||
|
||||
signal-port-name-doorbolt = Дверные болты
|
||||
signal-port-description-doorbolt = Переключает дверные болты.
|
||||
|
||||
signal-port-name-trigger = Триггер
|
||||
signal-port-description-trigger = Запускает определенный механизм на устройстве.
|
||||
|
||||
signal-port-name-order-sender = Отправитель заказа
|
||||
signal-port-description-order-sender = Отправитель заказа на компьютер карго
|
||||
|
||||
signal-port-name-order-receiver = Получатель заказа
|
||||
signal-port-description-order-receiver = Получатель заказа на компьютер карго
|
||||
|
||||
signal-port-name-pressurize = Нагнетатель давления
|
||||
signal-port-description-pressurize = Заставляет устройство закачивать воздух, пока не будет достигнуто заданное давление.
|
||||
|
||||
signal-port-name-depressurize = Сбрасыватель давления
|
||||
signal-port-description-depressurize = Заставляет устройство откачивать воздух, пока не будет достигнуто заданное давление.
|
||||
|
||||
signal-port-name-pod-sender = Капсула клонирования
|
||||
signal-port-description-pod-sender = Передатчик сигнала капсулы клонирования
|
||||
|
||||
signal-port-name-pod-receiver = Капсула клонирования
|
||||
signal-port-description-pod-receiver = Приёмник сигнала капсулы клонирования
|
||||
|
||||
signal-port-name-med-scanner-sender = Медицинский сканер
|
||||
signal-port-description-med-scanner-sender = Передатчик сигнала медицинского сканера
|
||||
|
||||
signal-port-name-med-scanner-receiver = Медицинский сканер
|
||||
signal-port-description-med-scanner-receiver = Приёмник сигнала медицинского сканера
|
||||
|
||||
signal-port-name-artifact-analyzer-sender = Консоль
|
||||
signal-port-description-artifact-analyzer-sender = Передатчик сигнала аналитической консоли
|
||||
|
||||
signal-port-name-artifact-analyzer-receiver = Платформа
|
||||
signal-port-description-artifact-analyzer-receiver = Приёмник сигнала анализатора артефактов
|
||||
|
||||
signal-port-name-hold-open = Держать открытой.
|
||||
signal-port-description-hold-open = Выключает авто закрытие.
|
||||
|
||||
signal-port-name-set-particle-delta = Установить тип частицы: дельта
|
||||
signal-port-description-set-particle-delta = Устанавливает тип частицы, испускаемой этим устройством, на дельта.
|
||||
|
||||
signal-port-name-set-particle-epsilon = Установить тип частицы: эпсилон
|
||||
signal-port-description-set-particle-epsilon = Устанавливает тип частицы, испускаемой этим устройством, на эпсилон.
|
||||
|
||||
signal-port-name-set-particle-zeta = Установить тип частицы: зета
|
||||
signal-port-description-set-particle-zeta = Устанавливает тип частицы, испускаемой этим устройством, на зета..
|
||||
signal-port-description-set-particle-zeta = Устанавливает тип частицы, испускаемой этим устройством, на зета.
|
||||
|
||||
signal-port-name-set-particle-sigma = Установить тип частицы: сигма
|
||||
signal-port-description-set-particle-sigma = Устанавливает тип частицы, испускаемой этим устройством, на сигма.
|
||||
|
||||
signal-port-name-logic-input-a = Вход А
|
||||
signal-port-description-logic-input-a = Первый вход логического элемента.
|
||||
|
||||
signal-port-name-logic-input-b = Вход Б
|
||||
signal-port-description-logic-input-b = Второй вход логического элемента.
|
||||
|
||||
signal-port-name-logic-input = Вход
|
||||
signal-port-description-logic-input = Вход в край детектора, не может быть импульсным сигналом.
|
||||
|
||||
@@ -1,25 +1,71 @@
|
||||
signal-port-name-pressed = Нажато
|
||||
signal-port-description-pressed = Этот порт задействуется всякий раз, когда передатчик активируется.
|
||||
|
||||
signal-port-name-on-transmitter = Вкл
|
||||
signal-port-description-on-transmitter = Этот порт задействуется всякий раз, когда передатчик включён.
|
||||
|
||||
signal-port-name-off-transmitter = Выкл
|
||||
signal-port-description-off-transmitter = Этот порт задействуется всякий раз, когда передатчик выключен.
|
||||
|
||||
signal-port-name-status-transmitter = Статус
|
||||
signal-port-description-status-transmitter = Этот порт задействуется с высоким или низким уровнем, в зависимости от состояния передатчика.
|
||||
|
||||
signal-port-name-left = Налево
|
||||
signal-port-description-left = Этот порт задействуется всякий раз, когда рычаг перемещается в крайнее левое положение.
|
||||
|
||||
signal-port-name-right = Направо
|
||||
signal-port-description-right = Этот порт задействуется всякий раз, когда рычаг перемещается в крайнее правое положение.
|
||||
signal-port-name-doorstatus = Статус двери
|
||||
signal-port-description-doorstatus = Этот порт вызывается всякий раз, когда меняется статус двери.
|
||||
|
||||
signal-port-name-doorstatus = Статус шлюза
|
||||
signal-port-description-doorstatus = Этот порт задействуется с высоким уровнем когда с устройством взаимодействуют, и низким уровнем в закрытом состоянии.
|
||||
|
||||
signal-port-name-dockstatus = Статус дока
|
||||
signal-port-description-dockstatus = Этот порт задействуется с высоким уровнем когда устройство состыковано, и низким уровнем когда отстыковано.
|
||||
|
||||
signal-port-name-middle = Середина
|
||||
signal-port-description-middle = Этот порт задействуется всякий раз, когда рычаг перемещается в нейтральное положение.
|
||||
|
||||
signal-port-name-timer-trigger = Конец таймера
|
||||
signal-port-description-timer-trigger = Этот порт, задействует всякий раз, когда отчет таймера заканчивается.
|
||||
|
||||
signal-port-name-timer-start = Старт таймера
|
||||
signal-port-description-timer-start = Этот порт, задействует всякий раз, когда отчет таймера только начался.
|
||||
|
||||
signal-port-name-logic-output = Выход
|
||||
signal-port-description-logic-output = Этот порт вызывается на ВЕРХНЕМ или НИЖНЕМ уровне в зависимости от выбранного шлюза и входов.
|
||||
|
||||
signal-port-name-logic-output-high = Верхний выход
|
||||
signal-port-description-logic-output-high = Этот порт вызывается всякий раз, когда на входе есть возрастающийся край.
|
||||
|
||||
signal-port-name-logic-output-low = Нижний выход
|
||||
signal-port-description-logic-output-low = Этот порт вызывается всякий раз, когда на входе есть понижающийся край.
|
||||
|
||||
signal-port-name-air-danger = Danger
|
||||
signal-port-description-air-danger = Этот порт задействуется с высоким уровнем сигнала когда статус Danger, если статус другой, то с низким уровнем.
|
||||
|
||||
signal-port-name-air-warning = Warning
|
||||
signal-port-description-air-warning = Этот порт задействуется с высоким уровнем сигнала когда статус Warning, если статус другой, то с низким уровнем.
|
||||
|
||||
signal-port-name-air-normal = Normal
|
||||
signal-port-description-air-normal = Этот порт задействуется с высоким уровнем сигнал когда статус Normal, если статус другой, то с низким уровнем.
|
||||
|
||||
signal-port-name-decaying = Распад
|
||||
signal-port-description-decaying = Этот порт вызывается всякий раз, когда связанная аномалия начинает исчезать.
|
||||
|
||||
signal-port-name-stabilize = Стабильно
|
||||
signal-port-description-stabilize = Этот порт вызывается всякий раз, когда связанная аномалия стабилизируется.
|
||||
|
||||
signal-port-name-growing = Рост
|
||||
signal-port-description-growing = Этот порт вызывается всякий раз, когда связанная аномалия начинает расти.
|
||||
|
||||
signal-port-name-pulse = Импульс
|
||||
signal-port-description-pulse = Этот порт вызывается всякий раз, когда связанная аномалия издаёт импульс.
|
||||
|
||||
signal-port-name-supercrit = Суперкрит
|
||||
signal-port-description-supercrit = Этот порт вызывается всякий раз, когда связанная аномалия достигает сверхкритического состояния и взрывается.
|
||||
|
||||
signal-port-name-power-charging = Зарядка
|
||||
signal-port-description-power-charging = Этот порт задействуется с высоким уровнем сигнала когда батарея заряжается, и с низким когда нет.
|
||||
|
||||
signal-port-name-power-discharging = Разрядка
|
||||
signal-port-description-power-discharging = Этот порт задействуется с высоким уровнем сигнала когда батарея разряжается, и с низким когда нет.
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
ClothingUniformJumpsuitHawaiYellow: 2
|
||||
ClothingUniformJumpsuitFlannel: 2
|
||||
#WD edit start
|
||||
ClothingOuterReindeerSweater: 4
|
||||
ClothingUniformJumpsuitCossack: 1
|
||||
ClothingOuterCoatAdidasCostumeSemki: 1
|
||||
ClothingOuterCoatBomber: 1
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
- type: entity
|
||||
parent: ClothingOuterBase
|
||||
id: ClothingOuterReindeerSweater
|
||||
name: reindeer sweater
|
||||
description: A cozy sweater designed to celebrate the holiday season.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: White/Clothing/OuterClothing/reindeer_sweater.rsi
|
||||
- type: Clothing
|
||||
sprite: White/Clothing/OuterClothing/reindeer_sweater.rsi
|
||||
- type: EmitSoundOnPickup
|
||||
sound:
|
||||
path: /Audio/White/Items/handling/cloth_pickup.ogg
|
||||
- type: EmitSoundOnDrop
|
||||
sound:
|
||||
path: /Audio/White/Items/handling/cloth_drop.ogg
|
||||
- type: EmitSoundOnLand
|
||||
sound:
|
||||
path: /Audio/White/Items/handling/cloth_drop.ogg
|
||||
@@ -0,0 +1,53 @@
|
||||
- type: entity
|
||||
name: snowglobe
|
||||
parent: BaseItem
|
||||
id: ItemFunSnowglobe
|
||||
description: Encased winter, always longing for freedom.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: White/Objects/Fun/snowglobe.rsi
|
||||
state: icon
|
||||
scale: 0.7, 0.7
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: EmitSoundOnPickup
|
||||
sound:
|
||||
path: /Audio/White/Items/handling/drinkglass_pickup.ogg
|
||||
- type: EmitSoundOnDrop
|
||||
sound:
|
||||
path: /Audio/White/Items/handling/drinkglass_drop.ogg
|
||||
- type: StaticPrice
|
||||
price: 500
|
||||
- type: DamageOnLand
|
||||
damage:
|
||||
types:
|
||||
Blunt: 1
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 3
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: GlassBreak
|
||||
- !type:SpillBehavior
|
||||
solution: contents
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
ShardGlass:
|
||||
min: 1
|
||||
max: 1
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
contents:
|
||||
reagents:
|
||||
- ReagentId: Water
|
||||
Quantity: 20
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Glass: 50
|
||||
@@ -0,0 +1,39 @@
|
||||
- type: entity
|
||||
id: ChristmasLights
|
||||
name: christmas lights
|
||||
description: Feeling jolly.
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: Appearance
|
||||
- type: Sprite
|
||||
drawdepth: WallMountedItems
|
||||
sprite: White/Structures/Decoration/christmas_lights.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- state: unshaded
|
||||
shader: unshaded
|
||||
- type: Icon
|
||||
sprite: White/Structures/Decoration/christmas_lights.rsi
|
||||
state: icon
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 20
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: GlassBreak
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- type: MeleeSound
|
||||
soundGroups:
|
||||
Brute:
|
||||
path:
|
||||
"/Audio/Weapons/smash.ogg"
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 580 B |
|
After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 402 B |
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "kxaotuk",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "equipped-OUTERCLOTHING",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/White/Objects/Fun/snowglobe.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
36
Resources/Textures/White/Objects/Fun/snowglobe.rsi/meta.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon",
|
||||
"delays": [
|
||||
[
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 577 B |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "unshaded"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 247 B |