From 1ffa2cfddfc530f2da76882db4e0d05ba7c31f7e Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 01:58:44 +0300 Subject: [PATCH 01/36] =?UTF-8?q?=D0=A1=D0=BF=D0=B0=D0=B2=D0=BD=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=87=D0=BA=D0=B0=D0=BC=D0=B8=20=D0=BD=D0=B5=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D1=8F=D1=8F=20=D0=BA=D0=BE=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE=20=D0=BC=D0=BE=D0=B1=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/VentCrittersRuleComponent.cs | 7 +++++- .../StationEvents/Events/VentCrittersRule.cs | 25 ++++++++++++++----- Resources/Prototypes/GameRules/events.yml | 1 + 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs index f280468fc340..d34389bbf46b 100644 --- a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs +++ b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs @@ -1,4 +1,4 @@ -using Content.Server.StationEvents.Events; +using Content.Server.StationEvents.Events; using Content.Shared.Storage; namespace Content.Server.StationEvents.Components; @@ -14,4 +14,9 @@ public sealed partial class VentCrittersRuleComponent : Component /// [DataField("specialEntries")] public List SpecialEntries = new(); + + //SS220 fauna Update start + [DataField("stackAmount")] + public int StackAmount = 1; + //SS220 fauna update end } diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index d2c87c161c31..7a6c696280c9 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -23,20 +23,33 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone { return; } - + //SS220 fauna update + if (component.StackAmount == 0) + { + return; + } + //SS220 fauna update var locations = EntityQueryEnumerator(); var validLocations = new List(); + var counter = 1; while (locations.MoveNext(out _, out _, out var transform)) { - if (CompOrNull(transform.GridUid)?.Station == station && - HasComp(transform.GridUid)) //SS220 Vent critters spawn fix + if (counter % component.StackAmount == 0) { - validLocations.Add(transform.Coordinates); - foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) + if (CompOrNull(transform.GridUid)?.Station == station && + HasComp(transform.GridUid)) //SS220 Vent critters spawn fix { - Spawn(spawn, transform.Coordinates); + validLocations.Add(transform.Coordinates); + foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) + { + for (var i = 0; i < component.StackAmount; i++) //SS220 fauna Update for loop + { + Spawn(spawn, transform.Coordinates); //This line from offs + } + } } } + counter = counter + 1; } if (component.SpecialEntries.Count == 0 || validLocations.Count == 0) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 5191e38b79b0..585c59efb93a 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -415,6 +415,7 @@ weight: 5 duration: 60 - type: VentCrittersRule + stackAmount: 3 entries: - id: MobGiantSpiderAngry prob: 0.05 From 5492a4032c076864c928431d2218b2b7877d5445 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 03:13:02 +0300 Subject: [PATCH 02/36] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D0=B8=D0=BC=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/StationEvents/Events/VentCrittersRule.cs | 6 +++--- Resources/Prototypes/GameRules/events.yml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index 7a6c696280c9..ab98247e37a7 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -31,10 +31,10 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone //SS220 fauna update var locations = EntityQueryEnumerator(); var validLocations = new List(); - var counter = 1; + var counter = 1; //SS220 fauna update. Не нашел на чем считать спавны, поэтому добавил каунтер while (locations.MoveNext(out _, out _, out var transform)) { - if (counter % component.StackAmount == 0) + if (counter % component.StackAmount == 0) //SS220 fauna update. Только в отношении этого if { if (CompOrNull(transform.GridUid)?.Station == station && HasComp(transform.GridUid)) //SS220 Vent critters spawn fix @@ -44,7 +44,7 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone { for (var i = 0; i < component.StackAmount; i++) //SS220 fauna Update for loop { - Spawn(spawn, transform.Coordinates); //This line from offs + Spawn(spawn, transform.Coordinates); } } } diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 585c59efb93a..f126fb9db6bb 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -373,6 +373,7 @@ weight: 5 duration: 60 - type: VentCrittersRule + stackAmount: 3 entries: - id: MobAdultSlimesBlueAngry prob: 0.02 From ffc69e56deabe9c3b2ddf4a25c5d53edfd45b559 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 03:14:43 +0300 Subject: [PATCH 03/36] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D0=B8=D0=BC=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B8=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/GameRules/events.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index f126fb9db6bb..f742435e2ab9 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -373,7 +373,7 @@ weight: 5 duration: 60 - type: VentCrittersRule - stackAmount: 3 + stackAmount: 3 #SS220 fauna update entries: - id: MobAdultSlimesBlueAngry prob: 0.02 @@ -416,7 +416,7 @@ weight: 5 duration: 60 - type: VentCrittersRule - stackAmount: 3 + stackAmount: 3 #SS220 fauna update entries: - id: MobGiantSpiderAngry prob: 0.05 From 3e7b026f482870f6635b80fc05ef2cc5a3ffc4fe Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 14:18:56 +0300 Subject: [PATCH 04/36] =?UTF-8?q?=D0=9A=D0=BE=D0=B4=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=B4=20=D1=81=D0=BF=D0=B0=D0=B2=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B1=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/VentCrittersRuleComponent.cs | 5 ---- .../StationEvents/Events/VentCrittersRule.cs | 27 +++++++++---------- Resources/Prototypes/GameRules/events.yml | 4 +-- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs index d34389bbf46b..4c4ab5bf97ff 100644 --- a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs +++ b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs @@ -14,9 +14,4 @@ public sealed partial class VentCrittersRuleComponent : Component /// [DataField("specialEntries")] public List SpecialEntries = new(); - - //SS220 fauna Update start - [DataField("stackAmount")] - public int StackAmount = 1; - //SS220 fauna update end } diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index ab98247e37a7..ffa615d54f1f 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -23,33 +23,30 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone { return; } - //SS220 fauna update - if (component.StackAmount == 0) - { - return; - } - //SS220 fauna update var locations = EntityQueryEnumerator(); var validLocations = new List(); - var counter = 1; //SS220 fauna update. Не нашел на чем считать спавны, поэтому добавил каунтер - while (locations.MoveNext(out _, out _, out var transform)) + //SS220 Fauna update start + var counter = 1; + foreach (var entry in component.Entries) { - if (counter % component.StackAmount == 0) //SS220 fauna update. Только в отношении этого if + var amount = entry.GetAmount(); + //SS220 Fauna update end + while (locations.MoveNext(out _, out _, out var transform)) { - if (CompOrNull(transform.GridUid)?.Station == station && - HasComp(transform.GridUid)) //SS220 Vent critters spawn fix + if (counter % amount == 0) //SS220 this if cycle from Fauna update { - validLocations.Add(transform.Coordinates); - foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) + if (CompOrNull(transform.GridUid)?.Station == station && + HasComp(transform.GridUid)) //SS220 Vent critters spawn fix { - for (var i = 0; i < component.StackAmount; i++) //SS220 fauna Update for loop + validLocations.Add(transform.Coordinates); + foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) { Spawn(spawn, transform.Coordinates); } } } + counter = counter + 1; //SS220 Fauna update addition } - counter = counter + 1; } if (component.SpecialEntries.Count == 0 || validLocations.Count == 0) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index f742435e2ab9..33908836360c 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -373,7 +373,6 @@ weight: 5 duration: 60 - type: VentCrittersRule - stackAmount: 3 #SS220 fauna update entries: - id: MobAdultSlimesBlueAngry prob: 0.02 @@ -416,10 +415,11 @@ weight: 5 duration: 60 - type: VentCrittersRule - stackAmount: 3 #SS220 fauna update entries: - id: MobGiantSpiderAngry prob: 0.05 + amount: 3 + maxAmount: 3 - type: entity id: SpiderClownSpawn From bb67b0982c0ea5298331c2bf53511683db442be1 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 15:32:43 +0300 Subject: [PATCH 05/36] =?UTF-8?q?=D0=9A=D0=BE=D0=B4=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=B4=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StationEvents/Events/VentCrittersRule.cs | 30 ++++++++++--------- Resources/Prototypes/GameRules/events.yml | 12 ++++++-- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index ffa615d54f1f..5bc311d4e140 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -27,26 +27,28 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone var validLocations = new List(); //SS220 Fauna update start var counter = 1; + var maxAmount = 1; foreach (var entry in component.Entries) { - var amount = entry.GetAmount(); - //SS220 Fauna update end - while (locations.MoveNext(out _, out _, out var transform)) + if (maxAmount < entry.MaxAmount) { - if (counter % amount == 0) //SS220 this if cycle from Fauna update + maxAmount = entry.MaxAmount; + } + } + //SS220 Fauna update end + while (locations.MoveNext(out _, out _, out var transform)) + { + if (CompOrNull(transform.GridUid)?.Station == station && + HasComp(transform.GridUid)) //SS220 Vent critters spawn fix + { + validLocations.Add(transform.Coordinates); + foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) { - if (CompOrNull(transform.GridUid)?.Station == station && - HasComp(transform.GridUid)) //SS220 Vent critters spawn fix - { - validLocations.Add(transform.Coordinates); - foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) - { - Spawn(spawn, transform.Coordinates); - } - } + if (counter % maxAmount == 0) + Spawn(spawn, transform.Coordinates); } - counter = counter + 1; //SS220 Fauna update addition } + counter = counter + 1; //SS220 Fauna update addition } if (component.SpecialEntries.Count == 0 || validLocations.Count == 0) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 33908836360c..c81f24afa9f5 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -376,10 +376,16 @@ entries: - id: MobAdultSlimesBlueAngry prob: 0.02 + amount: 3 + maxAmount: 3 - id: MobAdultSlimesGreenAngry prob: 0.02 + amount: 3 + maxAmount: 3 - id: MobAdultSlimesYellowAngry prob: 0.02 + amount: 3 + maxAmount: 3 - type: entity id: SnakeSpawn @@ -418,8 +424,8 @@ entries: - id: MobGiantSpiderAngry prob: 0.05 - amount: 3 - maxAmount: 3 + amount: 3 #SS220 Fauna update + maxAmount: 4 #SS220 Fauna update - type: entity id: SpiderClownSpawn @@ -437,6 +443,8 @@ entries: - id: MobClownSpider prob: 0.05 + amount: 2 + maxAmount: 2 - type: entity id: ZombieOutbreak From 56480f9301351f32a442ae1187382f093ba20a33 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 22:00:51 +0300 Subject: [PATCH 06/36] =?UTF-8?q?=D0=A0=D0=B5=D0=B2=D0=B5=D1=80=D1=82=20?= =?UTF-8?q?=D1=89=D0=B8=D1=82=D0=BA=D0=BE=D0=B4=D0=B0=20+=D1=81=D0=BF?= =?UTF-8?q?=D0=B0=D0=B2=D0=BD=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StationEvents/Events/VentCrittersRule.cs | 18 +++--------------- Resources/Prototypes/GameRules/events.yml | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index 5bc311d4e140..d2c87c161c31 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -23,32 +23,20 @@ protected override void Started(EntityUid uid, VentCrittersRuleComponent compone { return; } + var locations = EntityQueryEnumerator(); var validLocations = new List(); - //SS220 Fauna update start - var counter = 1; - var maxAmount = 1; - foreach (var entry in component.Entries) - { - if (maxAmount < entry.MaxAmount) - { - maxAmount = entry.MaxAmount; - } - } - //SS220 Fauna update end while (locations.MoveNext(out _, out _, out var transform)) { if (CompOrNull(transform.GridUid)?.Station == station && - HasComp(transform.GridUid)) //SS220 Vent critters spawn fix + HasComp(transform.GridUid)) //SS220 Vent critters spawn fix { validLocations.Add(transform.Coordinates); foreach (var spawn in EntitySpawnCollection.GetSpawns(component.Entries, RobustRandom)) { - if (counter % maxAmount == 0) - Spawn(spawn, transform.Coordinates); + Spawn(spawn, transform.Coordinates); } } - counter = counter + 1; //SS220 Fauna update addition } if (component.SpecialEntries.Count == 0 || validLocations.Count == 0) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index c81f24afa9f5..4b34622284d4 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -374,16 +374,17 @@ duration: 60 - type: VentCrittersRule entries: + #SS220 fauna update. Each prob was 0.02 on off. Amount and max amout for SS220 - id: MobAdultSlimesBlueAngry - prob: 0.02 + prob: 0.01 amount: 3 maxAmount: 3 - id: MobAdultSlimesGreenAngry - prob: 0.02 + prob: 0.01 amount: 3 maxAmount: 3 - id: MobAdultSlimesYellowAngry - prob: 0.02 + prob: 0.01 amount: 3 maxAmount: 3 @@ -423,9 +424,11 @@ - type: VentCrittersRule entries: - id: MobGiantSpiderAngry - prob: 0.05 - amount: 3 #SS220 Fauna update - maxAmount: 4 #SS220 Fauna update + #SS220 Fauna update start. Offs prob is 0.05 + prob: 0.025 + amount: 3 + maxAmount: 4 + #SS220 Fauna update end. - type: entity id: SpiderClownSpawn @@ -442,9 +445,11 @@ - type: VentCrittersRule entries: - id: MobClownSpider - prob: 0.05 + #SS220 Fauna update start. Offs prob is 0.05 + prob: 0.04 amount: 2 maxAmount: 2 + #SS220 Fauna update end - type: entity id: ZombieOutbreak From 90ac6391c2b0597da305067181695376f7382134 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 30 Jan 2025 22:03:52 +0300 Subject: [PATCH 07/36] =?UTF-8?q?=D0=A0=D0=B5=D0=B2=D0=B5=D1=80=D1=82=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StationEvents/Components/VentCrittersRuleComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs index 4c4ab5bf97ff..f280468fc340 100644 --- a/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs +++ b/Content.Server/StationEvents/Components/VentCrittersRuleComponent.cs @@ -1,4 +1,4 @@ -using Content.Server.StationEvents.Events; +using Content.Server.StationEvents.Events; using Content.Shared.Storage; namespace Content.Server.StationEvents.Components; From ba2c1b3ecc47772352cc685155af7d7820ce865f Mon Sep 17 00:00:00 2001 From: kekw Date: Fri, 31 Jan 2025 06:11:02 +0300 Subject: [PATCH 08/36] =?UTF-8?q?=D0=A2=D0=AB=D0=BA=D0=B0=D0=B5=D0=BC=20?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/GameRules/events.yml | 4 ++-- .../SS220/Entities/Mobs/NPCs/space.yml | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 4b34622284d4..50a3b6850285 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -406,7 +406,7 @@ prob: 0.02 - id: MobSmallPurpleSnake prob: 0.02 - - id: MobCobraSpace + - id: MobCobraSpaceGhostRole #SS220 Fauna update prob: 0.02 - type: entity @@ -446,7 +446,7 @@ entries: - id: MobClownSpider #SS220 Fauna update start. Offs prob is 0.05 - prob: 0.04 + prob: 0.03 amount: 2 maxAmount: 2 #SS220 Fauna update end diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml index aee4bb5a5695..cae245c8e389 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml @@ -90,3 +90,21 @@ suffix: "Salvage Ruleset" components: - type: SalvageMobRestrictions + +- type: entity + id: MobCobraSpaceGhostRole + parent: MobCobraSpace + description: Long fangs and a glowing hood, and the alluring look begs to come closer. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-giant-spider-name + description: ghost-role-information-giant-spider-description + rules: ghost-role-information-giant-spider-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist +# SS220-partial-revert-raffle-Begin +# raffle: +# settings: short +# SS220-partial-revert-reffle-End + - type: GhostTakeoverAvailable From b7e3ed6372fc73488aff9965c9a3c532c41c913e Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 1 Feb 2025 23:28:09 +0300 Subject: [PATCH 09/36] =?UTF-8?q?=D0=93=D0=BE=D1=81=D1=82=20=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=BA=D0=BE=D1=81=D0=BC=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=B8=D1=85=20=D0=BA=D0=BE=D0=B1=D1=80=20=D0=B8=20=D0=B3?= =?UTF-8?q?=D0=B0=D0=B4=D1=8E=D0=BA=20+=20=D0=B7=D0=BC=D0=B5=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=85=D0=BE=D0=B4=D1=8F=D1=82=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=20=D1=88=D0=BB=D1=8E=D0=B7=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ghost/roles/ghost-role-component.ftl | 6 ++++ .../Prototypes/Entities/Mobs/NPCs/space.yml | 7 +++-- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 9 +++--- Resources/Prototypes/GameRules/events.yml | 4 +-- .../SS220/Entities/Mobs/NPCs/space.yml | 11 +++---- .../SS220/Entities/Mobs/NPCs/xeno.yml | 29 +++++++++++++++++++ 6 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index 69df9f587e29..c339503800e2 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -29,6 +29,9 @@ ghost-role-information-silicon-rules = Вы не помните ничего из своей предыдущей жизни и не помните ничего из того, что узнали, будучи призраком. Вам разрешено помнить знания об игре в целом, например, как готовить, как использовать предметы и т. д. Вам абсолютно [color=red]НЕ[/color] разрешено помнить, скажем, имя, внешность и т. д. вашего предыдущего персонажа. +ghost-role-information-space-adder-name = Космическая гадюка +ghost-role-information-space-adder-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. +ghost-role-information-small-space-adder-name = Маленькая космическая гадюка ghost-role-information-mouse-name = Мышь ghost-role-information-mouse-description = Голодная и озорная мышь. ghost-role-information-mothroach-name = Таракамоль @@ -42,6 +45,9 @@ ghost-role-information-snoth-description = Маленькая молитка, к ghost-role-information-giant-spider-name = Гигантский паук ghost-role-information-giant-spider-description = Обитатели этой станции выглядят очень аппетитно, а ваша липкая паутина идеально подходит для их ловли! ghost-role-information-giant-spider-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими гигантскими пауками. +ghost-role-information-cobra-space-name = Космическая кобра +ghost-role-information-cobra-space-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. Когда вас заметят - будет слишком поздно +ghost-role-information-snake-overall-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими змеями из далёкого космоса. ghost-role-information-cognizine-description = Приобрело сознание с помощью магии когнизина. ghost-role-information-hamster-name = Хомяк ghost-role-information-hamster-description = Маленький ворчливый пушистик. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 6a27f74c1810..d3dfb76a3d8b 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -284,8 +284,9 @@ parent: MobSpaceBasic description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: + - type: HTN #SS220 Fauna update - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Animals/spacecobra.rsi layers: - map: [ "enum.DamageStateVisualLayers.Base" ] @@ -329,9 +330,9 @@ radius: 0.40 density: 120 mask: - - MobMask + - SmallMobMask #SS220 Fauna update layer: - - MobLayer + - SmallMobLayer #SS220 Fauna update - type: MeleeWeapon hidden: true soundHit: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 23d3e838e21e..1a0876cfd570 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -364,8 +364,9 @@ id: MobPurpleSnake description: A menacing purple snake from Kepler-283c. components: + - type: HTN #SS220 Fauna update - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi layers: - map: ["enum.DamageStateVisualLayers.Base"] @@ -416,9 +417,9 @@ radius: 0.35 density: 25 mask: - - MobMask + - SmallMobMask #SS220 Fauna update layer: - - MobLayer + - SmallMobLayer #SS220 Fauna update - type: FootstepModifier footstepSoundCollection: collection: FootstepSnake @@ -435,7 +436,7 @@ description: A smaller version of the menacing purple snake from Kepler-283c. components: - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi layers: - map: ["enum.DamageStateVisualLayers.Base"] diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 65ad0f523343..e807cca64b46 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -430,9 +430,9 @@ duration: 60 - type: VentCrittersRule entries: - - id: MobPurpleSnake + - id: MobPurpleSnakeGhostRole #SS220 Fauna update prob: 0.02 - - id: MobSmallPurpleSnake + - id: MobSmallPurpleSnakeGhostRole #SS220 Fauna update prob: 0.02 - id: MobCobraSpaceGhostRole #SS220 Fauna update prob: 0.02 diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml index cae245c8e389..461be315fde7 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml @@ -92,19 +92,16 @@ - type: SalvageMobRestrictions - type: entity + name: космическая кобра id: MobCobraSpaceGhostRole parent: MobCobraSpace description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: - type: GhostRole makeSentient: true - name: ghost-role-information-giant-spider-name - description: ghost-role-information-giant-spider-description - rules: ghost-role-information-giant-spider-rules + name: ghost-role-information-cobra-space-name + description: ghost-role-information-cobra-space-description + rules: ghost-role-information-snake-overall-rules mindRoles: - MindRoleGhostRoleTeamAntagonist -# SS220-partial-revert-raffle-Begin -# raffle: -# settings: short -# SS220-partial-revert-reffle-End - type: GhostTakeoverAvailable diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml new file mode 100644 index 000000000000..816cd26870cf --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml @@ -0,0 +1,29 @@ +- type: entity + name: космическая гадюка + parent: MobPurpleSnake + id: MobPurpleSnakeGhostRole + description: A menacing purple snake from Kepler-283c. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-space-adder-name + description: ghost-role-information-space-adder-description + rules: ghost-role-information-snake-overall-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable + +- type: entity + name: маленькая космическая гадюка + parent: MobSmallPurpleSnake + id: MobSmallPurpleSnakeGhostRole + description: A menacing purple snake from Kepler-283c. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-small-space-adder-name + description: ghost-role-information-space-adder-description + rules: ghost-role-information-snake-overall-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable \ No newline at end of file From 64bcafc076d84664a18ff4e6bcab4deef5250831 Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 1 Feb 2025 23:45:46 +0300 Subject: [PATCH 10/36] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B3=D0=B0?= =?UTF-8?q?=D0=B4=D1=8E=D0=BA=20+=20=D0=9D=D0=BE=D1=83=D1=81=D0=BB=D0=B8?= =?UTF-8?q?=D0=BF=20=D1=81=D0=BB=D0=B0=D0=B9=D0=BC=D0=B0=D0=BC=20=D0=B8=20?= =?UTF-8?q?=D0=B3=D0=B0=D0=B4=D1=8E=D0=BA=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml | 1 + Resources/Prototypes/Entities/Mobs/NPCs/space.yml | 2 +- Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 20c7e8af8117..8f963867cdb6 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -5,6 +5,7 @@ abstract: true description: It looks so much like jelly. I wonder what it tastes like? components: + - type: NoSlip #SS220 Fauna update - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/slimes.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index d3dfb76a3d8b..d3d53e50e1c5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -284,7 +284,7 @@ parent: MobSpaceBasic description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: - - type: HTN #SS220 Fauna update + - type: NoSlip #SS220 Fauna update - type: Sprite drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Animals/spacecobra.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 1a0876cfd570..2c9ae21422cf 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -364,7 +364,7 @@ id: MobPurpleSnake description: A menacing purple snake from Kepler-283c. components: - - type: HTN #SS220 Fauna update + - type: NoSlip #SS220 Fauna update - type: Sprite drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi From 545364e74dba88a24a3981f247b32a7281224c5a Mon Sep 17 00:00:00 2001 From: kekw Date: Sun, 2 Feb 2025 01:26:20 +0300 Subject: [PATCH 11/36] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=B2=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BA=D0=BE=D1=81=D0=BC=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D1=85=20=D0=B7=D0=BC=D0=B5=D0=B9=20=D0=B8=20=D0=BA=D0=BE=D0=B1?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/GameRules/events.yml | 35 ++++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index e807cca64b46..ecfd51001d55 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -24,6 +24,9 @@ - id: SpiderClownSpawn - id: SpiderSpawn - id: VentClog + #SS220 Fauna update start + - id: SpaceCobraSpawn + #SS220 Fauna update end - type: entityTable id: BasicAntagEventsTable @@ -431,11 +434,35 @@ - type: VentCrittersRule entries: - id: MobPurpleSnakeGhostRole #SS220 Fauna update - prob: 0.02 + prob: 0.03 - id: MobSmallPurpleSnakeGhostRole #SS220 Fauna update - prob: 0.02 - - id: MobCobraSpaceGhostRole #SS220 Fauna update - prob: 0.02 + prob: 0.03 + #SS220 Fauna update. Making this event just snakes. + #- id: MobCobraSpace + #prob: 0.02 + +#SS220 Fauna update start +- type: entity + id: SpaceCobraSpawn + parent: BaseStationEventShortDelay + components: + - type: StationEvent + startAnnouncement: station-event-vent-creatures-start-announcement + # SS220 MoreAnonces (sound and alert upgrades) bgn + startAudio: + path: /Audio/SS220/Announcements/lifesigns.ogg + params: + volume: -4 + # SS220 MoreAnonces (sound and alert upgrades) end + earliestStart: 20 + minimumPlayers: 15 + weight: 5 + duration: 60 + - type: VentCrittersRule + entries: + - id: MobCobraSpace + prob: 0.06 +#SS220 Fauna update end - type: entity id: SpiderSpawn From 8736b9420047fda84d1b1682bce71d0f20850744 Mon Sep 17 00:00:00 2001 From: kekw Date: Sun, 2 Feb 2025 01:49:28 +0300 Subject: [PATCH 12/36] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=8F=D0=B5=D0=BC=20=D0=B1=D0=B0=D0=BB=D0=B0=D0=BD=D1=81=20?= =?UTF-8?q?=D0=97=20=D0=9E=20=D0=9D=20=D0=95=20=D0=A1=20=D0=90=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BA=D0=BE=D1=80=D0=BE=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B2=D1=81=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20=D0=B4=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- Resources/Prototypes/GameRules/events.yml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 73292f2f9072..dbfac71a2a27 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2372,7 +2372,7 @@ - type: Prying # Open door from xeno.yml. pryPowered: true force: true - speedModifier: 1.5 + speedModifier: 3 #SS220 Fauna update 1.5 -> 3. B A L A N S Z O N E S A useSound: path: /Audio/Items/crowbar.ogg - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute from base.yml. diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index ecfd51001d55..9fecb3c2e5bc 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -448,12 +448,10 @@ components: - type: StationEvent startAnnouncement: station-event-vent-creatures-start-announcement - # SS220 MoreAnonces (sound and alert upgrades) bgn startAudio: path: /Audio/SS220/Announcements/lifesigns.ogg params: volume: -4 - # SS220 MoreAnonces (sound and alert upgrades) end earliestStart: 20 minimumPlayers: 15 weight: 5 From 6d122f6dffce93e931ccaf6813f5ef27d9e7a001 Mon Sep 17 00:00:00 2001 From: kekw Date: Sun, 2 Feb 2025 20:53:22 +0300 Subject: [PATCH 13/36] =?UTF-8?q?=D0=A1=D1=82=D0=B0=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B5=D0=B7=D0=B8=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 5 +++++ .../Prototypes/Entities/Mobs/NPCs/slimes.yml | 2 +- Resources/Prototypes/GameRules/events.yml | 3 ++- .../Prototypes/SS220/Damage/modifier_sets.yml | 17 +++++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index dbfac71a2a27..0ccd55cdd8fe 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2352,6 +2352,11 @@ - type: Spider - type: IgnoreSpiderWeb - type: Bloodstream + #SS220 Fauna update start + - type: Damageable + damageContainer: Biological + damageModifierSet: SpiderMob + #SS220 Fauna update end bloodMaxVolume: 150 bloodReagent: CopperBlood - type: Speech diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 8f963867cdb6..1e73c8161d4f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -54,7 +54,7 @@ maxSaturation: 15 - type: Damageable damageContainer: Biological - damageModifierSet: Slime + damageModifierSet: SlimeMob #SS220 FaunaUpdate - type: Bloodstream bloodReagent: Slime bloodlossDamage: diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 9fecb3c2e5bc..6c8576d93b17 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -401,7 +401,7 @@ duration: 60 - type: VentCrittersRule entries: - #SS220 fauna update. Each prob was 0.02 on off. Amount and max amout for SS220 + #SS220 fauna update start. Each prob was 0.02 on wizden. Amount and max amout for SS220 - id: MobAdultSlimesBlueAngry prob: 0.01 amount: 3 @@ -414,6 +414,7 @@ prob: 0.01 amount: 3 maxAmount: 3 + #SS220 Fauna update end - type: entity id: SnakeSpawn diff --git a/Resources/Prototypes/SS220/Damage/modifier_sets.yml b/Resources/Prototypes/SS220/Damage/modifier_sets.yml index 34a3588fa955..23139964d108 100644 --- a/Resources/Prototypes/SS220/Damage/modifier_sets.yml +++ b/Resources/Prototypes/SS220/Damage/modifier_sets.yml @@ -120,3 +120,20 @@ Poison: 0.8 Cellular: 1 Radiation: 0.5 + +#Fauna update stuff +- type: damageModifierSet + id: SlimeMob + coefficients: + Blunt: 0.6 + Slash: 1.2 + Piercing: 1.2 + Cold: 1.5 + Poison: 0.8 + Cellular: 0.2 + Stamina: 0.4 + +- type: damageModifierSet + id: SpiderMob + coefficients: + Stamina: 0.4 From 59ff019113f3a60db85b0f64ad2c60105a7f24fd Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 3 Feb 2025 08:16:34 +0300 Subject: [PATCH 14/36] =?UTF-8?q?=D0=A1=D1=82=D0=B0=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B5=D0=B7=D0=B8=D1=81=D1=82=D1=8B=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/space.yml | 7 ++++++- Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 9 +++++++-- Resources/Prototypes/SS220/Damage/modifier_sets.yml | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index d3d53e50e1c5..b80952e333a0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -284,7 +284,12 @@ parent: MobSpaceBasic description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: - - type: NoSlip #SS220 Fauna update + #SS220 Fauna update start + - type: NoSlip + - type: Damageable + damageContainer: Biological + damageModifierSet: SnakeMob + #SS220 Fauna update end - type: Sprite drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Animals/spacecobra.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 2c9ae21422cf..552648cbdca1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -364,7 +364,12 @@ id: MobPurpleSnake description: A menacing purple snake from Kepler-283c. components: - - type: NoSlip #SS220 Fauna update + #SS220 Fauna update start + - type: NoSlip + - type: Damageable + damageContainer: Biological + damageModifierSet: SnakeMob + #SS220 Fauna update end - type: Sprite drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi @@ -425,7 +430,7 @@ collection: FootstepSnake - type: Tag tags: - - DoorBumpOpener + # - DoorBumpOpener #Muted tag cause of SS220 fauna update - FootstepSound - type: entity diff --git a/Resources/Prototypes/SS220/Damage/modifier_sets.yml b/Resources/Prototypes/SS220/Damage/modifier_sets.yml index 23139964d108..627c674ca46e 100644 --- a/Resources/Prototypes/SS220/Damage/modifier_sets.yml +++ b/Resources/Prototypes/SS220/Damage/modifier_sets.yml @@ -137,3 +137,8 @@ id: SpiderMob coefficients: Stamina: 0.4 + +- type: damageModifierSet + id: SnakeMob + coefficients: + Stamina: 0.6 From 9cbdc7cce61ce9e5edce13df5e06bd4cf84ccaf8 Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 3 Feb 2025 08:45:53 +0300 Subject: [PATCH 15/36] =?UTF-8?q?=D0=A2=D0=B0=D1=80=D0=B0=D0=BD=D1=82?= =?UTF-8?q?=D1=83=D0=BB=D1=8B=20=D1=81=D1=82=D1=80=D0=BE=D1=8F=D1=82=20?= =?UTF-8?q?=D1=81=D1=82=D0=B5=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 0ccd55cdd8fe..c83c1ceee07f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2396,6 +2396,11 @@ id: MobSpiderAngryBase abstract: true components: + #SS220 Fauna update start + - type: ActionGrant + actions: + - ActionSpawnSpiderWallWeb + #SS220 Fauna update end - type: NpcFactionMember factions: - SpiderHostile #ss220 spider queen From da726e9729b48bc564214bb3806d37d4aba77aec Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 3 Feb 2025 09:02:44 +0300 Subject: [PATCH 16/36] =?UTF-8?q?=D0=9E=D1=82=D0=B4=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D1=8D=D0=BA=D1=88=D0=BD=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- .../SS220/Actions/Spider_actions.yml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index c83c1ceee07f..b3ef1ee1f6d6 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2399,7 +2399,7 @@ #SS220 Fauna update start - type: ActionGrant actions: - - ActionSpawnSpiderWallWeb + - ActionSpawnSpiderWallWebTarantula #SS220 Fauna update end - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index df38740b2ec9..e07663c339f1 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -186,6 +186,24 @@ amount: 1 offset: 0, 1 +- type: entity + id: ActionSpawnSpiderWallWebTarantula + name: create a wall + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 24 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/action_spider.rsi + state: wall_spawn + event: !type:SpiderTargetSpawnEvent + prototypes: + - id: WallWebSpawn + amount: 1 + offset: 0, 1 + - type: entity parent: ActionSpawnSpiderWallWeb id: ActionSpawnSpiderWallWebDurable From 9c038dad6b070268f6bb925c512b4b3bed4290a7 Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 3 Feb 2025 09:33:59 +0300 Subject: [PATCH 17/36] =?UTF-8?q?=D0=9D=D0=B5=20=D0=B1=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=BE?= =?UTF-8?q?=D0=B1=20=D0=B4=D0=B2=D0=B5=D1=80=D1=8C!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/space.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index b80952e333a0..885f18840eed 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -373,6 +373,12 @@ - type: StealthOnMove passiveVisibilityRate: -0.25 movementVisibilityRate: 0.25 + #SS220 Fauna Update start + - type: Tag + tags: + - CannotSuicide + - FootstepSound + #SS220 Fauna Update end - type: entity id: MobCobraSpaceSalvage From 84518042e1941cadde7cb059c45cd600c6824a71 Mon Sep 17 00:00:00 2001 From: kekw Date: Tue, 4 Feb 2025 10:56:30 +0300 Subject: [PATCH 18/36] =?UTF-8?q?=D0=9F=D0=B0=D1=83=D0=BA=D0=B8=20=D1=86?= =?UTF-8?q?=D0=B5=D0=BF=D0=BB=D1=8F=D1=8E=D1=82=D1=81=D1=8F=20=D0=B7=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B2=D0=B5=D1=80=D1=85=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=82=D1=81=D1=83=D1=82?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D0=B3=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index b3ef1ee1f6d6..0278c70d2bc9 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2356,6 +2356,7 @@ - type: Damageable damageContainer: Biological damageModifierSet: SpiderMob + - type: Magboots #SS220 Fauna update end bloodMaxVolume: 150 bloodReagent: CopperBlood From c82ae941abe801666f837a393d539c70c38c2168 Mon Sep 17 00:00:00 2001 From: kekw Date: Tue, 4 Feb 2025 17:41:31 +0300 Subject: [PATCH 19/36] =?UTF-8?q?=D0=9B=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=20?= =?UTF-8?q?=D0=B3=D0=BE=D1=81=D1=82=20=D1=80=D0=BE=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B1=D1=80=20=D0=B8=20=D0=B3=D0=B0=D0=B4=D1=8E?= =?UTF-8?q?=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl | 3 +++ .../ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl | 6 ++++++ Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml | 3 ++- Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl index fe3306b3683b..6f9e008d603c 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl @@ -17,6 +17,9 @@ ent-MobSpiderSpaceSalvage = { ent-MobSpiderSpace } .desc = { ent-MobSpiderSpace.desc } ent-MobCobraSpace = космическая кобра .desc = Длинные клыки, светящийся капюшон и манящий взгляд так и манят подойти поближе. +ent-MobCobraSpaceGhostRole = { ent-MobCobraSpace } + .suffix = Роль призрака + .desc = { ent-MobCobraSpace.desc } ent-MobCobraSpaceSalvage = { ent-MobCobraSpace } .suffix = Salvage Ruleset .desc = { ent-MobCobraSpace.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl index d6fbec371b1a..33fa9662d3df 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl @@ -19,3 +19,9 @@ ent-MobPurpleSnake = космическая гадюка ent-MobSmallPurpleSnake = космическая гадюка .desc = Уменьшенная версия грозной пурпурной змеи из Kepler-283c. .suffix = Маленькая +ent-MobPurpleSnakeGhostRole = { ent-MobPurpleSnake } + .desc = { ent-MobPurpleSnake.desc } + .suffix = Роль призрака +ent-MobSmallPurpleSnakeGhostRole = { ent-MobSmallPurpleSnake } + .desc = { ent-MobSmallPurpleSnake.desc } + .suffix = { ent-MobSmallPurpleSnake.suffix }, Роль призрака diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml index 461be315fde7..fd633eb2ddbc 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml @@ -92,8 +92,9 @@ - type: SalvageMobRestrictions - type: entity - name: космическая кобра + name: Space Cobra id: MobCobraSpaceGhostRole + suffix: GhostRole parent: MobCobraSpace description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml index 816cd26870cf..c6d3d045e91f 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml @@ -2,6 +2,7 @@ name: космическая гадюка parent: MobPurpleSnake id: MobPurpleSnakeGhostRole + suffix: GhostRole description: A menacing purple snake from Kepler-283c. components: - type: GhostRole @@ -17,6 +18,7 @@ name: маленькая космическая гадюка parent: MobSmallPurpleSnake id: MobSmallPurpleSnakeGhostRole + suffix: GhostRole description: A menacing purple snake from Kepler-283c. components: - type: GhostRole From 06f0b8a4dd23b413fdb7559488b050915e667be7 Mon Sep 17 00:00:00 2001 From: kekw Date: Tue, 4 Feb 2025 23:23:50 +0300 Subject: [PATCH 20/36] =?UTF-8?q?=D0=A2=D0=B5=D1=80=D0=BC=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=B7=D1=80=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 0278c70d2bc9..4c7f36039512 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2353,6 +2353,9 @@ - type: IgnoreSpiderWeb - type: Bloodstream #SS220 Fauna update start + - type: ThermalVision + state: Half + visionRadius: 14 - type: Damageable damageContainer: Biological damageModifierSet: SpiderMob From 8550722c90955df5fc2bd52f70e9fcfad6765fa9 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 6 Feb 2025 14:30:12 +0300 Subject: [PATCH 21/36] =?UTF-8?q?=D0=AD=D0=BA=D1=88=D0=BD=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=BB=D0=B0=D0=BC=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=88?= =?UTF-8?q?=D0=BB=D1=8E=D0=B7=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prying/Components/PryingComponent.cs | 8 ++++++++ Content.Shared/Prying/Systems/PryingSystem.cs | 16 +++++++++++++++- Content.Shared/SS220/Prying/PryingAction.cs | 7 +++++++ .../Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + .../Prototypes/SS220/Actions/Spider_actions.yml | 14 ++++++++++++++ 5 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 Content.Shared/SS220/Prying/PryingAction.cs diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 93713e52c67f..79a4b4006993 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -1,5 +1,6 @@ using Robust.Shared.Audio; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.Prying.Components; @@ -36,6 +37,12 @@ public sealed partial class PryingComponent : Component /// [DataField] public bool Enabled = true; + + [ViewVariables] + public EntityUid? ActionPryingEntity; + + [DataField("actionPry")] + public EntProtoId ActionPrying = "ActionPrying"; } /// @@ -94,3 +101,4 @@ public GetPryTimeModifierEvent(EntityUid user) } } + diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index 10c80cfab594..b364cdef722a 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -8,9 +8,9 @@ using Content.Shared.Prying.Components; using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; +using Content.Shared.SS220.Prying; //ss220 fauna update using Robust.Shared.Serialization; using PryUnpoweredComponent = Content.Shared.Prying.Components.PryUnpoweredComponent; - namespace Content.Shared.Prying.Systems; /// @@ -31,8 +31,22 @@ public override void Initialize() SubscribeLocalEvent>(OnDoorAltVerb); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(TryPryDoor); + + SubscribeLocalEvent(OnPryActionEvent); //ss220 fauna update } + //ss220 fauna update start + private void OnPryActionEvent(Entity entity, ref ActionPryingEvent args) + { + if (args.Handled) + return; + + if (!TryComp(args.Target, out DoorComponent? comp)) + return; + + args.Handled = TryPry(args.Target, args.Performer, out _, args.Performer); + } + //ss220 fauna update end private void TryPryDoor(EntityUid uid, DoorComponent comp, InteractUsingEvent args) { if (args.Handled) diff --git a/Content.Shared/SS220/Prying/PryingAction.cs b/Content.Shared/SS220/Prying/PryingAction.cs new file mode 100644 index 000000000000..e355f0a27e3d --- /dev/null +++ b/Content.Shared/SS220/Prying/PryingAction.cs @@ -0,0 +1,7 @@ +using Content.Shared.Actions; + +namespace Content.Shared.SS220.Prying; + +public sealed partial class ActionPryingEvent : EntityTargetActionEvent +{ +} diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 4c7f36039512..28b7ff6439c5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2404,6 +2404,7 @@ - type: ActionGrant actions: - ActionSpawnSpiderWallWebTarantula + - ActionPrying #SS220 Fauna update end - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index e07663c339f1..cf3f74495cc8 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -343,3 +343,17 @@ itemIconStyle: NoItem icon: { sprite: SS220/Interface/Actions/action_spider.rsi, state: cocoon } useDelay: 10 + +#Prying +- type: entity + id: ActionPrying + name: Prying + description: Pry + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/actions_rat_king.rsi + state: ratKingRummage + event: !type:ActionPryingEvent \ No newline at end of file From 07b8471e77d2f1b24b4aa41697b4a1ecb83b11fa Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 6 Feb 2025 17:59:01 +0300 Subject: [PATCH 22/36] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=8F=D0=B8=D1=86=20?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=B0=D0=BC=20?= =?UTF-8?q?(=D0=BD=D0=B5=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + .../SS220/Actions/Spider_actions.yml | 19 +++++++++++++++++++ .../Entities/Objects/Misc/spider_eggs.yml | 13 +++++++++++++ 3 files changed, 33 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 28b7ff6439c5..c801caae7e3c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2405,6 +2405,7 @@ actions: - ActionSpawnSpiderWallWebTarantula - ActionPrying + - ActionSpawnSpiderEggTarantula #SS220 Fauna update end - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index cf3f74495cc8..9f1f61cc727c 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -51,6 +51,25 @@ cost: 40 doAfter: 5 +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggTarantula + name: Tarantula spider egg + description: Tarantula + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + icon: + sprite: SS220/Interface/Actions/action_spider.rsi + state: hunter_spawn + event: !type:SpiderNearbySpawnEvent + prototypes: + - id: SpiderEggTarantula + amount: 1 + offset: 0, 1 + startDelay: true + useDelay: 240 + - type: entity parent: BaseActionSpawnSpiderEgg id: ActionSpawnSpiderEggHunterBloodPoints diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml index 14baaca7e984..538761dfe3a7 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -62,6 +62,19 @@ price: 500 #Spiders +- type: entity + parent: BaseSpiderEgg + id: SpiderEggTarantula + categories: [ HideSpawnMenu ] + name: Tarantula egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: SpiderEgg + incubationTime: 30 + spawnProtos: + - id: MobSpiderAngryBase + amount: 1 + - type: entity parent: BaseSpiderEgg id: SpiderEggDrone From 9bfcca4aca7d73cefeba2877fce4fedf10410e02 Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 6 Feb 2025 18:28:38 +0300 Subject: [PATCH 23/36] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?(=D0=92=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/SS220/Actions/Spider_actions.yml | 2 +- .../Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index 9f1f61cc727c..7446141575a9 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -68,7 +68,7 @@ amount: 1 offset: 0, 1 startDelay: true - useDelay: 240 + useDelay: 4 - type: entity parent: BaseActionSpawnSpiderEgg diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml index 538761dfe3a7..5b6a28e56db2 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -72,7 +72,7 @@ - type: SpiderEgg incubationTime: 30 spawnProtos: - - id: MobSpiderAngryBase + - id: MobGiantSpiderAngry amount: 1 - type: entity From fcd88fdf1391cc0a9c3742c13263cfdbaf600b6f Mon Sep 17 00:00:00 2001 From: kekw Date: Thu, 6 Feb 2025 18:50:27 +0300 Subject: [PATCH 24/36] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?+=20=D0=BE=D0=B4=D0=B8=D0=BD=D0=BE=D1=87=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=83=D1=82=D0=B8=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 1 + Resources/Prototypes/SS220/Actions/Spider_actions.yml | 10 +++++++++- .../SS220/Entities/Objects/Misc/spider_eggs.yml | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index c801caae7e3c..80a1a3fbb439 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2406,6 +2406,7 @@ - ActionSpawnSpiderWallWebTarantula - ActionPrying - ActionSpawnSpiderEggTarantula + - ActionSpawnSingleSpiderWebStandartDelay #SS220 Fauna update end - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index 7446141575a9..adec8bff4458 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -68,7 +68,7 @@ amount: 1 offset: 0, 1 startDelay: true - useDelay: 4 + useDelay: 240 - type: entity parent: BaseActionSpawnSpiderEgg @@ -292,6 +292,14 @@ - type: WorldTargetAction useDelay: 2 +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebStandartDelay + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 4 + - type: entity parent: BaseActionSpawnSingleSpiderWeb id: ActionSpawnSingleSpiderWebLongDelay diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml index 5b6a28e56db2..136d3dfb052c 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -11,6 +11,7 @@ - type: Sprite sprite: Objects/Misc/eggspider.rsi state: icon + drawdepth: Mobs - type: Transform - type: Clickable - type: InteractionOutline From 680a3823ec1c747438839541e853700a2d0b7100 Mon Sep 17 00:00:00 2001 From: kekw Date: Fri, 7 Feb 2025 18:32:09 +0300 Subject: [PATCH 25/36] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20+=20=D0=BF?= =?UTF-8?q?=D0=BB=D0=B5=D0=B9=D1=81=D1=85=D0=BE=D0=BB=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D1=8B=20=D1=82=D0=B0=D1=80=D0=B0=D0=BD=D1=82=D1=83=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=20+=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ghost/roles/ghost-role-component.ftl | 6 -- .../prototypes/entities/mobs/npcs/space.ftl | 3 - .../prototypes/entities/mobs/npcs/xeno.ftl | 6 -- .../ghost/roles/ghost-role-component.ftl | 12 +++- .../prototypes/entities/mobs/npcs/space.ftl | 3 + .../prototypes/entities/mobs/npcs/xeno.ftl | 6 ++ .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- .../Actions/MinorFauna/Tarantula_actions.yml | 62 ++++++++++++++++++ .../SS220/Actions/Spider_actions.yml | 53 +-------------- .../action_tarantula.rsi/cocoon.png | Bin 0 -> 1337 bytes .../MinorFauna/action_tarantula.rsi/meta.json | 26 ++++++++ .../action_tarantula.rsi/prying.png | Bin 0 -> 1214 bytes .../action_tarantula.rsi/tarantula_spawn.png | Bin 0 -> 1309 bytes .../action_tarantula.rsi/wall_spawn.png | Bin 0 -> 1292 bytes .../action_tarantula.rsi/web_spawn.png | Bin 0 -> 935 bytes 15 files changed, 110 insertions(+), 69 deletions(-) create mode 100644 Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl create mode 100644 Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl create mode 100644 Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/web_spawn.png diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index c339503800e2..69df9f587e29 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -29,9 +29,6 @@ ghost-role-information-silicon-rules = Вы не помните ничего из своей предыдущей жизни и не помните ничего из того, что узнали, будучи призраком. Вам разрешено помнить знания об игре в целом, например, как готовить, как использовать предметы и т. д. Вам абсолютно [color=red]НЕ[/color] разрешено помнить, скажем, имя, внешность и т. д. вашего предыдущего персонажа. -ghost-role-information-space-adder-name = Космическая гадюка -ghost-role-information-space-adder-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. -ghost-role-information-small-space-adder-name = Маленькая космическая гадюка ghost-role-information-mouse-name = Мышь ghost-role-information-mouse-description = Голодная и озорная мышь. ghost-role-information-mothroach-name = Таракамоль @@ -45,9 +42,6 @@ ghost-role-information-snoth-description = Маленькая молитка, к ghost-role-information-giant-spider-name = Гигантский паук ghost-role-information-giant-spider-description = Обитатели этой станции выглядят очень аппетитно, а ваша липкая паутина идеально подходит для их ловли! ghost-role-information-giant-spider-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими гигантскими пауками. -ghost-role-information-cobra-space-name = Космическая кобра -ghost-role-information-cobra-space-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. Когда вас заметят - будет слишком поздно -ghost-role-information-snake-overall-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими змеями из далёкого космоса. ghost-role-information-cognizine-description = Приобрело сознание с помощью магии когнизина. ghost-role-information-hamster-name = Хомяк ghost-role-information-hamster-description = Маленький ворчливый пушистик. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl index 6f9e008d603c..fe3306b3683b 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/space.ftl @@ -17,9 +17,6 @@ ent-MobSpiderSpaceSalvage = { ent-MobSpiderSpace } .desc = { ent-MobSpiderSpace.desc } ent-MobCobraSpace = космическая кобра .desc = Длинные клыки, светящийся капюшон и манящий взгляд так и манят подойти поближе. -ent-MobCobraSpaceGhostRole = { ent-MobCobraSpace } - .suffix = Роль призрака - .desc = { ent-MobCobraSpace.desc } ent-MobCobraSpaceSalvage = { ent-MobCobraSpace } .suffix = Salvage Ruleset .desc = { ent-MobCobraSpace.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl index 33fa9662d3df..d6fbec371b1a 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl @@ -19,9 +19,3 @@ ent-MobPurpleSnake = космическая гадюка ent-MobSmallPurpleSnake = космическая гадюка .desc = Уменьшенная версия грозной пурпурной змеи из Kepler-283c. .suffix = Маленькая -ent-MobPurpleSnakeGhostRole = { ent-MobPurpleSnake } - .desc = { ent-MobPurpleSnake.desc } - .suffix = Роль призрака -ent-MobSmallPurpleSnakeGhostRole = { ent-MobSmallPurpleSnake } - .desc = { ent-MobSmallPurpleSnake.desc } - .suffix = { ent-MobSmallPurpleSnake.suffix }, Роль призрака diff --git a/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl index c0aef56d3aef..32c60e05f806 100644 --- a/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl @@ -20,6 +20,16 @@ ghost-role-information-traveling-chef-description = Вы - шеф-повар н ghost-role-information-traveling-chef-rules = Действуют обычные правила для экипажа станции. # Lost souls roles end +#Fauna update start here!!! ghost-role-information-giant-fly-name = Веспия ghost-role-information-giant-fly-description = Вы гигантская боевая оса. Ваша задача - уничтожить всех кроме представителей вашего вида. -ghost-role-information-giant-fly-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими гигантскими осами. \ No newline at end of file +ghost-role-information-giant-fly-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими гигантскими осами. + +ghost-role-information-space-adder-name = Космическая гадюка +ghost-role-information-space-adder-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. +ghost-role-information-small-space-adder-name = Маленькая космическая гадюка + +ghost-role-information-cobra-space-name = Космическая кобра +ghost-role-information-cobra-space-description = Когда вас заметят - будет слишком поздно. Выползайте на охоту! +ghost-role-information-snake-overall-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими змеями из далёкого космоса. +#Fauna update end here!!! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl new file mode 100644 index 000000000000..4b3ecf05d329 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl @@ -0,0 +1,3 @@ +ent-MobCobraSpaceGhostRole = { ent-MobCobraSpace } + .suffix = Роль призрака + .desc = { ent-MobCobraSpace.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl new file mode 100644 index 000000000000..18f0bf9a0095 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl @@ -0,0 +1,6 @@ +ent-MobPurpleSnakeGhostRole = { ent-MobPurpleSnake } + .desc = { ent-MobPurpleSnake.desc } + .suffix = Роль призрака +ent-MobSmallPurpleSnakeGhostRole = { ent-MobSmallPurpleSnake } + .desc = { ent-MobSmallPurpleSnake.desc } + .suffix = { ent-MobSmallPurpleSnake.suffix }, Роль призрака \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 80a1a3fbb439..80aa657b6142 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2406,7 +2406,7 @@ - ActionSpawnSpiderWallWebTarantula - ActionPrying - ActionSpawnSpiderEggTarantula - - ActionSpawnSingleSpiderWebStandartDelay + - ActionSpawnSingleSpiderWebTarantula #SS220 Fauna update end - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml new file mode 100644 index 000000000000..169059b011fe --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml @@ -0,0 +1,62 @@ +#Prying +- type: entity + id: ActionPrying + name: Prying + description: Pry + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: prying + event: !type:ActionPryingEvent + +#Unique tarantula stuff +- type: entity + id: ActionSpawnSpiderWallWebTarantula + name: create a wall + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 24 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: wall_spawn + event: !type:SpiderTargetSpawnEvent + prototypes: + - id: WallWebSpawn + amount: 1 + offset: 0, 1 + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggTarantula + name: Tarantula spider egg + description: Tarantula + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: tarantula_spawn + event: !type:SpiderNearbySpawnEvent + prototypes: + - id: SpiderEggTarantula + amount: 1 + offset: 0, 1 + startDelay: true + useDelay: 240 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebTarantula + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: web_spawn + useDelay: 4 \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index adec8bff4458..b754f2ef90e2 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -51,25 +51,6 @@ cost: 40 doAfter: 5 -- type: entity - parent: BaseActionSpawnSpiderEgg - id: ActionSpawnSpiderEggTarantula - name: Tarantula spider egg - description: Tarantula - categories: [ HideSpawnMenu ] - components: - - type: InstantAction - icon: - sprite: SS220/Interface/Actions/action_spider.rsi - state: hunter_spawn - event: !type:SpiderNearbySpawnEvent - prototypes: - - id: SpiderEggTarantula - amount: 1 - offset: 0, 1 - startDelay: true - useDelay: 240 - - type: entity parent: BaseActionSpawnSpiderEgg id: ActionSpawnSpiderEggHunterBloodPoints @@ -205,24 +186,6 @@ amount: 1 offset: 0, 1 -- type: entity - id: ActionSpawnSpiderWallWebTarantula - name: create a wall - categories: [ HideSpawnMenu ] - components: - - type: WorldTargetAction - useDelay: 24 - range: 1.5 - itemIconStyle: BigAction - icon: - sprite: SS220/Interface/Actions/action_spider.rsi - state: wall_spawn - event: !type:SpiderTargetSpawnEvent - prototypes: - - id: WallWebSpawn - amount: 1 - offset: 0, 1 - - type: entity parent: ActionSpawnSpiderWallWeb id: ActionSpawnSpiderWallWebDurable @@ -369,18 +332,4 @@ cocooningTime: 15 itemIconStyle: NoItem icon: { sprite: SS220/Interface/Actions/action_spider.rsi, state: cocoon } - useDelay: 10 - -#Prying -- type: entity - id: ActionPrying - name: Prying - description: Pry - categories: [ HideSpawnMenu ] - components: - - type: EntityTargetAction - itemIconStyle: BigAction - icon: - sprite: SS220/Interface/Actions/actions_rat_king.rsi - state: ratKingRummage - event: !type:ActionPryingEvent \ No newline at end of file + useDelay: 10 \ No newline at end of file diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7ff65edb0979fb006bc13d098a7ef9b0c84124 GIT binary patch literal 1337 zcmV-91;+Y`P)Px(^GQTOR9J<@m%oeLMij?CzBrP>j7b98&O|}TP#IU&8DhGjeiVZI8 z6ahE>7xG7>v?1x76yXY!YwU$HYXaFc+AAzWPBNG|7gFQlz)}cFah~!1x*tyCS4s2h zec$)JdGj8;XE|d(zWDUwzW}#BUjsmW_8|b-pMTG67(PGvUyAnj%bEYj&-Twa09N^n z>ec@`{9Wa;yx>5bwS!jq)hp`&bl1)UZ<&C%Y`hB#_8hxsXLpYm)hn)ES?BSyea=oV zw#s*Q_t@EeGx*@>!+Y0nxbM2I8E)NQSmVxlbN+J0Axv?1l-L><4|6p>WRlVys zsOy@+U_cm#7-KNTkR%CNma+ZwPfPdh?C#Al{G$c1ela+;|9jVOpp>HD@8fwMRaK#s z0w9iK#^W)-ks#(}BjQQ9)H2|wT zj$=H}qby6BrU7vON-305Y;0`I#K*Ku2ekt*AF0bkN=X=oNGVZD;rl+u7>c5BYydP( zwAO@SNLd~}CQ?euvUIdpRYhIbXsyYzjL~T1a=|+@VCBnizNORY z;CUX#7yy(~&d*9IilT6Swt;7};%KNu&yYHi1vcN!h^J_LYH(fB*bxo_)q9_VhS67|S0p}KgJkRNNyN6b8-KT%+ zHaBnH1aM3(1F-$ zwA*d>cFfDtYd9PZ3BwQ}1gop7oI7`p@p$agY*kfgtNNfm0raAy1z^<&)z8*kBxP-N*NRq9~#)ON0Sp63zAF+mWZwI+%pm#VFM>}|-hj7N_iF&RB{Md?xihgW2_Y_=eZ zbP?c_Cr^&UKO^(X@BaQAnCgtC8f4500000NkvXXu0mjf{ep~Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json new file mode 100644 index 000000000000..dd632caf7040 --- /dev/null +++ b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by Estkemran (Github) modified by kimorue (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tarantula_spawn" + }, + { + "name": "web_spawn" + }, + { + "name": "wall_spawn" + }, + { + "name": "prying" + }, + { + "name": "cocoon" + } + ] +} diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png new file mode 100644 index 0000000000000000000000000000000000000000..7675db25f5a5aff59f2087b18525ff6aef8781e4 GIT binary patch literal 1214 zcmV;v1VQ_WP)Px(cu7P-R9J<@mtRO*R~*MbI+uksbN@mv3OJ|e&Ux0Uf`vG|I(9-}c+b9GfE=?$^(9`At(nL}jDYg`f zdO*=~_`EJ+s!k-8CX(7nB-Z32j*KE8l1dkdFef(47*Mnv4!e^`Dos|;(AUvilH4ew z)omvfRixlz5JD_H;Hk8sXc>Io4Wdv~DQQf=oNgUDv}vF-pd zRWBeilE+kC_Rs2>qQoNJif%(;NO%Dtt7pjS8Dgqll-vm8*kZ60;Hk99wU4PfL&L*T zOkYPcJ#8LBQH3i%&livzXCG5_89(NkTM7_?@$uQu<;<>K|CT|&AD`F7V0*PB>}m7h z^SX$n(w5{xbW%;{<&hnEV0mRl&Z?@aTDD(XdW!HsH%T>3QcW}1UX9P|l1tOq(JY^X zem@rj0V1h1KCi2&2zN z6?|S7r~3OD8Xhi)jRFDYb(x?4jh7D}W@Kc9&dyG`zmHzMO?aRifUYys47OJjQ+4SD zFGzu%HL?=&=Hb!COAn>Tr`wibuoNhqq&=yu`ry0D!N5>s`;1Kk|GdRrzY zhuujq7?d`qW~TCDL*xQMoaX^EmVUiOQ&Te&mnRq+3mp{z6d!C68l&|8W3@17Gsjy?bbXuTlBz zJ{lStC@(K(Zf=gX>_gdKkhiwJL{`smeeydVEHCrPhac=rK(WiFzyCOa;0+cR?@;G{ z9)Lg8KdGsyVQwzQffo)?SLbGOa+3A+br$a=7#kbsy|;P`Y?(PKpzsi}LjUWp0T2k@ zARdond&VyRc|7$volbJO9A#x?_)neK)?S`~-9QL2;-lRfF`(d9EUxBH0!G`HB6k5p zWn?T&%zIV9T%=gVjCriNkGPt9YAcydsAYRzniUkMuvI4*XJeeb5mx1zF{sVgH}Ovt cr+be700u-+5bU?fh5!Hn07*qoM6N<$g3h}}3;+NC literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f1ddc3e7d1b3ec3a973351c47a1d4c42dc0a4f GIT binary patch literal 1309 zcmV+&1>*XNP)Px(*GWV{R9J<@mtSmCRUF4Zg;AT))@`>U9VM`e7|Diz5V9B@fd{i>i6n?Fgczdu z;1darUE+hO6^t1*HNi(Uh6f);5atqy!3d#ahLkV|Ooc%@z+!`I2i!}`*1K*#H0N;d z?JXO`gm2RH-uwIA-|zeTp5Hn59C*xdh>O=(`ey)kv@QeSxit#_xO7%Gy>Q}M{*e-; zGFj7o|47Cm35ewBocc(?9~J?{D@oLdha!1fa}a^QL@W>vGE~MRF()TR`!0dNeE5F%H*zZ*`dBTYIa5KqwUA+XH=434sP@ zIeBZ7kB`>XlgeaCWwKI%gPqT^+V8T417LSFDtp1$)RKU;Q#DPKLtuwPf6pheYlFN` z?ApMW$y-(ZwYzr#*c*#g*lMf~qR}XkNTkAXyyyhVD)bJf>04ToB>D!1I6a!BwaF)a zg+k^mxLcx^0!C9o%<)(KqP0;V7waG`oTTUX9_YS71b-7K6_wDbI(szZ! z6{?sBe7L!eP$-1QFc);Zy_&$1#f**JqNtZ>ZduRdkihg5Ag2$<>@CH z(Dqv}m+$+gtt~8isvbqDM^*ETjpfj^d;C6_ps~>{ZNtNV^7P_on4Shj@o@B~Pl3uQ zX!;t?rRu;Ezm#0p9prKvisE6xf=XL5Iba%&<&FQab9*QI_VLv6kM^)Ri-ku2vHnn8Pfnajgd6?C~R#)C;dJ#o?H5 zsO&0hHg<64_z{ckI%_s|$an1^4<_lHN~EKO6W8*lZS(&Lapp)2rwAxs`bRPj69M5Q z76~h?hZMU7%=)g?$GD3&5rD^YG^;qA0&>f3tj4;V6|g(58Jk+fvf9Mq^s(bVqhrFw TzCP|_00000NkvXXu0mjfZ(f71 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..0b75ce14dda289febeb3525205f241e253ea208b GIT binary patch literal 1292 zcmV+n1@roeP)Px(#z{m$R9J<@mraOURTRg6Ni(l+GOy2>*O-~mH%t@SI7&NWD02n{1BiqI8(ROjKlq68 z@o@ms=`3qEf{z9< zZ%%jRl~=HW^=J3!=qUF~%S=p6uw4F!AFf`dSp1via+zwaMxl^rq)iH7i>Bcp9OR`J zU+D3*Aq6x|1E5eSU>F8FckIM8w*k;-G??1Gn{(fvXK2Vzyrny{KytIt163&izq%Hck_AaLl9Y$fK{x?Z&OzQh-}}% zR7h?2s-)}+2ltp{>>QEpJNPM;1X^lr@_H%c^JHzC;Ss~_zMH`7hlb_GA%J7y0Fh9D zMAE`4mhh_@Qz4Z|DBzfxBayT?xW@!?M59sW=jYLNokpWUwOYmF@ld+oDRq%=eHE~Z zHDciaDZ9elLXNqG)-ua-Xja97SS2gAq za+E72j_jZOPjDxRsgOz{X-UEWKHmW6FJ2-v8f17_@2Rvd0>58d!PFJXl@hUVfLORC z{d&xO-1=3Gv9U1#1_lNQ27`Q)_^xMO&k{K0cV~FYt^m0n6$H4L<5x8~*W4CjWo3nW zy-szd%AgCcX9=8+V&M)@xl*EBDYZ%T2X~rt?z7LtSguxSHk$nvaITA~D_F(W+9#5h zY>R3DNF=Q;f&$zbeaeO-`zNt(+7#~H=>r5Ft?B+77lRk>{*t6zQ)}fX*W!N0-_QCnUIIZ>%^yL z$k;hPeRVgdmo~}qepQp|B$5`fZ~&`V!_<|YK-NV-kg$q1S>K1hx-J!nPtR~@yiUrl zNEJl1B2fj2wXCZQ-J678)w*^!<>*QLs>Z$dUPd{3QYL1~u3#t~Fhi-4vRmKfN=cp} z{V;scyNNg*K_}~5j%r=tiKHdR3AxR!I@Ur?s<>_iRx?AXVJMv_M1naZFVqxC(z))= z==)jEtyo;m*D_OAx@31s?Ur4b)AuKHi-6;0Px&VM#ZG~IR(t-}{|Kyx=A4%)b4+6R8^?m36 zI_JOYqaq)z^O+--|2j9ZG+&1$qc1gTv?}6ADkIVQ>oU;<_ny= z^P0l1wwolIFOba_sO=`H?IyYT@Rj;L ze*F>8K7XT9ts5H@7y^bjBVcGU&~r@4vJS z40!nd_I}@JoQLSL8-y6Z%eevaILys2;5dm`^5IkumFj+MeXv{r7^ZB6{=p3WgBeAx zBWmY*P{Y0eJ5r~nXYg`v3&Xi~Ihz zk@Lk;*&q(9A@(_92v}a);Z!;p#rp1ba@Y&nW=8C_+ih`(w17^k_vvZYDr4Fa5fC5; zO&IiDw?k&P&&@CJ>Gfk{OeX~W;``fVN3JR#+rDlE+j4XB3xQH?oQ6>dD=2new=%Py zw#8Ce9Y%scA!_#^YDMnlTy>r}PJ&{o9GVrOr=hMK4!3ha5yv646i3y9jao(h;z*$x zs1i$U3HY-5M_oc3C&AqOLdfYC4KcCfB-BmHwxk{KonYSC?ZESLZrepAOpFK;*V;Jn zX&49bw~&kVqR0aRhEqN2+AMDPA9A}M40f%l|L?!90@}++f0#&-uwg$^!X7C0TziaM z&69l&i!19LNB%SmJWgTnodD);?Axp$?75}~wX9|L$>a3M@eh@v#|#29?ZN;6002ov JPDHLkV1i3ZzR&;w literal 0 HcmV?d00001 From 222cd02070d24f360c493afb607b42069cb001c3 Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 8 Feb 2025 15:07:26 +0300 Subject: [PATCH 26/36] =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BD=D1=8B=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D1=81=D0=B0=D1=85=D0=B0=D1=80=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=83=D1=82=D0=B8=D0=BD=D1=8B,=20=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=20=D1=81=D0=B0=D1=85=D0=B0?= =?UTF-8?q?=D1=80=D0=BD=D0=BE=D0=B9=20=D0=BF=D0=B0=D1=83=D1=82=D0=B8=D0=BD?= =?UTF-8?q?=D1=8B,=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=B4=D0=B5=D0=B9=D1=81=D0=B2=D1=82=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=BB=D0=BE=D1=83=D0=BD-=D0=BF=D0=B0=D1=83?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20=D0=B8=20=D0=BF=D0=BB=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D1=85=D0=BE=D0=BB=D0=B4=D0=B5=D1=80=D1=8B=20=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D1=83=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 24 ++++-- .../Entities/Objects/Misc/spider_web.yml | 15 ++++ .../MinorFauna/ClownSpider_actions.yml | 62 +++++++++++++++ .../Actions/MinorFauna/Tarantula_actions.yml | 2 +- .../Entities/Objects/Materials/materials.yml | 43 +++++++++++ .../Entities/Objects/Misc/spider_eggs.yml | 18 ++++- .../Structures/Specific/spider_structures.yml | 72 ++++++++++++++++++ .../clownspider_spawn.png | Bin 0 -> 1322 bytes .../action_clownspider.rsi/cocoon.png | Bin 0 -> 1347 bytes .../action_clownspider.rsi/meta.json | 26 +++++++ .../action_clownspider.rsi/prying.png | Bin 0 -> 1205 bytes .../action_clownspider.rsi/wall_spawn.png | Bin 0 -> 1295 bytes .../action_clownspider.rsi/web_spawn.png | Bin 0 -> 918 bytes 13 files changed, 251 insertions(+), 11 deletions(-) create mode 100644 Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/cocoon.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png create mode 100644 Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 80aa657b6142..f0dca92b7585 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2400,14 +2400,6 @@ id: MobSpiderAngryBase abstract: true components: - #SS220 Fauna update start - - type: ActionGrant - actions: - - ActionSpawnSpiderWallWebTarantula - - ActionPrying - - ActionSpawnSpiderEggTarantula - - ActionSpawnSingleSpiderWebTarantula - #SS220 Fauna update end - type: NpcFactionMember factions: - SpiderHostile #ss220 spider queen @@ -2465,6 +2457,14 @@ damage: types: Piercing: 6 + #SS220 Fauna update start + - type: ActionGrant + actions: + - ActionSpawnSpiderWallWebTarantula + - ActionPryingTarantula + - ActionSpawnSpiderEggTarantula + - ActionSpawnSingleSpiderWebTarantula + #SS220 Fauna update end - type: entity parent: @@ -2519,6 +2519,14 @@ - type: Bloodstream bloodMaxVolume: 150 bloodReagent: Laughter + #SS220 Fauna update start + - type: ActionGrant + actions: + - ActionPryingClownSpider + - ActionSpawnSpiderWallWebClownSpider + - ActionSpawnSpiderEggClownSpider + - ActionSpawnSingleSpiderWebClownSpider + #SS220 Fauna update end - type: entity name: wizard spider diff --git a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml index a0317aa7f768..9215d84c9a94 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml @@ -132,12 +132,27 @@ damageModifierSet: Wood - type: Destructible thresholds: + #SS220 fauna update start + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + #SS220 fauna update end - trigger: !type:DamageTrigger damage: 10 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + #SS220 fauna update start + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSugarSilk: + min: 1 + max: 1 + #SS220 fauna update end - type: Temperature heatDamage: types: diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml new file mode 100644 index 000000000000..036be7f0cdd2 --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml @@ -0,0 +1,62 @@ +#Prying +- type: entity + id: ActionPryingClownSpider + name: Prying + description: Pry + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: prying + event: !type:ActionPryingEvent + +#Unique clown-spider stuff +- type: entity + id: ActionSpawnSpiderWallWebClownSpider + name: create a wall + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 24 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: wall_spawn + event: !type:SpiderTargetSpawnEvent + prototypes: + - id: WallWebClownWebSpawn + amount: 1 + offset: 0, 1 + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggClownSpider + name: ClownSpider spider egg + description: ClownSpider + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: clownspider_spawn + event: !type:SpiderNearbySpawnEvent + prototypes: + - id: SpiderEggClownSpider + amount: 1 + offset: 0, 1 + startDelay: true + useDelay: 240 + +- type: entity + parent: ActionSpawnSingleSpiderWebClown + id: ActionSpawnSingleSpiderWebClownSpider + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: web_spawn + useDelay: 6 \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml index 169059b011fe..2ed2bd0d505a 100644 --- a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml @@ -1,6 +1,6 @@ #Prying - type: entity - id: ActionPrying + id: ActionPryingTarantula name: Prying description: Pry categories: [ HideSpawnMenu ] diff --git a/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml new file mode 100644 index 000000000000..8ce06c3fd0d6 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml @@ -0,0 +1,43 @@ +- type: entity + parent: MaterialBase + id: MaterialWebSugarSilk + name: sugar silk + description: A sugar material. + suffix: Full + components: + - type: PhysicalComposition + materialComposition: + WebSilk: 100 + - type: Sprite + sprite: Objects/Materials/silk.rsi + state: icon + shader: unshaded + color: pink + - type: Stack + count: 50 + stackType: WebSilk + - type: Food + delay: 2 + - type: FlavorProfile + flavors: + - sweet + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Sugar + Quantity: 2 + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: Sugar + Quantity: 2 + - type: Tag + tags: + - RawMaterial + - type: Item + sprite: Objects/Materials/silk.rsi + heldPrefix: silk + shader: unshaded + color: pink \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml index 136d3dfb052c..05080b2edce3 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -62,7 +62,20 @@ - type: StaticPrice price: 500 -#Spiders +#Fauna update Spiders +- type: entity + parent: BaseSpiderEgg + id: SpiderEggClownSpider + categories: [ HideSpawnMenu ] + name: Tarantula egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: SpiderEgg + incubationTime: 60 + spawnProtos: + - id: MobClownSpider + amount: 1 + - type: entity parent: BaseSpiderEgg id: SpiderEggTarantula @@ -71,10 +84,11 @@ description: Is this a gem? Is this an egg? It looks expensive. components: - type: SpiderEgg - incubationTime: 30 + incubationTime: 60 spawnProtos: - id: MobGiantSpiderAngry amount: 1 +#Spiders - type: entity parent: BaseSpiderEgg diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index 069d12371c33..71063911282e 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -121,6 +121,18 @@ - type: SpawnOnDespawn prototype: WallWebDurable +- type: entity + parent: WallWebSpawn + id: WallWebClownWebSpawn + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: SS220/Effects/wallwebspawn.rsi + state: webwall + color: pink + - type: SpawnOnDespawn + prototype: WallWebClownWeb + #Wall - type: entity parent: BaseWall @@ -168,6 +180,66 @@ graph: WebStructures node: wall +- type: entity + parent: BaseWall + id: WallWebClownWeb + name: ClownWeb + description: web + components: + - type: Food + delay: 4 + flavors: + - sweet + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Sugar + Quantity: 60 + - type: FlavorProfile + flavors: + - sweet + - type: Clickable + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Damageable + damageModifierSet: Web + - type: Tag + tags: + - Wall + - type: Sprite + sprite: SS220/Structures/Walls/web.rsi #SS220-Walss-Sprite-Update-V4 + shader: unshaded + color: pink + - type: Icon + sprite: SS220/Structures/Walls/web.rsi #SS220-Walss-Sprite-Update-V4 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSugarSilk: + min: 1 + max: 1 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - type: IconSmooth + key: webs + base: wall + - type: Construction + graph: WebStructures + node: wall + + # Cocoon - type: entity parent: BaseSpiderCocoon diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..d90023e2bb86989524bfbb7516c3fbb07ed94b8c GIT binary patch literal 1322 zcmV+_1=aeAP)Px(O*N*NoTEp7&=|cG_`1BtBH+mVt&~}ytn!N zsja@a^YXjDd(J)Qd(QpdfAEUMA{t-5+fV>#to;-KzjHMJqtmxF0|uXtzEq%pCdM@X z-{0u6NB|;ue`4UJoWH1S_imFQ%0;IL-dxuNK%m?Y%vS>DtMMXL5Prm%&Y@HECkBdf zZa{gdu?W8Ln*hO3h-fs*zd(I`Jzi_o3*-oi?0wFhJX+oipsdF<~2&Ce00I=!MHZC0-kg+6yH6EXwf{u<30HV<- z0I6F^yw)lb+54KWw?@V9ant|jR55ss%9V)>m8xCZ9BgQz^VicH4uxnB200puu*f0yA~?YI&6Rj-R0hYAvO1-eXx`JP@vrBW0YF<@ z8{hT(AS)rHQneQy_}m=Y;$(Cp$>>BD>WvBpl}GGcJ^pS_05BHJwh& zDKL{Wcb3uLx>Nr5x9;Rve0o9q^y9|>9F0T_x^jI-I2<-5-c(sew!4QD^wj1hh@RL8 zgJVeoKDV?L6)TnYV35({+KtTsAQTD_4u=6~ZT#90yg2tsKJU5-T{p4Y9Asu66Y#n5 zd)$%>dJuwyhnE*QA@&qg5&~p08BOp?)sEffpnEuh-{U6WbK|vEQK{Nx@b2LRcAG;J z_(a!9S^D;1&`=c(fc+~!rmd|FMN#PJ=#W_mhoap*oRFCU42~t~9!?l+r^+&#c`t1X zz8NY2#g!0^Mos5YI4@mlq7r6yW?7etDG8yt5*CyC{T={*`)T62c1OZtxfu-}(;j#l z0Hf2lX>ANI8W><-b1iSYu8>z@+ukP(^gJ{LCDy-a>vuv!1(qUvnpWejS;ge!G}&C9 z^&56DH`hmXwbK+-DTqtYtH5F+vMUtwq|zC(xg0*iM7j&y1Ur_+YZrLb<@2U3^K<)p5vsuFLFhuPU2Gc&VtIu16p7-B34 zph&cNC+j!t;Qa4BI25Y{6_3ZLsHi2EvoJoMl)6%mq*F7fD!?++I12*MJ1G<}%`6^| z@&2am8lBa;g6r4EdGzQB`Fw$FF3-@pM~ed}C1dZ8;~FPV^Xh_`ndt!hYq#()mF4n< zlxYljMne6aUC7Y6Y2N!p!D3m)$kiz>_Ks7xJA=bvrJxowvslU&)Qw!7Vx;fkLPeej z@LU7iMgT7M#tfk5GmG)zXCE=t8`J5E{bKB*00QNH&|RC&24B8lJST*mUROF^T>Ak| z-{~^~X!#>db6pcBw;FFmV0@&QZD3-95u&##O%DDCPcy^g6pHTz&}O5*%?dGlu9cEn g_|ogdPx({YgYYR9J<@m(Oe5Mij?CF^iOopkY*Sm8OwgsGzXALPr4*+=b_a75K{QA$6HwyIoU)jX_4|3;} z1z>{TdwTzkCVyS~?EOzIh=v(7!8eyT09a`(0WUKFFSGGFSupdMf3^;{x%c$`D2{~2 zxU&hqb-2ye2_|n}xn!TKs-m}ZcgAOYp3UVAHkUWpI^4En6985kOI&++^F)EGs-oNN z5(EKSYqZuRNrIG;-5-CM``^~#_DqHw03W^=ow)w(E0>7lm`An#I!A($ZITkx7(%FYTbkbT zPGTp@K=a}Sk|e=(UCOew<4P&2szPgx>$*D)9p68*IqAW{<5Y%;z z@B6P>8!%OZuipK9BKVCPH|TUagkgy5x`bf}fYzG2t|^KFAp}}$OTfCW+27yir|)hb z8`$veNDd@PLLA2^r3iw6q9}k78H=K@X)nu?s;W>*A*JNt;J|9ZNo;NjE`9SQtyT-i zanM==5XZ5ta~#Lyd2Z`$h-XxBo+MANd@cY(46U_YWs)QeheMjprv0Y1wn9`@l?8h1 z)~$))o$Foud{jwhGO%{}3)a`yEt#sSqSenB#I)^G({$(7QNomf6nO$I3C8e~f6G9M0kxhLVhV*(phQlFBDeAf=&vWuT2VU~ToDnc0YNyk& zfsM@oD2jq02=IL$*LCUl`$#DfLa@5JN>x=zDOp=vv&0+>1`GxRn+>HDaU5HHNYfP8 zb?uItDZ#Y$dOd<5!1Fv77Z*8w`ZWE1-^y%RmMEoAN|9w5zV8!75k*lj7!2@zA1Nj0 z&!4yIXfpH8s{jo59^v~w!{LxLO<7o2uwoPhf%Q{L;dvhIcAL7cQA&{{30i9gg8@+# z@%;I78$1XC9zTA}InEpnz>u-GbJt35Q51NdXM-!H>}pIWWR7Of^AJMVCdK$xRYg@* zc%C<3h^BjX7`0SdYtl3&iXt1_WWyXluIo}1g(aK;Vg$-;Q>7HUySt=(e0&MU?cnDg z0C(=(;q2M7c05f}9LFJwB7EORDMc8DR;o>T%x;iUvcJF2aPJZ6@-YBb8cQ(MHX9H* zzs&%A@ZiC5_$O?*_sDj{0Js0#n+0&~;Y~J|H~9XOZ|6>8`?+d#Zp>@pruVt=`DpCU zF>Y`DYBqB@h0#3$CRa1v%^I6`T^lF0nQQu+xtzXr`wxIctuYm)m7f3r002ovPDHLk FV1hS{eu)48 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json new file mode 100644 index 000000000000..e1ac8cc0fe32 --- /dev/null +++ b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by Estkemran (Github) modified by kimorue (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "clownspider_spawn" + }, + { + "name": "web_spawn" + }, + { + "name": "wall_spawn" + }, + { + "name": "prying" + }, + { + "name": "cocoon" + } + ] +} diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png new file mode 100644 index 0000000000000000000000000000000000000000..9c617bf05944d8adbec0efa33b6a2f4dc53fa906 GIT binary patch literal 1205 zcmV;m1WNmfP)Px(Z%IT!R9J<@mv3lWRT##9jU|Q{b?ss?Z7L+X*-w>KT4J%qq5~%gMGBjBVN@!9 zC=N^VUA9kxEpxc3W1(pq9oFi|IzdF*(K0kx%!jl{+pP`Qt5-|tKeOz%{{7IM)0>-n z`)4@%d`a%P=e*Bzp7Xxvo&$S~BJtw_DIv!(8xxT?O z4aNG-f;>7NBf6U@Z2^6pw%QzzoCyUoUs8s?(y9-((O>ZeHUvi z+HwHov@8HlhYNtxf1H+M0>yr!Z06RE1SsnZ^1s(!CdsQkjytUmQmRICjh8t!LrTqA ziqI#u6d+U?vs(}cd~W<6H}Rx`qAlQbxTy9x@O#|4-WlRah2|PBkRg#?kYcxjr31?P z0s)_!l&XdQSEUMPbyNd z6@(B|2fX$&6m7!+fOt~bGMEgi=94-dE);F+rO0!j^^xa*Li=-CR%Uog)e4C8 zZ7IUM4CjC0#Un?^X<7bUUy}*>O6A`)p1B6VSZ5PmKP<^HPKQgn6Hh7xd~V)oZ>Ouf zyC63T1Q^$4YU(FmIDD9%o*o(+8f1O94BTL>vk8F4GuH^$m5@?3>4KQ8SpR^}O*j-X zCC>XA8nLpx%*gOC5AWZP)8QhXRPcM;1blAnCkIKX8e^SJv<%#k8@UcxtDhpLWw|o+6-$eYycasXGXYkI&Cu}+9|;Fk@A=iN;BpF^_XPcHjHg)vv+J5Zsf~9I@lIS$_ZA_1j literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..82ebeaba7c4e79f71df9c1eacd851e194d128bc7 GIT binary patch literal 1295 zcmV+q1@QWbP)Px($w@>(R9J<@mr-a_R~*KFUeg$_*RBnC+v@Gqt7dMXGF(Babc2nKy-0Tvgp4x# zGS57{}r z$xW>-13w78_w=0q_x-=~Kj+*7j~Oe(!|P8SECamO{vrTo^OFF??oLz<`0=0EvWUi# z<5lmU-8`{E3J~O%<5!jye5vR%_DK;g(J09KI(h-v<1&GHCt%)~|AsxbaK;6&rET-F=Kts? z@6q1g4#3FB2*=)jf5|aii+8Dy;O8IH+M=T<3W?+t?o}SX`RN?fQ`2~xn;0F9F`Y^} zMD1~z3@~3?%M$SA#Zv$zl2bhM^me>nF96w0hSi=`{QBGPC@U0HRpYIXj#4U@DVNLW z>vYT$YE>*nsDekY?v|Do9%N?OxN#%1*}wVW>Q(OF|BKmdmVBW=Iz2=4f1&`^Y8vY5 z)x6yOk|Wl#9MCikfOI;I*Xw25)@>NZ1^`N>5<7S7;Ow~wYu2a~i$wssp6>#j8{4u3 zD2l>?R}TP?&1C>kJrz;0TYpqU?A%4u6Kh%J@o@Y0ZQL#wcV=c}3?XDu0r5ggJ{xWw z0CUq;de(Q#_HZIXVE19hlH-`0w(|2Y*MN!}D;0(G%nVb>Bu&j;YEiWh_}9HqMI0}r z@S7I>odHyjM!b+Btz_w0-_4e`&GOf?zMEh)B%gggAB}6*(Ad}rKt7)bAoJk9j4$e~ zN`Rf*Z(67xjltLu?|vU7o6DejG)Znptq8wq;q&JrwX z_PA9&8m+CZ05mi-pzAtchre}mdrdD4OIygpCDZ^OjUOC054` znQdVAVf?1WU~H%^`G>*Esu@d;^W5%dxp4kGchhMuUHVQE3oIz0*3#?o{e1eyO8IVe z+`w;Ia%%cJ1M=^ifdGbEXD~K|-?TV;<_we3G471S9Xxdfh?M}yg4|`C=FqVsW65#) z4^D7BzF+oNJ(_eU7!Bb!E#id~hFfw1@ZnwJDb^&|rFD5SnH4YrU`VM^^y@d82txH;aNvZbidN002ovPDHLk FV1f$bfKmVe literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..5bac7ee49a3ddb05e61b78c8d5090a6d29017349 GIT binary patch literal 918 zcmV;H18Mw;P)Px&P)S5VR9J<@mp@2bQ5431O4>olgHmc+&_Yvcp@Vf1QjoOJ%{p`_D7AkOEYc++ z9SjC3p(u4IC2oblL!^*QPRZ7xB2;iu2f?8!Sh3)s@B*<^!4C1f+1oG~` z@4M%obM8HG&S;W9ukQ380}Qr50w8kf1^~tVEp5W`QSnSfKYstzzUMY`O|AeTU))|g z)8eN^tgXit5t2qBAL@PqKr|Eqs+NGNHBMs%Sx4sBEAuRFFI9Lpp;;X)-tUY{LAGsGt)_T(V^acP4({Ty4E&2FkIQ)N!zt+S8<$@ z))$13*&xIK$wb^kUJL1L2FnW9B#(w7*i?P1*&LvnvL0HyI%)0dbjei&?Ob(gII)1J z5>FkUm?D{o2QDI{P_dFqY8P@1iPr?EkOk|J@2;+E!~k|7=bArgo|)J@M=h4u?s5q?}5sp*xwADhO1yoYCPYttr5z~kWj{v!7{Gjf-5i+wqoz1ZN@tZcL z8NBD>I3^tnOO~6yO49!zQB`+8oh|>ktY*z z_dc<#Fm@s58x_8{p{g9twsXKGt_9yz9Fz-oSJ&NNEmEjDs`yev0+x@8?jyvq!lbhq z-`g(;Vq(h*yDurzlBUBqgZ^eW9WR-PH=I=b#E2j{S`(+f4QoNpTgb(FLF66*(NM&F zHp?;m54o8S9$&cU{{QmpE1*7A6sJ(B s6F}dM`I;5@m20X~%UWii6sPBof1`E5J$%=KXaE2J07*qoM6N<$f}lRK)Bpeg literal 0 HcmV?d00001 From dfba4f4050f54c8b0d7af35cf6c1519553198704 Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 8 Feb 2025 15:53:59 +0300 Subject: [PATCH 27/36] =?UTF-8?q?=D0=9F=D0=BB=D0=B5=D0=B9=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=BB=D0=B4=D0=B5=D1=80=D1=8B=20=D0=BA=D0=BE=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=20=D0=B6=D0=B8=D0=B2=D0=BE=D1=82=D0=BD=D1=8B?= =?UTF-8?q?=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Structures/Specific/spider_structures.yml | 90 ++++++++++++++++++ .../Specific/cocoon.rsi/animal_cocoon1.png | Bin 0 -> 1530 bytes .../Specific/cocoon.rsi/animal_cocoon2.png | Bin 0 -> 1238 bytes .../cocoon.rsi/destroyed_animal_cocoon1.png | Bin 0 -> 1346 bytes .../cocoon.rsi/destroyed_animal_cocoon2.png | Bin 0 -> 1227 bytes .../Structures/Specific/cocoon.rsi/meta.json | 12 +++ 6 files changed, 102 insertions(+) create mode 100644 Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png create mode 100644 Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png create mode 100644 Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png create mode 100644 Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon2.png diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index 71063911282e..fbf53f830000 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -303,6 +303,68 @@ graph: SpiderCocoon node: cocoonVertical +- type: entity + parent: BaseSpiderCocoon + id: SpiderCocoonAnimalHorizontal + suffix: Spider hive + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: animal_cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: animal_cocoon1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal + +- type: entity + parent: BaseSpiderCocoon + id: SpiderCocoonAnimalVertical + suffix: Spider hive + components: + - type: Icon + state: animal_cocoon2 + - type: Sprite + layers: + - state: animal_cocoon2 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonVerticalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonVertical + # Destroyed cocoon - type: entity parent: BaseSpiderCocoonDestroyed @@ -331,3 +393,31 @@ - type: Construction graph: SpiderCocoon node: cocoonVerticalDestroyed + +- type: entity + parent: BaseSpiderCocoonDestroyed + id: SpiderCocoonHorizontalAnimalDestroyed + suffix: Spider hive + components: + - type: Icon + state: destroyed_animal_cocoon1 + - type: Sprite + layers: + - state: destroyed_animal_cocoon1 + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontalDestroyed + +- type: entity + parent: BaseSpiderCocoonDestroyed + id: SpiderCocoonVerticalAnimalDestroyed + suffix: Spider hive + components: + - type: Icon + state: destroyed_animal_cocoon2 + - type: Sprite + layers: + - state: destroyed_animal_cocoon2 + - type: Construction + graph: SpiderCocoon + node: cocoonVerticalDestroyed diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png new file mode 100644 index 0000000000000000000000000000000000000000..82befd64f29b217ab4cd15aee514d9a90d625158 GIT binary patch literal 1530 zcmVPx)v`IukR9JnwrzMhw{6>CjQ!;Y4tNxySG6<7 z@|vdo>W+|eKC5Y3%*(Mu4n{^s(td-Z4<0-Ka9rUkRRHkl(W5@&m6a7JI{>(J=@QlJ zbpSvl62XfXFOWQ-ajZ!=wM=F&%0`NW*3jJo9CZf?OI-L%};V^>1AWndg z%jK}Pw)Q80b+42=i=J~nJG2eUyEE{!?NY234z7QnI_dOS`+fR4SEde}A7!rBZ*q z(P$76(Z+4kN%jGfvpkA*dl}dd9K#PluXD^3g7(_(WZnyhUIhVlsUqz~xLq)B0 zjYgwyE2aGGw;V(LfU0aIob$fE*=!;jjbeLy8@jHe*=$1Bb?oo&0|0~&007IfaPi_r z^m;u2z~SNHm|xJI4T))*xOwv?Ow)uA0?lS~V7ncm60KGX!C(+V2t=b%L0}*xug$e*}Qz<5dWOUatqsvLJ*&xm<>(X}ECV0>;P3ko12@cR4V9pyC@cm`2PJnUcP+!#j-5+ z_U&6_vsomQ$#027qTjU4&(9Cwxe2gm&z>O`i=o@?0sz+5*7_MZNh5pn<_$8L4AgsW zZtlyC8#lhB(`g3aqYwg1OH0$1WicYUolGVR0IqP(XN3@uQf?WB0U^ZBz`7WQfz{R3 zsYD|2!JU~C=R=}SIAC>lgwr&3#2m~g^#>T2%&FP32xbsa!3!L+i8V>{l?|%kd`3(dD69AxTT1@$LVh-#A zzs?mnjyezs?4Oo)w~URA{SE+^FJJBl;3hHR9&n3O&p8jBarYaV8w!O!`uRNTzIm#_ gX(Ze?>eFoh1Brgs#!#pQmH+?%07*qoM6N<$f=s^B^Z)<= literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png new file mode 100644 index 0000000000000000000000000000000000000000..3eefc6454efb8eaa4c6b6feb67058dd09cd3ff28 GIT binary patch literal 1238 zcmV;{1S$K8P)Px(kV!;AR9J=Wma%KwXc)$SsT+yo{1JmZX^~6^6@sAT%r#KTjWrbd52R3Vm&7e+ znxWuamqHV}?NAD(>C~an4jsKTok|Bm3c3st8A1o!Lp51oRS8!KTHj)QD0Y$yx7=`f zH|hKIKF|BS@B7$r8mDm@r}2M}spAe87Z(paw_2@zTc#@p!>+6SNoIQ@f7|`Zm zFqqH2d-(9-uv)F6X&L~ks`B8$gW*vm{xyL{qp=AG6_}cu8dj@SEX!hdcNfz%Ns@$m zz0T98Plo{O>+AnWE z^)`XoTrStm=kqthFnr!>wJt6%FO$pVC>D#vag6W#sH%z(LVoMIF1oJs^5x43oa{Ut zslW)FX0w@QJ>P6L=K=ctK0y#ja9!6CLJ&m}j^hwT5#@3j(=@48s{ltTaVUYb^6l;I z`Kwp2^8New{V)uF2l(>k3$I?iqSNW%c^;)wi71NXx0fzml4OJsSe7Nvn$6~1_U>^C z%mO>_-o4}U<;!zv|EH&?hc|EDWMN@}4<9~Y+cvK2N&+cxHaeY-1P6Hb?AhE&2w)h7 zT)CB%l`VjC=gu)ZJIkX-kEm9wc%Fx8ny9Ku6h*S?G<@IZ#ful|<9VPmj&tl5tgWrh z0SpEMTCLW_QmMrL{yuNtzQwj}%H=XilE~_X5IBxQzuzZ{B7z`DtN#NqmzS5<#xW** zVATJgdc9t>x3|~5d-tvl5XUi=Wnr2op66lPHj1K1;O*^geBY;3Dxs<>zVGw;^=lMG z0oWKRFcA}LI3iF6{sMLY-n@A;|M~OhVZC0LL)C7#(RH0-u}Bm}=(;W)vD@v+^}BWJ z)@GVJ+txz~^m@I`?4`kAFc*g5^N|7$*6O12DC+ zvN8vd<{2k(CIuP{1_!2dob~kdG*J}E7Pzj9rfFQec8x1nu3+1?Y=vc6awy01r2dk| z*%UYo!{_7G1Jr6YW@ct;VHkc)k|f{lcBKNY>mr082m%yEA&Mf3#UiF@QmItf*w`2X zzhp^F5Xj0i4xX+b!2SF8^GTAhu&_YC-^a2nEX$H>mpWn)1iXL$9$nXEzDA?5#St-; zVN^B@Ln=}z6t-%$8sENs8v-mXEum=|?RFc0N~MBnn)tpCfUfKKzAx8L2!Wy~sSix0 z{@?5MB48&~`)ulRVHkcK9sZWG`}+0kuwJjDCR+z$8hC;}~7n zu`CPE^AJMtQTVWW+e5cbH_WON=5cs~2rfCQvP*oKGP1EGC zWhM7KPo4ohe*Bo#)zwdF-jNcUhGEPfAW$e2wlXdG71)pCIG_Fzxqkh+1W8S(SS;fE zKECfu-!GL)a!_}7ce!xk0;;O+8HOQ!dV)ZqP}s^I0_1YJpY!?rjr9HP+qeHz6on*7 zQilVOiZJq(IF9AdZ;~XeuC9JM%!I}_;y;PM0XI8GTfPg4_W%F@07*qoM6N<$f=Xp# A&;S4c literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1350be422f0927a74807797eab5e96cad842be GIT binary patch literal 1346 zcmV-I1-<%-P)Px({7FPXR9JM}7XlAF{m(X_S9dz<0lijEvEW7*7_kF+L z_wCH=H$Z@J&ZpF6jtL=lZlVi|Yw8Aq3>jm4CYgSLDW%ibk+_O6(L*52Q754VxR!*v zLd^c|A<&OKV{A_+;(1=x_kFt`iL1wZLWr+7`80z%`;cHgqN-t5=_7PT9&=XL8LWmu`VkTh#ASRGWLP|N=V9JxeL?Ug<7$ zV8j2elrk4aU@!<+WvJK_LjF|XI*0=BecuiW?)$z?2>Bxn90-_%L9?9@Qn4)SS2IIO z>9l28si44`v<3zS3SonT&z?O4a5=+OsQ}>R%a_5|Cup)Os75Ich}UcA@?fY+~Ij{%p2 zlnww!M@J>4G<3DxR`f|vDV^>KT&vaOn>TNeNF-3N*HI`GZUt`JwxpE8bzOY;@ZnnD zz6Q2!OZ9wHBD&9Q{Ca}ewk?m3kEQSX(zb1x&1R(;+!SRarIh7zS(eM?j!)P;>e>gM zJb8jxEGBcg95R^<9LE761o?a(j4?cZ{J1Z1#u#$B9BQ>10H9v4v)M#E9`C$UN;~?K zlamgh8qa345&%|KR=^ko0C3JRJUoncyA1&N@#9A{Ea||8#Bm%vc<=y@I}UPn5e z?!+q=i$KVd?;+qg4n{{u;W!SG$s{=ESX^8L0Ho7tJbLs9jYb2BL;}F&9C2M24<9~6 ztyV*|S_NYa$z&4MY89nY2}?^$X#i7&LZPS4>zM=Xb{p&K>+n1eTU%RLTwFvxp9cW4 zySt0EwKeST@8jU$09#vII5;?f=Xu!Q-^cgw-?6&7dd@i~+uPeHl}cD%UjDYQu+V8* zve|4Go=Jebeft)vR0^Kw0RY~=f8VLVRT;^~#s-STBGi3mX6F3<{rl%vyWS_p80P2a z)0}f6rTl$)dASN;f>Juo7=!vjF~;_~zKdujhf&=dNrn>D}wC1vQmv_mjNLFaACG$dX`}%D5cX1oDfnZ zgj|?DL;>qc#@L?WIQH}B&tKGdJRT2RzNQ=<9ewkC|DQ-CG8TPx(g-Jv~R9J=WmN97CXc&ec#}|v^Y#fj#Etct^LJ*V?uAxwlZh=BNWlEr+EQu*C z^-yqbC@oFox>KPzoeWnxWpkFMQ@9}|1vNv(4W1ki)g*z06Q~5KZ^-Ycv@B6*)_kA*4#${Z_W&GbGbKZ~3%gaO0^?Lo(o?5LoxX7Iw8yjb0{Bj_I-C zzZ-^OvtF-XuU4yMvsn~HA&Meg*F};f8jVImpxtf{+U+)yB%Q)Z*TZ)eI0479tis9C zRm-ww06fpb_x%K1RaG86dNh=MyWPg~JWSIB_^uLX5)hex{``67_U+poA0HouVR#?l z%a<>_dGm&Dw~OOAl*?t7mX^-Ed~4$2TjvXomCWtMx%l2y1ahr((h5Kynzub0bZ zj*gDl+}y-445p{2iR1Xpv;BS_-}eEqEbC7|t5&P)KO}JC|F6AXuYY)W_*bP;*$0TC z2wm6FbsfiX0LbNX6bgl*^QLJIJkP`PJYK$hNfbo@+rYtDM9)>=`1tt9vaCJBFc2gF z48ve+YYW@987(T$^Jp|0?Ck8Is%qx(flc)!(ZF)=Z*pWZ*zpS@mhFYSF0 z1XE!cHc!B>fBW_gAo1PzeRg+u+1}p9^E?zq0pQM^JM8Z60%TTKSEm5PJ?Z-s1%e=$ z3W8v$Iz@;B`+YP`!*LvJ+eVgU=H}*THk--*`T2QtU8mpg52+*W5%VP>Ab`U# zY>s9RP^nZX7K@d!v9ZHAjyX6uK+`mIUB|XX? znmwGnjD$R+;G+Eio;-PykK>qyg#|p%OA1mH;oG-wxpnInzVGw?{d-hZP427JYD2yc zDUbr6PJ@eL`TF(ipjxedT3K1)>C>llIvs4=#`k>+g#xbY;<_%L=Ov$l)bjE&wOZ}d z2>N+_-^l+enf`x7$UMBve(UP$&>Z zQS#k!9AsHWRaG87e8|SeMkWm`?8u~xFKtDsRGR5_y91Gt>$=FYOrcN^Z#ZOGPKqrp zxd0bM_~OM2*4EZOrh!Gr4H1}_nAlIT{2e%oq9`x^h%7EHCLm%6DT Date: Sat, 8 Feb 2025 17:26:00 +0300 Subject: [PATCH 28/36] Update Content.Shared/Prying/Systems/PryingSystem.cs Co-authored-by: Kirus59 <145689588+Kirus59@users.noreply.github.com> --- Content.Shared/Prying/Systems/PryingSystem.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index b364cdef722a..8758ee0f1af3 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -47,6 +47,7 @@ private void OnPryActionEvent(Entity entity, ref ActionPryingEv args.Handled = TryPry(args.Target, args.Performer, out _, args.Performer); } //ss220 fauna update end + private void TryPryDoor(EntityUid uid, DoorComponent comp, InteractUsingEvent args) { if (args.Handled) From 7af240a9076d3c3e8f92fafa52b60642caf52693 Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 10 Feb 2025 06:02:38 +0300 Subject: [PATCH 29/36] =?UTF-8?q?=D0=A1=D1=80=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Actions/MinorFauna/MinorFaunaActions.cs | 19 ++++ .../Actions/MinorFauna/MinorFaunaComponent.cs | 10 ++ .../MinorFauna/SharedMinorFaunaSystem.cs | 60 ++++++++++++ .../Structures/Specific/spider_structures.yml | 96 +------------------ 4 files changed, 92 insertions(+), 93 deletions(-) create mode 100644 Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs create mode 100644 Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs create mode 100644 Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs diff --git a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs b/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs new file mode 100644 index 000000000000..a90aa7f0ecc6 --- /dev/null +++ b/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs @@ -0,0 +1,19 @@ +using Content.Shared.Actions; +using Robust.Shared.Serialization; +using Content.Shared.DoAfter; + +namespace Content.Shared.SS220.MinorFauna; + +//Actions +public sealed partial class ActionSpiderCocooningEvent : EntityTargetActionEvent +{ + [DataField] + public TimeSpan CocooningTime = TimeSpan.Zero; +} + +//DoAFters +[Serializable, NetSerializable] +public sealed partial class AfterSpiderCocooningEvent : SimpleDoAfterEvent +{ + +} diff --git a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs b/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs new file mode 100644 index 000000000000..d54d91a0abb5 --- /dev/null +++ b/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.SS220.MinorFauna; + +public sealed partial class MinorFaunaComponent : Component +{ + /// + /// Minimal distance for cocooning + /// + [DataField] + public float CocoonsMinDistance = 0.5f; +} diff --git a/Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs new file mode 100644 index 000000000000..b3e3be4634e1 --- /dev/null +++ b/Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs @@ -0,0 +1,60 @@ +using Content.Shared.DoAfter; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Content.Shared.SS220.SpiderQueen.Components; +using Content.Shared.SS220.SpiderQueen; + +namespace Content.Shared.SS220.MinorFauna.Systems; + +public abstract class SharedMinorFaunaSystem : EntitySystem +{ + [Dependency] private readonly EntityLookupSystem _entityLookup = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCocooningAction); + } + + private void OnCocooningAction(Entity entity, ref ActionSpiderCocooningEvent args) + { + if (args.Handled) + return; + + var performer = args.Performer; + var target = args.Target; + + foreach (var entityInRange in _entityLookup.GetEntitiesInRange(target, entity.Comp.CocoonsMinDistance)) + { + if (!HasComp(entityInRange)) + continue; + + _popup.PopupEntity(Loc.GetString("cocooning-too-close"), performer, performer); + return; + } + + if (!_mobState.IsDead(target)) + { + _popup.PopupEntity(Loc.GetString("cocooning-target-not-dead"), performer, performer); + return; + } + + var doAfterArgs = new DoAfterArgs( + EntityManager, + performer, + args.CocooningTime, + new AfterSpiderCocooningEvent(), + performer, + target + ); + } + AfterSpiderCocooningEvent(Entity entity, ref AfterSpiderCocooningEvent args) + { + + } + +} diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index fbf53f830000..09b49ee7e95a 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -227,8 +227,8 @@ - !type:SpawnEntitiesBehavior spawn: MaterialWebSugarSilk: - min: 1 - max: 1 + min: 4 + max: 6 - !type:PlaySoundBehavior sound: collection: WoodDestroy @@ -303,68 +303,6 @@ graph: SpiderCocoon node: cocoonVertical -- type: entity - parent: BaseSpiderCocoon - id: SpiderCocoonAnimalHorizontal - suffix: Spider hive - components: - - type: Icon - sprite: SS220/Structures/Specific/cocoon.rsi - state: animal_cocoon1 - - type: Sprite - sprite: SS220/Structures/Specific/cocoon.rsi - layers: - - state: animal_cocoon1 - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 150 - behaviors: - - !type:EmptyContainersBehaviour - containers: - - cocoon - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/poster_broken.ogg - - !type:ChangeConstructionNodeBehavior - node: cocoonHorizontalDestroyed - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Construction - graph: SpiderCocoon - node: cocoonHorizontal - -- type: entity - parent: BaseSpiderCocoon - id: SpiderCocoonAnimalVertical - suffix: Spider hive - components: - - type: Icon - state: animal_cocoon2 - - type: Sprite - layers: - - state: animal_cocoon2 - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 150 - behaviors: - - !type:EmptyContainersBehaviour - containers: - - cocoon - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/poster_broken.ogg - - !type:ChangeConstructionNodeBehavior - node: cocoonVerticalDestroyed - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Construction - graph: SpiderCocoon - node: cocoonVertical - # Destroyed cocoon - type: entity parent: BaseSpiderCocoonDestroyed @@ -392,32 +330,4 @@ - state: destroyed_cocoon2 - type: Construction graph: SpiderCocoon - node: cocoonVerticalDestroyed - -- type: entity - parent: BaseSpiderCocoonDestroyed - id: SpiderCocoonHorizontalAnimalDestroyed - suffix: Spider hive - components: - - type: Icon - state: destroyed_animal_cocoon1 - - type: Sprite - layers: - - state: destroyed_animal_cocoon1 - - type: Construction - graph: SpiderCocoon - node: cocoonHorizontalDestroyed - -- type: entity - parent: BaseSpiderCocoonDestroyed - id: SpiderCocoonVerticalAnimalDestroyed - suffix: Spider hive - components: - - type: Icon - state: destroyed_animal_cocoon2 - - type: Sprite - layers: - - state: destroyed_animal_cocoon2 - - type: Construction - graph: SpiderCocoon - node: cocoonVerticalDestroyed + node: cocoonVerticalDestroyed \ No newline at end of file From fb40605a15a88c2b18820ea0d444c9aba43b8d15 Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 10 Feb 2025 06:38:15 +0300 Subject: [PATCH 30/36] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20+=20=D1=81=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prying/Components/PryingComponent.cs | 5 ++--- .../Actions/MinorFauna/MinorFaunaActions.cs | 19 ---------------- .../Actions/SharedMinorFaunaActions.cs | 10 +++++++++ .../Components/CocoonerComponent.cs} | 5 ++--- .../Components/MinorFaunaComponent.cs | 5 +++++ .../Events/SharedMinorFaunaEvents.cs | 9 ++++++++ .../Systems}/SharedMinorFaunaSystem.cs | 22 +++++++++++++------ 7 files changed, 43 insertions(+), 32 deletions(-) delete mode 100644 Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs create mode 100644 Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs rename Content.Shared/SS220/{Actions/MinorFauna/MinorFaunaComponent.cs => MinorFauna/Components/CocoonerComponent.cs} (55%) create mode 100644 Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs create mode 100644 Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs rename Content.Shared/SS220/{Actions/MinorFauna => MinorFauna/Systems}/SharedMinorFaunaSystem.cs (60%) diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 79a4b4006993..07c2e26ae3d5 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -37,12 +37,13 @@ public sealed partial class PryingComponent : Component /// [DataField] public bool Enabled = true; - + //SS220 fauna Update start [ViewVariables] public EntityUid? ActionPryingEntity; [DataField("actionPry")] public EntProtoId ActionPrying = "ActionPrying"; + //SS220 fauna Update end } /// @@ -100,5 +101,3 @@ public GetPryTimeModifierEvent(EntityUid user) User = user; } } - - diff --git a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs b/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs deleted file mode 100644 index a90aa7f0ecc6..000000000000 --- a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaActions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Shared.Actions; -using Robust.Shared.Serialization; -using Content.Shared.DoAfter; - -namespace Content.Shared.SS220.MinorFauna; - -//Actions -public sealed partial class ActionSpiderCocooningEvent : EntityTargetActionEvent -{ - [DataField] - public TimeSpan CocooningTime = TimeSpan.Zero; -} - -//DoAFters -[Serializable, NetSerializable] -public sealed partial class AfterSpiderCocooningEvent : SimpleDoAfterEvent -{ - -} diff --git a/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs b/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs new file mode 100644 index 000000000000..980390857f97 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs @@ -0,0 +1,10 @@ +using Content.Shared.Actions; + +namespace Content.Shared.SS220.MinorFauna.Actions; + +//Actions +public sealed partial class ActionEntityCocooningEvent : EntityTargetActionEvent +{ + [DataField] + public TimeSpan CocooningTime = TimeSpan.Zero; +} diff --git a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs similarity index 55% rename from Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs rename to Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index d54d91a0abb5..0658e5b85852 100644 --- a/Content.Shared/SS220/Actions/MinorFauna/MinorFaunaComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -1,6 +1,5 @@ -namespace Content.Shared.SS220.MinorFauna; - -public sealed partial class MinorFaunaComponent : Component +namespace Content.Shared.SS220.MinorFauna.Components; +public sealed partial class CocoonerComponent : Component { /// /// Minimal distance for cocooning diff --git a/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs b/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs new file mode 100644 index 000000000000..b535f02848b5 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs @@ -0,0 +1,5 @@ +namespace Content.Shared.SS220.MinorFauna.Components; + +public sealed partial class MinorFaunaComponent : Component +{ +} diff --git a/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs b/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs new file mode 100644 index 000000000000..2cc9d83f4044 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs @@ -0,0 +1,9 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.SS220.MinorFauna.Events; + +[Serializable, NetSerializable] +public sealed partial class AfterEntityCocooningEvent : SimpleDoAfterEvent +{ +} diff --git a/Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs similarity index 60% rename from Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs rename to Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs index b3e3be4634e1..f2a091fc9743 100644 --- a/Content.Shared/SS220/Actions/MinorFauna/SharedMinorFaunaSystem.cs +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -1,8 +1,10 @@ using Content.Shared.DoAfter; using Content.Shared.Mobs.Systems; using Content.Shared.Popups; -using Content.Shared.SS220.SpiderQueen.Components; -using Content.Shared.SS220.SpiderQueen; +using Content.Shared.SS220.MinorFauna.Actions; +using Content.Shared.SS220.MinorFauna.Events; +using Content.Shared.SS220.MinorFauna.Components; + namespace Content.Shared.SS220.MinorFauna.Systems; @@ -17,10 +19,11 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnCocooningAction); + SubscribeLocalEvent(OnCocooningAction); + SubscribeLocalEvent(OnAfterEntityCocooningEvent); } - private void OnCocooningAction(Entity entity, ref ActionSpiderCocooningEvent args) + private void OnCocooningAction(Entity entity, ref ActionEntityCocooningEvent args) { if (args.Handled) return; @@ -30,7 +33,7 @@ private void OnCocooningAction(Entity entity, ref ActionSpi foreach (var entityInRange in _entityLookup.GetEntitiesInRange(target, entity.Comp.CocoonsMinDistance)) { - if (!HasComp(entityInRange)) + if (!HasComp(entityInRange)) continue; _popup.PopupEntity(Loc.GetString("cocooning-too-close"), performer, performer); @@ -47,13 +50,18 @@ private void OnCocooningAction(Entity entity, ref ActionSpi EntityManager, performer, args.CocooningTime, - new AfterSpiderCocooningEvent(), + new AfterEntityCocooningEvent(), performer, target ); } - AfterSpiderCocooningEvent(Entity entity, ref AfterSpiderCocooningEvent args) + private void OnAfterEntityCocooningEvent(Entity entity, ref AfterEntityCocooningEvent args) { + if (args.Cancelled || args.Target is not EntityUid target) + return; + + if (!TryComp(target, out var transform) || !_mobState.IsDead(target)) + return; } From 3ea3a0773a8b96a2fa6125c50254dd42e086aa88 Mon Sep 17 00:00:00 2001 From: kekw Date: Mon, 10 Feb 2025 07:29:33 +0300 Subject: [PATCH 31/36] =?UTF-8?q?=D0=A1=D1=80=D0=B0=D1=82=D1=8C=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/MinorFauna/MinorFaunaSystem.cs | 45 +++++++++++++++++++ .../MinorFauna/Components/CocoonComponent.cs | 21 +++++++++ .../Components/CocoonerComponent.cs | 18 ++++++++ .../Systems/SharedMinorFaunaSystem.cs | 10 ----- 4 files changed, 84 insertions(+), 10 deletions(-) create mode 100644 Content.Server/MinorFauna/MinorFaunaSystem.cs create mode 100644 Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs new file mode 100644 index 000000000000..5bf52247a516 --- /dev/null +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -0,0 +1,45 @@ +using Robust.Shared.Random; +using Robust.Server.GameObjects; +using Robust.Shared.Containers; +using Content.Shared.SS220.MinorFauna.Actions; +using Content.Shared.SS220.MinorFauna.Events; +using Content.Shared.SS220.MinorFauna.Components; +using Content.Shared.Mobs.Systems; + +namespace Content.Server.SS220.MinorFauna; + +public abstract class SharedMinorFaunaSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnAfterEntityCocooningEvent); + } + + private void OnAfterEntityCocooningEvent(Entity entity, ref AfterEntityCocooningEvent args) + { + if (args.Cancelled || args.Target is not EntityUid target) + return; + + if (!TryComp(target, out var transform) || !_mobState.IsDead(target)) + return; + var targetCords = _transform.GetMoverCoordinates(target, transform); + var cocoonPrototypeID = _random.Pick(entity.Comp.CocoonPrototypes); + var cocoonUid = Spawn(cocoonPrototypeID, targetCords); + + if (!TryComp(cocoonUid, out var cocoon) || + !_container.TryGetContainer(cocoonUid, cocoon.CocoonContainerId, out var container)) + { + Log.Error($"{cocoonUid} doesn't have required components to cocooning target"); + return; + } + + _container.Insert(target, container); + } + +} diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs new file mode 100644 index 000000000000..df60ef088b6f --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs @@ -0,0 +1,21 @@ +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; + +namespace Content.Shared.SS220.MinorFauna.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class EntityCocoonComponent : Component +{ + /// + /// ID of the container in which the entities placed in the cocoon are stored + /// + [DataField("container", required: true)] + public string CocoonContainerId = "cocoon"; + + /// + /// The entity that created this cocoon + /// + [ViewVariables, AutoNetworkedField] + public EntityUid? CocoonOwner; +} diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 0658e5b85852..8577264c2f89 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -1,4 +1,9 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + namespace Content.Shared.SS220.MinorFauna.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class CocoonerComponent : Component { /// @@ -6,4 +11,17 @@ public sealed partial class CocoonerComponent : Component /// [DataField] public float CocoonsMinDistance = 0.5f; + + /// + /// Ids of the cocoon prototype + /// + [DataField] + public List CocoonPrototypes = new(); + + /// + /// List of cocoons created by component owner + /// + [ViewVariables, AutoNetworkedField] + public List CocoonsList = new(); + } diff --git a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs index f2a091fc9743..b68a68ca26f5 100644 --- a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -20,7 +20,6 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnCocooningAction); - SubscribeLocalEvent(OnAfterEntityCocooningEvent); } private void OnCocooningAction(Entity entity, ref ActionEntityCocooningEvent args) @@ -55,14 +54,5 @@ private void OnCocooningAction(Entity entity, ref ActionEntit target ); } - private void OnAfterEntityCocooningEvent(Entity entity, ref AfterEntityCocooningEvent args) - { - if (args.Cancelled || args.Target is not EntityUid target) - return; - - if (!TryComp(target, out var transform) || !_mobState.IsDead(target)) - return; - - } } From 27301c46985451a339efd5b2afb4b61655e4256a Mon Sep 17 00:00:00 2001 From: kekw Date: Tue, 11 Feb 2025 15:22:13 +0300 Subject: [PATCH 32/36] =?UTF-8?q?=D0=9E=D1=81=D0=BD=D0=BE=D0=B2=D0=B0=20?= =?UTF-8?q?=D1=8D=D0=BA=D1=88=D0=BD=D0=B0=20=D0=B2=D1=80=D0=B0=D0=BF=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D0=BA=D0=BE=D0=BA=D0=BE=D0=BD=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=83=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/MinorFauna/MinorFaunaSystem.cs | 2 +- .../Components/CocoonerComponent.cs | 2 +- .../Systems/SharedMinorFaunaSystem.cs | 13 +++- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 4 ++ .../Actions/MinorFauna/Tarantula_actions.yml | 15 ++++- .../Structures/Specific/spider_structures.yml | 66 ++++++++++++++++++- 6 files changed, 97 insertions(+), 5 deletions(-) diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs index 5bf52247a516..d55d0ac40ab8 100644 --- a/Content.Server/MinorFauna/MinorFaunaSystem.cs +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -8,7 +8,7 @@ namespace Content.Server.SS220.MinorFauna; -public abstract class SharedMinorFaunaSystem : EntitySystem +public sealed class SharedMinorFaunaSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly TransformSystem _transform = default!; diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 8577264c2f89..3335920640bb 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -15,7 +15,7 @@ public sealed partial class CocoonerComponent : Component /// /// Ids of the cocoon prototype /// - [DataField] + [DataField("cocoonPrototypes")] public List CocoonPrototypes = new(); /// diff --git a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs index b68a68ca26f5..98b053788249 100644 --- a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -8,7 +8,7 @@ namespace Content.Shared.SS220.MinorFauna.Systems; -public abstract class SharedMinorFaunaSystem : EntitySystem +public sealed class SharedMinorFaunaSystem : EntitySystem { [Dependency] private readonly EntityLookupSystem _entityLookup = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; @@ -53,6 +53,17 @@ private void OnCocooningAction(Entity entity, ref ActionEntit performer, target ); + + var started = _doAfter.TryStartDoAfter(doAfterArgs); + if (started) + { + args.Handled = true; + } + else + { + Log.Error($"Failed to start DoAfter by {performer}"); + return; + } } } diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index f0dca92b7585..d2b60047d995 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2458,12 +2458,16 @@ types: Piercing: 6 #SS220 Fauna update start + - type: Cocooner + cocoonPrototypes: + - TarantulaCocoon - type: ActionGrant actions: - ActionSpawnSpiderWallWebTarantula - ActionPryingTarantula - ActionSpawnSpiderEggTarantula - ActionSpawnSingleSpiderWebTarantula + - ActionCocoonTarantula #SS220 Fauna update end - type: entity diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml index 2ed2bd0d505a..570d75e1c0b1 100644 --- a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml @@ -59,4 +59,17 @@ icon: sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi state: web_spawn - useDelay: 4 \ No newline at end of file + useDelay: 4 + +- type: entity + id: ActionCocoonTarantula + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + event: !type:ActionEntityCocooningEvent + startDelay: true + useDelay: 5 + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: prying \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index 09b49ee7e95a..72acfdb327e7 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -1,4 +1,35 @@ #Base +- type: entity + id: BaseEntityCocoon + name: cocoon + description: сосал? + suffix: cocoon + abstract: true + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + - type: Transform + - type: Physics + canCollide: false + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb {} + - type: Clickable + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + - type: AntiRottingContainer + - type: ContainerContainer + containers: + cocoon: !type:Container + - type: EntityCocoon + container: cocoon + - type: entity id: BaseSpiderCocoon name: spider cocoon @@ -330,4 +361,37 @@ - state: destroyed_cocoon2 - type: Construction graph: SpiderCocoon - node: cocoonVerticalDestroyed \ No newline at end of file + node: cocoonVerticalDestroyed + +#Fauna update cocoons +- type: entity + parent: BaseEntityCocoon + id: TarantulaCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: cocoon1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal \ No newline at end of file From 229b1032fdfb5e31cc20c2781aa7259a8ac94e14 Mon Sep 17 00:00:00 2001 From: kekw Date: Tue, 11 Feb 2025 19:22:36 +0300 Subject: [PATCH 33/36] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BA=D0=BE=D0=BD=D1=8B=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BB=D1=8E=D0=B4=D0=B5=D0=B9,=20=D0=B6=D0=B8=D0=B2=D0=BE?= =?UTF-8?q?=D1=82=D0=BD=D1=8B=D1=85=20=D0=B8=20=D0=BC=D0=B5=D0=BB=D0=BA?= =?UTF-8?q?=D0=B8=D1=85=20=D0=B6=D0=B8=D0=B2=D0=BE=D1=82=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/MinorFauna/MinorFaunaSystem.cs | 32 ++++++++- .../Components/CocoonerComponent.cs | 18 ++++- .../Systems/SharedMinorFaunaSystem.cs | 1 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 8 ++- .../Structures/Specific/spider_structures.yml | 68 +++++++++++++++++- .../Structures/Specific/cocoon.rsi/meta.json | 3 + .../cocoon.rsi/small_animal_cocoon1.png | Bin 0 -> 243 bytes 7 files changed, 123 insertions(+), 7 deletions(-) create mode 100644 Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs index d55d0ac40ab8..ad68b4bb9a1a 100644 --- a/Content.Server/MinorFauna/MinorFaunaSystem.cs +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -5,6 +5,10 @@ using Content.Shared.SS220.MinorFauna.Events; using Content.Shared.SS220.MinorFauna.Components; using Content.Shared.Mobs.Systems; +using Content.Shared.Humanoid; +using Content.Server.Body.Components; +using Content.Shared.Item; +using Robust.Shared.Prototypes; namespace Content.Server.SS220.MinorFauna; @@ -23,13 +27,39 @@ public override void Initialize() private void OnAfterEntityCocooningEvent(Entity entity, ref AfterEntityCocooningEvent args) { + if (args.Cancelled || args.Target is not EntityUid target) return; + if (!HasComp(target)) + { + return; + } + if (!TryComp(target, out var transform) || !_mobState.IsDead(target)) return; + var targetCords = _transform.GetMoverCoordinates(target, transform); - var cocoonPrototypeID = _random.Pick(entity.Comp.CocoonPrototypes); + EntProtoId cocoonPrototypeID = "Undefined"; + + if (HasComp(target)) + { + cocoonPrototypeID = _random.Pick(entity.Comp.CocoonHumanoidPrototypes); + } + else + { + if (TryComp(target, out var item) && (item.Size == "Tiny" || item.Size == "Small")) + { + cocoonPrototypeID = _random.Pick(entity.Comp.CocoonSmallAnimalPrototypes); + } + else + { + cocoonPrototypeID = _random.Pick(entity.Comp.CocoonAnimalPrototypes); + } + } + if (cocoonPrototypeID.Equals("Undefined")) + return; + var cocoonUid = Spawn(cocoonPrototypeID, targetCords); if (!TryComp(cocoonUid, out var cocoon) || diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 3335920640bb..950c7c23fbbb 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -13,10 +13,22 @@ public sealed partial class CocoonerComponent : Component public float CocoonsMinDistance = 0.5f; /// - /// Ids of the cocoon prototype + /// Ids of the cocoon prototype for humanoids /// - [DataField("cocoonPrototypes")] - public List CocoonPrototypes = new(); + [DataField("humanoidCocoons")] + public List CocoonHumanoidPrototypes = new(); + + /// + /// Ids of the cocoon prototype for animals + /// + [DataField("animalCocoons")] + public List CocoonAnimalPrototypes = new(); + + /// + /// Ids of the cocoon prototype for small animals aka mouses + /// + [DataField("smallAnimalCocoons")] + public List CocoonSmallAnimalPrototypes = new(); /// /// List of cocoons created by component owner diff --git a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs index 98b053788249..6e5c5683ce43 100644 --- a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.SS220.MinorFauna.Actions; using Content.Shared.SS220.MinorFauna.Events; using Content.Shared.SS220.MinorFauna.Components; +using Content.Shared.Humanoid; namespace Content.Shared.SS220.MinorFauna.Systems; diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index d2b60047d995..23ea60cc1fa2 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2360,6 +2360,8 @@ damageContainer: Biological damageModifierSet: SpiderMob - type: Magboots + - type: Puller + needsHands: false #SS220 Fauna update end bloodMaxVolume: 150 bloodReagent: CopperBlood @@ -2459,7 +2461,11 @@ Piercing: 6 #SS220 Fauna update start - type: Cocooner - cocoonPrototypes: + smallAnimalCocoons: + - TarantulaSmallAnimalCocoon + animalCocoons: + - TarantulaAnimalCocoon + humanoidCocoons: - TarantulaCocoon - type: ActionGrant actions: diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index 72acfdb327e7..43f0f9902435 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -371,11 +371,75 @@ components: - type: Icon sprite: SS220/Structures/Specific/cocoon.rsi - state: cocoon1 + state: animal_cocoon2 - type: Sprite sprite: SS220/Structures/Specific/cocoon.rsi layers: - - state: cocoon1 + - state: animal_cocoon2 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal + +- type: entity + parent: BaseEntityCocoon + id: TarantulaAnimalCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: animal_cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: animal_cocoon1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal + +- type: entity + parent: BaseEntityCocoon + id: TarantulaSmallAnimalCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: small_animal_cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: small_animal_cocoon1 - type: Destructible thresholds: - trigger: diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json index 23a26c9da45c..7a7d4ef3f45e 100644 --- a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json +++ b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json @@ -30,6 +30,9 @@ }, { "name": "destroyed_animal_cocoon2" + }, + { + "name": "small_animal_cocoon1" } ] } diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ee297a3772237940b9c023f1a7f7ee040689c4 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydu{YLn2z= zUfRgpV!*?CpT1?~kf~98|&a zP<+LzkkB@P6|1)QRa}>QILG;%-#IcIDhX8 q|GwbW#txu^ZGtV5dkmj(%BSs1pSOR*-#0*qGkCiCxvX Date: Thu, 13 Feb 2025 20:09:37 +0300 Subject: [PATCH 34/36] =?UTF-8?q?=D0=B4=D0=B8=D0=BA=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/MinorFauna/MinorFaunaSystem.cs | 20 ++++++++++----- .../Components/CocoonerComponent.cs | 25 ++++++++----------- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 13 +++++----- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs index ad68b4bb9a1a..58071cc47f20 100644 --- a/Content.Server/MinorFauna/MinorFaunaSystem.cs +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -44,19 +44,27 @@ private void OnAfterEntityCocooningEvent(Entity entity, ref A if (HasComp(target)) { - cocoonPrototypeID = _random.Pick(entity.Comp.CocoonHumanoidPrototypes); + if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.Humanoids, out var value)) + { + cocoonPrototypeID = _random.Pick(value); + } } - else + else if (TryComp(target, out var item) && (item.Size == "Tiny" || item.Size == "Small")) { - if (TryComp(target, out var item) && (item.Size == "Tiny" || item.Size == "Small")) + if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.SmallAnimals, out var value)) { - cocoonPrototypeID = _random.Pick(entity.Comp.CocoonSmallAnimalPrototypes); + cocoonPrototypeID = _random.Pick(value); } - else + } + else + { + if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.Animals, out var value)) { - cocoonPrototypeID = _random.Pick(entity.Comp.CocoonAnimalPrototypes); + cocoonPrototypeID = _random.Pick(value); } } + + if (cocoonPrototypeID.Equals("Undefined")) return; diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 950c7c23fbbb..581a3306f57b 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -13,22 +13,10 @@ public sealed partial class CocoonerComponent : Component public float CocoonsMinDistance = 0.5f; /// - /// Ids of the cocoon prototype for humanoids + /// Dict for cocoons /// - [DataField("humanoidCocoons")] - public List CocoonHumanoidPrototypes = new(); - - /// - /// Ids of the cocoon prototype for animals - /// - [DataField("animalCocoons")] - public List CocoonAnimalPrototypes = new(); - - /// - /// Ids of the cocoon prototype for small animals aka mouses - /// - [DataField("smallAnimalCocoons")] - public List CocoonSmallAnimalPrototypes = new(); + [DataField] + public Dictionary> CocoonsProto = new(); /// /// List of cocoons created by component owner @@ -37,3 +25,10 @@ public sealed partial class CocoonerComponent : Component public List CocoonsList = new(); } + +public enum CocoonTypes +{ + Humanoids, + Animals, + SmallAnimals +} diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 23ea60cc1fa2..145761af0b98 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2461,12 +2461,13 @@ Piercing: 6 #SS220 Fauna update start - type: Cocooner - smallAnimalCocoons: - - TarantulaSmallAnimalCocoon - animalCocoons: - - TarantulaAnimalCocoon - humanoidCocoons: - - TarantulaCocoon + cocoonsProto: + Humanoids: + - TarantulaCocoon + Animals: + - TarantulaAnimalCocoon + SmallAnimals: + - TarantulaSmallAnimalCocoon - type: ActionGrant actions: - ActionSpawnSpiderWallWebTarantula From 389d03c2244346f13ffe5464e6892b2e9a938454 Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 15 Feb 2025 16:48:32 +0300 Subject: [PATCH 35/36] =?UTF-8?q?=D0=BC=D0=B0=D0=BF=D0=BF=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3.=D0=B7=D0=B0=D0=B5=D0=B1=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/MinorFauna/MinorFaunaSystem.cs | 24 ++++----------- .../Components/CocoonerComponent.cs | 30 +++++++++---------- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 29 +++++++++++++++--- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs index 58071cc47f20..91c85059e5c3 100644 --- a/Content.Server/MinorFauna/MinorFaunaSystem.cs +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -9,6 +9,7 @@ using Content.Server.Body.Components; using Content.Shared.Item; using Robust.Shared.Prototypes; +using Content.Shared.Whitelist; namespace Content.Server.SS220.MinorFauna; @@ -18,7 +19,7 @@ public sealed class SharedMinorFaunaSystem : EntitySystem [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedContainerSystem _container = default!; - + [Dependency] private readonly EntityWhitelistSystem _whiteList = default!; public override void Initialize() { base.Initialize(); @@ -42,28 +43,13 @@ private void OnAfterEntityCocooningEvent(Entity entity, ref A var targetCords = _transform.GetMoverCoordinates(target, transform); EntProtoId cocoonPrototypeID = "Undefined"; - if (HasComp(target)) - { - if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.Humanoids, out var value)) - { - cocoonPrototypeID = _random.Pick(value); - } - } - else if (TryComp(target, out var item) && (item.Size == "Tiny" || item.Size == "Small")) + foreach (var cocoonWhiteList in entity.Comp.CocoonsList) { - if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.SmallAnimals, out var value)) + if (_whiteList.CheckBoth(target, cocoonWhiteList.Blacklist, cocoonWhiteList.Whitelist)) { - cocoonPrototypeID = _random.Pick(value); + cocoonPrototypeID = _random.Pick(cocoonWhiteList.Protos); } } - else - { - if (entity.Comp.CocoonsProto.TryGetValue(CocoonTypes.Animals, out var value)) - { - cocoonPrototypeID = _random.Pick(value); - } - } - if (cocoonPrototypeID.Equals("Undefined")) return; diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 581a3306f57b..5dc5f21584dd 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -1,9 +1,10 @@ +using Content.Shared.Whitelist; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.SS220.MinorFauna.Components; -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[RegisterComponent, NetworkedComponent] public sealed partial class CocoonerComponent : Component { /// @@ -13,22 +14,21 @@ public sealed partial class CocoonerComponent : Component public float CocoonsMinDistance = 0.5f; /// - /// Dict for cocoons + /// list of cocoon lists and their conditions /// - [DataField] - public Dictionary> CocoonsProto = new(); - - /// - /// List of cocoons created by component owner - /// - [ViewVariables, AutoNetworkedField] - public List CocoonsList = new(); - + [DataField("cocoonTypes", required: true)] + public List CocoonsList = new(); } -public enum CocoonTypes +[DataDefinition] +public sealed partial class CocoonsList { - Humanoids, - Animals, - SmallAnimals + [DataField("entityWhiteList")] + public EntityWhitelist? Whitelist; + + [DataField("entityBlackList")] + public EntityWhitelist? Blacklist; + + [DataField("entityProtoList", required: true)] + public List Protos = new(); } diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 145761af0b98..76d55faf6bf1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2461,13 +2461,34 @@ Piercing: 6 #SS220 Fauna update start - type: Cocooner - cocoonsProto: - Humanoids: + cocoonTypes: + - CocoonsList: + entityWhiteList: + components: + - HumanoidAppearance + entityProtoList: - TarantulaCocoon - Animals: + + - CocoonsList: + entityBlackList: + components: + - HumanoidAppearance + entityProtoList: - TarantulaAnimalCocoon - SmallAnimals: + + - CocoonsList: + entityWhiteList: + components: + - Item + sizes: + - Tiny + - Small + entityBlackList: + components: + - HumanoidAppearance + entityProtoList: - TarantulaSmallAnimalCocoon + - type: ActionGrant actions: - ActionSpawnSpiderWallWebTarantula From 0288d7cf6de445611620c9c802fd346e94d9ee88 Mon Sep 17 00:00:00 2001 From: kekw Date: Sat, 15 Feb 2025 17:09:26 +0300 Subject: [PATCH 36/36] =?UTF-8?q?=D0=A3=D1=8D=D1=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SS220/MinorFauna/Components/CocoonerComponent.cs | 6 ------ .../SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs | 9 --------- 2 files changed, 15 deletions(-) diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs index 5dc5f21584dd..1c7284215a56 100644 --- a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -7,12 +7,6 @@ namespace Content.Shared.SS220.MinorFauna.Components; [RegisterComponent, NetworkedComponent] public sealed partial class CocoonerComponent : Component { - /// - /// Minimal distance for cocooning - /// - [DataField] - public float CocoonsMinDistance = 0.5f; - /// /// list of cocoon lists and their conditions /// diff --git a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs index 6e5c5683ce43..3ebaf1155127 100644 --- a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -31,15 +31,6 @@ private void OnCocooningAction(Entity entity, ref ActionEntit var performer = args.Performer; var target = args.Target; - foreach (var entityInRange in _entityLookup.GetEntitiesInRange(target, entity.Comp.CocoonsMinDistance)) - { - if (!HasComp(entityInRange)) - continue; - - _popup.PopupEntity(Loc.GetString("cocooning-too-close"), performer, performer); - return; - } - if (!_mobState.IsDead(target)) { _popup.PopupEntity(Loc.GetString("cocooning-target-not-dead"), performer, performer);