diff --git a/Content.Shared/_Scp/Research/Interact/ScpInteractSystem.cs b/Content.Shared/_Scp/Research/Interact/ScpInteractSystem.cs index 4cc784f5281..dc0c2c0ab1c 100644 --- a/Content.Shared/_Scp/Research/Interact/ScpInteractSystem.cs +++ b/Content.Shared/_Scp/Research/Interact/ScpInteractSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared._Scp.Mobs.Components; +using Content.Shared._Scp.Mobs.Components; using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Popups; diff --git a/Content.Shared/_Scp/Research/ScpResearchEvents.cs b/Content.Shared/_Scp/Research/ScpResearchEvents.cs index 38f20180f87..ba3783b487c 100644 --- a/Content.Shared/_Scp/Research/ScpResearchEvents.cs +++ b/Content.Shared/_Scp/Research/ScpResearchEvents.cs @@ -1,4 +1,4 @@ -using Content.Shared.DoAfter; +using Content.Shared.DoAfter; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; @@ -58,4 +58,3 @@ public ScpSpawnInteractDoAfterEvent(EntProtoId toSpawn, int minSpawn, int maxSpa } #endregion - diff --git a/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes1.ogg b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes1.ogg new file mode 100644 index 00000000000..584ee064c45 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes1.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes2.ogg b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes2.ogg new file mode 100644 index 00000000000..b4fc447b3e6 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes2.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes3.ogg b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes3.ogg new file mode 100644 index 00000000000..c7f5ddb75f6 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Friendly/notes3.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Hostile/eric1.ogg b/Resources/Audio/_Scp/Scp066/Idle/Hostile/eric1.ogg new file mode 100644 index 00000000000..fcf4ef2207a Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Hostile/eric1.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes1.ogg b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes1.ogg new file mode 100644 index 00000000000..d4438ed9cb0 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes1.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes2.ogg b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes2.ogg new file mode 100644 index 00000000000..f4a122a3dc6 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes2.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes3.ogg b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes3.ogg new file mode 100644 index 00000000000..8897ad31b76 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes3.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes4.ogg b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes4.ogg new file mode 100644 index 00000000000..75f3af9bc8b Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/Idle/Hostile/notes4.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/beethoven.ogg b/Resources/Audio/_Scp/Scp066/beethoven.ogg new file mode 100644 index 00000000000..b456c34de57 Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/beethoven.ogg differ diff --git a/Resources/Audio/_Scp/Scp066/party1.ogg b/Resources/Audio/_Scp/Scp066/party1.ogg new file mode 100644 index 00000000000..df82edfaf4f Binary files /dev/null and b/Resources/Audio/_Scp/Scp066/party1.ogg differ diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp066.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp066.ftl new file mode 100644 index 00000000000..48c7e87b869 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp066.ftl @@ -0,0 +1,12 @@ +ent-Scp066SpawnCake = предложить торт + .desc = Вы создаете кусочек праздничного торта для вечеринки! +ent-Scp066SpawnPlushieCat = подарить игрушку + .desc = Вы создаете красивую игрушку белой кошки. +ent-Scp066SpawnDelightGlass = здоровый напиток + .desc = Вы создаете стакан с лечащим напитком внутри. +ent-Scp066DisableLights = аномальные неполадки + .desc = Вы выводите из строя всю технику поблизости. +ent-Scp066OpenDoors = уроки взлома + .desc = Вы открываете все шлюзы поблизости. +ent-Scp066SpawnAngryBee = неожиданный удар + .desc = Из вашего тела вылетает агрессивная пчела. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp066.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp066.ftl new file mode 100644 index 00000000000..2e1b018f762 --- /dev/null +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp066.ftl @@ -0,0 +1,2 @@ +ent-Scp066Hostile = ??? +ent-Scp066Friendly = ??? \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/mtfs/Common.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/mtfs/Common.ftl index beeeb41cec7..fb477daa6b0 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/mtfs/Common.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/mtfs/Common.ftl @@ -32,6 +32,8 @@ ent-CrateAdministrationRecontainmentCircuitsBoards = набор плат зак .suffix = Заполненный ent-CrateAdministrationCrateScpCageScp173 = ящик с ангаром «Пандора» .desc = Содержит ангар «Пандора» и отвертку. Идеальный набор, чтобы вернуть SCP-173 в его камеру! +ent-CrateAdministrationCrateScpCageScp066 = ящик с ангаром «Диатоника» + .desc = Содержит ангар «Диатоника». Идеальный ангар, чтобы вернуть SCP-066 в его камеру! .suffix = Заполненный ent-SpawnerOnTriggerMTFBase = { ent-SpawnPointScpBase } .suffix = Base | Spawn On Trigger diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/misc/scp_cage.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/misc/scp_cage.ftl index 4fde2038872..8998d00f56c 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/misc/scp_cage.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/misc/scp_cage.ftl @@ -8,3 +8,6 @@ ent-CrateScpCage = Ангар «Пандора» ent-CrateScpCageScp173 = { ent-CrateScpCage } .desc = { ent-CrateScpCage.desc } .suffix = SCP-173 +ent-CrateScpCageScp066 = Ангар «Диатоника» + .desc = Запираемый контейнер для переноски хрупких SCP, сочетающий в себе удобство и максимальную сохранность объекта в процессе транспортировки. + .suffix = SCP-066 \ No newline at end of file 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 637d07e927e..57c435ae1b7 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 @@ -14,3 +14,5 @@ ent-Scp096PhotoDeveloped = странная фотография .desc = Небольшая фотография формата 4:3. Ее края выглядят помятыми, кажется, кто-то носил ее с собой раньше... Вы пытаетесь разглядеть изображение... ent-Scp096Photo = странная фотография .desc = Небольшая фотография, на которой практически неразличимо содержимое. +ent-Scp066Ribbon = кусок аномальных нитей + .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 21796b0edd3..e99c6510a2a 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 @@ -176,6 +176,8 @@ ent-PosterSCP035 = плакат «SCP-035» .desc = Информационный плакат SCP-035 ent-PosterSCP049 = плакат «SCP-049» .desc = Информационный плакат SCP-049 +ent-PosterSCP066 = плакат «SCP-066» + .desc = Информационный плакат SCP-066 ent-PosterSCP082 = плакат «SCP-082» .desc = Информационный плакат SCP-082 ent-PosterSCP096 = плакат «SCP-096» 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 020e241552b..97b1f77a24d 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 @@ -12,6 +12,8 @@ ent-SignDirectionalScp035 = указатель «SCP-035» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp049 = указатель «SCP-049» .desc = { ent-BaseSignDirectionalScp.desc } +ent-SignDirectionalScp066 = указатель «SCP-066» + .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp096 = указатель «SCP-096» .desc = { ent-BaseSignDirectionalScp.desc } ent-SignDirectionalScp101 = указатель «SCP-101» diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index 9ae4c63c4e6..ce8e22503c4 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -207,6 +207,21 @@ path: /Audio/_Sunrise/Medical/Surgery/retractor1.ogg endSound: path: /Audio/_Sunrise/Medical/Surgery/retractor2.ogg + # Fire edit start - исследования сцп + - type: ScpInteractTool + delay: 10 + cooldown: 600 # 5 минут + cooldownMessage: scp-interact-time-left + event: !type:ScpSpawnInteractDoAfterEvent + toSpawn: Scp066Ribbon + sound: /Audio/Items/multitool_drop.ogg + whitelist: + tags: + - Scp066Friendly + - type: GuideHelp + guides: + - ScpResearchAdvanced + # Fire edit end - type: entity name: advanced retractor diff --git a/Resources/Prototypes/_Scp/Actions/scp066.yml b/Resources/Prototypes/_Scp/Actions/scp066.yml new file mode 100644 index 00000000000..699e07866a4 --- /dev/null +++ b/Resources/Prototypes/_Scp/Actions/scp066.yml @@ -0,0 +1,106 @@ +# Friendly 066 + +- type: entity + parent: BaseAction + id: Scp066SpawnCake + name: offer a cake + description: You create a slice of birthday cake for the party! + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 180 + sound: /Audio/_Scp/Scp066/party1.ogg + icon: + sprite: Objects/Consumable/Food/Baked/cake.rsi + state: birthday + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: FoodCakeBirthdaySlice + posData: !type:TargetCasterPos + +- type: entity + parent: BaseAction + id: Scp066SpawnPlushieCat + name: give a toy + description: You create a beautiful white cat plushie. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 180 + icon: + sprite: _Sunrise/Objects/Fun/toy_cats.rsi + state: plushie_whitecat + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: PlushieWhiteCat + posData: !type:TargetCasterPos + +- type: entity + parent: BaseAction + id: Scp066SpawnDelightGlass + name: healthy drink + description: You create a glass with a healing beverage inside. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 240 + icon: + sprite: Objects/Consumable/Drinks/doctorsdelightglass.rsi + state: icon_empty + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: DrinkDoctorsDelightGlass + posData: !type:TargetCasterPos + +# Hostile 066 + +- type: entity + parent: BaseAction + id: Scp066OpenDoors + name: lockpicking lessons + description: You force all nearby airlocks to open. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 180 + icon: + sprite: _Scp/Actions/scp-066.rsi + state: airlock + itemIconStyle: BigAction + raiseOnUser: true + - type: InstantAction + event: !type:KnockSpellEvent + +- type: entity + parent: BaseAction + id: Scp066SpawnAngryBee + name: unexpected strike + description: An aggressive bee flies out of your body. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 180 + icon: + sprite: Objects/Fun/Plushies/bee.rsi + state: icon + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: MobAngryBee + posData: !type:TargetCasterPos + +- type: entity + parent: BaseAction + id: Scp066DisableLights + name: anomalous malfunction + description: You disable all nearby electronics and lights. + categories: [ HideSpawnMenu ] + components: + - type: Action + useDelay: 180 + icon: + sprite: _Scp/Actions/scp-066.rsi + state: light + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: AdminInstantEffectEMP + posData: !type:TargetCasterPos \ No newline at end of file diff --git a/Resources/Prototypes/_Scp/Catalog/mtf_uplink_catalog.yml b/Resources/Prototypes/_Scp/Catalog/mtf_uplink_catalog.yml index da4c574c7a5..c7cd93a64c0 100644 --- a/Resources/Prototypes/_Scp/Catalog/mtf_uplink_catalog.yml +++ b/Resources/Prototypes/_Scp/Catalog/mtf_uplink_catalog.yml @@ -2215,6 +2215,16 @@ conditions: - !type:ListingLimitedStockCondition stock: 1 + +- type: listing + id: ScpUplinkCrateAdministrationCrateScpCageScp066 + icon: { sprite: _Scp/Interface/Misc/mtf_store_icon.rsi, state: closed_scp_cage } + productEntity: CrateAdministrationCrateScpCageScp066 + categories: + - ScpRecontainment + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: ScpUplinkScp049ProtectionImplanter diff --git a/Resources/Prototypes/_Scp/Entities/Markers/scp.yml b/Resources/Prototypes/_Scp/Entities/Markers/scp.yml index fb53f22ffe2..79c36beaf80 100644 --- a/Resources/Prototypes/_Scp/Entities/Markers/scp.yml +++ b/Resources/Prototypes/_Scp/Entities/Markers/scp.yml @@ -139,6 +139,20 @@ - type: ConditionalSpawner prototypes: - Scp131A + +- type: entity + name: SCP-066 spawner + id: SpawnScp066 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: _Scp/Mobs/Scp/scp-066.rsi + state: scp-066friendly + - type: ConditionalSpawner + prototypes: + - Scp066Friendly - type: entity name: SCP-131-B spawner diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp066.yml b/Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp066.yml new file mode 100644 index 00000000000..7b794a18304 --- /dev/null +++ b/Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp066.yml @@ -0,0 +1,138 @@ +- type: entity + id: Scp066Friendly + suffix: SCP-066 Friendly + parent: BaseScp066 + components: + - type: Sprite + drawdepth: SmallMobs + sprite: _Scp/Mobs/Scp/scp-066.rsi + state: scp-066friendly + - type: Scp + class: Safe + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 3 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:TriggerBehavior { } + - type: EmitSoundRandomly + sound: + collection: Scp066IdleFriendly + params: + maxDistance: 6 + - type: PolymorphOnTrigger + polymorph: Scp066Polymorph + - type: HTN + constantlyReplan: true + rootTask: + task: HugBotCompound + blackboard: + VisionRadius: !type:Single + 7 + AggroVisionRadius: !type:Single + 5 + FollowRange: !type:Single + 5 + MeleeRange: !type:Single + 2 + - type: NPCUseActionWhenTargetInRange + actions: + - actionId: Scp066SpawnCake + minRange: 0 + maxRange: 3 + - actionId: Scp066SpawnPlushieCat + minRange: 0 + maxRange: 3 + - actionId: Scp066SpawnDelightGlass + minRange: 0 + maxRange: 3 + - type: Tag + tags: + - Scp066Friendly + +- type: entity + id: Scp066Hostile + suffix: SCP-066 Hostile + parent: + - BaseScp066 + - BaseScp + components: + - type: Sprite + drawdepth: SmallMobs + sprite: _Scp/Mobs/Scp/scp-066.rsi + state: scp-066hostile + - type: Scp + class: Euclid + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 4 + - type: EmitSoundRandomly + sound: + collection: Scp066IdleHostile + params: + maxDistance: 6 + - type: HTN + constantlyReplan: true + rootTask: + task: HugBotCompound + blackboard: + VisionRadius: !type:Single + 10 + AggroVisionRadius: !type:Single + 7 + FollowRange: !type:Single + 7 + MeleeRange: !type:Single + 3 + - type: NPCUseActionWhenTargetInRange + actions: + - actionId: Scp066OpenDoors + minRange: 0 + maxRange: 15 + - actionId: Scp066SpawnAngryBee + minRange: 0 + maxRange: 6 + - actionId: Scp066DisableLights + minRange: 0 + maxRange: 10 + - type: Tag + tags: + - Scp066Hostile + +- type: entity + id: BaseScp066 + categories: [ HideSpawnMenu ] + parent: BaseScpFriendly + name: ??? + components: + - type: Muted + - type: ScpRestriction + canBePulled: true + canMobCollide: true + - type: Damageable + damageContainer: Biological + damageModifierSet: Scale + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.3 + density: 80 + mask: + - MobMask + layer: + - SmallMobLayer + - type: MobThresholds + thresholds: + 0: Alive + - type: GuideHelp + guides: + - ScpResearch + - type: NpcFactionMember + factions: + - SimpleNeutral diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/MTFs/Common.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/MTFs/Common.yml index 76e5185cb49..33f3f07d8d7 100644 --- a/Resources/Prototypes/_Scp/Entities/Mobs/Player/MTFs/Common.yml +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/MTFs/Common.yml @@ -112,6 +112,17 @@ contents: - id: CrateScpCageScp173 - id: Screwdriver + +- type: entity + parent: CrateAdministrationSecure + id: CrateAdministrationCrateScpCageScp066 + name: crate with «Diatonic» cage + description: It contains a «Diatonic» cage. The perfect cage to return SCP 066 to his cell! + suffix: Filled + components: + - type: StorageFill + contents: + - id: CrateScpCageScp066 # РАНДОМ ХУМАНОИДЫ ОБЩИЕ diff --git a/Resources/Prototypes/_Scp/Entities/Objects/Misc/scp_cage.yml b/Resources/Prototypes/_Scp/Entities/Objects/Misc/scp_cage.yml index 79ecef82c1d..32f2698f644 100644 --- a/Resources/Prototypes/_Scp/Entities/Objects/Misc/scp_cage.yml +++ b/Resources/Prototypes/_Scp/Entities/Objects/Misc/scp_cage.yml @@ -5,14 +5,14 @@ components: - type: Sprite drawdepth: Overdoors - sprite: _Scp/Objects/Misc/scp_cage.rsi + sprite: _Scp/Objects/Misc/scp173_cage.rsi offset: 0, 0.5 layers: - state: base - state: closed map: [ "enum.StorageVisualLayers.Door" ] - type: Icon - sprite: _Scp/Objects/Misc/scp_cage.rsi + sprite: _Scp/Objects/Misc/scp173_cage.rsi state: closed # Копипаста с CrateGeneric - type: Transform @@ -31,10 +31,10 @@ layer: - MachineLayer # Копипаста кончилась - - type: Deployable - requiredTools: - - Screwing - deployed: true +# - type: Deployable +# requiredTools: +# - Screwing +# deployed: true - type: Construction graph: Girder node: wall @@ -137,5 +137,55 @@ - Screwing deployed: false deployStates: - false: CrateScpCageFolded + false: CrateScpCageFolded173 true: CrateScpCageScp173 + +- type: entity + parent: CrateScpCageFolded + id: CrateScpCageFolded173 + categories: [ HideSpawnMenu ] + components: + - type: Deployable + requiredTools: + - Screwing + deployed: true + deployStates: + false: CrateScpCageFolded173 + true: CrateScpCageScp173 + +- type: entity + parent: CrateScpCage + id: CrateScpCageScp066 + name: Scp066 cage + components: + - type: Sprite + drawdepth: Overdoors + sprite: _Scp/Objects/Misc/scp066_cage.rsi + layers: + - state: base + - state: closed + map: [ "enum.StorageVisualLayers.Door" ] + - type: Icon + sprite: _Scp/Objects/Misc/scp066_cage.rsi + state: closed + - type: EntityStorage + doAfterDelay: 3 + air: + volume: 800 + whitelist: + tags: + - Scp066Friendly + - Scp066Hostile + - type: Physics + bodyType: Dynamic + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: -0.4,-0.2,0.4,0.6 + density: 75 + mask: + - MachineMask + layer: + - MachineLayer diff --git a/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml b/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml index 0a8a78f6cb4..fc300c9ff54 100644 --- a/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml +++ b/Resources/Prototypes/_Scp/Entities/Objects/ScpParts/parts.yml @@ -35,6 +35,19 @@ - type: Tag tags: - Scp999jelly + +# SCP-066 + +- type: entity + id: Scp066Ribbon + parent: BaseScpResearchMaterial + name: colourful ribbon + components: + - type: Sprite + state: scp066-ribbon + - type: Tag + tags: + - Scp066Ribbon # SCP-173 diff --git a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml index ea3630af37a..4ae2954262e 100644 --- a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml +++ b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/posters.yml @@ -671,6 +671,15 @@ components: - type: Sprite state: scp049 + +- type: entity + parent: PosterScpContainmentRoomBase + id: PosterScp066 + name: SCP-066 poster + description: Information poster for SCP-066. + components: + - type: Sprite + state: scp066 - type: entity parent: PosterScpContainmentRoomBase diff --git a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml index c64342d07d5..d184ffaf631 100644 --- a/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml +++ b/Resources/Prototypes/_Scp/Entities/Structures/Wallmounts/Signs/signs.yml @@ -68,6 +68,15 @@ components: - type: Sprite state: 049 + +- type: entity + parent: BaseSignDirectionalScp + id: SignDirectionalScp066 + name: SCP-066 sign + description: Points in a direction you shouldn't go without a clear understanding of where it leads. + components: + - type: Sprite + state: 066 - type: entity parent: BaseSignDirectionalScp diff --git a/Resources/Prototypes/_Scp/Polymorphs/scp066.yml b/Resources/Prototypes/_Scp/Polymorphs/scp066.yml new file mode 100644 index 00000000000..4c08774db52 --- /dev/null +++ b/Resources/Prototypes/_Scp/Polymorphs/scp066.yml @@ -0,0 +1,11 @@ +- type: polymorph + id: Scp066Polymorph + configuration: + entity: Scp066Hostile + forced: true + transferDamage: false + inventory: Drop + revertOnDeath: false + revertOnCrit: false + revertOnDelete: false + polymorphSound: /Audio/_Sunrise/BloodCult/finisheddraw.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Scp/SoundCollections/Scp/scp066.yml b/Resources/Prototypes/_Scp/SoundCollections/Scp/scp066.yml new file mode 100644 index 00000000000..9975a3c1a1f --- /dev/null +++ b/Resources/Prototypes/_Scp/SoundCollections/Scp/scp066.yml @@ -0,0 +1,15 @@ +- type: soundCollection + id: Scp066IdleHostile + files: + - /Audio/_Scp/Scp066/Idle/Hostile/eric1.ogg + - /Audio/_Scp/Scp066/Idle/Hostile/notes1.ogg + - /Audio/_Scp/Scp066/Idle/Hostile/notes2.ogg + - /Audio/_Scp/Scp066/Idle/Hostile/notes3.ogg + - /Audio/_Scp/Scp066/Idle/Hostile/notes4.ogg + +- type: soundCollection + id: Scp066IdleFriendly + files: + - /Audio/_Scp/Scp066/Idle/Friendly/notes1.ogg + - /Audio/_Scp/Scp066/Idle/Friendly/notes2.ogg + - /Audio/_Scp/Scp066/Idle/Friendly/notes3.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Scp/tags.yml b/Resources/Prototypes/_Scp/tags.yml index 1758f6859ba..563b2f8bd5d 100644 --- a/Resources/Prototypes/_Scp/tags.yml +++ b/Resources/Prototypes/_Scp/tags.yml @@ -87,6 +87,9 @@ - type: Tag id: Scp173Shard + +- type: Tag + id: Scp066Ribbon - type: Tag id: ReinforcedMaskScp096 @@ -102,3 +105,9 @@ - type: Tag id: ClothingHeadAwareness + +- type: Tag + id: Scp066Friendly + +- type: Tag + id: Scp066Hostile \ No newline at end of file diff --git a/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml b/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml index 61db7155226..1522014b7f0 100644 --- a/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml +++ b/Resources/ServerInfo/_Scp/Guidebook/Research/ResearchAdvanced.xml @@ -38,6 +38,12 @@ Некоторые образцы желе могут содержать пепел. Все случайно + # SCP-066 + + ## Ретрактор + + Используйте ретрактор на объекте, чтобы получить образец его разноцветных лент. Ленты работают как артефакт, который можно изучить для получения [color=#8b0000]очков исследования SCP[/color] + # SCP-096 ## Фотоаппарат diff --git a/Resources/Textures/_Scp/Actions/scp-066.rsi/airlock.png b/Resources/Textures/_Scp/Actions/scp-066.rsi/airlock.png new file mode 100644 index 00000000000..8cbe33092fe Binary files /dev/null and b/Resources/Textures/_Scp/Actions/scp-066.rsi/airlock.png differ diff --git a/Resources/Textures/_Scp/Actions/scp-066.rsi/light.png b/Resources/Textures/_Scp/Actions/scp-066.rsi/light.png new file mode 100644 index 00000000000..7e166f3f65a Binary files /dev/null and b/Resources/Textures/_Scp/Actions/scp-066.rsi/light.png differ diff --git a/Resources/Textures/_Scp/Actions/scp-066.rsi/meta.json b/Resources/Textures/_Scp/Actions/scp-066.rsi/meta.json new file mode 100644 index 00000000000..0f7c70e9d40 --- /dev/null +++ b/Resources/Textures/_Scp/Actions/scp-066.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "timur", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "light" + }, + { + "name": "airlock" + } + ] +} diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/meta.json b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/meta.json new file mode 100644 index 00000000000..a1219fbfb70 --- /dev/null +++ b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-3.0", + "copyright": "timur", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scp-066friendly", + "directions": 4 + }, + { + "name": "scp-066hostile", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066friendly.png b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066friendly.png new file mode 100644 index 00000000000..e3f2785bcf9 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066friendly.png differ diff --git a/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066hostile.png b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066hostile.png new file mode 100644 index 00000000000..45183d71157 Binary files /dev/null and b/Resources/Textures/_Scp/Mobs/Scp/scp-066.rsi/scp-066hostile.png differ diff --git a/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/base.png b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/base.png new file mode 100644 index 00000000000..400ecfbe237 Binary files /dev/null and b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/base.png differ diff --git a/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/closed.png b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/closed.png new file mode 100644 index 00000000000..f54beb8dd0b Binary files /dev/null and b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/closed.png differ diff --git a/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/meta.json b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/meta.json new file mode 100644 index 00000000000..77ae2656ba4 --- /dev/null +++ b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license" : "CLA", + "copyright": "Author: Любознательный modified by timur", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] +} diff --git a/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/open.png b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/open.png new file mode 100644 index 00000000000..400ecfbe237 Binary files /dev/null and b/Resources/Textures/_Scp/Objects/Misc/scp066_cage.rsi/open.png differ diff --git a/Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/base.png b/Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/base.png similarity index 100% rename from Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/base.png rename to Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/base.png diff --git a/Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/closed.png b/Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/closed.png similarity index 100% rename from Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/closed.png rename to Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/closed.png diff --git a/Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/meta.json b/Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/meta.json similarity index 100% rename from Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/meta.json rename to Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/meta.json diff --git a/Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/open.png b/Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/open.png similarity index 100% rename from Resources/Textures/_Scp/Objects/Misc/scp_cage.rsi/open.png rename to Resources/Textures/_Scp/Objects/Misc/scp173_cage.rsi/open.png 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 e79672cbfa5..53a19c83a8c 100644 --- a/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json +++ b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/meta.json @@ -16,6 +16,9 @@ { "name": "scp173-ball" }, + { + "name": "scp066-ribbon" + }, { "name": "scp096-photo" }, diff --git a/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp066-ribbon.png b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp066-ribbon.png new file mode 100644 index 00000000000..3169b892471 Binary files /dev/null and b/Resources/Textures/_Scp/Objects/Research/research_material.rsi/scp066-ribbon.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 58a1a8fdb49..45966fce64f 100644 --- a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json +++ b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/meta.json @@ -12,6 +12,7 @@ { "name": "scp018" }, { "name": "scp035" }, { "name": "scp049" }, + { "name": "scp066" }, { "name": "scp079" }, { "name": "scp082" }, { "name": "scp096" }, diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp066.png b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp066.png new file mode 100644 index 00000000000..ace4807cb0a Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/scp-posters.rsi/scp066.png differ diff --git a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/066.png b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/066.png new file mode 100644 index 00000000000..4465c826264 Binary files /dev/null and b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/066.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 44ecd3d6c05..62c6fd224da 100644 --- a/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json +++ b/Resources/Textures/_Scp/Structures/Wallmounts/signs-directional.rsi/meta.json @@ -12,6 +12,7 @@ { "name": "018", "directions": 4 }, { "name": "035", "directions": 4 }, { "name": "049", "directions": 4 }, + { "name": "066", "directions": 4 }, { "name": "096", "directions": 4 }, { "name": "101", "directions": 4 }, { "name": "106", "directions": 4 },