From d425c5d828a32704cd3917ad194d4a3f4a746972 Mon Sep 17 00:00:00 2001 From: Lyndomen <49795619+Lyndomen@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:59:28 -0500 Subject: [PATCH] spoder --- Content.Client/_EE/Cocoon/CocoonSystem.cs | 2 +- Content.Server/_EE/Cocoon/CocoonerSystem.cs | 2 +- .../_EE/Vampire/BloodSuckedComponent.cs | 4 ++-- .../_EE/Vampire/BloodSuckerComponent.cs | 6 +++--- .../_EE/Vampire/BloodSuckerSystem.cs | 11 +++++++---- .../BloodSuckerGlandInjectorSystem.cs | 3 ++- .../en-US/_EE/abilities/bloodsucker.ftl | 19 +++++++++++++++++++ 7 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 Resources/Locale/en-US/_EE/abilities/bloodsucker.ftl diff --git a/Content.Client/_EE/Cocoon/CocoonSystem.cs b/Content.Client/_EE/Cocoon/CocoonSystem.cs index d3eb4a8205f..f6b66a4b395 100644 --- a/Content.Client/_EE/Cocoon/CocoonSystem.cs +++ b/Content.Client/_EE/Cocoon/CocoonSystem.cs @@ -21,7 +21,7 @@ private void OnCocEntInserted(EntityUid uid, CocoonComponent component, EntInser return; if (TryComp(args.Entity, out var humanoidAppearance)) // If humanoid, use height and width - cocoonSprite.Scale = new Vector2(humanoidAppearance.Width, humanoidAppearance.Height); + cocoonSprite.Scale = new Vector2(1,1); else if (!TryComp(args.Entity, out var entSprite)) return; else if (entSprite.BaseRSI != null) // Set scale based on sprite scale + sprite dimensions. Ideally we would somehow get a bounding box from the sprite size not including transparent pixels, but FUCK figuring that out. diff --git a/Content.Server/_EE/Cocoon/CocoonerSystem.cs b/Content.Server/_EE/Cocoon/CocoonerSystem.cs index db6a4a4d48b..9a10d9f5a79 100644 --- a/Content.Server/_EE/Cocoon/CocoonerSystem.cs +++ b/Content.Server/_EE/Cocoon/CocoonerSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Cocoon; +using Content.Shared.Cocoon; using Content.Shared.IdentityManagement; using Content.Shared.Verbs; using Content.Shared.DoAfter; diff --git a/Content.Server/_EE/Vampire/BloodSuckedComponent.cs b/Content.Server/_EE/Vampire/BloodSuckedComponent.cs index d7e402cd98a..df0eb4e3d65 100644 --- a/Content.Server/_EE/Vampire/BloodSuckedComponent.cs +++ b/Content.Server/_EE/Vampire/BloodSuckedComponent.cs @@ -1,7 +1,7 @@ -namespace Content.Server.Vampiric +namespace Content.Server.Vampire { /// - /// For entities who have been succed. + /// For entities who have been sucked. /// [RegisterComponent] public sealed partial class BloodSuckedComponent : Component diff --git a/Content.Server/_EE/Vampire/BloodSuckerComponent.cs b/Content.Server/_EE/Vampire/BloodSuckerComponent.cs index f5619d1cb49..65c0f33cce4 100644 --- a/Content.Server/_EE/Vampire/BloodSuckerComponent.cs +++ b/Content.Server/_EE/Vampire/BloodSuckerComponent.cs @@ -1,16 +1,16 @@ -namespace Content.Server.Vampiric +namespace Content.Server.Vampire { [RegisterComponent] public sealed partial class BloodSuckerComponent : Component { /// - /// How much to succ each time we succ. + /// How much to suck each time we suck. /// [DataField("unitsToSucc")] public float UnitsToSucc = 20f; /// - /// The time (in seconds) that it takes to succ an entity. + /// The time (in seconds) that it takes to suck an entity. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public TimeSpan Delay = TimeSpan.FromSeconds(4); diff --git a/Content.Server/_EE/Vampire/BloodSuckerSystem.cs b/Content.Server/_EE/Vampire/BloodSuckerSystem.cs index 77fae73bd44..e3b18204351 100644 --- a/Content.Server/_EE/Vampire/BloodSuckerSystem.cs +++ b/Content.Server/_EE/Vampire/BloodSuckerSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Shared.Verbs; using Content.Shared.Damage; using Content.Shared.DoAfter; @@ -19,7 +20,7 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Utility; -namespace Content.Server.Vampiric +namespace Content.Server.Vampire { public sealed class BloodSuckerSystem : EntitySystem { @@ -157,11 +158,13 @@ public bool TrySucc(EntityUid bloodsucker, EntityUid victim, BloodSuckerComponen return false; // Does bloodsucker have a stomach? - var stomachList = _bodySystem.GetBodyOrganComponents(bloodsucker); + var stomachList = _bodySystem.GetBodyOrganEntityComps(bloodsucker); if (stomachList.Count == 0) return false; - if (!_solutionSystem.TryGetSolution(stomachList[0].Comp.Owner, StomachSystem.DefaultSolutionName, out var stomachSolution)) + var stomach = stomachList.FirstOrDefault(); // DeltaV + + if (!_solutionSystem.TryGetSolution(bloodsucker, StomachSystem.DefaultSolutionName, out var stomachSolution)) return false; // Are we too full? @@ -185,7 +188,7 @@ public bool TrySucc(EntityUid bloodsucker, EntityUid victim, BloodSuckerComponen return false; var temp = _solutionSystem.SplitSolution(bloodstream.BloodSolution.Value, bloodsuckerComp.UnitsToSucc); - _stomachSystem.TryTransferSolution(stomachList[0].Comp.Owner, temp, stomachList[0].Comp); + _stomachSystem.TryTransferSolution(bloodsucker, temp, stomach); // DeltaV // Add a little pierce DamageSpecifier damage = new(); diff --git a/Content.Server/_EE/Vampire/Injector/BloodSuckerGlandInjectorSystem.cs b/Content.Server/_EE/Vampire/Injector/BloodSuckerGlandInjectorSystem.cs index d2a92f24be6..3c24acbded2 100644 --- a/Content.Server/_EE/Vampire/Injector/BloodSuckerGlandInjectorSystem.cs +++ b/Content.Server/_EE/Vampire/Injector/BloodSuckerGlandInjectorSystem.cs @@ -1,7 +1,8 @@ using Content.Server.Popups; +using Content.Server.Vampiric; using Content.Shared.Interaction; -namespace Content.Server.Vampiric +namespace Content.Server.Vampire { public sealed class BloodSuckerGlandInjectorSystem : EntitySystem { diff --git a/Resources/Locale/en-US/_EE/abilities/bloodsucker.ftl b/Resources/Locale/en-US/_EE/abilities/bloodsucker.ftl new file mode 100644 index 00000000000..c8aa0ed8542 --- /dev/null +++ b/Resources/Locale/en-US/_EE/abilities/bloodsucker.ftl @@ -0,0 +1,19 @@ +action-name-suck-blood = Suck Blood +action-description-suck-blood = Suck the blood of the victim in your hand. + +bloodsucker-fail-helmet = You'd need to remove {THE($helmet)}. +bloodsucker-fail-mask = You'd need to remove your mask! + +bloodsucker-not-blood = {$target} doesn't have delicious, nourishing blood. +bloodsucker-fail-no-blood = {$target} has no blood in { POSS-ADJ($target) } body. +bloodsucker-fail-no-blood-bloodsucked = {$target} has been sucked dry. + +bloodsucker-blood-sucked = You suck some blood from {$target}. +bloodsucker-doafter-start = You try to suck blood from {$target}. + +bloodsucker-doafter-start-victim = {CAPITALIZE(THE($sucker))} is trying to bite your neck! +bloodsucker-blood-sucked-victim = {CAPITALIZE(THE($sucker))} sucks some of your blood! + +bloodsucked-health-examine = [color=red]{ CAPITALIZE(SUBJECT($target)) } { CONJUGATE-HAVE($target) } bite marks on { POSS-ADJ($target) } neck.[/color] + +bloodsucker-glands-throb = The glands behind your fangs feel a bit sore.