Не должно ебануть (#170)
* fix borg (#719)
* Automatic changelog update
* Переводы снаряжения и прочей мелочи в стартовом меню (#720)
* Сумки, мешки и прочее
* Перевод снаряжения
* перевод черт персонажа
* Добавлено ничего
* Automatic changelog update
* Фикс отображения потери мастера для импланта подчинения (#721)
* фикс отображения
* brain damage is real
* я блять запустил райдер ради рефактора одного ифа
* а лучше даже так
* Automatic changelog update
* add coderabbitai config (#722)
* fix (#723)
* Шприц теперь является оружием массового поражения (#724)
* Automatic changelog update
* Пиздец (#725)
Я на это потратил 2 недели
* Automatic changelog update
* Honk FM (#136) (#726)
* Fix Cosmic Temperance и новые песенки в jukebox
* Новая музыка в jucebox x2
Co-authored-by: Vorge7 <vorge228@gmail.com>
* Automatic changelog update
* Флаф (fluff) мне (big_zi_348) (#727)
* Заработал
* brain damage
* fuck (#729)
* Automatic changelog update
* FUCKERS (#732)
* Удаление ненужных суффиксов (#731)
* Перевод захардкукоженной строки (#728)
* Пластырь поможет
* очапятка
* Перевод ревенанта
* Карповый перекат
* Create shakeable-component.ftl
* Криогеника
* Хранилища скафандров
* Update autotranslate-14.ftl
* Update Cyborgs.xml
* Комоды
* Кредиты
* Удалил дубликат
* Информация
* Пластырь миму и клоуну
* Переводы всего
* Перевод аплинка
* Удалил ненужные суффиксы
* Revert "Удалил ненужные суффиксы"
This reverts commit d82f05f30c37ec2c11e5736b91239fe9dd1a4d17.
* Удаление ненужных суффиксов
* Перевод реагентовых слизней
* Перевод аномалий
* Перевод маяков
* Перевод различной мелочи
* Automatic changelog update
* Переводы и правки Гайдов (#730)
* Automatic changelog update
* aaaaa (#733)
* Правка локализации (#737)
* Update ThirstSystem.cs (#736)
* AccessConfiguratorForBorgs (#735)
* Automatic changelog update
* Починил бесконечную сварку (#734)
* Automatic changelog update
* ShowManifestFeature (#738)
* Automatic changelog update
* I LOVE OPENSOURCE
* Изменение размеров милишек (#739)
* Фикс размеров
* Заготовку биты тоже
* Правка
* Automatic changelog update
* Время после взрыва нюки (#740)
* More Fun
* Автоформатирование
* Подкрутка
* Automatic changelog update
* Скальпель в армейские ботинки (#741)
* Automatic changelog update
* DoHeavyAttack stamina check (#742)
* Automatic changelog update
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaa (#743)
* fix retarded code (#744)
* Automatic changelog update
* Локализация (#746)
* Правка мелочей
* Имя клоуну
* Перевод оповещений для РНД
* перевод занавесок
* перевод столов
* Automatic changelog update
* Перевод и обновление кода гипоспрея для боргов (#745)
* Я только хотел перевести...
* refactor
* ещё перевод
* Revert "refactor"
This reverts commit 355c2724c4ed9cd1357661e3ba889a88bdf17db7.
* инверсия условия для проверки наличия прототипа
* Automatic changelog update
* Больше вещей в пояса охраны (#748)
* Подкрутки и докрутки (#749)
* Automatic changelog update
* Добавил отображение защиты от горения и подправил описание защиты от взрывов (#747)
* Добавил отображение защиты от горения
* Update Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
* Update Resources/Locale/ru-RU/_white/info/fire-protection.ftl
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
* Правки
* негативный ноль с плавающей точкой
---------
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
* Automatic changelog update
* Фикс текстурок внешних шлюзов (#751)
* Микромелочь
* Ещё одна мелочь
* Починка прозрачности
* Automatic changelog update
* the fuck (#752)
* the fuck
* more logs
* avoooo (#753)
* nyaUpdate (#754)
* Merge pull request #756
* nya v1.2
* ahhhh ** всех закопает (#758)
* Ребаланс РНД (#750)
* Третий тир больше нас не остановит
* More less
* Ребаланс
* правочки подправочки
* СКОРАЯ!!! ПОМОГИТЕ!!!
* Automatic changelog update
* Конфета или жизнь (#757)
* Конфета или жизнь
* gremlins invasion
* Я ДОБАВИЛ БОЛЬШЕ МУСОРА НА СТАНЦИЮ!!!
* Переводы (много) (#755)
* Перевод технологий РНД
* Перевод действий поглаживающего характера
* Целая куча мелочей
* Ещё больше мелочей
* Слишком много мелочей
* маленькая мелочь
* unshit some ftl shit
* Automatic changelog update
* [Tweak] Random updates (#760)
* Security random updates
* Engineering random updates
* ERT random updates
* Really random
* Important random update
* Automatic changelog update
* Мелочёчки (#761)
* Automatic changelog update
* optimized network stack (#763)
* [Add] Pouches (#762)
* Add: Pouches base and sprites
* Add: Micro-resprite, pouches in secdrobe
* Minus suffix
* Automatic changelog update
* aaaaa (#765)
* Я как всегда кучу хуйни в один пакет сую (#766)
* Automatic changelog update
* а (#767)
* Automatic changelog update
* fix (#768)
* optimizaaaaaations (#769)
* Переводы (#770)
* Мелочёчки
* А когда ты будешь делать что-то полезное, кроме переводов?
* Я удалил НаноТрейзен
* Automatic changelog update
* fixed dumb shit that nobody cares (#772)
* Automatic changelog update
* Фикс взрывной ручки (#771)
* Automatic changelog update
* угу (#775)
* fix yaica (#773)
* Automatic changelog update
* Revert "fix yaica (#773)" (#776)
This reverts commit 9739d41607.
* fix retard (#777)
* fuck (#780)
* ВНИМАНИЕ!!! ОБНАРУЖЕНЫ УЛИТКИ!!! (#774)
* Automatic changelog update
* Локализация + ЕБУЧИЙ ПИКСЕЛЬ (#778)
* Перевод №1
* Перевод №2
* Пиксель
* сейфы
* сканер аномалий
* Перевод пИИ
* Перевод №3
* Перевод сканера здоровья
* Дионы
* Перевод экспедиций
* Automatic changelog update
* Фиксики работают сверхурочно (#781)
* Automatic changelog update
* Это заняло больше времени, чем я думал (#782)
* Automatic changelog update
---------
Co-authored-by: Jabak <163307958+Jabaks@users.noreply.github.com>
Co-authored-by: RavmorganButOnCocaine <valtos@nextmail.ru>
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
Co-authored-by: Vorge7 <vorge228@gmail.com>
Co-authored-by: Valtos <valtos@spaces.ru>
Co-authored-by: haiwwkes <49613070+rhailrake@users.noreply.github.com>
Co-authored-by: keslik <114428094+keslik1313@users.noreply.github.com>
@@ -6,7 +6,7 @@ using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Client.Overlays;
|
||||
|
||||
public sealed class ShowSyndicateIconsSystem : EquipmentHudSystem<ShowSyndicateIconsComponent>
|
||||
public sealed class ShowAntagonistIconsSystem : EquipmentHudSystem<ShowAntagonistIconsComponent>
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using System.IO.Compression;
|
||||
using Content.Client.Administration.Managers;
|
||||
using Content.Client.Launcher;
|
||||
using Content.Client.MainMenu;
|
||||
using Content.Client.Replay.Spectator;
|
||||
using Content.Client.Replay.UI.Loading;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Systems.Chat;
|
||||
using Content.Shared.Chat;
|
||||
using Content.Shared.Effects;
|
||||
@@ -26,8 +24,6 @@ using Robust.Client.Replays.Playback;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.Timing;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.ContentPack;
|
||||
@@ -60,7 +56,7 @@ public sealed class ContentReplayPlaybackManager
|
||||
public bool IsScreenshotMode = false;
|
||||
|
||||
private bool _initialized;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Most recently loaded file, for re-attempting the load with error tolerance.
|
||||
/// Required because the zip reader auto-disposes and I'm too lazy to change it so that
|
||||
@@ -96,32 +92,18 @@ public sealed class ContentReplayPlaybackManager
|
||||
return;
|
||||
}
|
||||
|
||||
ReturnToDefaultState();
|
||||
if (_client.RunLevel == ClientRunLevel.SinglePlayerGame)
|
||||
_client.StopSinglePlayer();
|
||||
|
||||
// Show a popup window with the error message
|
||||
var text = Loc.GetString("replay-loading-failed", ("reason", exception));
|
||||
var box = new BoxContainer
|
||||
{
|
||||
Orientation = BoxContainer.LayoutOrientation.Vertical,
|
||||
Children = {new Label {Text = text}}
|
||||
};
|
||||
|
||||
var popup = new DefaultWindow { Title = "Error!" };
|
||||
popup.Contents.AddChild(box);
|
||||
Action? retryAction = null;
|
||||
Action? cancelAction = null;
|
||||
|
||||
// Add button for attempting to re-load the replay while ignoring some errors.
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is {} last)
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is { } last)
|
||||
{
|
||||
var button = new Button
|
||||
{
|
||||
Text = Loc.GetString("replay-loading-retry"),
|
||||
StyleClasses = { StyleBase.ButtonCaution }
|
||||
};
|
||||
|
||||
button.OnPressed += _ =>
|
||||
retryAction = () =>
|
||||
{
|
||||
_cfg.SetCVar(CVars.ReplayIgnoreErrors, true);
|
||||
popup.Dispose();
|
||||
|
||||
IReplayFileReader reader = last.Zip == null
|
||||
? new ReplayFileReaderResources(_resMan, last.Folder)
|
||||
@@ -129,11 +111,19 @@ public sealed class ContentReplayPlaybackManager
|
||||
|
||||
_loadMan.LoadAndStartReplay(reader);
|
||||
};
|
||||
|
||||
box.AddChild(button);
|
||||
}
|
||||
|
||||
popup.OpenCentered();
|
||||
// If we have an explicit menu to get back to (e.g. replay browser UI), show a cancel button.
|
||||
if (DefaultState != null)
|
||||
{
|
||||
cancelAction = () =>
|
||||
{
|
||||
_stateMan.RequestStateChange(DefaultState);
|
||||
};
|
||||
}
|
||||
// Switch to a new game state to present the error and cancel/retry options.
|
||||
var state = _stateMan.RequestStateChange<ReplayLoadingFailed>();
|
||||
state.SetData(exception, cancelAction, retryAction);
|
||||
}
|
||||
|
||||
public void ReturnToDefaultState()
|
||||
|
||||
30
Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Content.Client.Stylesheets;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Shared.Utility;
|
||||
namespace Content.Client.Replay.UI.Loading;
|
||||
/// <summary>
|
||||
/// State used to display an error message if a replay failed to load.
|
||||
/// </summary>
|
||||
/// <seealso cref="ReplayLoadingFailedControl"/>
|
||||
/// <seealso cref="ContentReplayPlaybackManager"/>
|
||||
public sealed class ReplayLoadingFailed : State
|
||||
{
|
||||
[Dependency] private readonly IStylesheetManager _stylesheetManager = default!;
|
||||
[Dependency] private readonly IUserInterfaceManager _userInterface = default!;
|
||||
private ReplayLoadingFailedControl? _control;
|
||||
public void SetData(Exception exception, Action? cancelPressed, Action? retryPressed)
|
||||
{
|
||||
DebugTools.Assert(_control != null);
|
||||
_control.SetData(exception, cancelPressed, retryPressed);
|
||||
}
|
||||
protected override void Startup()
|
||||
{
|
||||
_control = new ReplayLoadingFailedControl(_stylesheetManager);
|
||||
_userInterface.StateRoot.AddChild(_control);
|
||||
}
|
||||
protected override void Shutdown()
|
||||
{
|
||||
_control?.Orphan();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<Control xmlns="https://spacestation14.io"
|
||||
xmlns:pllax="clr-namespace:Content.Client.Parallax">
|
||||
<pllax:ParallaxControl />
|
||||
<Control HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<PanelContainer StyleClasses="AngleRect" />
|
||||
<BoxContainer Orientation="Vertical" SetSize="800 600" Margin="2">
|
||||
<ScrollContainer Name="what" VerticalExpand="True" HScrollEnabled="False" Margin="0 0 0 2" ReturnMeasure="True">
|
||||
<RichTextLabel Name="ReasonLabel" VerticalAlignment="Top" />
|
||||
</ScrollContainer>
|
||||
<Button Name="RetryButton" StyleClasses="Caution" Text="{Loc 'replay-loading-retry'}" Visible="False" />
|
||||
<Button Name="CancelButton" Text="{Loc 'replay-loading-cancel'}" Visible="False" />
|
||||
</BoxContainer>
|
||||
</Control>
|
||||
</Control>
|
||||
@@ -0,0 +1,38 @@
|
||||
using Content.Client.Stylesheets;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Utility;
|
||||
namespace Content.Client.Replay.UI.Loading;
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class ReplayLoadingFailedControl : Control
|
||||
{
|
||||
public ReplayLoadingFailedControl(IStylesheetManager stylesheet)
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
Stylesheet = stylesheet.SheetSpace;
|
||||
LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide);
|
||||
}
|
||||
public void SetData(Exception exception, Action? cancelPressed, Action? retryPressed)
|
||||
{
|
||||
ReasonLabel.SetMessage(
|
||||
FormattedMessage.FromUnformatted(Loc.GetString("replay-loading-failed", ("reason", exception))));
|
||||
if (cancelPressed != null)
|
||||
{
|
||||
CancelButton.Visible = true;
|
||||
CancelButton.OnPressed += _ =>
|
||||
{
|
||||
cancelPressed();
|
||||
};
|
||||
}
|
||||
if (retryPressed != null)
|
||||
{
|
||||
RetryButton.Visible = true;
|
||||
RetryButton.OnPressed += _ =>
|
||||
{
|
||||
retryPressed();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,12 +93,12 @@ namespace Content.Client._White.Medical.BodyScanner
|
||||
CurrentThirst.Text = Loc.GetString("body-scanner-console-window-thirst-current-thirst-text",
|
||||
("amount", $"{state.CurrentThirst:f1}"));
|
||||
CurrentThirstStatus.Text = Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-text",
|
||||
("status", Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" + state.CurrentThirstThreshold)));
|
||||
("status", Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" + state.CurrentThirstThreshold)));
|
||||
|
||||
CurrentHunger.Text = Loc.GetString("body-scanner-console-window-hunger-current-hunger-text",
|
||||
("amount", $"{state.CurrentHunger:f1}"));
|
||||
CurrentHungerStatus.Text = Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-text",
|
||||
("status", Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" + state.CurrentHungerThreshold)));
|
||||
("status", Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" + state.CurrentHungerThreshold)));
|
||||
|
||||
BloodSolutionVolume.Text = Loc.GetString("body-scanner-console-window-blood-solutions-volume-group-text",
|
||||
("amount", $"{state.BloodSolution.Volume.Float():f1}"),
|
||||
@@ -127,6 +127,9 @@ namespace Content.Client._White.Medical.BodyScanner
|
||||
});
|
||||
|
||||
// Third column.
|
||||
if (state.DeadThreshold == FixedPoint2.Zero)
|
||||
state.DeadThreshold = 0.01;
|
||||
|
||||
HealthBar.Value = 1 - (state.TotalDamage / state.DeadThreshold).Float();
|
||||
|
||||
HealthBar.ForegroundStyleBoxOverride = new StyleBoxFlat()
|
||||
|
||||
@@ -9,6 +9,7 @@ using Content.Shared.Mobs.Components;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
using Content.Shared.Salvage.Expeditions;
|
||||
using Content.Shared.Shuttles.Components;
|
||||
using Content.Shared.Localizations;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Player;
|
||||
|
||||
@@ -103,8 +104,10 @@ public sealed partial class SalvageSystem
|
||||
|
||||
Announce(args.MapUid, Loc.GetString("salvage-expedition-announcement-countdown-minutes", ("duration", (component.EndTime - _timing.CurTime).Minutes)));
|
||||
|
||||
var directionLocalization = ContentLocalizationManager.FormatDirection(component.DungeonLocation.GetDir()).ToLower(); // WD Ahead of wizden
|
||||
|
||||
if (component.DungeonLocation != Vector2.Zero)
|
||||
Announce(args.MapUid, Loc.GetString("salvage-expedition-announcement-dungeon", ("direction", component.DungeonLocation.GetDir())));
|
||||
Announce(args.MapUid, Loc.GetString("salvage-expedition-announcement-dungeon", ("direction", directionLocalization))); // WD Ahead of wizden
|
||||
|
||||
component.Stage = ExpeditionStage.Running;
|
||||
Dirty(args.MapUid, component);
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
using Content.Shared._White.Implants.VoiceActivatedBomb;
|
||||
using Content.Shared.Implants.Components;
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Server.Speech.Components;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Implants;
|
||||
|
||||
namespace Content.Server._White.Implants.VoiceActivatedBomb;
|
||||
|
||||
public sealed class VoiceActivatedBombSystem : SharedVoiceActivatedBombSystem
|
||||
{
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<SubdermalImplantComponent, InsertVoiceActivatedBombEvent>(OnTryInsertVoiceActivatedBombServer);
|
||||
SubscribeLocalEvent<SubdermalImplantComponent, ImplanterUsed>(OnVoiceActivatedBombInserted);
|
||||
}
|
||||
|
||||
private void OnTryInsertVoiceActivatedBombServer(Entity<SubdermalImplantComponent> ent, ref InsertVoiceActivatedBombEvent args)
|
||||
{
|
||||
if (!TryComp<TriggerOnVoiceComponent>(args.Implanter, out var implanterTrigger))
|
||||
return;
|
||||
|
||||
if (implanterTrigger.KeyPhrase == null)
|
||||
{
|
||||
// TODO find some way to make it look good
|
||||
// Right now it's overlaps with implanter-component-implant-failed popup
|
||||
//var message = Loc.GetString("voice-activated-bomb-no-key-phrase");
|
||||
//_popup.PopupEntity(message, args.Implanter, args.User);
|
||||
args.Cancel();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnVoiceActivatedBombInserted(Entity<SubdermalImplantComponent> ent, ref ImplanterUsed args)
|
||||
{
|
||||
if (!Tag.HasTag(args.Implanter, VoiceActivatedBombTag))
|
||||
return;
|
||||
|
||||
if (!TryComp<TriggerOnVoiceComponent>(args.Implanter, out var implanterTrigger))
|
||||
return;
|
||||
|
||||
if (!TryComp<TriggerOnVoiceComponent>(args.Implant, out var implantTrigger))
|
||||
return;
|
||||
|
||||
implantTrigger.KeyPhrase = implanterTrigger.KeyPhrase;
|
||||
EnsureComp<ActiveListenerComponent>(args.Implant);
|
||||
RemComp<TriggerOnVoiceComponent>(args.Implanter);
|
||||
Tag.RemoveTag(args.Implanter, VoiceActivatedBombTag);
|
||||
}
|
||||
}
|
||||
@@ -76,40 +76,41 @@ public sealed class MeatyOreStoreSystem : EntitySystem
|
||||
|
||||
SubscribeLocalEvent<RoundRestartCleanupEvent>(OnPostRoundCleanup);
|
||||
SubscribeNetworkEvent<MeatyOreShopRequestEvent>(OnShopRequested);
|
||||
//SubscribeLocalEvent<GetVerbsEvent<Verb>>(MeatyOreVerbs);
|
||||
|
||||
// SubscribeLocalEvent<GetVerbsEvent<Verb>>(MeatyOreVerbs);
|
||||
}
|
||||
|
||||
// private void MeatyOreVerbs(GetVerbsEvent<Verb> ev)
|
||||
// {
|
||||
// if (!_antagGrantEnabled)
|
||||
// return;
|
||||
//
|
||||
// if (!EntityManager.TryGetComponent<ActorComponent>(ev.User, out var actorComponent))
|
||||
// return;
|
||||
//
|
||||
// if (!_sponsorsManager.TryGetInfo(actorComponent.PlayerSession.UserId, out _))
|
||||
// return;
|
||||
//
|
||||
// if (!HasComp<HumanoidAppearanceComponent>(ev.Target))
|
||||
// return;
|
||||
//
|
||||
// if (!TryGetStore(actorComponent.PlayerSession, out var store, out var storeEntity))
|
||||
// return;
|
||||
//
|
||||
// var verb = new Verb
|
||||
// {
|
||||
// Text = "Выдать роль.",
|
||||
// ConfirmationPopup = true,
|
||||
// Message = $"Цена - {MeatyOreCurrencyPrototype}:10",
|
||||
// Act = () =>
|
||||
// {
|
||||
// TryAddRole(ev.User, ev.Target, store, storeEntity.Value);
|
||||
// },
|
||||
// Category = VerbCategory.MeatyOre
|
||||
// };
|
||||
//
|
||||
// ev.Verbs.Add();
|
||||
// }
|
||||
// private void MeatyOreVerbs(GetVerbsEvent<Verb> ev)
|
||||
// {
|
||||
// if (!_antagGrantEnabled)
|
||||
// return;
|
||||
//
|
||||
// if (!EntityManager.TryGetComponent<ActorComponent>(ev.User, out var actorComponent))
|
||||
// return;
|
||||
//
|
||||
// if (!_sponsorsManager.TryGetInfo(actorComponent.PlayerSession.UserId, out _))
|
||||
// return;
|
||||
//
|
||||
// if (!HasComp<HumanoidAppearanceComponent>(ev.Target))
|
||||
// return;
|
||||
//
|
||||
// if (!TryGetStore(actorComponent.PlayerSession, out var store, out var storeEntity))
|
||||
// return;
|
||||
//
|
||||
// var verb = new Verb
|
||||
// {
|
||||
// Text = "Выдать роль.",
|
||||
// ConfirmationPopup = true,
|
||||
// Message = $"Цена - {MeatyOreCurrencyPrototype}:10",
|
||||
// Act = () =>
|
||||
// {
|
||||
// TryAddRole(ev.User, ev.Target, store, storeEntity.Value);
|
||||
// },
|
||||
// Category = VerbCategory.MeatyOre
|
||||
// };
|
||||
//
|
||||
// ev.Verbs.Add();
|
||||
// }
|
||||
|
||||
private void OnPanelEnableChanged(bool enabled)
|
||||
{
|
||||
@@ -269,21 +270,21 @@ public sealed class MeatyOreStoreSystem : EntitySystem
|
||||
}
|
||||
}
|
||||
|
||||
// private async void TryBanDolboeb(ICommonSession session)
|
||||
// {
|
||||
// if(_banManager.GetServerBans(session.UserId).Count > 0)
|
||||
// return;
|
||||
//
|
||||
// _banManager.CreateServerBan(session.UserId,
|
||||
// session.Name,
|
||||
// null,
|
||||
// null,
|
||||
// null,
|
||||
// 2880,
|
||||
// NoteSeverity.Minor,
|
||||
// "Кусок дерьма, блядина нахуй! У НАС АНТАЖКУ ВЫДАВАТЬ ЗАПРЕЩЕНО НАХУЙ!!!! ЧТОБ ТЯ ВЫЕБАЛИ СТО НЕГРОВ НАХУЙ!",
|
||||
// false);
|
||||
// }
|
||||
// private async void TryBanDolboeb(ICommonSession session)
|
||||
// {
|
||||
// if(_banManager.GetServerBans(session.UserId).Count > 0)
|
||||
// return;
|
||||
//
|
||||
// _banManager.CreateServerBan(session.UserId,
|
||||
// session.Name,
|
||||
// null,
|
||||
// null,
|
||||
// null,
|
||||
// 2880,
|
||||
// NoteSeverity.Minor,
|
||||
// "Кусок дерьма, блядина нахуй! У НАС АНТАЖКУ ВЫДАВАТЬ ЗАПРЕЩЕНО НАХУЙ!!!! ЧТОБ ТЯ ВЫЕБАЛИ СТО НЕГРОВ НАХУЙ!",
|
||||
// false);
|
||||
// }
|
||||
|
||||
private async Task<bool> GrantAntagonist(string ckey, bool isFriend)
|
||||
{
|
||||
|
||||
@@ -354,7 +354,7 @@ namespace Content.Server._White.Medical.BodyScanner
|
||||
("amount", $"{state.CurrentThirst:f1}")));
|
||||
text.AppendLine(Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-text",
|
||||
("status",
|
||||
Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" +
|
||||
Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" +
|
||||
state.CurrentThirstThreshold))));
|
||||
text.AppendLine();
|
||||
|
||||
@@ -363,7 +363,7 @@ namespace Content.Server._White.Medical.BodyScanner
|
||||
("amount", $"{state.CurrentHunger:f1}")));
|
||||
text.AppendLine(Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-text",
|
||||
("status",
|
||||
Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" +
|
||||
Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" +
|
||||
state.CurrentHungerThreshold))));
|
||||
text.AppendLine();
|
||||
|
||||
|
||||
@@ -44,6 +44,18 @@ public sealed class SubdermalImplantRemoved(EntityUid user, EntityUid target, Su
|
||||
public SubdermalImplantComponent Component = component;
|
||||
}
|
||||
|
||||
public sealed class ImplanterUsed(EntityUid implant, EntityUid implanter) : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Implant which was used
|
||||
/// </summary>
|
||||
public EntityUid Implant = implant;
|
||||
/// <summary>
|
||||
/// Implanter which was used
|
||||
/// </summary>
|
||||
public EntityUid Implanter = implanter;
|
||||
}
|
||||
|
||||
//WD EDIT END
|
||||
|
||||
public abstract class SharedImplanterSystem : EntitySystem
|
||||
@@ -113,6 +125,7 @@ public abstract class SharedImplanterSystem : EntitySystem
|
||||
|
||||
var ev = new TransferDnaEvent { Donor = target, Recipient = implanter };
|
||||
RaiseLocalEvent(target, ref ev);
|
||||
RaiseLocalEvent(implant.Value, new ImplanterUsed(implant.Value, implanter)); // WD
|
||||
|
||||
Dirty(implanter, component);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public partial class InventorySystem
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowHungerIconsComponent>>(RelayInventoryEvent);
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowThirstIconsComponent>>(RelayInventoryEvent);
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowMindShieldIconsComponent>>(RelayInventoryEvent);
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowSyndicateIconsComponent>>(RelayInventoryEvent);
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowAntagonistIconsComponent>>(RelayInventoryEvent);
|
||||
SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowCriminalRecordIconsComponent>>(RelayInventoryEvent);
|
||||
|
||||
SubscribeLocalEvent<InventoryComponent, GetVerbsEvent<EquipmentVerb>>(OnGetEquipmentVerbs);
|
||||
|
||||
@@ -14,9 +14,26 @@ public sealed class MobStateActionsSystem : EntitySystem
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<MobStateActionsComponent, MobStateChangedEvent>(OnMobStateChanged);
|
||||
SubscribeLocalEvent<MobStateComponent, ComponentInit>(OnMobStateComponentInit); // WD ahead of wizden
|
||||
}
|
||||
|
||||
private void OnMobStateChanged(EntityUid uid, MobStateActionsComponent component, MobStateChangedEvent args)
|
||||
{
|
||||
ComposeActions(uid, component, args.NewMobState); // WD ahead of wizden
|
||||
}
|
||||
|
||||
private void OnMobStateComponentInit(EntityUid uid, MobStateComponent component, ComponentInit args) // WD ahead of wizden
|
||||
{
|
||||
if (!TryComp<MobStateActionsComponent>(uid, out var mobStateActionsComp))
|
||||
return;
|
||||
|
||||
ComposeActions(uid, mobStateActionsComp, component.CurrentState);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds or removes actions from a mob based on mobstate.
|
||||
/// </summary>
|
||||
private void ComposeActions(EntityUid uid, MobStateActionsComponent component, MobState newMobState) // WD ahead of wizden
|
||||
{
|
||||
if (!TryComp<ActionsComponent>(uid, out var action))
|
||||
return;
|
||||
@@ -27,7 +44,7 @@ public sealed class MobStateActionsSystem : EntitySystem
|
||||
}
|
||||
component.GrantedActions.Clear();
|
||||
|
||||
if (!component.Actions.TryGetValue(args.NewMobState, out var toGrant))
|
||||
if (!component.Actions.TryGetValue(newMobState, out var toGrant))
|
||||
return;
|
||||
|
||||
foreach (var id in toGrant)
|
||||
|
||||
@@ -6,4 +6,4 @@ namespace Content.Shared.Overlays;
|
||||
/// This component allows you to identify members of the Syndicate faction.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class ShowSyndicateIconsComponent : Component {}
|
||||
public sealed partial class ShowAntagonistIconsComponent : Component {}
|
||||
@@ -0,0 +1,35 @@
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.Implants;
|
||||
using Content.Shared.Tag;
|
||||
|
||||
namespace Content.Shared._White.Implants.VoiceActivatedBomb;
|
||||
|
||||
public abstract class SharedVoiceActivatedBombSystem : EntitySystem
|
||||
{
|
||||
[Dependency] protected readonly TagSystem Tag = default!;
|
||||
protected const string VoiceActivatedBombTag = "VoiceActivatedBombImplant";
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<BodyComponent, AddImplantAttemptEvent>(OnTryInsertVoiceActivatedBomb);
|
||||
}
|
||||
|
||||
private void OnTryInsertVoiceActivatedBomb(Entity<BodyComponent> ent, ref AddImplantAttemptEvent args)
|
||||
{
|
||||
if (!Tag.HasTag(args.Implant, VoiceActivatedBombTag))
|
||||
return;
|
||||
|
||||
var ev = new InsertVoiceActivatedBombEvent(args.User, args.Implant, args.Implanter);
|
||||
RaiseLocalEvent(args.Implant, ev);
|
||||
if (ev.Cancelled)
|
||||
args.Cancel();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
public sealed class InsertVoiceActivatedBombEvent(EntityUid user, EntityUid implant, EntityUid implanter)
|
||||
: CancellableEntityEventArgs
|
||||
{
|
||||
public readonly EntityUid User = user;
|
||||
public readonly EntityUid Implant = implant;
|
||||
public readonly EntityUid Implanter = implanter;
|
||||
}
|
||||
@@ -1,71 +1,4 @@
|
||||
Entries:
|
||||
- author: hailrakes
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0430\u0432\u0442\
|
||||
\u043E\u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043F\u0438\
|
||||
\u0441\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0432\
|
||||
\ Discord."
|
||||
type: Add
|
||||
id: 97
|
||||
time: '2023-03-01T12:37:40.0000000+00:00'
|
||||
- author: RavMorgan
|
||||
changes:
|
||||
- message: "\u041F\u0430\u043D\u0435\u043B\u044C \u0441 \u044D\u043C\u043E\u0443\
|
||||
\u0442\u0430\u043C\u0438 \u0442\u0435\u043F\u0435\u0440\u044C \u043E\u0442\u0441\
|
||||
\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0430!"
|
||||
type: Add
|
||||
- message: "\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u0443\u0431\u0440\u0430\
|
||||
\u043D\u044B \u043B\u0438\u043D\u043A\u0438 \u043D\u0430 \u043F\u0440\u043E\u0444\
|
||||
\u0435\u0441\u0441\u0438\u0438 \u0432 \u0447\u0430\u0442\u0435!"
|
||||
type: Remove
|
||||
id: 98
|
||||
time: '2023-03-01T19:21:18.0000000+00:00'
|
||||
- author: rhailrake
|
||||
changes:
|
||||
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0431\u043E\u0440\u0433\u0430\
|
||||
\ \u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0441\u0442\u0430\u043D\u0438\u0442\
|
||||
\u044C \u0444\u043B\u0435\u0448\u043A\u043E\u0439!"
|
||||
type: Add
|
||||
- message: "\u0422\u0440\u0438 \u043D\u043E\u0432\u044B\u0445 \u0431\u043E\u0440\
|
||||
\u0433\u0430: Sec, Eng, Syndi"
|
||||
type: Add
|
||||
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u043E\u0433\u043D\u0435\u0442\u0443\
|
||||
\u0448\u0438\u0442\u0435\u043B\u044C \u0437\u0430\u043F\u0440\u0430\u0432\u043B\
|
||||
\u044F\u0435\u0442\u0441\u044F \u0441\u043E \u0432\u0440\u0435\u043C\u0435\u043D\
|
||||
\u0435\u043C."
|
||||
type: Add
|
||||
id: 99
|
||||
time: '2023-03-02T13:00:53.0000000+00:00'
|
||||
- author: RavMorgan
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0422\u0422\u0421\
|
||||
\ \u0443 \u043A\u043B\u043E\u0443\u043D\u0430!"
|
||||
type: Add
|
||||
id: 100
|
||||
time: '2023-03-02T13:25:24.0000000+00:00'
|
||||
- author: RavMorgan
|
||||
changes:
|
||||
- message: "\u0424\u0438\u043A\u0441 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\
|
||||
\ \u044D\u043C\u043E\u0443\u0442\u0430\u043C\u0438!"
|
||||
type: Add
|
||||
id: 101
|
||||
time: '2023-03-03T21:17:20.0000000+00:00'
|
||||
- author: KettlebellOfCreation
|
||||
changes:
|
||||
- message: "\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u0434\
|
||||
\u0435\u0440\u0436\u043A\u0430 \u0432 90 \u0441\u0435\u043A\u0443\u043D\u0434\
|
||||
\ \u043C\u0435\u0436\u0434\u0443 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\
|
||||
\u0439 LOOC \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439."
|
||||
type: Add
|
||||
id: 102
|
||||
time: '2023-03-03T21:19:04.0000000+00:00'
|
||||
- author: BronyUraj
|
||||
changes:
|
||||
- message: "Bomb Cap \u0434\u043B\u044F \u0433\u0430\u0437\u043E\u0432\u044B\u0445\
|
||||
\ \u0431\u043E\u043C\u0431."
|
||||
type: Add
|
||||
id: 103
|
||||
time: '2023-03-04T15:46:44.0000000+00:00'
|
||||
- author: NCast
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u0438\u043B \u0440\u0435\u0446\u0435\u043F\
|
||||
@@ -8851,3 +8784,103 @@
|
||||
id: 596
|
||||
time: '2024-11-05T11:52:29.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/770
|
||||
- author: Valtos
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u043F\u0440\
|
||||
\u043E\u0431\u043B\u0435\u043C\u0430 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\
|
||||
\u043A\u043E\u0439 \u0440\u0435\u043F\u043B\u0435\u0435\u0432. \u041E\u043D\u0438\
|
||||
\ \u0432\u0441\u0451 \u0435\u0449\u0451 \u043C\u043E\u0433\u0443\u0442 \u0432\
|
||||
\u044B\u0434\u0430\u0432\u0430\u0442\u044C \u043E\u0448\u0438\u0431\u043A\u0443\
|
||||
, \u043E\u0434\u043D\u0430\u043A\u043E \u0442\u0435\u043F\u0435\u0440\u044C\
|
||||
\ \u0442\u043E\u0447\u043D\u043E \u0434\u043E\u043B\u0436\u043D\u044B \u0437\
|
||||
\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044C\u0441\u044F."
|
||||
type: Fix
|
||||
id: 597
|
||||
time: '2024-11-05T20:04:51.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/772
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0412\u0437\u0440\u044B\u0432\u043D\u0430\u044F \u0440\u0443\u0447\u043A\
|
||||
\u0430 \u0441\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u0430 \u0442\u0435\u043F\
|
||||
\u0435\u0440\u044C \u0432\u0437\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\
|
||||
."
|
||||
type: Fix
|
||||
id: 598
|
||||
time: '2024-11-05T21:28:42.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/771
|
||||
- author: Valtos
|
||||
changes:
|
||||
- message: "\u041E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u043E\u0432\u0430\
|
||||
\u043D \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433 \u044D\u043D\u0442\
|
||||
\u0438\u0442\u0438 \u0432 \u043A\u043E\u0441\u043C\u043E\u0441\u0435"
|
||||
type: Tweak
|
||||
- message: "\u0422\u0432\u0438\u043A\u043D\u0443\u0442\u0430 \u043F\u0440\u043E\u0438\
|
||||
\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\
|
||||
\u044C \u0431\u0434"
|
||||
type: Tweak
|
||||
- message: "\u0414\u043E\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u0430 \u0441\u0438\
|
||||
\u0441\u0442\u0435\u043C\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\
|
||||
\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u0439"
|
||||
type: Tweak
|
||||
id: 599
|
||||
time: '2024-11-07T23:21:53.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/775
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0443\u043B\u0438\
|
||||
\u0442\u043A\u0438. \u0427\u0435\u0441\u0442\u043D\u043E, \u043F\u0440\u043E\
|
||||
\u0441\u0442\u043E \u0443\u043B\u0438\u0442\u043A\u0438, \u043E\u043D\u0438\
|
||||
\ \u043D\u0438\u043A\u0430\u043A \u043D\u0435 \u043C\u043E\u0433\u0443\u0442\
|
||||
\ \u043F\u043E\u0432\u043B\u0438\u044F\u0442\u044C \u043D\u0430 \u0440\u0430\
|
||||
\u0431\u043E\u0442\u0443 \u0441\u0442\u0430\u043D\u0446\u0438\u0438. \u041D\u0435\
|
||||
\ \u043D\u0430\u0434\u043E \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\
|
||||
\ \u044D\u0432\u0430\u043A\u0443\u0430\u0446\u0438\u044E, \u0432\u044B \u0441\
|
||||
\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u0441\u044C."
|
||||
type: Add
|
||||
id: 600
|
||||
time: '2024-11-11T06:54:23.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/774
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\
|
||||
\u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\
|
||||
\u043E\u0434\u044B \u043E\u0440\u0443\u0436\u0435\u0439\u043D\u044B\u043C \u0441\
|
||||
\u0435\u0439\u0444\u0430\u043C."
|
||||
type: Add
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\
|
||||
\u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\
|
||||
\u043E\u0434\u044B \u0441\u043A\u0430\u043D\u0435\u0440\u0443 \u0430\u043D\u043E\
|
||||
\u043C\u0430\u043B\u0438\u0439."
|
||||
type: Add
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\
|
||||
\u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\
|
||||
\u043E\u0434\u044B \u0441\u043A\u0430\u043D\u0435\u0440\u0443 \u0437\u0434\u043E\
|
||||
\u0440\u043E\u0432\u044C\u044F."
|
||||
type: Add
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043F\u0438\u043A\
|
||||
\u0441\u0435\u043B\u044C \u0432 \u0441\u043F\u0440\u0430\u0439\u0442\u0435 \u0434\
|
||||
\u0438\u0437\u0435\u0439\u0431\u043B\u0435\u0440\u0430."
|
||||
type: Fix
|
||||
id: 601
|
||||
time: '2024-11-11T06:55:45.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/778
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0440\u0430\
|
||||
\u0431\u043E\u0442\u0430 \u0441\u043A\u0430\u043D\u0435\u0440\u0430 \u0442\u0435\
|
||||
\u043B\u0430."
|
||||
type: Fix
|
||||
id: 602
|
||||
time: '2024-11-11T06:59:00.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/781
|
||||
- author: BIG_Zi_348
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043D\u043E\u0432\u044B\
|
||||
\u0439 \u0438\u043C\u043F\u043B\u0430\u043D\u0442 \u0434\u043B\u044F \u0441\u0438\
|
||||
\u043D\u0434\u0438\u043A\u0430\u0442\u0430 - \u0431\u043E\u043C\u0431\u0430\
|
||||
\ \u0441 \u0433\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0430\u043A\
|
||||
\u0442\u0438\u0432\u0430\u0446\u0438\u0435\u0439."
|
||||
type: Add
|
||||
id: 603
|
||||
time: '2024-11-11T07:02:02.0000000+00:00'
|
||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/782
|
||||
|
||||
@@ -10,6 +10,13 @@ ghost-role-information-mouse-description = A hungry and mischievous mouse.
|
||||
ghost-role-information-mothroach-name = Mothroach
|
||||
ghost-role-information-mothroach-description = A cute but mischievous mothroach.
|
||||
|
||||
ghost-role-information-snail-name = Snail
|
||||
ghost-role-information-snail-description = A little snail who doesn't mind a bit of space. Just stay on grid!
|
||||
ghost-role-information-snailspeed-name = Snail
|
||||
ghost-role-information-snailspeed-description = A little snail with snailborn thrusters.
|
||||
ghost-role-information-snoth-name = Snoth
|
||||
ghost-role-information-snoth-description = A little snoth who doesn't mind a bit of space. Just stay on grid!
|
||||
|
||||
ghost-role-information-giant-spider-name = Giant spider
|
||||
ghost-role-information-giant-spider-description = This station's inhabitants look mighty tasty, and your sticky web is perfect to catch them!
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ replay-loading-starting= Starting Entities
|
||||
replay-loading-failed = Failed to load replay. Error:
|
||||
{$reason}
|
||||
replay-loading-retry = Try load with more exception tolerance - MAY CAUSE BUGS!
|
||||
replay-loading-cancel = Cancel
|
||||
|
||||
# Main Menu
|
||||
replay-menu-subtext = Replay Client
|
||||
|
||||
@@ -9,3 +9,7 @@ species-name-arachnid = Arachnid
|
||||
species-name-moth = Moth Person
|
||||
species-name-skeleton = Skeleton
|
||||
species-name-vox = Vox
|
||||
|
||||
## Misc species things
|
||||
|
||||
snail-hurt-by-salt-popup = The salty solution burns like acid!
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
uplink-voice-activated-bomb-implant = Имплант бомбы с голосовым триггером
|
||||
uplink-voice-activated-bomb-implant-desc = Имплант микробомбы с триггером, заставляющим сработать по заданной голосовой команде.
|
||||
|
||||
ent-VoiceActivatedBombImplant = Имплант бомбы с голосовым триггером
|
||||
.desc = Имплант микробомбы с триггером, заставляющим сработать по заданной голосовой команде.
|
||||
|
||||
voice-activated-bomb-no-key-phrase = Голосовой триггер не инициализирован, ввод импланта заблокирован.
|
||||
@@ -52,5 +52,11 @@ ent-MobDionaNymph = нимфа дионы
|
||||
.desc = Это как кошка, только… более ветвистая.
|
||||
ent-MobDionaNymphAccent = { ent-MobDionaNymph }
|
||||
.desc = { ent-MobDionaNymph.desc }
|
||||
ent-OrganDionaNymphBrain = { ent-MobDionaNymph }
|
||||
.desc = Содержит мозг ранее полностью сформированной дионы. Убив её, ты убьёшь диону навсегда, монстр.
|
||||
ent-OrganDionaNymphStomach = { ent-MobDionaNymph }
|
||||
.desc = Содержит желудок ранее полностью сформированной дионы. Вкус от этого лучше не будет.
|
||||
ent-OrganDionaNymphLungs = { ent-MobDionaNymph }
|
||||
.desc = Содержит лёгкие ранее полностью сформированной дионы. Захватывает дух.
|
||||
ent-MobArgocyteSlurva = slurva
|
||||
.desc = Жалкие создания, не способные на многое.
|
||||
|
||||
@@ -37,8 +37,8 @@ spellbook-mime-desc = { ent-ActionMimeTouchSpell.desc }
|
||||
spellbook-recall-name = { ent-ActionInstantRecallSpell }
|
||||
spellbook-recall-desc = { ent-ActionInstantRecallSpell.desc }
|
||||
|
||||
spellbook-smite-name = { ent-ActionSmite }
|
||||
spellbook-smite-desc = { ent-ActionSmite.desc }
|
||||
spellbook-smite-name = { ent-ActionSmiteWizard }
|
||||
spellbook-smite-desc = { ent-ActionSmiteWizard.desc }
|
||||
|
||||
spellbook-mindswap-name = { ent-ActionMindswapSpell }
|
||||
spellbook-mindswap-desc = { ent-ActionMindswapSpell.desc }
|
||||
|
||||
@@ -40,7 +40,7 @@ ent-ActionTeleportSpell = Телепортация
|
||||
ent-ActionKnock = Стук
|
||||
.desc = Открывает все двери, шлюзы и шкафы в радиусе 5 тайлов.
|
||||
|
||||
ent-ActionSmite = Кара
|
||||
ent-ActionSmiteWizard = Кара
|
||||
.desc = Заряжает вашу руку мерзкой энергией, которую можно использовать для взрыва жертв. Заклинание требует, чтобы вы коснулись своей цели, поэтому вы не сможете использовать его в наручниках или будучи оглушённым. Не работает без волшебной мантии и шляпы.
|
||||
|
||||
ent-ActionMindswapSpell = Подмена сознания
|
||||
|
||||
1
Resources/Locale/ru-RU/actions/actions/suicide.ftl
Normal file
@@ -0,0 +1 @@
|
||||
suicide-action-popup = ЭТО ДЕЙСТВИЕ УБЬЁТ ВАС! Используйте его ещё раз, если вы уверены.
|
||||
@@ -8,6 +8,7 @@ anomaly-particles-delta = Дельта-частицы
|
||||
anomaly-particles-epsilon = Эпсилон-частицы
|
||||
anomaly-particles-zeta = Зета-частицы
|
||||
anomaly-particles-omega = Омега-частицы
|
||||
anomaly-particles-sigma = Сигма-частицы
|
||||
|
||||
anomaly-scanner-component-scan-complete = Сканирование завершено!
|
||||
|
||||
@@ -22,6 +23,11 @@ anomaly-scanner-particle-readout = Анализ реакции на частиц
|
||||
anomaly-scanner-particle-danger = - [color=crimson]Опасный тип:[/color] { $type }
|
||||
anomaly-scanner-particle-unstable = - [color=plum]Нестабильный тип:[/color] { $type }
|
||||
anomaly-scanner-particle-containment = - [color=goldenrod]Сдерживающий тип:[/color] { $type }
|
||||
anomaly-scanner-particle-transformation = - [color=#6b75fa]Трансформирующий тип:[/color] { $type }
|
||||
anomaly-scanner-particle-danger-unknown = - [color=crimson]Опасный тип:[/color] [color=red]ОШИБКА[/color]
|
||||
anomaly-scanner-particle-unstable-unknown = - [color=plum]Нестабильный тип:[/color] [color=red]ОШИБКА[/color]
|
||||
anomaly-scanner-particle-containment-unknown = - [color=goldenrod]Сдерживающий тип:[/color] [color=red]ОШИБКА[/color]
|
||||
anomaly-scanner-particle-transformation-unknown = - [color=#6b75fa]Трансформирующий тип:[/color] [color=red]ОШИБКА[/color]
|
||||
anomaly-scanner-pulse-timer = Время до следующего импульса: [color=gray]{ $time }[/color]
|
||||
|
||||
anomaly-gorilla-core-slot-name = Ядро аномалии
|
||||
@@ -69,3 +75,24 @@ anomaly-command-supercritical = Доводит аномалию до супер
|
||||
# Flavor text on the footer
|
||||
anomaly-generator-flavor-left = Аномалия может возникнуть внутри пользователя.
|
||||
anomaly-generator-flavor-right = v1.1
|
||||
|
||||
anomaly-behavior-unknown = [color=red]ОШИБКА. Невозможно считать.[/color]
|
||||
|
||||
anomaly-behavior-title = Анализ отклонений поведения:
|
||||
anomaly-behavior-point = [color=gold]Аномалия генерирует { $mod }% очков[/color]
|
||||
|
||||
anomaly-behavior-safe = [color=forestgreen]Аномалия чрезвычайно стабильна. Крайне редкие импульсы.[/color]
|
||||
anomaly-behavior-slow = [color=forestgreen]Частота импульсов значительно снижена.[/color]
|
||||
anomaly-behavior-light = [color=forestgreen]Мощность импульсов значительно снижена.[/color]
|
||||
anomaly-behavior-balanced = Отклонения поведения не обнаружены.
|
||||
anomaly-behavior-delayed-force = Частота пульсаций значительно снижена, но их сила повышена.
|
||||
anomaly-behavior-rapid = Частота пульсаций значительно повышена, но их сила снижена.
|
||||
anomaly-behavior-reflect = Обнаружено защитное покрытие.
|
||||
anomaly-behavior-nonsensivity = Обнаружена слабая реакция на частицы.
|
||||
anomaly-behavior-sensivity = Обнаружена сильная реакция на частицы.
|
||||
anomaly-behavior-invisibility = Обнаружено искажение светового потока.
|
||||
anomaly-behavior-secret = Обнаружены помехи. Некоторые данные не могут быть считаны
|
||||
anomaly-behavior-inconstancy = [color=crimson]Обнаружено непостоянство. Со временем типы частиц могут поменяться.[/color]
|
||||
anomaly-behavior-fast = [color=crimson]Частота импульсов значительно повышена.[/color]
|
||||
anomaly-behavior-strenght = [color=crimson]Мощность импульсов значительно повышена.[/color]
|
||||
anomaly-behavior-moving = [color=crimson]Обнаружена координатная нестабильность.[/color]
|
||||
|
||||
@@ -30,6 +30,7 @@ cargo-console-snip-snip = Заказ урезан до вместимости
|
||||
cargo-console-insufficient-funds = Недостаточно средств (требуется { $cost })
|
||||
cargo-console-unfulfilled = Нет места для выполнения заказа
|
||||
cargo-console-trade-station = Отправить на {$destination}
|
||||
cargo-console-unlock-approved-order-broadcast = [bold]{$productName} x{$orderAmount}[/bold], стоимостью [bold]{$cost}[/bold], одобрено [bold]{$approverName}, {$approverJob}[/bold]
|
||||
|
||||
cargo-console-paper-print-name = Заказ #{$orderNumber}
|
||||
cargo-console-paper-print-text =
|
||||
|
||||
@@ -10,6 +10,15 @@ ghost-role-information-mouse-description = Голодная и озорная м
|
||||
ghost-role-information-mothroach-name = Таракамоль
|
||||
ghost-role-information-mothroach-description = Милая озорная таракамоль.
|
||||
|
||||
ghost-role-information-snail-name = Улитка
|
||||
ghost-role-information-snail-description = Маленькая улитка, которая не против немного побыть на свободе. Только не убегай за пределы клетки!
|
||||
ghost-role-information-snailspeed-name = Улитка
|
||||
ghost-role-information-snailspeed-description = Маленькая улитка с турбоулиточными ускорителями.
|
||||
ghost-role-information-snoth-name = Молитка
|
||||
ghost-role-information-snoth-description = Маленькая молитка, которая не против немного побыть на свободе. Только не убегай за пределы клетки!
|
||||
ghost-role-information-deathsnail-name = Улитка забвения
|
||||
ghost-role-information-deathsnail-description = Маленькая улитка, предвестник Конца, последний адепт Элегиста. Вся жизнь будет окончена, все звёзды - потухнут, но она останется.
|
||||
|
||||
ghost-role-information-giant-spider-name = Гигантский паук
|
||||
ghost-role-information-giant-spider-description = Устройте хаос обитателям станции!
|
||||
|
||||
|
||||
@@ -51,3 +51,13 @@ ent-MobKangarooSpace = космо-кенгуру
|
||||
.desc = Это выглядит дружелюбно. Почему бы тебе не обнять его?
|
||||
ent-MobSpiderSpace = космо-паук
|
||||
.desc = Он так светится, что выглядит опасным.
|
||||
ent-MobSnail = улитка
|
||||
.desc = Отвратительна, только если вы не француз.
|
||||
ent-MobSnailInstantDeath = { ent-MobSnail }
|
||||
.suffix = Кара
|
||||
.desc = Древнее существо, пришедшее из ниоткуда и которое останется, пока последний атом не будет расчеплён.
|
||||
ent-MobSnailSpeed = { ent-MobSnail }
|
||||
.suffix = Скорость
|
||||
.desc = { ent-MobSnail.desc }
|
||||
ent-MobSnailMoth = молитка
|
||||
.desc = Отвратительна, только если вы не моль-француз.
|
||||
|
||||
@@ -70,6 +70,24 @@ ent-LockerParamedic = шкаф парамедика
|
||||
.desc = { ent-LockerBase.desc }
|
||||
ent-GunSafe = оружейный сейф
|
||||
.desc = { ent-LockerBase.desc }
|
||||
ent-GunSafeDisabler = сейф с дизейблерами
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeSubMachineGunDrozd = сейф с пистолетами-пулемётами Дрозд
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeShotgunEnforcer = сейф с дробовиками Силовик
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeShotgunKammerer = сейф с дробовиками Каммерер
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeLaserCarbine = сейф с лазерными винтовками
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeRifleLecter = сейф с винтовками Лектер
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafePistolMk58 = сейф с пистолетами МК 58
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeTempGun = сейф с температурными пушками
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-GunSafeSubMachineGunWt550 = сейф с пистолетами-пулемётами WT550
|
||||
.desc = { ent-GunSafe.desc }
|
||||
ent-LockerBluespaceStation = блюспейс шкаф
|
||||
.desc = Усовершенствованная технология шкафчиков.
|
||||
ent-CrateChemistrySecure = надежный химический ящик
|
||||
|
||||
@@ -13,28 +13,28 @@ health-analyzer-window-scan-mode-text = Режим сканирования:
|
||||
health-analyzer-window-scan-mode-active = ВКЛЮЧЕН
|
||||
health-analyzer-window-scan-mode-inactive = ВЫКЛЮЧЕН
|
||||
|
||||
health-analyzer-window-damage-group-Brute = Механические:
|
||||
health-analyzer-window-damage-type-Blunt = Удары:
|
||||
health-analyzer-window-damage-type-Slash = Разрезы:
|
||||
health-analyzer-window-damage-type-Piercing = Уколы:
|
||||
damage-group-brute = Механические
|
||||
damage-type-blunt = Удары
|
||||
damage-type-slash = Разрезы
|
||||
damage-type-piercing = Уколы
|
||||
|
||||
health-analyzer-window-damage-group-Burn = Ожоги:
|
||||
health-analyzer-window-damage-type-Heat = Термические:
|
||||
health-analyzer-window-damage-type-Laser = Лазерный:
|
||||
health-analyzer-window-damage-type-Shock = Электрические:
|
||||
health-analyzer-window-damage-type-Cold = Обморожение:
|
||||
health-analyzer-window-damage-type-Caustic = Кислотные:
|
||||
damage-group-burn = Ожоги
|
||||
damage-type-heat = Термические
|
||||
damage-type-laser = Лазерный
|
||||
damage-type-shock = Электрические
|
||||
damage-type-cold = Обморожение
|
||||
damage-type-caustic = Кислотные
|
||||
|
||||
health-analyzer-window-damage-group-Airloss = Нехватка воздуха:
|
||||
health-analyzer-window-damage-type-Asphyxiation = Удушение:
|
||||
health-analyzer-window-damage-type-Bloodloss = Кровопотеря:
|
||||
damage-group-airloss = Нехватка воздуха
|
||||
damage-type-asphyxiation = Удушение
|
||||
damage-type-bloodloss = Кровопотеря
|
||||
|
||||
health-analyzer-window-damage-group-Toxin = Токсины:
|
||||
health-analyzer-window-damage-type-Poison = Яды:
|
||||
health-analyzer-window-damage-type-Radiation = Радиация:
|
||||
damage-group-toxin = Токсины
|
||||
damage-type-poison = Яды
|
||||
damage-type-radiation = Радиация
|
||||
|
||||
health-analyzer-window-damage-group-Genetic = Генетические:
|
||||
health-analyzer-window-damage-type-Cellular = Клеточные:
|
||||
damage-group-genetic = Генетические
|
||||
damage-type-cellular = Клеточные
|
||||
|
||||
health-analyzer-window-malnutrition = Тяжёлое недоедание
|
||||
|
||||
|
||||
@@ -2,12 +2,25 @@ pai-system-pai-installed = пИИ установлен.
|
||||
pai-system-off = пИИ не установлен.
|
||||
pai-system-still-searching = Всё ещё ищем пИИ.
|
||||
pai-system-searching = Ищем пИИ...
|
||||
|
||||
pai-system-role-name = персональный ИИ
|
||||
pai-system-role-description =
|
||||
Станьте чьим-то персональным Искуственным Интеллектом!
|
||||
(Воспоминания *не* прилагаются.)
|
||||
pai-system-role-name-syndicate = персональный ИИ Синдиката
|
||||
pai-system-role-description-syndicate = Станьте чьим-то персональным Искуственным Интеллектом!
|
||||
(Воспоминания *не* прилагаются.)
|
||||
pai-system-role-name-potato = картофельный искусственный интеллект
|
||||
pai-system-role-description-potato = Это игрушка для детей. И теперь ваша жизнь в ней.
|
||||
|
||||
pai-system-wipe-device-verb-text = Удалить пИИ
|
||||
pai-system-wiped-device = пИИ был стерт с устройства.
|
||||
|
||||
pai-system-stop-searching-verb-text = Прекратить поиск
|
||||
pai-system-stopped-searching = Устройство прекратило поиск пИИ.
|
||||
|
||||
pai-system-pai-name = пИИ { CAPITALIZE($owner) }
|
||||
pai-system-pai-name-raw = пИИ {$name}
|
||||
|
||||
pai-system-brick-popup = Микросхемы пИИ громко хлопают и перегорают!
|
||||
pai-system-scramble-popup = Микросхемы пИИ перенапряжены электричеством!
|
||||
|
||||
@@ -4,6 +4,7 @@ salvage-expedition-structure-remaining =
|
||||
[one] { $count } структура осталась.
|
||||
*[other] { $count } структур осталось.
|
||||
}
|
||||
salvage-expedition-type = Миссия
|
||||
salvage-expedition-megafauna-remaining = { $count } мегафауны остаётся.
|
||||
salvage-expedition-window-title = Экспедиции
|
||||
salvage-expedition-window-difficulty = Сложность:
|
||||
@@ -35,11 +36,43 @@ salvage-expedition-difficulty-Minor = Незначительная
|
||||
salvage-expedition-difficulty-Moderate = Умеренная
|
||||
salvage-expedition-difficulty-Hazardous = Опасная
|
||||
salvage-expedition-difficulty-Extreme = Экстремальная
|
||||
|
||||
salvage-expedition-difficulty-players = Рекомендуется утилизаторов:
|
||||
|
||||
# Runner
|
||||
salvage-expedition-not-all-present = Не все утилизаторы находятся на борту шаттла!
|
||||
# Runner
|
||||
salvage-expedition-announcement-countdown-minutes = { $duration } минут осталось до завершения экспедиции.
|
||||
salvage-expedition-announcement-countdown-seconds = { $duration } секунд осталось до завершения экспедиции.
|
||||
salvage-expedition-reward-description = Награда за выполнение миссии
|
||||
salvage-expedition-announcement-dungeon = Подземелье расположено на { $direction }.
|
||||
salvage-expedition-announcement-dungeon = Подземелье обнаружено. Местоположение: { $direction }.
|
||||
salvage-expedition-completed = Экспедиция завершена.
|
||||
|
||||
salvage-faction-xenos = Ксено
|
||||
salvage-faction-carps = Карпы
|
||||
|
||||
salvage-biome-mod-caves = Пещеры
|
||||
salvage-biome-mod-grasslands = Луга
|
||||
salvage-biome-mod-snow = Снег
|
||||
salvage-biome-mod-lava = Лава
|
||||
|
||||
salvage-light-mod-daylight = День
|
||||
salvage-light-mod-evening = Вечер
|
||||
salvage-light-mod-night = Ночь
|
||||
salvage-temperature-mod-room-temperature = Комнатная температура
|
||||
salvage-temperature-mod-hot = Жара
|
||||
salvage-temperature-mod-high-temperature = Высокая температура
|
||||
salvage-temperature-mod-extreme-heat = Экстремальная жара
|
||||
salvage-temperature-mod-cold = Холод
|
||||
salvage-temperature-mod-low-temperature = Низкая температура
|
||||
salvage-temperature-mod-extreme-cold = Экстремальный холод
|
||||
salvage-air-mod-no-atmosphere = Отсутствие атмосферы
|
||||
salvage-air-mod-breathable-atmosphere = Пригодная атмосфера
|
||||
salvage-air-mod-dangerous-atmosphere = Опасная атмосфера
|
||||
salvage-air-mod-toxic-atmosphere = Токсичная атмосфера
|
||||
salvage-air-mod-volatile-atmosphere = Изменчивая атмосфера
|
||||
salvage-dungeon-mod-lava-brig = Лавовый бриг
|
||||
salvage-dungeon-mod-snowy-labs = Снежная лаборатория
|
||||
salvage-dungeon-mod-experiment = Эксперимент
|
||||
salvage-dungeon-mod-haunted = Призраки
|
||||
salvage-dungeon-mod-mineshaft = Шахта
|
||||
|
||||
@@ -10,3 +10,7 @@ species-name-skrell = Скрелл
|
||||
species-name-moth = Моль
|
||||
species-name-skeleton = Скелет
|
||||
species-name-felinid = Фелинид
|
||||
|
||||
## Misc species things
|
||||
|
||||
snail-hurt-by-salt-popup = Соленый раствор жжет, как кислота!
|
||||
|
||||
@@ -48,6 +48,8 @@ ent-FoodMeatMeatball = фрикаделька
|
||||
.desc = Шарик сырого мяса. Ноу хомо.
|
||||
ent-FoodMeatSlime = шар слизи
|
||||
.desc = Студенистая масса из слаймового желе.
|
||||
ent-FoodMeatSnail = сырое мясо улитки
|
||||
.desc = Лучше с солью.
|
||||
ent-FoodMeatCooked = стейк
|
||||
.desc = Зажаренный кусок мяса. Аромат первобытности.
|
||||
ent-FoodMeatBaconCooked = бекон
|
||||
@@ -72,6 +74,8 @@ ent-FoodMeatSpiderlegCooked = приготовленная паучья нога
|
||||
.desc = Нога гигантского паука, которая все еще дергается после приготовления. Отвратительно!
|
||||
ent-FoodMeatMeatballCooked = фрикаделька
|
||||
.desc = Приготовленная фрикаделька. Идеально подходит для добавления в другие блюда... кроме фруктовых.
|
||||
ent-FoodMeatSnailCooked = варёная улитка
|
||||
.desc = Лучше с солью.
|
||||
ent-FoodMeatCutlet = сырая котлета
|
||||
.desc = Котлета из сырого мяса.
|
||||
ent-FoodMeatBearCutlet = сырая котлета из медведя
|
||||
|
||||
@@ -84,3 +84,5 @@ ent-FoodSaladColeslaw = салат коул слоу
|
||||
.desc = Нашинкованную капусту и красный лук заправить винегретом.
|
||||
ent-FoodSaladKimchi = салат кимчи
|
||||
.desc = На самом деле это просто острый салат.
|
||||
ent-FoodSoupEscargot = эскарго
|
||||
.desc = Сытное сливочное блюдо с улитками, бон апетит!
|
||||
|
||||
@@ -56,3 +56,6 @@ ent-ImplanterSyndi = { ent-BaseImplanter }
|
||||
.desc = { ent-BaseImplanter.desc }
|
||||
ent-NeuroStabilizationImplanter = { ent-BaseImplanter }
|
||||
.desc = { ent-BaseImplanter.desc }
|
||||
ent-VoiceActivatedBombImplanter = { ent-BaseImplanter }
|
||||
.desc = { ent-BaseImplanter.desc }
|
||||
.suffix = бомба с голосовым триггером
|
||||
|
||||
@@ -10,3 +10,5 @@ ent-SoapHomemade = мыло
|
||||
.desc = Самодельный брусок мыла. Пахнет... уф....
|
||||
ent-SoapOmega = омега мыло
|
||||
.desc = Самое совершенное мыло, известное человечеству. Пахнет блюспейсом.
|
||||
ent-SoapletSyndie = кусочек мыла
|
||||
.desc = Крохотный кусочек мыла синдиката.
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ent-ActionSmite = Кара
|
||||
.desc = Мгновенно поражает цель.
|
||||
@@ -254,7 +254,7 @@
|
||||
id: ClothingEyesGlassesThermalNukie
|
||||
suffix: "Хамелеон, Ядерные Оперативники"
|
||||
components:
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
damageContainers:
|
||||
- Biological
|
||||
- Inorganic
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingEyesBase, ShowSecurityIcons, ShowMedicalIcons]
|
||||
@@ -185,7 +185,7 @@
|
||||
- Inorganic
|
||||
- type: ShowHungerIcons
|
||||
- type: ShowThirstIcons
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingEyesBase, ShowSecurityIcons]
|
||||
@@ -197,7 +197,7 @@
|
||||
sprite: Clothing/Eyes/Hud/synd.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Hud/synd.rsi
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingEyesBase, ShowSecurityIcons]
|
||||
@@ -209,7 +209,7 @@
|
||||
sprite: Clothing/Eyes/Hud/syndagent.rsi
|
||||
- type: Clothing
|
||||
sprite: Clothing/Eyes/Hud/syndagent.rsi
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
- type: ShowHealthBars
|
||||
damageContainers:
|
||||
- Biological
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
- type: ActiveRadio
|
||||
channels:
|
||||
- Syndicate
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
- type: MovementAlwaysTouching
|
||||
- type: TTS
|
||||
- type: PointLight
|
||||
|
||||
@@ -375,3 +375,239 @@
|
||||
suffix: "Salvage Ruleset"
|
||||
components:
|
||||
- type: SalvageMobRestrictions
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
parent: SimpleSpaceMobBase
|
||||
id: MobSnail
|
||||
name: snail
|
||||
description: Revolting unless you're french.
|
||||
components:
|
||||
- type: Body
|
||||
prototype: Mouse
|
||||
- type: GhostRole
|
||||
makeSentient: true
|
||||
allowSpeech: false
|
||||
allowMovement: true
|
||||
name: ghost-role-information-snail-name
|
||||
description: ghost-role-information-snail-description
|
||||
# rules: ghost-role-information-freeagent-rules # WD TODO later
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Emoting
|
||||
- type: Sprite
|
||||
drawdepth: SmallMobs
|
||||
sprite: Mobs/Animals/snail.rsi
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: snail
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- Mouse
|
||||
- type: HTN
|
||||
rootTask:
|
||||
task: MouseCompound
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.2
|
||||
density: 100
|
||||
mask:
|
||||
- SmallMobMask
|
||||
layer:
|
||||
- SmallMobLayer
|
||||
- type: MobState
|
||||
- type: Deathgasp
|
||||
- type: MobStateActions
|
||||
actions:
|
||||
Critical:
|
||||
- ActionCritSuccumb
|
||||
- ActionCritFakeDeath
|
||||
- ActionCritLastWords
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
10: Critical
|
||||
20: Dead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 2
|
||||
baseSprintSpeed : 3
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: snail
|
||||
Critical:
|
||||
Base: dead
|
||||
Dead:
|
||||
Base: dead
|
||||
- type: Food
|
||||
- type: Thirst
|
||||
startingThirst: 25 # spawn with Okay thirst state
|
||||
thresholds:
|
||||
OverHydrated: 35
|
||||
Okay: 25
|
||||
Thirsty: 15
|
||||
Parched: 10
|
||||
Dead: 0
|
||||
baseDecayRate: 0.04
|
||||
- type: Hunger
|
||||
currentHunger: 25 # spawn with Okay hunger state
|
||||
thresholds:
|
||||
Overfed: 35
|
||||
Okay: 25
|
||||
Peckish: 15
|
||||
Starving: 10
|
||||
Dead: 0
|
||||
baseDecayRate: 0.1
|
||||
- type: Extractable
|
||||
grindableSolutionName: food
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
reagents:
|
||||
- ReagentId: UncookedAnimalProteins
|
||||
Quantity: 3
|
||||
- type: Butcherable
|
||||
spawned:
|
||||
- id: FoodMeatSnail
|
||||
amount: 1
|
||||
- type: Tag
|
||||
tags:
|
||||
- Trash
|
||||
- VimPilot
|
||||
- ChefPilot
|
||||
- Meat
|
||||
- type: CombatMode
|
||||
combatToggleAction: ActionCombatModeToggleOff
|
||||
- type: Bloodstream
|
||||
bloodMaxVolume: 30
|
||||
bloodReagent: Cryoxadone
|
||||
- type: CanEscapeInventory
|
||||
- type: MobPrice
|
||||
price: 50
|
||||
- type: BadFood
|
||||
- type: NonSpreaderZombie
|
||||
- type: PreventSpiller
|
||||
- type: FireVisuals
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Mouse_burning
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 500
|
||||
coldDamageThreshold: 0
|
||||
- type: Reactive
|
||||
reactions:
|
||||
- reagents: [TableSalt, Saline]
|
||||
methods: [Touch, Ingestion, Injection]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaleByQuantity: true
|
||||
damage:
|
||||
types:
|
||||
Caustic: 1
|
||||
- !type:PopupMessage
|
||||
type: Local
|
||||
visualType: Large
|
||||
messages: [ "snail-hurt-by-salt-popup" ]
|
||||
probability: 0.66
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
parent: MobSnail
|
||||
id: MobSnailInstantDeath
|
||||
suffix: Smite
|
||||
components:
|
||||
- type: MobStateActions
|
||||
actions:
|
||||
Alive:
|
||||
- ActionSmite
|
||||
Critical:
|
||||
- ActionCritSuccumb
|
||||
- ActionCritFakeDeath
|
||||
- ActionCritLastWords
|
||||
# - type: Godmode # WD Removed - not funny
|
||||
- type: MovementAlwaysTouching
|
||||
# WD EDIT START
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
1900: Critical
|
||||
2000: Dead
|
||||
- type: Bloodstream
|
||||
maxBleedAmount: 1
|
||||
bloodMaxVolume: 100
|
||||
bloodReagent: Necrosol
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-deathsnail-name
|
||||
description: ghost-role-information-deathsnail-description
|
||||
raffle:
|
||||
settings: default
|
||||
- type: Sprite
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: deathsnail
|
||||
- type: PointLight
|
||||
color: red
|
||||
energy: 2
|
||||
range: 3
|
||||
- type: AmbientSound
|
||||
range: 5
|
||||
volume: 30
|
||||
sound:
|
||||
path: /Audio/White/Supermatter/calm.ogg
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 0.5
|
||||
baseSprintSpeed : 1
|
||||
# WD EDIT END
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
parent: MobSnail
|
||||
id: MobSnailSpeed
|
||||
suffix: Speed
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-snailspeed-name
|
||||
description: ghost-role-information-snailspeed-description
|
||||
# rules: ghost-role-information-freeagent-rules # WD TODO later
|
||||
- type: Sprite
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: spacesnail
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: spacesnail
|
||||
Critical:
|
||||
Base: spacedead
|
||||
Dead:
|
||||
Base: spacedead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 5 #he go fast, also they cant slip so its probably fine.
|
||||
baseSprintSpeed : 7
|
||||
# - type: ActiveJetpack # I think this will need a custom component to not make tests angry.
|
||||
- type: MovementAlwaysTouching
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
parent: MobSnail
|
||||
id: MobSnailMoth
|
||||
name: Snoth
|
||||
components:
|
||||
- type: Body
|
||||
prototype: Mothroach
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-snoth-name
|
||||
description: ghost-role-information-snoth-description
|
||||
# rules: ghost-role-information-freeagent-rules # WD TODO later
|
||||
- type: Sprite
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: snoth
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: snoth
|
||||
Critical:
|
||||
Base: snothdead
|
||||
Dead:
|
||||
Base: snothdead
|
||||
|
||||
@@ -679,6 +679,35 @@
|
||||
- type: Sprite
|
||||
state: slime
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
name: raw snail meat
|
||||
parent: FoodMeatRawBase
|
||||
id: FoodMeatSnail
|
||||
description: Improved with salt.
|
||||
components:
|
||||
- type: Sprite
|
||||
state: snail
|
||||
# - type: FoodSequenceElement # WD TODO later
|
||||
# sprite:
|
||||
# sprite: Objects/Consumable/Food/meat.rsi
|
||||
# state: snail
|
||||
# entries:
|
||||
# burger:
|
||||
# name: food-sequence-content-snail
|
||||
# taco:
|
||||
# name: food-sequence-content-snail
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 15
|
||||
reagents:
|
||||
- ReagentId: UncookedAnimalProteins
|
||||
Quantity: 3
|
||||
- ReagentId: Fat
|
||||
Quantity: 3
|
||||
- ReagentId: Water
|
||||
Quantity: 4 #It makes saline if you add salt!
|
||||
|
||||
# Cooked
|
||||
|
||||
- type: entity
|
||||
@@ -1070,6 +1099,40 @@
|
||||
- ReagentId: Protein
|
||||
Quantity: 5
|
||||
|
||||
- type: entity
|
||||
name: boiled snail
|
||||
parent: FoodMeatBase
|
||||
id: FoodMeatSnailCooked
|
||||
description: Improved with salt.
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- Cooked
|
||||
- Meat
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: snail-cooked
|
||||
# - type: FoodSequenceElement
|
||||
# sprite:
|
||||
# sprite: Objects/Consumable/Food/meat.rsi
|
||||
# state: snail-cooked
|
||||
# entries:
|
||||
# burger:
|
||||
# name: food-sequence-content-snail
|
||||
# taco:
|
||||
# name: food-sequence-content-snail
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 15
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 3
|
||||
- ReagentId: Protein
|
||||
Quantity: 3
|
||||
- ReagentId: Water
|
||||
Quantity: 4 # makes saline if you add salt!
|
||||
|
||||
# Cutlets
|
||||
|
||||
# Raw
|
||||
|
||||
@@ -1226,3 +1226,33 @@
|
||||
- Fruit
|
||||
- Soup
|
||||
# Tastes like bungo, hot curry.
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
name: escargot
|
||||
parent: FoodBowlBase
|
||||
id: FoodSoupEscargot
|
||||
description: A creamy and rich bowl of snails, bon appetit!
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- creamy
|
||||
- slimy
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bowl
|
||||
- state: escargot
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 20
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 6
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 6
|
||||
- ReagentId: Allicin
|
||||
Quantity: 3
|
||||
- type: Tag
|
||||
tags:
|
||||
- Meat
|
||||
- Soup
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
- type: DeviceLinkSink
|
||||
ports:
|
||||
- Trigger
|
||||
- type: EmitSoundOnUse
|
||||
handle: false # WD Ahead of wizden upstream - don't want the sound to stop the explosion from triggering
|
||||
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
|
||||
@@ -207,6 +207,52 @@
|
||||
- id: MobMothroach
|
||||
prob: 0.008
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
id: SnailMigrationLowPop
|
||||
# parent: BaseStationEventShortDelay # WD TODO later
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-vent-creatures-start-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 6
|
||||
duration: 50
|
||||
- type: VentCrittersRule
|
||||
entries:
|
||||
- id: MobSnail
|
||||
prob: 0.02
|
||||
- id: MobSnailSpeed
|
||||
prob: 0.002
|
||||
- id: MobSnailMoth
|
||||
prob: 0.005 # WD edit from 0.002 to 0.005
|
||||
|
||||
- type: entity # WD Ahead of wizden
|
||||
id: SnailMigration
|
||||
# parent: BaseStationEventShortDelay # WD TODO later
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-vent-creatures-start-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
earliestStart: 15
|
||||
weight: 6
|
||||
duration: 50
|
||||
minimumPlayers: 30
|
||||
- type: VentCrittersRule
|
||||
entries:
|
||||
- id: MobSnail
|
||||
prob: 0.02
|
||||
- id: MobSnailSpeed
|
||||
prob: 0.002
|
||||
- id: MobSnailMoth
|
||||
prob: 0.005 # WD edit from 0.002 to 0.005
|
||||
- id: MobSnailInstantDeath
|
||||
prob: 0.00001 # ~ 1:2000 snails
|
||||
|
||||
- type: entity
|
||||
id: PowerGridCheck
|
||||
parent: BaseGameRule
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
description: Instantly gibs a target.
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Magic
|
||||
requiresClothes: true
|
||||
- type: EntityTargetAction
|
||||
useDelay: 60
|
||||
itemIconStyle: BigAction
|
||||
@@ -22,3 +20,13 @@
|
||||
state: gib
|
||||
event: !type:SmiteSpellEvent
|
||||
speech: action-speech-spell-smite
|
||||
|
||||
- type: entity
|
||||
id: ActionSmiteWizard
|
||||
parent: ActionSmite
|
||||
name: Smite
|
||||
description: Instantly gibs a target.
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Magic
|
||||
requiresClothes: true
|
||||
|
||||
@@ -896,6 +896,29 @@
|
||||
FoodBungo: 2
|
||||
FoodChiliPepper: 1
|
||||
|
||||
- type: microwaveMealRecipe # WD Ahead of wizden
|
||||
id: RecipeBoiledSnail
|
||||
name: boiled snail recipe
|
||||
result: FoodMeatSnailCooked
|
||||
time: 5
|
||||
reagents:
|
||||
Water: 10
|
||||
solids:
|
||||
FoodMeatSnail: 1
|
||||
|
||||
- type: microwaveMealRecipe # WD Ahead of wizden
|
||||
id: RecipeEscargotSoup
|
||||
name: escargot recipe
|
||||
result: FoodSoupEscargot
|
||||
time: 10
|
||||
reagents:
|
||||
Water: 5
|
||||
solids:
|
||||
FoodBowlBig: 1
|
||||
FoodOnionSlice: 1
|
||||
FoodButter: 1
|
||||
FoodMeatSnailCooked: 1
|
||||
|
||||
#Pies
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
|
||||
@@ -324,3 +324,15 @@
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkDisruption
|
||||
|
||||
- type: listing
|
||||
id: UplinkVoiceActivatedBombImplanter
|
||||
name: uplink-voice-activated-bomb-implant
|
||||
description: uplink-voice-activated-bomb-implant-desc
|
||||
icon: { sprite: /Textures/Actions/Implants/implants.rsi, state: explosive }
|
||||
productEntity: VoiceActivatedBombImplanter
|
||||
cost:
|
||||
Telecrystal: 8
|
||||
categories:
|
||||
- UplinkImplants
|
||||
saleLimit: 1
|
||||
|
||||
@@ -33,4 +33,4 @@
|
||||
id: ClothingEyesNightVisionGogglesNukie
|
||||
suffix: "Хамелеон, Ядерные Оперативники"
|
||||
components:
|
||||
- type: ShowSyndicateIcons
|
||||
- type: ShowAntagonistIcons
|
||||
|
||||
@@ -43,6 +43,18 @@
|
||||
- type: Implanter
|
||||
implant: NeuroStabilizationImplant
|
||||
|
||||
- type: entity
|
||||
parent: BaseImplantOnlyImplanterSyndi
|
||||
id: VoiceActivatedBombImplanter
|
||||
suffix: voice activated bomb
|
||||
components:
|
||||
- type: Implanter
|
||||
implant: VoiceActivatedBombImplant
|
||||
- type: TriggerOnVoice
|
||||
- type: Tag
|
||||
tags:
|
||||
- VoiceActivatedBombImplant
|
||||
|
||||
#Amour
|
||||
- type: entity
|
||||
id: GenderSwapImplanter
|
||||
@@ -51,3 +63,4 @@
|
||||
components:
|
||||
- type: Implanter
|
||||
implant: GenderSwapImplant
|
||||
|
||||
|
||||
@@ -49,6 +49,27 @@
|
||||
tags:
|
||||
- NeuroStabilization
|
||||
|
||||
- type: entity
|
||||
parent: BaseSubdermalImplant
|
||||
id: VoiceActivatedBombImplant
|
||||
name: voice activated Bomb implant
|
||||
description: A microbomb implant with a trigger that causes it to go off by vocal keywords.
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: SubdermalImplant
|
||||
permanent: true
|
||||
- type: TriggerOnVoice
|
||||
- type: ExplodeOnTrigger
|
||||
- type: Explosive
|
||||
explosionType: MicroBomb
|
||||
totalIntensity: 150
|
||||
intensitySlope: 5
|
||||
maxIntensity: 30
|
||||
canCreateVacuum: false
|
||||
- type: Tag
|
||||
tags:
|
||||
- VoiceActivatedBombImplant
|
||||
|
||||
#Amour
|
||||
- type: entity
|
||||
parent: BaseSubdermalImplant
|
||||
|
||||
@@ -499,7 +499,7 @@
|
||||
sprite: White/Ghosts/DEN4IK_64-ghost.rsi
|
||||
alpha: 0.9
|
||||
ghostName: Никелевый камушек
|
||||
ghostDescription: Этот Ниггер имеет талант, знаешь что я тебе за это дам???
|
||||
ghostDescription: Этот камушек имеет талант, знаешь что я тебе за это дам???
|
||||
|
||||
#BIG_Zi_348
|
||||
- type: customGhost
|
||||
@@ -509,3 +509,13 @@
|
||||
alpha: 0.9
|
||||
ghostName: BIG_Zi_348
|
||||
ghostDescription: Зенит космической энергии — генезис сознания из пустоты.
|
||||
|
||||
#AugustNacist1488
|
||||
- type: customGhost
|
||||
id: augustnacist1488-ghost
|
||||
ckey: AugustNacist1488
|
||||
sprite: White/Ghosts/augustnacist1488-ghost.rsi
|
||||
alpha: 0.9
|
||||
ghostName: Ash drake
|
||||
ghostDescription: Почитаемый хранитель некрополя.
|
||||
size: 0.75, 0.75
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
name: "Smite scroll"
|
||||
components:
|
||||
- type: Scroll
|
||||
actionId: ActionSmite
|
||||
actionId: ActionSmiteWizard
|
||||
learnPopup: scroll-component-smite
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -102,3 +102,6 @@
|
||||
|
||||
- type: Tag
|
||||
id: ClusterBang
|
||||
|
||||
- type: Tag
|
||||
id: VoiceActivatedBombImplant
|
||||
|
||||
BIN
Resources/Textures/Mobs/Animals/snail.rsi/dead.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
Resources/Textures/Mobs/Animals/snail.rsi/deathsnail.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
36
Resources/Textures/Mobs/Animals/snail.rsi/meta.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by Kezu (discord) & IProduceWidgets (github)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "snail",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "dead"
|
||||
},
|
||||
{
|
||||
"name": "spacesnail",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "deathsnail",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "spacedead"
|
||||
},
|
||||
{
|
||||
"name": "snoth",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "snothdead"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Mobs/Animals/snail.rsi/snail.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Textures/Mobs/Animals/snail.rsi/snoth.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Resources/Textures/Mobs/Animals/snail.rsi/snothdead.png
Normal file
|
After Width: | Height: | Size: 503 B |
BIN
Resources/Textures/Mobs/Animals/snail.rsi/spacedead.png
Normal file
|
After Width: | Height: | Size: 478 B |
BIN
Resources/Textures/Mobs/Animals/snail.rsi/spacesnail.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Textures/Objects/Consumable/Food/bowl.rsi/escargot.png
Normal file
|
After Width: | Height: | Size: 392 B |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation and modified by Swept at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa. Fills created by potato1234_x",
|
||||
"copyright": "Taken from tgstation and modified by Swept at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa. escargot from tgstation at https://github.com/tgstation/tgstation/commit/7ffd61b6fa6a6183daa8900f9a490f46f7a81955. Fills created by potato1234_x",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -66,6 +66,9 @@
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "escargot"
|
||||
},
|
||||
{
|
||||
"name": "eyeball"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation and modified by Swept, potato1234x and deltanedas at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa",
|
||||
"copyright": "Taken from tgstation and modified by Swept, potato1234x and deltanedas at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, snail by IproduceWidgets (github) and Kezu (discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -152,6 +152,12 @@
|
||||
},
|
||||
{
|
||||
"name": "slime"
|
||||
},
|
||||
{
|
||||
"name": "snail"
|
||||
},
|
||||
{
|
||||
"name": "snail-cooked"
|
||||
},
|
||||
{
|
||||
"name": "snake"
|
||||
|
||||
|
After Width: | Height: | Size: 290 B |
BIN
Resources/Textures/Objects/Consumable/Food/meat.rsi/snail.png
Normal file
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/tgstation/tgstation",
|
||||
"size": {
|
||||
"x": 96,
|
||||
"y": 96
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "animated",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||