diff --git a/Content.Shared/_Scp/Scp106/Scp106Serializable.cs b/Content.Shared/_Scp/Scp106/Scp106Serializable.cs index 494e1abd0e7..7fd43e11314 100644 --- a/Content.Shared/_Scp/Scp106/Scp106Serializable.cs +++ b/Content.Shared/_Scp/Scp106/Scp106Serializable.cs @@ -35,11 +35,6 @@ public sealed partial class Scp106LeavePhantomAction : InstantActionEvent; public sealed partial class Scp106ShopAction : InstantActionEvent; -public sealed partial class Scp106BoughtPhantomAction : InstantActionEvent -{ - [DataField] public EntProtoId BoughtAction; -} - public sealed partial class Scp106OnUpgradePhantomAction : InstantActionEvent { [DataField] public TimeSpan CooldownReduce; @@ -70,6 +65,11 @@ public sealed partial class Scp106BoughtTerrify : InstantActionEvent [DataField] public EntProtoId BoughtAction; } +public sealed partial class Scp106BoughtPuddle : InstantActionEvent +{ + [DataField] public EntProtoId BoughtAction; +} + #region DoAfters [Serializable, NetSerializable] diff --git a/Content.Shared/_Scp/Scp106/Systems/SharedScp106System.Store.cs b/Content.Shared/_Scp/Scp106/Systems/SharedScp106System.Store.cs index 7991dd2bba2..4601762b67c 100644 --- a/Content.Shared/_Scp/Scp106/Systems/SharedScp106System.Store.cs +++ b/Content.Shared/_Scp/Scp106/Systems/SharedScp106System.Store.cs @@ -13,14 +13,14 @@ private void InitializeStore() // Abilities in that store - I love lambdas >:) // TODO: Проверка на хендхелд и кенселед - SubscribeLocalEvent((Entity ent, ref Scp106BoughtPhantomAction args) => - _actions.AddAction(ent, args.BoughtAction)); SubscribeLocalEvent((Entity ent, ref Scp106BoughtBareBladeAction args) => _actions.AddAction(ent, args.BoughtAction)); SubscribeLocalEvent((Entity ent, ref Scp106BoughtCreatePortal args) => _actions.AddAction(ent, args.BoughtAction)); SubscribeLocalEvent((Entity ent, ref Scp106BoughtTerrify args) => _actions.AddAction(ent, args.BoughtAction)); + SubscribeLocalEvent((Entity ent, ref Scp106BoughtPuddle args) => + _actions.AddAction(ent, args.BoughtAction)); SubscribeLocalEvent(OnUpgradePhantomAction); diff --git a/Resources/Locale/en-US/_prototypes/_scp/actions/scp106.ftl b/Resources/Locale/en-US/_prototypes/_scp/actions/scp106.ftl index ef62bfe9df3..59b811ab1ad 100644 --- a/Resources/Locale/en-US/_prototypes/_scp/actions/scp106.ftl +++ b/Resources/Locale/en-US/_prototypes/_scp/actions/scp106.ftl @@ -1,5 +1,7 @@ ent-Scp106BackroomsAction = Teleport to the pocket dimension .desc = Teleports you to the pocket dimension. Requires you to stand still +ent-Scp106PuddleSpawnAction = Dark substance + .desc = Releases a moderate amount of black rot, slowing anyone who steps on it. ent-Scp106RandomTeleportAction = Teleport to the compound .desc = Teleports you to the compound. Requires you to stand still ent-ActionScp106Shop = Embodiment of suffering diff --git a/Resources/Locale/en-US/_strings/_scp/catalog/catalog.ftl b/Resources/Locale/en-US/_strings/_scp/catalog/catalog.ftl index 404d959b897..d8abcc26c07 100644 --- a/Resources/Locale/en-US/_strings/_scp/catalog/catalog.ftl +++ b/Resources/Locale/en-US/_strings/_scp/catalog/catalog.ftl @@ -1,8 +1,8 @@ scp106-store-category-abilities = Nightmare Abilities store-currency-display-life-essence = Suffering -scp106-shop-phantom-name = { ent-Scp106BecomePhantom } -scp106-shop-phantom-desc = { ent-Scp106BecomePhantom.desc } scp106-shop-phantom-upgrade-name = Shift of Balance scp106-shop-phantom-upgrade-desc = Puts pressure on the growing cracks in reality, which reduces the waiting time for creating a new phantom scp106-shop-blade-name = { ent-Scp106BareBlade } scp106-shop-blade-desc = { ent-Scp106BareBlade.desc } +scp106-shop-puddle-name = { ent-Scp106PuddleSpawnAction } +scp106-shop-puddle-desc = { ent-Scp106PuddleSpawnAction.desc } diff --git a/Resources/Locale/en-US/_strings/_scp/reagents/reagents.ftl b/Resources/Locale/en-US/_strings/_scp/reagents/reagents.ftl index c1d76ddff10..eb07f201c75 100644 --- a/Resources/Locale/en-US/_strings/_scp/reagents/reagents.ftl +++ b/Resources/Locale/en-US/_strings/_scp/reagents/reagents.ftl @@ -1,6 +1,9 @@ reagent-name-scp096-tears = L-096 substrate reagent-desc-scp096-tears = A colorless liquid secreted by SCP-096 during stress response. Analysis partially matches human tears, contains unidentified protein component. +reagent-scp-106-name = SCP-106-Q rot +reagent-scp106-desc = A viscous, foul-smelling black fluid constantly secreted by SCP-106. Analysis revealed it contains human blood, feces, rot, and other organic components, including reagents of unknown origin. + reagent-name-scp096-blood = hemosubstrate 096-K reagent-desc-scp096-blood = Dense dark liquid extracted from SCP-096 biomass. Shows stable composition with anomalous deviations in cellular morphology. diff --git a/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp106.ftl b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp106.ftl index 1252157836d..c3294d8498b 100644 --- a/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp106.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_scp/actions/scp106.ftl @@ -1,3 +1,5 @@ +ent-Scp106PuddleSpawnAction = Тёмная субстанция + .desc = Высвобождает среднее количество черной гнили, которая замедляет любого кто наступит на нее. ent-Scp106BackroomsAction = Телепорт в карманное измерение .desc = Телепортирует вас в карманное измерение. Требуется стоять на месте ent-Scp106RandomTeleportAction = Телепорт в комплекс diff --git a/Resources/Locale/ru-RU/_strings/_scp/catalog/catalog.ftl b/Resources/Locale/ru-RU/_strings/_scp/catalog/catalog.ftl index 7109becc681..8308425f275 100644 --- a/Resources/Locale/ru-RU/_strings/_scp/catalog/catalog.ftl +++ b/Resources/Locale/ru-RU/_strings/_scp/catalog/catalog.ftl @@ -1,11 +1,11 @@ scp106-store-category-abilities = Кошмарные способности store-currency-display-life-essence = Страдания -scp106-shop-phantom-name = { ent-Scp106BecomePhantom } -scp106-shop-phantom-desc = { ent-Scp106BecomePhantom.desc } scp106-shop-phantom-upgrade-name = Сдвиг баланса scp106-shop-phantom-upgrade-desc = Давит на разрастающиеся трещины реальности, что позволяет уменьшить время ожидания создания нового фантома scp106-shop-blade-name = { ent-Scp106BareBlade } scp106-shop-blade-desc = { ent-Scp106BareBlade.desc } +scp106-shop-puddle-name = { ent-Scp106PuddleSpawnAction } +scp106-shop-puddle-desc = { ent-Scp106PuddleSpawnAction.desc } store-currency-display-supplypoint = Очки снабжения diff --git a/Resources/Locale/ru-RU/_strings/_scp/reagents/reagents.ftl b/Resources/Locale/ru-RU/_strings/_scp/reagents/reagents.ftl index d62a92133ff..337fe9be9ba 100644 --- a/Resources/Locale/ru-RU/_strings/_scp/reagents/reagents.ftl +++ b/Resources/Locale/ru-RU/_strings/_scp/reagents/reagents.ftl @@ -1,6 +1,9 @@ reagent-name-scp096-tears = cубстрат L-096 reagent-desc-scp096-tears = Бесцветная жидкость, выделяемая SCP-096 при стрессовой реакции. Анализ частично соответствует человеческим слезам, присутствует неидентифицированная белковая компонента. +reagent-scp-106-name = гниль SCP-106-Q +reagent-scp106-desc = Вязкая и противная черная жидкость, постоянно выделяемая SCP-106. Анализ выявил в составе человеческую кровь, фекалии, гниль и прочие органические компоненты, включая реагенты неизвестного происхождения. + reagent-name-scp096-blood = гемосубстрат 096-К reagent-desc-scp096-blood = Плотная тёмная жидкость, изъятая из биоматериала SCP-096. Демонстрирует устойчивый состав с аномальными отклонениями в клеточной морфологии. diff --git a/Resources/Prototypes/_Scp/Actions/scp106.yml b/Resources/Prototypes/_Scp/Actions/scp106.yml index b32fbae16ad..38a53bc3de7 100644 --- a/Resources/Prototypes/_Scp/Actions/scp106.yml +++ b/Resources/Prototypes/_Scp/Actions/scp106.yml @@ -130,6 +130,21 @@ event: !type:Scp106TerrifyNearbyActionEvent cost: 30 +- type: entity + id: Scp106PuddleSpawnAction + components: + - type: Action + raiseOnUser: true + itemIconStyle: BigAction + useDelay: 180 + icon: + sprite: _Scp/Actions/scp-106.rsi + state: become_phantom # TODO свой спрайт + - type: InstantAction + event: !type:InstantSpawnSpellEvent + prototype: PuddleScp106Reagent200 + posData: !type:TargetCasterPos + ### PHANTOM ABILITIES END ### 3 TIRES OF PHANTOM ABILITY START diff --git a/Resources/Prototypes/_Scp/Catalog/Scp106Catalog.yml b/Resources/Prototypes/_Scp/Catalog/Scp106Catalog.yml index 44d1e0bd5c4..c47560f982a 100644 --- a/Resources/Prototypes/_Scp/Catalog/Scp106Catalog.yml +++ b/Resources/Prototypes/_Scp/Catalog/Scp106Catalog.yml @@ -1,20 +1,3 @@ -- type: listing - id: Scp106BoughtPhantomAction - name: scp106-shop-phantom-name - description: scp106-shop-phantom-desc - productEvent: !type:Scp106BoughtPhantomAction - boughtAction: Scp106BecomePhantom - categories: - - Scp106Abilities - cost: - LifeEssence: 10 - raiseProductEventOnUser: true - icon: - sprite: _Scp/Actions/scp-106.rsi - state: become_phantom - conditions: - - !type:ListingLimitedStockCondition - stock: 1 - type: listing id: Scp106UpgradePhantom @@ -33,9 +16,6 @@ conditions: - !type:ListingLimitedStockCondition stock: 4 - - !type:BuyBeforeCondition - whitelist: - - Scp106BoughtPhantomAction - type: listing id: Scp106BareBlade @@ -72,3 +52,21 @@ conditions: - !type:ListingLimitedStockCondition stock: 1 + +- type: listing + id: Scp106Puddle + name: scp106-shop-puddle-name + description: scp106-shop-puddle-desc + productEvent: !type:Scp106BoughtPuddle + boughtAction: Scp106PuddleSpawnAction + categories: + - Scp106Abilities + cost: + LifeEssence: 15 + raiseProductEventOnUser: true + icon: + sprite: _Scp/Actions/scp-106.rsi + state: become_phantom # TODO свой спрайт + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Prototypes/_Scp/Entities/Effects/puddle.yml b/Resources/Prototypes/_Scp/Entities/Effects/puddle.yml index 0681540f3f7..7038e32c901 100644 --- a/Resources/Prototypes/_Scp/Entities/Effects/puddle.yml +++ b/Resources/Prototypes/_Scp/Entities/Effects/puddle.yml @@ -23,3 +23,16 @@ reagents: - ReagentId: Scp173Reagent Quantity: 50 + +- type: entity + parent: PuddleTemporary + id: PuddleScp106Reagent200 + suffix: Scp106Reagent (200u) + components: + - type: SolutionContainerManager + solutions: + puddle: + maxVol: 1000 + reagents: + - ReagentId: Scp106Reagent + Quantity: 200 diff --git a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp106.yml b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp106.yml index 448074d2f52..0902956603c 100644 --- a/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp106.yml +++ b/Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp106.yml @@ -75,6 +75,7 @@ - Scp106RandomTeleportAction - Scp106BackroomsAction - ActionScp106Shop + - Scp106BecomePhantom - type: TTS voice: HearthstoneSotis - type: Vocal @@ -108,7 +109,7 @@ - ScpFear - type: Store balance: - LifeEssence: 20 + LifeEssence: 10 currencyWhitelist: - LifeEssence categories: @@ -121,3 +122,4 @@ allowed: - Stun - type: ComplexInteraction + - type: SpeedModifierContactCapClothing diff --git a/Resources/Prototypes/_Scp/Reagents/scp106.yml b/Resources/Prototypes/_Scp/Reagents/scp106.yml new file mode 100644 index 00000000000..35f30917020 --- /dev/null +++ b/Resources/Prototypes/_Scp/Reagents/scp106.yml @@ -0,0 +1,60 @@ +- type: reagent + parent: Blood + id: Scp106Reagent + name: reagent-scp-106-name + group: Biological + desc: reagent-scp106-desc + color: "#1A1C1A" + flavor: horrible + recognizable: false + physicalDesc: reagent-physical-desc-slimy + synthesisable: true + absorbCooldownPerUnit: 0.4 + viscosity: 0.6 + metabolisms: + Drink: + effects: + - !type:HealthChange + damage: + types: + Poison: 3 + - !type:Vomit + probability: 0.3 + - !type:GenericStatusEffect + key: TemporaryBlindness + component: TemporaryBlindness + conditions: + - !type:ReagentCondition + reagent: Scp106Reagent + min: 10 + - !type:MovementSpeedModifier + conditions: + - !type:ReagentCondition + reagent: Scp106Reagent + min: 20 + walkSpeedModifier: 0.8 + sprintSpeedModifier: 0.8 + - !type:ModifyBleed + amount: 0.3 + Poison: + effects: + - !type:HealthChange + damage: + types: + Poison: 8 + - !type:MovementSpeedModifier + conditions: + - !type:ReagentCondition + reagent: Scp106Reagent + min: 15 + walkSpeedModifier: 0.7 + sprintSpeedModifier: 0.7 + - !type:ModifyBleed + amount: 0.5 + plantMetabolism: + - !type:PlantAdjustToxins + amount: 5 + - !type:PlantAdjustWater + amount: 0.3 + - !type:PlantAdjustHealth + amount: -2