diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs index 467da4739b7..c79e6bdaec5 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs @@ -7,6 +7,7 @@ using Content.Shared.Interaction; using Content.Shared.Mobs.Components; using Content.Shared.Popups; +using Content.Shared.Silicon.Components; using Content.Shared.Silicons.Bots; using Robust.Shared.Audio.Systems; @@ -53,9 +54,11 @@ public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTi if (!blackboard.TryGetValue(TargetKey, out var target, _entMan) || _entMan.Deleted(target)) return HTNOperatorStatus.Failed; - if (!_entMan.TryGetComponent(owner, out var botComp)) + if (_entMan.HasComponent(target)) return HTNOperatorStatus.Failed; + if (!_entMan.TryGetComponent(owner, out var botComp)) + return HTNOperatorStatus.Failed; if (!_entMan.TryGetComponent(target, out var damage)) return HTNOperatorStatus.Failed; diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs index a71091ad97d..12ab23a25f5 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs @@ -8,6 +8,8 @@ using Content.Shared.Mobs.Components; using Content.Shared.Silicons.Bots; using Content.Shared.Emag.Components; +using Content.Shared.Silicon.Components; + namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Specific; @@ -64,6 +66,9 @@ public override void Initialize(IEntitySystemManager sysManager) damageQuery.TryGetComponent(entity, out var damage) && !recentlyInjected.HasComponent(entity)) { + if (_entManager.HasComponent(entity)) + continue; + // no treating dead bodies if (!_medibot.TryGetTreatment(medibot, state.CurrentState, out var treatment)) continue; diff --git a/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs b/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs index b79b9a1bec4..87a781f5b9f 100644 --- a/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs +++ b/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs @@ -130,7 +130,11 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio if (hunger.CurrentThreshold == Shared.Nutrition.Components.HungerThreshold.Overfed) { - _popupSystem.PopupEntity(Loc.GetString("food-system-you-cannot-eat-any-more"), uid, uid, Shared.Popups.PopupType.SmallCaution); + _popupSystem.PopupEntity( + Loc.GetString("food-system-you-cannot-eat-any-more"), + uid, + uid, + Shared.Popups.PopupType.SmallCaution); return; } @@ -147,6 +151,7 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio _actionsSystem.SetCharges(component.HairballAction, 1); // You get the charge back and that's it. Tough. _actionsSystem.SetEnabled(component.HairballAction, true); } + Del(component.EatActionTarget.Value); component.EatActionTarget = null; @@ -154,8 +159,12 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio _hungerSystem.ModifyHunger(uid, 50f, hunger); - if (component.EatAction != null) + if (component.EatAction is not null && _actionsSystem.TryGetActionData(uid, out var result)) + { + if (result.AttachedEntity == null) + return; _actionsSystem.RemoveAction(uid, component.EatAction.Value); + } } private void SpawnHairball(EntityUid uid, FelinidComponent component) diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs b/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs index d4fd8eb3af8..ffd1680f975 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs @@ -95,10 +95,9 @@ private void OnBuckleInteractHand(Entity ent, ref InteractHandE return; if (ent.Comp.BuckledTo != null) - TryUnbuckle(ent!, args.User, popup: true); + args.Handled = TryUnbuckle(ent!, args.User, popup: true); // TODO BUCKLE add out bool for whether a pop-up was generated or not. - args.Handled = true; } private void AddStrapVerbs(EntityUid uid, StrapComponent component, GetVerbsEvent args) diff --git a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs b/Content.Shared/Fluids/Components/PreventSpillerComponent.cs deleted file mode 100644 index e396d9faf52..00000000000 --- a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Fluids.Components; - -/// -/// Blocks this entity's ability to spill solution containing entities via the verb menu. -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class PreventSpillerComponent : Component -{ - -} diff --git a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs index 52e6a6cb980..767d30389ac 100644 --- a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs +++ b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs @@ -34,7 +34,7 @@ private void OnExamined(Entity entity, ref ExaminedEvent arg private void AddSpillVerb(Entity entity, ref GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract) + if (!args.CanAccess || !args.CanInteract || args.Hands == null) return; if (!_solutionContainerSystem.TryGetSolution(args.Target, entity.Comp.SolutionName, out var soln, out var solution)) @@ -46,10 +46,6 @@ private void AddSpillVerb(Entity entity, ref GetVerbsEvent(args.User)) - return; - - Verb verb = new() { Text = Loc.GetString("spill-target-verb-get-data-text") diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index 01d9e72fef1..2abe1f0a80f 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -361,7 +361,7 @@ sprite: Clothing/Hands/Gloves/northstar.rsi - type: MeleeWeapon autoAttack: true - attackRate: 4 + attackRate: 0.25 heavyStaminaCost: 2 heavyDamageBaseModifier: 1.05 maxTargets: 1 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 6155d20c5a4..e05048c4f89 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1755,10 +1755,6 @@ - type: FelinidFood # Nyanotrasen - Felinid, ability to eat mice, see Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs - type: BadFood - type: NonSpreaderZombie - - type: PreventSpiller - - type: RandomBark - barkMultiplier: 0.3 - barkType: mouse - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 4ea766c3140..2c49fafec5c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -386,4 +386,4 @@ parent: MobCobraSpace suffix: "Salvage Ruleset" components: - - type: SalvageMobRestrictions + - type: SalvageMobRestrictions \ No newline at end of file