diff --git a/Content.Server/_DV/Clothing/DamageOnUnequipSystem.cs b/Content.Server/_DV/Clothing/DamageOnUnequipSystem.cs new file mode 100644 index 0000000000..3138ef8be6 --- /dev/null +++ b/Content.Server/_DV/Clothing/DamageOnUnequipSystem.cs @@ -0,0 +1,46 @@ +using Content.Server.Chat.Systems; +using Content.Shared._DV.Clothing; +using Content.Shared._DV.Clothing.Components; +using Content.Shared.Clothing; +using Content.Shared.Damage; +using Content.Shared.Jittering; +using Content.Shared.Popups; +using Robust.Shared.Audio.Systems; + +namespace Content.Server._DV.Clothing; + +public sealed class DamageOnUnequipSystem : SharedDamageOnUnequipSystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedJitteringSystem _jittering = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly ChatSystem _chat = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnUnequip); + } + + private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) + { + // terminating check to avoid evil exception. bit weird but it's how a similar issue was fixed upstream + if (ent.Comp.UnequipDamage == null || !TryComp(args.Wearer, out var damageable) || MetaData(args.Wearer).EntityLifeStage >= EntityLifeStage.Terminating) + return; + + _popup.PopupEntity(Loc.GetString("damage-on-unequip-finish", ("item", ent), ("wearer", args.Wearer)), ent, PopupType.LargeCaution); + + if (ent.Comp.UnequipSound != null) + _audio.PlayPvs(ent.Comp.UnequipSound, ent); + + if (ent.Comp.ScreamOnUnequip) + { + _chat.TryEmoteWithChat(args.Wearer, ent.Comp.ScreamEmote); + _jittering.DoJitter(args.Wearer, TimeSpan.FromSeconds(15), false); + } + + _damageable.TryChangeDamage(args.Wearer, ent.Comp.UnequipDamage, true, true, damageable); + } +} diff --git a/Content.Server/_DV/Speech/Components/SyllableObfuscationAccentComponent.cs b/Content.Server/_DV/Speech/Components/SyllableObfuscationAccentComponent.cs new file mode 100644 index 0000000000..b92b5804d5 --- /dev/null +++ b/Content.Server/_DV/Speech/Components/SyllableObfuscationAccentComponent.cs @@ -0,0 +1,11 @@ +using Content.Shared._DV.Speech.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server._DV.Speech.Components; + +[RegisterComponent] +public sealed partial class SyllableObfuscationAccentComponent : Component +{ + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] + public string Accent = default!; +} diff --git a/Content.Server/_DV/Speech/EntitySystems/SyllableObfuscationAccentSystem.cs b/Content.Server/_DV/Speech/EntitySystems/SyllableObfuscationAccentSystem.cs new file mode 100644 index 0000000000..47c2a0f920 --- /dev/null +++ b/Content.Server/_DV/Speech/EntitySystems/SyllableObfuscationAccentSystem.cs @@ -0,0 +1,99 @@ +using System.Linq; +using System.Text; +using Content.Server._DV.Speech.Components; +using Content.Shared._DV.Speech.Prototypes; +using Content.Server.Speech; +using Content.Shared.GameTicking; +using Robust.Shared.Prototypes; + +namespace Content.Server._DV.Speech.EntitySystems; + +public sealed class SyllableObfuscationAccentSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly SharedGameTicker _ticker = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnAccent); + } + + private void OnAccent(EntityUid uid, SyllableObfuscationAccentComponent component, AccentGetEvent args) + { + args.Message = ApplyReplacements(args.Message, component.Accent); + } + + // stolen and slightly modified from EE: Content.Shared/_EinsteinEngines/Language/ObfuscationMethods.cs + public string ApplyReplacements(string message, string accent) + { + if (!_proto.TryIndex(accent, out var prototype)) + return message; + + StringBuilder builder = new(); + + const char eof = (char) 0; // Special character to mark the end of the message in the code below. + + var wordBeginIndex = 0; + var hashCode = 0; + + for (var i = 0; i <= message.Length; i++) + { + var ch = i < message.Length ? char.ToLower(message[i]) : eof; + var isWordEnd = char.IsWhiteSpace(ch) || IsPunctuation(ch) || ch == eof; + + // If this is a normal char, add it to the hash sum + if (!isWordEnd) + hashCode = hashCode * 31 + ch; + + // If a word ends before this character, construct a new word and append it to the new message. + if (isWordEnd) + { + var wordLength = i - wordBeginIndex; + if (wordLength > 0) + { + var originalWord = message.Substring(wordBeginIndex, wordLength); + var isAllCaps = originalWord.All(c => !char.IsLetter(c) || char.IsUpper(c)); + + var newWord = new StringBuilder(); + var newWordLength = Math.Clamp((originalWord.Length + 1) / 2, + prototype.MinSyllables, + prototype.MaxSyllables); + + for (var j = 0; j < newWordLength; j++) + { + var index = PseudoRandomNumber(hashCode + j, 0, prototype.Replacement.Count - 1); + newWord.Append(prototype.Replacement[index]); + } + if (isAllCaps && wordLength > 1) + builder.Append(newWord.ToString().ToUpper()); + else + builder.Append(newWord); + } + + hashCode = 0; + wordBeginIndex = i + 1; + } + + // If this message concludes a word (i.e. is a whitespace or a punctuation mark), append it to the message + if (isWordEnd && ch != eof) + builder.Append(ch); + } + var result = builder.ToString(); + if (!string.IsNullOrEmpty(result)) // capitalize first character since capitals are lost from ic.punctuation + result = char.ToUpperInvariant(result[0]) + result.Substring(1); + return result; + } + + private static bool IsPunctuation(char ch) + { + return ch is '.' or '!' or '?' or ',' or ':' or '-'; + } + + // EE function, doesn't use IRobustRandom for perf reasons, see Content.Shared/_EinsteinEngines/Language/Systems/SharedLanguageSystem.cs + internal int PseudoRandomNumber(int seed, int min, int max) + { + seed = seed ^ (_ticker.RoundId * 127); + var random = seed * 1103515245 + 12345; + return min + Math.Abs(random) % (max - min + 1); + } +} diff --git a/Content.Shared/_DV/Clothing/Components/DamageOnUnequipComponent.cs b/Content.Shared/_DV/Clothing/Components/DamageOnUnequipComponent.cs new file mode 100644 index 0000000000..c68fdc116f --- /dev/null +++ b/Content.Shared/_DV/Clothing/Components/DamageOnUnequipComponent.cs @@ -0,0 +1,22 @@ +using Content.Shared.Chat.Prototypes; +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared._DV.Clothing.Components; + +[RegisterComponent] +public sealed partial class DamageOnUnequipComponent : Component +{ + [DataField] + public DamageSpecifier? UnequipDamage = null; + + [DataField] + public SoundSpecifier? UnequipSound = null; + + [DataField] + public bool ScreamOnUnequip = false; + + [DataField] + public ProtoId ScreamEmote = "Scream"; +} diff --git a/Content.Shared/_DV/Clothing/SharedDamageOnUnequipSystem.cs b/Content.Shared/_DV/Clothing/SharedDamageOnUnequipSystem.cs new file mode 100644 index 0000000000..1589dc32dd --- /dev/null +++ b/Content.Shared/_DV/Clothing/SharedDamageOnUnequipSystem.cs @@ -0,0 +1,19 @@ +using Content.Shared._DV.Clothing.Components; +using Content.Shared.Examine; + +namespace Content.Shared._DV.Clothing; + +public abstract class SharedDamageOnUnequipSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnExamined); + } + + private void OnExamined(Entity selfUnremovableClothing, ref ExaminedEvent args) + { + args.PushMarkup(Loc.GetString("damage-on-unequip-examine")); + } +} diff --git a/Content.Shared/_DV/Roles/AsakimRoleComponent.cs b/Content.Shared/_DV/Roles/AsakimRoleComponent.cs new file mode 100644 index 0000000000..c54a6c384c --- /dev/null +++ b/Content.Shared/_DV/Roles/AsakimRoleComponent.cs @@ -0,0 +1,6 @@ +using Content.Shared.Roles; + +namespace Content.Shared._DV.Roles; + +[RegisterComponent] +public sealed partial class AsakimRoleComponent : BaseMindRoleComponent; diff --git a/Content.Shared/_DV/Speech/Prototypes/SyllableObfuscationAccentPrototype.cs b/Content.Shared/_DV/Speech/Prototypes/SyllableObfuscationAccentPrototype.cs new file mode 100644 index 0000000000..f9e96260aa --- /dev/null +++ b/Content.Shared/_DV/Speech/Prototypes/SyllableObfuscationAccentPrototype.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared._DV.Speech.Prototypes; + +[Prototype] +public sealed partial class SyllableObfuscationAccentPrototype : IPrototype +{ + [IdDataField] + public string ID { get; } = default!; + + [DataField] + public int MinSyllables = 1; + + [DataField] + public int MaxSyllables = 4; + + [DataField(required: true)] + public List Replacement = []; +} diff --git a/Resources/Audio/_DV/Ambience/Antag/asakimbriefing.ogg b/Resources/Audio/_DV/Ambience/Antag/asakimbriefing.ogg new file mode 100644 index 0000000000..5791f90c10 Binary files /dev/null and b/Resources/Audio/_DV/Ambience/Antag/asakimbriefing.ogg differ diff --git a/Resources/Audio/_DV/Ambience/Antag/attributions.yml b/Resources/Audio/_DV/Ambience/Antag/attributions.yml new file mode 100644 index 0000000000..bbc4d99115 --- /dev/null +++ b/Resources/Audio/_DV/Ambience/Antag/attributions.yml @@ -0,0 +1,4 @@ +- files: ["asakimbriefing.ogg"] + license: "CC-BY-4.0" + copyright: "By kotobdev (GitHub) for DeltaV" + source: "https://github.com/DeltaV-Station/Delta-v.git" diff --git a/Resources/Audio/_DV/Effects/attributions.yml b/Resources/Audio/_DV/Effects/attributions.yml index 090bb2ba8f..2eaf142b76 100644 --- a/Resources/Audio/_DV/Effects/attributions.yml +++ b/Resources/Audio/_DV/Effects/attributions.yml @@ -6,3 +6,7 @@ license: "CC-BY-NC-3.0" copyright: "Aurorastation" source: "https://github.com/Aurorastation/Aurora.3/blob/master/sound/effects/creepyshriek.ogg" +- files: ["breakingbones.ogg"] + license: "CC0-1.0" + copyright: "Freesound user Sheyvan" + source: "https://freesound.org/people/Sheyvan/sounds/523250/" diff --git a/Resources/Audio/_DV/Effects/breakingbones.ogg b/Resources/Audio/_DV/Effects/breakingbones.ogg new file mode 100644 index 0000000000..17c9e8050e Binary files /dev/null and b/Resources/Audio/_DV/Effects/breakingbones.ogg differ diff --git a/Resources/Locale/en-US/_DV/abilities/psionic.ftl b/Resources/Locale/en-US/_DV/abilities/psionic.ftl index eeb3df4ef8..5c563acc2a 100644 --- a/Resources/Locale/en-US/_DV/abilities/psionic.ftl +++ b/Resources/Locale/en-US/_DV/abilities/psionic.ftl @@ -56,6 +56,7 @@ psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message = Yo psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message = You see a vision of death and blood, of a destruction so complete only few survive, drifting through the coldness of space. psionic-power-precognition-syndicate-armsdealer-result-message = You see a vision of a ship lurking in the shadows, its cargo deadly. psionic-power-precognition-rift-spawn-result-message = You see a small spark of energy, quickly expanding as it tears reality apart, twisting everything around it. +psionic-power-precognition-asakim-spawn-result-message = You smell stale air from a cryopod opening, and the faint echo of an intelligence far away but very near. psionic-eruption-begin = {CAPITALIZE(THE($user))} is being consumed by a psionic energy! psionic-eruption-annoy-minimal = You feel a pressure building up in your mind. diff --git a/Resources/Locale/en-US/_DV/components/damage-on-unequip-component.ftl b/Resources/Locale/en-US/_DV/components/damage-on-unequip-component.ftl new file mode 100644 index 0000000000..bc5f3362fb --- /dev/null +++ b/Resources/Locale/en-US/_DV/components/damage-on-unequip-component.ftl @@ -0,0 +1,3 @@ +damage-on-unequip-examine = [color=red]You feel like removing this is a bad idea...[/color] +damage-on-unequip-begin = The {$item} begins to creak and groan... +damage-on-unequip-finish = The {$item} rips off of {$wearer}'s body! diff --git a/Resources/Locale/en-US/_DV/ghost/roles/asakim.ftl b/Resources/Locale/en-US/_DV/ghost/roles/asakim.ftl new file mode 100644 index 0000000000..ade3c8fd8f --- /dev/null +++ b/Resources/Locale/en-US/_DV/ghost/roles/asakim.ftl @@ -0,0 +1,10 @@ +ghost-role-information-asakim-name = Asakim Warrior +ghost-role-information-asakim-description = A genetically enhanced bioweapon, stranded in the sector after cryostasis failure. +ghost-role-information-asakim-rules = + You are a [color=yellow][bold]Free-Agent[/bold][/color]. You may pursue your given objectives, or find your own way through life. + You have [color=red]no knowledge[/color] (maybe basic at most) [color=red]of this sector of space, its inhabitants, its factions, or its culture[/color]. While you cannot speak their language, you can understand it. + You may kill your targets if you have any, and you may kill to defend yourself and your property. [color=green]Civilians and the innocent are not your enemy[/color], and may be useful to you (if you can get past the language barrier - try an AAC tablet!). Fight with honor. +asakim-role-briefing = + You are an Asakim, a genetically-engineered weapon from a distant part of space. + You've awoken from long-term cryosleep in an unfamiliar sector, and an unfamiliar time. + Your ship has transmitted new orders into your brain... diff --git a/Resources/Locale/en-US/_DV/mind/mind_roles.ftl b/Resources/Locale/en-US/_DV/mind/mind_roles.ftl index d000c4480a..019192f863 100644 --- a/Resources/Locale/en-US/_DV/mind/mind_roles.ftl +++ b/Resources/Locale/en-US/_DV/mind/mind_roles.ftl @@ -4,3 +4,4 @@ role-subtype-recruiter = Recruiter role-subtype-synthesis = Synthesis role-subtype-roboneuro = Robo-Neuro role-subtype-armsdealer = Arms Dealer +role-subtype-asakim = Asakim diff --git a/Resources/Locale/en-US/_DV/objectives/conditions/asakim.ftl b/Resources/Locale/en-US/_DV/objectives/conditions/asakim.ftl new file mode 100644 index 0000000000..853f16e32a --- /dev/null +++ b/Resources/Locale/en-US/_DV/objectives/conditions/asakim.ftl @@ -0,0 +1,3 @@ +objective-issuer-asakim = [color=#5085fa]Automated Defense System[/color] +objective-condition-asakim-terminate-title = >TERMINATE {$targetName}, {CAPITALIZE($job)}. +objective-condition-asakim-terminate-reroll-message = : FEEDBACK LOOP DETECTED. NEW SUBJECT DESIGNATED FOR TERMINATION: {$targetName}, {CAPITALIZE($job)}. diff --git a/Resources/Locale/en-US/_DV/prototypes/roles/antags.ftl b/Resources/Locale/en-US/_DV/prototypes/roles/antags.ftl index be47429361..79feb2098d 100644 --- a/Resources/Locale/en-US/_DV/prototypes/roles/antags.ftl +++ b/Resources/Locale/en-US/_DV/prototypes/roles/antags.ftl @@ -27,3 +27,6 @@ roles-antag-skia-objective = Rend souls from the living. roles-antag-syndicate-armsdealer-name = Arms Dealer roles-antag-syndicate-armsdealer-objective = Sell your firearms and stay away from the law. + +roles-antag-asakim-name = Asakim +roles-antag-asakim-objective = Serve the ancient directives of your ship's AI. diff --git a/Resources/Locale/en-US/_Mono/species/species.ftl b/Resources/Locale/en-US/_Mono/species/species.ftl new file mode 100644 index 0000000000..ca8c5eb329 --- /dev/null +++ b/Resources/Locale/en-US/_Mono/species/species.ftl @@ -0,0 +1,3 @@ +## Species Names + +species-name-asakim = Asakim diff --git a/Resources/Maps/_Mono/ShuttleEvent/asakim_small.yml b/Resources/Maps/_Mono/ShuttleEvent/asakim_small.yml new file mode 100644 index 0000000000..4265f37109 --- /dev/null +++ b/Resources/Maps/_Mono/ShuttleEvent/asakim_small.yml @@ -0,0 +1,1863 @@ +meta: + format: 7 + category: Grid + engineVersion: 262.0.0 + forkId: "" + forkVersion: "" + time: 10/08/2025 06:35:06 + entityCount: 286 +maps: [] +grids: +- 1 +orphans: +- 1 +nullspace: [] +tilemap: + 0: Space + 8: FloorDark + 7: FloorGrayConcrete + 4: FloorMetalDiamond + 89: FloorSteel + 6: FloorTechMaint + 2: Lattice + 1: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Unidentified Craft + - type: Transform + parent: invalid + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAAAAAAAAAQAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAAEAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAAIAAAAAAAACAAAAAAAAAYAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAQAAAAAAAAgAAAAAAAAHAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAA== + version: 7 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAgAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAIAAAAAAAABAAAAAAAAAQAAAAAAAAIAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAABAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 + 0,0: + ind: 0,0 + tiles: CAAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAABAAAAAAAAAgAAAAAAAAEAAAAAAAABAAAAAAAAAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAACAAAAAAAAAQAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAEAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAACAAAAAAAAAgAAAAAAAABAAAAAAAAAQAAAAAAAAIAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAAGAAAAAAAABwAAAAAAAAgAAAAAAAABAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + version: 7 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: BecomesStation + id: Empty + - type: OccluderTree + - type: Shuttle + dampingModifier: 0.25 + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#BC863FFF' + id: Delivery + decals: + 3: -1,0 + 4: 0,1 + 5: -3,-2 + 6: -1,-2 + 15: -5,-1 + 16: 3,-1 + - type: SpreaderGrid + - type: GridAtmosphere + version: 2 + data: + tiles: + -3,-1: + 0: 49152 + -2,-1: + 0: 4960 + 1: 32768 + -2,0: + 0: 2355 + -2,-2: + 0: 32768 + -1,-2: + 2: 12288 + 0: 994 + 1: 34816 + -1,-1: + 1: 65512 + -1,-3: + 0: 8192 + -1,0: + 1: 35020 + 0: 8208 + 0,-2: + 0: 34354 + 2: 24576 + 0,-1: + 1: 63280 + -2,1: + 0: 4 + -1,1: + 0: 34 + 1: 34952 + -1,2: + 1: 136 + 0,0: + 1: 17 + 0: 10304 + 0,1: + 0: 34 + 1,0: + 0: 1126 + 1,1: + 0: 1 + 1,-1: + 0: 50736 + 0,-3: + 0: 8192 + 2,-1: + 0: 4096 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: IFF + color: '#00FFCCFF' + - type: ImplicitRoof + - type: NavMap +- proto: AirCanister + entities: + - uid: 12 + components: + - type: Transform + anchored: True + pos: 3.5,-0.5 + parent: 1 + - type: Physics + bodyType: Static +- proto: AirlockExternal + entities: + - uid: 98 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 143: + - - DoorStatus + - DoorBolt + - uid: 143 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 98: + - - DoorStatus + - DoorBolt + - uid: 145 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 +- proto: AirlockShuttle + entities: + - uid: 100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,9.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 +- proto: AtmosDeviceFanDirectional + entities: + - uid: 8 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,9.5 + parent: 1 +- proto: AtmosFixBlockerMarker + entities: + - uid: 2 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 225 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 231 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 232 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 233 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 237 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 238 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 239 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 243 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 247 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 248 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 249 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 270 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 272 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 273 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 274 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 + - uid: 276 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 277 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 1 + - uid: 278 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 284 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 1 + - uid: 286 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 287 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 288 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 291 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 292 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 293 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - uid: 303 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 304 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 4 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 261 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 +- proto: CableHV + entities: + - uid: 88 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 195 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 +- proto: CableMV + entities: + - uid: 92 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 87 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 52 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 58 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 79 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-6.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,6.5 + parent: 1 + - uid: 263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,7.5 + parent: 1 + - uid: 264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,8.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 + - uid: 296 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 1 + - uid: 297 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-6.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 + - uid: 309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-8.5 + parent: 1 + - uid: 310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-8.5 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 +- proto: CloningPod + entities: + - uid: 163 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 +- proto: ComputerCloningConsole + entities: + - uid: 164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 5 + - type: DeviceLinkSource + linkedPorts: + 163: + - - CloningPodSender + - CloningPodReceiver + 165: + - - MedicalScannerSender + - MedicalScannerReceiver + - type: Battery +- proto: ComputerIFFSyndicate + entities: + - uid: 148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 5 + - type: Battery + missingComponents: + - Construction + - Anchorable +- proto: ComputerShuttle + entities: + - uid: 147 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 5 + - type: Battery +- proto: GasPassiveVent + entities: + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' +- proto: GasPipeBend + entities: + - uid: 135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' +- proto: GasPipeStraight + entities: + - uid: 99 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 101 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 129 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 131 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 132 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 161 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 170 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 174 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasPipeTJunction + entities: + - uid: 130 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasPort + entities: + - uid: 11 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasPressurePump + entities: + - uid: 53 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasVentPump + entities: + - uid: 3 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' + - uid: 142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0335FCFF' +- proto: GasVentScrubber + entities: + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 96 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF1212FF' +- proto: GeneratorWallmountAPU + entities: + - uid: 175 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 194 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 82 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 85 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 +- proto: MaterialBiomass + entities: + - uid: 167 + components: + - type: Transform + pos: -3.5763671,-1.33573 + parent: 1 + - type: Stack + count: 150 + - uid: 178 + components: + - type: Transform + pos: -3.3472004,-1.5753133 + parent: 1 + - type: Stack + count: 150 +- proto: MedicalScanner + entities: + - uid: 165 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: OxygenCanister + entities: + - uid: 196 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 +- proto: PoweredDimSmallLight + entities: + - uid: 250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-2.5 + parent: 1 + - uid: 251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,4.5 + parent: 1 + - uid: 265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,7.5 + parent: 1 +- proto: PoweredWarmSmallLight + entities: + - uid: 9 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 +- proto: Railing + entities: + - uid: 95 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 +- proto: RailingCorner + entities: + - uid: 216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 +- proto: SheetGlass + entities: + - uid: 17 + components: + - type: Transform + pos: 2.669439,-1.606477 + parent: 1 + - type: Stack + count: 100 +- proto: SheetSteel + entities: + - uid: 136 + components: + - type: Transform + pos: 2.575689,-1.497102 + parent: 1 + - type: Stack + count: 100 +- proto: SMESBasic + entities: + - uid: 158 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 +- proto: SpawnPointNukies + entities: + - uid: 253 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 +- proto: StairStage + entities: + - uid: 203 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 94 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 +- proto: Thruster + entities: + - uid: 45 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 1 + - uid: 74 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 1 + - uid: 75 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 76 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 77 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - uid: 124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,0.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 +- proto: WallPlastitanium + entities: + - uid: 18 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 258 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 259 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 260 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 275 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 280 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 +- proto: WallPlastitaniumDiagonal + entities: + - uid: 7 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-4.5 + parent: 1 + - uid: 10 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 15 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,4.5 + parent: 1 + - uid: 16 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 20 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 22 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,2.5 + parent: 1 + - uid: 35 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-1.5 + parent: 1 + - uid: 244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 197 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - type: WarpPoint + location: Asakim Shuttle +... diff --git a/Resources/Prototypes/_DV/Accents/syllable_obfuscation.yml b/Resources/Prototypes/_DV/Accents/syllable_obfuscation.yml new file mode 100644 index 0000000000..f387937b05 --- /dev/null +++ b/Resources/Prototypes/_DV/Accents/syllable_obfuscation.yml @@ -0,0 +1,89 @@ +- type: syllableObfuscationAccent + id: draconian + minSyllables: 1 + maxSyllables: 4 + replacement: + - za + - az + - ze + - ez + - zi + - iz + - zo + - oz + - zu + - uz + - zs + - sz + - ha + - ah + - he + - eh + - hi + - ih + - ho + - oh + - hu + - uh + - hs + - sh + - la + - al + - le + - el + - li + - il + - lo + - ol + - lu + - ul + - ls + - sl + - ka + - ak + - ke + - ek + - ki + - ik + - ko + - ok + - ku + - uk + - ks + - sk + - sa + - as + - se + - es + - si + - is + - so + - os + - su + - us + - ss + - ss + - ra + - ar + - re + - er + - ri + - ir + - ro + - or + - ru + - ur + - rs + - sr + - a + - a + - e + - e + - i + - i + - o + - o + - u + - u + - s + - s diff --git a/Resources/Prototypes/_DV/Body/Organs/asakim.yml b/Resources/Prototypes/_DV/Body/Organs/asakim.yml new file mode 100644 index 0000000000..0947eb0f33 --- /dev/null +++ b/Resources/Prototypes/_DV/Body/Organs/asakim.yml @@ -0,0 +1,12 @@ +- type: entity + parent: BaseCyberneticEyes + id: OrganAsakimEyes + name: asakim eyes + components: + - type: Organ + onAdd: + - type: NightVision + isEquipment: false + color: "#ae65bf" + activateSound: null + deactivateSound: null diff --git a/Resources/Prototypes/_DV/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/_DV/Entities/Clothing/Back/backpacks.yml index 9b088e1bab..c1cf77222d 100644 --- a/Resources/Prototypes/_DV/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/_DV/Entities/Clothing/Back/backpacks.yml @@ -16,3 +16,15 @@ - type: Sprite sprite: _DV/Clothing/Back/Backpacks/hop.rsi state: icon + +- type: entity + parent: ClothingBackpack + id: ClothingBackpackAdvancedTactical + name: advanced tactical backpack + description: A spacious backpack with lots of pockets. + components: + - type: Sprite + sprite: Clothing/Back/Backpacks/ertleader.rsi + - type: Storage + grid: + - 0,0,10,3 diff --git a/Resources/Prototypes/_DV/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/_DV/Entities/Clothing/Uniforms/jumpsuits.yml index ebb3323c78..919b9fdad9 100644 --- a/Resources/Prototypes/_DV/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/_DV/Entities/Clothing/Uniforms/jumpsuits.yml @@ -533,6 +533,17 @@ - type: Clothing sprite: _DV/Clothing/Uniforms/Jumpsuit/cybersunrnd.rsi +- type: entity + parent: ClothingUniformBase + id: ClothingUniformJumpsuitAsakim + name: combat jumpsuit + description: A comfortable and flexible jumpsuit, designed to be worn under a hardsuit. + components: + - type: Sprite + sprite: _Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi + - type: Clothing + sprite: _Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi + - type: entity parent: ClothingUniformBase id: ClothingUniformHarbingerTunic diff --git a/Resources/Prototypes/_DV/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/_DV/Entities/Markers/Spawners/ghost_roles.yml index b94e12e8e6..a3e525f5fa 100644 --- a/Resources/Prototypes/_DV/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/_DV/Entities/Markers/Spawners/ghost_roles.yml @@ -189,3 +189,16 @@ - !type:DepartmentTimeRequirement department: Command time: 43200 # 12h Command (so you know to handle the responsibility of an armsdealer) + +- type: entity + categories: [ HideSpawnMenu, Spawner ] + parent: BaseAntagSpawner + id: SpawnPointGhostAsakim + components: + - type: GhostRole + name: ghost-role-information-asakim-name + description: ghost-role-information-asakim-description + rules: ghost-role-information-asakim-rules + requirements: # keep in sync with the antag prototype + - !type:OverallPlaytimeRequirement + time: 172800 # 48 hours, same reasoning as SRN diff --git a/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml b/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml new file mode 100644 index 0000000000..d060ba6950 --- /dev/null +++ b/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml @@ -0,0 +1,16 @@ +- type: entity + id: HandheldAutopulserDisablerProjectile + name: disabling plasma projectile + parent: BulletDisablerSmg + categories: [ HideSpawnMenu ] + components: + - type: StaminaDamageOnCollide + damage: 19 + - type: Sprite + sprite: _Impstation/Objects/Weapons/Guns/Projectiles/energybolts.rsi + scale: 0.4, 0.4 + layers: + - state: lightstun + shader: unshaded + - type: PointLight + color: "#00a6ff" diff --git a/Resources/Prototypes/_DV/GameRules/unknown_shuttles.yml b/Resources/Prototypes/_DV/GameRules/unknown_shuttles.yml index ccf61b8b95..9eaecf14cd 100644 --- a/Resources/Prototypes/_DV/GameRules/unknown_shuttles.yml +++ b/Resources/Prototypes/_DV/GameRules/unknown_shuttles.yml @@ -5,6 +5,7 @@ - id: SyndicateRecruiter - id: SynthesisSpecialist - id: SyndicateArmsdealer + - id: AsakimShuttle - type: entity parent: BaseUnknownShuttleRule diff --git a/Resources/Prototypes/_DV/Objectives/asakim.yml b/Resources/Prototypes/_DV/Objectives/asakim.yml new file mode 100644 index 0000000000..3673c684ef --- /dev/null +++ b/Resources/Prototypes/_DV/Objectives/asakim.yml @@ -0,0 +1,76 @@ +- type: entity + abstract: true + parent: BaseObjective + id: BaseAsakimObjective + components: + - type: Objective + difficulty: 1 # unused + issuer: objective-issuer-asakim + icon: + sprite: _Mono/Objects/Weapons/Melee/hfblade.rsi + state: icon + - type: RoleRequirement + roles: + - AsakimRole + +- type: entity + parent: BaseAsakimObjective + id: AsakimKillObjective + name: ">TERMINATE" + description: Vital signs MUST reach zero in subject. Once. + components: + - type: Objective + issuer: objective-issuer-asakim + unique: false + icon: + sprite: Mobs/Ghosts/ghost_human.rsi + state: icon + - type: KillPersonCondition + requireDead: true + - type: TargetObjective + title: objective-condition-asakim-terminate-title + - type: PickRandomPerson + onlyChoosableJobs: true + - type: RerollAfterCompletion + rerollObjectivePrototype: AsakimKillObjective + rerollObjectiveMessage: objective-condition-asakim-terminate-reroll-message + +- type: entity + parent: [BaseAsakimObjective, BaseSurviveObjective] + id: AsakimTheftObjective + name: ">CONFISCATE" + description: Records indicate that this sector may have valuable artifacts. Confiscate such items for further study. + components: + - type: Objective + +- type: entity + parent: [BaseAsakimObjective, BaseSurviveObjective] + id: AsakimInfiltrateObjective + name: ">INFILTRATE" + description: Ambient radio chatter mentions "High-Security Areas". Investigate such places, if they do exist. + components: + - type: Objective + +- type: entity + parent: [BaseAsakimObjective, BaseSurviveObjective] + id: AsakimInterrogateObjective + name: ">INTERROGATE" + description: WARNING - Time-gap of [ERROR] years detected. Records may be outdated. Consult local population. + components: + - type: Objective + +- type: entity + parent: [BaseAsakimObjective, BaseSurviveObjective] + id: AsakimUpgradeObjective + name: ">UPGRADE" + description: Preliminary sector scans detect possible high-value cybernetics. Upgrade your body. + components: + - type: Objective + +- type: entity + parent: [BaseAsakimObjective, BaseSurviveObjective] + id: AsakimAllyObjective + name: ">AFFILIATE" + description: Prior records indicate possible persons-of-interest in this sector. Find or make allies in the local populace. + components: + - type: Objective diff --git a/Resources/Prototypes/_DV/Objectives/objectiveGroups.yml b/Resources/Prototypes/_DV/Objectives/objectiveGroups.yml index 735134086a..97ef23111c 100644 --- a/Resources/Prototypes/_DV/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/_DV/Objectives/objectiveGroups.yml @@ -108,3 +108,44 @@ WizardDataObjective: 0.75 WizardPreserveObjective: 1 WizardTeachObjective: 1 + +## Asakim +- type: weightedRandom + id: AsakimObjectiveGroup + weights: + AsakimObjectiveGroupKill: 1 + AsakimObjectiveGroupTheft: 1 + AsakimObjectiveGroupInfiltrate: 1 + AsakimObjectiveGroupInterrogate: 1 + AsakimObjectiveGroupUpgrade: 1 + AsakimObjectiveGroupAlly: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupKill + weights: + AsakimKillObjective: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupTheft + weights: + AsakimTheftObjective: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupInfiltrate + weights: + AsakimInfiltrateObjective: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupInterrogate + weights: + AsakimInterrogateObjective: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupUpgrade + weights: + AsakimUpgradeObjective: 1 + +- type: weightedRandom + id: AsakimObjectiveGroupAlly + weights: + AsakimAllyObjective: 1 diff --git a/Resources/Prototypes/_DV/Roles/Antags/asakim.yml b/Resources/Prototypes/_DV/Roles/Antags/asakim.yml new file mode 100644 index 0000000000..3bb4a19578 --- /dev/null +++ b/Resources/Prototypes/_DV/Roles/Antags/asakim.yml @@ -0,0 +1,8 @@ +- type: antag + id: Asakim + name: roles-antag-asakim-name + objective: roles-antag-asakim-objective + antagonist: true + requirements: + - !type:OverallPlaytimeRequirement + time: 172800 # 48 hours, same reasoning as SRN diff --git a/Resources/Prototypes/_DV/Roles/MindRoles/mind_roles.yml b/Resources/Prototypes/_DV/Roles/MindRoles/mind_roles.yml index 6d928246e3..1ef71d30c5 100644 --- a/Resources/Prototypes/_DV/Roles/MindRoles/mind_roles.yml +++ b/Resources/Prototypes/_DV/Roles/MindRoles/mind_roles.yml @@ -100,3 +100,17 @@ - type: ArmsdealerRole - type: RoleBriefing briefing: armsdealer-role-briefing + +- type: entity + parent: BaseMindRoleAntag + id: MindRoleAsakim + name: Asakim Role + components: + - type: MindRole + roleType: FreeAgent + subtype: role-subtype-asakim + antagPrototype: Asakim + exclusiveAntag: true + - type: AsakimRole + - type: RoleBriefing + briefing: asakim-role-briefing diff --git a/Resources/Prototypes/_Mono/Body/Parts/asakim.yml b/Resources/Prototypes/_Mono/Body/Parts/asakim.yml new file mode 100644 index 0000000000..fe1fffa7d2 --- /dev/null +++ b/Resources/Prototypes/_Mono/Body/Parts/asakim.yml @@ -0,0 +1,134 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartAsakim + parent: [BaseItem, BasePart] + name: "asakim body part" + abstract: true + components: + - type: Icon # Shitmed Change + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + - type: BodyPart # Shitmed Change + species: Asakim + - type: Destructible # Shitmed Change: Let blunt weapons break bones + thresholds: + - trigger: !type:DamageTypeTrigger + damageType: Blunt + damage: 350 + behaviors: + - !type:GibPartBehavior + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoAsakim + name: "asakim torso" + parent: [PartAsakim, BaseTorso] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + +- type: entity + id: HeadAsakim + name: "asakim head" + parent: [PartAsakim, BaseHead] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmAsakim + name: "left asakim arm" + parent: [PartAsakim, BaseLeftArm] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "l_arm" + +- type: entity + id: RightArmAsakim + name: "right asakim arm" + parent: [PartAsakim, BaseRightArm] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "r_arm" + +- type: entity + id: LeftHandAsakim + name: "left asakim hand" + parent: [PartAsakim, BaseLeftHand] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "l_hand" + +- type: entity + id: RightHandAsakim + name: "right asakim hand" + parent: [PartAsakim, BaseRightHand] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "r_hand" + +- type: entity + id: LeftLegAsakim + name: "left asakim leg" + parent: [PartAsakim, BaseLeftLeg] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "l_leg" + +- type: entity + id: RightLegAsakim + name: "right asakim leg" + parent: [PartAsakim, BaseRightLeg] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "r_leg" + +- type: entity + id: LeftFootAsakim + name: "left asakim foot" + parent: [PartAsakim, BaseLeftFoot] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "l_foot" + +- type: entity + id: RightFootAsakim + name: "right asakim foot" + parent: [PartAsakim, BaseRightFoot] + components: + - type: Sprite + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: "r_foot" diff --git a/Resources/Prototypes/_Mono/Body/Prototypes/asakim.yml b/Resources/Prototypes/_Mono/Body/Prototypes/asakim.yml new file mode 100644 index 0000000000..660d4ffdce --- /dev/null +++ b/Resources/Prototypes/_Mono/Body/Prototypes/asakim.yml @@ -0,0 +1,58 @@ +# SPDX-FileCopyrightText: 2022 DrSmugleaf +# SPDX-FileCopyrightText: 2022 Jezithyr +# SPDX-FileCopyrightText: 2023 Nemanja +# SPDX-FileCopyrightText: 2025 Ark +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: body + name: "asakim" + id: Asakim + root: torso + slots: + head: + part: HeadAsakim + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganAsakimEyes # DeltaV + torso: + part: TorsoAsakim + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganReptilianStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + connections: + - right arm + - left arm + - right leg + - left leg + - head # Shitmed + right arm: + part: RightArmAsakim + connections: + - right hand + left arm: + part: LeftArmAsakim + connections: + - left hand + right hand: + part: RightHandAsakim + left hand: + part: LeftHandAsakim + right leg: + part: RightLegAsakim + connections: + - right foot + left leg: + part: LeftLegAsakim + connections: + - left foot + right foot: + part: RightFootAsakim + left foot: + part: LeftFootAsakim diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/Head/Hardsuits/asakim.yml b/Resources/Prototypes/_Mono/Entities/Clothing/Head/Hardsuits/asakim.yml new file mode 100644 index 0000000000..6e9327b977 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Clothing/Head/Hardsuits/asakim.yml @@ -0,0 +1,59 @@ +# SPDX-FileCopyrightText: 2025 Avalon +# SPDX-FileCopyrightText: 2025 Coenx-flex +# SPDX-FileCopyrightText: 2025 Cojoke +# SPDX-FileCopyrightText: 2025 HungryCuban +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + parent: [ClothingHeadHardsuitBase, ShowMedicalIcons] # DeltaV - no contraband + id: ClothingHelmetHardsuitAsakim + name: combat harness helmet # DeltaV - simple names + description: Part of an advanced combat harness. # DeltaV - no fracture + components: + - type: Sprite + sprite: _Mono/Clothing/Head/Hardsuits/asakim.rsi + - type: Clothing + sprite: _Mono/Clothing/Head/Hardsuits/asakim.rsi + - type: PressureProtection + highPressureMultiplier: 0.02 + lowPressureMultiplier: 1000 + - type: Armor + modifiers: + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.85 + Heat: 0.8 + - type: FlashImmunity + - type: EyeProtection + protectionTime: 15 + - type: ThermalVision + pulseTime: 1 + isEquipment: true + toggleAction: PulseThermalVision + #- type: NightVision # DeltaV - redundant, species already has it + # flashDurationMultiplier: 0.85 + # isEquipment: true + # color: "#1584e6" + - type: RadarConsole + maxRange: 1024 + followEntity: true + #pannable: true # DeltaV - unimplemented + #- type: DetectionRangeMultiplier # upgraded thermal sensors # DeltaV - doesn't exist + # infraredMultiplier: 1.5 # from 1 + # visualMultiplier: 8 # from 4 + - type: ActivatableUI + key: enum.RadarConsoleUiKey.Key + singleUser: true + - type: UserInterface + interfaces: + enum.RadarConsoleUiKey.Key: + type: RadarConsoleBoundUserInterface + - type: HideLayerClothing + slots: + - Hair + - Snout + - HeadTop + - HeadSide diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/OuterClothing/Hardsuits/asakim.yml b/Resources/Prototypes/_Mono/Entities/Clothing/OuterClothing/Hardsuits/asakim.yml new file mode 100644 index 0000000000..4c80dadb8e --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Clothing/OuterClothing/Hardsuits/asakim.yml @@ -0,0 +1,80 @@ +# SPDX-FileCopyrightText: 2025 Arcticular1 +# SPDX-FileCopyrightText: 2025 HungryCuban +# SPDX-FileCopyrightText: 2025 core-mene +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + parent: ClothingOuterHardsuitBase # DeltaV - no contraband + id: ClothingOuterHardsuitAsakim + name: combat harness # DeltaV - simple name + description: An advanced combat harness. Incredibly rare, and practically alien in technology compared to modern hardsuits. Once equipped, the armor binds itself with the wearer and cannot be removed without external release. # DeltaV - no fracture + suffix: SelfUnremovable + components: + - type: Sprite + sprite: _Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi + - type: Clothing + sprite: _Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi + stripDelay: 60 + equipDelay: 5 + - type: SelfUnremovableClothing + - type: PressureProtection + highPressureMultiplier: 0.1 + lowPressureMultiplier: 1000 + - type: ExplosionResistance + damageCoefficient: 0.35 + - type: FireProtection + reduction: 0.7 + - type: ProtectedFromStepTriggers + slots: WITHOUT_POCKET + - type: DamageOnInteractProtection + damageProtection: + flatReductions: + Heat: 10 + slots: OUTERCLOTHING + - type: StaticPrice + price: 50000 + - type: Armor + modifiers: + coefficients: + Blunt: 0.5 # DeltaV - was 0.35 + Slash: 0.85 + Piercing: 0.4 # DeltaV - was 0.3 + Heat: 0.6 # DeltaV - was 0.4 + Radiation: 0 + Shock: 0.8 + Poison: 0.4 + Caustic: 0.4 + - type: ClothingSpeedModifier + walkModifier: 1 + sprintModifier: 1 + - type: HeldSpeedModifier + - type: ToggleableClothing # Goobstation - Modsuits change - Mono - this is a solution for helmet attachment/cover to not fit on hardsuits + requiredSlot: outerclothing + #blockUnequipWhenAttached: false # DeltaV - doesn't exist here + #replaceCurrentClothing: true # DeltaV - doesn't exist here + clothingPrototype: ClothingHelmetHardsuitAsakim # DeltaV - simplified ToggleableClothing + #- type: PirateBountyItem # DeltaV - no way we have this + # id: ClothingOuterHardsuitTacsuit + - type: StaminaResistance # DeltaV - different comp name + damageCoefficient: 0.4 # DeltaV - was 0.1 + - type: DamageOnUnequip # DeltaV + unequipDamage: + types: + Blunt: 20 + Slash: 30 + Piercing: 40 + unequipSound: "/Audio/_DV/Effects/breakingbones.ogg" + screamOnUnequip: true + +- type: entity + parent: ClothingOuterHardsuitAsakim + id: ClothingOuterHardsuitAsakimUnremoveable + description: An advanced combat harness. Incredibly rare, and practically alien in technology compared to modern hardsuits. Once equipped, the armor binds itself with the wearer and cannot be removed without external release. This one is fully binded to a warrior, and will take a long time to remove. # DeltaV - no fracture + suffix: 120 stripDelay + components: + - type: Clothing + stripDelay: 120 + equipDelay: 120 + diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/Shoes/magboots.yml b/Resources/Prototypes/_Mono/Entities/Clothing/Shoes/magboots.yml new file mode 100644 index 0000000000..2400e45bd8 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Clothing/Shoes/magboots.yml @@ -0,0 +1,17 @@ +# SPDX-FileCopyrightText: 2025 Ilya246 +# SPDX-FileCopyrightText: 2025 UnicornOnLSD +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + parent: ClothingShoesBootsMagAdv + id: ClothingShoesBootsMagAsakim + name: combat magboots # DeltaV - no fracture + description: State-of-the-art magnetic boots made for combat with advanced harnesses. + components: + #- type: FootstepModifier # DeltaV - sneaky + # footstepSoundCollection: + # collection: FootstepHeavySuit + - type: ClothingSlowOnDamageModifier + modifier: 0.35 diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/loadouts.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/loadouts.yml new file mode 100644 index 0000000000..b967d2110a --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/loadouts.yml @@ -0,0 +1,45 @@ +# SPDX-FileCopyrightText: 2025 Arcticular1 +# SPDX-FileCopyrightText: 2025 Onezero0 +# SPDX-FileCopyrightText: 2025 significant harassment +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: startingGear + id: AsakimGear + equipment: + jumpsuit: ClothingUniformJumpsuitAsakim # DeltaV - dedicated jumpsuit with goob sprites instead of base ninja one + back: ClothingBackpackAdvancedTactical # DeltaV - dedicated backpack instead of ERT one + gloves: ClothingHandsGlovesCombat + outerClothing: ClothingOuterHardsuitAsakimUnremoveable + shoes: ClothingShoesBootsMagAsakim + #pocket1: CrowbarPocket # DeltaV - fake + pocket2: DoubleEmergencyOxygenTankFilled # DeltaV - filled instead of empty + belt: ClothingBeltSecurityWebbing # DeltaV - use our webbing + suitStorage: OxygenTankFilled + inhand: + - WeaponRifleAsakimAutopulser + - WeaponHFKatana + storage: + back: # DeltaV - reorganized to fit + #- RadioHandheldNF # DeltaV - fake + - DoubleEmergencyOxygenTankFilled + - BoxSurvival # DeltaV + - JetpackMiniFilled + - MedkitCombatFilled + - MedkitCombatFilled + #- SyringeCaseAltFilled # DeltaV - fake + #- StorageImplanter # DeltaV - implanters too OP they already have insane stamina resist + #- FreedomImplanter # DeltaV + belt: # DeltaV - reordered for better fit + #- HandHeldMassScannerBorg # DeltaV - redundant, their helmet is a mass scanner + #- PowerDrill # DeltaV - less gamer loot, replaced with below + - Screwdriver # DeltaV + - Wrench # DeltaV + - WelderIndustrial # DeltaV - less gamer loot roundstart, was WelderExperimental + - JawsOfLife + - Multitool # DeltaV - let them hack doors, also snugly fills out the chest rig + #- CombatMedipen # DeltaV - these things are so busted + #- CombatMedipen # DeltaV + #- CombatMedipen # DeltaV + #- CombatMedipen # DeltaV diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/roles.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/roles.yml new file mode 100644 index 0000000000..50d9e3be42 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Ghostroles/Asakim/roles.yml @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# DeltaV - this goes unused in our port, but it's being left in so admins can spawn these guys with their gear +- type: entity + parent: MobAsakim + id: MobAsakimGhostrole + name: asakim warrior + suffix: Asakim + components: + - type: RandomHumanoidAppearance + randomizeName: True + - type: HumanoidAppearance + #height: 1.2 # DeltaV - non-functional + #width: 1.2 # DeltaV - non-functional + - type: Loadout + prototypes: [AsakimGear] + #roleLoadout: [RoleSurvivalTankOnly] # DeltaV - nope + - type: GhostRole + name: ghost-role-information-asakim-name + description: ghost-role-information-asakim-description + rules: ghost-role-information-asakim-rules + raffle: + settings: default + requirements: + - !type:OverallPlaytimeRequirement + time: 172800 # DeltaV - 48 hours, sync with antag + mindRoles: # DeltaV + - MindRoleAsakim + - type: GhostTakeoverAvailable + - type: RandomMetadata + nameSegments: + - NamesFirst # DeltaV - was NamesFirstMilitary + - NamesLast # DeltaV - was NamesLastMilitary + - type: NpcFactionMember + factions: + - Syndicate + - type: SurgerySpeedModifier + speedModifier: 1.5 + #- type: IntrinsicRadioReceiver # DeltaV - unused + #- type: IntrinsicRadioTransmitter + # channels: + # - Remnants + #- type: ActiveRadio + # channels: + # - Remnants diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/Species/asakim.yml b/Resources/Prototypes/_Mono/Entities/Mobs/Species/asakim.yml new file mode 100644 index 0000000000..9c77f0ee20 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/Species/asakim.yml @@ -0,0 +1,279 @@ +# SPDX-FileCopyrightText: 2022 DrSmugleaf +# SPDX-FileCopyrightText: 2022 EmoGarbage404 +# SPDX-FileCopyrightText: 2022 Flipp Syder +# SPDX-FileCopyrightText: 2022 Jezithyr +# SPDX-FileCopyrightText: 2022 Mervill +# SPDX-FileCopyrightText: 2022 Moony +# SPDX-FileCopyrightText: 2022 Paul +# SPDX-FileCopyrightText: 2022 Rane +# SPDX-FileCopyrightText: 2022 T-Stalker +# SPDX-FileCopyrightText: 2022 ZeroDayDaemon +# SPDX-FileCopyrightText: 2022 metalgearsloth +# SPDX-FileCopyrightText: 2022 mirrorcult +# SPDX-FileCopyrightText: 2022 och-och +# SPDX-FileCopyrightText: 2022 rolfero +# SPDX-FileCopyrightText: 2023 Alex Evgrashin +# SPDX-FileCopyrightText: 2023 AndresE55 +# SPDX-FileCopyrightText: 2023 Cheackraze +# SPDX-FileCopyrightText: 2023 Emisse +# SPDX-FileCopyrightText: 2023 Errant +# SPDX-FileCopyrightText: 2023 FoxxoTrystan +# SPDX-FileCopyrightText: 2023 I.K +# SPDX-FileCopyrightText: 2023 Kara +# SPDX-FileCopyrightText: 2023 LankLTE +# SPDX-FileCopyrightText: 2023 Leon Friedrich +# SPDX-FileCopyrightText: 2023 Visne +# SPDX-FileCopyrightText: 2023 notquitehadouken <1isthisameme> +# SPDX-FileCopyrightText: 2023 potato1234_x +# SPDX-FileCopyrightText: 2024 Aexxie +# SPDX-FileCopyrightText: 2024 Dvir +# SPDX-FileCopyrightText: 2024 Ed +# SPDX-FileCopyrightText: 2024 KittenColony +# SPDX-FileCopyrightText: 2024 Minemoder5000 +# SPDX-FileCopyrightText: 2024 Mnemotechnican +# SPDX-FileCopyrightText: 2024 Morb +# SPDX-FileCopyrightText: 2024 Mr. 27 +# SPDX-FileCopyrightText: 2024 Nairod +# SPDX-FileCopyrightText: 2024 Nemanja +# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers +# SPDX-FileCopyrightText: 2024 Plykiya +# SPDX-FileCopyrightText: 2024 Whatstone +# SPDX-FileCopyrightText: 2024 lunarcomets +# SPDX-FileCopyrightText: 2024 no +# SPDX-FileCopyrightText: 2024 portfiend +# SPDX-FileCopyrightText: 2025 ScyronX +# SPDX-FileCopyrightText: 2025 SuperJoelDood +# SPDX-FileCopyrightText: 2025 Suyo +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + save: false + name: Urist McAsakim + parent: BaseMobSpeciesOrganic + id: BaseMobAsakim + abstract: true + components: + - type: HumanoidAppearance + species: Asakim + hideLayersOnEquip: + - Snout + # - HeadTop # WWDP - Because visible horns its cool + - HeadSide + - type: Hunger + - type: Puller + needsHands: false + - type: MovementSpeedModifier + baseWalkSpeed : 2.7 + baseSprintSpeed : 4.65 + weightlessAcceleration: 1.5 # Slightly more manueverable in space. + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.48 + density: 275 # Its an abandoned bioweapon species with 4 arms, of course it should be able to fight a Oni. + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: Sprite + scale: 1.2, 1.2 + - type: PlayerToolModifier + pryTimeMultiplier: 0.7 + - type: BonusMeleeDamage + damageModifierSet: + coefficients: + Blunt: 1.1 + Slash: 1.1 + Piercing: 1.1 + Asphyxiation: 1 + - type: Thirst + - type: Icon + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: full + - type: Body + prototype: Asakim + requiredLegs: 2 + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeatLizard + amount: 7 + #- type: LizardAccent # DeltaV - replaced with language accent + - type: Speech + speechSounds: Lizard + speechVerb: Reptilian + allowedEmotes: ['Thump'] + - type: TypingIndicator + proto: lizard + - type: Vocal + sounds: + Male: MaleReptilian + Female: FemaleReptilian + Unsexed: MaleReptilian + #- type: LanguageKnowledge # DeltaV - ee language port when + # speaks: + # - Draconic + # - Azaziba + # understands: + # - Draconic + # - Azaziba + - type: BodyEmotes + soundsId: ReptilianBodyEmotes + - type: Damageable + damageContainer: Biological + damageModifierSet: GenemoddedScale + - type: MeleeWeapon + soundHit: + collection: AlienClaw + angle: 30 + animation: WeaponArcClaw + damage: + types: + Slash: 15 + Structural: 24 + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: GastroToxin + Quantity: 20 + - type: SolutionRegeneration + solution: melee + generated: + reagents: + - ReagentId: GastroToxin + Quantity: 20 + #- type: NightVision # DeltaV - moved to eye organ + # isEquipment: false + # color: "#ae65bf" + # activateSound: null + # deactivateSound: null + - type: MeleeChemicalInjector + solution: melee + transferAmount: 1 + - type: Temperature + heatDamageThreshold: 400 + coldDamageThreshold: 285 + currentTemperature: 310.15 + specificHeat: 42 + coldDamage: + types: + Cold : 0.05 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 0.6 #per second, scales with temperature & other constants + - type: TemperatureSpeed + thresholds: + 301: 0.8 + 295: 0.6 + 285: 0.4 + - type: Wagging + - type: NpcFactionMember + factions: + - Syndicate # Making new AI factions is annoying with all the hostilities I have to add, whatever. + - type: Inventory + speciesId: asakim + # WWDP-Edit-Start + femaleDisplacements: + jumpsuit: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: jumpsuit-female + shoes: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: shoes + displacements: + jumpsuit: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: jumpsuit + shoes: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: shoes + #- type: GuideHelp # uncomment when you actually bring the guide over + # guides: + # - Asakim + # # WWDP-Edit-End + # Begin DeltaV Additions + - type: SyllableObfuscationAccent # unintelligable language + accent: draconian + - type: BlockWriting # can't speak common can't write common. better get an AAC tablet + # End DeltaV Additions + +- type: entity + save: false + name: Urist McAsakim + suffix: Urisst' MzAsakim + parent: BaseMobAsakim + id: MobAsakim + +- type: entity + parent: BaseMobAsakim + id: MobAsakimRandom + name: Urist McAsakim + suffix: Random Appearance + components: + - type: RandomHumanoidAppearance + - type: RandomMetadata + nameSegments: + - NamesReptilianMale + +- type: entity + parent: BaseSpeciesDummy + id: MobAsakimDummy + categories: [ HideSpawnMenu ] + description: A dummy Asakim meant to be used in character setup. + components: + - type: HumanoidAppearance + species: Asakim + hideLayersOnEquip: # WWDP + - Snout + # - HeadTop # WWDP - Because visible horns its cool + - HeadSide + - type: Inventory + speciesId: asakim + femaleDisplacements: + jumpsuit: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: jumpsuit-female + shoes: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: shoes + displacements: + jumpsuit: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: jumpsuit + shoes: + sizeMaps: + 32: + sprite: _White/Mobs/Species/displacement.rsi + state: shoes + +- type: damageModifierSet + id: GenemoddedScale # Strong brute-focused scales. + coefficients: + Cold: 1.2 + Radiation: 1.2 + Poison: 1.2 + Piercing: 0.8 + Slash: 0.95 # DeltaV - emphasize slash weakness, was 0.75 + Blunt: 0.75 + Heat: 1.1 + Shock: 1.1 diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml new file mode 100644 index 0000000000..85c8c1c14c --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/HandAutopulser.yml @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + id: HandheldAutopulserProjectile + name: plasma projectile + parent: BaseBullet + categories: [ HideSpawnMenu ] + components: + - type: Projectile + damage: + types: + Caustic: 4 # DeltaV - was 5 + Heat: 6 # DeltaV - was 14 + Radiation: 4 # DeltaV - was 5 + - type: Sprite + sprite: _Impstation/Objects/Weapons/Guns/Projectiles/energybolts.rsi # DeltaV + scale: 0.4, 0.4 + layers: + - state: medium # DeltaV + shader: unshaded + - type: Ammo + muzzleFlash: MuzzleFlashEffectEnergySmall # DeltaV - awesome imp sprites + - type: PointLight + color: "#FF00AA" diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Battery/asakim.yml b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Battery/asakim.yml new file mode 100644 index 0000000000..f2c84cc0e3 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Battery/asakim.yml @@ -0,0 +1,58 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + name: plasma autopulser # DeltaV - simplify name + parent: [BaseWeaponBattery, BaseGunWieldable] + id: WeaponRifleAsakimAutopulser + description: An advanced handheld plasma rifle. # DeltaV - no fracture here + components: + - type: Sprite + sprite: _Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-0 + map: ["enum.GunVisualLayers.Mag"] + #- type: WieldedCrosshair # DeltaV - nope + # rsi: + # sprite: _RMC14/Interface/MousePointer/flamer_mouse.rsi + # state: all + - type: Clothing + sprite: _Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi + - type: GunWieldBonus + minAngle: -18 + maxAngle: -14 + - type: Gun + minAngle: 18 + maxAngle: 26 + fireRate: 6 + burstFireRate: 15 + shotsPerBurst: 3 # DeltaV - was 5 + selectedMode: FullAuto + availableModes: + #- SemiAuto # DeltaV - semi was just kinda lame + - Burst + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/ship_svalinn.ogg + - type: MagazineVisuals + magState: mag + steps: 1 + zeroVisible: false + - type: ProjectileBatteryAmmoProvider + proto: HandheldAutopulserProjectile + fireCost: 50 # DeltaV - doubled fire cost, was 25 + - type: BatteryWeaponFireModes # DeltaV - selectable disabler mode + fireModes: + - proto: HandheldAutopulserProjectile + fireCost: 50 # DeltaV - doubled fire cost, was 25 + - proto: HandheldAutopulserDisablerProjectile + fireCost: 35 # DeltaV - less than doubled fire cost for disable mode, was 25 + - type: Appearance + - type: StaticPrice + price: 1750 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 30 # DeltaV - double to compensate for increased cost, was 15 diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Melee/sword.yml new file mode 100644 index 0000000000..41fe031547 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Melee/sword.yml @@ -0,0 +1,35 @@ +- type: entity + name: high-frequency blade + parent: Katana # DeltaV - no contraband + id: WeaponHFKatana + description: A high-frequency blade. It's incredibly powerful. # Why the glorp would a katana be modified to have a HF blade :nerd::point_up: + components: + - type: Sprite + sprite: _Mono/Objects/Weapons/Melee/hfblade.rsi + - type: MeleeWeapon + attackRate: 1.25 + wideAnimationRotation: -60 + damage: + types: # It's still incredibly strong, but -reasonable- + Slash: 19 # DeltaV - was 23 + Shock: 6 # DeltaV - was 6 + Structural: 25 # Ion doesn't exist, according to Proto manager. + - type: Item + sprite: _Mono/Objects/Weapons/Melee/hfblade.rsi + - type: Clothing + sprite: _Mono/Objects/Weapons/Melee/hfblade.rsi + slots: + - Back + - Belt + - suitStorage + - type: Reflect + reflectProb: 0.15 # DeltaV - was 0.35, these guys are strong enough as-is come on + - type: DisarmMalus + malus: 0.9 + - type: StaticPrice + price: 5000 # YOU CALL THAT A BLADE.... I'LL SHOW YOU A BLADE... + #- type: Construction # DeltaV - not gonna let tiders build this + # graph: GraphWeaponHFKatana + # node: WeaponHFKatana + #- type: PirateBountyItem # DeltaV - no pirates + # id: TSFEnergyWeapon diff --git a/Resources/Prototypes/_Mono/GameRules/Shuttles/ship_spawns.yml b/Resources/Prototypes/_Mono/GameRules/Shuttles/ship_spawns.yml new file mode 100644 index 0000000000..3c92561f8d --- /dev/null +++ b/Resources/Prototypes/_Mono/GameRules/Shuttles/ship_spawns.yml @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: preloadedGrid + id: AsakimSmall + path: /Maps/_Mono/ShuttleEvent/asakim_small.yml + copies: 1 # DeltaV - was 4 diff --git a/Resources/Prototypes/_Mono/GameRules/asakim.yml b/Resources/Prototypes/_Mono/GameRules/asakim.yml new file mode 100644 index 0000000000..dce6a2241a --- /dev/null +++ b/Resources/Prototypes/_Mono/GameRules/asakim.yml @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: 2025 Redrover1760 +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +#- type: entityTable # DeltaV - unused +# id: AsakimShipsTable +# table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp +# children: +# - id: UnknownShuttleAsakimSmall + +- type: entity + parent: BaseUnknownShuttleRule # DeltaV - was BaseRandomShuttleRule + id: AsakimShuttle + components: + - type: StationEvent + #startAnnouncement: station-event-asakim-shuttle-detected # DeltaV - no + # startAudio: + # path: /Audio/Misc/notice1.ogg + weight: 1.5 # DeltaV - was 2, now less common then Arms Dealer. rare role + minimumPlayers: 25 # DeltaV + maxOccurrences: 1 # DeltaV - was 4 + duration: null # DeltaV + #- type: GameRule # DeltaV - redundant + # minPlayers: 40 + - type: LoadMapRule + preloadedGrid: AsakimSmall + # Begin DeltaV Additions + - type: PrecognitionResult + message: psionic-power-precognition-asakim-spawn-result-message + - type: AntagSpawner + prototype: MobAsakim + - type: AntagRandomObjectives + sets: + - groups: AsakimObjectiveGroup + maxPicks: 2 + maxDifficulty: 100 # unused but mandatory + - type: AntagSelection + agentName: roles-antag-asakim-name + definitions: + - spawnerPrototype: SpawnPointGhostAsakim + min: 1 + max: 1 + pickPlayer: false + startingGear: AsakimGear + roleLoadout: + - RoleSurvivalStandard # maybe remove this + briefing: + text: asakim-role-briefing + color: "#5085fa" + sound: "/Audio/_DV/Ambience/Antag/asakimbriefing.ogg" + components: + - type: RandomHumanoidAppearance + randomizeName: true + - type: NpcFactionMember + factions: + - Syndicate + - type: SurgerySpeedModifier # not sure why this was in the original one but whatever + speedModifier: 1.5 + #- type: PsionicBonusChance # uncomment when psionics are cool + # multiplier: 999 # no way to guarentee random psionics so. next best thing + mindRoles: + - MindRoleAsakim + # End DeltaV Additions diff --git a/Resources/Prototypes/_Mono/Species/asakim.yml b/Resources/Prototypes/_Mono/Species/asakim.yml new file mode 100644 index 0000000000..c0469a2047 --- /dev/null +++ b/Resources/Prototypes/_Mono/Species/asakim.yml @@ -0,0 +1,162 @@ +# SPDX-FileCopyrightText: 2025 starch +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: species + id: Asakim + name: species-name-asakim + roundStart: false # sad... + prototype: MobAsakim + sprites: MobAsakimSprites + dollPrototype: MobAsakimDummy + skinColoration: Hues + defaultSkinTone: "#444541" + markingLimits: MobAsakimMarkingLimits + maleFirstNames: NamesReptilianMale # DeltaV + femaleFirstNames: NamesReptilianFemale # DeltaV + naming: FirstDashFirst + +- type: speciesBaseSprites + id: MobAsakimSprites + sprites: + Special: MobAsakimAnyMarking + Head: MobAsakimHead + HeadTop: MobAsakimAnyMarking + Chest: MobAsakimTorso + Tail: MobHumanoidAnyMarking + Eyes: MobAsakimEyes + LArm: MobAsakimLArm + RArm: MobAsakimRArm + LHand: MobAsakimLHand + RHand: MobAsakimRHand + LLeg: MobAsakimLLeg + RLeg: MobAsakimRLeg + LFoot: MobAsakimLFoot + RFoot: MobAsakimRFoot + +- type: humanoidBaseSprite + id: MobAsakimAnyMarking + +- type: humanoidBaseSprite + id: MobAsakimMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobAsakimHead + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobAsakimHeadMale + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobAsakimHeadFemale + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobAsakimTorso + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobAsakimTorsoMale + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobAsakimTorsoFemale + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobAsakimLLeg + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobAsakimLArm + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobAsakimLHand + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobAsakimLFoot + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobAsakimRLeg + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobAsakimRArm + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobAsakimRHand + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobAsakimRFoot + baseSprite: + sprite: _Mono/Mobs/Species/Asakim/parts.rsi + state: r_foot + +- type: humanoidBaseSprite + id: MobAsakimEyes + baseSprite: + sprite: _Mono/Mobs/Customization/asakimeyes.rsi + state: eyes + +- type: markingPoints + id: MobAsakimMarkingLimits + onlyWhitelisted: true + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ LizardTailSmooth ] + HeadTop: + points: 2 + required: false + HeadSide: + points: 2 # WWDP-Edit + required: false + Chest: + points: 3 + required: false + Legs: + points: 2 + required: false + Arms: + points: 2 + required: false diff --git a/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000..87282ec842 Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/icon.png b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/icon.png new file mode 100644 index 0000000000..447174a09e Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/icon.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-left.png b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-left.png new file mode 100644 index 0000000000..558124e55c Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-right.png b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-right.png new file mode 100644 index 0000000000..e1db9b0bda Binary files /dev/null and b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/meta.json new file mode 100644 index 0000000000..2d0ed01760 --- /dev/null +++ b/Resources/Textures/_Goobstation/Clothing/Uniforms/Jumpsuit/ninja.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Modified by Jackal298 (github), based on paradise station at https://github.com/ParadiseSS13/Paradise/blob/ede55cc8f5b50abcd4f51d37779b56853a440a9a/icons/obj/clothing/uniforms.dmi, fix digi sprites by DreamlyJack", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET-asakim.png b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET-asakim.png new file mode 100644 index 0000000000..f62d0af3ae Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET-asakim.png differ diff --git a/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET.png b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..0c504a1a5a Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/icon.png b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/icon.png new file mode 100644 index 0000000000..252b4a373e Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/icon.png differ diff --git a/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/meta.json b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/meta.json new file mode 100644 index 0000000000..4e6118dbd1 --- /dev/null +++ b/Resources/Textures/_Mono/Clothing/Head/Hardsuits/asakim.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by _starch_ (Discord)", + "copyright": "Icon state from NSV13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "equipped-HELMET-asakim", + "directions": 4 + }, + { + "name": "icon" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING-asakim.png b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING-asakim.png new file mode 100644 index 0000000000..35f8916f31 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING-asakim.png differ diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..73709f6f63 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/icon.png b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/icon.png new file mode 100644 index 0000000000..f9992ac564 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/icon.png differ diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-left.png b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-left.png new file mode 100644 index 0000000000..a176b8cbcd Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-right.png b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-right.png new file mode 100644 index 0000000000..ebad26f8e4 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/meta.json b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/meta.json new file mode 100644 index 0000000000..481dabe614 --- /dev/null +++ b/Resources/Textures/_Mono/Clothing/OuterClothing/Hardsuits/asakim.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited from Baystation12 sprites by _starch_ (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-OUTERCLOTHING-asakim", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/eyes.png b/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/eyes.png new file mode 100644 index 0000000000..6dfe5f042c Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/eyes.png differ diff --git a/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/meta.json b/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/meta.json new file mode 100644 index 0000000000..181ff8bb71 --- /dev/null +++ b/Resources/Textures/_Mono/Mobs/Customization/asakimeyes.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Modified from /tg/ station sprites by _starch_ (discord).", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "eyes", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/full.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/full.png new file mode 100644 index 0000000000..af567880f6 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/full.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_f.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_f.png new file mode 100644 index 0000000000..b620e0a2ee Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_m.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_m.png new file mode 100644 index 0000000000..88692dc737 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_arm.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_arm.png new file mode 100644 index 0000000000..473c008c06 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_foot.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_foot.png new file mode 100644 index 0000000000..90ddb58aac Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_hand.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_hand.png new file mode 100644 index 0000000000..66bd843422 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_leg.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_leg.png new file mode 100644 index 0000000000..a74d3a7dfa Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/meta.json b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/meta.json new file mode 100644 index 0000000000..291d530155 --- /dev/null +++ b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/meta.json @@ -0,0 +1,63 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/08898964e67a0d517ca4e47eec7039394b694ac2/icons/mob/species/lizard/bodyparts.dmi", + "copyright": "Edited by _starch_ (Discord) from sprites from /tg/, and from sprites edited by PixelTheKermit (github).", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_arm.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_arm.png new file mode 100644 index 0000000000..b627c28643 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_foot.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_foot.png new file mode 100644 index 0000000000..299c0d19f3 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_hand.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_hand.png new file mode 100644 index 0000000000..2fba797c69 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_leg.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_leg.png new file mode 100644 index 0000000000..721a40fe64 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_f.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_f.png new file mode 100644 index 0000000000..4e8dceaee2 Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_m.png b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_m.png new file mode 100644 index 0000000000..bd7818e8fa Binary files /dev/null and b/Resources/Textures/_Mono/Mobs/Species/Asakim/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/base.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/base.png new file mode 100644 index 0000000000..20599fbf34 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/base.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-BACKPACK.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..f60ea19cf8 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..7771c55069 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/icon.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/icon.png new file mode 100644 index 0000000000..4e4f6c7379 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/icon.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-left.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-left.png new file mode 100644 index 0000000000..e339c1495d Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-right.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-right.png new file mode 100644 index 0000000000..557b06fabc Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/mag-0.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/mag-0.png new file mode 100644 index 0000000000..27573f3f62 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/mag-0.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/meta.json b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/meta.json new file mode 100644 index 0000000000..ddc19b0883 --- /dev/null +++ b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Kitbashed from various sprites by _starch_ (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-0" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-left.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000..01f0df073d Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-right.png b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000..26093db168 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Guns/Battery/asakimrifle.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BACKPACK.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..5f72e94af4 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BELT.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BELT.png new file mode 100644 index 0000000000..74e69f6b53 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000..5f72e94af4 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/icon.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/icon.png new file mode 100644 index 0000000000..7601c8c683 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/icon.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-left.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-left.png new file mode 100644 index 0000000000..6f4029a20b Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-right.png b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-right.png new file mode 100644 index 0000000000..8cc8a1f545 Binary files /dev/null and b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/meta.json b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/meta.json new file mode 100644 index 0000000000..659f6b16a7 --- /dev/null +++ b/Resources/Textures/_Mono/Objects/Weapons/Melee/hfblade.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/a9451f4d22f233d328b63490c2bcf64a640e42ff and modified by Jackal298. Recolored by _starch_ (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit-female.png b/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit-female.png new file mode 100644 index 0000000000..c75c83ce3e Binary files /dev/null and b/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit-female.png differ diff --git a/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit.png b/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit.png new file mode 100644 index 0000000000..cb3966d923 Binary files /dev/null and b/Resources/Textures/_White/Mobs/Species/displacement.rsi/jumpsuit.png differ diff --git a/Resources/Textures/_White/Mobs/Species/displacement.rsi/meta.json b/Resources/Textures/_White/Mobs/Species/displacement.rsi/meta.json new file mode 100644 index 0000000000..38fcf983e0 --- /dev/null +++ b/Resources/Textures/_White/Mobs/Species/displacement.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by Litogin", + "size": { + "x": 32, + "y": 32 + }, + "load": { + "srgb": false + }, + "states": [ + { + "name": "jumpsuit", + "directions": 4 + }, + { + "name": "jumpsuit-female", + "directions": 4 + }, + { + "name": "shoes", + "directions" : 4 + } + ] +} diff --git a/Resources/Textures/_White/Mobs/Species/displacement.rsi/shoes.png b/Resources/Textures/_White/Mobs/Species/displacement.rsi/shoes.png new file mode 100644 index 0000000000..f483797a37 Binary files /dev/null and b/Resources/Textures/_White/Mobs/Species/displacement.rsi/shoes.png differ