diff --git a/Content.Shared/_Scp/Scp208/Scp208Component.cs b/Content.Shared/_Scp/Scp208/Scp208Component.cs new file mode 100644 index 00000000000..ac3f085c52c --- /dev/null +++ b/Content.Shared/_Scp/Scp208/Scp208Component.cs @@ -0,0 +1,34 @@ +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Scp.Scp208; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class Scp208Component : Component +{ + [DataField] + public EntProtoId ActionHealId = "Scp208Heal"; + + [DataField(required: true)] + public DamageSpecifier Damage = default!; + + [DataField] + public bool StopBleeding = true; + + [DataField] + public float BloodlossModifier = -1.0f; + + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(3f); + + [DataField] + public SoundSpecifier? HealingBeginSound; + + [DataField] + public SoundSpecifier? HealingEndSound; + + [ViewVariables, AutoNetworkedField] + public EntityUid? Action; +} diff --git a/Content.Shared/_Scp/Scp208/SharedScp208System.cs b/Content.Shared/_Scp/Scp208/SharedScp208System.cs new file mode 100644 index 00000000000..8b9bf990698 --- /dev/null +++ b/Content.Shared/_Scp/Scp208/SharedScp208System.cs @@ -0,0 +1,159 @@ +using Content.Shared.Actions; +using Content.Shared.DoAfter; +using Content.Shared.Popups; +using Content.Shared.Standing; +using Content.Shared.Body.Systems; +using Content.Shared.Body.Components; +using Content.Shared.FixedPoint; +using Content.Shared.IdentityManagement; +using Content.Shared.Mobs.Systems; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Serialization; +using Content.Shared.Damage.Components; +using Content.Shared.Damage.Systems; + +namespace Content.Shared._Scp.Scp208; + +public sealed class SharedScp208System : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedBloodstreamSystem _bloodstream = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnShutdown); + + SubscribeLocalEvent(OnHealAction); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnStartup(Entity ent, ref ComponentStartup args) + { + _actions.AddAction(ent, ref ent.Comp.Action, ent.Comp.ActionHealId); + Dirty(ent); + } + + private void OnShutdown(Entity ent, ref ComponentShutdown args) + { + _actions.RemoveAction(ent.Owner, ent.Comp.Action); + } + + private void OnHealAction(Entity ent, ref Scp208HealTargetActionEvent args) + { + if (args.Handled) + return; + + if (!CanHeal(ent, args.Target, out var errorMessage)) + { + if (errorMessage != null) + _popup.PopupClient(errorMessage, ent, ent); + + return; + } + + args.Handled = TryStartHealing(ent, args.Target); + } + + private bool TryStartHealing(Entity ent, EntityUid target) + { + _audio.PlayPredicted(ent.Comp.HealingBeginSound, ent, ent); + + var doAfterArgs = new DoAfterArgs(EntityManager, ent, ent.Comp.Delay, new Scp208HealDoAfterEvent(), ent, target: target) + { + BreakOnMove = true, + NeedHand = false, + }; + + return _doAfter.TryStartDoAfter(doAfterArgs); + } + + private void OnDoAfter(Entity ent, ref Scp208HealDoAfterEvent args) + { + if (args.Cancelled || args.Handled || args.Target is not { } target) + return; + + if (!TryComp(target, out var damageable)) + return; + + _damageable.TryChangeDamage(target, ent.Comp.Damage, true, origin: ent); + + if (ent.Comp.StopBleeding && TryComp(target, out var bloodstream)) + { + var wasBleeding = bloodstream.BleedAmount > 0; + _bloodstream.TryModifyBleedAmount((target, bloodstream), ent.Comp.BloodlossModifier); + + if (wasBleeding && bloodstream.BleedAmount <= 0) + { + var popup = ent.Owner == target + ? Loc.GetString("medical-item-stop-bleeding-self") + : Loc.GetString("medical-item-stop-bleeding", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupClient(popup, target, ent); + } + } + + _audio.PlayPredicted(ent.Comp.HealingEndSound, ent, ent); + + if (_mobState.IsAlive(target) && HasDamageToHeal(target, damageable, ent.Comp)) + TryStartHealing(ent, target); + + args.Handled = true; + } + + private bool CanHeal(Entity ent, EntityUid target, out string? errorMessage) + { + errorMessage = null; + + if (_standing.IsDown(ent.Owner)) + return false; + + if (!TryComp(target, out var damageable)) + return false; + + if (!_mobState.IsAlive(target)) + return false; + + if (!HasDamageToHeal(target, damageable, ent.Comp)) + return false; + + return true; + } + + private bool HasDamageToHeal(EntityUid target, DamageableComponent damageable, Scp208Component scp208) + { + var damage = _damageable.GetAllDamage((target, damageable)); + foreach (var (type, _) in scp208.Damage.DamageDict) + { + if (damage.DamageDict.TryGetValue(type, out var currentDamage) && + currentDamage > FixedPoint2.Zero) + { + return true; + } + } + + if (scp208.StopBleeding && TryComp(target, out var bloodstream)) + { + if (bloodstream.BleedAmount > 0) + return true; + } + + return false; + } +} + +[Serializable, NetSerializable] +public sealed partial class Scp208HealDoAfterEvent : SimpleDoAfterEvent +{ +} + +public sealed partial class Scp208HealTargetActionEvent : EntityTargetActionEvent +{ +} diff --git a/Resources/Locale/en-US/_prototypes/_scp/actions/scp208.ftl b/Resources/Locale/en-US/_prototypes/_scp/actions/scp208.ftl new file mode 100644 index 00000000000..d1a2195eacb --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/actions/scp208.ftl @@ -0,0 +1,4 @@ +ent-Scp208Shield = Physical shield + .desc = You create a strong barrier right in front of your opponent. +ent-Scp208Heal = god's treatment + .desc = You focus on your healing ability and heal a specific person. diff --git a/Resources/Locale/en-US/_prototypes/_scp/actions/scp4449.ftl b/Resources/Locale/en-US/_prototypes/_scp/actions/scp4449.ftl new file mode 100644 index 00000000000..4a4bfdd7d95 --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/actions/scp4449.ftl @@ -0,0 +1,2 @@ +ent-ActionScp4449Jump = jump + .desc = You push yourself forward in the direction you are looking. diff --git a/Resources/Locale/en-US/_prototypes/_scp/catalog/fills/lockers/dressers.ftl b/Resources/Locale/en-US/_prototypes/_scp/catalog/fills/lockers/dressers.ftl index 9ee54eda1e8..58791372072 100644 --- a/Resources/Locale/en-US/_prototypes/_scp/catalog/fills/lockers/dressers.ftl +++ b/Resources/Locale/en-US/_prototypes/_scp/catalog/fills/lockers/dressers.ftl @@ -22,3 +22,7 @@ ent-ScpDresserScientificServiceDirectorFilled = { ent-DresserResearchDirectorFil ent-ScpDresserSquadLeaderFilled = { ent-DresserWardenFilled } .suffix = { ent-DresserWardenFilled.suffix } .desc = { ent-DresserWardenFilled.desc } + +ent-ScpDresserScp208Filled = { ent-ScpDresser } + .suffix = SCP-208 + .desc = { ent-ScpDresser.desc } diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl new file mode 100644 index 00000000000..606706abe12 --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl @@ -0,0 +1,3 @@ +ent-Scp208MilitaryClothing = military uniform + .desc = Green modern military uniform. It looks like it was made especially for someone. + .suffix = SCP-208 diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl new file mode 100644 index 00000000000..a153ca5280b --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl @@ -0,0 +1 @@ +ent-Scp007 = ??? diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl new file mode 100644 index 00000000000..8c9e885c39c --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl @@ -0,0 +1 @@ +ent-Scp2020 = ??? diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl new file mode 100644 index 00000000000..c12a12d41fd --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl @@ -0,0 +1 @@ +ent-Scp208 = ??? diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl new file mode 100644 index 00000000000..08e0a529e6a --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl @@ -0,0 +1 @@ +ent-Scp4449 = ??? diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl new file mode 100644 index 00000000000..51ec82a2c3d --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl @@ -0,0 +1 @@ +ent-Scp492 = ??? diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/objects/scpparts/parts.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/objects/scpparts/parts.ftl index d0592176cc4..cc17db25260 100644 --- a/Resources/Locale/en-US/_prototypes/_scp/entities/objects/scpparts/parts.ftl +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/objects/scpparts/parts.ftl @@ -16,6 +16,8 @@ ent-Scp096Photo = strange photograph .desc = A small photograph in which the contents are almost indistinguishable. You can barely recognize the outline of a humanoid silhouette. ent-Scp019GlassShard = ceramic shard .desc = Ceramic shard with recognizable ancient Greek style and decor. +ent-ScpDirtLump = lump of dirt + .desc = A small pile of soil. ent-Scp012Paper = old paper .desc = Yellowed piece of paper with bloody traces. ent-Scp106Cloth = rotten cloth diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl new file mode 100644 index 00000000000..1511523ee2c --- /dev/null +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl @@ -0,0 +1,5 @@ +ent-Scp527PaperCollection = collection paper + .desc = A congratulatory paper about the discovery of a certain "Little Mister". + +ent-Scp1508PaperFlyer = children's flyer + .desc = An advertisement for "Mikey the Janitor-Friend©". Judging by the text, this thing will clean up after you. diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl index 5f480cca4ac..4ff9c8be1f0 100644 --- a/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl @@ -188,14 +188,20 @@ ent-PosterSCP173 = "SCP-173" poster .desc = Information poster for SCP-173. ent-PosterScp207 = "SCP-207" poster .desc = Information poster for SCP-207. +ent-PosterScp208 = "SCP-208" poster + .desc = Information poster for SCP-208. ent-PosterSCP247 = "SCP-247" poster .desc = Information poster for SCP-247. ent-PosterScp330 = "SCP-330" poster .desc = Information poster for SCP-330. ent-PosterSCP457 = "SCP-457" poster .desc = Information poster for SCP-457. +ent-PosterSCP492 = "SCP-492" poster + .desc = Information poster for SCP-492. ent-PosterSCP500 = "SCP-500" poster .desc = Information poster for SCP-500. +ent-PosterSCP527 = "SCP-527" poster + .desc = Information poster for SCP-527. ent-PosterSCP969 = "SCP-969" poster .desc = Information poster for SCP-969. ent-PosterSCP999 = "SCP-999" poster @@ -206,8 +212,12 @@ ent-PosterSCP612 = "SCP-612" poster .desc = Information poster for SCP-612. ent-PosterSCP1589 = "SCP-1589" poster .desc = Information poster for SCP-1589. +ent-PosterSCP2020 = "SCP-2020" poster + .desc = Information poster for SCP-2020. ent-PosterSCP2908 = "SCP-2908" poster .desc = Information poster for SCP-2908. +ent-PosterSCP4449 = "SCP-4449" poster + .desc = Information poster for SCP-4449. ent-PosterWideBase = { ent-PosterBase } .desc = { ent-PosterBase.desc } ent-PosterScp173Wide = "Staring Contest" poster diff --git a/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl b/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl index ca760812108..c4ca38379d5 100644 --- a/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl +++ b/Resources/Locale/en-US/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl @@ -18,10 +18,16 @@ ent-SignDirectionalScp173 = "SCP-173" sign .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp207 = "SCP-207" sign .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp208 = "SCP-208" sign + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp330 = "SCP-330" sign .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp492 = "SCP-492" sign + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp500 = "SCP-500" sign .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp527 = "SCP-527" sign + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp612 = "SCP-612" sign .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp939 = "SCP-939" sign @@ -30,8 +36,12 @@ ent-SignDirectionalScp969 = "SCP-969" sign .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp999 = "SCP-999" sign .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp2020 = "SCP-2020" sign + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp2908 = "SCP-2908" sign .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp4449 = "SCP-4449" sign + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScpClassD = "Class D Block" sign .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScpHeavyContainmentZone = "Heavy Containment Zone" sign diff --git a/Resources/Locale/en-US/_strings/_scp/paper/wondertainmentPapers.ftl b/Resources/Locale/en-US/_strings/_scp/paper/wondertainmentPapers.ftl new file mode 100644 index 00000000000..2caf17d55c1 --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/paper/wondertainmentPapers.ftl @@ -0,0 +1,33 @@ +info-paper-scp-527-collection = + Wow! You've just found yourself your very own Little Mister, a limited edition collection from Dr. Wondertainment! + + Find them all and become Mr. Collector!! + + 01. Mr. Chameleon + 02. Mr. Headless + 03. Mr. Laugh + 04. Mr. Forgetful + 05. Mr. Shapey + 06. Mr. Soap + 07. Mr. Hungry + 08. Mr. Brass + 09. Mr. Hot + 10. Ms. Sweetie + 11. Mr. Life and Mr. Death + 12. Mr. Fish < + 13. Mr. Moon + 14. Mr. Redd (discontinued) + 15. Mr. Money + 16. Mr. Lost + 17. Mr. Lie + 18. Mr. Mad + 19. Mr. Scary + 20. Mr. Stripes + +info-paper-scp-1508-flyer = + HEY, KIDDOES! + Has doing chores around the house turned into a total drag? + Does your mom yell at you so much to get your room cleaned that you’ve started calling her a witch? + Well, my friends, now a brand-new buddy from DR. WONDERTAINMENT©, creator of General Beep and Robo-Dude, is here to save the day!! His name is Mikey the Janitor-Friend©! He can do everything your mom and dad want you to do, while you can just keep on having fun with your pals! + And while you’re slacking off, check out the all-new WONDER-CATA-LOG-TABULOUS©-2003! With our latest toys, it’s the best way to spend all that newfound free time! + Batteries not included. If your Mikey the Janitor-Friend© begins to play, shirk work, draw funny pictures, or simply performs poorly, send him right back to us for reconditioning! Just pay for shipping and handling. \ No newline at end of file diff --git a/Resources/Locale/en-US/_strings/_scp/roles/scp.ftl b/Resources/Locale/en-US/_strings/_scp/roles/scp.ftl index 1ecee8e6914..b2871613eb7 100644 --- a/Resources/Locale/en-US/_strings/_scp/roles/scp.ftl +++ b/Resources/Locale/en-US/_strings/_scp/roles/scp.ftl @@ -19,11 +19,23 @@ job-description-scp999 = A friendly, gelatinous entity that causes boundless joy job-name-scp3288-alpha = SCP-3288-Alpha "The Aristocrats" job-description-scp3288-alpha = A luxurious giant in the rags of the Habsburgs former glory. Arrogant, cruel, and ready to devour anyone they deem an "inferior creature." +job-name-scp007 = SCP-007 «Abdominal Planet» +job-description-scp007 = A good young man with a replica of the Earth in his stomach. He is completely indifferent to this. job-name-scp0192 = SCP-019-2 «The Monster Pot» job-description-scp0192 = An extremely aggressive creature that emerges from SCP-019. +job-name-scp208 = SCP-208 «Bes» +job-description-scp208 = A kind-hearted Egyptian deity who endlessly wishes only goodness and happiness for people. +job-name-scp492 = SCP-492 «Animated Cloth Dummy» +job-description-scp492 = A hardworking animated doll who used to be a prop in an abandoned pirate-themed amusement park. +job-name-scp527 = SCP-527 «Mr. Fish» +job-description-scp527 = Mr. Fish - one of the Little Misters in Dr. Wondertainment's collection. He has a fish head instead of a human head... That's all. job-name-scp1589 = SCP-1589 «Roman Anthropophagus» job-description-scp1589 = An obedient and calm giant who carries out any orders. +job-name-scp2020 = SCP-2020 «Cliche, Right?» +job-description-scp2020 = A talkative and tiresome green humanoid with obvious visual similarities to the «Greys». job-name-scp3288 = SCP-3288 "The Aristocrats" job-description-scp3288-servant = A lower-class individual of the realm, bound to obey their masters. Organize feasts and balls, cook human flesh, and entertain the aristocrats. job-description-scp3288-knight = A defender of the Habsburg dynasty. Patrol the territory, protect purebred individuals, and ruthlessly destroy outsiders. job-description-scp3288-aristocrat = An influential mutant with sadistic tendencies. Devour human flesh, issue orders to servants, and enjoy yourself. +job-name-scp4449 = SCP-4449 «Daisuke Kawamoto, Legendary Slayer of Evil» +job-description-scp4449 = A samurai scarecrow that embodies the spirit of a brave Japanese warrior. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp007.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp007.ftl new file mode 100644 index 00000000000..794e6571a13 --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp007.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp007-name = SCP-007 +ghost-role-information-scp007-description = You are an abnormal person with a miniature copy of the Earth in the stomach area. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp2020.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp2020.ftl new file mode 100644 index 00000000000..9b90049663e --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp2020.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp2020-name = SCP-2020 +ghost-role-information-scp2020-description = You are a talkative and carefree anomalous object who intends to write science fiction. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp208.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp208.ftl new file mode 100644 index 00000000000..c784354bf0d --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp208.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp208-name = SCP-208 +ghost-role-information-scp208-description = You are a friendly and peace-loving anomalous object, unquestioningly warm-hearted and loyal to people. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp4449.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp4449.ftl new file mode 100644 index 00000000000..7b5edae5c08 --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp4449.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp4449-name = SCP-4449 +ghost-role-information-scp4449-description = You are a brave and benevolent anomalous object who wants to protect people. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp492.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp492.ftl new file mode 100644 index 00000000000..d2e4b9bb31f --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp492.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp492-name = SCP-492 +ghost-role-information-scp492-description = You are a hard-working, intelligent object with a reliable character and a rag body. diff --git a/Resources/Locale/en-US/_strings/_scp/scp/scp527.ftl b/Resources/Locale/en-US/_strings/_scp/scp/scp527.ftl new file mode 100644 index 00000000000..dce1def9057 --- /dev/null +++ b/Resources/Locale/en-US/_strings/_scp/scp/scp527.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp527-name = SCP-527 +ghost-role-information-scp527-description = You are an unpretentious intelligent object, with no special features except for your fish head. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp208.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp208.ftl new file mode 100644 index 00000000000..5c0ef6b9121 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp208.ftl @@ -0,0 +1,4 @@ +ent-Scp208Shield = Физический щит + .desc = Вы создаете крепкий барьер прямо перед носом противника. +ent-Scp208Heal = божье лечение + .desc = Вы сосредотачиваете свою лечебную способность на конкретном человеке. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp4449.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp4449.ftl new file mode 100644 index 00000000000..afb7f9c5fd4 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp4449.ftl @@ -0,0 +1,2 @@ +ent-ActionScp4449Jump = прыжок + .desc = Вы отталкиваетесь вперед в направлении, куда смотрите. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/lockers/dressers.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/lockers/dressers.ftl index 9ee54eda1e8..58791372072 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/lockers/dressers.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/lockers/dressers.ftl @@ -22,3 +22,7 @@ ent-ScpDresserScientificServiceDirectorFilled = { ent-DresserResearchDirectorFil ent-ScpDresserSquadLeaderFilled = { ent-DresserWardenFilled } .suffix = { ent-DresserWardenFilled.suffix } .desc = { ent-DresserWardenFilled.desc } + +ent-ScpDresserScp208Filled = { ent-ScpDresser } + .suffix = SCP-208 + .desc = { ent-ScpDresser.desc } diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl new file mode 100644 index 00000000000..36a9b9df84f --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/clothing/uniforms/scp208.ftl @@ -0,0 +1,3 @@ +ent-Scp208MilitaryClothing = военная униформа + .desc = Современная военная униформа зеленого цвета. Похоже, она была сшита специально для кого-то. + .suffix = SCP-208 diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl new file mode 100644 index 00000000000..a153ca5280b --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp007.ftl @@ -0,0 +1 @@ +ent-Scp007 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl new file mode 100644 index 00000000000..8c9e885c39c --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp2020.ftl @@ -0,0 +1 @@ +ent-Scp2020 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl new file mode 100644 index 00000000000..c12a12d41fd --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp208.ftl @@ -0,0 +1 @@ +ent-Scp208 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl new file mode 100644 index 00000000000..08e0a529e6a --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp4449.ftl @@ -0,0 +1 @@ +ent-Scp4449 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl new file mode 100644 index 00000000000..51ec82a2c3d --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp492.ftl @@ -0,0 +1 @@ +ent-Scp492 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp527.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp527.ftl new file mode 100644 index 00000000000..5e2cf9a0814 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp527.ftl @@ -0,0 +1 @@ +ent-Scp527 = ??? diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scpparts/parts.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scpparts/parts.ftl index e15d22c3cb4..2b28163f3e3 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scpparts/parts.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scpparts/parts.ftl @@ -16,6 +16,8 @@ ent-Scp096Photo = странная фотография .desc = Небольшая фотография, на которой практически неразличимо содержимое. ent-Scp019GlassShard = керамический осколок .desc = Керамический осколок с узнаваемым Древнегреческим стилем и декором. +ent-ScpDirtLump = комок грязи + .desc = Небольшая горсть почвы. ent-Scp012Paper = старая бумага .desc = Пожелтевший кусок бумаги с кровавыми следами. ent-Scp106Cloth = сгнившая ткань diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl new file mode 100644 index 00000000000..af154b5d8a1 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/specific/wondertainmentPapers.ftl @@ -0,0 +1,5 @@ +ent-Scp527PaperCollection = коллекционная бумага + .desc = Поздравительная бумага о нахождении некого "Маленького Господина". + +ent-Scp1508PaperFlyer = детский вкладыш + .desc = Реклама для "Майки, Друг-Уборщик©". Судя по тексту, эта игрушка будет убираться за тобой. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl index 647db886c17..a8409375d48 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/posters.ftl @@ -168,6 +168,8 @@ ent-PosterScpContainmentRoomBase = { ent-PosterBase } .desc = { ent-PosterBase.desc } ent-PosterSCP005 = плакат «SCP-005» .desc = Информационный плакат SCP-005 +ent-PosterSCP007 = плакат «SCP-007» + .desc = Информационный плакат SCP-007 ent-PosterScp012 = плакат «SCP-012» .desc = Информационный плакат SCP-012 ent-PosterScp018 = плакат «SCP-018» @@ -198,6 +200,8 @@ ent-PosterSCP173 = плакат «SCP-173» .desc = Информационный плакат SCP-173 ent-PosterScp207 = плакат «SCP-207» .desc = Информационный плакат SCP-207 +ent-PosterScp208 = плакат «SCP-208» + .desc = Информационный плакат SCP-208 ent-PosterSCP247 = плакат «SCP-247» .desc = Информационный плакат SCP-247 ent-PosterSCP268 = плакат «SCP-268» @@ -208,8 +212,12 @@ ent-PosterSCP427 = плакат «SCP-427» .desc = Информационный плакат SCP-427 ent-PosterSCP457 = плакат «SCP-457» .desc = Информационный плакат SCP-457 +ent-PosterSCP492 = плакат «SCP-492» + .desc = Информационный плакат SCP-492 ent-PosterSCP500 = плакат «SCP-500» .desc = Информационный плакат SCP-500 +ent-PosterSCP527 = плакат «SCP-527» + .desc = Информационный плакат SCP-527 ent-PosterSCP714 = плакат «SCP-714» .desc = Информационный плакат SCP-714 ent-PosterSCP969 = плакат «SCP-969» @@ -224,12 +232,16 @@ ent-PosterSCP1508 = плакат «SCP-1508» .desc = Информационный плакат SCP-1508 ent-PosterSCP1589 = плакат «SCP-1589» .desc = Информационный плакат SCP-1589 +ent-PosterSCP2020 = плакат «SCP-2020» + .desc = Информационный плакат SCP-2020 ent-PosterSCP2022 = плакат «SCP-2022» .desc = Информационный плакат SCP-2022 ent-PosterSCP2295 = плакат «SCP-2295» .desc = Информационный плакат SCP-2295 ent-PosterSCP2908 = плакат «SCP-2908» .desc = Информационный плакат SCP-2908 +ent-PosterSCP4449 = плакат «SCP-4449» + .desc = Информационный плакат SCP-4449 ent-PosterWideBase = { ent-PosterBase } .desc = { ent-PosterBase.desc } ent-PosterScp173Wide = плакат «Гляделки» diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl index 5a14380bbd0..4d4d59783e8 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/structures/wallmounts/signs/signs.ftl @@ -4,6 +4,8 @@ ent-BaseSignDirectionalScp = направленный указатель .desc = Показывает в сторону, в которую не стоит ходить без четкого понимая, куда это приведет. ent-SignDirectionalScp005 = указатель «SCP-005» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp007 = указатель «SCP-007» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp012 = указатель «SCP-012» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp018 = указатель «SCP-018» @@ -28,14 +30,20 @@ ent-SignDirectionalScp173 = указатель «SCP-173» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp207 = указатель «SCP-207» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp208 = указатель «SCP-208» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp268 = указатель «SCP-268» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp330 = указатель «SCP-330» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp427 = указатель «SCP-427» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp492 = указатель «SCP-492» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp500 = указатель «SCP-500» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp527 = указатель «SCP-527» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp612 = указатель «SCP-612» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp714 = указатель «SCP-714» @@ -46,10 +54,14 @@ ent-SignDirectionalScp969 = указатель «SCP-969» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp999 = указатель «SCP-999» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp2020 = указатель «SCP-2020» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp2022 = указатель «SCP-2022» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp2908 = указатель «SCP-2908» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp4449 = указатель «SCP-4449» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScpClassD = указатель «Блок класса D» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScpHeavyContainmentZone = указатель «Тяжелая зона содержания» diff --git a/Resources/Locale/ru-RU/_strings/_scp/paper/wondertainmentPapers.ftl b/Resources/Locale/ru-RU/_strings/_scp/paper/wondertainmentPapers.ftl new file mode 100644 index 00000000000..f619f97807c --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/paper/wondertainmentPapers.ftl @@ -0,0 +1,33 @@ +info-paper-scp-527-collection = + Вот это да! Ты только что нашел своего Маленького Господина из малотиражной коллекции Доктора Развлечудова! + + Отыщи их всех и стань Господином Коллекционером!! + + 01. Г-н Хамелеон + 02. Г-н Безголовый + 03. Г-н Смех + 04. Г-н Забывчивый + 05. Г-н Образ + 06. Г-н Мыло + 07. Г-н Голодный + 08. Г-н Латунь + 09. Г-н Горячий + 10. Г-жа Сладость + 11. Г-н Жизнь и г-н Смерть + 12. Г-н Рыба < + 13. Г-н Луна + 14. Г-н Редд (отменён) + 15. Г-н Деньги + 16. Г-н Потерянный + 17. Г-н Ложь + 18. Г-н Безумец + 19. Г-н Жуть + 20. Г-н Полосатый + +info-paper-scp-1508-flyer = + ЭЙ, ДЕТИШКИ! + Работа по дому превратилась в жуткую обузу? + Чтобы вы привели в порядок свою комнату, мама до того кричит на вас, что вы назвали её ведьмой? + Что ж, друзья мои, теперь вам на помощь придёт новый друг от ДОКТОРА РАЗВЛЕЧУДОВА©, создателя генерала Бипа и Робо-Чувака!! Его зовут Майки, Друг-Уборщик©! Он может делать всё, что хотят от вас мама и папа, а можете продолжать веселиться с друзьями! + И пока вы отдыхаете, проверьте новый РАЗВЛЕ-КАТА-ЧУДНЫЙ-ЛОГ©-2003! Благодаря нашим новым игрушкам, это лучший способ потратить полученное свободное от работы время! + Батарейки в комплект не входят. Если ваш Майки, Друг-Уборщик© начинает играть, отлынивать от работы, рисовать смешные картинки или просто плохо справляется, пришлите его обратно к нам для восстановления! Просто заплатите за доставку и ремонт. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl b/Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl index fe2354a02f8..1c2e9539951 100644 --- a/Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl +++ b/Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl @@ -19,17 +19,29 @@ job-description-scp999 = Дружелюбная студнеобразная с job-name-scp3288-alpha = SCP-3288-Альфа «Аристократы» job-description-scp3288-alpha = Роскошный великан в лохмотьях былой славы Габсбургов. Высокомерный, жестокий и готовый сожрать любого, кого посчитает "низшим существом". +job-name-scp007 = SCP-007 «Планета в животе» +job-description-scp007 = Добродушный молодой мужчина с копией Земли в области живота. Он совершенно безразличен к этому. job-name-scp0192 = SCP-019-2 «Чудовищная ваза» job-description-scp0192 = Чрезвычайно агрессивное существо, вылезающее из SCP-019. job-name-scp131 = SCP-131 «Каплеглазики» job-description-scp131 = Небольшие безобидные механические существа, обладающие большим выделяющимся глазом. +job-name-scp208 = SCP-208 «Бес» +job-description-scp208 = Добросердечное Египетское божество, безгранично желающее людям только добра и счастья. +job-name-scp492 = SCP-492 «Ожившая тряпичная кукла» +job-description-scp492 = Трудолюбивая одушевленная кукла, бывшая декорацией в заброшенном аттракционе пиратской тематики. +job-name-scp527 = SCP-527 «Г-н Рыба» +job-description-scp527 = Г-н Рыба - один из Маленьких Господ в коллекции Доктора Развлечудова. Вместо человеческой головы имеет рыбью голову... Это всё. job-name-scp1508 = SCP-1508 «Майки, Друг-Уборщик» job-description-scp1508 = Верный картонный друг, который старается помогать людям. job-name-scp1589 = SCP-1589 «Древнеримский голем» job-description-scp1589 = Послушный и спокойный гигант, который исполняет любые приказы. +job-name-scp2020 = SCP-2020 «Клише, да?» +job-description-scp2020 = Разговорчивый и утомительный зелёный гуманоид, имеющий явные визуальные сходства с «серыми человечками». job-name-scp2295 = SCP-2295 «Медведь с тряпичным сердцем» job-description-scp2295 = Дружелюбный тряпичный медведь, который лечит людей. job-name-scp3288 = SCP-3288 «Аристократы» job-description-scp3288-servant = Низшая особь королевства, обязанная подчиняться господам. Организуйте пиршества и балы, готовьте человечину и развлекайте аристократов. job-description-scp3288-knight = Защитник династии Габсбургов. Патрулируйте территорию, охраняйте чистокровных особей и безжалостно уничтожайте чужаков. job-description-scp3288-aristocrat = Влиятельный мутант с садистскими наклонностями. Пожирайте человеческую плоть, отдавайте приказы слугам и веселитесь. +job-name-scp4449 = SCP-4449 «Дайске Кавамото, легендарный победитель зла» +job-description-scp4449 = Огородное пугало в самурайских доспехах, имеющее в себе дух смелого японского воина. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp007.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp007.ftl new file mode 100644 index 00000000000..e353f835a63 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp007.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp007-name = SCP-007 +ghost-role-information-scp007-description = Вы аномальный человек с миниатюрной копией Земли в области живота. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp2020.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp2020.ftl new file mode 100644 index 00000000000..16d98cbcf61 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp2020.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp2020-name = SCP-2020 +ghost-role-information-scp2020-description = Вы разговорчивый и беззаботный аномальный объект, намеревающийся писать научно-фантастические произведения. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp208.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp208.ftl new file mode 100644 index 00000000000..df639828744 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp208.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp208-name = SCP-208 +ghost-role-information-scp208-description = Вы дружелюбный и миролюбивый аномальный объект, беспрекословно сердечный и верный людям. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp4449.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp4449.ftl new file mode 100644 index 00000000000..fd3e7d20562 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp4449.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp4449-name = SCP-4449 +ghost-role-information-scp4449-description = Вы храбрый и доброжелательный аномальный объект, желающий защищать людей. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp492.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp492.ftl new file mode 100644 index 00000000000..105d9e68181 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp492.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp492-name = SCP-492 +ghost-role-information-scp492-description = Вы трудолюбивый и разумный объект с безотказным характером, имеющий тряпичное тело. diff --git a/Resources/Locale/ru-RU/_strings/_scp/scp/scp527.ftl b/Resources/Locale/ru-RU/_strings/_scp/scp/scp527.ftl new file mode 100644 index 00000000000..3cda2db15f2 --- /dev/null +++ b/Resources/Locale/ru-RU/_strings/_scp/scp/scp527.ftl @@ -0,0 +1,2 @@ +ghost-role-information-scp527-name = SCP-527 +ghost-role-information-scp527-description = Вы неприхотливый разумный объект, не имеющий никаких особенностей за исключением рыбьей головы. diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml index 57e55a03388..4bc31884f9e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml @@ -142,6 +142,21 @@ - type: PhysicalComposition materialComposition: Steel: 100 + # Fire edit start - исследования сцп + - type: ScpInteractTool + delay: 2 + cooldown: 600 # 5 минут + cooldownMessage: scp-interact-time-left + event: !type:ScpSpawnInteractDoAfterEvent + toSpawn: ScpDirtLump + sound: /Audio/Effects/break_stone.ogg # TODO: Звук + whitelist: + tags: + - Scp124 + - type: GuideHelp + guides: + - ScpResearchAdvanced + # Fire edit end - type: entity name: plant bag diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index abaa8677a74..06cf39cc262 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -210,6 +210,21 @@ path: /Audio/_Sunrise/Medical/Surgery/retractor1.ogg endSound: path: /Audio/_Sunrise/Medical/Surgery/retractor2.ogg + # Fire edit start - исследования сцп + - type: ScpInteractTool + delay: 30 + cooldown: 600 # 5 минут + cooldownMessage: scp-interact-time-left + event: !type:ScpSpawnInteractDoAfterEvent + toSpawn: ScpDirtLump + sound: /Audio/Effects/break_stone.ogg # TODO: Звук + whitelist: + tags: + - Scp007 + - type: GuideHelp + guides: + - ScpResearchAdvanced + # Fire edit end - type: entity name: advanced retractor diff --git a/Resources/Prototypes/_Scp/Actions/scp208.yml b/Resources/Prototypes/_Scp/Actions/scp208.yml new file mode 100644 index 00000000000..dcc5745af91 --- /dev/null +++ b/Resources/Prototypes/_Scp/Actions/scp208.yml @@ -0,0 +1,38 @@ +- type: entity + id: Scp208Shield + name: Physical shield + description: You create a strong barrier right in front of your opponent. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 120 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + icon: + sprite: Objects/Magic/magicactions.rsi + state: shield + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: WallForce + posData: !type:TargetInFront + +- type: entity + id: Scp208Heal + name: god's treatment + description: You focus your healing ability on a specific person. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 30 + icon: + sprite: /Textures/_Scp/Mobs/Scp/scp-208.rsi + state: scp-208 + itemIconStyle: NoItem + - type: TargetAction + repeat: false + range: 3 + checkCanAccess: true + - type: EntityTargetAction + canTargetSelf: false + event: !type:Scp208HealTargetActionEvent diff --git a/Resources/Prototypes/_Scp/Actions/scp4449.yml b/Resources/Prototypes/_Scp/Actions/scp4449.yml new file mode 100644 index 00000000000..1aaef1802e3 --- /dev/null +++ b/Resources/Prototypes/_Scp/Actions/scp4449.yml @@ -0,0 +1,9 @@ +- type: entity + id: ActionScp4449Jump + parent: ActionGravityJump + name: jump + description: You push yourself forward in the direction you are looking. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 0.3 diff --git a/Resources/Prototypes/_Scp/Catalog/Fills/Lockers/dressers.yml b/Resources/Prototypes/_Scp/Catalog/Fills/Lockers/dressers.yml index 0d50c4707f7..c27814ecdd1 100644 --- a/Resources/Prototypes/_Scp/Catalog/Fills/Lockers/dressers.yml +++ b/Resources/Prototypes/_Scp/Catalog/Fills/Lockers/dressers.yml @@ -118,4 +118,18 @@ id: ScpDresserSquadLeaderFilled parent: - ScpBaseDresserComponents - - DresserWardenFilled \ No newline at end of file + - DresserWardenFilled + +- type: entity + id: ScpDresserScp208Filled + parent: + - ScpBaseDresserComponents + - ScpDresser + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatBeretSalvageMercGreen + - id: Scp208MilitaryClothing + - id: ClothingShoesBootsCombat diff --git a/Resources/Prototypes/_Scp/Damage/modifier_sets.yml b/Resources/Prototypes/_Scp/Damage/modifier_sets.yml index c7076540cf2..93c8fe2f61b 100644 --- a/Resources/Prototypes/_Scp/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_Scp/Damage/modifier_sets.yml @@ -23,6 +23,34 @@ Cellular: 0.0 Radiation: 0.0 +- type: damageModifierSet + id: SCP-2020 + coefficients: + Blunt: 1.0 + Slash: 0.6 + Piercing: 0.8 + Cold: 1.0 + Caustic: 1.0 + Heat: 1.0 + Poison: 1.0 + Cellular: 1.0 + Radiation: 1.0 + +- type: damageModifierSet + id: SCP-4449 + coefficients: + Blunt: 0.9 + Slash: 1.0 + Piercing: 1.0 + Cold: 0.0 + Caustic: 0.0 + Heat: 1.5 + Poison: 0.0 + Cellular: 0.0 + Radiation: 0.0 + Mangleness: 0.0 + Shock: 0.0 + - type: damageModifierSet id: SCP-457 coefficients: diff --git a/Resources/Prototypes/_Scp/Entities/Clothing/Uniforms/scp208.yml b/Resources/Prototypes/_Scp/Entities/Clothing/Uniforms/scp208.yml new file mode 100644 index 00000000000..348778ec318 --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Clothing/Uniforms/scp208.yml @@ -0,0 +1,18 @@ +- type: entity + id: Scp208MilitaryClothing + parent: ClothingUniformBase + suffix: SCP-208 + name: military uniform + components: + - type: Sprite + sprite: _Scp/Clothing/Uniforms/scp208-uniform.rsi + state: icon + - type: Clothing + sprite: _Scp/Clothing/Uniforms/scp208-uniform.rsi + - type: Item + size: Normal + - type: ScpMask + safeTime: 0 + targetWhitelist: + tags: + - Scp208 diff --git a/Resources/Prototypes/_Scp/Entities/Effects/chemistry_effects.yml b/Resources/Prototypes/_Scp/Entities/Effects/chemistry_effects.yml new file mode 100644 index 00000000000..bd8e444846a --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Effects/chemistry_effects.yml @@ -0,0 +1,20 @@ +- type: entity + parent: BaseFoam + id: Scp208Foam + categories: [ HideSpawnMenu ] + components: + - type: Sprite + - type: TimedDespawn + lifetime: 1 + - type: SolutionContainerManager + solutions: + solutionArea: + maxVol: 6 + reagents: + - ReagentId: Omnizine + Quantity: 1 + - ReagentId: Pax + Quantity: 5 + - type: Tag + tags: + - HideContextMenu diff --git a/Resources/Prototypes/_Scp/Entities/Markers/scp.yml b/Resources/Prototypes/_Scp/Entities/Markers/scp.yml index 768d0989bcc..19fd9361c8f 100644 --- a/Resources/Prototypes/_Scp/Entities/Markers/scp.yml +++ b/Resources/Prototypes/_Scp/Entities/Markers/scp.yml @@ -154,6 +154,22 @@ prototypes: - Scp131B +- type: entity + name: SCP-208 spawner + suffix: 50% + id: SpawnScp208 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-208.rsi + state: scp-208 + - type: RandomSpawner + prototypes: + - Scp208 + chance: .50 + - type: entity name: SCP-2295 spawner id: SpawnScp2295 @@ -196,6 +212,76 @@ prototypes: - Scp1589 +- type: entity + name: SCP-527 spawner + id: SpawnScp527 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-527.rsi + state: scp-527 + - type: ConditionalSpawner + prototypes: + - Scp527 + +- type: entity + name: SCP-007 spawner + id: SpawnScp007 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-007.rsi + state: scp-007 + - type: ConditionalSpawner + prototypes: + - Scp007 + +- type: entity + name: SCP-2020 spawner + id: SpawnScp2020 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-2020.rsi + state: scp-2020 + - type: ConditionalSpawner + prototypes: + - Scp2020 + +- type: entity + name: SCP-4449 spawner + id: SpawnScp4449 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-4449.rsi + state: scp-4449 + - type: ConditionalSpawner + prototypes: + - Scp4449 + +- type: entity + name: SCP-492 spawner + id: SpawnScp492 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-492.rsi + state: scp-492 + - type: ConditionalSpawner + prototypes: + - Scp492 + - type: entity name: SCP-457 spawner id: SpawnScp457 @@ -227,3 +313,28 @@ job_id: Scp247 - type: PreferredSpawn preferredSpawnTypes: [ Job ] + +# Рандомная выдача одного из нескольких сцп похожих характеристик + +- type: entity + name: random friendly sapient SCP spawner + id: SpawnScp + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-527.rsi # TODO: анимка где показываются несколько разумных сцп + state: scp-527 + - type: RandomSpawner + rarePrototypes: + - Scp208 + rareChance: 0.1 + prototypes: + - Scp527 + - Scp007 + - Scp2020 + - Scp4449 + - Scp492 + chance: 0.9 + offset: 0.0 diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp007.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp007.yml new file mode 100644 index 00000000000..381eb3641fb --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp007.yml @@ -0,0 +1,100 @@ +- type: entity + id: Scp007 + name: ??? + suffix: SCP-007 + parent: + - BaseScpFriendlySapient + - MobCombat + - MobBloodstream + - InventoryBase + - StripableInventoryBase + - AppearanceScpHands + components: + - type: SlowOnDamage + speedModifierThresholds: + 80: 0.9 + 130: 0.8 + 160: 0.7 + - type: TTS + voice: DeathNoteYagami + - type: Mood +# - type: Blinkable + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-007.rsi + layers: + - state: scp-007 + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + color: "#ffffff" + visible: false + - type: Scp + class: Euclid + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 200: Dead + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp007-name + description: ghost-role-information-scp007-description + raffle: + settings: short + job: Scp007 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - ScpResearchAdvanced + - type: Loadout + prototypes: [ Scp007Gear ] + - type: Cuffable + - type: Tag + tags: + - FootstepSound + - CannotSuicide + - DoorBumpOpener + - Scp007 + - type: Body + - type: Paws + screamInterval: 3 + thresholdDamage: 5 + coughInterval: 5 + emotesTakeDamage: + - Pain + - type: Fear + phobias: + - Exoremophobia + - Necrophobia + - type: ProximityTarget + - type: ComponentToggler + components: + - type: FearSource + phobiaType: Necrophobia + uponComeCloser: None + - type: WatchingTarget + +- type: startingGear + id: Scp007Gear + equipment: + id: KeyCardPassEmpty + shoes: ClothingShoesBootsLaceup + jumpsuit: ClothingUniformJumpsuitSecBlue + belt: ClothingBeltStorageWaistbag + pants: ClothingPantsManStripe + socks: ClothingKneeWhite diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp1508.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp1508.yml index 2ff46cbf195..46109fc0c5c 100644 --- a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp1508.yml +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp1508.yml @@ -132,3 +132,5 @@ id: Scp1508Gear equipment: belt: ClothingBeltScp1508 + inhand: + - Scp1508PaperFlyer diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp173.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp173.yml index 0aed92c82cd..64fbdb5e711 100644 --- a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp173.yml +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp173.yml @@ -42,7 +42,7 @@ params: - whitelist: components: - - MobState + - Blinkable - HumanoidProfile requireAll: true damage: @@ -54,7 +54,7 @@ useVariance: false requiredMobStates: - Alive - - Critical +# - Critical стакает урон если у существа нет состояния смерти - whitelist: tags: - Scp173DestroyOnCollide diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp2020.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp2020.yml new file mode 100644 index 00000000000..14030cdd30d --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp2020.yml @@ -0,0 +1,82 @@ +- type: entity + id: Scp2020 + name: ??? + suffix: SCP-2020 + parent: + - BaseScpFriendlySapient + - MobCombat + - MobBloodstream + - AppearanceScpHands + components: + - type: SlowOnDamage + speedModifierThresholds: + 100: 0.9 + 150: 0.8 + 180: 0.7 + - type: TTS + voice: meepo_dota_2 +# - type: Blinkable + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-2020.rsi + layers: + - state: scp-2020 + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + color: "#ffffff" + visible: false + - type: Scp + class: Euclid + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 250: Dead # его тело крепче человеческого + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp2020-name + description: ghost-role-information-scp2020-description + raffle: + settings: short + job: Scp2020 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - type: Thirst + - type: Hunger + - type: Cuffable + - type: Damageable + damageModifierSet: SCP-2020 + - type: Body + - type: Paws + screamInterval: 3 + thresholdDamage: 5 + coughInterval: 5 + emotesTakeDamage: + - Pain + - type: Fear + phobias: + - Exoremophobia + - Necrophobia + - type: ProximityTarget + - type: ComponentToggler + components: + - type: FearSource + phobiaType: Necrophobia + uponComeCloser: None + - type: WatchingTarget diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp208.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp208.yml new file mode 100644 index 00000000000..77808ec600a --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp208.yml @@ -0,0 +1,131 @@ +- type: entity + id: Scp208 + suffix: SCP-208 + name: ??? + parent: + - BaseScpFriendlySapient + - MobCombat + - MobBloodstream + - InventoryBase + - StripableInventoryBase + - AppearanceScpHands + components: + - type: SlowOnDamage + speedModifierThresholds: + 200: 0.9 + 300: 0.8 + 350: 0.7 + - type: TTS + voice: Kopatich + - type: Mood +# - type: Blinkable + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-208.rsi + layers: + - state: scp-208 + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + color: "#ffffff" + visible: false + - type: Scp + class: Safe + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 400: Dead + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp208-name + description: ghost-role-information-scp208-description + raffle: + settings: short + job: Scp208 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - ScpResearchAdvanced + - type: Loadout + prototypes: [ Scp208Gear ] + - type: ActionGrant + actions: + - Scp208Shield + - type: Cuffable + - type: Tag + tags: + - Scp208 + - FootstepSound + - CannotSuicide + - DoorBumpOpener + - type: Body + - type: Paws + screamInterval: 3 + thresholdDamage: 5 + coughInterval: 5 + emotesTakeDamage: + - Pain + - type: Fear + phobias: + - Exoremophobia + - Necrophobia + - type: ProximityTarget + - type: ComponentToggler + components: + - type: FearSource + phobiaType: Necrophobia + uponComeCloser: None + - type: WatchingTarget + - type: Inventory + templateId: scp208 + - type: Pacified + - type: ActiveTimerTrigger + - type: SmokeOnTrigger + duration: 3 + spreadAmount: 5 + smokePrototype: Scp208Foam + - type: RepeatingTrigger + - type: Scp208 + damage: + types: + Blunt: -3.5 + Slash: -3.5 + Piercing: -3.5 + Cellular: -4 + Cold: -2 + Radiation: -2 + Caustic: -2 + Heat: -3 + stopBleeding: true + bloodlossModifier: -1.0 + delay: 5 + healingBeginSound: + path: "/Audio/Effects/radpulse6.ogg" + params: + volume: -5 + variation: 0.125 + healingEndSound: + path: "/Audio/Effects/radpulse4.ogg" + params: + volume: -5 + variation: 0.125 + +- type: startingGear + id: Scp208Gear + equipment: + neck: KeyCardHospitalIntern diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp4449.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp4449.yml new file mode 100644 index 00000000000..ec71bcfaddb --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp4449.yml @@ -0,0 +1,94 @@ +- type: entity + id: Scp4449 + name: ??? + suffix: SCP-4449 + parent: + - BaseScpFriendlySapient + - MobCombat + - InventoryBase + - StripableInventoryBase + - AppearanceScpHands + components: + - type: Hands + showInHands: false + - type: TTS + voice: phantom_lancer_dota_2 + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-4449.rsi + state: scp-4449 + - type: Scp + class: Safe + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: MovementSpeedModifier + baseWalkSpeed: 0.25 + baseSprintSpeed: 0.5 # в основном передвигается способкой (прыжками) + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 300: Critical + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp4449-name + description: ghost-role-information-scp4449-description + raffle: + settings: short + job: Scp4449 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - type: Armor + modifiers: + coefficients: + Blunt: 0.8 + Slash: 0.5 + Piercing: 0.6 + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepWood + params: + volume: 6 + - type: Inventory + templateId: scp4449 + - type: JumpAbility + action: ActionScp4449Jump + collideKnockdown: 0 + jumpDistance: 0.5 + jumpThrowSpeed: 25 + jumpSound: /Audio/Effects/Footsteps/wood3.ogg + - type: Body + - type: Loadout + prototypes: [ Scp4449Gear ] + - type: Prying # типо своей палочкой шурудит + - type: Damageable + damageModifierSet: SCP-4449 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.4,0.25,0.4" + density: 1000 + mask: + - MobMask + layer: + - MobLayer + - type: DamageOnHighSpeedImpact + minimumSpeed: 30 + +- type: startingGear + id: Scp4449Gear + equipment: + neck: KeyCardPassEmpty + belt: ClothingBeltStorageWaistbag diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp492.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp492.yml new file mode 100644 index 00000000000..f4b63c2cb3f --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp492.yml @@ -0,0 +1,83 @@ +- type: entity + id: Scp492 + name: ??? + suffix: SCP-492 + parent: + - BaseScpFriendlySapient + - MobCombat + - InventoryBase + - StripableInventoryBase + - AppearanceScpHands + components: + - type: Hands + showInHands: false + - type: TTS + voice: batrider_dota_2 + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-492.rsi + layers: + - state: scp-492 + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + color: "#ffffff" + visible: false + - type: Scp + class: Safe + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 200: Critical + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp492-name + description: ghost-role-information-scp492-description + raffle: + settings: short + job: Scp492 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepWood + - type: Loadout + prototypes: [ Scp492Gear ] + - type: Damageable + damageModifierSet: Wood + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.4,0.25,0.4" + density: 10 + mask: + - MobMask + layer: + - MobLayer + - type: Cuffable + - type: Body + - type: PirateAccent + +- type: startingGear + id: Scp492Gear + equipment: + id: KeyCardServicePersonnel + head: ClothingHeadBandSkull + jumpsuit: UniformSecurityShortsRed + belt: ClothingBeltStorageWaistbag + bra: ClothingBraTshirtBlack diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp527.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp527.yml new file mode 100644 index 00000000000..5c5bfb0a5dd --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp527.yml @@ -0,0 +1,101 @@ +- type: entity + id: Scp527 + name: ??? + suffix: SCP-527 + parent: + - BaseScpFriendlySapient + - MobCombat + - MobBloodstream + - InventoryBase + - StripableInventoryBase + - AppearanceScpHands + components: + - type: SlowOnDamage + speedModifierThresholds: + 80: 0.9 + 130: 0.8 + 160: 0.7 + - type: TTS + voice: ChocolateFabricWonka + - type: Mood +# - type: Blinkable + - type: AutoGhostRole + disconnectDelay: 600 + pollDuration: 900 + transferDelay: 180 + - type: Sprite + drawdepth: Mobs + sprite: _Scp/Mobs/Scp/scp-527.rsi + layers: + - state: scp-527 + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + color: "#ffffff" + visible: false + - type: Scp + class: Euclid + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: GhostPanelAntagonistMarker + name: ghost-panel-antagonist-scp-minor-name + description: ghost-panel-antagonist-scp-minor-description + priority: 0 + - type: MobThresholds + thresholds: + 0: Alive + 200: Dead + - type: GhostRole + makeSentient: true + name: ghost-role-information-scp527-name + description: ghost-role-information-scp527-description + raffle: + settings: short + job: Scp527 + - type: GhostTakeoverAvailable + - type: GuideHelp + guides: + - ScpResearch + - type: Loadout + prototypes: [ Scp527Gear ] + - type: Thirst + - type: Hunger + - type: Cuffable + - type: Body + - type: Paws + screamInterval: 3 + thresholdDamage: 5 + coughInterval: 5 + emotesTakeDamage: + - Pain + - type: Fear + phobias: + - Exoremophobia + - Necrophobia + - type: ProximityTarget + - type: ComponentToggler + components: + - type: FearSource + phobiaType: Necrophobia + uponComeCloser: None + - type: WatchingTarget + +- type: startingGear + id: Scp527Gear + equipment: + id: KeyCardPassEmpty + gloves: ClothingHandsGlovesColorBlack + shoes: ClothingShoesBootsLaceup + jumpsuit: ClothingUniformJumpsuitLawyerBlack + head: ClothingHeadHatTophat + belt: ClothingBeltStorageWaistbag + pants: ClothingPantsManHearts + socks: ClothingKneeWhite + pocket1: LuxuryPen + pocket2: Scp527PaperCollection + inhand: + - OffsetCaneWood diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/base_scp.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/base_scp.yml index 2de990d60ab..26109e3b438 100644 --- a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/base_scp.yml +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/base_scp.yml @@ -186,3 +186,67 @@ - BaseFriendlyScpArtifactMajor id: BaseScpFriendly +- type: entity # Для человекоподобных SCP: 007, 527 и т.д. + abstract: true + parent: BaseScpFriendly + id: BaseScpFriendlySapient + components: + - type: CanJump + isOnlyEmotion: false + - type: CanFall + - type: Pullable + - type: Puller + needsHands: true + - type: Vocal + sounds: + Male: MaleHuman + Female: MaleHuman + Unsexed: MaleHuman + - type: Speech + - type: TTS + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + enum.StoreUiKey.Key: + type: StoreBoundUserInterface + - type: Buckle + - type: Strippable + - type: Stripping + - type: FieldOfView + angle: 240 + - type: Crawler + - type: Emoting + - type: BodyEmotes + soundsId: GeneralBodyEmotes + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: Hands + - type: ComplexInteraction + - type: ScpRestriction + canBeDisarmed: true + canBePulled: true + canPull: true + canStandingState: true + canMobCollide: true + - type: RotationVisuals + defaultRotation: 90 + horizontalRotation: 90 + - type: StandingState + - type: StatusEffects + allowed: + - Electrocution + - RatvarianLanguage + - PressureImmunity + - Muted + - TemporaryBlindness + - Pacified + - Flashed + - RadiationProtection + - Adrenaline + - LoveEffect + - Flip + - type: Climbing + - type: DamageForceSay + - type: Blindable diff --git a/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml b/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml index a6f11ecc918..c85e80cbd8a 100644 --- a/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml +++ b/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml @@ -95,6 +95,21 @@ tags: - Scp019GlassShard +# Scp007, Scp124 + +- type: entity + id: ScpDirtLump + parent: BaseScpResearchMaterial + name: lump of dirt + description: A small pile of soil. + components: + - type: Sprite + sprite: _Scp/Objects/Research/research_material.rsi + state: scp-dirt + - type: Tag + tags: + - ScpDirtLump + # Scp012 - type: entity diff --git a/Resources/Prototypes/_Scp/Entities/Objects/Specific/wondertainmentPapers.yml b/Resources/Prototypes/_Scp/Entities/Objects/Specific/wondertainmentPapers.yml new file mode 100644 index 00000000000..be4a0e8798d --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Objects/Specific/wondertainmentPapers.yml @@ -0,0 +1,17 @@ +- type: entity + id: Scp527PaperCollection + name: collection paper + description: A congratulatory paper about the discovery of a certain "Little Mister". + parent: Paper + components: + - type: Paper + content: info-paper-scp-527-collection + +- type: entity + id: Scp1508PaperFlyer + name: children's flyer + description: An advertisement for "Mikey the Janitor-Friend©". Judging by the text, this thing will clean up after you. + parent: Paper + components: + - type: Paper + content: info-paper-scp-1508-flyer diff --git a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml index dc3d1966d46..94652fde9de 100644 --- a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml +++ b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml @@ -636,6 +636,15 @@ - type: Sprite state: scp005 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterSCP007 + name: SCP-007 poster + description: Information poster for SCP-007. + components: + - type: Sprite + state: scp007 + - type: entity parent: PosterScpContainmentRoomBase id: PosterScp012 @@ -771,6 +780,15 @@ - type: Sprite state: scp207 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterScp208 + name: SCP-208 poster + description: Information poster for SCP-208. + components: + - type: Sprite + state: scp208 + - type: entity parent: PosterScpContainmentRoomBase id: PosterSCP247 @@ -816,6 +834,15 @@ - type: Sprite state: scp457 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterSCP492 + name: SCP-492 poster + description: Information poster for SCP-492. + components: + - type: Sprite + state: scp492 + - type: entity parent: PosterScpContainmentRoomBase id: PosterSCP500 @@ -825,6 +852,15 @@ - type: Sprite state: scp500 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterSCP527 + name: SCP-527 poster + description: Information poster for SCP-527. + components: + - type: Sprite + state: scp527 + - type: entity parent: PosterScpContainmentRoomBase id: PosterSCP969 @@ -888,6 +924,15 @@ - type: Sprite state: scp1589 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterSCP2020 + name: SCP-2020 poster + description: Information poster for SCP-2020. + components: + - type: Sprite + state: scp2020 + - type: entity parent: PosterScpContainmentRoomBase id: PosterSCP2022 @@ -915,6 +960,15 @@ - type: Sprite state: scp2908 +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterSCP4449 + name: SCP-4449 poster + description: Information poster for SCP-4449. + components: + - type: Sprite + state: scp4449 + # Длинные плакаты - type: entity diff --git a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml index 4be8ed64cb4..fba55e64472 100644 --- a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml +++ b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml @@ -33,6 +33,15 @@ - type: Sprite state: 005 +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp007 + name: SCP-007 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 007 + - type: entity parent: BaseSignDirectionalScp id: SignDirectionalScp012 @@ -140,7 +149,16 @@ components: - type: Sprite state: 207 - + +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp208 + name: SCP-208 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 208 + - type: entity parent: BaseSignDirectionalScp id: SignDirectionalScp268 @@ -168,6 +186,15 @@ - type: Sprite state: 427 +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp492 + name: SCP-492 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 492 + - type: entity parent: BaseSignDirectionalScp id: SignDirectionalScp500 @@ -177,6 +204,15 @@ - type: Sprite state: 500 +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp527 + name: SCP-527 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 527 + - type: entity parent: BaseSignDirectionalScp id: SignDirectionalScp612 @@ -221,7 +257,16 @@ components: - type: Sprite state: 999 - + +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp2020 + name: SCP-2020 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 2020 + - type: entity parent: BaseSignDirectionalScp id: SignDirectionalScp2022 @@ -240,6 +285,15 @@ - type: Sprite state: 2908 +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp4449 + name: SCP-4449 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 4449 + # Места в зоне - type: entity diff --git a/Resources/Prototypes/_Scp/InventoryTemplates/scp208.yml b/Resources/Prototypes/_Scp/InventoryTemplates/scp208.yml new file mode 100644 index 00000000000..b4e235c0cf3 --- /dev/null +++ b/Resources/Prototypes/_Scp/InventoryTemplates/scp208.yml @@ -0,0 +1,84 @@ +- type: inventoryTemplate + id: scp208 + slots: + - name: back + slotTexture: back + fullTextureName: template_small + slotFlags: BACK + stripTime: 15 + uiWindowPos: 1,1 + strippingWindowPos: 0,3 + displayName: Back + stripHidden: true + - name: pocket1 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + displayName: Pocket 2 + stripHidden: true + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,2 + strippingWindowPos: 0,1 + displayName: Neck + - name: belt + slotTexture: belt + fullTextureName: template_small + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,2 + strippingWindowPos: 0,0 + displayName: Head + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 1,2 + displayName: Ears + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 1,0 + strippingWindowPos: 0,2 + displayName: Jumpsuit + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,2 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: shoes + slotTexture: shoes + slotFlags: FEET + stripTime: 3 + uiWindowPos: 1,3 + strippingWindowPos: 1,4 + displayName: Shoes diff --git a/Resources/Prototypes/_Scp/InventoryTemplates/scp4449.yml b/Resources/Prototypes/_Scp/InventoryTemplates/scp4449.yml new file mode 100644 index 00000000000..76df1f2ad68 --- /dev/null +++ b/Resources/Prototypes/_Scp/InventoryTemplates/scp4449.yml @@ -0,0 +1,27 @@ +- type: inventoryTemplate + id: scp4449 + slots: + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,2 + strippingWindowPos: 0,1 + displayName: Neck + - name: belt + slotTexture: belt + fullTextureName: template_small + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + displayName: ID diff --git a/Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml b/Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml index 21f72b65525..1b9945a3552 100644 --- a/Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml +++ b/Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml @@ -35,7 +35,43 @@ alwaysShowInBanPanel: true setPreference: false applyTraits: false - + +- type: job + id: Scp208 + name: job-name-scp208 + description: job-description-scp208 + playTimeTracker: JobScp208 + requirements: + - !type:OverallPlaytimeRequirement + time: 432000 # 120h + weight: 968 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp208 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + +- type: job + id: Scp492 + name: job-name-scp492 + description: job-description-scp492 + playTimeTracker: JobScp492 + requirements: + - !type:OverallPlaytimeRequirement + time: 108000 # 30h + weight: 965 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp492 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + - type: job id: Scp1508 name: job-name-scp1508 @@ -72,8 +108,62 @@ setPreference: false applyTraits: false +- type: job + id: Scp4449 + name: job-name-scp4449 + description: job-description-scp4449 + playTimeTracker: JobScp4449 + requirements: + - !type:OverallPlaytimeRequirement + time: 108000 # 30h + weight: 965 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp4449 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + # Евклид +- type: job + id: Scp007 + name: job-name-scp007 + description: job-description-scp007 + playTimeTracker: JobScp007 + requirements: + - !type:OverallPlaytimeRequirement + time: 108000 # 30h + weight: 965 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp007 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + +- type: job + id: Scp527 + name: job-name-scp527 + description: job-description-scp527 + playTimeTracker: JobScp527 + requirements: + - !type:OverallPlaytimeRequirement + time: 108000 # 30h + weight: 965 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp527 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + - type: job id: Scp1589 name: job-name-scp1589 @@ -92,6 +182,24 @@ setPreference: false applyTraits: false +- type: job + id: Scp2020 + name: job-name-scp2020 + description: job-description-scp2020 + playTimeTracker: JobScp2020 + requirements: + - !type:OverallPlaytimeRequirement + time: 108000 # 30h + weight: 965 + #icon: TODO + joinNotifyCrew: false + overrideConsoleVisibility: false + canBeAntag: false + jobEntity: Scp2020 + alwaysShowInBanPanel: true + setPreference: false + applyTraits: false + # Кетер - type: job diff --git a/Resources/Prototypes/_Scp/Roles/play_time_trackers.yml b/Resources/Prototypes/_Scp/Roles/play_time_trackers.yml index 8a994b52af7..c4154e07579 100644 --- a/Resources/Prototypes/_Scp/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/_Scp/Roles/play_time_trackers.yml @@ -150,6 +150,9 @@ # SCP +- type: playTimeTracker + id: JobScp007 + - type: playTimeTracker id: JobScp0192 @@ -174,12 +177,21 @@ - type: playTimeTracker id: JobScp173 +- type: playTimeTracker + id: JobScp208 + - type: playTimeTracker id: JobScp247 - type: playTimeTracker id: JobScp457 +- type: playTimeTracker + id: JobScp492 + +- type: playTimeTracker + id: JobScp527 + - type: playTimeTracker id: JobScp939 @@ -192,6 +204,9 @@ - type: playTimeTracker id: JobScp1589 +- type: playTimeTracker + id: JobScp2020 + - type: playTimeTracker id: JobScp2295 @@ -207,6 +222,9 @@ - type: playTimeTracker id: JobScp3288Aristocrat +- type: playTimeTracker + id: JobScp4449 + # Отряды МОГ - type: playTimeTracker diff --git a/Resources/Prototypes/_Scp/tags.yml b/Resources/Prototypes/_Scp/tags.yml index 8ce5fdd07e4..dca1eba0392 100644 --- a/Resources/Prototypes/_Scp/tags.yml +++ b/Resources/Prototypes/_Scp/tags.yml @@ -97,6 +97,9 @@ - type: Tag id: Scp173Shard +- type: Tag + id: ScpDirtLump + - type: Tag id: Scp019GlassShard @@ -178,6 +181,12 @@ - type: Tag id: LavenderFlower +- type: Tag + id: Scp007 + +- type: Tag + id: Scp208 + - type: Tag id: ScpCageDoor173 diff --git a/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml b/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml index 4d1cde7e9a4..f0c90fcfe25 100644 --- a/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml +++ b/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml @@ -38,6 +38,18 @@ Некоторые образцы желе могут содержать пепел. Все случайно + # SCP-007 + + ## Ретрактор + + Используйте ретрактор на объекте, чтобы получить комок почвы. Почва работает как артефакт, который можно изучить для получения [color=#8b0000]очков исследования SCP[/color] + + # SCP-124 + + ## Лопатка + + Используйте лопатку на объекте, чтобы получить комок почвы. Почва работает как артефакт, который можно изучить для получения [color=#8b0000]очков исследования SCP[/color] + # SCP-096 ## Фотоаппарат diff --git a/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..ccd7becd1bc Binary files /dev/null and b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/icon.png b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/icon.png new file mode 100644 index 00000000000..4b56c55af64 Binary files /dev/null and b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/icon.png differ diff --git a/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-left.png b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-left.png new file mode 100644 index 00000000000..4f04e1148c0 Binary files /dev/null and b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-right.png b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-right.png new file mode 100644 index 00000000000..7371fa1196a Binary files /dev/null and b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/meta.json b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/meta.json new file mode 100644 index 00000000000..15b9b80ba09 --- /dev/null +++ b/Resources/Textures/_Scp/Clothing/Uniforms/scp208-uniform.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "Sprited by icarusrev(discord), timur and peper for FireStation", + "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/_Scp/Mobs/Scp/scp-007.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-007.rsi/meta.json new file mode 100644 index 00000000000..874bcc00b19 --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-007.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "SUNRISE", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-007", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-007.rsi/scp-007.png b/Resources/Textures/_Scp/Mobs/Scp/scp-007.rsi/scp-007.png new file mode 100644 index 00000000000..ebf734027aa Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-007.rsi/scp-007.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/meta.json new file mode 100644 index 00000000000..a920b0dc78a --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "timur", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-2020", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/scp-2020.png b/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/scp-2020.png new file mode 100644 index 00000000000..3d25a133027 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-2020.rsi/scp-2020.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/meta.json new file mode 100644 index 00000000000..5fce6de57f6 --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "made by peper", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-208", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/scp-208.png b/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/scp-208.png new file mode 100644 index 00000000000..1b222461443 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-208.rsi/scp-208.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/meta.json new file mode 100644 index 00000000000..3c4b03d683b --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made By timur and PuroSlavKing", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-4449", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/scp-4449.png b/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/scp-4449.png new file mode 100644 index 00000000000..cdb6c77bd16 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-4449.rsi/scp-4449.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/meta.json new file mode 100644 index 00000000000..b4003dd5484 --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "SUNRISE", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-492", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/scp-492.png b/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/scp-492.png new file mode 100644 index 00000000000..92b18f78af6 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-492.rsi/scp-492.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/meta.json new file mode 100644 index 00000000000..ed505ec3d52 --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "made by peper", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-527", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/scp-527.png b/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/scp-527.png new file mode 100644 index 00000000000..46fc9dee2d4 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-527.rsi/scp-527.png differ diff --git a/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json index 2543edda070..d21df28237f 100644 --- a/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json +++ b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json @@ -34,6 +34,9 @@ { "name": "scp019-shard" }, + { + "name": "scp-dirt" + }, { "name": "scp096-photo-undeveloped" }, diff --git a/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp-dirt.png b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp-dirt.png new file mode 100644 index 00000000000..011f3407576 Binary files /dev/null and b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp-dirt.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json index df681d008fe..081b8258589 100644 --- a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json +++ b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json @@ -8,6 +8,7 @@ }, "states": [ { "name": "scp005" }, + { "name": "scp007" }, { "name": "scp012" }, { "name": "scp018" }, { "name": "scp019" }, @@ -24,12 +25,15 @@ { "name": "scp131" }, { "name": "scp173" }, { "name": "scp207" }, + { "name": "scp208" }, { "name": "scp247" }, { "name": "scp268" }, { "name": "scp330" }, { "name": "scp427" }, { "name": "scp457" }, + { "name": "scp492" }, { "name": "scp500" }, + { "name": "scp527" }, { "name": "scp714" }, { "name": "scp969" }, { "name": "scp999" }, @@ -37,8 +41,10 @@ { "name": "scp939" }, { "name": "scp1508" }, { "name": "scp1589" }, + { "name": "scp2020" }, { "name": "scp2022" }, { "name": "scp2295" }, - { "name": "scp2908" } + { "name": "scp2908" }, + { "name": "scp4449" } ] } diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp007.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp007.png new file mode 100644 index 00000000000..84097f6d3c3 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp007.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp2020.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp2020.png new file mode 100644 index 00000000000..3657d47dc4f Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp2020.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp208.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp208.png new file mode 100644 index 00000000000..0d3a3579392 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp208.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp4449.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp4449.png new file mode 100644 index 00000000000..4ecff2cdb96 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp4449.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp492.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp492.png new file mode 100644 index 00000000000..01c1a32b929 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp492.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp527.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp527.png new file mode 100644 index 00000000000..d8d2c68d103 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp527.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/007.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/007.png new file mode 100644 index 00000000000..0a1f57eed62 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/007.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/2020.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/2020.png new file mode 100644 index 00000000000..adebf08cf0d Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/2020.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/208.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/208.png new file mode 100644 index 00000000000..6f0873d9ffd Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/208.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/4449.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/4449.png new file mode 100644 index 00000000000..d2481de5123 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/4449.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/492.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/492.png new file mode 100644 index 00000000000..453241805d9 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/492.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/527.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/527.png new file mode 100644 index 00000000000..324f8bb306a Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/527.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json index 64f46107dfe..1e5b0cbb840 100644 --- a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json +++ b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json @@ -8,6 +8,7 @@ }, "states": [ { "name": "005", "directions": 4 }, + { "name": "007", "directions": 4 }, { "name": "012", "directions": 4 }, { "name": "018", "directions": 4 }, { "name": "035", "directions": 4 }, @@ -20,17 +21,22 @@ { "name": "127", "directions": 4 }, { "name": "173", "directions": 4 }, { "name": "207", "directions": 4 }, + { "name": "208", "directions": 4 }, { "name": "268", "directions": 4 }, { "name": "330", "directions": 4 }, { "name": "427", "directions": 4 }, + { "name": "492", "directions": 4 }, { "name": "500", "directions": 4 }, + { "name": "527", "directions": 4 }, { "name": "612", "directions": 4 }, { "name": "714", "directions": 4 }, { "name": "939", "directions": 4 }, { "name": "969", "directions": 4 }, { "name": "999", "directions": 4 }, + { "name": "2020", "directions": 4 }, { "name": "2022", "directions": 4 }, { "name": "2908", "directions": 4 }, + { "name": "4449", "directions": 4 }, { "name": "classd", "directions": 4 }, { "name": "hcz", "directions": 4 },