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/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/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 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/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] 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/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 = Глава персонала 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/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 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/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/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 0000000000..939eae747b Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon.png differ 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 0000000000..9f1d740e42 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/icon_open.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-left.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-left.png new file mode 100644 index 0000000000..642fade8f8 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-left.png differ 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 0000000000..6c8548832a Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/meta.json new file mode 100644 index 0000000000..25d2f4f7e0 --- /dev/null +++ b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Sprite made by discord: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/Drinks/lukins_drink.rsi/icon.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon.png new file mode 100644 index 0000000000..069d8f9827 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon_open.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon_open.png new file mode 100644 index 0000000000..e56f071c34 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/icon_open.png differ 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 0000000000..3c03c07742 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-right.png b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-right.png new file mode 100644 index 0000000000..2f68635d90 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi/inhand-right.png differ 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 0000000000..89670140f2 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-open.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-trash.png b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-trash.png new file mode 100644 index 0000000000..9d1e0ff45b Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar-trash.png differ 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 0000000000..ba11618898 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Consumable/Food/snacks.rsi/menergybar.png differ 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 0000000000..761bb14d3a Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/broken.png differ diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/deny-unshaded.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/deny-unshaded.png new file mode 100644 index 0000000000..b8221f982e Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/deny-unshaded.png differ 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 0000000000..49fcef45a1 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/eject-unshaded.png differ 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 0000000000..f04f2db2af Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/normal-unshaded.png differ diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/off.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/off.png new file mode 100644 index 0000000000..b7174f7493 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/off.png differ diff --git a/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/panel.png b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/panel.png new file mode 100644 index 0000000000..c60f5c3069 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Machines/VendingMachines/mayson.rsi/panel.png differ 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 0000000000..00d84f0175 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/base.png differ 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 0000000000..251ecc49b3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust.png differ 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 0000000000..3b62f813e2 Binary files /dev/null and b/Resources/Textures/_Sunrise/Structures/Shuttles/big_thruster.rsi/thrust_burn_unshaded.png differ