From e33b76905dfa37324ebfad591d3cf509f7fa5355 Mon Sep 17 00:00:00 2001 From: Rinary <72972221+Rinary1@users.noreply.github.com> Date: Sat, 17 Aug 2024 16:42:48 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B4?= =?UTF-8?q?=D0=B2=D0=B8=D0=B3=D0=B0=D1=82=D0=B5=D0=BB=D1=8C(=D0=B8)=20(#29?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init * upd * translate --- .../structures/shuttles/thrusters.ftl | 2 + .../Structures/Shuttles/thrusters.yml | 41 ++++++++ .../Shuttles/big_thruster.rsi/base.png | Bin 0 -> 11109 bytes .../Shuttles/big_thruster.rsi/meta.json | 99 ++++++++++++++++++ .../Shuttles/big_thruster.rsi/thrust.png | Bin 0 -> 4930 bytes .../big_thruster.rsi/thrust_burn_unshaded.png | Bin 0 -> 4562 bytes 6 files changed, 142 insertions(+) create mode 100644 Resources/Locale/ru-RU/_sunrise/_prototypes/entities/structures/shuttles/thrusters.ftl create mode 100644 Resources/Prototypes/_Sunrise/Entities/Structures/Shuttles/thrusters.yml create mode 100644 Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/base.png create mode 100644 Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/meta.json create mode 100644 Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust.png create mode 100644 Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust_burn_unshaded.png diff --git a/Resources/Locale/ru-RU/_sunrise/_prototypes/entities/structures/shuttles/thrusters.ftl b/Resources/Locale/ru-RU/_sunrise/_prototypes/entities/structures/shuttles/thrusters.ftl new file mode 100644 index 0000000000..bb7867ff84 --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/_prototypes/entities/structures/shuttles/thrusters.ftl @@ -0,0 +1,2 @@ +ent-BigThruster = большой ракетный двигатель + .desc = { ent-Thruster } \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/_Sunrise/Entities/Structures/Shuttles/thrusters.yml new file mode 100644 index 0000000000..6fa24b021a --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Structures/Shuttles/thrusters.yml @@ -0,0 +1,41 @@ +- type: entity + id: BigThruster + name: big thruster + parent: [ BaseThruster ] + components: + - type: Anchorable + flags: + - Unanchorable + - type: Sprite + sprite: _Sunrise/Structures/Shuttles/big_thruster.rsi + layers: + - state: base + map: ["enum.ThrusterVisualLayers.Base"] + offset: 0.5,0.5 + - state: thrust + map: ["enum.ThrusterVisualLayers.ThrustOn"] + shader: unshaded + visible: false + offset: 0.5,0.5 + - state: thrust_burn_unshaded + map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"] + shader: unshaded + visible: false + offset: 0.5, 2.5 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.9,-0.9,0.9,0.9" + density: 60 + mask: + - MachineMask + layer: + - MachineLayer + - type: Thruster + thrust: 400 + requireSpace: false + damage: + types: + Heat: 80 \ No newline at end of file diff --git a/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/base.png b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..00d84f017522bc42b2bba2d5ac88b2d4de262bab GIT binary patch literal 11109 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/meta.json b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/meta.json new file mode 100644 index 0000000000..d0030f4770 --- /dev/null +++ b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/meta.json @@ -0,0 +1,99 @@ +{ + "version": 1, + "size": { + "x": 64, + "y": 64 + }, + "copyright": "SUNRISE", + "license": "CLA", + "states": [ + { + "name": "base", + "directions": 4 + }, + { + "name": "thrust", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "thrust_burn_unshaded", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust.png b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust.png new file mode 100644 index 0000000000000000000000000000000000000000..251ecc49b33c7bc880280b9b003774196ebf1375 GIT binary patch literal 4930 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust_burn_unshaded.png b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust_burn_unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..3b62f813e253c778f50f2e14dfc9ceb30c661624 GIT binary patch literal 4562 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 Ho_GHX-i-Pj literal 0 HcmV?d00001 From 857e03b070871ba8cd25a1f49649f0efad43725f Mon Sep 17 00:00:00 2001 From: Focstor <111702496+Focstor@users.noreply.github.com> Date: Sat, 17 Aug 2024 16:43:08 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=B1=D0=BE=D1=80=D0=B3=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BD=D0=B5=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B3=D1=83=D1=82=20=D0=B2=D0=B8=D0=B4=D0=B5=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BC=D0=B0=D0=B9=D0=BD=D1=88=D0=B8=D0=BB=D0=B4=20(#293)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Sunrise/Entities/Mobs/Cyborgs/borg_chassis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Cyborgs/borg_chassis.yml index 7d1df6a1a2..06f8c527df 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -17,7 +17,7 @@ visible: false - type: FlashImmunity - type: ShowJobIcons - - type: ShowMindShieldIcons +# - type: ShowMindShieldIcons Sunrise-Edit - type: ShowCriminalRecordIcons - type: BorgCuffed - type: BorgTransponder @@ -112,7 +112,7 @@ - type: BorgCuffed - type: FlashImmunity - type: ShowJobIcons - - type: ShowMindShieldIcons +# - type: ShowMindShieldIcons Sunrise-Edit - type: ShowCriminalRecordIcons - type: BorgTransponder sprite: @@ -205,7 +205,7 @@ map: [ "light" ] visible: false - type: ShowJobIcons - - type: ShowMindShieldIcons +# - type: ShowMindShieldIcons Sunrise-Edit - type: ShowCriminalRecordIcons - type: SiliconLawProvider laws: PeaceStatic @@ -461,7 +461,7 @@ volume: -15 - type: FlashImmunity - type: ShowJobIcons - - type: ShowMindShieldIcons +# - type: ShowMindShieldIcons Sunrise-Edit - type: ShowCriminalRecordIcons - type: GhostRole makeSentient: true From 0cad3450c82284996d7e8b5ddd73c68e2e6448a3 Mon Sep 17 00:00:00 2001 From: Rinary <72972221+Rinary1@users.noreply.github.com> Date: Sat, 17 Aug 2024 16:44:01 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B=20(#291)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init * fix fax --- .../Systems/Ghost/Controls/GhostTargetWindow.xaml.cs | 4 ++-- Resources/Locale/ru-RU/fax/fax.ftl | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/GhostTargetWindow.xaml.cs b/Content.Client/UserInterface/Systems/Ghost/Controls/GhostTargetWindow.xaml.cs index 7f5f4f8329..bd654f573b 100644 --- a/Content.Client/UserInterface/Systems/Ghost/Controls/GhostTargetWindow.xaml.cs +++ b/Content.Client/UserInterface/Systems/Ghost/Controls/GhostTargetWindow.xaml.cs @@ -47,13 +47,13 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls //Sunrise-Start private string GetLocalizedName(string displayName) { - var locationKey = $"location-{Regex.Replace(displayName, @"[^\s]", string.Empty).Replace(" ", "-").ToLower()}"; + var locationKey = $"location-{Regex.Replace(displayName, @"[^a-zA-Zа-яА-Я0-9\s]", string.Empty).Replace(" ", "-").ToLower()}"; var localizedName = Loc.GetString(locationKey); if (localizedName == locationKey) { if (locationKey != "location--" || locationKey != "location-") { - Logger.Warning($"Failed to find localization with ID: {locationKey}"); + Logger.Warning($"Failed to find localization with ID: {locationKey} and name: {displayName}"); } localizedName = displayName; } diff --git a/Resources/Locale/ru-RU/fax/fax.ftl b/Resources/Locale/ru-RU/fax/fax.ftl index dcbabf494e..fbf2dff50f 100644 --- a/Resources/Locale/ru-RU/fax/fax.ftl +++ b/Resources/Locale/ru-RU/fax/fax.ftl @@ -28,6 +28,7 @@ fax-label-captainoffice = Кабинет капитана fax-label-captainsoffice = Кабинет капитана fax-label-captainsquarters = Кабинет капитана fax-label-centralcommand = Центральное коммандование +fax-label-centcomm = Центральное коммандование fax-label-hop = Глава персонала fax-label-hopoffice = Глава персонала fax-label-hopfax = Глава персонала From 54863bedac8922f92cbd2220bbae4d852f490571 Mon Sep 17 00:00:00 2001 From: GayBot Date: Sat, 17 Aug 2024 16:45:08 +0300 Subject: [PATCH 4/6] Automatic changelog update --- Resources/Changelog/ChangelogSunrise.yml | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Resources/Changelog/ChangelogSunrise.yml b/Resources/Changelog/ChangelogSunrise.yml index 3f5384400c..aacca74954 100644 --- a/Resources/Changelog/ChangelogSunrise.yml +++ b/Resources/Changelog/ChangelogSunrise.yml @@ -2627,3 +2627,30 @@ type: Fix id: 192 time: '2024-08-15T23:36:10.639849+00:00' +- author: Rinary + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043F\u0435\u0440\ + \u0435\u0432\u043E\u0434 \u0432\u0430\u0440\u043F \u0442\u043E\u0447\u0435\u043A" + type: Fix + id: 193 + time: '2024-08-17T13:44:01.0000000+00:00' + url: https://github.com/space-sunrise/space-station-14/pull/291 +- author: Focstor + changes: + - message: "\u0411\u043E\u0440\u0433\u0438 \u0442\u0435\u043F\u0435\u0440\u044C\ + \ \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0432\u0438\u0434\u0435\u0442\ + \u044C \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043C\u0430\u0439\u043D\u0448\ + \u0438\u043B\u0434\u0430." + type: Fix + id: 194 + time: '2024-08-17T13:43:08.0000000+00:00' + url: https://github.com/space-sunrise/space-station-14/pull/293 +- author: Rinary + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0431\u043E\u043B\ + \u044C\u0448\u044B\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043B\u0438\ + ." + type: Add + id: 195 + time: '2024-08-17T13:42:48.0000000+00:00' + url: https://github.com/space-sunrise/space-station-14/pull/294 From 913b27a9de540d8b5d78cc412ca8c20754ef5f47 Mon Sep 17 00:00:00 2001 From: Lgibb18 <65973111+Lgibb18@users.noreply.github.com> Date: Sat, 17 Aug 2024 18:48:02 +0500 Subject: [PATCH 5/6] =?UTF-8?q?=D0=B0=D0=B1=D1=83=D0=B7=20=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=87=D0=B0=D1=82=D0=B0,=20=D0=B5=D0=BC=D0=B0?= =?UTF-8?q?=D0=B3=20=D0=B1=D0=BE=D1=80=D0=B3=D0=BE=D0=B2=20=D0=B8=D1=82?= =?UTF-8?q?=D0=B4=20(#290)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Client/_Sunrise/Chat/LocTag.cs | 17 ++++ Content.Server/Chat/Systems/ChatSystem.cs | 48 +++++----- .../Silicons/Laws/SiliconLawSystem.cs | 8 +- .../Chat/CanFormatMessagesComponent.cs | 2 + .../_Sunrise/Chat/SayWithIntervalComponent.cs | 41 +++++++++ .../_Sunrise/Chat/SayWithIntervalSystem.cs | 90 +++++++++++++++++++ Resources/Locale/ru-RU/_sunrise/borg/emag.ftl | 1 + 7 files changed, 185 insertions(+), 22 deletions(-) create mode 100644 Content.Client/_Sunrise/Chat/LocTag.cs create mode 100644 Content.Server/_Sunrise/Chat/CanFormatMessagesComponent.cs create mode 100644 Content.Server/_Sunrise/Chat/SayWithIntervalComponent.cs create mode 100644 Content.Server/_Sunrise/Chat/SayWithIntervalSystem.cs create mode 100644 Resources/Locale/ru-RU/_sunrise/borg/emag.ftl diff --git a/Content.Client/_Sunrise/Chat/LocTag.cs b/Content.Client/_Sunrise/Chat/LocTag.cs new file mode 100644 index 0000000000..7b1bcf4a46 --- /dev/null +++ b/Content.Client/_Sunrise/Chat/LocTag.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Utility; +using Robust.Client.UserInterface.RichText; +namespace Content.Client.UserInterface.RichText; + +public sealed class LocTag : IMarkupTag +{ + public string Name => "loc"; + + public string TextBefore(MarkupNode node) + { + if(node.Value.TryGetString(out string? text)) + { + return Loc.GetString(text); + } + return ""; + } +} diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index 1e61aea0e0..981732cda6 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -1,6 +1,7 @@ using System.Globalization; using System.Linq; using System.Text; +using Content.Server._Sunrise.Chat; //sunrise-edit using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; using Content.Server.Chat.Managers; @@ -150,9 +151,10 @@ public sealed partial class ChatSystem : SharedChatSystem IConsoleShell? shell = null, ICommonSession? player = null, string? nameOverride = null, bool checkRadioPrefix = true, - bool ignoreActionBlocker = false) + bool ignoreActionBlocker = false, + bool isFormatted = false) // sunrise-edit { - TrySendInGameICMessage(source, message, desiredType, hideChat ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal, hideLog, shell, player, nameOverride, checkRadioPrefix, ignoreActionBlocker); + TrySendInGameICMessage(source, message, desiredType, hideChat ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal, hideLog, shell, player, nameOverride, checkRadioPrefix, ignoreActionBlocker, isFormatted); //sunrise-edit } /// @@ -176,7 +178,8 @@ public sealed partial class ChatSystem : SharedChatSystem ICommonSession? player = null, string? nameOverride = null, bool checkRadioPrefix = true, - bool ignoreActionBlocker = false + bool ignoreActionBlocker = false, + bool isFormatted = false //sunrise-edit ) { if (HasComp(source)) @@ -231,7 +234,7 @@ public sealed partial class ChatSystem : SharedChatSystem // Was there an emote in the message? If so, send it. if (player != null && emoteStr != message && emoteStr != null) { - SendEntityEmote(source, emoteStr, range, nameOverride, ignoreActionBlocker); + SendEntityEmote(source, emoteStr, range, nameOverride, ignoreActionBlocker, isFormatted); //sunrise-edit } // This can happen if the entire string is sanitized out. @@ -243,7 +246,7 @@ public sealed partial class ChatSystem : SharedChatSystem { if (TryProccessRadioMessage(source, message, out var modMessage, out var channel)) { - SendEntityWhisper(source, modMessage, range, channel, nameOverride, hideLog, ignoreActionBlocker); + SendEntityWhisper(source, modMessage, range, channel, nameOverride, hideLog, ignoreActionBlocker, isFormatted); //sunrise-edit return; } } @@ -263,13 +266,13 @@ public sealed partial class ChatSystem : SharedChatSystem switch (desiredType) { case InGameICChatType.Speak: - SendEntitySpeak(source, message, range, nameOverride, hideLog, ignoreActionBlocker); + SendEntitySpeak(source, message, range, nameOverride, hideLog, ignoreActionBlocker, isFormatted); //sunrise-edit-hg break; case InGameICChatType.Whisper: - SendEntityWhisper(source, message, range, null, nameOverride, hideLog, ignoreActionBlocker); + SendEntityWhisper(source, message, range, null, nameOverride, hideLog, ignoreActionBlocker, isFormatted); // sunrise-edit break; case InGameICChatType.Emote: - SendEntityEmote(source, message, range, nameOverride, hideLog: hideLog, ignoreActionBlocker: ignoreActionBlocker); + SendEntityEmote(source, message, range, nameOverride, hideLog: hideLog, ignoreActionBlocker: ignoreActionBlocker, isFormatted: isFormatted); //sunrise-edit break; } } @@ -523,7 +526,8 @@ public sealed partial class ChatSystem : SharedChatSystem ChatTransmitRange range, string? nameOverride, bool hideLog = false, - bool ignoreActionBlocker = false + bool ignoreActionBlocker = false, + bool isFormatted = false //sunrise-edit ) { if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker) @@ -553,13 +557,13 @@ public sealed partial class ChatSystem : SharedChatSystem } name = FormattedMessage.EscapeText(name); - + if (HasComp(source)) isFormatted = true; //sunrise-edit var wrappedMessage = Loc.GetString(speech.Bold ? "chat-manager-entity-say-bold-wrap-message" : "chat-manager-entity-say-wrap-message", ("entityName", name), ("verb", Loc.GetString(_random.Pick(speech.SpeechVerbStrings))), ("fontType", speech.FontId), ("fontSize", speech.FontSize), - ("message", FormattedMessage.EscapeText(message))); + ("message", isFormatted ? message : FormattedMessage.EscapeText(message))); //sunrise-edit SendInVoiceRange(ChatChannel.Local, message, wrappedMessage, source, range); @@ -596,7 +600,8 @@ public sealed partial class ChatSystem : SharedChatSystem RadioChannelPrototype? channel, string? nameOverride, bool hideLog = false, - bool ignoreActionBlocker = false + bool ignoreActionBlocker = false, + bool isFormatted = false //sunrise-edit ) { if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker) @@ -623,15 +628,15 @@ public sealed partial class ChatSystem : SharedChatSystem name = nameEv.Name; } name = FormattedMessage.EscapeText(name); - + if (HasComp(source)) isFormatted = true; //sunrise-edit var wrappedMessage = Loc.GetString("chat-manager-entity-whisper-wrap-message", - ("entityName", name), ("message", FormattedMessage.EscapeText(message))); + ("entityName", name), ("message", isFormatted ? message : FormattedMessage.EscapeText(message))); //sunrise-edit var wrappedobfuscatedMessage = Loc.GetString("chat-manager-entity-whisper-wrap-message", - ("entityName", nameIdentity), ("message", FormattedMessage.EscapeText(obfuscatedMessage))); + ("entityName", nameIdentity), ("message", isFormatted ? obfuscatedMessage : FormattedMessage.EscapeText(obfuscatedMessage))); //sunrise-edit var wrappedUnknownMessage = Loc.GetString("chat-manager-entity-whisper-unknown-wrap-message", - ("message", FormattedMessage.EscapeText(obfuscatedMessage))); + ("message", isFormatted ? obfuscatedMessage : FormattedMessage.EscapeText(obfuscatedMessage))); //sunrise-edit foreach (var (session, data) in GetRecipients(source, WhisperMuffledRange)) @@ -686,7 +691,8 @@ public sealed partial class ChatSystem : SharedChatSystem bool hideLog = false, bool checkEmote = true, bool ignoreActionBlocker = false, - NetUserId? author = null + NetUserId? author = null, + bool isFormatted = false //sunrise-edit ) { if (!_actionBlocker.CanEmote(source) && !ignoreActionBlocker) @@ -695,16 +701,16 @@ public sealed partial class ChatSystem : SharedChatSystem // get the entity's apparent name (if no override provided). var ent = Identity.Entity(source, EntityManager); string name = FormattedMessage.EscapeText(nameOverride ?? Name(ent)); - + if (HasComp(source)) isFormatted = true; //sunrise-edit // Emotes use Identity.Name, since it doesn't actually involve your voice at all. var wrappedMessage = Loc.GetString("chat-manager-entity-me-wrap-message", - ("entityName", name), + ("entityName", isFormatted ? "" : name), //sunrise-edit ("entity", ent), - ("message", FormattedMessage.RemoveMarkup(action))); + ("message", isFormatted ? action : FormattedMessage.RemoveMarkup(action))); //sunrise-edit if (checkEmote) TryEmoteChatInput(source, action); - SendInVoiceRange(ChatChannel.Emotes, action, wrappedMessage, source, range, author); + SendInVoiceRange(ChatChannel.Emotes, action, wrappedMessage, source, isFormatted ? ChatTransmitRange.HideChat : range, author); //sunrise-edit if (!hideLog) if (name != Name(source)) _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Emote from {ToPrettyString(source):user} as {name}: {action}"); diff --git a/Content.Server/Silicons/Laws/SiliconLawSystem.cs b/Content.Server/Silicons/Laws/SiliconLawSystem.cs index 0c0f68c23f..b38598cf1f 100644 --- a/Content.Server/Silicons/Laws/SiliconLawSystem.cs +++ b/Content.Server/Silicons/Laws/SiliconLawSystem.cs @@ -1,6 +1,7 @@ using System.Linq; using Content.Server.Administration; using Content.Server.Chat.Managers; +using Content.Server.Chat.Systems; using Content.Server.GameTicking; using Content.Server.Radio.Components; using Content.Server.Roles; @@ -38,7 +39,9 @@ public sealed class SiliconLawSystem : SharedSiliconLawSystem [Dependency] private readonly SharedStunSystem _stunSystem = default!; [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly SharedRoleSystem _roles = default!; - + //sunrise-edit-start + [Dependency] private readonly ChatSystem _chatSystem = default!; + //sunrise-edit-end /// public override void Initialize() { @@ -165,6 +168,9 @@ public sealed class SiliconLawSystem : SharedSiliconLawSystem EnsureEmaggedRole(uid, component); _stunSystem.TryParalyze(uid, component.StunTime, true); + //sunrise-edit-start + _chatSystem.TrySendInGameICMessage(uid, Loc.GetString("borg-emagged-message"), InGameICChatType.Emote, false, isFormatted: true); + //sunrise-edit-end if (!_mind.TryGetMind(uid, out var mindId, out _)) return; diff --git a/Content.Server/_Sunrise/Chat/CanFormatMessagesComponent.cs b/Content.Server/_Sunrise/Chat/CanFormatMessagesComponent.cs new file mode 100644 index 0000000000..604aa30dad --- /dev/null +++ b/Content.Server/_Sunrise/Chat/CanFormatMessagesComponent.cs @@ -0,0 +1,2 @@ +namespace Content.Server._Sunrise.Chat; +[RegisterComponent] public sealed partial class CanFormatMessagesComponent : Component {} diff --git a/Content.Server/_Sunrise/Chat/SayWithIntervalComponent.cs b/Content.Server/_Sunrise/Chat/SayWithIntervalComponent.cs new file mode 100644 index 0000000000..7db0fd80f6 --- /dev/null +++ b/Content.Server/_Sunrise/Chat/SayWithIntervalComponent.cs @@ -0,0 +1,41 @@ +using Content.Server.Chat.Systems; +using Robust.Shared.Enums; + +namespace Content.Server._Sunrise.Chat; + +/// +/// Makes this entity periodically advertise by speaking a randomly selected +/// message from a specified dataset into local chat. +/// +[RegisterComponent, Access(typeof(SayWithIntervalSystem))] +public sealed partial class SayWithIntervalComponent : Component +{ + /// + /// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1. + /// + [DataField] + public int MinimumWait { get; private set; } = 20; + + /// + /// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal + /// to + /// + [DataField] + public int MaximumWait { get; private set; } = 40; + + + /// + /// The identifier for the advertisements dataset prototype. + /// + [DataField] public string Message = "123"; + + [DataField] public string chatType = "speak"; + [DataField] public bool Format = false; + + /// + /// The next time an advertisement will be said. + /// + [DataField] + public TimeSpan NextMessageTime { get; set; } = TimeSpan.Zero; + +} diff --git a/Content.Server/_Sunrise/Chat/SayWithIntervalSystem.cs b/Content.Server/_Sunrise/Chat/SayWithIntervalSystem.cs new file mode 100644 index 0000000000..9c00ba4c60 --- /dev/null +++ b/Content.Server/_Sunrise/Chat/SayWithIntervalSystem.cs @@ -0,0 +1,90 @@ +using Content.Server.Advertise.Components; +using Content.Server.Chat.Systems; +using Content.Server.Power.Components; +using Content.Shared.VendingMachines; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; + +namespace Content.Server._Sunrise.Chat; + +public sealed class SayWithIntervalSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly ChatSystem _chat = default!; + + /// + /// The maximum amount of time between checking if advertisements should be displayed + /// + private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromMilliseconds(20); + + /// + /// The next time the game will check if advertisements should be displayed + /// + private TimeSpan _nextCheckTime = TimeSpan.MinValue; + + public override void Initialize() + { + SubscribeLocalEvent(OnMapInit); + + + _nextCheckTime = TimeSpan.MinValue; + } + + private void OnMapInit(EntityUid uid, SayWithIntervalComponent advert, MapInitEvent args) + { + RandomizeNextAdvertTime(advert); + _nextCheckTime = MathHelper.Min(advert.NextMessageTime, _nextCheckTime); + } + + private void RandomizeNextAdvertTime(SayWithIntervalComponent advert) + { + var minDuration = Math.Max(1, advert.MinimumWait); + var maxDuration = Math.Max(minDuration, advert.MaximumWait); + var waitDuration = TimeSpan.FromSeconds(_random.Next(minDuration, maxDuration)); + + advert.NextMessageTime = _gameTiming.CurTime + waitDuration; + } + + public void SayAdvertisement(EntityUid uid, SayWithIntervalComponent? advert = null) + { + if (!Resolve(uid, ref advert)) + return; + + InGameICChatType type = InGameICChatType.Speak; + switch(advert.chatType) + { + case "whisper": type = InGameICChatType.Whisper; break; + case "emote": type = InGameICChatType.Emote; break; + case "collectiveMind": type = InGameICChatType.CollectiveMind; break; + default: type = InGameICChatType.Speak; break; + } // Костыль, но InGameICChatType не указывается ингейм + _chat.TrySendInGameICMessage(uid, advert.Message, type, false, isFormatted: advert.Format); + } + + public override void Update(float frameTime) + { + var currentGameTime = _gameTiming.CurTime; + if (_nextCheckTime > currentGameTime) + return; + + // _nextCheckTime starts at TimeSpan.MinValue, so this has to SET the value, not just increment it. + _nextCheckTime = currentGameTime + _maximumNextCheckDuration; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var advert)) + { + if (currentGameTime > advert.NextMessageTime) + { + SayAdvertisement(uid, advert); + // The timer is always refreshed when it expires, to prevent mass advertising (ex: all the vending machines have no power, and get it back at the same time). + RandomizeNextAdvertTime(advert); + } + _nextCheckTime = MathHelper.Min(advert.NextMessageTime, _nextCheckTime); + } + } + + +} diff --git a/Resources/Locale/ru-RU/_sunrise/borg/emag.ftl b/Resources/Locale/ru-RU/_sunrise/borg/emag.ftl new file mode 100644 index 0000000000..ccbc85e5c4 --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/borg/emag.ftl @@ -0,0 +1 @@ +borg-emagged-message = [font="Monospace"][color=green][scramble rate=35 length=15 chars="10 "][/color][/font] From efe11a284e19d82c88c1ed8c1a1556ee1945deec Mon Sep 17 00:00:00 2001 From: ASR_A <86105620+asrA228@users.noreply.github.com> Date: Sat, 17 Aug 2024 16:48:20 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B3=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B0=D0=B2=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D1=82=20(#295)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * new vending machine * somefix --- .../objects/consumable/drinks/drinks_cans.ftl | 4 + .../objects/consumable/food/snacks.ftl | 4 + .../reagents/meta/consumable/drink/soda.ftl | 2 + Resources/Maps/_Sunrise/Station/delta.yml | 219 +++++++++--------- Resources/Maps/_Sunrise/Station/fland.yml | 57 +++-- .../Objects/Consumable/Drinks/drinks_cans.yml | 37 +++ .../Objects/Consumable/Food/snacks.yml | 51 ++++ .../Structures/Machines/vending_machines.yml | 35 +++ .../Reagents/Consumable/Drink/soda.yml | 24 ++ .../Drinks/fourteen_loko_plus.rsi/icon.png | Bin 0 -> 646 bytes .../fourteen_loko_plus.rsi/icon_open.png | Bin 0 -> 639 bytes .../fourteen_loko_plus.rsi/inhand-left.png | Bin 0 -> 247 bytes .../fourteen_loko_plus.rsi/inhand-right.png | Bin 0 -> 249 bytes .../Drinks/fourteen_loko_plus.rsi/meta.json | 53 +++++ .../Drinks/lukins_drink.rsi/icon.png | Bin 0 -> 528 bytes .../Drinks/lukins_drink.rsi/icon_open.png | Bin 0 -> 538 bytes .../Drinks/lukins_drink.rsi/inhand-left.png | Bin 0 -> 4557 bytes .../Drinks/lukins_drink.rsi/inhand-right.png | Bin 0 -> 4565 bytes .../Drinks/lukins_drink.rsi/meta.json | 53 +++++ .../Food/snacks.rsi/menergybar-open.png | Bin 0 -> 587 bytes .../Food/snacks.rsi/menergybar-trash.png | Bin 0 -> 605 bytes .../Consumable/Food/snacks.rsi/menergybar.png | Bin 0 -> 429 bytes .../Consumable/Food/snacks.rsi/meta.json | 20 ++ .../VendingMachines/mayson.rsi/broken.png | Bin 0 -> 940 bytes .../mayson.rsi/deny-unshaded.png | Bin 0 -> 779 bytes .../mayson.rsi/eject-unshaded.png | Bin 0 -> 855 bytes .../VendingMachines/mayson.rsi/meta.json | 52 +++++ .../mayson.rsi/normal-unshaded.png | Bin 0 -> 1052 bytes .../VendingMachines/mayson.rsi/off.png | Bin 0 -> 920 bytes .../VendingMachines/mayson.rsi/panel.png | Bin 0 -> 244 bytes 30 files changed, 486 insertions(+), 125 deletions(-) create mode 100644 Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/drinks/drinks_cans.ftl create mode 100644 Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/food/snacks.ftl create mode 100644 Resources/Locale/ru-RU/_sunrise/reagents/meta/consumable/drink/soda.ftl create mode 100644 Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Drinks/drinks_cans.yml create mode 100644 Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Food/snacks.yml create mode 100644 Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon_open.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-left.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-right.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/meta.json create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon_open.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-left.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-right.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/meta.json create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-open.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-trash.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar.png create mode 100644 Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/meta.json create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/broken.png create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/deny-unshaded.png create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/eject-unshaded.png create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/meta.json create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/normal-unshaded.png create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/off.png create mode 100644 Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/panel.png diff --git a/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/drinks/drinks_cans.ftl b/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/drinks/drinks_cans.ftl new file mode 100644 index 0000000000..f8956d397f --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/drinks/drinks_cans.ftl @@ -0,0 +1,4 @@ +ent-DrinkFourteenLokoPlusCan = банка Фоуртин Локо плюс + .desc = Ремейк от Мэйсона Миллера популярного напитка Фоуртин Локо, но также как и в оригинале, пожалуйста пейте ответственно. +ent-DrinkLukin = банка напитка Лукина + .desc = Не очень известный алкогольный напиток Лукина. Он обладает лечебными свойствами в деле телесных повреждений, но не стоит пить слишком много... \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/food/snacks.ftl b/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/food/snacks.ftl new file mode 100644 index 0000000000..34f7b93940 --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/prototypes/entities/objects/consumable/food/snacks.ftl @@ -0,0 +1,4 @@ +ent-FoodSnackMaysonEnergy = энергетический батончик Мэйсона + .desc = Энергетический батончик состоящий из натуральных химикатов! +ent-FoodSnackMaysonEnergyBar = энергетический батончик Мэйсона + .desc = Энергетический батончик состоящий из натуральных химикатов! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_sunrise/reagents/meta/consumable/drink/soda.ftl b/Resources/Locale/ru-RU/_sunrise/reagents/meta/consumable/drink/soda.ftl new file mode 100644 index 0000000000..8b3ecb9bfb --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/reagents/meta/consumable/drink/soda.ftl @@ -0,0 +1,2 @@ +reagent-name-fourteen-loko-plus = фоуртин локо плюс +reagent-desc-fourteen-loko-plus = Сильно переработанная жидкая субстанция с элиментами стимулирующих веществ, едва ли соответствующая межгалактическим стандартам безопасности для безалкогольного напитка. \ No newline at end of file diff --git a/Resources/Maps/_Sunrise/Station/delta.yml b/Resources/Maps/_Sunrise/Station/delta.yml index e22fa30e75..eb5abb5442 100644 --- a/Resources/Maps/_Sunrise/Station/delta.yml +++ b/Resources/Maps/_Sunrise/Station/delta.yml @@ -191584,6 +191584,28 @@ entities: - type: Transform pos: 41.438423,17.514713 parent: 2 +- proto: MagazineM16A4 + entities: + - uid: 27364 + components: + - type: Transform + pos: 70.38411,8.32258 + parent: 2 + - uid: 27365 + components: + - type: Transform + pos: 70.38411,8.32258 + parent: 2 + - uid: 27366 + components: + - type: Transform + pos: 70.38411,8.32258 + parent: 2 + - uid: 27367 + components: + - type: Transform + pos: 70.38411,8.32258 + parent: 2 - proto: MagazinePistol entities: - uid: 27352 @@ -191646,28 +191668,6 @@ entities: - type: Transform pos: 59.5,9.5 parent: 2 -- proto: MagazinePistolSubMachineGunTopMounted - entities: - - uid: 27364 - components: - - type: Transform - pos: 70.38411,8.32258 - parent: 2 - - uid: 27365 - components: - - type: Transform - pos: 70.38411,8.32258 - parent: 2 - - uid: 27366 - components: - - type: Transform - pos: 70.38411,8.32258 - parent: 2 - - uid: 27367 - components: - - type: Transform - pos: 70.38411,8.32258 - parent: 2 - proto: MagicDiceBag entities: - uid: 27368 @@ -234353,6 +234353,13 @@ entities: - type: Transform pos: 37.5,2.5 parent: 2 +- proto: VendingMachineMayson + entities: + - uid: 452 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 - proto: VendingMachineMedical entities: - uid: 34227 @@ -260782,6 +260789,13 @@ entities: - type: Transform pos: -27.5,-50.5 parent: 2 +- proto: WeaponAKMSRifle + entities: + - uid: 39292 + components: + - type: Transform + pos: 40.57007,17.532423 + parent: 2 - proto: WeaponCapacitorRecharger entities: - uid: 39244 @@ -261103,7 +261117,44 @@ entities: rot: 3.141592653589793 rad pos: -45.5,8.5 parent: 2 -- proto: WeaponDisabler +- proto: WeaponDisablerPractice + entities: + - uid: 39269 + components: + - type: Transform + pos: 58.486435,16.114597 + parent: 2 + - uid: 39270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.59685,15.98753 + parent: 2 +- proto: WeaponEarthGovLaserCarbine + entities: + - uid: 39272 + components: + - type: Transform + pos: 67.5,9.5 + parent: 2 + - uid: 39273 + components: + - type: Transform + pos: 67.5,9.5 + parent: 2 + - uid: 39274 + components: + - type: Transform + pos: 67.5,9.5 + parent: 2 +- proto: WeaponEarthGovLaserSniper + entities: + - uid: 39271 + components: + - type: Transform + pos: 67.5,9.5 + parent: 2 +- proto: WeaponEnergyGunMini entities: - uid: 39266 components: @@ -261121,43 +261172,6 @@ entities: - type: Transform pos: -45.51563,8.636579 parent: 2 -- proto: WeaponDisablerPractice - entities: - - uid: 39269 - components: - - type: Transform - pos: 58.486435,16.114597 - parent: 2 - - uid: 39270 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 58.59685,15.98753 - parent: 2 -- proto: WeaponLaserCannon - entities: - - uid: 39271 - components: - - type: Transform - pos: 67.5,9.5 - parent: 2 -- proto: WeaponLaserCarbine - entities: - - uid: 39272 - components: - - type: Transform - pos: 67.5,9.5 - parent: 2 - - uid: 39273 - components: - - type: Transform - pos: 67.5,9.5 - parent: 2 - - uid: 39274 - components: - - type: Transform - pos: 67.5,9.5 - parent: 2 - proto: WeaponLaserCarbinePractice entities: - uid: 39275 @@ -261175,14 +261189,7 @@ entities: - type: Transform pos: 58.470814,18.520847 parent: 2 -- proto: WeaponPistolFlintlock - entities: - - uid: 39278 - components: - - type: Transform - pos: 23.562122,59.322018 - parent: 2 -- proto: WeaponPistolMk58 +- proto: WeaponPistolACP14 entities: - uid: 39279 components: @@ -261244,21 +261251,28 @@ entities: - type: Transform pos: 58.475845,17.747644 parent: 2 -- proto: WeaponRevolverMateba +- proto: WeaponPistolFlintlock + entities: + - uid: 39278 + components: + - type: Transform + pos: 23.562122,59.322018 + parent: 2 +- proto: WeaponRevolverMatebaNew entities: - uid: 39291 components: - type: Transform pos: 36.47151,18.549223 parent: 2 -- proto: WeaponRifleAk +- proto: WeaponRifleBR64 entities: - - uid: 39292 + - uid: 39304 components: - type: Transform - pos: 40.57007,17.532423 + pos: 70.4,10.5 parent: 2 -- proto: WeaponRifleLecter +- proto: WeaponRifleFamas entities: - uid: 39293 components: @@ -261275,7 +261289,29 @@ entities: - type: Transform pos: 65.497795,9.494064 parent: 2 -- proto: WeaponRifleM90GrenadeLauncher +- proto: WeaponRifleM16A4 + entities: + - uid: 39306 + components: + - type: Transform + pos: 70.530876,8.579602 + parent: 2 + - uid: 39307 + components: + - type: Transform + pos: 67.483315,7.629155 + parent: 2 + - uid: 39308 + components: + - type: Transform + pos: 67.46212,7.55103 + parent: 2 + - uid: 39309 + components: + - type: Transform + pos: 70.530876,8.579602 + parent: 2 +- proto: WeaponRifleM28 entities: - uid: 39296 components: @@ -261313,7 +261349,7 @@ entities: - type: Transform pos: -1.6446036,36.6353 parent: 2 -- proto: WeaponShotgunEnforcer +- proto: WeaponShotgunSPAS12 entities: - uid: 14920 components: @@ -261322,7 +261358,7 @@ entities: - type: Physics canCollide: False - type: InsideEntityStorage -- proto: WeaponShotgunKammerer +- proto: WeaponShotgunTrenchgun4034 entities: - uid: 39301 components: @@ -261339,42 +261375,13 @@ entities: - type: Transform pos: 65.5,8.5 parent: 2 -- proto: WeaponSniperHristov - entities: - - uid: 39304 - components: - - type: Transform - pos: 70.4,10.5 - parent: 2 -- proto: WeaponSubMachineGunDrozd +- proto: WeaponSubMachineGunMP7 entities: - uid: 39305 components: - type: Transform pos: 65.5,7.5 parent: 2 -- proto: WeaponSubMachineGunWt550 - entities: - - uid: 39306 - components: - - type: Transform - pos: 70.530876,8.579602 - parent: 2 - - uid: 39307 - components: - - type: Transform - pos: 67.483315,7.629155 - parent: 2 - - uid: 39308 - components: - - type: Transform - pos: 67.46212,7.55103 - parent: 2 - - uid: 39309 - components: - - type: Transform - pos: 70.530876,8.579602 - parent: 2 - proto: WeaponTurretHostile entities: - uid: 39310 diff --git a/Resources/Maps/_Sunrise/Station/fland.yml b/Resources/Maps/_Sunrise/Station/fland.yml index 127bd67731..87aaf48811 100644 --- a/Resources/Maps/_Sunrise/Station/fland.yml +++ b/Resources/Maps/_Sunrise/Station/fland.yml @@ -98426,7 +98426,7 @@ entities: - type: Transform pos: 99.5,21.5 parent: 13329 -- proto: CryogenicSleepUnitSpawner +- proto: CryogenicSleepUnitSpawnerLateJoin entities: - uid: 27927 components: @@ -98434,8 +98434,6 @@ entities: rot: 3.141592653589793 rad pos: 97.5,21.5 parent: 13329 -- proto: CryogenicSleepUnitSpawnerLateJoin - entities: - uid: 27929 components: - type: Transform @@ -196423,6 +196421,20 @@ entities: - type: Transform pos: 33.5,42.5 parent: 13329 + - type: ContainerContainer + containers: + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + mixer: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: VendingBarDrobe entities: - uid: 1186 @@ -196853,6 +196865,13 @@ entities: - type: Transform pos: 72.5,36.5 parent: 13329 +- proto: VendingMachineMayson + entities: + - uid: 33992 + components: + - type: Transform + pos: 63.5,5.5 + parent: 13329 - proto: VendingMachineMedical entities: - uid: 10261 @@ -220701,6 +220720,14 @@ entities: - type: Transform pos: 93.5,-38.5 parent: 13329 +- proto: WeaponAKMSRifle + entities: + - uid: 10496 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.367424,20.732126 + parent: 13329 - proto: WeaponCapacitorRecharger entities: - uid: 2216 @@ -220905,14 +220932,6 @@ entities: - type: Transform pos: 17.56414,13.463523 parent: 13329 -- proto: WeaponAKMSRifle - entities: - - uid: 10496 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 35.367424,20.732126 - parent: 13329 - proto: WeaponRifleFamas entities: - uid: 10666 @@ -220930,6 +220949,14 @@ entities: - type: Transform pos: 19.43914,12.321453 parent: 13329 +- proto: WeaponShotgunHandmade + entities: + - uid: 5418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.140755,78.51152 + parent: 13329 - proto: WeaponShotgunSPAS12 entities: - uid: 10632 @@ -220947,14 +220974,6 @@ entities: - type: Transform pos: 16.616808,11.387669 parent: 13329 -- proto: WeaponShotgunHandmade - entities: - - uid: 5418 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -39.140755,78.51152 - parent: 13329 - proto: WeaponSubMachineGunMP7 entities: - uid: 1348 diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Drinks/drinks_cans.yml new file mode 100644 index 0000000000..836439eeab --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -0,0 +1,37 @@ +- type: entity + parent: DrinkCanBaseFull + id: DrinkFourteenLokoPlusCan + name: Fourteen Loko Plus can + description: A remake of the popular drink Fourteen Loko. But just like the original, drink responsibly. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: FourteenLokoPlus + Quantity: 30 + - type: Sprite + sprite: _Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi + - type: Item + sprite: _Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi + +- type: entity + parent: DrinkCanBaseFull + id: DrinkLukin + name: Lukin's drink + description: Brother Lukin's not very famous alcoholic drink. It has medicinal properties to heal bodily harm, but don't drink too much. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Aloe + Quantity: 16 + - ReagentId: Bicaridine + Quantity: 14 + - type: Sprite + sprite: _Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi + - type: Item + sprite: _Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Food/snacks.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Food/snacks.yml new file mode 100644 index 0000000000..82518c8871 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Consumable/Food/snacks.yml @@ -0,0 +1,51 @@ +- type: entity + name: menergy bar + parent: FoodSnackBase + id: FoodSnackMaysonEnergy + description: Mayson's energy bar + components: + - type: Sprite + sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi + state: menergybar + - type: Item + - type: SpawnItemsOnUse + items: + - id: FoodPacketMaysonEnergyTrash + - id: FoodSnackMaysonEnergyBar + sound: + path: /Audio/Effects/unwrap.ogg + +- type: entity + name: menergy bar + parent: FoodSnackBase + id: FoodSnackMaysonEnergyBar + description: Mayson's energy bar + components: + - type: FlavorProfile + flavors: + - chocolate + - nutty + - sweet + - type: Sprite + sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi + state: menergybar-open + - type: Item + - type: SolutionContainerManager + solutions: + food: + maxVol: 30 + reagents: + - ReagentId: Nutriment + Quantity: 10 + - ReagentId: Epinephrine + Quantity: 10 + +- type: entity + categories: [ HideSpawnMenu ] + parent: FoodPacketTrash + id: FoodPacketMaysonEnergyTrash + name: energybar wrapper + components: + - type: Sprite + sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi + state: menergybar-trash \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/_Sunrise/Entities/Structures/Machines/vending_machines.yml index 608616b898..bd07dd815a 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Structures/Machines/vending_machines.yml @@ -27,3 +27,38 @@ shader: unshaded - state: panel map: ["enum.WiresVisualLayers.MaintenancePanel"] + +- type: entity + parent: VendingMachine + id: VendingMachineMayson + name: MaysonMil & YanLu corp + description: A vending machine containing products of the company "MaysonMil & YanLu". + components: + - type: VendingMachine + pack: MaysonYanInventory + dispenseOnHitChance: 0.25 + dispenseOnHitThreshold: 2 + offState: off + brokenState: broken + normalState: normal-unshaded + initialStockQuality: 0.33 + - type: Advertise + pack: DiscountDansAds + - type: SpeakOnUIClosed + pack: DiscountDansGoodbyes + - type: Speech + - type: Sprite + sprite: _Sunrise/Structures/Machines/VendingMachines/mayson.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "off" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + shader: unshaded + - texture: _Sunrise/Structures/Machines/VendingMachines/maintenance_panel.png + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#6148c7" + - type: PlayerCountDependentStock # Sunrise-vend \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml new file mode 100644 index 0000000000..d5536053be --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Reagents/Consumable/Drink/soda.yml @@ -0,0 +1,24 @@ +- type: reagent + id: FourteenLokoPlus + name: reagent-name-fourteen-loko-plus + parent: BaseSoda + desc: reagent-desc-fourteen-loko-plus + physicalDesc: reagent-physical-desc-fizzy + flavor: fourteenlokosodaplus + color: "#fcf6de" + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2 + Narcotic: + effects: + - !type:MovespeedModifier + walkSpeedModifier: 1.2 + sprintSpeedModifier: 1.2 + Poison: + effects: + - !type:HealthChange + damage: + types: + Poison: 1.5 \ No newline at end of file diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..939eae747b099389e734765479d367053a83c2fc GIT binary patch literal 646 zcmV;10(t$3P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0vkz0K~z{r?UheR z6j2<*|UHW@fgB*!7_8N-3DopY2i^;;oK)@K6^a(4$0(7bBuu9>q(44jsfx z(7^%^hN(px(jjbdg=$#H$l2Zb^W1s+8VowjZ$UaVA9(zJ@BMzf_hsI1eh&cw0sk6F zSP~c0H<)leUM)VWYA;z>-?)bl-x}ope)~63eh3Nci~WZK498lUJ$t6R6M5ab`(-mT zQHlG5`~^Cbap3{0E9=7hbDaW7!0GN3QYRa|!`4>bbNhSl#t)R`*mZV$Y>F{M=i^;w z!yE3p8yBg*Ayw|AoMt2aIZU(-@p;59qUCrq3MCU4W|r_`>pSi^i=;hi0wkGT>1jpc zga)Z80XR0CuQ|R+){0_&Awm{FF2dH!KT$uohV64**twR5(U(B&<5gIRaQTOLEwcPW z5)kjw0JRQKB5+O(Vb_#!Wbi38RfVl@iYyu=0i{B@#>`((6d6Z9P9r`rhV6Sj{3@b{ z6~sDJk?9|jfNaKuq}I5-2Tpbg`h#{TFd)e?!co%IdyoW#BNCWxmj&2hjs<3wpfwzV zT{NKUbzC47k^ni>i`^~Y$4nC8Hx5`~2inU#-d<|Q#`Di2iv~$R?&ekGKh(f^l!Ro; zs9kTwr*Fkd&^V9$=w!t|Namg_@Q$~9HpXV_``Bz#ln=KPiWCx6RgNn{xZZ>G@cwvp gRTvNu@Sg+h0sCFV0G=|2hyVZp07*qoM6N<$f&$wd0RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon_open.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon_open.png new file mode 100644 index 0000000000000000000000000000000000000000..9f1d740e428350a677a9c57ac8f06c249cde4b32 GIT binary patch literal 639 zcmV-_0)YLAP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0u)I^K~z{r?Up-e z6hRor|1-C{m&>h~z^MrF3P}`{O9+Zjg0b-dcA{XTg@tJXzRD;h*oYSCyhaj&s06W) zG=jw`SVZC_kpzN;NVtHH<3Pn+Hg~&UcINiv(&byRa(^&<-#m8aw==V_h=_>z8?N5G zLqQrE5kwZpde2k${!UC!eLy|F&W(qfO9pYnsKqb$UDSDFRPDOLgeB0pxO(fx7*>M4 z16`SR9sMoG!|a%jih4U2mVi3%&Yh`s5{i0V^>bkfTo|9lwOd&&LFFQ5=NEKQjEp?f z{ajc#cS!b9|CuEW?z*Jwk_esX#A;JL6{4W##)wSf#+ z0*mt%2(wA8?=M=#mwUTmpbQ};;x_B(|G*N6Cj`iKeE}Eb3s7|x*5($tP8r2wQVVin z3CP%CEEj+u*$m?EJkZKdSg%TWe|!%Xo_`8P@n8uoT{(r)Tob$p8HkER^GpgKzd5ze zat}&3hHCl0WbEk#O{UM$Hb2|N5P$N@>Sz(p!3l5WG=YT$8@O1TaS?83{1OSm&ZMgsd literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-right.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8548832a0f28043f73d5f00979dc18f3e6468a GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=2RvOILn`LHy|t0I*+8K6;q#sr z+sS8*co=S9V7`1IzRN}P(v1kNgs1tk31QDqO;=c6WA$h0 p)VYoGvl4-vUCb(m-RwZG9GPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0i{VqK~z{rV;BXa zU=)mkfd-6Fnj{dF+3_FBgo9<%E66g7WB{^!`~H*vpS}8kg4MKLFdRh;Aj#Dr%gv0H z8Pt{K7#6SE4;F**^|jR*92`R!Ze86&l9^0UnrIN_=L)7l79)dIn|4E4qyds#>)2fY z4(6rt4PZVDT)cXdA!=zc1H(rKhWD$FkYpyw4u~w_U|8Ps1I)kh@I06X0lVb?42RnO zk?a7HqhRZWV+?swKN$9X+0HPpLX)9$vLzUwIP?apf;2#~13-ZH{Z}x3@b)FJgFu*E zK$ZizKS844KUum_0a->oRT2Tyf1t5VZt#NuSq>0=`W{Sk{~@dFK>=hrK=AcvFsPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0k26!K~z{rV;BXa zU=)l3YJg|2KKzF=Nd}Binj{dF*@0rAnXxjME=UO_%RG_*$nx#`PyPq_8iXgzSq;W& z+Ad^;0uz)b3V|et`jw48N00@Nnxq@k+ufa43s4L4ctlG32 z$|DVs6ladz1z;a8jc)++Vc_D`n+#D)iy0U`GBCVfeS{=4Np?VF2?xXSo*!WTg@@s0z{m$qoPkfj6HS znE(7^*n0I8*g+snE+ESRyzjq(X~}PY!89d+EC<}zl4AG^jOjnn*d{mlL4Yg=uz&x> zzy!<>+<(X_dr$yb4p6-I43d9<_KSZ1%b@$0e20+bfVYzTV7lYbJBHai-!Sa{_z%n{ z2ax4}*HVHEv7Vv~wKjqbp8QM&AJQUCw| literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-left.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..3c03c07742b267655d40be9d93adefed258463bc GIT binary patch literal 4557 zcmeHLeNYtV8DIS15QC)#i!nylC3QmU-tE_YZ8<*V4mixo70x0Kj_mEe2P=2C$L_)% zRHBvCL`;dAOrnT2i6-qN!5W=3osw81D7L22soJz8(bQ7W7%v&#hF#nOGr=sWt}j8kG$~i4HaD**JmqFd*Dpbc?5}T z7W4Al&b+*lieMe>OJOWKwf)2|T7FcPFn3Av;g`A}x9uqZ;E1yJ)2^P6Iv+cEEo-R%Qd#1nscW&? zXD)AayqlZZDPC?L+SK*t;*9S8?&soHZTV{Jl>;ZF_NB9CX3~D)^!0Ae`_`GGa_YeY zFV8-iT#&MS&)S9k2aYssKDe^u;0@c&nR(L#-|nhw;|nWiIQODU@*kPw;T9IXk>9e3 z8R)Uy-qV`x(C?_2L&%F?il4LXue!U<=Ra*bdO5?Kk)mr{?Z3s(PxxX=$Hu_Aw2$kr zO#3o>YT3%3)iqO;-FwaK%D#lTe~Q=d`(E3-x{5(0z4+HcVQb&dGEz1lzV%R3>4Le3 zrf;YTN&`*pSxEWkYi`C{EYlVhJ^$X|-vW^x#z;T`K=1=^vG+5oFeK5ejUD z>v5Ks0(wr6yg(lbgrM>eBr`h_;`kb%qFzuX25s2Y&fj3DDA=$vql<8b@<6p%*eHY2 z#$_J9v4*z_Saw!oW`u>! zPM3Q$LZhHc41}UlknC}us_45%*0|iXk!U$%6M^BQxZ}J>YL7ZYFPDq8OMIP{p3`o_ zwE0;<;zfat-dbpi0AAjUle9qM49{~oXC*B-O#_A!teilZ!5AoKP*J%c4>TwUt`{K= zplJ(lq8Xg>Ss0w*fEVX1Rx?gBW{b&U1UzA~j)5qaMW{;7KQ=23N`O!l!wICo7;ztI zf>5LYp=iQ~TL{W*rmRMb*+@m91fI>8rD)b@ z#0euyjPaKQ(bw?bytU?!u>7o&>_MWf4t<@i_$3Re$= zXr2%&HpEwR!72dvk72=%*u}3AgFpx*$C%8xMIfP`j9%D5-bCWiEciH+7g(8?7)H?* z$)|=n8RS+$9wApypi!>S$A(*#F+Q7cHPHG1DZ>d0CrJ-QvJ~XbgcY&k5;&SOo4n)G{U6I4Rm5m{nFeh`9BF2z;Xm3Pa~QLOLRw-r zxHH3z-Y~k;5Ay|EaX*h?ncdGRP;_#V3Gq8g*CbsNVqikflj@qJYeEc6$azv-|2Mi4 z?|mzRAbi0K!!N;e#;@Q9CKB&mT3|;CkZReE zI$aLkr75$MQZ3IFxhtV*yVIWQiS!QilHY93Ntt%4IOUZ4`=li&XR$qg5wT&$-kjX# zolECT-O;(DB2s+#!*hmxy$LXG{Z3Kd*m0%pHL>OCr<>06KkdJmN^iElll5L}75h%s z*)2O){dU{#^u7<9KDqOajWhaS@%Gxz%004O=V~8#XSem+pT&flSLHvfFm{jpW6l2d-^jia z7F>765AJ;PTFuR^Rzquba{7_qTV>0)n_J^ce|)<6t=9&V&g>k%%Ael(YD;zf$eE{n z$K2`prhw(IR}W~DdOX>E*o&VI_VVmQweII0_&P8+=W1G1 zL2>u`vf2J!trT5+DR%L>XvN{jnm&nHH-sdw`IyUXxU@edaZCH{CDr-M79XEmQ|9qr zscue1ihg+ZReebbRQ-FUH=X;TToE@RICbCA|nT|4APDtI+ZU&3fGm zhV$BiBINc#;~|J4E#za^G9aRM;N(3<`Ec6_Im&ZJd4a})TYQN$B@YMdcNLjpGt88qZ}dHi(9C=c_}@Lpf zBEpdc{H(zHMBeK`B~Hfftq_fJIqXNr@^kwvmT`KIe^dpihcd+Yl!O9Ty4}jj5q{AW zfFz>{{c42Y2A8Qa5BR+m0t-w5;1QE2Q*i8fystuVh0EbsC2#>Zg!wv_QW0o*@E4LjD(|B4wjdP+-DS{9>NJAtVw%8uzdEdlMt=~=Cw;21qSmEG@k zh(SgG=}xF4)Cw9jtQGq3=v1Xl#Rp4)G!IZR3@0&yu#p5!k~FE8EAM`Jte#b|b`D?^ zp@9Yk4ieLo1i%QjonUZEjYG>%P4|B+Z`={%UN8wv!wEgj%EF=dhMK)~PER()<+~dnF@*~K+h0-|-X=+{!8)HPX z#T4`X>;zfTZ`FVUY&{(-LCvPsS%))9YW@wAZC;Q7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/meta.json new file mode 100644 index 0000000000..c64c5c65b4 --- /dev/null +++ b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Modified from https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi, by asr_aa", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_open" + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-open.png b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-open.png new file mode 100644 index 0000000000000000000000000000000000000000..89670140f2a2efd907c569c54880803e881324a9 GIT binary patch literal 587 zcmV-R0<`^!P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0mey0K~z{r?b6R{ z(_kFO@pqD?YqK@2dTA%?#STFa3J$zE1O-omUcC4p_~$6%Uob=vFCND5=mxqUDAP(^ zJy=Dr~glI2%pQnTG`bMUsjF5f_&=lOoV4-bh%B9Ta(c|ugD>QtWi&U_cS(?_3$ zi>k!1<>8#ql9vp0PeHX+M8C&@Vo)>-WXjK{o-amqB5VJ#ubChJHu|uPdUOM8)xmvx zK;z8WfeVeDl8U)Shd8hlv9}~n15K2>E|5cf`rGsPRUb}*(u3&j0?#m72K^Jo- zkFy%w&`+6WO^bF;7B4_B)#1547H(H5cHiS{d?EFDmy-3JVrL!6w|HbW$*(UlG)#o* zWqQ#qOcN_Wy;={3_OR>`hr>3%OD4^Fg+Z@@pB70yDDZCUF0ywVJSvBgaYXi}PGx5; zI^o}9J;J@Udw#F{jg;XA(-(1Pa_HMXuq4>I^$;PIVR;coa~ZDk3{O;WzDneBb6mRf zX=0C90e)?+_^oCGQTFi-9YM*HRp#j%0|u1FYqXArn)bLrYy3YHuK6zkLc6b*{4l^t z!lvI6;>1s;*b3=DjSL74G){)!Z!h8vzPjv*25$r7xK6GVC{4sa~(WczPD^S}MJ zLWa#x*L?~5sSZ2iB$?6k?yxz}vCN1T5%hhy)?!><4nMd`nH5;o0Fr3($z|hn5fB&C<%|X^3ZHX(4ni$r| zw=86c=15?epk%?2{f~8!F7J!v*w%j;+6(`9yTsXlQ1}MeeS@C6K&>tj(oP3Cxy<4{ruF}X#0*~ z#@XX`g37W95+>>AWOiuF#%*iPEOC!`lDw=Yg@MadL-@Kx(-Ip-|@Da;cXPZZ2h=4fRxYklQU+#bhNr6H oZsMgEF9IW;FEzq5&DWPf3&`dGVi33#JQ+lJy85}Sb4q9e0Plz9Jpcdz literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar.png b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar.png new file mode 100644 index 0000000000000000000000000000000000000000..ba1161889861b73d7a0f008ccbe275a5517648b2 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!1`SUa$B+p3WC_;A2_ijBfd-Elm8Trz{&#)# z|8}EJww_+|PNUfilqNjA@A`9r4IA6yY1%y3^J~*Dggj2M2w%)BdX#0(dV9gA9BLZ9 zO!xNZ{QUppW3oXTS0m%5rwUR>+8NL7xLhE0tZgQv5x-6YYeFdl$B7ds8Vq?3=(w|; z==-tngoxka8wP)y9+|qhvU4%)l;LRzT%dUH=l}oeY;z=3{^xdSuCfS_=b0eGq`-S( zpF8^kjRR~6``TL>IBY6EwQLgjVd2Z~@lQ$8`HLgNK7j+Tj3%_{?|*dg&HQc|iF+S7 z8g4FOn5Zu=apN&x!%dqU?!q>vu!EMx&kn@C`LJnj4!exN`j$@;5_oce0F%S>A?w}ToItje+m1`G^K?LX|vVmtK-7?6Ca5uRzjz6@GGHU|)cz@^~H OAj;F#&t;ucLK6TtWSmR@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/meta.json new file mode 100644 index 0000000000..506dbf411f --- /dev/null +++ b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24,", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "menergybar" + }, + { + "name": "menergybar-open" + }, + { + "name": "menergybar-trash" + } + ] +} diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/broken.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..761bb14d3af7e690da83c1e678e557dcaa67cf57 GIT binary patch literal 940 zcmV;d15^BoP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D11CvDK~z{r#g<)5 zRACUuXEk3?T;GW-^C-r8lUgDPUMObLl}ZHBT}dAx@HP-XfZrgx=^}zI(r&`iRy6QN zsntR;-1Q|RHp^C&aMRQNXV1v#cwU|p3;kf2ndj^}|7V^#j~gHxwgxZjMwn5mM&?h{ za};n?SVs#xb;gQ6v|C@<$DW>M-(0dp`rf9kfGoo+alLfZh@4URj2UGC_`@%M^ck5m z_)Nq2ESm~S0{rf3si%!i1y2F8bC_QtD!2-$sVS#*{Std?>|~|I1;)3D!8C;%DyVI7oAa{#L-rsrysY*bihzHmy?mCQ6eg(qo5p#l zG|t|afSE0g?oX^3E9wk&b<*%;*vL|M!ES=y-fmzKb^<(ya8A=4&H7x>E;LeS^A|1- zqyu(%3TTPN{_?%eoz&md#d)%^o8t#J@A5Mtwi2Q6yECK}1v#JEtYvS9QU_23#TtY4 zl%;3U^Y@edERy&{hpDEHjZbqf3=9r(7o-DjcnSck(RD5+VE1SH1~^_@U1x9R(Z~pQ zK|0`uk^q3+gN@Ng+zosYYi3~r&Of6a$cel@E>xY`Ir7865$8A_Db z$ANrpb(0HAN6c@5%m6y!h4K-g2nyEKp647f)~fpNP;XBMuL&{(=!6%_0ssmEDGma9 zHhVJ}odL97&R<$?Zg(uYmU<1Rj4Vw?X8^?@0rLo}QU_2N!v_(# zgisvQ4-Y|jZhi}_H=!F!9Y7%%ic2B64MmXoSkM8O3Q8R?o86k25T2i5Q^ED$F}PS6 zr}$nz$8Hqo?$DlINgtci7gTFxo8rl8itnaNbexNl@81I`9?aRN*2f3N6K9^?s6H+( zXmjbGXAt2e!1V|g;+2$0rvHfCZdSv(73^M$zbX4bi#3ZJ+usHWu5Np|I?}q0L0F|F+<|DYe{GBF3WfYA@Ilp&MOnKSA{m+0Z=u|K-Ko4_& za*l%L82A=ogc-$7z<-A54|u_@tTg_WssI204rN$LW=%~1DgXcg2mk;800000(o>TF O0000I(`Ds5)f}EUr*H{mjf2ywlY)Wjq39p;AU9l_=%IQO(`W8IiYMm+R5fwRBi_0(wh&CCHt^oz*>LI<4kRN{3shBM1& zBa@rWR}HoV@{?X}1~xp^x@Jaz5q(o5AQp`xs{oN`9LWz!^_iRMY{0?`&(-_9Ux=9z zU_{^4r+|?pWG1rpg%MDgfb=9GGb6x=elZasJPB^E8UU*J)c~G+^1$m^g5fodz^gFY zLf`T11aRD+K~@=*auPJ6U(88R=m0$Wn!m0GdglAk@S_j?lcpS8^%IOS94f{#y-3y< zdWtVx$|%b8Ch9r}{m+mCY_JDQAqUuC50+B)4j>4EAP9mW2%MqfaMOb zx;{WQwyzJ6jqU3LWMljK0NL2SKEQGZSY97M5ClOG1VKmuz+ZF{9>G{%D@FhS002ov JPDHLkV1nQ#aIOFV literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/eject-unshaded.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/eject-unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..49fcef45a1d26c31319980bb43656cba1b10d26e GIT binary patch literal 855 zcmeAS@N?(olHy`uVBq!ia0vp^2|(v(u=Y`Ly&?pN78>=`@d zn#->=Ui9GU>zICZ?#-Xv&GSFkGO>T#WHe)E+0K|$-d%IQto{*uDdM^X|MzKsZ2f;e zi>N#ld-l{@U*8$E=2No6?=@^>fBp2cd-%yH`6KIo#qh82vo`p=kuBctY_itGl+yCW z+B0vP?p_`7bJ2e@zHeoZuN{_N6YI~vVVB+ZWasSZ&$e4w6}W$wNGPpc$F8x0nfIS? z%c7b8s;U~Ue%)!9P+HAz)i2-pIl_P4JGFmoi*5bXwVA`~4!>S`dh2v4=9I{|5}oCB zhCSDwOFd{>&UW~rV9dQeOx!c?or<-#X8P&({yX#T_@{bP%@15R)SYVm_lD#A?1qU2 z5}BM5T<#Nk)MxHqs`qQ-w_DNI>}GQMWPPb&Ub`;eLqJb7^_1q4jccoKe(6s9^8R_1 zgV_g-)NdMV!lz%j$-HLW`M+FNG1h!nw9+3}{JYA$KAm~lY<@<0wu_>F`mR53*laB} zVVWAxPxYMA+JEUUF6aOJ9P5zL%l}V4xnt$7Id^_d_LX10b(J1#_v>Qa(40865N3_1 z?Hg`Hti0X5Fj2R|K**>eK`V(X=+2J2_qE=0Z_&xB{`^K&uANOqd4BN4`(g3_{Tm-v z%;`4^m|1{)9!Up- z6o!Kn7%@5Jmbc#hWOQ@>$=I~;55vKLx`qUwsqzc1Uvu$3$^hgooS|iZpywBg0u6fy zgDLU~5~uhDde&}No0WK8P}iON*flnT=JM>QE`h!F_fKVXF-8fAXkBFpyI<`kz~VSV cgrS}xAXeP*+rc?`zzoCS>FVdQ&MBb@07z$kmH+?% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/meta.json b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/meta.json new file mode 100644 index 0000000000..711bdddffd --- /dev/null +++ b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/meta.json @@ -0,0 +1,52 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/1516a728931b4985c1e86f0c5995a5aa1554a1ad and modified by potato1234x", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "broken" + }, + { + "name": "deny-unshaded", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "eject-unshaded", + "delays": [ + [ + 0.1, + 0.1, + 0.8, + 0.1, + 0.1 + ] + ] + }, + { + "name": "normal-unshaded", + "delays": [ + [ + 4, + 0.1, + 0.6 + ] + ] + }, + { + "name": "off" + }, + { + "name": "panel" + } + ] +} diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/normal-unshaded.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/normal-unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..f04f2db2afef0695b6fef405d0ec35164e720163 GIT binary patch literal 1052 zcmV+%1mpXOP)- zfuN{}UqliAR6kf8ScV`9V@tEFMd{j@w6&~Fld#NKx@LLuZkj(9>`Suu%v0|V9_QV2 z&%5Wmdk^O&aF9qO5{X12k^E0lj9z>H(bu%`aD*1mU3pz@yj=F5dReR&kH@v?)9rlt zS&Wlk&Kvqzi5-0>w7J{ z9U8Z-Pg8eCHdsy3c+`DO4~uPU6x5T`e88Ck(L2S~=^u!{u@s!XFWES}~G)iNgLS$-=pCTdJ zyLZ6nlOIqIz=rJyO7!z0k_=h;&#== zTr`HN)}v?+X6Iu0BB&R?sF-sRI#a%X!y0h&fx{ep`Uz^EI-J+NO|}?5R9h=#&#Q~H zc|G}gGi$)=&Yg5^c>rhU&b;nfno)4j>U5%L(6K*_yHTykzu^WP_pai+e~4E$t|q-? zt*?5px2ItA<72SxyZlf;0blQwa--?5v$v^+a5&7q#u_p>xUOV`zH96KLW=PvAG8iv z^see72Z{tgau^2NmU?g~+tI0UQ;1H3qQ6ghw%skQz zAN@co853h&rjqgeGv)ZVqzIZxB}K3t3^O2C_;i`Omg|cpCTGCi8@-|s>N0ob#>-_T z{tdqZd)JM^I{j{xZ)Ux;dDkPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0~1L^K~z{ry_d~T z6G0fppKZ6aS`bJirCOjVU{%s3ArO%R2O>sMiHM0_jK;q}#jA-26EBkJk&6ep3IvRr zh-o}W)t=%0*a`3z3Ochs$9@ED*r5oKFXtYnDx$LRta25Gg5Ro;j8ZaB%C) zOToo#3YH2G6({pjSYtK?BLQw^vx4_UnP*JeE>IUC3p3_>UC{5~VyOHuwK2!+N}gY@ z3(^XZ;UwkZu!k3EZdGznyB)htf}G%4w3Xy%rG!F8Lbnam3Rn;eSY!^*NzBuD9-XH4 zba5%Qd3FU(TRbxXYch|Eg9|LPa~_^Nf*Y^Cu?U!0TEyq8Ug~EhKom}}tT~RzYbqcT zYD0Kv7;i>LXny#T0IzER?U0v{33$*-Zmp_ zcOQ7!S%b3tXlDC>%f5Ac%>+v-pxU$jE0*kpSydnxtnUJu{H%)PxRub^Qk4X`P9B#O zX9>^_P{&R%eFU4?>);R*jZf_ABRJppmilT1)K)Zl1cm~#LFm;^;0l@H*@YTXAP&4O zk(+?_fvuI$W2nQ8(32S!k%>7DgXgN@aJr$$@!S{TA)yxKRYJ2I#6?jjv)MS1 z7kXQRG}rd@BhK`Hp}rnF7O)mm5I9@`;h2E><_0vj97jugD{Z$VckkRpf~Xn0;ze2E zD#E@x?SgKdHS|xDn@~%sGC3ZhLq)ygu$5HY=PyOxa zYRh&J4pdww6%f%m)khYiwjS;^1yJX4!IwY3J6&Leo`9?f`g=D1H4)#=+$;e80%%cn uhC$|1h5!Hn4rN$LW=%~1DgXcg2mk;800000(o>TF0000)Lak%W8j8D}F`%{6Dw4{G(OVE4~%ksmz!2zKZgE+vF|Lz;|HvyjOe-KW$bw%uI~* z({{cxC2PTn#9vkiawiKkpW4sQQ+jp{4^LCe)!^%lnaBQ1rp-;=!z}Kxd^2;yw8Juv iYs6lqI}7QsGcq*RYDdh?PJ0P-F@vY8pUXO@geCwkfL){j literal 0 HcmV?d00001