From 880689ccc4439b19cd18469143c2cf2269af423d Mon Sep 17 00:00:00 2001 From: solomam Date: Sat, 11 Jul 2026 19:52:40 +0100 Subject: [PATCH 01/16] Added Flip and mothroach ability Wing dash Signed-off-by: solomam --- .../_Goobstation/Dash/DashActionChatSystem.cs | 33 ++++++++ .../_Goobstation/Dash/DashActionComponent.cs | 48 ++++++++++++ .../_Goobstation/Dash/DashActionSystem.cs | 71 ++++++++++++++++++ .../_Goobstation/Effects/attributions.yml | 6 ++ .../Audio/_Goobstation/Effects/moth_wings.ogg | Bin 0 -> 21000 bytes .../Locale/en-US/_Goobstation/emotes.ftl | 3 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 + .../_Goobstation/Actions/emotes.yml | 15 ++++ .../Prototypes/_Goobstation/Actions/types.yml | 19 +++++ .../_Goobstation/Actions/dash.rsi/icon.png | Bin 0 -> 1112 bytes .../_Goobstation/Actions/dash.rsi/meta.json | 14 ++++ .../Interface/Emotes/attributions.yml | 7 +- .../_Goobstation/Interface/Emotes/flip.png | Bin 0 -> 317 bytes 13 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 Content.Server/_Goobstation/Dash/DashActionChatSystem.cs create mode 100644 Content.Shared/_Goobstation/Dash/DashActionComponent.cs create mode 100644 Content.Shared/_Goobstation/Dash/DashActionSystem.cs create mode 100644 Resources/Audio/_Goobstation/Effects/attributions.yml create mode 100644 Resources/Audio/_Goobstation/Effects/moth_wings.ogg create mode 100644 Resources/Textures/_Goobstation/Actions/dash.rsi/icon.png create mode 100644 Resources/Textures/_Goobstation/Actions/dash.rsi/meta.json create mode 100644 Resources/Textures/_Goobstation/Interface/Emotes/flip.png diff --git a/Content.Server/_Goobstation/Dash/DashActionChatSystem.cs b/Content.Server/_Goobstation/Dash/DashActionChatSystem.cs new file mode 100644 index 00000000000..b35380c6acb --- /dev/null +++ b/Content.Server/_Goobstation/Dash/DashActionChatSystem.cs @@ -0,0 +1,33 @@ +using Content.Server.Chat.Systems; +using Content.Shared._Goobstation.Dash; +using Content.Shared.Chat.Prototypes; +using Robust.Shared.Prototypes; + +namespace Content.Server._Goobstation.Dash; + +public sealed class DashActionChatSystem : EntitySystem +{ + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDash); + } + + private void OnDash(DashActionEvent args) + { + if (args.Emote == null) + return; + + if (!_prototype.TryIndex(args.Emote.Value, out var emote)) + return; + + _chat.TryEmoteWithChat( + args.Performer, + emote, + forceEmote: true); + } +} \ No newline at end of file diff --git a/Content.Shared/_Goobstation/Dash/DashActionComponent.cs b/Content.Shared/_Goobstation/Dash/DashActionComponent.cs new file mode 100644 index 00000000000..245a28ca7b5 --- /dev/null +++ b/Content.Shared/_Goobstation/Dash/DashActionComponent.cs @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Actions; +using Content.Shared.Chat.Prototypes; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Goobstation.Dash; + +[RegisterComponent] +public sealed partial class DashActionComponent : Component +{ + [DataField] + public string? ActionProto; + + [ViewVariables(VVAccess.ReadOnly)] + public EntityUid? ActionUid; +} + +public sealed partial class DashActionEvent : WorldTargetActionEvent +{ + [DataField] + public float Distance = 4.65f; + + [DataField] + public float Speed = 9.65f; + + [DataField] + public float? StaminaDrain; + + /// + /// Whether you need gravity to perform the dash. Keep in mind there's no friction without gravity so if this + /// is false, the performer gets every chance to be launched straight to Ohio on dashing without gravity. + /// + [DataField] + public bool NeedsGravity = true; + + /// + /// Whether dash distance and speed are affected by performer's speed modifiers. Should be true most of the time. + /// + [DataField] + public bool AffectedBySpeed = true; + + /// + /// Animated emote to play on successful dash. + /// + [DataField] + public ProtoId? Emote = "Flip"; +} diff --git a/Content.Shared/_Goobstation/Dash/DashActionSystem.cs b/Content.Shared/_Goobstation/Dash/DashActionSystem.cs new file mode 100644 index 00000000000..f0d6b753b93 --- /dev/null +++ b/Content.Shared/_Goobstation/Dash/DashActionSystem.cs @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Emoting; +using Content.Shared.Actions; +using Content.Shared.Damage; +using Content.Shared.Damage.Components; +using Content.Shared.Damage.Systems; +using Content.Shared.Gravity; +using Content.Shared.Movement.Components; +using Content.Shared.Throwing; + +namespace Content.Shared._Goobstation.Dash; + +public sealed class DashActionSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDashAction); + + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentShutdown); + } + + private void OnDashAction(DashActionEvent args) + { + if (args.Handled) + return; + + if (args.NeedsGravity && _gravity.IsWeightless(args.Performer)) + return; + + args.Handled = true; + var vec = (_transform.ToMapCoordinates(args.Target).Position - + _transform.GetMapCoordinates(args.Performer).Position).Normalized() * args.Distance; + var speed = args.Speed; + + if (args.AffectedBySpeed && TryComp(args.Performer, out var speedcomp)) + { + vec *= speedcomp.CurrentSprintSpeed / speedcomp.BaseSprintSpeed; + speed *= speedcomp.CurrentSprintSpeed / speedcomp.BaseSprintSpeed; + } + + _throwing.TryThrow(args.Performer, vec, speed, animated: false); + + if (args.StaminaDrain != null) + _stamina.TakeStaminaDamage(args.Performer, args.StaminaDrain.Value, visual: false, immediate: false); + + if (args.Emote != null && TryComp(args.Performer, out var emotes)) + { + emotes.Emote = args.Emote; + Dirty(args.Performer, emotes); + } + } + + private void OnComponentInit(EntityUid uid, DashActionComponent comp, ref ComponentInit args) + { + comp.ActionUid = _actions.AddAction(uid, comp.ActionProto); + } + + private void OnComponentShutdown(EntityUid uid, DashActionComponent comp, ref ComponentShutdown args) + { + _actions.RemoveAction(comp.ActionUid); + } +} diff --git a/Resources/Audio/_Goobstation/Effects/attributions.yml b/Resources/Audio/_Goobstation/Effects/attributions.yml new file mode 100644 index 00000000000..cae33d20951 --- /dev/null +++ b/Resources/Audio/_Goobstation/Effects/attributions.yml @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +- files: ["moth_wings.ogg"] + license: "CC0-1.0" + copyright: "Original by tothrec2" + source: "https://freesound.org/people/tothrec2/sounds/596541/" \ No newline at end of file diff --git a/Resources/Audio/_Goobstation/Effects/moth_wings.ogg b/Resources/Audio/_Goobstation/Effects/moth_wings.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1197c38f12b914506ae19f2a3556d2fe857adc51 GIT binary patch literal 21000 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 literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/_Goobstation/emotes.ftl b/Resources/Locale/en-US/_Goobstation/emotes.ftl index 82afec0f5f5..b667ceeac45 100644 --- a/Resources/Locale/en-US/_Goobstation/emotes.ftl +++ b/Resources/Locale/en-US/_Goobstation/emotes.ftl @@ -1,7 +1,10 @@ chat-emote-name-spin = Spin chat-emote-name-jump = Jump +chat-emote-name-flip = Do a flip chat-emote-msg-spin = spins! chat-emote-msg-jump = jumps! +chat-emote-msg-flip = does a flip! + # Names chat-emote-name-trill = Trill diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 3a50cf58ec2..ba8cef94aa0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -505,6 +505,8 @@ allowedEmotes: ['Chitter', 'Squeak'] - type: FaxableObject insertingState: inserting_mothroach + - type: DashAction # Goobstation - dark souls moths + actionProto: ActionDashMoth - type: MothAccent - type: Sprite sprite: Mobs/Animals/mothroach/mothroach.rsi diff --git a/Resources/Prototypes/_Goobstation/Actions/emotes.yml b/Resources/Prototypes/_Goobstation/Actions/emotes.yml index a7485248db2..38c5ee1540b 100644 --- a/Resources/Prototypes/_Goobstation/Actions/emotes.yml +++ b/Resources/Prototypes/_Goobstation/Actions/emotes.yml @@ -25,3 +25,18 @@ - bounces. - bounces! event: !type:AnimationJumpEmoteEvent + +- type: emote + id: Flip + name: chat-emote-name-flip + icon: _Goobstation/Interface/Emotes/flip.png + chatMessages: ["chat-emote-msg-flip"] + chatTriggers: + - flip + - flips + - flips. + - flips! + - does a flip + - does a flip. + - does a flip! + event: !type:AnimationFlipEmoteEvent \ No newline at end of file diff --git a/Resources/Prototypes/_Goobstation/Actions/types.yml b/Resources/Prototypes/_Goobstation/Actions/types.yml index 423013b6d17..c3bc6dcb939 100644 --- a/Resources/Prototypes/_Goobstation/Actions/types.yml +++ b/Resources/Prototypes/_Goobstation/Actions/types.yml @@ -13,3 +13,22 @@ sprite: _Goobstation/Effects/bluespace_lifeline.rsi state: bluespace_lifeline event: !type:ActivateImplantEvent + +- type: entity + id: ActionDashMoth + name: Wing dash + description: Sharply flap your wings, dashing to the side! + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 6.5 + checkCanAccess: false + range: 0 + icon: { sprite: _Goobstation/Actions/dash.rsi, state: icon } + state: icon + itemIconStyle: NoItem + sound: !type:SoundPathSpecifier + path: /Audio/_Goobstation/Effects/moth_wings.ogg + params: + volume: 6.5 + event: !type:DashActionEvent \ No newline at end of file diff --git a/Resources/Textures/_Goobstation/Actions/dash.rsi/icon.png b/Resources/Textures/_Goobstation/Actions/dash.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d2e8f712ae55e5804c95ce3419bcb9a0f86dd385 GIT binary patch literal 1112 zcmV-e1gHCnP)EX>4Tx04R}tkv&MmKpe$iTT7)@1nnTwAwzYti;6gwDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRGbylbRlx5o`t7P00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>-cCCOeM_^@RWc02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00J;cL_t(o!|hhPlEWYj6g!?2_aP~+(&+!cfze!;EqNVxMLAXsv16}d#M*5^%?)IV-ZPh zqF~-1rF63pFq54)-bv=9}IshMLLH_~{SwZ$F_`J<1(vQ!nagP0R9b3BBDp?f3>r8C~8j8wkJ)rRY`#5KY~aLdSS_t8VF<*J2}t7N#nS6Uz+KJIc0?#8FHis zTS2i%A}c#!`8(y5Z1+w9@B^t(5!E>+A_J+$s?kuj=9I4*2hJ~zWZLQ99=UV6&4l&j e{Q0!}ckCCGGQO6dNTM?U0000Px#_en%SR9J=WS5Xp#AP7bG4wd&moYfu5zL;?fC0I6odNX}ED(@vA2w;eubFs81 zCNKNuBLK-=1k~hZ-%8H8Jm!isxkgC%g?t(ZcHO+J0059uBDvH8r2d|ll@t-{fy8$q zenjG@ap>FErV-_P%5H1^vPdf6&i6)&?|m5(c1Q>^2C#m2Yj}mb>r}w@y4QaHkDU?X@)mR@M*;4yU`u-kFYemz*XwB1 P00000NkvXXu0mjfZYhQ( literal 0 HcmV?d00001 From 48036c1653aef83702695fdce6c97caa9b22fd5a Mon Sep 17 00:00:00 2001 From: solomam Date: Sun, 12 Jul 2026 22:04:42 +0100 Subject: [PATCH 02/16] added EatToGrow Signed-off-by: solomam --- .../Nutrition/EntitySystems/FoodSystem.cs | 3 + .../_Goobstation/EatToGrow/EatToGrowSystem.cs | 81 +++++++++++++++++++ .../Ingestion/GoobEatingEvents.cs | 13 +++ .../EntitySystems/IngestionSystem.cs | 1 + .../EatToGrow/AfterEatingEvent.cs | 8 ++ .../EatToGrow/EatToGrowComponent.cs | 22 +++++ .../EatToGrow/EatToGrowComponentState.cs | 23 ++++++ .../Prototypes/Entities/Mobs/NPCs/animals.yml | 4 +- 8 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 Content.Server/_Goobstation/EatToGrow/EatToGrowSystem.cs create mode 100644 Content.Server/_Goobstation/Ingestion/GoobEatingEvents.cs create mode 100644 Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs create mode 100644 Content.Shared/_Goobstation/EatToGrow/AfterEatingEvent.cs create mode 100644 Content.Shared/_Goobstation/EatToGrow/EatToGrowComponent.cs create mode 100644 Content.Shared/_Goobstation/EatToGrow/EatToGrowComponentState.cs diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 0e228f1a589..bfe457c94bd 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -26,6 +26,7 @@ using Content.Shared.Stacks; using Content.Shared.Storage; using Content.Shared.Verbs; +using Content.Shared._Goobstation.EatToGrow; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Utility; @@ -284,6 +285,8 @@ private void OnDoAfter(Entity entity, ref ConsumeDoAfterEvent arg _reaction.DoEntityReaction(args.Target.Value, solution, ReactionMethod.Ingestion); _stomach.TryTransferSolution(stomachToUse!.Value.Owner, split, stomachToUse); + var afterEatingEv = new AfterEatingEvent(entity.Owner); + RaiseLocalEvent(args.Target.Value, ref afterEatingEv); var flavors = args.FlavorMessage; if (forceFeed) diff --git a/Content.Server/_Goobstation/EatToGrow/EatToGrowSystem.cs b/Content.Server/_Goobstation/EatToGrow/EatToGrowSystem.cs new file mode 100644 index 00000000000..0e5dfb34c61 --- /dev/null +++ b/Content.Server/_Goobstation/EatToGrow/EatToGrowSystem.cs @@ -0,0 +1,81 @@ +using Content.Shared._Goobstation.EatToGrow; +using Content.Shared.Mobs; +using Robust.Server.GameObjects; +using Robust.Shared.Physics; +using Robust.Shared.Physics.Collision.Shapes; +using Robust.Shared.Physics.Systems; +using System.Numerics; +using Content.Shared.Sprite; + +namespace Content.Server._Goobstation.EatToGrow; + + +public sealed class EatToGrowSystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnFoodEaten); + SubscribeLocalEvent(ShrinkOnDeath); + } + + private void OnFoodEaten(Entity ent, ref AfterEatingEvent args) + { + Grow(ent.Owner, ent.Comp, 1); + } + + private void Grow(EntityUid eater, EatToGrowComponent comp, float scale) + { + // if growing would go over the limit, return + if (comp.CurrentScale >= comp.MaxGrowth) + return; + // Uses scale variable to multiply the growth, mainly used for shrinking + // Add growth + comp.CurrentScale += comp.Growth; + comp.CurrentScale = MathF.Min(comp.CurrentScale, comp.MaxGrowth); + + EnsureComp(eater); + + var appearanceComponent = EnsureComp(eater); + if (!_appearance.TryGetData(eater, ScaleVisuals.Scale, out var oldScale, appearanceComponent)) + oldScale = Vector2.One; + + _appearance.SetData(eater, ScaleVisuals.Scale, oldScale + scale * new Vector2(comp.Growth, comp.Growth), appearanceComponent); + + Dirty(eater, comp); // Sync updated growth to client. + + // add 1 to times grown + comp.TimesGrown += 1; + + // Grow the fixture by 1/4 the growth + if (TryComp(eater, out FixturesComponent? manager)) + { + foreach (var (id, fixture) in manager.Fixtures) + { + if (fixture.Shape is PhysShapeCircle circle) + { + _physics.SetPositionRadius( + eater, id, fixture, circle, + circle.Position, circle.Radius + scale * (comp.Growth / 4), manager); + } + } + } + } + private void ShrinkOnDeath(Entity eater, ref MobStateChangedEvent args) + { + // Copied from TryGrow, just need to grow in reverse + if (args.NewMobState != MobState.Dead || !TryComp(eater, out var comp) || comp.ShrinkOnDeath == false) + return; + + // shrink the entity + Grow(eater, comp, -comp.TimesGrown); // uses the negative of times grown to shrink the entity back to normal + + // Reset data on shrink + comp.CurrentScale = 1f; + comp.TimesGrown = 0; + } +}; diff --git a/Content.Server/_Goobstation/Ingestion/GoobEatingEvents.cs b/Content.Server/_Goobstation/Ingestion/GoobEatingEvents.cs new file mode 100644 index 00000000000..2e021b943f6 --- /dev/null +++ b/Content.Server/_Goobstation/Ingestion/GoobEatingEvents.cs @@ -0,0 +1,13 @@ +namespace Content.Server._Goobstation.Ingestion; + +/// +/// Raised directed at the eater after finishing eating the food before it's deleted. +/// +[ByRefEvent] +public readonly record struct AfterEatingEvent(EntityUid Food) +{ + /// + /// The UID of the food entity that was fully eaten. + /// + public readonly EntityUid Food = Food; +} diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs new file mode 100644 index 00000000000..e61577cc50a --- /dev/null +++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs @@ -0,0 +1 @@ +using Content.Shared._Goobstation.EatToGrow; \ No newline at end of file diff --git a/Content.Shared/_Goobstation/EatToGrow/AfterEatingEvent.cs b/Content.Shared/_Goobstation/EatToGrow/AfterEatingEvent.cs new file mode 100644 index 00000000000..f01df5eeebe --- /dev/null +++ b/Content.Shared/_Goobstation/EatToGrow/AfterEatingEvent.cs @@ -0,0 +1,8 @@ +using Robust.Shared.GameObjects; + +namespace Content.Shared._Goobstation.EatToGrow; +/// +/// Raised directed at the eater after finishing eating the food before it is deleted. +/// +[ByRefEvent] +public readonly record struct AfterEatingEvent(EntityUid Food); \ No newline at end of file diff --git a/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponent.cs b/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponent.cs new file mode 100644 index 00000000000..e0a26627740 --- /dev/null +++ b/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponent.cs @@ -0,0 +1,22 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; + +namespace Content.Shared._Goobstation.EatToGrow; +[RegisterComponent, NetworkedComponent] +public sealed partial class EatToGrowComponent : Component +{ + [DataField] + public float Growth = 0.1f; // percentage growth + + [DataField] + public float MaxGrowth = 5.0f; // max allowed scale multiplier + + [DataField] + public float CurrentScale = 1.0f; // current scale + + [DataField] + public bool ShrinkOnDeath = true; // Revert to original size on death? + + [DataField] + public int TimesGrown = 0; // how many times have they grown? +} diff --git a/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponentState.cs b/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponentState.cs new file mode 100644 index 00000000000..ae5add8b454 --- /dev/null +++ b/Content.Shared/_Goobstation/EatToGrow/EatToGrowComponentState.cs @@ -0,0 +1,23 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared._Goobstation.EatToGrow; + +[Serializable, NetSerializable] +public sealed class EatToGrowComponentState : ComponentState +{ + public readonly float Growth; + public readonly float MaxGrowth; + + public readonly float CurrentScale; + public readonly bool ShrinkOnDeath; + public readonly int TimesGrown; + public EatToGrowComponentState(float growth, float maxGrowth, float currentScale, bool shrinkOnDeath, int timesGrown) + { + Growth = growth; + MaxGrowth = maxGrowth; + CurrentScale = currentScale; + ShrinkOnDeath = shrinkOnDeath; + TimesGrown = timesGrown; + } +} diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index ba8cef94aa0..2893354ca2e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -647,7 +647,9 @@ 32: sprite: Mobs/Animals/mothroach/displacement.rsi state: neck - + - type: EatToGrow # Goobstation Eat To Grow System + growth: 1 + maxGrowth: 5 # Note that the mallard duck is actually a male drake mallard, with the brown duck being the female variant of the same species, however ss14 lacks sex specific textures # The white duck is more akin to a pekin or call duck. From 985b1eeb56c06e2037f1c0521e8c394befe36db8 Mon Sep 17 00:00:00 2001 From: solomam Date: Tue, 14 Jul 2026 19:28:48 +0100 Subject: [PATCH 03/16] added boomroach and syndiroach added tsf radio implant added civilian radio implant Signed-off-by: solomam --- .../_NF/store/security-uplink-catalog.ftl | 2 + .../ghost/roles/ghost-role-component.ftl | 11 + .../Entities/Markers/Spawners/mobs.yml | 15 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 5 + .../Objects/Specific/Janitorial/janitor.yml | 3 +- .../Objects/Specific/rehydrateable.yml | 3 +- Resources/Prototypes/GameRules/pests.yml | 2 + Resources/Prototypes/NPCs/mob.yml | 13 + .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 272 ++++++++++++++++++ .../_NF/Catalog/security_uplink_catalog.yml | 16 ++ .../_NF/Entities/Mobs/NPCs/pets.yml | 1 + .../_NF/Entities/Objects/Misc/implanters.yml | 16 ++ .../Objects/Misc/subdermal_implants.yml | 29 ++ .../boomroach.rsi/0-equipped-HELMET.png | Bin 0 -> 1827 bytes .../Animals/mothroach/boomroach.rsi/icon.png | Bin 0 -> 1115 bytes .../mothroach/boomroach.rsi/inhand-left.png | Bin 0 -> 1521 bytes .../mothroach/boomroach.rsi/inhand-right.png | Bin 0 -> 1536 bytes .../Animals/mothroach/boomroach.rsi/meta.json | 68 +++++ .../boomroach.rsi/mothroach-moving.png | Bin 0 -> 3823 bytes .../mothroach/boomroach.rsi/mothroach.png | Bin 0 -> 2896 bytes .../boomroach.rsi/mothroach_dead.png | Bin 0 -> 2859 bytes .../boomroach.rsi/mothroach_lazy.png | Bin 0 -> 2881 bytes .../boomroach.rsi/mothroach_sleep.png | Bin 0 -> 2873 bytes .../0-equipped-HELMET.png | Bin 0 -> 1067 bytes .../mothroach/leopard_mothroach.rsi/icon.png | Bin 0 -> 454 bytes .../leopard_mothroach.rsi/inhand-left.png | Bin 0 -> 724 bytes .../leopard_mothroach.rsi/inhand-right.png | Bin 0 -> 724 bytes .../mothroach/leopard_mothroach.rsi/meta.json | 68 +++++ .../mothroach-moving.png | Bin 0 -> 2044 bytes .../leopard_mothroach.rsi/mothroach.png | Bin 0 -> 1440 bytes .../leopard_mothroach.rsi/mothroach_dead.png | Bin 0 -> 1480 bytes .../leopard_mothroach.rsi/mothroach_lazy.png | Bin 0 -> 1415 bytes .../leopard_mothroach.rsi/mothroach_sleep.png | Bin 0 -> 1419 bytes .../lunar_mothroach.rsi/0-equipped-HELMET.png | Bin 0 -> 1326 bytes .../mothroach/lunar_mothroach.rsi/icon.png | Bin 0 -> 619 bytes .../lunar_mothroach.rsi/inhand-left.png | Bin 0 -> 1034 bytes .../lunar_mothroach.rsi/inhand-right.png | Bin 0 -> 1046 bytes .../mothroach/lunar_mothroach.rsi/meta.json | 68 +++++ .../lunar_mothroach.rsi/mothroach-moving.png | Bin 0 -> 3243 bytes .../lunar_mothroach.rsi/mothroach.png | Bin 0 -> 2157 bytes .../lunar_mothroach.rsi/mothroach_dead.png | Bin 0 -> 2121 bytes .../lunar_mothroach.rsi/mothroach_lazy.png | Bin 0 -> 2185 bytes .../lunar_mothroach.rsi/mothroach_sleep.png | Bin 0 -> 2174 bytes .../moproach.rsi/0-equipped-HELMET.png | Bin 0 -> 1295 bytes .../Animals/mothroach/moproach.rsi/icon.png | Bin 0 -> 581 bytes .../mothroach/moproach.rsi/inhand-left.png | Bin 0 -> 956 bytes .../mothroach/moproach.rsi/inhand-right.png | Bin 0 -> 939 bytes .../Animals/mothroach/moproach.rsi/meta.json | 60 ++++ .../moproach.rsi/mothroach-moving.png | Bin 0 -> 3353 bytes .../mothroach/moproach.rsi/mothroach.png | Bin 0 -> 1760 bytes .../mothroach/moproach.rsi/mothroach_dead.png | Bin 0 -> 2575 bytes .../0-equipped-HELMET.png | Bin 0 -> 1263 bytes .../mothroach/mustard_mothroach.rsi/icon.png | Bin 0 -> 600 bytes .../mustard_mothroach.rsi/inhand-left.png | Bin 0 -> 839 bytes .../mustard_mothroach.rsi/inhand-right.png | Bin 0 -> 867 bytes .../mothroach/mustard_mothroach.rsi/meta.json | 68 +++++ .../mothroach-moving.png | Bin 0 -> 2774 bytes .../mustard_mothroach.rsi/mothroach.png | Bin 0 -> 1889 bytes .../mustard_mothroach.rsi/mothroach_dead.png | Bin 0 -> 1825 bytes .../mustard_mothroach.rsi/mothroach_lazy.png | Bin 0 -> 1876 bytes .../mustard_mothroach.rsi/mothroach_sleep.png | Bin 0 -> 1860 bytes .../syndiroach.rsi/0-equipped-HELMET.png | Bin 0 -> 1228 bytes .../Animals/mothroach/syndiroach.rsi/icon.png | Bin 0 -> 671 bytes .../mothroach/syndiroach.rsi/inhand-left.png | Bin 0 -> 904 bytes .../mothroach/syndiroach.rsi/inhand-right.png | Bin 0 -> 927 bytes .../mothroach/syndiroach.rsi/meta.json | 68 +++++ .../syndiroach.rsi/mothroach-moving.png | Bin 0 -> 2371 bytes .../mothroach/syndiroach.rsi/mothroach.png | Bin 0 -> 4488 bytes .../syndiroach.rsi/mothroach_dead.png | Bin 0 -> 1831 bytes .../syndiroach.rsi/mothroach_lazy.png | Bin 0 -> 1830 bytes .../syndiroach.rsi/mothroach_sleep.png | Bin 0 -> 1830 bytes 71 files changed, 786 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach_sleep.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/mothroach_sleep.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_sleep.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_sleep.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_sleep.png diff --git a/Resources/Locale/en-US/_NF/store/security-uplink-catalog.ftl b/Resources/Locale/en-US/_NF/store/security-uplink-catalog.ftl index e6af06c3081..4997c873326 100644 --- a/Resources/Locale/en-US/_NF/store/security-uplink-catalog.ftl +++ b/Resources/Locale/en-US/_NF/store/security-uplink-catalog.ftl @@ -162,3 +162,5 @@ uplink-security-contraband-forensics-module-name = Contraband Forenics Module uplink-security-contraband-forensics-module-desc = A program for scanning and reporting contraband dead drops and pods for bounties. Slots into a forensic scanner. uplink-security-mechpulserifle-name = CL-94 Pulse Emitter uplink-security-mechpulserifle-desc = A mech-mounted Pulse Rifle. +uplink-security-implanter-tsf-name = Tsf Implanter +uplink-security-implanter-tsf-desc = Implants an Tsf radio, allowing covert communication without a headset. diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 6f1af23fa26..a7ed4e68c29 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -35,6 +35,17 @@ ghost-role-information-mouse-description = A hungry and mischievous mouse. ghost-role-information-mothroach-name = Mothroach ghost-role-information-mothroach-description = A cute but mischievous mothroach. +ghost-role-information-moproach-name = Moproach +ghost-role-information-moproach-description = A cute mothroach with more cute moplike shoes on its feet. + +ghost-role-information-boomroach-name = Boomroach +ghost-role-information-boomroach-description = This little mothroach has a chinalake strapped to its back! Why and how? + +ghost-role-information-syndiroach-name = SyndiRoach +ghost-role-information-syndiroach-description = You're the faithful trained pet of PDV operatives with a microbomb. Serve your master to the death! +ghost-role-information-syndiroach-rules = You are a [color=red][bold]Team PDV[/bold][/color] with the agent who summoned you. + + ghost-role-information-snail-name = Snail ghost-role-information-snail-description = A little snail who doesn't mind a bit of space. Just stay on grid! diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml index 0c39868950a..5060546fe36 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml @@ -32,6 +32,21 @@ prototypes: - MobCockroach +- type: entity + parent: MarkerBase + id: SpawnMobMoproach + name: Moproach Spawner + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Animals/mothroach/moproach.rsi + state: icon + - state: ai + - type: ConditionalSpawner + prototypes: + - MobMoproach + - type: entity name: HoP Corgi Spawner id: SpawnMobCorgi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 2893354ca2e..cb5b07c177c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -585,11 +585,16 @@ wilhelmProbability: 0.001 - type: MobPrice price: 150 + - type: Temperature + heatDamageThreshold: 423 + coldDamageThreshold: 0 - type: Tag tags: - Trash - CannotSuicide - VimPilot + - type: MovementAlwaysTouching + - type: PressureImmunity - type: CanEscapeInventory - type: NpcFactionMember factions: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index d26813424b7..c63fdb05fc4 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -288,7 +288,8 @@ SpacemenFigureSpawner: 28 SpawnMobCockroach: 5 MaintenanceToolSpawner: 5 - + SpawnMobMoproach: 2 + - type: entity parent: [BaseItem, RecyclableItemClothSmall] # Frontier: added RecyclableItemClothSmall name: damp rag diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml index e02f6774060..4d80303c55e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml @@ -95,7 +95,8 @@ - MobMothroach # Frontier - MobMothroach # Frontier - MobRosyMothroach # Frontier - + - MobMoproach # wizden + - type: entity parent: MonkeyCube id: MouseCube diff --git a/Resources/Prototypes/GameRules/pests.yml b/Resources/Prototypes/GameRules/pests.yml index a840f9aeb65..b3a9b913fa6 100644 --- a/Resources/Prototypes/GameRules/pests.yml +++ b/Resources/Prototypes/GameRules/pests.yml @@ -90,6 +90,8 @@ specialEntries: # Mono - id: MobCorticalBorer # Mono prob: 0.001 # Mono + - id: MobMoproach + prob: 0.001 - type: entity id: SnailMigrationLowPop diff --git a/Resources/Prototypes/NPCs/mob.yml b/Resources/Prototypes/NPCs/mob.yml index dd3378618a6..16ff03df87d 100644 --- a/Resources/Prototypes/NPCs/mob.yml +++ b/Resources/Prototypes/NPCs/mob.yml @@ -32,6 +32,19 @@ - !type:HTNCompoundTask task: IdleCompound +- type: htnCompound + id: MoproachCompound + branches: + - tasks: + - !type:HTNCompoundTask + task: FoodCompound + - tasks: + - !type:HTNCompoundTask + task: BufferNearbyPuddlesCompound + - tasks: + - !type:HTNCompoundTask + task: IdleCompound + - type: htnCompound id: GlockroachCompound branches: diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml new file mode 100644 index 00000000000..d53d68f380f --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -0,0 +1,272 @@ +- type: entity + name: moproach + parent: MobMothroach + id: MobMoproach + description: This little mothroach has mopshoes on its feet! How adorable! + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-moproach-name + description: ghost-role-information-moproach-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 120 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: GhostTakeoverAvailable + - type: Speech + speechVerb: Moth + speechSounds: Squeak + allowedEmotes: ['Chitter', 'Squeak'] + - type: FaxableObject + insertingState: inserting_mothroach + - type: MothAccent + - type: Sprite + sprite: Mobs/Animals/mothroach/moproach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: SpriteMovement + movementLayers: + movement: + state: mothroach-moving + noMovementLayers: + movement: + state: mothroach + - type: Item + size: Normal + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/moproach.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: Appearance + - type: DamageStateVisuals + states: + Alive: + Base: mothroach + Critical: + Base: mothroach_dead + Dead: + Base: mothroach_dead + - type: MobThresholds + thresholds: + 0: Alive + 45: Critical + 65: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 5 # extra speed for that moppin'! + weightlessAcceleration: 1.5 + weightlessFriction: 1 + baseWeightlessModifier: 1 + - type: HTN + rootTask: + task: MoproachCompound + - type: Absorbent + pickupAmount: 7.5 # small feet + - type: UseDelay + delay: 0.5 # quick feet + - type: SolutionRegeneration + solution: absorbed + generated: + reagents: + - ReagentId: Water + Quantity: 5 + - type: SolutionPurge + solution: absorbed + preserve: + - Water + quantity: 10 + - type: SolutionContainerManager + solutions: + absorbed: + maxVol: 100 + - type: ProtectedFromStepTriggers + - type: Insulated + + +- type: entity + name: Boomroach + parent: MobMothroach + id: MobBoomroach + description: This little mothroach has a chinalake strapped to its back! Why and how? + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-boomroach-name + description: ghost-role-information-boomroach-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: AutoImplant + implants: + - RadioImplantCivilian + - type: IntrinsicRadioTransmitter + channels: + - Common + - Traffic + - type: ActiveRadio + channels: + - Common + - Traffic + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 120 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: GhostTakeoverAvailable + - type: Speech + speechVerb: Moth + speechSounds: Squeak + allowedEmotes: ['Chitter', 'Squeak'] + - type: FaxableObject + insertingState: inserting_mothroach + - type: MothAccent + - type: Sprite + sprite: Mobs/Animals/mothroach/boomroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: SpriteMovement + movementLayers: + movement: + state: mothroach-moving + noMovementLayers: + movement: + state: mothroach + - type: Item + size: Normal + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/boomroach.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: Appearance + - type: DamageStateVisuals + states: + Alive: + Base: mothroach + Critical: + Base: mothroach_dead + Dead: + Base: mothroach_dead + - type: LanguageKnowledge # Einstein Engines - Language + speaks: + - Moffic + understands: + - Moffic + - TauCetiBasic # Needs to understand your nukie ops. + +- type: entity + name: syndiroach + parent: MobMothroach + id: MobMothSyndy + description: Trained and elite member of the PDV, bewarned explosive personallity + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-syndiroach-name + description: ghost-role-information-syndiroach-description + rules: ghost-role-information-syndiroach-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: AutoImplant + implants: + - FreelanceTrackingImplant + - RadioImplantFreelance + - MicroBombImplant + - type: ExplosionResistance + damageCoefficient: 0.2 + - type: IntrinsicRadioTransmitter + channels: + - Common + - Traffic + - Freelance + - type: ActiveRadio + channels: + - Common + - Traffic + - Freelance + - type: NpcFactionMember + factions: + - PirateNF + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 120 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: GhostTakeoverAvailable + - type: Speech + speechVerb: Moth + speechSounds: Squeak + allowedEmotes: ['Chitter', 'Squeak'] + - type: FaxableObject + insertingState: inserting_mothroach + - type: MothAccent + - type: Sprite + sprite: Mobs/Animals/mothroach/syndiroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: SpriteMovement + movementLayers: + movement: + state: mothroach-moving + noMovementLayers: + movement: + state: mothroach + - type: Item + size: Normal + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/syndiroach.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: Appearance + - type: DamageStateVisuals + states: + Alive: + Base: mothroach + Critical: + Base: mothroach_dead + Dead: + Base: mothroach_dead + - type: LanguageKnowledge # Einstein Engines - Language + speaks: + - Moffic + - Freespeak + understands: + - Moffic + - TauCetiBasic # Needs to understand your nukie ops. + - Freespeak \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Catalog/security_uplink_catalog.yml b/Resources/Prototypes/_NF/Catalog/security_uplink_catalog.yml index c1916bf2664..4780faca8d0 100644 --- a/Resources/Prototypes/_NF/Catalog/security_uplink_catalog.yml +++ b/Resources/Prototypes/_NF/Catalog/security_uplink_catalog.yml @@ -945,6 +945,22 @@ tags: - SecurityUplink +- type: listing + id: UplinkSecurityImplanterTSF + name: uplink-security-implanter-tsf-name + description: uplink-security-implanter-tsf-desc + icon: { sprite: _NF/Objects/Devices/encryption_keys.rsi, state: nfsd_label } + productEntity: RadioImplanterTsf + cost: + FederationMilitaryCredit: 10 + categories: + - UplinkSecurityUtility + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SecurityUplink + - type: listing id: UplinkSecurityEnergyShield name: uplink-security-energyshield-name diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml index 44b1c36e195..1f534d1ce1b 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml @@ -128,6 +128,7 @@ - MindShieldImplant - TrackingImplant - LightImplant + - RadioImplantTsf - type: FlashImmunity - type: IntrinsicRadioTransmitter channels: diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml index 642fb67e731..6acbaca02f0 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml @@ -89,3 +89,19 @@ components: - type: Implanter implant: RadioImplantFreelance + +- type: entity + id: RadioImplanterTsf + suffix: radio Tsf + parent: BaseImplantOnlyImplanter + components: + - type: Implanter + implant: RadioImplantTsf + +- type: entity + id: RadioImplanterCivilian + suffix: radio Civilian + parent: BaseImplantOnlyImplanter + components: + - type: Implanter + implant: RadioImplantCivilian \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml index bab84a5b992..8ebdf753a84 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml @@ -172,3 +172,32 @@ - type: RadioImplant radioChannels: - Freelance + - Common + - Traffic + +- type: entity + parent: BaseSubdermalImplant + id: RadioImplantTsf + name: TSF radio implant + description: This implant grants access to the TSF channel without a headset. + categories: [ HideSpawnMenu ] + components: + - type: SubdermalImplant + - type: RadioImplant + radioChannels: + - Common + - Traffic + - Nfsd + +- type: entity + parent: BaseSubdermalImplant + id: RadioImplantCivilian + name: Civilian radio implant + description: This implant grants access to the Civilian channel without a headset. + categories: [ HideSpawnMenu ] + components: + - type: SubdermalImplant + - type: RadioImplant + radioChannels: + - Common + - Traffic \ No newline at end of file diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/0-equipped-HELMET.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..b3c343f882a46ed84500c115e4b8f84636013348 GIT binary patch literal 1827 zcmY*a30PBC7Jd+cfMBVBAOwi977_^|AT=a`7>EdB*bRsk$npXyWPt>dAc)8emPI-O zf=dMvbhND6C}WE(BB{|L0*bN-WwFqrgtaO{>`TYb>3rY4@0|1BbN_SRf8Y0RZgAip z6C-OQ002z<{b-?(-KCvyedzfeFKGlaI^xhh-a!3B#BWfrE{;m40>HIz)~_=4px994 zcR&mP8ztJQGs3l(LEvV|?np_PkSmcglR<#W5wbv}Kc5)~hJs9vJV^zTA=cx(@JLA{ zeIJo65eD3a`7zGhw>60 z_kZ;T;tw)Fg5b0(IJ~oqwq>nP3`*vKP#4;gUU>3f>;H$5aoR@y)|l6S5$IhZ@1rtW znLeru3Lr_PkakWbr`H339^g--hRdQ~4GR5i;t&RNYV798-hgrcht)lnAqQN)zweYv z2n7rBZ0nv0?r@4xY!IjPJ!3p72~NM^nv;R=-^q5_9C}~>9Qtr2Asv5;8)j|JE@GJF zUHko5X3>>xRzlp*wyNE@=uL64-3En-?ux_ZQ_|M_(^HO!o`sm0Mbdmq^V@d7PP1f~ zGrNZAKa{Sj%3z*#2q$SX0XE`bW4*y^4mS*@wi6daC;4kl|(+UT|ws-0sN`y-|^ z{;k_}{^{L?lUerjvwPGqV7iRLkkGfKrc33(+&<4D#@P2lu4#U!3yD+{ziL^nm;CTX z=JxWPH%67I>1Om-O<9kt3&rz(dQaV!;oN}D7=CK_;L9sDl>EKt4h=5dGuJ~RHsnvO zuS72Q+IT+pc9hlTd%?RJU8WV#cviq?JG2x=I_1>WVR?PumIRjL(CBuh(wEUXvcX_f zUC7#^IK4l@aeu#2OAYm#(wmFDnAN#Xsi*-~ZUQERmgtmqS9A+Pkqz1q6!oV6n0ZQ^37)CV zULu=zCuW-eL>!xVG&J^$PFqxTUa*Y5x(eQ_A*@yIfPGhM(X4PfRKJqBeQl+3E=oBy zWN9lu(clOaF!D9CN|?cKYQg0D8a0q0N7uf%bYSXjK?4B{JUa(RO!j9qj4wOhKgxQf zF4VnBs?eZIwqGK!I#Hfx3%3^6QB6ONyVL^TtwDV|y05>iZ0)evUJA<3UY1w&IFh6T zqw5YHJji@>WlRztP?J~Q7h;m_d!oOe!P~Dt0MM#JzU}!uHs%aXwDkGt=yONA-kT2C z3_*L(x#kRTW1PZ}R<%GWy$}7QtSm%(Z?|q88kW<^d1(0B^AqVS!|^$t=w;2YSY@=! z#|MT(9BH+;#u%QrhU>46zXOKm>AWVhGOwoCwolGmKMMALv!*F<_kRcKwY^FWyVIV8 z$hk-?h>VK8S+eE&8>@O!S@og3oSBE)Xq)Ui644!BU()jlu_Y8fh%8nFF@Wlgx$BV4 z@7QRcL{e5R)$)fG<#p%OP{>??BG!=MX)Ji*%vwe=b2ga+yTG^_+cflPF3r^VO(*i% z?+MxyS{x{FQeYDFMj@ZS>^?r8twTYbguhHBJ;uDn=?(ym`nF4Ho>n>SjR}bMqxKI1 zYIc1UfT`%Z=gn3`B^^$b^DH2^qdv*S7!PW=KHE;6_gWY<V zm-R!XE2k#ijQ7=6)vLCY+P@x(eQP>`G?QuOF7~NdjFhN9PM+$5PH$Cg+l3I_p7ISD z$)Kif`ci!>iz~>Sy)|jv_99|g)?z?jrlZWGeIiD!Qig@uFW7@N7qrR-%S?hYie)WL zl-FN!EEg&*R%bvAOS3 o8!moM{|xW&z8m@Xul0R5Ww+`VMtu2Pmi7|z-yKM+_l`aGC;cTKSO5S3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76167e7e1b947d26887da1663e50fbee6ddf626d GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=BdgAk26#O}+xCp*=Gsq9nrC$0|8LS1&OoKPgqOBDVmjnt{Q_ zzM>#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTySIc&!a!AG;@m(0<`r?9@G0Vc{l1bMV2D2@#f6=INdOfe~ zr762(yrvg-Sn7qpjorwRW%r@^d-eOj_kMqRC%5INw1j>(=QpgoLIR7hnE(cIT(_{tue&CN2+Ky>OM*s#QU&ufBPB|5zYHg8-AF zOSk^)SH_!G+8xfDFM7O?jfrt_)LOG#xqdgsj+2UBi;|v2zMr{N_xLW~7~cb4K73nE zW>UM)hkJvR1vnT2)`n@;c|HEhuBm1H%|`EQ+`@ITGs@T7ca(g7xzbif z-QW_h^GCV1N47mB=3UpeGB3%HSh^usPE%^xI@t$b*`<4xjn>ES**x94adE?H@#wdU zHZ_Y(jEs(ZdhSW>=QXxn_H&r&SzkK+` z6`fsWCxGNWKmMD07VNpcYn|T?p$U<DUQdHc%?Ek&PoTsXrKE2!b`q_@ZEMZd)nZ?x$G(5Snq4LMZ?_PTp-`Qrl|Kj&CXShBy>t6q8H7JLBy85}Sb4q9e E0O6^~cK`qY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-left.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..95b378880d02b20da5204ca8f789f333d3589548 GIT binary patch literal 1521 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85o4Xn6XD`Cp%D3vcxr_Bsf2HCStb$zJpeleoTcwPWk^(Dz{qpj1y>er{{GxPyLrY6beFGzX zBO_g)3fd$_#D> z2Ig~~E{-7;ac^(MX9S1Kuz$$+k?q_P85C5o<;H9d&b{JGx1MtmlK++lX*G?P2<-QHK>&q3qTt$J;1&aT|x zk^Go(&9Z6Psq-!>9(l^5mOibd*HBdKzGvm$+H1x-%wfT&KlJcjUH2>Dh3c2@NkwTV zRla;*wfdj*okI*eTN`8ZR|U=#%S&wV>yl$?n7rut1UpGkh=GGmBKg?IpEbXK&7XVz zxw7(cgE#RHn_oGwIRuK7PE2ddH3;#X@^ONgF$+ zP8I#~^(!O8t}|&Cc5e=z-~VS-CC^!Nv(GOR#P=#0bEPH}eijgMy=dEZHEZeSKCYbD zhND}W)9cF>*UotOwJLG*%?%qiEU4^R=ACeZZeZ8HzH5

9u%d2m70wc`V?WFFGjJF4MPpK{5Qt`g(txnUfzfY4F{1(qO zsXgWs&K}LaAd_thr-p|0i8bO6fTt?mW9?Hrs=D#WT7VaXkO2khb|izw|4y-kmmaIaA{v zUtH6pye^A6(hVnPss^je9+MNl;@Z|_tM_2`{d+Pe yGfl!`{1S5hoYi;Pz5V~atddnN;8d~k?mxz#9W@`075w1^6{()CelF{r5}E*EJc~~N literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-right.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..4e2540f5d8c9146f51065e362a2227d1fd902baf GIT binary patch literal 1536 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 S;^x_3CtTY|t6ak=?0*2_k~=~G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca6b6c015eb56f271da4cddedb39969815770f7 GIT binary patch literal 2896 zcmY*bc|4R|8-B(TlBG?EW(*OAu`gp^N|bHvm3?Ly%g_vlC~u<3P9d^oCp%?Lk?bQx zHTES#LXjm~-{bxIz3=z^ah`iQ_qp%;T<3SL^F){!>9HN2lEl| zTa3Rs0SX8St)~r?QTP@?gTY11PzwMmV_Ekc89|%H`?3uQ08acpAW`soCUC(6yt%cH zwc%BivzMo&BgV@KE9vj)4Mqcis)oO}qq95K2j+xz!4uR(RvTMHV0et0h?Tsdl%cl{ z))jyG77=T9%gEgMmbKvxdwLK^D1SBh--%J6e&|NR)m4cY z915*_=}!b`sli=+e7sReB$-T>B+E*A5nYhd%F4<}DH)`Uj06}VK?)%FIQmNvNP>S7 z=weCEM7*~T-irV`Oz7z3nz>i_kCdj++BkU50uA9S$<5K=OT9pX_6D|k$3eO)bcf4k+>K#%LgJg#jY`y<$-iAcw8HVlSQ*mK_>xY5T&`qOsJ2F55!N-0&;Z^gvTP{BFL0z&YpQ ze6H3HgIbIXl@@t33w3;1D>Z7kmyez>L7SNg&dtpMoXiY$ z{y&_$T@EI#5nOMU{YoAYW#%oy5xJGu!@`bHn~uhZ$@!I3#A)?_t7Mdw^TH>_Q$Zp|tG#cyd z?Ci7NwmvLi-OE^~W>=K4*U&r^Uo~DHxlripwR&*7Y5T4H%(s@2FX4gt@aq{a>TAk9{K5&ff1=6Rk7i;{>aOxatVW{CFbNI~BuP z>1+Kwp|l(8yHAKmJVZk_n4sP*Sq;1l9Qdw2kW+1#H zWz)knj-i_$bS^9~!A|`IwYHLeXujhzuR<*$=6XTo-Jn>3`5GlEA=c{X{X+5)GZkYL z1n@p>1%F=8_Sduk2fv=$Lb4lvVjq#6l{r7&|IEHPZ?^EkboTbgFHZ4@EYGdg@ZHm& ztKI2cZh!xw^pra-ct4Qkd=GKd91e1Cf{A7)PSh2L3AKiIU=Rx!T7*J%?K&g)7fz5n77k4SZ zYzbGynZ{39fwZ5Dj0{3@uc(Agr05YWY|*z-x%{H>DEC^CynqwC` zK7GTxaS=}a{b4`MK>aKTL9sy(aT+(;58kT#$9QBghu7==F~wF~HH$*p@>v=aS4p~8 zdU3HBB&(@u&z)=+Wa+VltC-?|FQToj!~1Y2<#?mfj}>^MkEHbppW@;Yvv{dK`HROv zirYG>*1h^OI=`-kMNtB{(*kWAj|pP=@Zkfqp`l?&7sh}&sta=>H8nLfHI-MtV8FFv zba{J!fT6cfbH{HaE;g$_#G=yt)8tshBx^8kfVFJwGa>U^#`J{cu$Ze4|8F*6&w z;iI&@)`RToiBza^%1yJE|FZT=ME#YO8;mbpN>SWf&b(cpHk>Q#K=S3ezLDI8E_wgO z6~EV}!%5^2G37XJidi8q8rOyY+$qoGiBov<-ovS0PKlD2 zVY(CeZo6OJpDdI7{rSTQ5>#47CZzc{-8e0;8%c{@RB?Z@C#x_<Hg_ zq)eh+hOk~dPXbfh@((ACWtbKH{z;(~2z)K)f^mya>Wl|>`uzvN)mp_lPl+!ASLVN^ zdC{9R`<-TU|2V}F${acmxPp{e5VIFS=GebCZk%pZAxfJPJR92Rx8gMWq9gAcDMmfA ziBGM0Tn+uzkYM&1`XfWeFbRQA{jQY&3C6qK`AShgVXZ8iPbmuh9^ zeLe3yW3SLS9)&CDrojzp?e+ntDB~&~SV2yon8)rHt}52k)^&V0b!CuTL*gkXIi+R*cGTwo+Q_j>wIP z6zT<(m($sY`>!UdyCBt!74=mBMz9VkggH<=`;)7%hYY=C?J|Aw4 gp8J<(c?M^Ldmtg&k4HW_9{$$qUo_G!({>2?4~?2i$p8QV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach_dead.png b/Resources/Textures/Mobs/Animals/mothroach/boomroach.rsi/mothroach_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..214b8942764c957cb9ae9e042e8ab0bb21385ad7 GIT binary patch literal 2859 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/leopard_mothroach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7d0bcb85e4ace38194b11bda7c27b1efbf7822 GIT binary patch literal 454 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dda6b92c8486a6657cee4ed1ee522264504884f8 GIT binary patch literal 619 zcmV-x0+juUP)Px%B}qgC7qFpI>+ARP*w zyEt_WqKo2SB@QBK5v0|@!68E(65GTo1VWQGA>O2oA*4;)&mlHxRLl(#9J~))?z!i@ z=ezIsat;_67#RFxOzi{`Lofq7U^?H_-%a`i;C}y%>EO8CzRnHAk(rlp`68&cdciv; zFV0~n)zTJat;8|Am7~@pWS6o$ln|I9SAaL~z;_KygIyZfF9tu1SmF7($E26j+&*!g zN5vPohFskE=qFeDNo)JF0bNKOkrQ-bSrU0s+vqs1w<-ZmdMDZ@pxZzu8Wt(1M5>zjeWT)VIO^XOO{AO>hr=O$-)P-LIVG8BSeJoA zdJKHpTCWdk769hvBPfc3(&vG_GD@EZMNycWkF@9-`~C(&)hla}S&?GCC4rq{qBVhH zUe+SB5>&mq;@6b`z<4fXs%~zRUs+|OXkjui#%`?wz;3O=WMGVuqJ{j*D%H(x-G{H^ z6MAd-f}A8}9%B literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/inhand-left.png b/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea511120b7ad05a441399e16426e7612e273bea GIT binary patch literal 1034 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_dead.png b/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..a00228f981366191c240c6b4c7eaddf6391ae624 GIT binary patch literal 2121 zcmV-P2)6f$P)Px-14%?dRCt{2ntx1{*BQq@S1w+za`D0i@1;d>Fy)6Rb2X(Cv(m1hF^nda#*wl# z(@HFp1zFb7q>-4k5j8`j&XCpaM_QxCAAc}n@Vc$e$WmJI2VQ}?c`MA7d)I>Q0>TBm zvp-(mbMF;_mmgi0?ENHfIOjd*Jm-0y_q;EJ=L=gJvJ5>}+v#w7BK>vm!Zt z%vh_touwud$L`&m)g+?isyah+5gDb;I z@E0~+BOxt^9d$cMNXy~Erfc+c_Hktx9GMO}<1JLz=V|gm^9eX$FBTCC<`S2>NCsb7 zQ7*@8_a9{GWr#~%#KTYj&H;O|_=)$}j9&%sH)3&QIvDc#mEeHJjwaTn z;!{_%!MTwG_TpJN2@Vou+nN~7>z`H8*wGXcyfrcUvGXTG(+Nm3#Vd{Q2S6mxtV||r zO%bl`(X)M5sohLA3W{^Q_20LAzei}QP=<@WFVo1YC zm>ge#l@vpoCi|LBK!?AZ)A=X({PtA6G}+gbfUoMaNcX&=blf&v zEf?9lcQ>w2E&|~CWVGLM5!^Na(mk*6RehGmFvlmX@H*{|qb#;16V?;XVp}rC0aM5; zU>q=ojJG?E5>|L!lYPw}seR2gqQX*zw-?S|Q0{e)l*#e<@WTM)<$^s1_V?AWJ-ceg zA3@QEIKQqEfZ?_rO!Ji|>-yNm(_h5!aa=E%PiF$)AMi6bqe=0ju@*zdqHH1@QJlg}DmR#*99Kq7C8g1#f9B0CO{%@DKRq zc*e>c*$xigTUv{^7ft(5njzH*^{MCOf;|d$F5k|O&rg4kk4Re-5m6?pZ|uYCdt`15 znx4dXdw*~yU`IU(>bGTsb0eqoPXK`rZeC-pd{8AXO@HqYC*FS>;kkqmZ3xk-WObXn zL~L`HjA@HjWuE7fvTi1)K((drsp3qm6zZ?o1NLI!Oso`I);*5NPe3aIBk&LmE3{{G zy6bdwbaZrdbaZrdbaZrdbaZrdbpH3qSh7qw;v8b4_Sb!Bg|*iC_`Lc>Rbcl{(>XTrD&Dhv<(opArB=|8R55@2BO#0|Nwv8sqgRA~;^- zA!mV56&AZj2LOhK0tJZo3eU5z?kxanDwQI|$-1}1MExX-RR)m0A)7aL9-dMn_EeXN z_S4PM&ZndI)qT#q`O69W+qb^W=K4HoFCrpPD^%k>OvkA=xGa$R_MP!UWh5}R%L4F>7ZA!mW;gAl0+z;eUC z0eC=$TyOebM@Z?r!{1H$?HX1sOlL)MI(bRoq~P!`80!8f&u#vptR%l$^z5W3VNZ3L z_}!^L%QYXq_dXHv3u!3(Dd#)?MytD>?Zw6PHar;Pga40#lK4E@0JtHPz=P#A76PyP z7-x1l3#23kz~fT17T?NTHOAQmSc%1sNcxj3R~4Q30r6R@0eG!^6G!R}k(s@o>z7VZ zyZ@l31gPQ*SMyn3+q#V-2Y(Gf_w~PUYU6Q0DTNt2pXW=w{EPcz>|AqQ1_+5Gse7z= zYD{rd4SvYyXUONrniwsO4EhG;71k3@EOr14ozDlJMg(A<1LirTrYw@$0aZ<+1vU80 z?DeFkERyz!AS8HzSnP!LgopU125wD^mT{=sp+^~$fV$FwD&C<9IZM~rsAFYYeL`0czkRY>bjxx*R4@zlT zt=qRdj#B>NF}%G>MfZaM}iltB^cu(~;2=>pzU50#q?swe- zcx>0n6g%`oh+7tS3i6M01g^rGnj*gCw&MfgC?rhG@493Y_00000NkvXXu0mjf|2-L- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_lazy.png b/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_lazy.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e41287e29377843f5ce2b619e5597ba670c780 GIT binary patch literal 2185 zcmV;42zK|0P)Px-LrFwIRCt{2nr%!}=@rL+(;~wZ7?p8nMhlGM+wkJKKPZse?P6GCyXm&kTDz;svV0J**4>8aTB-y`7^$ErI4?2+GvLe} zUT!~J?sY~~F5+g>^!}2YJaeDto^$@^p8L#X&IJt(4Gj$q4GoRyQQB1`mUb11kB*-w zVk@H9hA6fYWxFADr})05Py~42QYbd0?iAHr_c(NFf*=MM1>KA2svLX8PSJ@q%Sy;E zFy!--U@{VC)Z=!zS*){DmQ}8M^t$OupYYv=cxvHn=(*OzPv>sr5B;BzoS6*3=Bqz} z7^W4((|pTzEJr2r;kF#~@p>GW9Q-(W10VH#M%H(;5QYU}GnxSK{Opht?^M3Op(c>r zHBu1APJ_okArjEP=Hx-&f6%|?RK$Dy(z?d;(seUImx0cbG+De%+m$9|tdG|dZp#6r z^=ia}iUi0(6cs#7L}U_VWbv}_q5^eyU@EHD7UC3K=(=CU73u}Ramm4s%tH1R?_)=1 zA&yH909>J7bltDw6kJrVEmUP+RRvV9E#&NqIxI;M)ldte;<+3@-9V^#F2`ygink=e z*%fuFgLoQawJ(wG-oh7>yUA=F{C<7^{6rmHiks zi|qROWVDXLavv5<HBH-gOxrf;1m*AK5@v&Bri4B%L20 zqN?U&-afJc(tOgo$m?c6r|4vm0X*ErO%ERK(kVJgwI;CMo>0dP55IF)yj?Vb}edj4hH z^eE$j+x>j7=wQ?%@WG;k4BYO2?E0xtm4J+;nc{`;8A5|$?zMDNux>S8uNUvlX2wPy z;Jw+5*XyNV-D>W&bQ2m3b0K_&jHQ_~{&8fv*@xTVR(@yLTmeOVkF!Zhg3T3(T4%Z0 zr^>#nJ7j&qDt>!ddiGvSOUITthi~OAXXlP>%9=y(Rr8?XI^BT*TD#f-=#4kxzUQ7% z6n%_eBA+F2^X-hcpvW^d514zYcbgp0k|9nn=8QYwlu5q{Y=4a z%~~bq+Lq9hZBou9H~VPpzQG?I|9&oIAIX7+e9>e}WNt(~d2R>TkXFHGUAwTPCMxIq zby9-%h-WV&(OT@B0`zd-$ zvSG>gNnK|^w4ICcDUW602BU$XKS;&SBsOB3kPQHMyY6$b4ma)L zFbn6Qj8`nRD&wUIM&{__@C6@mqotD@{@!VQ3p9TIue}Lz;=ApqzGQ4%5-=DJ(HMNd zEb{`Eq|Bz~^Hye=7hp+vpp2KK%%-jNGAmzsnFCusV)^<7iiVNlF-2R_Y&{9H^?biz z;k(EcaJV7=x&D0Jnzc%NTnqi{vJ=Typ;tpgLqkJDLqkL3e~kYEO|&#r{9a+p00000 LNkvXXu0mjfL6k5E literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_sleep.png b/Resources/Textures/Mobs/Animals/mothroach/lunar_mothroach.rsi/mothroach_sleep.png new file mode 100644 index 0000000000000000000000000000000000000000..7f06bb3deb901899a439518e89ff465b5f74af44 GIT binary patch literal 2174 zcmV-^2!Z#BP)Px-I7vi7RCt{2ntx0b=^4jA+ak*rSe5nI)dH*dYx#9|RnlHUaz*c;{DJ&&XQEWn z*0gB|L2K<%wU-=+{-Ho>uZQ7`?WNa7Yi&-G0tTJ9QR&r&6@!b$}N!QE9>U>De( z<;V1oVa8p5F$kAS)A=M5Ugmx0d7kg{zVq&6o&gOF4Gj$q4GoRCQQA`^mi82hkG2;Q zu?6h)%FUpTXbMaw-E3O zjC#Dpn2baj^|4#OXMA@co;(LR*Z0;EV zZ2IK@`vEjILD3taOMSNQ*%RvDN9zf8WC7B6 zHR3@<0^}fy3LYjRGzl`Ycv*N+fw~!(jhan`I0PrU-px1z0|3~s*x8d-$id=+>`5!c ze#H)eGcbUzcQX#bNzJB0RrXb_fSOH(T+FD)92c@0>L5_OlvC##2ox{nWZgsY<~X>R zQLj3PXE9ax5-F}7-1hV^Wt!l&r-#XCfjnClCz>vhXUk$TS_tb;aqVEL?j=?BBh(DC z>6eq*HVNxJm@$!)4S#AZp={qFWlVJ?{2-@R+9#4dq_+J7ab{zh50lXXgSZ)8~^1?*ZnW!qF-qb_YLvEsv}{y zzz3_2Fx)rv#PPGCDgmi$)5Occ^8`kM+;8n=b5=UZ8QJu-H!(FaPEUIi$r;&f&PwNg zYcGM3AeV#ZNnM*Z?}sDvtwCINm-3upb@~+X{f=fO309{sY@GSlpep;SX2|k_Mf~QN zbnm^GoPsrW3E#+F&)z+|lrcx&t6{w12ED#v+Il(x7>G9Fy6>9TDzLm@5r1|nliuaA zY>1T3d3t@k8Z6*o@j>1>{tll<)?u>70&q15R;Q2O?r2fv`?-SKnZ8lXv96&%)1;hB zXz|e4dy_xd|Ggl~K9s`^`J%}h%hHhbYidD`J>7)c5$gNiu$8!g} zGkxP@%lpd^FLSsdUyKd;|444V(%#>Yue5!jTD*pahK7cQhK7cQhK7cQhK9!fBMb8C zXdx=WUzIOauf=C2;$h)bZC!q@$Tfet_^Pg^H9OC3<~Ls)2@$zpsTqP)9~9dV7iu+# zZIbX%`;W%(^Y83`E?;xHsM=nkI7~=OAa-ntQm%fzGan`is}P%w^IxW+;$@pez{M2l zt*|gA;ENun|N6sfP+5ApYM-+XEN+)RMOm%05t|kRfZyvUX2QryQ?fEn7!%M(>v_F1 zU->u!=Kq1j$#YU$sXC|BE52lIdwQhesL=p`@A{}x8$6!z?DE`GJ7wWZl9m!>)MFt5 zzt<0d!DwJHOIU^(AS|Fx%PDsK{WR_eQotwAfpemSUslx4DG62OCF1f$wG_R9Vyk9T zAt|mMkNF(L%?QI`@ww8ITd<^Ch%)L4cm@1kKL(>g$+8@T zFeWH%(RxYhNcLdP^iX}Kgrc`RlpQ!kRe6c(jj^h{L@YaSh@!V78|F-pRCNYK>!mQC za$6Q|FdFcC{RF&%G;uRJ(~mva)?ji9M99pKQk=IEhSc4)Ztt+GZL z^$hn7;j+8JGHfs!m@-W;h#Qb*MfnyW0QjfDKh2HqJH#j20El0eIh%F`d2D>5jT_x} z6ng}ueuv;xR@)$Mrc4uIu>rX3E{6Mt6diJ9`B9Xg!D9{iq7N`xV=)0&XGCY{rU7YV zkaj)aktOt*boU= zW0e|X=}i4FLKbgMiX}2+n~)6v-0OM3KTCecc}FvMyRT8;t7KhJ&!6wKk{O@EI=!AZ zySD)l80eu9=-U26*2OJjeP$xgt}3dlD^+cTGh;+&*XJC4uZD|ZZ1_V)eJkvt{v0Z3^+paUnXS#V%Kwk2U0rrMdOG zugl^A2Ks#XM}qiAf{ffBWo*dL*pQzO3mW-V)owc4u5zdUE{%2@SI z+885C^ig>H(2Cz;*(0~UzMFuz6`w@8X6iJ8X6iJ8vkSb7argYHX3ERDTgwhPWhl9dT4&utc~2zva`hM7`@{2j&hrm^iuZ+wSeUOj2LQk#ltPYN zG4Us>U@KeCKBHX`B83w7I{>Uk{RH aj$kkSC#JQdGu~$%8bCU4$)Re?(%mZN#zN z_K8QKg#~opRuqiyN?zz|b+d`ZkRswEZMhIW2?OOuRS*magL}|l3Stz>-8)ZqCF&~U zAc@>BzRAL$o$jt|tA4>rvFys~7Agkca3%>~hC~hHpg`p8sv#Yyr2dO;0t>AlhIm&OotWn-h) z(d9xRTet=cp68(|1H8(n#y=a91@S&c^{*;-Af>tP!QuF&jXXz%c71vmleYicmet7> zS>t%P9pJyme%k$2-sg*y^r?F3sg{$@<7llj7D* zpvLbee<>Swzzo*RFO0ChJ^UwYXQ;?`;O&!!M_$wQ2)Wn9fVQtqk=Y}_o=`T+%Vws* zn^|tl0nD73q7Re!`J7TPoF&ZGOABzIts>_QZy`E>dbbg$mUW)Vl2WBgr54xI@#t$Q zOXqUYC`P`vs0r?zzu_KpK6M@)Ch{(ga*lOs?3pDraN1%^H!YWd^vgE=U~#S^)heX} z*w(c5gaZ$ctp+W2E7v|$FSvcTrK@Ir=+ki{nqE(?oxNqwa96!7z719G6dMT0Hr0y= zHK6*VVLOi0fc|G`ZF&J38(HBedH(*sg%EM|8f`=fLsJFugO^06O^2@aZ{r1%JH)wF zkst3`v=f)Qqn+F*9(#l8GQ|*3(P(3-@!j45rcIl+5z?u6EDq*m4;bH8!c~WeVvim7 za$@MvWAtoY|8)l#rS6>K8OHaiPMD*0ezFv&LLk zZ6{PiLH4{;lYiHC60MSKNmEap7mbxZ*DR?sMIi{lTN+G6K&lV!ND6^rpHu4kYCBk? zMgp|t=~Kf-vfImM>sh63a%h6aMTA2tRfV|P19ukdhM?F~dzH~IO^n7I|A9q>41*b02b>A@m z0_PFvc88lc=L8l`z--7>$a$s7YuMoR(TajRo1UPlVXi6hRmo--LFG;n0~0@x`#hMk h*(KzER%r%I4}zwRfA>3%8((=iAar*)xgm(2`!7j3RI&g7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1923b5d59486b4830df142da82a6e6ceb7f8df02 GIT binary patch literal 581 zcmV-L0=oT)P)` z?!Ax54ATMA0n>p$c0l3qhqO=~Oqoq+C~AjZ#rXam7*guj8ZoUL0Y;1@bJ)8mrxvLu zH;Cf)ZQ%le0~v@VIcmP8dC>x5CM`Ld^)VXm0t9I9o9~|%ih-YA8-!Rcbv_= z{3{2`f!**v*?R2+Vmu(R_4QCTbE7}VQI{Ctv93|D&%kDITUhLL4biY`gc5skn()u* z{m)_tW2f@_CnckcBFBgvbp&w0V_hRL>@y&m#Z?W5 z3>F6|MIXg`y+6oN$2?JiMUKTR2P8|6OQ|i zz!w_>U!TpSDu1WyR&b(e0g=-}<*;p0Y-6gXKla_faza*%g**`sbrr+53Sf8OLUZ(Y zQ|{rJFdnTt_4PBWSxwe4rlX^*-Yn2hIq#E?QT!bRaU5o{!d-;G!Z+K37X z5(^PbBZ$~2NWj9vXctf$4>6!to{fqiiUuSeieREA@eY!JN>F0L1q50BkIXVIw>LZ4 zC)}_z5a#w{e*514y_q5V*7JRz(%hD$*?IWx1aKLUas}KJNO=OdMbJ$FHw99zfSUp- zPXM|B)~ z#IyTP1K)P;+a*L<(UPI24gG;INu6&v0bmeBxN~iocK03${Cj-sCLKE7!{U7Y)ONoz z{f)A#TdD8z^F%=l2Y_W4cvE~WxH}G9r0V>v=+Wf)BvBtY+$EexLyzMmy#FGAgg(rl z5I<$lWoS?TQQEVA8y!1yk_#Dd5-oy~@~H4a7&vmT5P)-=I|=7G+VIegzZfQ-Y7@&8 z0I*aXCpaztaLm;(_s`!R^U!m*L<O5Ucf zoIhW!(nNWZZC5cCKsqg*Ie4z*S0-mDyQYoMkLI^}-F+jzJVt-_LM|{^x9zHYl@sRT zxR#(get3+r0E>xYBadNQ0~*=MdbT+MY>gb3-7W*Tl(d!OGQifzaoO!MfJ;eRIW7Zi zjU1QVE(5rfw3XvBz}Cod+3hlbOG#TfE(2_h9GBgx&j4*WbbOZg<6@{_aTHGH@t z9mTBordTV0si7!j$}uQpnvRdUU**cGGe_-F`&!&I1Ez~t0|8JW<`4nStCi>0<-cfR z{2k3ze~OBf?iuwmfPD>+)nW9UP30o;ZS5VAc#{fpYysjzXQn<<;mTf4-vbu7;J0L! zi4QNL8fu7f?TsZsTo?@M$gLNtiAu39HRGxT4tU^#zpitm`1SzRXZh_wEmj=6wE_TQ zQk5;2J_uX5oDVOk;7jLm4OL^+dDZDSnV=OQZj|JGh{~4U>ujsP`h0M~$HEtOT;7N8 z6zXL~*dMI`c#sJ&|MG{aW=8jeKltFQ7*p$6@?#BLhuu*^$%nFUgR-Qpmc)%bjJWv^ z7gzo%yUTKXcnGF}>Uh0vP%8k3@r}&TPJu=?p2IdL0Edb;Gh7DP96b)(T?TNdXfwlQ efX&h4u>Cizv1fCsb1*3Y00002BR01_tI> zPZ!6KinzB?wizOhB6X{kR3uzH6;%$+J(Q``QMBZPyrT|Fu1hORXRF3CL6u9t$t72dH8Q7|Fo0u&hDvv zUw!|~gumAcW2b-0;r=worbwKjh0)U8VVc7^PKDVEbQmLs|M+Up)Q)k8Wnpqd&`Ex0Dviw5Q$Y-5Gqjlu5wzq_RQc$M(Xnx|L7%Kw~J5w)5Y{C{ft z!lS%mrz*Ji$W<@>m4Caw^ObS%s@9j!Jy-qu>3mnKQX=Y3@uOtfW`1q;Df)MdWd8Tt z?PYe)_`XlK5l<`omp<@hZ$&$@!d~ zuerZ_ny&dD;cWyHltb~@W1Y_7Cc z?Q^)%xY@M)&t(?Tux-M(E}lwTzP$d()$bYa<224%vst?L^YU5Q?dPwLIcQP%{=IZh ze`&}KmN{QGPONsgB)p;5pJ9Wm!Q02JjG5~f2>?H?CX9^mzzL6`yBV zY#{WF%`BpDe^kt!O2fjW%q!7Z$_z49^=tMn=Y87CqAK}li5zp`B;$FPmq*qaZvVKo zLWEgBLS*r_Ye%>2%9i#07xm&Pv*=Dig#^C+R(AvKK^ddJ)EB%BhbUc5oY&7#7l?il0t&>6~|)cr(Z57Wc{CGn4rVX za!u$!%L=o7q8!Eyj5lQ*a$fD0%bxs5rP=Po?Vk5SJq!wle{XV5;^$uQ>Cy62i60J@ zU#c&j+;v;Oul~qd$*fuJwLDFJiG0nIESG$-EPj^qa>q}}-`P9uG|Jt5g-Ut4Y~)%K zuGOdKH$}2KF`URs-C4=Wyu%}P>wE)+)l;87n_A8GhjH$<&fFRS^EtrW$KdJe=d#Wz Gp$P!FBc`zc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json new file mode 100644 index 00000000000..3629b336ee4 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/meta.json @@ -0,0 +1,60 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fulpstation at https://github.com/fulpstation/fulpstation/commit/edb232b692ec9f356ec554ea1971da552b9bc447. 'mothroach-moving' by MilenVolf, all edited by lzk228", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "mothroach", + "directions": 4 + }, + { + "name": "mothroach-moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "mothroach_dead", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png b/Resources/Textures/Mobs/Animals/mothroach/moproach.rsi/mothroach-moving.png new file mode 100644 index 0000000000000000000000000000000000000000..929cf998c8efb5206892016ae166a4cbde4c3542 GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/0-equipped-HELMET.png b/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..d80b402d6c7a3ec98b9323b92805520fd0322cd4 GIT binary patch literal 1263 zcmVPx(sYygZRCt{2nqO>FRUF4Zm#tfEE0fq+$EtRVbA(xB0y6;}nZ~&AG9w|IEV7Ug ziVtXl35h}+OT>f+mlzZn;elxuXGnx4Jk%_42u$NLr53lqRQ{z5%t{u7hFj`(e7M}v zcHQltb+PLCBu(!<=iKxAo!|YP^KgG(g%t2^EfMi;f7~gZx^_Hpb=ouad#@>}%>7T> zPddoEwM6Vc72EdO@=^**E2r+mSI_g+V5}2wzL1?DB(lG{(mrk6x95Wy+0ReKc#rS? zL}zwBFZ|b4b{sy#OD(zuAn-tCJrSR%YzOT=t~kjQ>}qg&Kf6aiqj znh1s>*sUf2wtaavZTp4+Nc6B~Oy&2>mz9^c9lY0CEP|m(%(x!kHKoUAG<$Mpa$aAs zzW8|C>DV_6Ks@Cxr|4G~(sHOP#<7+|gGzU6vnY365*IE7vbOgV**81jh%Y#;&+O3p z)3u*g0BjZuO>JEX4K%fNDN7bVHSMs|7L2kw_#Gi9{liNF)-8MDjny@LO7ZT|T-d z-*RX$r@q5=ZdyL&YrI~-s6sqrN20p?>kTggP+VjsF#J=_1fg@&a^YP3EMqsduf<>V zd=t}eq!mc`Svz3N7t0|{I?p!vB2uY{qzSc zd15}?onYu<1kb@AXY@CD288o*)_L%c>}K=Iy#Tyg-z?ti{EiEkF6Kla%3WpR!}{7qVRSA(*;z~q_hPBeV+pN)mizE=0^JK=-c3->!Vu3nC^4(tcjF zVI>%f(626}q3!6L>w(h2KRlu|v>l~iT}Ut#(d05w!U-dc1E5Yae!PRB(L0!I)!413 zoH_jB(X+sAHDR(Px%5=lfsR9J=Wl<#X2aU92AuB6kuCe|tL2ib_B6v_s}XCv05=!t9)jvnk$5DwOZ zkZAuvlMo+NEQCFdMbPj`?2!^a7~S?D7(_#a3@Z?EIOq95;(8z+3PaE6Npvqb4!+;_ zy+7~!d_Q+!Vq#+Quaa7s)sm5b29S&dwA9M1_9s4;VISCh;MdM+A|ba80k>bSLMS|yV%m) zgsypa@Ew4gKAF(`B_`+Y^ZxZSR-YgCtzqa00KNFaw1c}dGMPf13llzle+jsC?IM*% zi)^k6Y#H($F(R_qCB3*TTFDgZ#L`7v4iNyCLnM|ik}1@YMJo%_4wPIKi(UFV0lKL) zTEx;tM(uW%H+FD2M3y&p7`5AprHfP=t)cu31&GG?EVe0$Y`z9SBJAZvRoPx&#O;*W zUSH%yRY`=s0A%wuY*P}^_};)7Gu(lWnJiifdIS<-FK%bM#croWBJ3sT5s*b|kA4tC z|A>;2fYv<=9rOXr*Ld`%|KxWw^bCyqgZfbfJ%WBgyY=J#;81>sKf?}B-|lm&s%P%K m{CJFXxIe6=iHV8Hf6i~erL58R0d5fh0000Px&0ZBwbRCt{2+FwXhQ5*;G@5*Jv1|+7NT;&(eU(OTbsgm^&V;D?*kWh z&pr2de*1CHefeF05JCtcgb+f=?xRw2bEvJ1WuAKpCvP;qNW@fwr2&#-Vzg7b&~``ux# zMcl(9NL=~_0O;r)MyXanNAGafxDuk@&cZPXQX+|POoHgQv;23-$E5&zK@9-tZuh{T zD@J#_Cu>}ZWx)isz5#Bp8)|(6mIagIn3;-r1Q}U1!D{@1nUC-B_0O2qsKLmp@?X`JAofd5&+=ary00vv;csi*(C(}BimksTWc&O)g3nIin+!$=!(JzOuT* zqTkNyO$THp>9gq(484X<*vIW1aQX4Lst;g4R}%2q^ZkANAFG4DQYK@ZzwP<~iz5g>mpzyQ?@_tZ} zw*XQiiN!$?LQ-C$Zm(O>ODUH?e?;Z>x?wtQMW8>TitatSY0l|WKD>H#A3_pX926lX zWG0@A=(jVupQh||`+8%$eBo+H002ovPDHLkV1h4ajqm^f literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/inhand-right.png b/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..201ff942eb7d0ce74ff2e996edaa0a9ffd236fb2 GIT binary patch literal 867 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 b(Z>G(*f;-oaIt%X00000NkvXXu0mjfk5jMv literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_dead.png b/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..682a357082cf614cca153e559951c690c93db5ea GIT binary patch literal 1825 zcmV++2j2LJP)Px*+et)0RCt{2nr%!JM;OQdCvS&~Jw+5HTPoKgmg}7e6k`rZXf)WgA55x|#HeTp z;A;&{8&eWRlWRtH5!cepq(c z<#qSe4^8HmY}k2yo|%1S=ED2|27|$1Fc|+AEUEK}aUM_PdB%A>v82u?Xy*_!tFy zPHM8R*;&bnhPsAPWy_W?LnuyYwHu60#GKe^NP8~v@i_o{o_0hlk=!LtO(_ zrNyCJ2++JZE&^xj8j!HS5=xh^@IPolRw4&yhk&LQf~-^{Eo*8K zS3_1J2j_zpP5r74m8zXf$jb-4^vk<^eMqhbuxa1T*Rm9< z*DWGhi5vjH*&!g=cm!QNmuPuH>{7IQN+GXP^5b1qwx_76RJC&nG4qiCfNmjxm9>wM zZq3Dtin9QK6%}WZZq3EY+DCL*nE6Ol?OYPl&Mc?8ID?ps9E5OS#-}9!fQy&gkPy3+ zJ{K>y0T9cDaKL2bP+gp%%C_ny;Jn&HLx0z@Sy)kV7Pi7{Jo&p9w!&ATAUY{V+h`}jTUQML7}UqpK}%_QxfWDKfSfok0(%>t!d94#a{Dzr^$RGsUxTeM z8+#j`B94pD?1UQl0z?gp^)#Sr0?3PAWaY%d(e6jL z5WwY9Bl88)Q#!hTK-AV_~XBMe;Vj_Y%0T)i# zXgYu64wzE($T8b7EqXR`%yyVk^vK`1gVwol!iJzuP}TpWJ7wLrxuoi^k;>I(0sxh(&7^wWqE|lh)N**cnH=6O+LpgF7z_r3!C){L3lWN4p=Z(xgihGnqLp z3hR$GYI3ZmD3d&U-cS2E(X8x*;J1ofq^su=(o%K!p!DlW zZBBYMR$E>`oNXSYrRo%S^6$({$2&9AX?h07V+P05v|K%sZp}qaQKsq;ttrYRa_xb< zuaR~}`XLS8+2%oQdBLPMC!C?$@&Y31Z~`x55a_*2%M^ESQR0p8lD71*?!{fa(?{y_j^??#P z$xAjMFWG>sL=O3z%V08cFd2tun9tjyFzCH~5P;~|NF?n*@qzk@#;rgae7XJFs4~fh zWD@`|5EOkHLh?6%a~ZM{IY{G?KCGNk6Hs>gp3c!OhL{j8Q(Z(2QX|q`J#Q@)%laY} zeaP3Wq#;lf{s6H4Sffr-nn-O&_9?e1`9OWj+ad}nAo?y01+k;uuPy=raT1&z0-8O; z>zvQqq7W&_XB+_djO~iFv~DH+fRlc(&xecpZln>1K}rXNNHEaXjuZ zD5^0xiTxcT%l^q)k%VQbwKp1JxhjPp|GL zQ;TUjo8`(YQ&I%o2zhHMT2Fp8rZ@t4HGu>$w&-HPns0|U!GR!}9}F*%lB2g(+Y9+u zT6J*-p-17+F=!;+iaM`LpfF0Hp&R;Xw%Uo P00000NkvXXu0mjfkEUHP literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_lazy.png b/Resources/Textures/Mobs/Animals/mothroach/mustard_mothroach.rsi/mothroach_lazy.png new file mode 100644 index 0000000000000000000000000000000000000000..90613a5e2b6fb5b08488a88039594c27d92d1726 GIT binary patch literal 1876 zcmV-a2dnsrP)Px+4oO5oRCt{2nr}=S=N-pC4iFrl!Gk)K1PdBkFf+q40XbbGk~kU($|^-giik8N zjUrU1OM|j0iJpkaZbv}BGm z0ycIWdV6u)gH4UGA#2~*x^_z3+wjJh%leU-jx+7< z3fW%%1OVQlSaHdUo|kIm-G`5h;0FH{1)z7}kf>8v^&S9~o3a2UNuRv?C){uMt$qqLyz!;3y`@UF zm*)fE?G4b;s|4Fvn=R_8fp52(an>ny`-cNGv<<9!1Wa7?U}-oilF&PFh(eQ9l=luC z5=pSQjxur4lXBZ>tpVQN0Io6<`y6JvZ%vb3wBSS|u=D90{J|(ay#bMg$AuD9CWIpt znyh4oCq-GI$qM1GA(EL^@BnL4siZR)Met@Ri|$*~oVYN?dXogedXvP73uAQOn#L?; z;VLuX?G2za7}IiQIV=rs05Zdq?AlQ-erht*@^nZk0kQalQBGVKBiCSH|LG4{Z<5%5 z`U7$e22NZU!yk;M?L;!%Z};g2M}tU@;QmKS@9x@B&Yi$z@!Ped98k)oM=&@VOlkf@ ziV5iW@E+?n8R;2O9xrG2mhd1H;{2%>D9AH%{?rRR2!%Miw*-Kmktx<~GSczky=2X% zgxyvyKj(7c9S@3YcLJAj*mUA|CvaJmdB=l1=W=1Um8bM_lu`m_LLu_9l}Ddh%EDf# z=j`4R3i6a8UXW+x?A{XWg?h}AvJ&TImogIyr5I*%+k>|!l^3n~Bsgq3yu+hh|93y$ z;ZYnmrL(=`L7c@BgSRJBww?A0-P%+o$F2n`VgVeP;^%)|{mP%r{#<@Bh50!+p4o`+ zi#vQ3m?k4Iz9PFTaOVrU zd|Sb5XlQ6?XlQ6?XlQ6?XlQ6?XlSgMRf(2!y7_PQ*~+KzQrRC@=W!^*@J)4kR5vfm zMwE}T8M2hJ5VDxGZt}cTBOIyRlm%-u0I+O5!smZEnNS&ql_x?CJW;z9KRLt1)pN>) zhjT(T2GUB#vK7VF7yX(z`B_Ccp??T~_evO7nX;4PwU2HIhto|$tStZ9^G^ec;^f?> zS1yLvD!yzzvfxXsgdYAH0QaA-C$+nzGUPc}Eqe}D%ax@Pm8BB94$S;;Q4(%D>_@qw`kxbFBnux{2UuAKR9c#aY#kM)6By={{$`;#ZjItYomWCOn4Gh*{o+| ziqqX+k!vsr_4vhiK216&JDY1|RepaE3UO*@q1czu<@2L|66{tzmYSA@4gh#KCk_Yy z8HsB%7*Vp2NV!Vt%=^FIFRKD%bk<08=DH{ok3bNQ!5`+D=oy(}pF?>}#U`Qq%mF^T zdL^X>ftP+Q=`gp{}}~fg7(flu<%`Lp@zSKmK4;IG$?o z0587tsqV9@SLi--08oa$KNzLU=cm4*o}r8q25!7cU3ESAg*A+hwNdx%9!wi5DBIYM zq;JGoUP^SPx*{z*hZRCt{2ntx1`_Z`PyCm<)!(Hrz+C>N=;aO4=5L&(|Hpq?2@ToY3g1IeN_ zhV<;L#xWxV(Z~GO;gq^vEdKXrfak@ut?0}rB(uB3e=l2Vv9S^F}UOK zw9o!{c)r{rKb`~E{_}k$Pq^p#{`ma(exL92@Vvhukw_#Gi9{kvkHFq4wY9NQ1!!%o zR0Dgf)bGl+|8S-1KdjkK{=F1TX&d*Is~M_-r(hMq;V3;Lzrt<*1D5qX1xes$|;OU2#o!VB%&drLB=sSPZ|fTy;J50|4ya zgN$4{P5(fgp0AGLe&#q84m0*m2N>x(rTKO9KZa-FqLq?ILFeUK?eFzFHgU~a5C&kb zy30vI;H7GH$NnQCxc+}80O;=9C+gHzz7Igf`Yb?8()suPjPIQ*%fAKc-}>6*KU}H0 z%JKmSc1LLI)`D%Q$rknWz_&PTcxtt}y@L_zPxdW)28^5wV6Q(YlF;3^k3y?Mly~>- z6G^ap4>EEtV7TwJ)_`Dl1aGO8-EJG5H^#{>nsK55*!FZT;b?-c?ubaj<3bB66XH`8 zS{-D@M@3no)dBHuVJb7N-~m<`sbtErh~RBX7M(Z7u{$@g+NuDs+Nxl8ZlLqVI5s5< zZ>g1FcLY<8B`s$b!(Q(LATvJ7_N`^&(37E;r-PvcBomG%c7+T326KH zF00mC=o-=W9l;`4_VPFn=9|`MJ2CSxe7XxA`VA zPDW&SNp_dyXlrAoy4!6_x!-L{79Bm||7-Bc{PE?ViYflfw!bae=8_xg{|F`XT?H?Z zNF)-8L?V$$Boc{4B9Taz%(6twhoDs)ZvJ>$6~G1_1U=2l(=@N9RhGE6Lb5FX#`8}Dn&RZyY}PKuS8Bd& zIxyo)vVy-cI-d$h@oWc)rV8gZAunf95xzi ziWr?NTF8ev8J#Smp{9r}4x3P$=Cd{1rycu`p!==IF`u0|6VTdNse0CF9V8n_8TnaB z7`bvX3Z8Y!oH_=~kpNx# z0#F_#NzPN5qGLS~v!}n#>=D!Db0bM;Z>~|3rT6*z)NSfM2%ox6!IZY`!Cvn}d7xGI zmRjdb!XpWI^}{|>*U%VULt_Moqn!7*(jSV_ADU5TN4idl1rTPYWbZ)yk$?{QKLZdF zx)JocdfQ}l8!5NJ%8Zmz*Zn>3ZzVV!MUQ7L0)V1=Qng7-@_M|F7o2LpD$>$y}3r+uxT^fj()(gZG~b}20%wo z7;mYSfBbiPE8Nt~t&yS5%$O`o6h0^X3_o9=xZl1jXDy=~_S5 zHRaSkyOYqZljIjxQ(IL>-?i5n$S9_+zK)KbFyUxIIBqm}fEVBW-1Nnzi*z2}187q} z98J*C6Q-`dj)9C~`mViBZB-rlh1G;^ouu~JomkhDQ@YlVVs5}wRzhOZvS{#N@IBz# z>EEk8*HzZ$|Af!}KFFtce#b;CM)m4f7>K^dL@b8qhri(Zcz}smj8``1iCNIm6Xwa> zY(v2()81U8-W{Jx>F4ds_ps#T;LP@4`L*gfKQn)uOy yUw?mMZEIttI^W9see@%dNF)-8L?V$$QurS;y5XHi1=aZg0000U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/0-equipped-HELMET.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..d37e257de2de68b5364c3c66f2ba1857efe19d19 GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR0prCY# zYeY$Kep*R+Vo@rCb81d;WwAnVNoh)EzCuWTe$K(=4{I10Si(JB978JRyqy)B6Pzk> zyqb=YfXM#)}P>qlP_NjGhL&nu}_nM;k$0MT2ij~ z%>6ZTzM|!YNq_v;&D+_wy4rC6JnQf+XIH=CXLCuND*RnIHpF6X&+*4D{bfcnl8^rR zR{I<`=UregA&@)wxJLXIj@f73)Fvwyz7)E9`4pp)#)Jx!;*%x3C(4c$tvw%- z#mjKxVsYGR#^}G^jL(*_ZLxp%q;=im%S~_czi%YoVH{=YfLJcem zj1g}S2H{~&kZstf|Nrts`K_^c_{B{$=}MyZe+;(&2i97ZK(5GxapMV z)4O_pt^R&likBjX{@BI#U4^5SPvy+EFV4ch z&bl9JK5*pDfqRcVizOL^1-AW~zUkjgcLs|;Kg%m>&)%w1vGLeAd*M%y+#Ama-7n>!ae{ zzjiY2bq`%;d|(9|Flx+lD?8^`S221i{S94toZ$iE{{9E+`qh7$#WH72(-Gv`JvTjE z;{Ez5@AhfciuqhkU(R|mr0Yd1cdISyqKz!M`Fjs;pD)MY_4?iFOX&v}pWk}v@4Mf# zzBkQdGPu|rzW>PUY_%)5%@@c0i2)_$koBv+=gceqCo*rXW6RDdlIK62Pvmr9n!vE; lTf#~e1{}->V(cH}6I-9m*PqYc3M`2jJYD@<);T3K0RVtQH<17U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c6895b8f6ce1025eb70545ba437e1e553a34adb6 GIT binary patch literal 671 zcmV;Q0$}}#P)YAX9X8WNB|8RBvx=!KdMT0006i zNklK}ge49KiAKiw@gRq+xFJk1!1;C1J53A+}v&U9^P<%SE1Qf^-uCFGXF1 zz*`8ePDZmlNJ}qC7af5?qa-XGqyzcuW-<|F`yZm$X%9`PDO+CtzuWu$evjXW_y4~q zq?8^pVg2&^*;c$@6W=W+|^cV&s2Sgkg z&?|%-ky2Q#R_XKkR6dbNP$(2cv0f2CNC@e@eg=TS_|m=;7zi~1kbL#EhX63)KGw$Y8#IqJmLP!h4KIZ+?pMa_cZ6c=NXU2xP0@L>UsC# zIbD%3pOc?RCBKo@a{%Q7xHUWejsQ-VM)1xUmR)Z^F$}|C`e`?rHJ#bX8Pa;L{DAhp z3G~}596x)Ei;k13=R@`fKfnA!d)C0zaA$b|MMUuGC7ktjwD(P5udUs43Wi~j+t^@g zxRcE4I@537|8w|(0048bh%El;vy(G;eXXjNOw8l&2&fy<7LJzp9oUU<*4N>5X^cl> zD&G|elUdWrtge?l{7`_=exJP3eT|xG8<{m-<()2#t?fK-$6nJjl&Bn_wWV3^GH!`uJ>002ovPDHLk FV1mydGYAX9X8WNB|8RBvx=!KdMT0009M zNklt=%~d-n6r^=~y;O8-N=OGY>J;oM9i&q* zsFP$njWD}fmv*X_VBpgJ=-5gW&0r=*pELr)i z)F_I=>S}9|U0On+P$;{OS#0kBEj_@#t>sb3t>WdA7sd56=g&fMR->xY0oixG?53|t z5_{Ir0B1!7a_j5pn4iae#<(GHIRaXGfT>p>L6+q|Ynq1mgHBsF4{QL$WEuJn=+?B| z2XL&pnJxA#;NbBCI9YcXud`qA$&|3 zu9_OivJ6eru(G_2XkQynbq(4E=(=$Q%b!1@;b<$Ockb;zfc{W`sTWQolS~!Yye)pj zM@DgLc*<6z{h`2?2JO}~h8sYm+XZinzqpo3rZBg-!Udqw?Lv1XA;rS&j7LplxBxVH z>KOpc%q~cOTPwG=)8W9|sk9Uf_*gEVw_Vd1`XNLB1V8|ydk`7|AOHd&0MR`N4FM1U z0T6)b9)yMf2!H?xKy(j6LjVM@2La}u_c6f!)EW2(0I_g;v0!&3!R`NhW8IFRt} zU@|#jI(kzSg;^b=a|ihHW{`z$J}gd(S%G-Vs2b&RP{68|q~MY`qt-Q*8j--n_A2D}8eZuzFO=jd5IVcCE3YUZ&%4 z0njfBSUUnuo_fY}d~H@=AD5e5OMh8oyB)GQd-8|SPAO#<{+9ryga8PD00=;I4?;r# e1V8}$8{jwVG)SL{=7Hw`00002BR0prCY# zYeY$Kep*R+Vo@rCb81d;WwAnVNoh)EzCuWTe$K(=4{I10n6*4z978JRyuIb`F*#9& z{loic!S~kc3uibbZ`wHH>{s{M0ST-9UI)b)bG}TNY{k0Ui~Xjiz$=xh%LTKxuh4rJ zCMEGCacbY%ltphBoOChUKD}ce-{aW)?A-U;!sk!_^;fSs{qfE3e?L^mAFJy>AaVGA z3=^XO1LKEt2exuFFaS|S`hzGI2L>qy70;yHwQD2p-*C{IF8od5`n*urhD65%Paz^{I6btj2&Qd75V|3=|^;;`b^BFD8&efPNSLk}Q-Zawf z$467=Seps#9GyuEgV|Ge)-^nyJ6FeYOB=KLw}(Er6Zgda?|Ls^cfcs|=<%hhhZ%Ud znKs9~{gZ6_vt*@`Q)I(WPkU*ua|?GaWnHArjz0}@drUgw)jQ|8 z`rkFDFZTk2&p7xz*X!ow&ASp?nC>}w*nVeSWuf@!Yn32hd;RZE0S8XckrS8lWq(+( zbKbpCpf-TZ#WpDVw7`TN?U=+=4m120RIggU3NY_PVT&~e;AWKMI{ ztUsTgJl}OVuC9K{+h-wB!VOjLmc@lL?6SEV(Wj?0_b=O5lgRaaE6TKNZ@o{8N}n#u zIAvwFCc{(P_;~#(&mENHoNE+U{Wf-ZX`<_1G$m%2Z+rM8O^x+OXRi{Ra;tYU^XJKR z%S!W0-+6J&Vr=;1D#jjgYwfIwC2N;%-CD{VV8;AOJpNTe3osy0cWzzfc4_OhPq9<& ymfzM5*t7B?pX-ajFTpdA(k3uG_ZSzfo!|K1YksZbscvBAV(@hJb6Mw<&;$U;N0@5> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/meta.json b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/meta.json new file mode 100644 index 00000000000..1883765a4a6 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/meta.json @@ -0,0 +1,68 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fulpstation at https://github.com/fulpstation/fulpstation/commit/edb232b692ec9f356ec554ea1971da552b9bc447. 'mothroach-moving' by MilenVolf, all modified by Leguia for syndiroach.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "mothroach", + "directions": 4 + }, + { + "name": "mothroach-moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "mothroach_lazy", + "directions": 4 + }, + { + "name": "mothroach_sleep", + "directions": 4 + }, + { + "name": "mothroach_dead", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach-moving.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach-moving.png new file mode 100644 index 0000000000000000000000000000000000000000..34443bb7e3b075e867e7a9bd3b5c411365170a48 GIT binary patch literal 2371 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 PV}PcruF3~xSor?{jS+9A literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_dead.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..66a5903a563c4adb6dafac51036189de28ac9632 GIT binary patch literal 1831 zcmV+?2iW+DP)YAX9X8WNB|8RBvx=!KdMT000KE zNkl$J7(-a%s!AKQ8a#+@Icaxp?P1&p({= zp7);Tc|Y$@&hu4-5IoAJm;g)wCV+6q5LPn*m;fF!0ArJ$644e5KV5B7WZA^D6wz(B zbFJks#ouqeSx^AHIrJ7-sI9ahO^i+)PT{s%rL-VT3w+~&t4jI04AI(ln~evq8uD)# zfOM3-Xr{-r>dLdo01dq~0F#YxZMzM?!koz@Ow7REtx~b`D*)tkBM^cDkh6R-))))z zf46Dn2~Q-VcG;==`nv}LV0FnF?Aw*D}SYE z1?_*g(SGw5(^u>sQ~>ht>XJ2lxph14<%0sCv>;7nFPceGatb}&cQ|w8H0c==wdW1B zKarU`o2ckvv@|zSU3u2LwihOS5orX_> z#fl;l^HbS!_z&EJSf4kBHd`Y`gD~p9JTlS)exbt=l;5EK8w_<2MlDZKM73@k&UQG0 z9&tf`4+v!t;k1YDgGi{&1YiO%0hj>79Ya{n1YiO%0hj>79Ya{n1YiO%0hj>79Ya{n z1Tav6gs;th6w&E` zn>l~%IMAOySG(+V+3&G(!x0xPL7*c5oTFgx=3HVdLo@(#8cbU-pOUN%0Ho_ips$!^ znL7lZBfwpe;of*XfKA`N&Cfqv;`teq=yHN{nR) z;G6;x5fPfNO-pyU0PqLFSJv3)8sKZ?*RQq>wnh?wH{1Y76`7RHLGZhPUXs^-^Og&M z&zJ6?9oG@yO+o{{cZ7g;0X+o3CjjW*wxC}~G5W>LL7fF!zuzFhRdgY@RbK$~@xlGK z!hp^Jv9YmQrM2@DHD`y)>PP@)_AP=r%NLW9^^x|wrkeK$ERg7^-zMDODM!`WvO3yv zF2b_WWykx)n|JTt4UIx1Ha1p_8Z`=l>({Sq<+D|l1i)tPSBvTE1rk6Y=F5M+s?rXe z9)SOV0Zg4b6@UvDE?~7A9-%E|u4b%qHzxh4D1YiO%0fak-u$l?L1n`Ih_#f~% V;=P#!gX#bP002ovPDHLkV1i3LUK{`b literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_lazy.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_lazy.png new file mode 100644 index 0000000000000000000000000000000000000000..d44aca11b604a84e344c35509326d7996b6d27e0 GIT binary patch literal 1830 zcmV+>2if?EP)YAX9X8WNB|8RBvx=!KdMT000KD zNklXR?Gn6nM5>NWwEF=NlCa|F4EJ}>FVmj>-AC=2(T@N_%Q*9cM{RW-KMIRtw4Sfp4w_ zuP5rBh@_26r>NS-clde$sCZ*Fm9K3EK!1M2r#~5rZ3uwq1)=1WG4%IcB;$4mO0OSV zs+G>ae6n0y&qyysl4!hWv{2FF`84eQT7GIJ>KlPz2*AdrQ`Cw#R-^R#0c0Z&H5`<6 z<`v}u!A1kvQms_Jw%Kq`M2f8kP_%eHr;ePU!`Fk;VJBJ68Gp{I*jN2Um ze73!o1y3)Rbq;*IizO?U0nquEk3$UyqZ*2lV#AFgE*h-`B966nfZ+iEP`2R^Nt*uv zLV-YlnvL@S;tD{2e>)v^avoiX`~6xAYyBWzW6M! zSi_FWcL$U^9d^U94FQ;td8hhJ&L{x#i|3MY$5;+E93(q;x~$`A{(*T#d364Hfu{Py z0DN@xGH2WW7!m+&Y^};G*5L0`xP0~`jr)%eIBzs|On-&DTB}rBs+G^S*UGXbE0>}4 z`iH#i-ArOqEG(Ew#`IkLeG0W(J_L+SdV0nDF!WvR$^k!oVA=Lze;5)HARxAe3;ib_ zhvO*|fC<0^U;;>V4hfYBzyx3dFaabwhlI)mU;;1!m;e%;LqcT&Faluo=+Uy$rAwD0 zzI}w5+Yo_dUl3*MB!J9FUGA-^W?YOPZB*WCZf7XTct zZlM!cwDv*i8ddM}$+~d?pnd(UHy=IjHZp+cKVQwMBPW0x{s7!?k)021iU~r;x9e31 zb)1D4ku_%qTc6xaCm?o?=<|b{zcL>bfVSb{;(BLR4REhluoqt|nT%X?hpY$K+xu@ZAUl=0|4ml=tvL* zfXV}#IQr#209@IVn2~)yO0S<@|23Xn-wUMy4^Z!J!$EKo5@q?tb0vUB%61O0(i^A! z8WBL@$$L}?wcEd{Ss?*5)gP95)K$0O1B$QjUDDk)h4>Qs}KCBB{e|-cL zYkELf=m6d4+bMnJ>kup5=m-#YyZf#Aq>al2khZ&Mpgz7(VZlsBO_;`&o^#ZF`c1@% z(9kMSUa^MXe{Lmh+`U{rdy*f2?2sei#p_E@VZlsUE-duqlreOlZwG?*c{Fo?u-?SmiRx7u*c_}WP zERV%`h~pliSS0N8p<3qgy3SxSABRl7OaLYT6MzXI(K#ek|9b%c0z30{ Uy&WYny#N3J07*qoM6N<$f)id-Jpcdz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_sleep.png b/Resources/Textures/Mobs/Animals/mothroach/syndiroach.rsi/mothroach_sleep.png new file mode 100644 index 0000000000000000000000000000000000000000..d44aca11b604a84e344c35509326d7996b6d27e0 GIT binary patch literal 1830 zcmV+>2if?EP)YAX9X8WNB|8RBvx=!KdMT000KD zNklXR?Gn6nM5>NWwEF=NlCa|F4EJ}>FVmj>-AC=2(T@N_%Q*9cM{RW-KMIRtw4Sfp4w_ zuP5rBh@_26r>NS-clde$sCZ*Fm9K3EK!1M2r#~5rZ3uwq1)=1WG4%IcB;$4mO0OSV zs+G>ae6n0y&qyysl4!hWv{2FF`84eQT7GIJ>KlPz2*AdrQ`Cw#R-^R#0c0Z&H5`<6 z<`v}u!A1kvQms_Jw%Kq`M2f8kP_%eHr;ePU!`Fk;VJBJ68Gp{I*jN2Um ze73!o1y3)Rbq;*IizO?U0nquEk3$UyqZ*2lV#AFgE*h-`B966nfZ+iEP`2R^Nt*uv zLV-YlnvL@S;tD{2e>)v^avoiX`~6xAYyBWzW6M! zSi_FWcL$U^9d^U94FQ;td8hhJ&L{x#i|3MY$5;+E93(q;x~$`A{(*T#d364Hfu{Py z0DN@xGH2WW7!m+&Y^};G*5L0`xP0~`jr)%eIBzs|On-&DTB}rBs+G^S*UGXbE0>}4 z`iH#i-ArOqEG(Ew#`IkLeG0W(J_L+SdV0nDF!WvR$^k!oVA=Lze;5)HARxAe3;ib_ zhvO*|fC<0^U;;>V4hfYBzyx3dFaabwhlI)mU;;1!m;e%;LqcT&Faluo=+Uy$rAwD0 zzI}w5+Yo_dUl3*MB!J9FUGA-^W?YOPZB*WCZf7XTct zZlM!cwDv*i8ddM}$+~d?pnd(UHy=IjHZp+cKVQwMBPW0x{s7!?k)021iU~r;x9e31 zb)1D4ku_%qTc6xaCm?o?=<|b{zcL>bfVSb{;(BLR4REhluoqt|nT%X?hpY$K+xu@ZAUl=0|4ml=tvL* zfXV}#IQr#209@IVn2~)yO0S<@|23Xn-wUMy4^Z!J!$EKo5@q?tb0vUB%61O0(i^A! z8WBL@$$L}?wcEd{Ss?*5)gP95)K$0O1B$QjUDDk)h4>Qs}KCBB{e|-cL zYkELf=m6d4+bMnJ>kup5=m-#YyZf#Aq>al2khZ&Mpgz7(VZlsBO_;`&o^#ZF`c1@% z(9kMSUa^MXe{Lmh+`U{rdy*f2?2sei#p_E@VZlsUE-duqlreOlZwG?*c{Fo?u-?SmiRx7u*c_}WP zERV%`h~pliSS0N8p<3qgy3SxSABRl7OaLYT6MzXI(K#ek|9b%c0z30{ Uy&WYny#N3J07*qoM6N<$f)id-Jpcdz literal 0 HcmV?d00001 From c47a91200a6dedc6006c5c1135543b243af91323 Mon Sep 17 00:00:00 2001 From: solomam Date: Wed, 15 Jul 2026 06:37:36 +0100 Subject: [PATCH 04/16] added cecropia_mothroach leopard_mothroach lunar_mothroach edible mustard_mothroach Signed-off-by: solomam --- .../ghost/roles/ghost-role-component.ftl | 13 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 5 +- .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 243 +++++++++++++++++- .../0-equipped-HELMET.png | Bin 0 -> 1352 bytes .../mothroach/cecropia_mothroach.rsi/icon.png | Bin 0 -> 666 bytes .../cecropia_mothroach.rsi/inhand-left.png | Bin 0 -> 971 bytes .../cecropia_mothroach.rsi/inhand-right.png | Bin 0 -> 1018 bytes .../cecropia_mothroach.rsi/meta.json | 68 +++++ .../mothroach-moving.png | Bin 0 -> 3287 bytes .../cecropia_mothroach.rsi/mothroach.png | Bin 0 -> 2130 bytes .../cecropia_mothroach.rsi/mothroach_dead.png | Bin 0 -> 2159 bytes .../cecropia_mothroach.rsi/mothroach_lazy.png | Bin 0 -> 2119 bytes .../mothroach_sleep.png | Bin 0 -> 2123 bytes .../inserting_mothroach_cecropia.png | Bin 0 -> 4252 bytes .../inserting_mothroach_leopard.png | Bin 0 -> 4156 bytes .../inserting_mothroach_lunar.png | Bin 0 -> 4197 bytes .../inserting_mothroach_mustard.png | Bin 0 -> 4092 bytes .../Machines/fax_machine.rsi/meta.json | 76 ++++++ 18 files changed, 399 insertions(+), 6 deletions(-) create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/0-equipped-HELMET.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach-moving.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach_dead.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach_lazy.png create mode 100644 Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach_sleep.png create mode 100644 Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_cecropia.png create mode 100644 Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_leopard.png create mode 100644 Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_lunar.png create mode 100644 Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_mustard.png diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index a7ed4e68c29..f82718dcdbc 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -42,9 +42,20 @@ ghost-role-information-boomroach-name = Boomroach ghost-role-information-boomroach-description = This little mothroach has a chinalake strapped to its back! Why and how? ghost-role-information-syndiroach-name = SyndiRoach -ghost-role-information-syndiroach-description = You're the faithful trained pet of PDV operatives with a microbomb. Serve your master to the death! +ghost-role-information-syndiroach-description = Repurposed by the PDV You are the highly trained and faithful pet of a PDV operative equiped with a microbomb. Serve your master to the death! ghost-role-information-syndiroach-rules = You are a [color=red][bold]Team PDV[/bold][/color] with the agent who summoned you. +ghost-role-information-mothroachmustard-name = mustard mothroach +ghost-role-information-mothroachmustard-description = A delightful result of the world's chefs crossing meat with sauce. + +ghost-role-information-mothroachleopard-name = leopard mothroach +ghost-role-information-mothroachleopard-description = A charming result of numerous attempts to crossbreed insects with predators. + +ghost-role-information-mothroachcecropia-name = cecropia mothroach +ghost-role-information-mothroachcecropia-description = A charming result of numerous attempts to cross a genus of the nettle family with cockroaches. + +ghost-role-information-mothroachlunar-name = lunar mothroach +ghost-role-information-mothroachlunar-description = Someone left the moth under the moonlight. ghost-role-information-snail-name = Snail ghost-role-information-snail-description = A little snail who doesn't mind a bit of space. Just stay on grid! diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index cb5b07c177c..e2d50ff50db 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -575,6 +575,7 @@ - Moffic understands: - Moffic + - TauCetiBasic - type: ZombieAccentOverride accent: zombieMoth - type: Vocal @@ -654,7 +655,9 @@ state: neck - type: EatToGrow # Goobstation Eat To Grow System growth: 1 - maxGrowth: 5 + maxGrowth: 2.5 + - type: Puller + needsHands: false # Note that the mallard duck is actually a male drake mallard, with the brown duck being the female variant of the same species, however ss14 lacks sex specific textures # The white duck is more akin to a pekin or call duck. diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml index d53d68f380f..3bf3bf152f4 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -177,13 +177,12 @@ - Moffic understands: - Moffic - - TauCetiBasic # Needs to understand your nukie ops. - type: entity name: syndiroach parent: MobMothroach id: MobMothSyndy - description: Trained and elite member of the PDV, bewarned explosive personallity + description: Repurposed and highly trained elite member of the PDV, bewarned explosive personallity components: - type: GhostRole makeSentient: true @@ -268,5 +267,241 @@ - Freespeak understands: - Moffic - - TauCetiBasic # Needs to understand your nukie ops. - - Freespeak \ No newline at end of file + - Freespeak + +- type: entity + name: leopard mothroach + parent: MobMothroach + id: MobMothroachLeopard + description: A charming result of numerous attempts to crossbreed insects with predators. + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-mothroachleopard-name + description: ghost-role-information-mothroachleopard-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: Sprite + sprite: Mobs/Animals/mothroach/leopard_mothroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: FaxableObject + insertingState: inserting_mothroach_leopard + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/leopard_mothroach.rsi + equippedPrefix: 0 + slots: + - HEAD + +- type: entity + name: cecropia mothroach + parent: MobMothroach + id: MobMothroachCecropia + description: A charming result of numerous attempts to cross a genus of the nettle family with cockroaches. + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-mothroachcecropia-name + description: ghost-role-information-mothroachcecropia-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: Sprite + sprite: Mobs/Animals/mothroach/cecropia_mothroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: FaxableObject + insertingState: inserting_mothroach_cecropia + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/cecropia_mothroach.rsi + equippedPrefix: 0 + slots: + - HEAD + +- type: entity + name: lunar mothroach + parent: MobMothroach + id: MobMothroachLunar + description: Someone left the moth under the moonlight. + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-mothroachlunar-name + description: ghost-role-information-mothroachlunar-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: Sprite + sprite: Mobs/Animals/mothroach/lunar_mothroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: FaxableObject + insertingState: inserting_mothroach_lunar + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/lunar_mothroach.rsi + equippedPrefix: 0 + slots: + - HEAD + +- type: entity + name: mustard mothroach + parent: + - EdibleBase + - BaseMob + id: MobMothroachMustard + description: A delightful result of the world's chefs crossing meat with sauce. + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-mothroachmustard-name + description: ghost-role-information-mothroachmustard-description + rules: ghost-role-information-freeagent-rules + mindRoles: + - MindRoleGhostRoleFreeAgentHarmless + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 120 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: HTN + constantlyReplan: false + rootTask: + task: MouseCompound + - type: FlavorProfile + flavors: + - meaty + - type: SolutionContainerManager + solutions: + food: + maxVol: 45 + reagents: + - ReagentId: Nutriment + Quantity: 10 + - ReagentId: Vitamin + Quantity: 5 + - ReagentId: Protein + Quantity: 5 + - type: Speech + speechVerb: Moth + speechSounds: Squeak + allowedEmotes: ['Chitter', 'Squeak'] + - type: FaxableObject + insertingState: inserting_mothroach + - type: DashAction # Goobstation - dark souls moths + actionProto: ActionDashMoth + - type: MothAccent + - type: Sprite + noRot: true + sprite: Mobs/Animals/mothroach/mustard_mothroach.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: mothroach + - type: SpriteMovement + movementLayers: + movement: + state: mothroach-moving + noMovementLayers: + movement: + state: mothroach + - type: Item + size: Normal + - type: Clothing + quickEquip: false + sprite: Mobs/Animals/mothroach/mustard_mothroach.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: MovementSpeedModifier + baseWalkSpeed : 2.5 + baseSprintSpeed : 4 + weightlessAcceleration: 1.5 + weightlessFriction: 1 + baseWeightlessModifier: 1 + - type: CombatMode + - type: Extractable + grindableSolutionName: food + - type: LanguageKnowledge # Einstein Engines - Language + speaks: + - Moffic + understands: + - Moffic + - TauCetiBasic + - type: Vocal + sounds: + Male: UnisexMoth + Female: UnisexMoth + Unsexed: UnisexMoth + wilhelmProbability: 0.001 + - type: MobPrice + price: 150 + - type: Tag + tags: + - Trash + - CannotSuicide + - VimPilot + - Meat + - type: MovementAlwaysTouching + - type: CanEscapeInventory + - type: NpcFactionMember + factions: + - Mouse + - type: TypingIndicator + proto: moth + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: InventorySlots + - type: Inventory + speciesId: hamster + templateId: hamster + displacements: + head: + sizeMaps: + 32: + sprite: Mobs/Animals/mothroach/displacement.rsi + state: head + mask: + sizeMaps: + 32: + sprite: Mobs/Animals/mothroach/displacement.rsi + state: mask + suitstorage: + sizeMaps: + 32: + sprite: Mobs/Animals/mothroach/displacement.rsi + state: suitstorage + eyes: + sizeMaps: + 32: + sprite: Mobs/Animals/mothroach/displacement.rsi + state: eyes + neck: + sizeMaps: + 32: + sprite: Mobs/Animals/mothroach/displacement.rsi + state: neck + - type: Puller + needsHands: false \ No newline at end of file diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/0-equipped-HELMET.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..baaa3bcc55da58655cb3be4f4691946c8c2a40e1 GIT binary patch literal 1352 zcmV-O1-JT%P)Px)0!c(cRCt{2nq6p9XBfwSF()TUO=676sbwiEZ8idJFDet(8_^Yqlwx&*-G~fS z%3zeTo5^;e(2I!!86tyCTHP*sGw_35b&T5Ghztu$ToX%@rk~!s`aIE9n`E=JX>S)W{z){IdOOHCGVaZ z&zJ^UUB=*~nOc_4;#%;ke%9fKi3r=SUMcoTOsM=}^Anj#RIFc7m^L>z8=+8W*)iqX zS4(qqv#~`>q3m$;F#HThjh$pVLt}j%Q!{ZE9%jwLHb>>aSt(DOPE9)-!wYv_3$*&^}aQ5Ze1S2bTn4)FPWB`=n8?W@J- z^BIy^qN6Q<-6|uQCA6GQM_T~NELEjnkpmP(VW8FZT9JWPm!T+1rTP`2C<=OBXFQrJ zMnGm>V?3Hd&+Am9zbWqkkK4g)JjuI?izica6#oA&?tnx#%hXJq?)D(5beit=AX77O z64`83^KH5aD6s#7ps}^4hEzJupa0z7wCfNE1OkCTAP@)y0)apv5D4BdW#7_X%**%e zTuLRL8qaK~cews0d-1vc;-tRfT7i;{ujb`14gUo|`1n3IX*w zICfy~ifaXyeHL%=It(?d5ss<2?bc$pbj0-s=Ec1H(C`S?uU=uOaRF7!t%LciL)CH&H7+dLI6U%Ft$@=eFFS5o2Nd%100(<| zk!^N5J3F~OohCGw+c4n|i}z7zF30WZG@YHD$Tm9%dwPNLwE`sah`cR)KA&-B=R9Mo#z(bVQMDWo4u8eK#h+;K*Og6~m8=jc zq@Nr7b^LO9ki&)sEP6BGvZ5>~M5EEQT~UQ7ibB9O#h9vb<9P~zYnKOU@Yf+*q_S!A z6-7Yg`80YiM~&T%WR|K*LcR&wf&oL%>!dRoB#Q-qt#|bi@Hp~}j9hS@zNB8gMUL=NOmI%14#ov0@0#w4{ zF<7!qGE3Zx#5lTtH`?&HCA%Lbj58drSX5&fDdDIQL`vqQ%f^!~~*?5xf_8?7lo|5BAIv|x!^K?3f z*CA0qILh#Z%HEq%(|VS|RZA!oGVQ$?H4RUw)DMp0bx1s&j*&{IS2yvYJ-du1f30z* z|Ma>RK&>Tb`cE58{#xVEo?V;9W`RH;5C{YUfj}S-2m}Jbo8mtOr(V{#twb~c0000< KMNUMnLSTYaQ;qQe literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/icon.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..94864034c50ba6b32e1c954901ca2d4d6b714af7 GIT binary patch literal 666 zcmV;L0%iS)P)Px%R7pfZR9J=Wlut+$VF1N{o9^sRI)j@!w&040rwpn?U>ywes^Fh4ojQ2%w206l z@ZvEd>>zjxRFDp(bn;?C9W-^3M5==akrdKdYn5+pX1-mVPCIB&Gt!|$^E=MG@4fdu zhJlcfkdS{}Um{*o(fi56FQzx&&7L8)gk-a4h@G79!i6mvo1H^XHTZf5Dxk&` zR)+`ZtSlmI$^6P1gUK?wd;7RnT|swmAA`v<=2zAbwxqMN$m;L_YE1F=z&;o%9EG(}_HZqG$Oilri*7KOA$#l~RLKc{AI>9te z(s~|%iODH8GK**a3x8FhR02SWtF-7*(s~{t3jhdNAg$+V(W5AF^^D$+K%&z;YK*%# z6AGFVW%=NT_q?^{B0?6(;wjm)QA^$Ny0S(^*y!z*iCjbBd07*qoM6N<$g84Z% AzW@LL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-left.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..6476b2f6936a9dfecec262afd639c8a2667135e7 GIT binary patch literal 971 zcmV;+12p`JP)Px&g-Jv~RCt{2+D~YcXB-FcZ`vfjd6PF<&5Ke~2qum&l3}GdOQdKeFhX?$4<6hO ziV8dQyzY|ddx@Sr2s=z+c<>;S(8DOqf{1K*@i5}+GNc&;wI~)-l9()s`t$T=-E7U% zyicX#?*lJ{H_!Wf{^a*Og!}?9#u#IaF~-;`!~#AV4Q?ipwxhw#6btx-+O8(941K*m zs3~qdELYKOVzGda9+s=n6t~p4vN(Eu&>G-kqlrzP4FCXhq2>^MUo@`BGj{Zx0p>!@ zp($<*4QNhZ54ag_ISZ3Mr)aJ8-e$!_^(HaqO=?O!{l6zapIb z`yX3?RSZX?-!`^_3`;~U*+8a` z(&f0H=Bh1>Z}p?xH(>v7&(_x# z&~=@3U8ipM?8cTAlQG5^V~jDz7-Nhv#y&`PDo++Ebphc0m$g@0bzX_o-`9g)7p-+g zx7VukN~8}o=ylQ8dOrZzt_v<@ggpcRKR$U002mt3004I$Jzrl%lA>AY)bgf6ij*y3 zggu?wpjC&A1$=Znq1*05+8JP(&gU?8;GpcV0D!Rr2Qi(`;md2caCWE<&+5%(+YLt} z!iyrj0P&q6p`fW$3X}dCs;#zYXd%^B8fX_*@cmG^*EL}6etE!k^D8t#`b*%sZgQ`pV1(m z+sFBhWmIc*IQyNLUns+?ie>IQB}bwpx~F!8f@}I^NY{1x?9)$ZrM{*@3Kh))#dn6J t|C{84ku@?D4sQK8C(jsTj4{Rpy#eG~gief!+v5NL002ovPDHLkV1n>T&>{c; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-right.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..50b35d4ed4e3e50daa33cd72629f6b7fe7875d02 GIT binary patch literal 1018 zcmVPx&v`IukRCt{2+D~ZPRvZWLuM)?R6v;_CYb{v}qIQNE_Gln<4JoBfF$|MsqdD|2 zcIapWJLJ6VlC-|0JMGZ1LmL={?XZJG*q^`_7-cN%GT3mnxd&$y(gwDeI<*}CUHj{y z$hdK8YglG3{63(|^ON*_&(F`sKLLy}#u#IaF$N&yRcL(p5ZUQFK75EmUd2}5|5Kx! zUHcnU(T%N)iDm-}c@^5qm{3KxQ#sqBSx(pf2D4bkfYgiKLa90lMmi_dUJw9w3ndIl zy)cXAHbrk;$g5DZoOLU}NaqAqbi+5OVz*GjZlQ#w*doRJ5-r6R$!hZrs!&DuGn3P4 zjC4+Dma}dJ0KhNz9ta_?LcT#2)3bAU=iCgozWWrub29*dudiQ&SuA(l;Ah{Opno0~ z@N&O|>)&h$0Gj4(IDmOwB)MC_wXA|Kk3Pn`e|2HblSBRy;p*LDM-Be+g(>=da~pg4 zJo;oA$NWRM{Q0-7WlS0giuomqk9w*{%r8;WNOauJ9~lc$(n!z`Z@ffFBSDd|pskE` zdqAz#l{ij#W&Dw?RF4y08LKOCXHq+8a{4@OP94Vw_g%O-bsUq^=WU(WaEUC3J(M!b zm^|DEvs{7d?!k|L?;)VNaq)Jxqdo$+CNxTAOSpJDD=ddS6!7%o^u|tW88uBKP1C4Z zTPLW^)u|a7V~jDz7-Nhv#u#HSxc^c~?ooNY@@($)lo zM|3)(4b-*wzyBcuH`Woju@1K=AsUTh&Xa>#t~eUfELSk+$srnz+Ug%3(QU7krV}t4 z43MhGC|CZidu{yt&#<<(2Dd2T&-YFubtzJd0mOec06d+H-|nQU13SI3BP?e>p;Z76GiAu#0s!X*Z&}zZ2rt$uXh?|X}ALVWEtD(3|!qVn7KSY?#~?9@1un)!ke$C7?OJ&AG~E@vmgw~ zJ+}I~x?R{#XV53ht=~8@7NqcqPDvv{*4I(3qxvub!0WHQ+V+yP-Rp-(blXpe*y0~P oOiQuF7y2hJV~jDz7-P?R0*fMzWLMl(!~g&Q07*qoM6N<$f+bz&rvLx| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/meta.json b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/meta.json new file mode 100644 index 00000000000..f7ada210045 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/meta.json @@ -0,0 +1,68 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "drown by 51fishstack, made by 4_ydo", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "mothroach", + "directions": 4 + }, + { + "name": "mothroach-moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "mothroach_lazy", + "directions": 4 + }, + { + "name": "mothroach_sleep", + "directions": 4 + }, + { + "name": "mothroach_dead", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach-moving.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach-moving.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb4a3d255916012b0b6a1491203253cd76786cd GIT binary patch literal 3287 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..11c75d036be7e2f6e7c60b15d9affb50a10911b9 GIT binary patch literal 2130 zcmV-Y2(9;tP)Px-3`s;mRCt{2ntyB)=NZR8PVBQUi9<|mlZ3d!F(^U^DQbm;R-{VPq{1I`Y5AiPv?^OWNKr)*U7%txIw%BCArPfWV8nyOc4CKf za`wgH_J?=ZI3&dRfu?Eqks`lx-g}?t`}OO)^F0q37#J8B7#JA*pJJM9LRH~hRf;Ou zZ36%B_3QJimoHM~n8LSLZkT>v`HU)B1x}s6YMSi0sWQq={8Hv(&I0BS*9XV7CdFTzT{c`Y0;QM~*3oR)O2Td(3m?q6T`9q6z@o zao2;9X&W#$zRBUloNh)G1pq$!S$B?25 zYM@6K|2v@FORgzQvh`J2!_sR}P|8K(q?nSie#q=ecrl=jLE> z=A|5eQUk6BBPJ=TkRw|4M5L&~knavV@F6L~?7+v6?~X3sfp;-|C&vOQ05;P^?TsG^(D9g=9T+fJ9H z&|bHl?vSL5m!b;$nvRq0d15Bobu7+2L^1Ix7dRbMSC%5j6gEZLX$XjHinJrg6sjvr zDR4RxJ3(wqqtAJoJ)8I>pzp;KL$4>km@9G+U`V%vqfkCeOLd?m^ zz??q0yp(r9?4^wWC{dX``xuP3Nqm6YLlN;@DW15Ta4YWn`-ISw5B7=W$W5&V8XpB6trQil1o z_yK;upRL&u01h1dnC~y1OS&(Z3Dkn^53%uynyZq{t9g+B#B-KjkFfDzd3d9Rha2!ujBk{{C`j29h$&#gM}9 zZ%1cU{Akv!TCBR~h@868p??jY`6O`;sIDxv{Ly0@R@@$L# z2XHZ@P->r@@BKu0Lmk|@*9VYv4gk1yuMcmiV@m6#bQKuQ-UlB1gMR3h#{5U&qd`0F zOgGRv)n%s^|DS#Wfq+*Rns`mPR)DoQ^U!igwGJ?rDIGLgv{tQ^V+!~DePqT40dyl~%Y@P5HQ@k*)=cu< zxq1#-bHr55n6xfXSyrkpTu`J|mX)faDB#Y`(Z%2P-P7xT2aca)b7jdxCG-ksmO5SW z70xVmY}tKtWeEq4p9DzCVRUYzbDp*VHA~8pMAuf8QBmm70}2+i-X$`c&BZy4ZK&8? zB2L+a-6f)`3C|I&3Gu}_NprN$6v1NF&8R4JP+L`&WJb-BvI*mlYrvXSi`5kiOZB?E zU@>#{rZ1^EK^czgmDsVoGG~Owr$k<`$~0eSVYxG7N+#?s5!L0+44N;r@PbvQ@hOp4 z=8QZvPuu=lE?R@c*_%Gyl=w)T6$?vQvug3U@gFjvW=Wa4sHA|q!4PX#R?r`g=mE~& z^wAxTAzB4|y+PfaVoyHxb+s&ecRvH(jnsa28rS|)ST-~Ou&ygDWfL^<>$(!DSvEA_ z+JB1L&rUPo-N>?c_fub2OR?w2PhQKVI~?QeO`mQ`e>lS0l@;6#hFDZmz<4|1Ap@E( zwVBRc>%c!CbM9IP@sY$rQe;S9*w-6OdX-}eSs5brb+!6BTAzT{JD>?lg>_wNN&N@f zS^)KRwPa<8kIY4i4ACEs5Fd#%T1)e#wuerR<7U--sm*ls%wi_ z%L@L!Fd0@GS)z>$s||l&7+F^M{EIKyIX980Rw94)tM~O@f)5K*zjl9E7}NU=p8e|m zq&0WWmHGUOFCUr9kSufPa1-y%mFVgTarDe((|F=1G(e-%*K2Bd@lCv|YxrP(TsLBi z#m_$XAcqb&vCY=c-rNEGn5wTEIp|$R$E!8i%xSuy*89Wk>XawFJnia~O|AEbb;E4t zG&)|b;h=XJRbMyi^Y-Qru+7%bp~Fq=a}Tn`;@5?LFh7oWbqy^qzDcLAcV=B;Z|{1? zwCS}s_@;Ld@9G-r%|D7g+H_>x@mNw7uc4VR5fjC&HxJ-lUBfrMgKT>34c^}M&ZIG? ze3MdMUaoFW>!vi@%9gO3@y5SA7cjk5WK)3|H%p9O=kyAf+HpU|-UlB3nB!->acgVq zWBn}xBusF*TrIweMtB)ER7#J8B7#J8B7^KF(0YxNqbJ8dPx-DM>^@RCt{2ntf~&=N-pCUhH!&w&OUl^M=FH#H@iNh^&N{g$@czha#jhUdqtM z%SNSXApS`I80#jHE)ruP75*xeDs(SwVh}n&jVKdBWi2!ere+fvO^1mx5<&tFPGaMW z&!)FOvb&ll!RHX9ZMu(ivLD|)zqjYPv*q6x3=9km3=9nZS12zpS3Dk%lK7d&<59}X z%aw`d{NDs|p~j;$Rc0yxrQSS6Jph_2GnET9o|OHYQk~FLnW^|g@`UGo4uMy$4X123 z85e3iihnrDF>4{6eL?nmBpiZ;kR0R3_e4taU95}t;>)zMZ_?_1m{i`K_@1u8mx$NTJ)s!D(?;EU#tOk&CQYUdzF0aSGioa-AaE@7hwb ztGfWp7R*rq?otNf9b% z6f4$0zV2h7`bh-#NWL-*%2pJ?Xq0}p6E(G2j&xS{)Vs$Bx}b{(3s9Uw(z zKKitWLbr=jkBv9*YDL)Vk$3|yr5+oFZWkYY+Jh98b?*S(-ai` zux-arG5>ZC@r^rpbI&gTC~`RnjmTscP3Pmb>rec9pu%leEbe?nQJ})>;(VK*Vs8P0 z#mp<=f6`?C8geX7SI-@mRrzS|2_i`{u|OZ~fpAj)x&o|l+Z9Lp=yvW7hR71Fb{fY6AnD~M!%yMrM-MPDU5%Z^|%BgaO!_tt192dpIk z+UNHN!`$osm$nee{3i`AF$jPx(TXEo;4T)5y#?CCsjKG>xx@&K$P7wR0Np`6&i9}c zB}=r92J3QTPBSBlqlb4K%JM&x2|V^y6S53tv&ZmYVseq zT{lTlnPP7Ntv&Zmj&wo0RxR3OQEfTW1=<5))3qC2rnU~hDHM(%Nis7lW}75QCKQg) z*5Nl@yU}H84}?vL^OBKtWfpp~mC%T+C9XI4$<8w{FfcGMFfcGMFfcGMFfcGMF!=8y zQ6MqV`=>#o2xFr6sWK^nM4|{`qVd_=qyGs1vTNjt{t*31ak>Jqe3}FQa8wgtsDg=! z#(L3p@$SY3W$2wfG{>F1=92JbT50{(RscNB`^St`5rrqi%7wl#06T9=DFxP8Dk=a= z^6lJgvX|QJ!hh64FCssi>4^TE;z>%x}xtb1coX(e(CP z>~3sG>hrM`D)r_m2dBj;I{X1Eme-PLcMyLV$DC#!^ZM)G{hq7euf-pd+0=3cc|@Xr zTOIY`eD>S>s1N6}Zlp8mPG~F@m1F58+MNCNKJwl?gOD!rn-%l$IRvVIb&k#7`|gCX z42MIsoIOYPmKXTZZ8JA}`X}@`?upvDWr{5$g9niaeM2Lfafdwv(JIi>A3%=95iDlB zd2XcWXm=(YkyvLLV*QCf190Zd8CI@Z&6;)V*>CUTav-9s01Mn1)Q9sqaqK9k{`ju8 z!bjIE=2*;$Jwr?yiyCvjGaWUTbARm^<9p04P&>Cwsj2jl>lCS}^kGgjlbvPP9IB2I zUq!1xI3m$}^0a106-ubd*N5{Tm-i#6E5Byl`bTU5G@m?8I3hhZ7Kc59>?}LxG&700 z)Xps%b4!f78Y{o~b!ARzA@5#nCpRZc>%2Zc(@Sq4NPACEQ)7r$fzIwbG@m@pm7o0( zh6V@>46r2M&V{}(Yft}$?kz9qT74CD7Ze@-faaIxYqs1uIpEA;-mXKe{q{?g6n)X0 zm7+2gUYDj3P-DJ3Fv#jf75wdHFQ-2IB>4^iIQ8Ktrc2lSnm8db`SWdlt@^6tFLQh- zjjf+aydM>*o&Q`)$;0S3#^peS+WF7%epF=ZXA;MU(#Bk;Ca=bFzRgc>AjtDGy~we+ zCX~2z%|CAP029h6)cd8X%%_CH5l**;5k*03i34=?+@aW8@W{Laor9W)LTyp+yqS7? zeCJKcRN=NOYKOVV<={Z)AX}?)v}@G1yc$!nw}AGZQMH)*Ky2&qKbbxtk*YGEq8e5e zSyEKy&fNiQ(FXup@`EIHJ5exJ& zo`_m>7I*%nl1^kw0{pU)<7sFD)FOa>^@kqxNvV>cDlwj>7(%tX(3`C! l`ZO>wFfcGMFff=T{|4d08Ku&Qx`+S(002ovPDHLkV1mI(8lM0F literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach_lazy.png b/Resources/Textures/Mobs/Animals/mothroach/cecropia_mothroach.rsi/mothroach_lazy.png new file mode 100644 index 0000000000000000000000000000000000000000..b853ea0b76648c718689d06fdc4261618c1c2642 GIT binary patch literal 2119 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 IMT@Zi1LTrZW&i*H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_leopard.png b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_leopard.png new file mode 100644 index 0000000000000000000000000000000000000000..b52c27c87c2354274de8c4b074de1d046565e635 GIT binary patch literal 4156 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_lunar.png b/Resources/Textures/Structures/Machines/fax_machine.rsi/inserting_mothroach_lunar.png new file mode 100644 index 0000000000000000000000000000000000000000..760fc0bf0f89a85cbc11108e0b8eeec09ff80d0f GIT binary patch literal 4197 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 rTCc8{N62MTRk@1sDoafX5;)k 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json b/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json index e612cab9f2d..76d8b21792b 100644 --- a/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/fax_machine.rsi/meta.json @@ -98,6 +98,82 @@ ] ] }, + { + "name": "inserting_mothroach_mustard", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inserting_mothroach_leopard", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inserting_mothroach_cecropia", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inserting_mothroach_lunar", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, { "name": "inserting_mouse", "delays": [ From 61ab31b00682fec5f79d3d68e12e42a8b4cc6af7 Mon Sep 17 00:00:00 2001 From: solomam Date: Wed, 15 Jul 2026 07:20:11 +0100 Subject: [PATCH 05/16] added boomroach booms! Signed-off-by: solomam --- .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml index 3bf3bf152f4..b08e3f900a2 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -177,6 +177,22 @@ - Moffic understands: - Moffic + - type: Gun + fireRate: 2 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + - type: Battery + maxCharge: 2000 + startingCharge: 2000 + - type: ProjectileBatteryAmmoProvider + proto: 40mmGrenadeFragmentation + fireCost: 500 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 10 - type: entity name: syndiroach @@ -391,17 +407,21 @@ - type: FlavorProfile flavors: - meaty + - mustard + - lostfriendship - type: SolutionContainerManager solutions: food: maxVol: 45 reagents: - ReagentId: Nutriment - Quantity: 10 + Quantity: 5 - ReagentId: Vitamin Quantity: 5 - ReagentId: Protein Quantity: 5 + - ReagentId: Mustard + Quantity: 5 - type: Speech speechVerb: Moth speechSounds: Squeak From 7df2d68f1bdad162b775b34dbbf0196e64810c43 Mon Sep 17 00:00:00 2001 From: solomam Date: Wed, 15 Jul 2026 08:19:43 +0100 Subject: [PATCH 06/16] added explosion resistance to boomroach and increase hp/resistances increased mothroath gibbing threshold to 250 Signed-off-by: solomam --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 6 +++--- .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index e2d50ff50db..94e3ba89db3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -610,7 +610,7 @@ - trigger: !type:DamageTypeTrigger damageType: Blunt - damage: 60 + damage: 250 behaviors: - !type:GibBehavior { } - type: FireVisuals @@ -654,8 +654,8 @@ sprite: Mobs/Animals/mothroach/displacement.rsi state: neck - type: EatToGrow # Goobstation Eat To Grow System - growth: 1 - maxGrowth: 2.5 + growth: 0.05 + maxGrowth: 2 - type: Puller needsHands: false diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml index b08e3f900a2..e374cfd518e 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -177,6 +177,7 @@ - Moffic understands: - Moffic + - TauCetiBasic - type: Gun fireRate: 2 useKey: false @@ -193,6 +194,19 @@ - type: BatterySelfRecharger autoRecharge: true autoRechargeRate: 10 + - type: ExplosionResistance + damageCoefficient: 0.1 + - type: Armor + modifiers: + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.8 + - type: MobThresholds + thresholds: + 0: Alive + 80: Critical + 100: Dead - type: entity name: syndiroach From 7c9199935ddfa6b7e4cc756ef6aa09879b38d278 Mon Sep 17 00:00:00 2001 From: solomam Date: Wed, 15 Jul 2026 22:54:07 +0100 Subject: [PATCH 07/16] added Syndiroach - PDV aligned mothroach, can be aquired from uplink, has PDV radio and knows ashur language added more possible mothroach variations to mothroach cube added spawning rules to CockroachMigration to spawn mothroach variations at varying probability added spawning rules for artifact fauna random spawn for possible mothroach varients added mustard mothroach cubes and boxed them for chefvend added boomroach to biogen emag recipe list added mothroach bugers of all variations, bun and mothroach in microwave for 10 seconds Signed-off-by: solomam --- .../en-US/_Mono/store/pdv-uplink-catalog.ftl | 3 + .../VendingMachines/Inventories/chefvend.yml | 1 + .../Objects/Specific/rehydrateable.yml | 25 ++++- Resources/Prototypes/GameRules/pests.yml | 10 ++ .../Recipes/Cooking/meal_recipes.yml | 1 + .../Recipes/Lathes/Packs/animal_cubes.yml | 2 + .../Recipes/Lathes/rehydrateable.yml | 18 +++ .../XenoArch/Effects/normal_effects.yml | 20 ++++ .../_Mono/Catalogs/pdv_uplink_catalog.yml | 11 ++ .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 1 + .../Objects/Consumable/Food/burger.yml | 104 ++++++++++++++++++ .../PDV_Gadgets/reinforcement_teleporter.yml | 18 +++ .../_Mono/Recipes/Cooking/meal_recipes.yml | 77 +++++++++++++ .../_NF/Entities/Objects/Misc/monkeycube.yml | 31 ++++++ .../Devices/communication.rsi/meta.json | 5 +- .../old-radio-syndiroach.png | Bin 0 -> 1230 bytes .../mothroach_burger.rsi/boom_mothroach.png | Bin 0 -> 1340 bytes .../cecropia_mothroach.png | Bin 0 -> 799 bytes .../leopard_mothroach.png | Bin 0 -> 762 bytes .../mothroach_burger.rsi/lunar_mothroach.png | Bin 0 -> 794 bytes .../Food/mothroach_burger.rsi/meta.json | 32 ++++++ .../mothroach_burger.rsi/mop_mothroach.png | Bin 0 -> 1269 bytes .../mustard_mothroach.png | Bin 0 -> 779 bytes .../mothroach_burger.rsi/syndi_mothroach.png | Bin 0 -> 1258 bytes .../_NF/Objects/Misc/monkeycube.rsi/meta.json | 5 +- .../wrapper_mothroachmustard.png | Bin 0 -> 816 bytes 26 files changed, 361 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Consumable/Food/burger.yml create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Devices/PDV_Gadgets/reinforcement_teleporter.yml create mode 100644 Resources/Textures/Objects/Devices/communication.rsi/old-radio-syndiroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/boom_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/cecropia_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/leopard_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/lunar_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/meta.json create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/mop_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/mustard_mothroach.png create mode 100644 Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/syndi_mothroach.png create mode 100644 Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/wrapper_mothroachmustard.png diff --git a/Resources/Locale/en-US/_Mono/store/pdv-uplink-catalog.ftl b/Resources/Locale/en-US/_Mono/store/pdv-uplink-catalog.ftl index 9384c443720..3cb7c3d40a6 100644 --- a/Resources/Locale/en-US/_Mono/store/pdv-uplink-catalog.ftl +++ b/Resources/Locale/en-US/_Mono/store/pdv-uplink-catalog.ftl @@ -236,6 +236,9 @@ uplink-pirate-c4-desc = Use it to breach walls, dispose of bodies, break equipme uplink-pirate-c4-bundle-name = C-4 Bundle uplink-pirate-c4-bundle-desc = Enough C-4 to blow your way into a vault and out through the back. +uplink-pirate-MobMothSyndy-name = Syndiroach +uplink-pirate-MobMothSyndy-desc = Call in a handy syndiroach equipped with a microbomb implant. Explodes when seriously injured. Can use harsh language and upset feelings. + uplink-pirate-empgrenade-box-name = EMP Grenade Box uplink-pirate-empgrenade-box-desc = A box containing 4 EMP grenades. diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml index f2bd530fd71..5f57180c041 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml @@ -26,6 +26,7 @@ KoboldCubeBox: 2 # Frontier PoultryCubeBox: 2 # Frontier RuminantCubeBox: 2 # Frontier + MustardMothroachCubeBox: 1 FoodContainerEgg: 3 DrinkMilkCarton: 2 DrinkSoyMilkCarton: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml index 4d80303c55e..0a98b675d10 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml @@ -94,9 +94,32 @@ - MobMothroach # Frontier: enforced rarity - MobMothroach # Frontier - MobMothroach # Frontier + - MobMothroachLeopard + - MobMothroachCecropia + - MobMothroachLunar + - MobMothroachMustard + - MobRosyMothroach # Frontier - MobRosyMothroach # Frontier - MobMoproach # wizden - + +- type: entity + parent: MonkeyCube + id: MothroachMustardCube + name: mustard mothroach cube + components: + - type: Rehydratable + possibleSpawns: + - MobMothroachMustard + +- type: entity + parent: MonkeyCube + id: BoomroachCube + name: boomroach cube + components: + - type: Rehydratable + possibleSpawns: + - MobBoomroach + - type: entity parent: MonkeyCube id: MouseCube diff --git a/Resources/Prototypes/GameRules/pests.yml b/Resources/Prototypes/GameRules/pests.yml index b3a9b913fa6..2dd866f6615 100644 --- a/Resources/Prototypes/GameRules/pests.yml +++ b/Resources/Prototypes/GameRules/pests.yml @@ -87,11 +87,21 @@ prob: 0.005 # Mono - id: MobRosyMothroach # Frontier prob: 0.005 # Mono + - id: MobMothroachLeopard # Frontier + prob: 0.005 # Mono + - id: MobMothroachCecropia # Frontier + prob: 0.005 # Mono + - id: MobMothroachLunar # Frontier + prob: 0.005 # Mono + - id: MobMothroachMustard # Frontier + prob: 0.005 # Mono specialEntries: # Mono - id: MobCorticalBorer # Mono prob: 0.001 # Mono - id: MobMoproach prob: 0.001 + - id: MobBoomroach + prob: 0.0001 - type: entity id: SnailMigrationLowPop diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index fcb437145c8..50ab412792c 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -415,6 +415,7 @@ id: RecipeMothRoachburger name: mothroachburger recipe result: FoodBurgerMothRoach + time: 10 group: Savory solids: FoodBreadBun: 1 diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml b/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml index 0d463662efd..b5451f282a0 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/animal_cubes.yml @@ -10,6 +10,7 @@ - CowCube - GoatCube - MothroachCube + - MothroachMustardCube - MouseCube - CockroachCube @@ -19,6 +20,7 @@ - AbominationCube - SpaceCarpCube - SpaceTickCube + - BoomroachCube - type: latheRecipePack id: SpeciesCubesStatic diff --git a/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml index 6e6725c82b0..c6262accb10 100644 --- a/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml +++ b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml @@ -45,6 +45,24 @@ materials: Biomass: 20 +- type: latheRecipe + id: BoomroachCube + result: BoomroachCube + categories: # Mono + - DangerousAnimals + completetime: 45 + materials: + Biomass: 20 + +- type: latheRecipe + id: MothroachMustardCube + result: MothroachMustardCube + categories: # Mono + - Animals + completetime: 45 + materials: + Biomass: 20 + - type: latheRecipe id: MouseCube result: MouseCube diff --git a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml index 9a315d9e520..d1ebcd72deb 100644 --- a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml @@ -393,6 +393,26 @@ orGroup: fauna # Frontier prob: 0.2 # Frontier maxAmount: 2 # Frontier + - id: MobMothroachLeopard + orGroup: fauna + maxAmount: 2 + - id: MobMothroachCecropia + orGroup: fauna + maxAmount: 2 + - id: MobMothroachLunar + orGroup: fauna + maxAmount: 2 + - id: MobMoproach + orGroup: fauna + maxAmount: 2 + - id: MobMothroachMustard # Frontier + orGroup: fauna # Frontier + prob: 0.05 # Frontier + maxAmount: 2 # Frontier + - id: MobBoomroach # Frontier + orGroup: fauna # Frontier + prob: 0.01 # Frontier + maxAmount: 1 # Frontier # - id: MobMonkeySyndicateAgent #so lucky # Frontier # orGroup: fauna # maxAmount: 1 diff --git a/Resources/Prototypes/_Mono/Catalogs/pdv_uplink_catalog.yml b/Resources/Prototypes/_Mono/Catalogs/pdv_uplink_catalog.yml index 78d3dbd45f2..d46f1fa9d2d 100644 --- a/Resources/Prototypes/_Mono/Catalogs/pdv_uplink_catalog.yml +++ b/Resources/Prototypes/_Mono/Catalogs/pdv_uplink_catalog.yml @@ -1153,6 +1153,17 @@ tags: - PirateUplink +- type: listing + id: UplinkMobMothSyndy + name: uplink-pirate-MobMothSyndy-name + description: uplink-pirate-MobMothSyndy-desc + icon: { sprite: Objects/Devices/communication.rsi, state: old-radio-syndiroach } + productEntity: ReinforcementRadioPDVSyndiRoach + cost: + Doubloon: 30 + categories: + - UplinkPirateExplosives + - type: listing id: UplinkPirateEmpGrenadeBox name: uplink-pirate-empgrenade-box-name diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml index e374cfd518e..6c26dcd69c2 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -403,6 +403,7 @@ rules: ghost-role-information-freeagent-rules mindRoles: - MindRoleGhostRoleFreeAgentHarmless + - type: GhostTakeoverAvailable - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Consumable/Food/burger.yml b/Resources/Prototypes/_Mono/Entities/Objects/Consumable/Food/burger.yml new file mode 100644 index 00000000000..5e097ba3f57 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Consumable/Food/burger.yml @@ -0,0 +1,104 @@ +- type: entity + name: mustard mothroachburger + parent: FoodBurgerMothRoach + id: FoodBurgerMustardMothRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - mustard + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: mustard_mothroach + +- type: entity + name: boom roachburger + parent: FoodBurgerMothRoach + id: FoodBurgerBoomRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - gunpowder + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: boom_mothroach + +- type: entity + name: syndi roachburger + parent: FoodBurgerMothRoach + id: FoodBurgerSyndiRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - gunpowder + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: syndi_mothroach + +- type: entity + name: mop roachburger + parent: FoodBurgerMothRoach + id: FoodBurgerMopRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - clean + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: mop_mothroach + +- type: entity + name: cecropia mothroachburger + parent: FoodBurgerMothRoach + id: FoodBurgerCecropiaMothRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - meaty + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: cecropia_mothroach + +- type: entity + name: leopard mothroachburger + parent: FoodBurgerMothRoach + id: FoodBurgerLeopardMothRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - meaty + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: leopard_mothroach + +- type: entity + name: lunar mothroachburger + parent: FoodBurgerMothRoach + id: FoodBurgerLunarMothRoach + description: The last lamp it saw was the one inside the microwave. + components: + - type: FlavorProfile + flavors: + - bun + - meaty + - lostfriendship + - type: Sprite + sprite: _Mono/Objects/Consumable/Food/mothroach_burger.rsi + state: lunar_mothroach \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Devices/PDV_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/_Mono/Entities/Objects/Devices/PDV_Gadgets/reinforcement_teleporter.yml new file mode 100644 index 00000000000..bd02d1abf9e --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Devices/PDV_Gadgets/reinforcement_teleporter.yml @@ -0,0 +1,18 @@ +- type: entity + parent: ReinforcementRadio + id: ReinforcementRadioPDVSyndiRoach + name: syndiroach reinforcement radio + description: Calls in a faithfully trained syndiroach with a microbomb to assist you. + components: + - type: GhostRole + name: ghost-role-information-syndiroach-name + description: ghost-role-information-syndiroach-description + rules: ghost-role-information-syndiroach-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + raffle: + settings: default + - type: GhostRoleMobSpawner + prototype: MobMothSyndy + - type: EmitSoundOnUse + sound: /Audio/Voice/Moth/moth_chitter.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/_Mono/Recipes/Cooking/meal_recipes.yml index d33492a2794..381faed8878 100644 --- a/Resources/Prototypes/_Mono/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/_Mono/Recipes/Cooking/meal_recipes.yml @@ -64,3 +64,80 @@ recipeType: - Oven # Frontier - Microwave #Mono + +- type: microwaveMealRecipe + id: RecipeMustardMothRoachburger + name: mustardmothroachburger recipe + result: FoodBurgerMustardMothRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMothroachMustard: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeBoomRoachburger + name: boomroachburger recipe + result: FoodBurgerBoomRoach + group: Savory + solids: + FoodBreadBun: 1 + MobBoomroach: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeSyndiRoachburger + name: syndiroachburger recipe + result: FoodBurgerSyndiRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMothSyndy: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeMopRoachburger + name: moproachburger recipe + result: FoodBurgerMopRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMoproach: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeCecropiMothRoachburger + name: cecropimothroachburger recipe + result: FoodBurgerCecropiaMothRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMothroachCecropia: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeleopardMothRoachburger + name: leopardmothroachburger recipe + result: FoodBurgerLeopardMothRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMothroachLeopard: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches + +- type: microwaveMealRecipe + id: RecipeLunarMothRoachburger + name: lunarmothroachburger recipe + result: FoodBurgerLunarMothRoach + group: Savory + solids: + FoodBreadBun: 1 + MobMothroachLunar: 1 + recipeType: Microwave # Mono: Deviating to match the item description and restore the humor +#Breads & Sandwiches \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/monkeycube.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/monkeycube.yml index e36f6ccf785..d91c3ec08ea 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/monkeycube.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/monkeycube.yml @@ -38,6 +38,23 @@ price: 20 vendPrice: 2000 # Meat only worth 607 at a depot, but can produce more stuff from extra goats + milk +- type: entity + parent: VariantCubeBox + name: mustard mothroach cube box + id: MustardMothroachCubeBox + description: "A box of ruminant cubes: a cow, a pig and goats! Just add water!" + components: + - type: StorageFill + contents: + - id: MothroachMustardCubeWrapped + amount: 6 + - type: Sprite + sprite: _NF/Objects/Misc/monkeycube.rsi + state: box_ruminant + - type: StaticPrice + price: 20 + vendPrice: 2000 + - type: entity parent: MonkeyCubeWrapped name: chicken cube @@ -107,3 +124,17 @@ - type: Sprite sprite: _NF/Objects/Misc/monkeycube.rsi state: wrapper_cow + +- type: entity + parent: MonkeyCubeWrapped + name: mustard mothroach cube + suffix: Wrapped + id: MothroachMustardCubeWrapped + description: Unwrap this to get a cow cube. + components: + - type: SpawnItemsOnUse + items: + - id: MothroachMustardCube + - type: Sprite + sprite: _NF/Objects/Misc/monkeycube.rsi + state: wrapper_mothroachmustard \ No newline at end of file diff --git a/Resources/Textures/Objects/Devices/communication.rsi/meta.json b/Resources/Textures/Objects/Devices/communication.rsi/meta.json index 784e509c1d3..53570f17806 100644 --- a/Resources/Textures/Objects/Devices/communication.rsi/meta.json +++ b/Resources/Textures/Objects/Devices/communication.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris and modified by Swept at https://github.com/discordia-space/CEV-Eris/commit/efce5b6c3be75458ce238dcc01510e8f8a653ca6. Uplink radio sprites by Vermidia, derivative of other lisenced sprites in the repo", + "copyright": "Taken from cev-eris and modified by Swept at https://github.com/discordia-space/CEV-Eris/commit/efce5b6c3be75458ce238dcc01510e8f8a653ca6. Uplink radio sprites by Vermidia, derivative of other lisenced sprites in the repo, old-radio-syndiroach edited by lordsej ", "size": { "x": 32, "y": 32 @@ -83,6 +83,9 @@ { "name": "old-radio-syndicat" }, + { + "name": "old-radio-syndiroach" + }, { "name": "old-radio-urist" }, diff --git a/Resources/Textures/Objects/Devices/communication.rsi/old-radio-syndiroach.png b/Resources/Textures/Objects/Devices/communication.rsi/old-radio-syndiroach.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1a61a28a65d8b2a77c0af26cd49d212df47490 GIT binary patch literal 1230 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=BdgAk26#O}+xCp*=Gsq9nrC$0|8LS1&OoKPgqOBDVmjnt{Q_ zzM>#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTy4K+=V@QPi+bRAYlM`i*+iQ1(NBXwkzV}vlR#W$q zO*3RwOqz5S#fUAL@z-*v^L7RPd3%D!Dv4+>Umg!z-Ja^VU zXD#pc+q-(y?;kB$+`;$z!23_XYwth*UR!tmw@ttzmrna5Z_Cn)ivQ2~f9S}M9~CEA zQhY5GlszYLus<vlwv#DIiHVI43I|$CW-V0u zwK8J8Wn{1M?qJVJM!LGXN-CbGCYVnDeRo$MS0>+v`ZBg^cUgwN{LAZSJG?(B#bBdn z-yilh_HsjIbgA2N^MV%@>3N>6FJ7g-ku8l7wPiRMFy&wSQTnw2L-K=~ft<@-3HT9NP&`F6+M?DT0YdUR{@KjB9Ql2fE$J^(yPoEsV%+T~_$GdQI27XV;p6HY?vPpQz%wmCwOy?z5i- z>Jtk(I*;pfwk`Uy^G~ZRqr$A$U)U!8{_}06*X4p&Z1K1DR8-%|k(wj+@NMDerDwel zuawrZJu2h4k8{G@LxRT{Q@SS#Pk*;~{i+~e#kqdMv2o8%p1thyOuX{n3*K72`iI*O zq}-er&GcaQdtQdEU)d!r!WI900b01x{3`d{=TrNEZhF*aQpPL(o$rNKeQ&Mqy7K4= zx^5|(5A9uOI5EF`o~jU^;LP|C({x*Ak&i-5JaYmqZryClE4G|i;PE7Nvy;unLz{Q= z@2GfNTFBOw=s#C?a!h2RmBsQ(^IN(-=4HIuS!<$=Z+$AV`^{XxHN8_v_1}#7t!p*K T>Np~OL4}H^tDnm{r-UW|(N6hE literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/boom_mothroach.png b/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/boom_mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbf1ed941a6492907a290607ad555e6093eca45 GIT binary patch literal 1340 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=BdgAk26#O}+xCp*=Gsq9nrC$0|8LS1&OoKPgqOBDVmjnt{Q_ zzM>#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTy|Py zyEH?0clRN?7Y8+rnVtoI{i%JlsBw{oo6*c1t#8(4lNfk@%(8rSkG-K}UAO)6`9@!V z8NUhaSelrgzFhIN5yQ=#Y5BMA7hT!QzubG-(;V|?|2WR*!`BsCu4o^+v|>i%0`}yq z%RaoGTQ)0hJ(I$2u0sr)qQn~JOjDhA?uzcBn>LAVlT`lH?cZ2?qhH1I$zpE?nLQ

a_to~9$J)s^HiiN(Qg{`2SSP3EXtPmkSn!*;i%#;3#YXQhhi z7&9zbrL}5R*T#ph6_%%FTHcPGRt0oL&ZCz-FRmX7YFL(;$}5oi<9FQ_oq|HUdFLkl zNznfoB=xy_oP|gbwcaS%0%%O+)kbs{%&f% z_#yUC@M+WJh-nK}f7m4a*CnUbZ2NSel6`V})NUPmW0RYw-+6K`td|0c1jrfFhF*Sy;d4(D?XgaT*E&0p|4g}-s1Lf7|(o1v~c ztPCpqESfF`YaEV>N>y3(C}ZPAYm>Hlw-=OW@VIyPPV6`p_3QrYDE?B;3Xxc~mFqT7 ztKxUCc;b5hR^q#RybRCY-F3KsOHt+%(}rnP{z0+N150+E@mGB%#4w>>{N8_{-+@*= zoG|_E*U*cH6!jbTEwE^Dt=4`e#_%EYwJy-{41ce$|D^P*Jp)KHwK{9}`kGHrlGQQyae(LEr(`8e?<`q}pJn`y`@3{|Y4^__xRi1v&P%U_1T}S`AL_ z@9*26QFrFS2j@9_>}#Xetb6b#ltFcW(sEm&QwMzw=l@A~9;wCu|EqkUsaEal??O8q do7r6dF)lkETrz+15m`_X=IQF^vd$@?2>@kGLF@nk literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/cecropia_mothroach.png b/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/cecropia_mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..cc58a584c5384839f2811d81b6143c6918179fcf GIT binary patch literal 799 zcmV+)1K|9LP)Px%*-1n}R9J=WmfcHJVI0RlS{`?tJ7}ARBQ>;_i#ZV@UlGA>A`~LS=qkdSZu|?n zi2eY*5u}?y1&JiX8>O2J8JfeJrBf&~%!@6DgR!&2wlmx5V(jG1m$PMbvoAas=Xv>k zKj-(nLSA|OXBFf+u*;5ixNgCheZ2Fz8b5FrQePzjVD4;Sb!rJnYT1HhMcidaOBZ>HooelbTaBdzsB%>~^ActgvbMtze z;_~Y2!i^k68 zXFjSi09x$kj4W&iMIEqBFi~^$I@59i@0UF%dKg**(YVUak8eDDv%n*h$jsYm-o1E^ z+jp>+!tE!|xO=Y;H5TR7{Vt;Ab*IKQGzDU@K)iPV05uk6cx05lat9lU3Z7P5*+^8d zSMFeVWE3@)%1XR<0I^s&8-V>C534JSjEzqKFepU`1OiOfC6UzxlXXb~fdGS21c0&e z307AY+28S;6xKKZz>WP)00fhWLn>lWiXf{A0Aw}6pcKI&6(N|!jQ(c^0MOU;iSeFh z09tJ&tcMeNX|pmKQ= d=9O1ozW}nzMM7M#fF}R|002ovPDHLkV1lZJX(Rvu literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/leopard_mothroach.png b/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/leopard_mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6a631f471eafea75207e80a17142e8c96488c7 GIT binary patch literal 762 zcmVPx%v`IukR9J=Wmd{HYK@`V7+8UHJX{uR>K^m#oM1)d}8eQn6kP1?fc=F)Qn}^by zJ@qf>Md`tM6BMDBR`3!GX>CI+6cfCq+7c3Jei*X`MXA$6*wxf%H#Vi0d|_Z`-pu=c zXZFpT2Q}32pHX++g|Z#-`&b}Rxxbs&B_4Ct)6r@Mz&PM!b7>to6_pC9NU>~3sKmD{ zCK~&@IQsBKvkRAl&82k~Bd5AW=oX-ocl!FMi+lsXWHD)WC8q#zkW+{y^SVXUS3=&= zYNim30?^`p2!NsQK}jE=)7QtCtG;ZUTuT5zN2?j*fK%&dR{SVAh2!-wN=_lO;@512 zU{s5bstJfC^V;r(%fUfTp|QWKLayhLCTp+tdzVFC16Yil5=s=XxP7EzYb?)AUrDYTlC4b)kN8AtUkD+D==M$t+0KR5?VS=r2$9+s zVtB+SBwJf`^1$q?dF?x$hwbnJ@dgK5Cla3LVYW^r;tdYA!waPI<=6ccWIN*gDLCAd zLXspgI6fo1PhX3{@fjgWl5n^uOLkw?OgPcD2Y}TK8>_PzoTFqjDGq)dkY61YBJx<{6^#Bm}&!A+J#NrW@Y?8Qt27sYQ9$s`tb^EO7HSDn)d2@S;=0bo^ zAK#b!Z>t&Hy&kegnJ4=%i&s&{YglnT@blgfySv|Mv6?Q}Gie2z?JhUIzO8;ea9#wU sB_tJU0)l^75tS2i9@nV}Yp9`yUkb%f7?@7;od5s;07*qoM6N<$f=|s~Pyhe` literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/lunar_mothroach.png b/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/lunar_mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..78aaac09a9a4b59e4ea8d6bfda2cf24718acd4d5 GIT binary patch literal 794 zcmV+#1LgdQP)Px%)Ja4^R9J=Wmd{TUK@`V75FbxFEG_V4s1!fAZZcTJCH=;qs4_B zxpI-{`%k7_oE1#AIve93&_g=fs}a*? zjLn$qW8VNW6`#eTFKo_UoE1buI!CTtO#1ZVtT6o+ec>eki~$n+WJ$|6gC;-%FUOJ+ zC&m|jVV1P~B>z3aTT?t}93t^cjIo)d#J}IOCQG|OW|3<*;j+VKj-4r8-vux(w`wr@ z26C$Zp2N~2?7rSgr}qVJ)i9GUY56HF0p(T=I=wIGzTUcLY)b%Dd3NSb^w2vvfLk@_ zo8B@(5)GhldJDH|&^tK5+=(8l^6XZ^@2%m}55+q$GqQt*I&@bx5bLlE;l>@DWE9EYtYa96ImuUzV z&~d+s&DeJUHe=uExZgxWumJ!3GSRgSR?1zL;-*yx)Rm_^d$dkPVKL`E!s931rtQ>6 zjfK?!ukYUD!JX7Cx|`BE4KF)vyqy(l&z_G%lpHth3#$P!lvI6;>1s;*b3=BdgAk26#O}+xCp*=Gsq9nrC$0|8LS1&OoKPgqOBDVmjnt{Q_ zzM>#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTyARZ=s3VtrpL$v#q;U?kq< zVUW34V@ZO*?iov3%9}2vmINEHl?unQHI@sBRT(y|m~iOCLII_}8%=s2y7Wo^yIb}w zle2W!irTqrch>HHwdn7Im^t5T_kFKCckZ<06pfGlny2+nJj!x7ziw}wc3s>>_DjcX zzZLaelV@1)t3+G=*fPnvzZqTGCW?K!ZIc_5Y#4m=s$15pxi4OSQxkMCYnj5){L^!N z^QN7m3}?hPzgTT3+K}R-D&pzUu5n)P$)O)lb|36#kl9rs*1+YSe$4g&P_0~b6J^H*_K(bc#W#biwQ`e>oFWN5sN8{UKflG`|6I&{(?%s1TS{8Kk z>a>rSUw>Q1vzO-*I#h2EJ zef{uC&G<0i%9}w-MKjvN%^3~$7A%-MpH1Lvk~1(J)_)d$+v($eS7T{6sO<4{^>bP0 Hl+XkKeXPx%#Ysd#R9J=Wmd{I*aU92AlNOuLGj%wJ+hxfx3fve`4U{QLq}XA3Q12arpl)8g z^cU=A&_x2Z!&HzwC=sF5P+3WcibOI}kY^B^u01|08o3VRd2*@wJYsa&8=k}S{d}L# z`}KT3-(OHxS^rt4vwqm-rtoLm8_9US3uiU%_f_C^RRJJ`npmA!1P%&DK@1VMxhbf| zVvP+;OMveSD_XqZ^RPOx$oSfUZV24~s=2?f8PnP}0Ja*N7MC+J0Q(u4L^7)zqQZ!| z*HwiQTL+-Fy90oW%{NNk0sMW<^!qA~ohN4k0Pwo15JFAbdwO;bIV1C9@jY@zCOtc+ z#gy2(Hb2e{Ad$>!e_!x<*w4sVS^_0QU+{TK`kyPnR@$m1RY6iSu@YmoJ(0|^mA2~2 zYiJo3lNKS=k|?qD664?f^y$=D`tp&h@H7UQFG+%KL2JKM`|Sk4qT-T5jnl=05OfVC zPxLvp1YJW(Q)jD#k*P7_lA@V!rL9LE6)G+%j7*Ku+3NVKIT$Fx&hjwfkdNuu8gU7N z?$S}%N?RFUI{*~IAs;)-!@Bb70x(sIyo>G9-dIg3irCN)8Vy| zQu55lcCj{yr{>nZ3RI<(JOk6)?3g`l3^CG?E^P&S2Ou4MSEj49bOxA3vacUTKmbB6t}Ma!VjBRUS`u+DNPEUT=tegQncDexLWD60Sf002ov JPDHLkV1fkVZ1?~G literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/syndi_mothroach.png b/Resources/Textures/_Mono/Objects/Consumable/Food/mothroach_burger.rsi/syndi_mothroach.png new file mode 100644 index 0000000000000000000000000000000000000000..ff5eaef9ddab3a1083b1e1a43717a8530ba48bff GIT binary patch literal 1258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=BdgAk26#O}+xCp*=Gsq9nrC$0|8LS1&OoKPgqOBDVmjnt{Q_ zzM>#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTy5Zq0V@QPi+iCtDlM`i*+gD9EYdKeK;pYVk9g*Be zj|7z{BnoK0N}P1@tWC%9FCr}$Je&AB+pXL>ic5H`S3#NQlT`1028*t?EK>@3^gK6I zMYo>$K!#D*o+pzTZhZILVN-WjZPH<8^@Vkx8vfccEMIqxaY9h2U=eS@y)f6+sy~m^ z3iYWmGqmn}DUo%qGyDA!kxBlKj^DAFBhclAd5q=h#dPCpj+*N^^m^SkGZ zRo>2SK&JDntqX28++Hni9@>+$e?vQmcH#8n{kK<#m%6)cZoJyc5WOrZMsB~sqCG-e zH=KT)emdmLD<_2|_Cki`FQ5IXm3&Z8AAaOZ=FFZuF9WADUMO1szTc{0PSjVJp8BV%JT-K;F>H4B8!8Z5h1zJ2~~XZgihF1}hIMGUN!ks?#)FWj=H z=b`)g9W{@at*HF^g>ze<*)*}aYjoE=h`Z1DqnwTF)20=<8zxPj?f!SIV~JI4h2+76 z2`7(Vzxibi(D>f!TJ>d&XJ-dIbo%T(ZT1|C-LgyW{8yT``S!u0$&~By@Fd z)774s@L;FfWK+v$mt$VbC~8|J3r1nd7%^ht>3Ue`K&OpRjqMBeZ(2Q(Dae*Bqy%c4D)58UFCB`%wB;m;vZkvA6k0H zZ%&*$vC~SCFQ-ZyBwN$yYi&iL{1Asm7zc^>W9L tUHrH@bk2Um1qGM3+sQp-;S|#N!?r=wT-`ikat^4#@pScbS?83{1OPgr5A*;4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/meta.json b/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/meta.json index 14b58077945..4cf74e9b5bb 100644 --- a/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/meta.json +++ b/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "box_poultry edited by Arimah from monkeycubebox from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi. wrapper_chicken and wrapper_duck made by Stagnation for Frontier Station 14.", + "copyright": "box_poultry edited by Arimah from monkeycubebox from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi. wrapper_chicken and wrapper_duck made by Stagnation for Frontier Station 14, wrapper_mothroachmustard edited by lordsej", "copyright": "box_ruminant edited from box_poultry, wrapper_cow/goat/pig by whatston3", "size": { "x": 32, @@ -28,6 +28,9 @@ }, { "name": "wrapper_pig" + }, + { + "name": "wrapper_mothroachmustard" } ] } diff --git a/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/wrapper_mothroachmustard.png b/Resources/Textures/_NF/Objects/Misc/monkeycube.rsi/wrapper_mothroachmustard.png new file mode 100644 index 0000000000000000000000000000000000000000..8674901d0db40fbbda1e3ec878c11240a7cd8bd9 GIT binary patch literal 816 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=BdgAk26#O}+vs$d?-7nda-upao=e05J$$3Z4u!sy#C#q9nrC z$0|8LS1&OoKPgqOBDVmnz{b9!ATc>RwL~E)H9a%WR{j0%{pt#tDYok2roINg1e6A&sHg;q@=(~U%$M(T(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i z8ESw_YH@N=WpeUOa4p`HQA$so3se^F*C&=nvn?F?yX^7t!=G*L$V#*&O8k#p92eGG6{%V*YkX3nx6t|f`E^@= zr%pPk^0DCN)E$8?pPzAO(HhYxa(0a=09a-j|x3wzE-qG<)(fvBs1=n6ZKEs){*6u+5 zI_K)f?H`(teyz+&3|wm=BF+_}&9`ksg?QMe8l|Wxn;m_bW#qZu@rLoaeAXPvHIb75;Pn6i-S3rA|**KbLh*2~7YNU^C1B literal 0 HcmV?d00001 From 314a1dcfb69062951f6f9e09ec70782c13791036 Mon Sep 17 00:00:00 2001 From: solomam Date: Wed, 15 Jul 2026 23:37:09 +0100 Subject: [PATCH 08/16] pets including mothroach can now smoke. rejoice Signed-off-by: solomam --- .../Objects/Consumable/Smokeables/Cigarettes/cigarette.yml | 3 +++ .../Objects/Consumable/Smokeables/Cigarettes/packs.yml | 1 + .../Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml index e13974561e1..6502bec4f65 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml @@ -11,6 +11,7 @@ tags: - Cigarette - Trash + - PetWearable - type: SpaceGarbage cleanupExempt: true # Mono - type: Clothing @@ -39,6 +40,7 @@ tags: - Cigarette - Trash + - PetWearable - type: SpaceGarbage - type: Clothing sprite: Objects/Consumable/Smokeables/Cigarettes/cigarette.rsi @@ -77,6 +79,7 @@ - Cigarette - Trash - Burnt + - PetWearable - type: entity id: CigaretteSyndicate diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml index 64f1992f832..8e3faeb422c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml @@ -118,6 +118,7 @@ tags: - CigPack - Trash + - PetWearable - type: SolutionContainerManager solutions: food: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml index a831c75879a..a9b0d306fa7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml @@ -14,6 +14,7 @@ tags: - Cigar - Trash + - PetWearable - type: Clothing sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi slots: [ mask ] @@ -48,6 +49,7 @@ - Cigar - Trash - Burnt + - PetWearable - type: entity id: CigarGold From 7cf6db7951c8692fc1dd8af6259c84323287df11 Mon Sep 17 00:00:00 2001 From: solomam Date: Thu, 16 Jul 2026 06:40:25 +0100 Subject: [PATCH 09/16] added - PetWearable to most neck/mask/head/eyes added - petwearable to cigars and Cigarette added - mothroach inventory template amended HideLayerClothingSystem toggle handling and layer visibility updates Signed-off-by: solomam --- .../EntitySystems/HideLayerClothingSystem.cs | 17 +- .../Entities/Clothing/Eyes/glasses.yml | 42 ++- .../Prototypes/Entities/Clothing/Eyes/hud.yml | 78 ++++- .../Entities/Clothing/Eyes/misc.yml | 10 +- .../Entities/Clothing/Head/animals.yml | 24 +- .../Entities/Clothing/Head/bandanas.yml | 3 +- .../Entities/Clothing/Head/eva-helmets.yml | 18 +- .../Entities/Clothing/Head/hardhats.yml | 33 ++- .../Entities/Clothing/Head/hats.yml | 268 +++++++++++++++--- .../Entities/Clothing/Head/helmets.yml | 104 +++++-- .../Entities/Clothing/Head/hoods.yml | 220 +++++++++++--- .../Entities/Clothing/Head/misc.yml | 71 ++++- .../Entities/Clothing/Head/soft.yml | 72 ++++- .../Entities/Clothing/Head/welding.yml | 16 +- .../Entities/Clothing/Masks/bandanas.yml | 29 ++ .../Entities/Clothing/Masks/masks.yml | 85 +++++- .../Entities/Clothing/Masks/specific.yml | 1 + .../Entities/Clothing/Neck/medals.yml | 10 +- .../Entities/Clothing/Neck/misc.yml | 19 +- .../Entities/Clothing/Neck/pins.yml | 74 ++++- .../Entities/Clothing/Neck/stoles.yml | 3 + .../Entities/Clothing/Neck/ties.yml | 7 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 4 +- .../mothroach_inventory_template.yml | 60 ++++ .../_DV/Entities/Clothing/Eyes/glasses.yml | 4 + .../Entities/Clothing/Eyes/glasses.yml | 6 +- .../Entities/Clothing/Eyes/hud.yml | 8 +- .../Entities/Clothing/Head/hats.yml | 7 +- .../Entities/Clothing/Masks/masks.yml | 6 +- .../Clothing/Balaclava/balaclavas.yml | 199 ++++++++++--- .../_Mono/Entities/Clothing/Eyes/glasses.yml | 33 ++- .../_Mono/Entities/Clothing/Masks/masks.yml | 29 +- .../_Mono/Entities/Mobs/NPCs/mothroaches.yml | 4 +- .../_NF/Entities/Clothing/Eyes/glasses.yml | 9 + .../Entities/Clothing/Eyes/glasses_punks.yml | 9 +- .../_NF/Entities/Clothing/Eyes/hud.yml | 22 +- .../Clothing/Head/goblin_headwear.yml | 9 +- .../Clothing/Head/hardsuit-helmets.yml | 32 ++- .../_NF/Entities/Clothing/Head/hats.yml | 107 +++++-- .../Clothing/Head/headwear_blood_cult.yml | 9 + .../Entities/Clothing/Head/headwear_punks.yml | 15 + .../Clothing/Head/headwear_syndicate.yml | 24 +- .../_NF/Entities/Clothing/Head/helmets.yml | 9 + .../_NF/Entities/Clothing/Head/hoods.yml | 6 +- .../Clothing/Head/softsuit-helmets.yml | 134 +++++++-- .../_NF/Entities/Clothing/Masks/masks.yml | 37 ++- .../_NF/Entities/Clothing/Neck/badges.yml | 37 ++- .../_NF/Entities/Clothing/Neck/medals.yml | 9 +- .../_NF/Entities/Clothing/Neck/misc.yml | 23 ++ .../_NF/Entities/Clothing/Neck/scarfs.yml | 4 + 50 files changed, 1762 insertions(+), 297 deletions(-) create mode 100644 Resources/Prototypes/InventoryTemplates/mothroach_inventory_template.yml diff --git a/Content.Shared/Clothing/EntitySystems/HideLayerClothingSystem.cs b/Content.Shared/Clothing/EntitySystems/HideLayerClothingSystem.cs index c300a801335..297026c088d 100644 --- a/Content.Shared/Clothing/EntitySystems/HideLayerClothingSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/HideLayerClothingSystem.cs @@ -36,7 +36,7 @@ private void OnHideGotUnequipped(Entity ent, ref Clo private void SetLayerVisibility( Entity clothing, - Entity user, + EntityUid user, bool hideLayers) { if (_timing.ApplyingState) @@ -45,12 +45,15 @@ private void SetLayerVisibility( if (!Resolve(clothing.Owner, ref clothing.Comp1, ref clothing.Comp2)) return; - if (!Resolve(user.Owner, ref user.Comp)) + if (!TryComp(user, out var humanoid)) return; + + var humanoidEntity = new Entity(user, humanoid); - hideLayers &= IsEnabled(clothing!); + hideLayers &= IsEnabled(new Entity( clothing.Owner, clothing.Comp1!, clothing.Comp2! )); - var hideable = user.Comp.HideLayersOnEquip; + var hideable = humanoid.HideLayersOnEquip; + var inSlot = clothing.Comp2.InSlotFlag ?? SlotFlags.NONE; // This method should only be getting called while the clothing is equipped (though possibly currently in @@ -70,7 +73,7 @@ private void SetLayerVisibility( // Only update this layer if we are currently equipped to the relevant slot. if (validSlots.HasFlag(inSlot)) - _humanoid.SetLayerVisibility(user!, layer, !hideLayers, inSlot, ref dirty); + _humanoid.SetLayerVisibility(humanoidEntity, layer, !hideLayers, inSlot, ref dirty); } // Fallback for obsolete field: assume we want to hide **all** layers, as long as we are equipped to any @@ -82,12 +85,12 @@ private void SetLayerVisibility( foreach (var layer in slots) { if (hideable.Contains(layer)) - _humanoid.SetLayerVisibility(user!, layer, !hideLayers, inSlot, ref dirty); + _humanoid.SetLayerVisibility(humanoidEntity, layer, !hideLayers, inSlot, ref dirty); } } if (dirty) - Dirty(user!); + Dirty(user, humanoid); } private bool IsEnabled(Entity clothing) diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml index 05c070c71fc..cab17871460 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml @@ -13,6 +13,9 @@ damage: types: Blunt: 7 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -32,7 +35,10 @@ damage: types: Blunt: 10 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesBase id: ClothingEyesGlassesGarGiga @@ -51,7 +57,10 @@ damage: types: Blunt: 10 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesBase id: ClothingEyesGlassesMeson @@ -67,7 +76,10 @@ coverage: EYES - type: StaticPrice # Frontier price: 135 # Frontier - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesBase id: ClothingEyesGlasses @@ -83,6 +95,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingEyesBase @@ -97,6 +110,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: entity parent: ClothingEyesBase @@ -113,6 +127,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingEyesBase @@ -126,6 +141,9 @@ sprite: Clothing/Eyes/Glasses/outlawglasses.rsi - type: VisionCorrection - type: IdentityBlocker + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -141,6 +159,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: IdentityBlocker coverage: EYES @@ -158,6 +177,7 @@ - Sunglasses - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] @@ -179,6 +199,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable # - Antagonists # Frontier: guidebook entry removed - type: IdentityBlocker coverage: EYES @@ -200,6 +221,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: IdentityBlocker coverage: EYES - type: ShowJobIcons @@ -219,6 +241,9 @@ protectionTime: 5 - type: IdentityBlocker coverage: EYES + - type: Tag + tags: + - PetWearable #Make a scanner category when these actually function and we get the trayson - type: entity @@ -241,6 +266,9 @@ - type: ThermalSight - type: StaticPrice # Mono price: 60 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -255,7 +283,10 @@ - type: SolutionScanner - type: IdentityBlocker coverage: EYES - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase] id: ClothingEyesVisorNinja @@ -276,3 +307,6 @@ action: ActionToggleNightVision phosphorColor: "#41D7D9" lightingColor: "#FFFFFF32" + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml index e87e853094d..6996a4e1b6d 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml @@ -29,6 +29,9 @@ damageContainers: - Inorganic - Silicon + - type: Tag + tags: + - PetWearable - type: entity parent: [ClothingEyesBase, ShowMedicalIcons] @@ -43,6 +46,7 @@ - type: Tag tags: - HudMedical + - PetWearable - type: StaticPrice # Frontier price: 30 # Frontier @@ -59,6 +63,7 @@ - type: Tag tags: - HudSecurity + - PetWearable - type: entity parent: ClothingEyesBase @@ -71,6 +76,9 @@ - type: Clothing sprite: Clothing/Eyes/Hud/command.rsi - type: ShowJobIcons + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -86,7 +94,10 @@ - type: StealTarget stealGroup: ClothingEyesHudBeer - type: SolutionScanner - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesBase id: ClothingEyesHudFriedOnion @@ -110,7 +121,10 @@ flavors: - onion - greasey - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesBase id: ClothingEyesHudOnionBeer @@ -123,7 +137,10 @@ sprite: Clothing/Eyes/Hud/onionbeer.rsi - type: ShowHungerIcons - type: ShowThirstIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowMedicalIcons] id: ClothingEyesHudMedOnion @@ -135,7 +152,10 @@ - type: Clothing sprite: Clothing/Eyes/Hud/medonion.rsi - type: ShowHungerIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowMedicalIcons] id: ClothingEyesHudMedOnionBeer @@ -148,7 +168,10 @@ sprite: Clothing/Eyes/Hud/medonionbeer.rsi - type: ShowHungerIcons - type: ShowThirstIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons, ShowMedicalIcons] id: ClothingEyesHudMedSec @@ -162,7 +185,10 @@ - type: Construction graph: HudMedSec node: medsecHud - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons, ShowMedicalIcons] id: ClothingEyesHudMultiversal @@ -178,7 +204,10 @@ - Biological - Inorganic - type: ShowSyndicateIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons, ShowMedicalIcons] id: ClothingEyesHudOmni @@ -196,7 +225,10 @@ - type: ShowHungerIcons - type: ShowThirstIcons - type: ShowSyndicateIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudSyndicate @@ -208,7 +240,10 @@ - type: Clothing sprite: Clothing/Eyes/Hud/synd.rsi - type: ShowSyndicateIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesHudSyndicateAgent @@ -221,7 +256,10 @@ sprite: Clothing/Eyes/Hud/syndagent.rsi - type: ShowSyndicateIcons - type: ShowHealthBars - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesGlassesSunglasses, ShowSecurityIcons] id: ClothingEyesGlassesHiddenSecurity @@ -237,7 +275,10 @@ sprite: Clothing/Eyes/Hud/medpatch.rsi - type: Clothing sprite: Clothing/Eyes/Hud/medpatch.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesEyepatchHudMedical, ClothingHeadEyeBaseFlipped] id: ClothingEyesEyepatchHudMedicalFlipped @@ -253,7 +294,10 @@ sprite: Clothing/Eyes/Hud/secpatch.rsi - type: Clothing sprite: Clothing/Eyes/Hud/secpatch.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesEyepatchHudSecurity, ClothingHeadEyeBaseFlipped] id: ClothingEyesEyepatchHudSecurityFlipped @@ -269,7 +313,10 @@ sprite: Clothing/Eyes/Hud/beerpatch.rsi - type: Clothing sprite: Clothing/Eyes/Hud/beerpatch.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesEyepatchHudBeer, ClothingHeadEyeBaseFlipped] id: ClothingEyesEyepatchHudBeerFlipped @@ -285,7 +332,10 @@ sprite: Clothing/Eyes/Hud/diagpatch.rsi - type: Clothing sprite: Clothing/Eyes/Hud/diagpatch.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesEyepatchHudDiag, ClothingHeadEyeBaseFlipped] id: ClothingEyesEyepatchHudDiagFlipped diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/misc.yml b/Resources/Prototypes/Entities/Clothing/Eyes/misc.yml index 81de8a61bce..2bc4a52224d 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/misc.yml @@ -15,7 +15,10 @@ graph: Blindfold node: blindfold - type: FlashImmunity - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEyeBaseFlippable id: ClothingEyesEyepatch @@ -28,7 +31,10 @@ sprite: Clothing/Eyes/Misc/eyepatch.rsi - type: EyeProtection protectionTime: 5 - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesEyepatch, ClothingHeadEyeBaseFlipped] id: ClothingEyesEyepatchFlipped diff --git a/Resources/Prototypes/Entities/Clothing/Head/animals.yml b/Resources/Prototypes/Entities/Clothing/Head/animals.yml index 83fa2f75610..f14fb31aa44 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/animals.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/animals.yml @@ -8,7 +8,10 @@ sprite: Clothing/Head/Animals/cat.rsi - type: Clothing sprite: Clothing/Head/Animals/cat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatAnimalCatBrown @@ -19,7 +22,10 @@ sprite: Clothing/Head/Animals/cat2.rsi - type: Clothing sprite: Clothing/Head/Animals/cat2.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatAnimalCatBlack @@ -30,7 +36,10 @@ sprite: Clothing/Head/Animals/cat3.rsi - type: Clothing sprite: Clothing/Head/Animals/cat3.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatAnimalHeadslime @@ -41,7 +50,10 @@ sprite: Clothing/Head/Animals/headslime.rsi - type: Clothing sprite: Clothing/Head/Animals/headslime.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatAnimalMonkey @@ -52,3 +64,7 @@ sprite: Clothing/Head/Animals/monkey.rsi - type: Clothing sprite: Clothing/Head/Animals/monkey.rsi + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml b/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml index 5fa70f6adb4..42e3df67c25 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml @@ -28,7 +28,8 @@ tags: - Bandana - ClothMade - + - PetWearable + - type: entity parent: [ClothingHeadBandBase, ClothingMaskBandBlack] id: ClothingHeadBandBlack diff --git a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml index 19a3a70778d..f3cbfe74fa2 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml @@ -13,6 +13,7 @@ tags: - HelmetEVA - WhitelistChameleon + - PetWearable #Large EVA Helmet - type: entity @@ -25,7 +26,10 @@ sprite: Clothing/Head/Helmets/eva_large.rsi - type: Clothing sprite: Clothing/Head/Helmets/eva_large.rsi - + - type: Tag + tags: + - PetWearable + #Syndicate EVA Helmet - type: entity parent: [ClothingHeadEVAHelmetBase] @@ -37,6 +41,9 @@ sprite: Clothing/Head/Helmets/eva_syndicate.rsi - type: Clothing sprite: Clothing/Head/Helmets/eva_syndicate.rsi + - type: Tag + tags: + - PetWearable #Cosmonaut Helmet - type: entity @@ -49,6 +56,9 @@ sprite: Clothing/Head/Helmets/cosmonaut.rsi - type: Clothing sprite: Clothing/Head/Helmets/cosmonaut.rsi + - type: Tag + tags: + - PetWearable #Ancient Void Helmet - type: entity @@ -61,6 +71,9 @@ sprite: Clothing/Head/Helmets/ancientvoidsuit.rsi - type: Clothing sprite: Clothing/Head/Helmets/ancientvoidsuit.rsi + - type: Tag + tags: + - PetWearable #Paramedic Void Helmet - type: entity @@ -95,3 +108,6 @@ radius: 6 # 5->6 Mono energy: 3 # 2->3 Mono color: "#00ffff" + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml b/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml index e0c6557c97c..dbbf5ef2328 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardhats.yml @@ -66,6 +66,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadHatHardhatBase @@ -77,6 +78,9 @@ sprite: Clothing/Head/Hardhats/blue.rsi - type: Clothing sprite: Clothing/Head/Hardhats/blue.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHardhatBase @@ -88,7 +92,10 @@ sprite: Clothing/Head/Hardhats/orange.rsi - type: Clothing sprite: Clothing/Head/Hardhats/orange.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHardhatBase id: ClothingHeadHatHardhatRed @@ -99,7 +106,10 @@ sprite: Clothing/Head/Hardhats/red.rsi - type: Clothing sprite: Clothing/Head/Hardhats/red.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHardhatBase id: ClothingHeadHatHardhatWhite @@ -110,7 +120,10 @@ sprite: Clothing/Head/Hardhats/white.rsi - type: Clothing sprite: Clothing/Head/Hardhats/white.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHardhatBase id: ClothingHeadHatHardhatYellow @@ -121,7 +134,10 @@ sprite: Clothing/Head/Hardhats/yellow.rsi - type: Clothing sprite: Clothing/Head/Hardhats/yellow.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHardhatBase id: ClothingHeadHatHardhatYellowDark @@ -132,7 +148,10 @@ sprite: Clothing/Head/Hardhats/dark_yellow.rsi - type: Clothing sprite: Clothing/Head/Hardhats/dark_yellow.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHardhatBase id: ClothingHeadHatHardhatArmored @@ -150,3 +169,7 @@ Slash: 0.8 Piercing: 0.9 Heat: 0.8 + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 7f88e380316..c060e47f9d7 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -8,7 +8,10 @@ sprite: Clothing/Head/Hats/beaver_hat.rsi - type: Clothing sprite: Clothing/Head/Hats/beaver_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatCapVizier @@ -19,7 +22,10 @@ sprite: Clothing/Head/Hats/browncap.rsi - type: Clothing sprite: Clothing/Head/Hats/browncap.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatBeret @@ -35,6 +41,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -52,6 +59,7 @@ tags: - ClothMade - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -68,6 +76,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -83,6 +92,7 @@ tags: - ClothMade - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -94,6 +104,9 @@ sprite: Clothing/Head/Hats/casa.rsi - type: Clothing sprite: Clothing/Head/Hats/casa.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -110,6 +123,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -126,6 +140,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -142,6 +157,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -158,6 +174,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -169,7 +186,10 @@ sprite: Clothing/Head/Hats/beret_warden.rsi - type: Clothing sprite: Clothing/Head/Hats/beret_warden.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatBeretSeniorPhysician @@ -180,7 +200,10 @@ sprite: Clothing/Head/Hats/beret_physician.rsi - type: Clothing sprite: Clothing/Head/Hats/beret_physician.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatBeretBrigmedic @@ -191,7 +214,10 @@ sprite: Clothing/Head/Hats/beret_brigmedic.rsi - type: Clothing sprite: Clothing/Head/Hats/beret_brigmedic.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ ClothingHeadBase ] id: ClothingHeadHatBeretMercenary # Frontier: Merc to Mercenary @@ -202,7 +228,10 @@ sprite: Clothing/Head/Hats/beret_merc.rsi - type: Clothing sprite: Clothing/Head/Hats/beret_merc.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatBowlerHat @@ -213,7 +242,10 @@ sprite: Clothing/Head/Hats/bowler_hat.rsi - type: Clothing sprite: Clothing/Head/Hats/bowler_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatCaptain @@ -229,6 +261,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -244,6 +277,9 @@ proto: robot - type: IdentityBlocker - type: IngestionBlocker + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -255,6 +291,9 @@ sprite: Clothing/Head/Hats/centcom.rsi - type: Clothing sprite: Clothing/Head/Hats/centcom.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -285,6 +324,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: CatWearable # Frontier - type: entity @@ -302,6 +342,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -313,6 +354,9 @@ sprite: Clothing/Head/Hats/greyfedora.rsi - type: Clothing sprite: Clothing/Head/Hats/greyfedora.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -324,6 +368,9 @@ sprite: Clothing/Head/Hats/fez.rsi - type: Clothing sprite: Clothing/Head/Hats/fez.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -340,6 +387,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -356,6 +404,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -367,6 +416,9 @@ sprite: Clothing/Head/Hats/outlawhat.rsi - type: Clothing sprite: Clothing/Head/Hats/outlawhat.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -378,6 +430,9 @@ sprite: Clothing/Head/Hats/witchhat.rsi - type: Clothing sprite: Clothing/Head/Hats/witchhat.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -389,6 +444,9 @@ sprite: Clothing/Head/Hats/paper.rsi - type: Clothing sprite: Clothing/Head/Hats/paper.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -401,6 +459,9 @@ - type: Clothing sprite: Clothing/Head/Hats/pirate.rsi - type: CatWearable # Frontier + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -416,6 +477,7 @@ tags: - WhitelistChameleon - ClothMade + - PetWearable - type: HideLayerClothing slots: - Hair @@ -432,6 +494,9 @@ sprite: Clothing/Head/Hats/redwizard.rsi - type: Clothing sprite: Clothing/Head/Hats/redwizard.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -443,7 +508,10 @@ sprite: Clothing/Head/Hats/santahat.rsi - type: Clothing sprite: Clothing/Head/Hats/santahat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatSombrero @@ -456,7 +524,10 @@ sprite: Clothing/Head/Hats/sombrero.rsi - type: AddAccentClothing accent: SpanishAccent - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatSurgcapBlue @@ -472,6 +543,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -483,6 +555,9 @@ sprite: Clothing/Head/Hats/surgcap_green.rsi - type: Clothing sprite: Clothing/Head/Hats/surgcap_green.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -494,6 +569,9 @@ sprite: Clothing/Head/Hats/surgcap_purple.rsi - type: Clothing sprite: Clothing/Head/Hats/surgcap_purple.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -510,6 +588,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: [ClothingHeadBase, BaseFoldable] @@ -535,7 +614,9 @@ - state: icon-up map: ["foldedLayer"] visible: false - + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatWizardBase @@ -547,6 +628,9 @@ sprite: Clothing/Head/Hats/violetwizard.rsi - type: Clothing sprite: Clothing/Head/Hats/violetwizard.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -560,6 +644,9 @@ sprite: Clothing/Head/Hats/warden.rsi - type: StealTarget stealGroup: ClothingHeadHatWarden + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -576,6 +663,7 @@ tags: - WhitelistChameleon - ClothMade + - PetWearable - type: HideLayerClothing slots: - Hair @@ -590,14 +678,20 @@ sprite: Clothing/Head/Hats/wizard_fake.rsi - type: Clothing sprite: Clothing/Head/Hats/wizard_fake.rsi - + - type: Tag + tags: + - PetWearable + - type: entity abstract: true parent: ClothingHeadBase id: ClothingHeadHatWizardBase components: - type: WizardClothes - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatWizardBase id: ClothingHeadHatWizard @@ -613,6 +707,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -624,6 +719,9 @@ sprite: Clothing/Head/Hats/xmascrown.rsi - type: Clothing sprite: Clothing/Head/Hats/xmascrown.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -635,7 +733,10 @@ sprite: Clothing/Head/Hats/truckershat.rsi - type: Clothing sprite: Clothing/Head/Hats/truckershat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadBase] id: ClothingHeadPyjamaSyndicateBlack @@ -646,7 +747,10 @@ sprite: Clothing/Head/Hats/pyjamasyndicateblack.rsi - type: Clothing sprite: Clothing/Head/Hats/pyjamasyndicateblack.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadBase] id: ClothingHeadPyjamaSyndicatePink @@ -657,7 +761,10 @@ sprite: Clothing/Head/Hats/pyjamasyndicatepink.rsi - type: Clothing sprite: Clothing/Head/Hats/pyjamasyndicatepink.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadBase] id: ClothingHeadPyjamaSyndicateRed @@ -668,7 +775,10 @@ sprite: Clothing/Head/Hats/pyjamasyndicatered.rsi - type: Clothing sprite: Clothing/Head/Hats/pyjamasyndicatered.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadPaperSack @@ -680,7 +790,10 @@ - type: Clothing sprite: Clothing/Head/Hats/papersack.rsi - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadPaperSackSmile @@ -692,7 +805,10 @@ - type: Clothing sprite: Clothing/Head/Hats/papersacksmile.rsi - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadFishCap @@ -703,7 +819,10 @@ sprite: Clothing/Head/Hats/fishcap.rsi - type: Clothing sprite: Clothing/Head/Hats/fishcap.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadNurseHat @@ -719,6 +838,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -730,7 +850,10 @@ sprite: Clothing/Head/Hats/rasta.rsi - type: Clothing sprite: Clothing/Head/Hats/rasta.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadSafari @@ -741,7 +864,10 @@ sprite: Clothing/Head/Hats/safarihat.rsi - type: Clothing sprite: Clothing/Head/Hats/safarihat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatJester @@ -755,7 +881,10 @@ - type: EmitsSoundOnMove #Mono soundCollection: collection: FootstepJester - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatJester id: ClothingHeadHatJesterAlt @@ -764,6 +893,9 @@ sprite: Clothing/Head/Hats/jester2.rsi - type: Clothing sprite: Clothing/Head/Hats/jester2.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -780,6 +912,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -791,6 +924,9 @@ sprite: Clothing/Head/Hats/piratetricord.rsi - type: Clothing sprite: Clothing/Head/Hats/piratetricord.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -806,7 +942,10 @@ modifiers: coefficients: Blunt: 0.95 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatHolyWatermelon @@ -821,7 +960,10 @@ modifiers: coefficients: Caustic: 0.95 - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadBase] id: ClothingHeadHatSyndie @@ -832,7 +974,10 @@ sprite: Clothing/Head/Hats/syndiecap.rsi - type: Clothing sprite: Clothing/Head/Hats/syndiecap.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadBase] id: ClothingHeadHatSyndieMAA @@ -843,7 +988,10 @@ sprite: Clothing/Head/Hats/syndiecap_maa.rsi - type: Clothing sprite: Clothing/Head/Hats/syndiecap_maa.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatTacticalMaidHeadband @@ -854,7 +1002,10 @@ sprite: Clothing/Head/Hats/tacticalmaidheadband.rsi - type: Clothing sprite: Clothing/Head/Hats/tacticalmaidheadband.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatHetmanHat @@ -865,7 +1016,10 @@ sprite: Clothing/Head/Hats/hetman_hat.rsi - type: Clothing sprite: Clothing/Head/Hats/hetman_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatMagician @@ -899,7 +1053,9 @@ containers: storagebase: !type:Container - type: Tag - + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatCapcap @@ -915,6 +1071,7 @@ - ClothMade - WhitelistChameleon - HamsterWearable + - PetWearable - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-inanimate weight: 0.0002 # 5,000 times less likely than 1 regular animal @@ -935,6 +1092,7 @@ - ClothMade - WhitelistChameleon - HamsterWearable + - PetWearable - type: entity parent: ClothingHeadBase @@ -946,6 +1104,9 @@ sprite: Clothing/Head/Hats/gladiator.rsi - type: Clothing sprite: Clothing/Head/Hats/gladiator.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -961,6 +1122,7 @@ tags: - WhitelistChameleon - HamsterWearable + - PetWearable - type: entity parent: ClothingHeadHatPartyRed @@ -971,6 +1133,9 @@ sprite: Clothing/Head/Hats/party_yellow.rsi - type: Clothing sprite: Clothing/Head/Hats/party_yellow.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatPartyRed @@ -981,6 +1146,9 @@ sprite: Clothing/Head/Hats/party_green.rsi - type: Clothing sprite: Clothing/Head/Hats/party_green.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatPartyRed @@ -991,6 +1159,9 @@ sprite: Clothing/Head/Hats/party_blue.rsi - type: Clothing sprite: Clothing/Head/Hats/party_blue.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatPartyRed @@ -1002,7 +1173,10 @@ sprite: Clothing/Head/Hats/party_water_cup.rsi - type: Clothing sprite: Clothing/Head/Hats/party_water_cup.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatGreyFlatcap @@ -1012,6 +1186,7 @@ - type: Tag tags: - BrimFlatcapGrey + - PetWearable - type: Sprite sprite: Clothing/Head/Hats/greyflatcap.rsi - type: Clothing @@ -1026,6 +1201,7 @@ - type: Tag tags: - BrimFlatcapBrown + - PetWearable - type: Sprite sprite: Clothing/Head/Hats/brownflatcap.rsi - type: Clothing @@ -1044,7 +1220,10 @@ - type: AddAccentClothing accent: ReplacementAccent replacement: cowboy - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatCowboyBrown id: ClothingHeadHatCowboyBlack @@ -1054,6 +1233,9 @@ sprite: Clothing/Head/Hats/cowboyhatblack.rsi - type: Clothing sprite: Clothing/Head/Hats/cowboyhatblack.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatCowboyBrown @@ -1064,7 +1246,10 @@ sprite: Clothing/Head/Hats/cowboyhatgrey.rsi - type: Clothing sprite: Clothing/Head/Hats/cowboyhatgrey.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatCowboyBrown id: ClothingHeadHatCowboyRed @@ -1074,7 +1259,10 @@ sprite: Clothing/Head/Hats/cowboyhatred.rsi - type: Clothing sprite: Clothing/Head/Hats/cowboyhatred.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatCowboyBrown id: ClothingHeadHatCowboyWhite @@ -1084,7 +1272,10 @@ sprite: Clothing/Head/Hats/cowboyhatwhite.rsi - type: Clothing sprite: Clothing/Head/Hats/cowboyhatwhite.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatCowboyBrown id: ClothingHeadHatCowboyBountyHunter @@ -1094,7 +1285,10 @@ sprite: Clothing/Head/Hats/cowboyhatbountyhunter.rsi - type: Clothing sprite: Clothing/Head/Hats/cowboyhatbountyhunter.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatStrawHat @@ -1111,6 +1305,7 @@ - type: Tag tags: - HamsterWearable + - PetWearable - type: Flammable fireSpread: true canResistFire: false @@ -1149,3 +1344,6 @@ sprite: Clothing/Head/Hats/beret_medic.rsi - type: Clothing sprite: Clothing/Head/Hats/beret_medic.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml index de7d88fde69..527c25e84fc 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml @@ -16,6 +16,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - HeadTop @@ -44,6 +45,7 @@ tags: - WhitelistChameleon - SecurityHelmet + - PetWearable #Mercenary Helmet - type: entity @@ -56,6 +58,9 @@ sprite: Clothing/Head/Helmets/merc_helmet.rsi - type: Clothing sprite: Clothing/Head/Helmets/merc_helmet.rsi + - type: Tag + tags: + - PetWearable #SWAT Helmet - type: entity @@ -79,6 +84,9 @@ Caustic: 0.95 - type: ExplosionResistance damageCoefficient: 0.75 + - type: Tag + tags: + - PetWearable #Syndicate SWAT Helmet - type: entity @@ -92,7 +100,10 @@ sprite: Clothing/Head/Helmets/swat_syndicate.rsi - type: Clothing sprite: Clothing/Head/Helmets/swat_syndicate.rsi - + - type: Tag + tags: + - PetWearable + #Light Riot Helmet - type: entity parent: ClothingHeadBase @@ -111,7 +122,10 @@ Blunt: 0.8 Slash: 0.8 Piercing: 0.95 - + - type: Tag + tags: + - PetWearable + #Bombsuit Helmet - type: entity parent: ClothingHeadBase @@ -138,7 +152,10 @@ - Snout - HeadTop - HeadSide - + - type: Tag + tags: + - PetWearable + #Janitorial Bombsuit Helmet - type: entity parent: ClothingHeadHelmetBombSuit @@ -151,7 +168,10 @@ sprite: Clothing/Head/Helmets/janitor_bombsuit.rsi - type: Clothing sprite: Clothing/Head/Helmets/janitor_bombsuit.rsi - + - type: Tag + tags: + - PetWearable + #Cult Helmet - type: entity parent: [ClothingHeadBase] @@ -171,7 +191,10 @@ Slash: 0.8 Piercing: 0.9 Heat: 0.9 - + - type: Tag + tags: + - PetWearable + #Space Ninja Helmet - type: entity parent: [ClothingHeadEVAHelmetBase] @@ -186,6 +209,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: IngestionBlocker - type: IdentityBlocker - type: HideLayerClothing @@ -208,7 +232,10 @@ sprite: Clothing/Head/Helmets/templar.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + #Thunderdome Helmet - type: entity parent: ClothingHeadBase @@ -220,7 +247,10 @@ sprite: Clothing/Head/Helmets/thunderdome.rsi - type: Clothing sprite: Clothing/Head/Helmets/thunderdome.rsi - + - type: Tag + tags: + - PetWearable + #Wizard Helmet - type: entity parent: [ClothingHeadBase] @@ -234,7 +264,10 @@ sprite: Clothing/Head/Helmets/wizardhelm.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + #Fire Helmet - type: entity parent: ClothingHeadLightBase @@ -258,6 +291,7 @@ tags: - WhitelistChameleon - FireHelmet + - PetWearable - type: HideLayerClothing slots: - Hair @@ -291,6 +325,7 @@ tags: - WhitelistChameleon - FireHelmet + - PetWearable - type: HideLayerClothing slots: - Hair @@ -317,6 +352,9 @@ Slash: 0.5 Piercing: 0.5 Heat: 0.9 + - type: Tag + tags: + - PetWearable #ERT HELMETS #ERT Leader Helmet @@ -330,7 +368,10 @@ sprite: Clothing/Head/Helmets/ert_leader.rsi - type: Clothing sprite: Clothing/Head/Helmets/ert_leader.rsi - + - type: Tag + tags: + - PetWearable + #ERT Security Helmet - type: entity parent: ClothingHeadHelmetBase @@ -342,7 +383,10 @@ sprite: Clothing/Head/Helmets/ert_security.rsi - type: Clothing sprite: Clothing/Head/Helmets/ert_security.rsi - + - type: Tag + tags: + - PetWearable + #ERT Medic Helmet - type: entity parent: ClothingHeadHelmetBase @@ -354,7 +398,10 @@ sprite: Clothing/Head/Helmets/ert_medic.rsi - type: Clothing sprite: Clothing/Head/Helmets/ert_medic.rsi - + - type: Tag + tags: + - PetWearable + #ERT Engineer Helmet - type: entity parent: ClothingHeadHelmetBase @@ -366,7 +413,10 @@ sprite: Clothing/Head/Helmets/ert_engineer.rsi - type: Clothing sprite: Clothing/Head/Helmets/ert_engineer.rsi - + - type: Tag + tags: + - PetWearable + #ERT Janitor Helmet - type: entity parent: ClothingHeadHelmetBase @@ -378,7 +428,10 @@ sprite: Clothing/Head/Helmets/ert_janitor.rsi - type: Clothing sprite: Clothing/Head/Helmets/ert_janitor.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHelmetBase id: ClothingHeadHelmetRaid @@ -396,7 +449,10 @@ Slash: 0.85 Piercing: 0.85 Heat: 0.85 - + - type: Tag + tags: + - PetWearable + #Bone Helmet - type: entity parent: ClothingHeadHelmetBase @@ -411,7 +467,10 @@ - type: Construction graph: BoneHelmet node: helmet - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHelmetBase id: ClothingHeadHelmetPodWars @@ -422,7 +481,10 @@ sprite: Clothing/Head/Helmets/podwars_helmet.rsi - type: Clothing sprite: Clothing/Head/Helmets/podwars_helmet.rsi - + - type: Tag + tags: + - PetWearable + #Justice Helmet - type: entity parent: ClothingHeadHelmetBase @@ -493,7 +555,10 @@ - type: Construction graph: HelmetJustice node: helmet - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHelmetJustice id: ClothingHeadHelmetJusticeEmpty @@ -503,7 +568,10 @@ slots: cell_slot: name: power-cell-slot-component-slot-name-default - + - type: Tag + tags: + - PetWearable + - type: entity id: ActionToggleJusticeHelm name: Toggle Justice Helm diff --git a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml index 4afb214c45d..c1822b0d10d 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml @@ -14,6 +14,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -33,6 +34,9 @@ sprite: Clothing/Head/Hoods/Bio/cmo.rsi - type: Clothing sprite: Clothing/Head/Hoods/Bio/cmo.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodBioGeneral @@ -46,7 +50,10 @@ sprite: Clothing/Head/Hoods/Bio/janitor.rsi - type: Clothing sprite: Clothing/Head/Hoods/Bio/janitor.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodBioGeneral id: ClothingHeadHatHoodBioScientist @@ -59,7 +66,10 @@ sprite: Clothing/Head/Hoods/Bio/scientist.rsi - type: Clothing sprite: Clothing/Head/Hoods/Bio/scientist.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodBioGeneral id: ClothingHeadHatHoodBioSecurity @@ -72,7 +82,10 @@ sprite: Clothing/Head/Hoods/Bio/security.rsi - type: Clothing sprite: Clothing/Head/Hoods/Bio/security.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodBioGeneral id: ClothingHeadHatHoodBioVirology @@ -85,7 +98,10 @@ sprite: Clothing/Head/Hoods/Bio/virology.rsi - type: Clothing sprite: Clothing/Head/Hoods/Bio/virology.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodChaplainHood @@ -101,6 +117,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -118,6 +135,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -136,6 +154,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -163,6 +182,9 @@ - Snout - HeadTop - HeadSide + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -177,6 +199,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -195,6 +218,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -210,6 +236,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodCarp @@ -227,6 +256,9 @@ # wear carp suit and security helmet, they'll know you are fake - type: FactionClothing faction: Dragon + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -242,6 +274,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -260,6 +293,9 @@ sprite: Clothing/Head/Hoods/Coat/hooddefault.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hooddefault.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodWinterBase @@ -271,7 +307,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodbartender.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodbartender.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCaptain @@ -283,7 +322,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodcaptain.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodcaptain.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCargo @@ -294,7 +336,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodcargo.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodcargo.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCE @@ -305,7 +350,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodce.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodce.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCentcom @@ -317,7 +365,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodcentcom.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodcentcom.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterChem @@ -328,7 +379,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodchemist.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodchemist.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCMO @@ -339,7 +393,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodcmo.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodcmo.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterEngineer @@ -350,7 +407,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodengi.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodengi.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHOP @@ -361,7 +421,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodhop.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodhop.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHOS @@ -372,7 +435,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodhos.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodhos.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHydro @@ -383,7 +449,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodhydro.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodhydro.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterJani @@ -394,7 +463,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodjani.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodjani.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMed @@ -405,7 +477,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodmed.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodmed.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMime @@ -416,7 +491,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodmime.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodmime.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMiner @@ -427,7 +505,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodminer.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodminer.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterPara @@ -438,7 +519,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodpara.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodpara.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterQM @@ -449,7 +533,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodqm.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodqm.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterRD @@ -460,7 +547,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodrd.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodrd.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterRobo @@ -471,7 +561,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodrobo.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodrobo.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSci @@ -482,7 +575,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodsci.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodsci.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSec @@ -493,7 +589,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodsec.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodsec.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSyndie @@ -504,7 +603,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodsyndicate.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodsyndicate.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterWarden @@ -515,7 +617,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodsec.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodsec.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterWeb @@ -526,7 +631,10 @@ sprite: Clothing/Head/Hoods/Coat/hoodweb.rsi - type: Clothing sprite: Clothing/Head/Hoods/Coat/hoodweb.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorBlack @@ -546,7 +654,10 @@ - state: coatybits-equipped-HELMET color: "#3f3f3f" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorPurple @@ -566,7 +677,10 @@ - state: coatybits-equipped-HELMET color: "#9C0DE1" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorRed @@ -586,7 +700,10 @@ - state: coatybits-equipped-HELMET color: "#940000" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorBlue @@ -606,7 +723,10 @@ - state: coatybits-equipped-HELMET color: "#0089EF" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorBrown @@ -626,7 +746,10 @@ - state: coatybits-equipped-HELMET color: "#723A02" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorGray @@ -646,7 +769,10 @@ - state: coatybits-equipped-HELMET color: "#999999" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorGreen @@ -666,7 +792,10 @@ - state: coatybits-equipped-HELMET color: "#5ABF2F" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorLightBrown @@ -686,7 +815,10 @@ - state: coatybits-equipped-HELMET color: "#C09F72" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorOrange @@ -706,7 +838,10 @@ - state: coatybits-equipped-HELMET color: "#EF8100" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorWhite @@ -726,7 +861,10 @@ - state: coatybits-equipped-HELMET color: "#EAE8E8" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterColorYellow @@ -746,7 +884,10 @@ - state: coatybits-equipped-HELMET color: "#EBE216" - state: winterbits-equipped-HELMET - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodVoidCloak @@ -760,6 +901,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair diff --git a/Resources/Prototypes/Entities/Clothing/Head/misc.yml b/Resources/Prototypes/Entities/Clothing/Head/misc.yml index 69136f503fb..d1681cb8788 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/misc.yml @@ -8,6 +8,9 @@ sprite: Clothing/Head/Misc/bunny.rsi - type: Clothing sprite: Clothing/Head/Misc/bunny.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -19,7 +22,10 @@ sprite: Clothing/Head/Misc/cake.rsi - type: Clothing sprite: Clothing/Head/Misc/cake.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatChickenhead @@ -32,7 +38,10 @@ sprite: Clothing/Head/Misc/chickenhead.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatFlowerWreath @@ -49,7 +58,10 @@ - type: Construction graph: flowerwreath node: flowerwreath - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadLightBase id: ClothingHeadHatPumpkin @@ -74,7 +86,10 @@ slots: cell_slot: name: power-cell-slot-component-slot-name-default - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatPwig @@ -85,7 +100,10 @@ sprite: _NF/Clothing/Head/Misc/pwig.rsi # Frontier: add _NF prefix - type: Clothing sprite: _NF/Clothing/Head/Misc/pwig.rsi # Frontier: add _NF prefix - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadMirror @@ -96,7 +114,10 @@ sprite: Clothing/Head/Misc/head_mirror.rsi - type: Clothing sprite: Clothing/Head/Misc/head_mirror.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatRichard @@ -109,7 +130,10 @@ sprite: Clothing/Head/Misc/richard.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatSkub @@ -122,7 +146,10 @@ sprite: Clothing/Head/Misc/skubhead.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatShrineMaidenWig @@ -137,6 +164,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadBase @@ -155,6 +183,9 @@ Plastic: 100 - type: StaticPrice price: 25 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBase @@ -170,7 +201,10 @@ price: 3000 - type: AddAccentClothing accent: MobsterAccent - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatCatEars @@ -231,7 +265,10 @@ sprite: Clothing/Head/Hats/dogears.rsi - type: AddAccentClothing accent: BarkAccent - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatSquid @@ -244,7 +281,10 @@ sprite: Clothing/Head/Misc/squiddy.rsi - type: IngestionBlocker - type: IdentityBlocker - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatRedRacoon @@ -255,7 +295,10 @@ sprite: Clothing/Head/Misc/red_racoon.rsi - type: Clothing sprite: Clothing/Head/Misc/red_racoon.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: Clothing id: WaterDropletHat @@ -311,6 +354,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: StaticPrice price: 1 @@ -324,3 +368,6 @@ sprite: Clothing/Head/Misc/hairflower.rsi - type: Clothing sprite: Clothing/Head/Misc/hairflower.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Head/soft.yml b/Resources/Prototypes/Entities/Clothing/Head/soft.yml index d063b8e8534..cba72224994 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/soft.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/soft.yml @@ -18,7 +18,10 @@ - state: icon_flipped map: ["foldedLayer"] visible: false - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHeadHatBaseFlippable id: ClothingHeadHeadHatBaseFlipped @@ -39,7 +42,10 @@ - state: icon_flipped map: ["foldedLayer"] visible: true - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHeadHatBaseFlippable id: ClothingHeadHatBluesoft @@ -50,7 +56,10 @@ sprite: Clothing/Head/Soft/bluesoft.rsi - type: Clothing sprite: Clothing/Head/Soft/bluesoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatBluesoft] id: ClothingHeadHatBluesoftFlipped @@ -71,6 +80,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatCargosoft] @@ -82,6 +92,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadHeadHatBaseFlippable @@ -93,7 +104,10 @@ sprite: Clothing/Head/Soft/qmsoft.rsi - type: Clothing sprite: Clothing/Head/Soft/qmsoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatQMsoft] id: ClothingHeadHatQMsoftFlipped @@ -109,7 +123,10 @@ sprite: Clothing/Head/Soft/corpsoft.rsi - type: Clothing sprite: Clothing/Head/Soft/corpsoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatCorpsoft] id: ClothingHeadHatCorpsoftFlipped @@ -125,7 +142,10 @@ sprite: Clothing/Head/Soft/greensoft.rsi - type: Clothing sprite: Clothing/Head/Soft/greensoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatGreensoft] id: ClothingHeadHatGreensoftFlipped @@ -141,7 +161,10 @@ sprite: Clothing/Head/Soft/blacksoft.rsi - type: Clothing sprite: Clothing/Head/Soft/blacksoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatBlacksoft] id: ClothingHeadHatBlacksoftFlipped @@ -157,7 +180,10 @@ sprite: Clothing/Head/Soft/greysoft.rsi - type: Clothing sprite: Clothing/Head/Soft/greysoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatGreysoft] id: ClothingHeadHatGreysoftFlipped @@ -173,7 +199,10 @@ sprite: Clothing/Head/Soft/mimesoft.rsi - type: Clothing sprite: Clothing/Head/Soft/mimesoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatMimesoft] id: ClothingHeadHatMimesoftFlipped @@ -189,7 +218,10 @@ sprite: Clothing/Head/Soft/orangesoft.rsi - type: Clothing sprite: Clothing/Head/Soft/orangesoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatOrangesoft] id: ClothingHeadHatOrangesoftFlipped @@ -210,6 +242,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatPurplesoft] @@ -221,6 +254,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: ClothingHeadHeadHatBaseFlippable @@ -232,6 +266,9 @@ sprite: Clothing/Head/Soft/redsoft.rsi - type: Clothing sprite: Clothing/Head/Soft/redsoft.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatRedsoft] @@ -248,6 +285,9 @@ sprite: Clothing/Head/Soft/secsoft.rsi - type: Clothing sprite: Clothing/Head/Soft/secsoft.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatSecsoft] @@ -264,7 +304,10 @@ sprite: Clothing/Head/Soft/yellowsoft.rsi - type: Clothing sprite: Clothing/Head/Soft/yellowsoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatYellowsoft] id: ClothingHeadHatYellowsoftFlipped @@ -280,7 +323,10 @@ sprite: Clothing/Head/Soft/bizarresoft.rsi - type: Clothing sprite: Clothing/Head/Soft/bizarresoft.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatBizarreSoft] id: ClothingHeadHatBizarreSoftFlipped @@ -301,6 +347,7 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatParamedicsoft] @@ -312,3 +359,4 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable diff --git a/Resources/Prototypes/Entities/Clothing/Head/welding.yml b/Resources/Prototypes/Entities/Clothing/Head/welding.yml index 659c63f343f..f20c9c1b82e 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/welding.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/welding.yml @@ -20,6 +20,7 @@ tags: - WhitelistChameleon - WeldingMask + - PetWearable - type: HideLayerClothing slots: - Snout @@ -39,6 +40,7 @@ - HamsterWearable - WhitelistChameleon - WeldingMask + - PetWearable - type: entity parent: WeldingMaskBase @@ -50,6 +52,9 @@ sprite: Clothing/Head/Welding/flame_welding_mask.rsi - type: Clothing sprite: Clothing/Head/Welding/flame_welding_mask.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: WeldingMaskBase @@ -61,7 +66,10 @@ sprite: Clothing/Head/Welding/blue_flame_welding_mask.rsi - type: Clothing sprite: Clothing/Head/Welding/blue_flame_welding_mask.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: WeldingMaskBase id: ClothingHeadHatWeldingMaskPainted @@ -71,4 +79,8 @@ - type: Sprite sprite: Clothing/Head/Welding/paintedwelding.rsi - type: Clothing - sprite: Clothing/Head/Welding/paintedwelding.rsi \ No newline at end of file + sprite: Clothing/Head/Welding/paintedwelding.rsi + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml index 871f4345796..ea70f1f8d26 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml @@ -31,6 +31,7 @@ tags: - Bandana - ClothMade + - PetWearable - type: HideLayerClothing slots: - Snout @@ -46,6 +47,9 @@ sprite: Clothing/Head/Bandanas/black.rsi - type: Clothing sprite: Clothing/Head/Bandanas/black.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -57,6 +61,9 @@ sprite: Clothing/Head/Bandanas/blue.rsi - type: Clothing sprite: Clothing/Head/Bandanas/blue.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -72,6 +79,7 @@ tags: - WhitelistChameleon - ClothMade + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -83,6 +91,9 @@ sprite: Clothing/Head/Bandanas/gold.rsi - type: Clothing sprite: Clothing/Head/Bandanas/gold.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -94,6 +105,9 @@ sprite: Clothing/Head/Bandanas/green.rsi - type: Clothing sprite: Clothing/Head/Bandanas/green.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -105,6 +119,9 @@ sprite: Clothing/Head/Bandanas/grey.rsi - type: Clothing sprite: Clothing/Head/Bandanas/grey.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -116,6 +133,9 @@ sprite: Clothing/Head/Bandanas/red.rsi - type: Clothing sprite: Clothing/Head/Bandanas/red.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -127,6 +147,9 @@ sprite: Clothing/Head/Bandanas/skull.rsi - type: Clothing sprite: Clothing/Head/Bandanas/skull.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -138,6 +161,9 @@ sprite: Clothing/Head/Bandanas/merc.rsi - type: Clothing sprite: Clothing/Head/Bandanas/merc.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBandanaBase @@ -149,3 +175,6 @@ sprite: Clothing/Head/Bandanas/brown.rsi - type: Clothing sprite: Clothing/Head/Bandanas/brown.rsi + - type: Tag + tags: + - PetWearable diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index 0df658b238c..4de921a04dd 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -14,6 +14,7 @@ - type: Tag tags: - HamsterWearable + - PetWearable - WhitelistChameleon - type: HideLayerClothing layers: @@ -39,6 +40,9 @@ Slash: 0.95 Piercing: 0.95 Heat: 0.95 + - type: Tag + tags: + - PetWearable - type: entity parent: [ClothingMaskGas] @@ -59,6 +63,9 @@ Slash: 0.95 Piercing: 0.95 Heat: 0.95 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGas @@ -74,6 +81,9 @@ modifiers: coefficients: Heat: 0.90 # Frontier 0.80<0.90 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGasAtmos @@ -87,6 +97,9 @@ sprite: Clothing/Mask/gascaptain.rsi - type: BreathMask - type: IngestionBlocker + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGasAtmos @@ -100,7 +113,9 @@ sprite: Clothing/Mask/gascentcom.rsi - type: BreathMask - type: IngestionBlocker - + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGas id: ClothingMaskGasExplorer @@ -118,6 +133,9 @@ Slash: 0.95 # Frontier 0.90<0.95 Piercing: 0.95 Heat: 0.95 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskPullableBase @@ -157,7 +175,10 @@ Slash: 0.95 Piercing: 0.95 Heat: 0.95 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskPullableBase id: ClothingMaskBreath @@ -202,6 +223,7 @@ - WhitelistChameleon - IPCMaskWearable # EE - IPCs - Mask + - PetWearable - type: HideLayerClothing slots: - Snout @@ -216,6 +238,7 @@ - HamsterWearable - WhitelistChameleon - IPCMaskWearable # EE - IPCs + - PetWearable - type: HideLayerClothing slots: - Snout @@ -232,6 +255,9 @@ - type: Construction graph: BananaClownMask node: mask + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskClown @@ -250,6 +276,9 @@ Slash: 0.95 Piercing: 0.95 Heat: 0.95 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -266,6 +295,9 @@ - type: HideLayerClothing slots: - Snout + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -283,6 +315,7 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Snout @@ -305,6 +338,9 @@ - type: PhysicalComposition materialComposition: Plastic: 25 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -326,6 +362,9 @@ - type: Construction graph: Muzzle node: muzzle + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskPullableBase @@ -344,6 +383,9 @@ slots: - Snout hideOnToggle: true + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskClownBase @@ -359,6 +401,9 @@ - type: Unremoveable - type: AddAccentClothing accent: StutteringAccent + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGas @@ -373,6 +418,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair @@ -405,6 +451,9 @@ Heat: 0.95 - type: PirateBountyItem # Frontier id: ClothingMaskGasMercenary # Frontier + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskGas @@ -418,6 +467,7 @@ sprite: Clothing/Mask/ert.rsi - type: Tag tags: + - PetWearable - WhitelistChameleon - type: HideLayerClothing slots: @@ -451,6 +501,9 @@ Slash: 0.80 Piercing: 0.90 Heat: 0.90 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -468,6 +521,7 @@ - HamsterWearable - WhitelistChameleon - IPCMaskWearable # EE - IPCs + - PetWearable - type: HideLayerClothing slots: - Snout @@ -491,6 +545,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -510,6 +565,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -529,6 +585,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -548,6 +605,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -567,6 +625,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -586,6 +645,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase @@ -604,6 +664,7 @@ tags: - WhitelistChameleon - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskNeckGaiter @@ -614,6 +675,9 @@ sprite: Clothing/Mask/neckgaiterred.rsi - type: Clothing sprite: Clothing/Mask/neckgaiterred.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskClownBase @@ -625,6 +689,9 @@ sprite: Clothing/Mask/blushingclown.rsi - type: Clothing sprite: Clothing/Mask/blushingclown.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskMime @@ -636,6 +703,9 @@ sprite: Clothing/Mask/blushingmime.rsi - type: Clothing sprite: Clothing/Mask/blushingmime.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskMime @@ -647,6 +717,9 @@ sprite: Clothing/Mask/sadmime.rsi - type: Clothing sprite: Clothing/Mask/sadmime.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskMime @@ -658,6 +731,9 @@ sprite: Clothing/Mask/scaredmime.rsi - type: Clothing sprite: Clothing/Mask/scaredmime.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -674,6 +750,9 @@ - type: AddAccentClothing accent: ReplacementAccent replacement: italian + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingMaskBase @@ -693,6 +772,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskGas @@ -716,3 +796,4 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable diff --git a/Resources/Prototypes/Entities/Clothing/Masks/specific.yml b/Resources/Prototypes/Entities/Clothing/Masks/specific.yml index 641d4cb13ac..806ba49a976 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/specific.yml @@ -42,6 +42,7 @@ - type: Tag tags: - IPCMaskWearable # EE - IPCs + - PetWearable - type: entity parent: ClothingMaskBase diff --git a/Resources/Prototypes/Entities/Clothing/Neck/medals.yml b/Resources/Prototypes/Entities/Clothing/Neck/medals.yml index 4b44bd78458..64e90332a08 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/medals.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/medals.yml @@ -23,6 +23,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -50,6 +51,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -75,6 +77,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -100,6 +103,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -125,6 +129,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -150,6 +155,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -175,7 +181,8 @@ - type: Tag tags: - Medal - + - PetWearable + - type: entity parent: ClothingNeckBase id: ClothingNeckClownmedal @@ -202,3 +209,4 @@ - type: Tag tags: - Medal + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Neck/misc.yml b/Resources/Prototypes/Entities/Clothing/Neck/misc.yml index 24af2b0f1ba..e67fb4d96f2 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/misc.yml @@ -30,6 +30,9 @@ path: /Audio/Items/flashlight_on.ogg soundDeactivate: path: /Audio/Items/flashlight_off.ogg + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckBase @@ -42,7 +45,10 @@ - type: Clothing sprite: Clothing/Neck/Misc/stethoscope.rsi - type: Stethoscope - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckBase id: ClothingNeckBling @@ -53,7 +59,10 @@ sprite: Clothing/Neck/Misc/bling.rsi - type: Clothing sprite: Clothing/Neck/Misc/bling.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckBase id: ClothingNeckLawyerbadge @@ -66,7 +75,10 @@ sprite: Clothing/Neck/Misc/lawyerbadge.rsi - type: TypingIndicatorClothing proto: lawyer - + - type: Tag + tags: + - PetWearable + - type: entity id: ActionStethoscope name: Listen with stethoscope @@ -94,3 +106,4 @@ tags: - Trash - WhitelistChameleon + - PetWearable diff --git a/Resources/Prototypes/Entities/Clothing/Neck/pins.yml b/Resources/Prototypes/Entities/Clothing/Neck/pins.yml index f586a2c0bde..47d493adbac 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/pins.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/pins.yml @@ -11,6 +11,9 @@ sprite: Clothing/Neck/Misc/pins.rsi - type: Clothing sprite: Clothing/Neck/Misc/pins.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckPinBase @@ -22,6 +25,9 @@ state: lgbt - type: Clothing equippedPrefix: lgbt + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckPinBase @@ -33,7 +39,10 @@ state: ally - type: Clothing equippedPrefix: ally - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckAromanticPin @@ -44,7 +53,10 @@ state: aro - type: Clothing equippedPrefix: aro - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckAsexualPin @@ -55,7 +67,10 @@ state: asex - type: Clothing equippedPrefix: asex - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckBisexualPin @@ -66,7 +81,10 @@ state: bi - type: Clothing equippedPrefix: bi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckGayPin @@ -77,7 +95,10 @@ state: gay - type: Clothing equippedPrefix: gay - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckIntersexPin @@ -88,7 +109,10 @@ state: inter - type: Clothing equippedPrefix: inter - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckLesbianPin @@ -99,7 +123,10 @@ state: les - type: Clothing equippedPrefix: les - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckNonBinaryPin @@ -110,7 +137,10 @@ state: non - type: Clothing equippedPrefix: non - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckPansexualPin @@ -121,7 +151,10 @@ state: pan - type: Clothing equippedPrefix: pan - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckOmnisexualPin @@ -132,7 +165,10 @@ state: omni - type: Clothing equippedPrefix: omni - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckGenderqueerPin @@ -143,7 +179,10 @@ state: gender - type: Clothing equippedPrefix: gender - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckTransPin @@ -154,7 +193,10 @@ state: trans - type: Clothing equippedPrefix: trans - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckAutismPin @@ -165,7 +207,10 @@ state: autism - type: Clothing equippedPrefix: autism - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckPinBase id: ClothingNeckGoldAutismPin @@ -176,3 +221,6 @@ state: goldautism - type: Clothing equippedPrefix: goldautism + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Neck/stoles.yml b/Resources/Prototypes/Entities/Clothing/Neck/stoles.yml index 48910159565..8a4c3d4f8d3 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/stoles.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/stoles.yml @@ -8,3 +8,6 @@ sprite: Clothing/Neck/Stoles/chaplain.rsi - type: Clothing sprite: Clothing/Neck/Stoles/chaplain.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Neck/ties.yml b/Resources/Prototypes/Entities/Clothing/Neck/ties.yml index 9e361d59192..8083fe672c7 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/ties.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/ties.yml @@ -13,6 +13,7 @@ - HamsterWearable - WhitelistChameleon - ClothMade + - PetWearable - type: entity parent: ClothingNeckBase @@ -24,7 +25,10 @@ sprite: Clothing/Neck/Ties/dettie.rsi - type: Clothing sprite: Clothing/Neck/Ties/dettie.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckBase id: ClothingNeckTieSci @@ -40,3 +44,4 @@ - ClothMade - HamsterWearable - WhitelistChameleon + - PetWearable diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 94e3ba89db3..978de9807b3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -625,8 +625,8 @@ type: SurgeryBui - type: InventorySlots - type: Inventory - speciesId: hamster - templateId: hamster + speciesId: mothroach + templateId: mothroach displacements: head: sizeMaps: diff --git a/Resources/Prototypes/InventoryTemplates/mothroach_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/mothroach_inventory_template.yml new file mode 100644 index 00000000000..faa0fb35f03 --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/mothroach_inventory_template.yml @@ -0,0 +1,60 @@ +- type: inventoryTemplate + id: mothroach + slots: + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,1 + strippingWindowPos: 1,1 + displayName: Mask + whitelist: + tags: + - PetWearable + - HamsterWearable + components: # Frontier + - HamsterWearable # Frontier + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,1 + strippingWindowPos: 0,1 + displayName: Neck + whitelist: + tags: + - PetWearable + - HamsterWearable + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,2 + strippingWindowPos: 0,0 + displayName: Eyes + whitelist: + tags: + - PetWearable + - HamsterWearable + components: # Frontier + - HamsterWearable # Frontier + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + stripTime: 3 + uiWindowPos: 1,0 + strippingWindowPos: 2,5 + displayName: Suit Storage + whitelist: + components: + - GasTank + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,2 + strippingWindowPos: 1,0 + displayName: Head + whitelist: + tags: + - PetWearable + - HamsterWearable + components: # Frontier + - HamsterWearable # Frontier \ No newline at end of file diff --git a/Resources/Prototypes/_DV/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_DV/Entities/Clothing/Eyes/glasses.yml index f74790b3f43..17aa5b9d75e 100644 --- a/Resources/Prototypes/_DV/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_DV/Entities/Clothing/Eyes/glasses.yml @@ -18,3 +18,7 @@ sprite: _DV/Clothing/Eyes/Glasses/traymeson.rsi - type: Clothing sprite: _DV/Clothing/Eyes/Glasses/traymeson.rsi + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/glasses.yml index 9f8f78c0c6f..eb9c1bf5799 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/glasses.yml @@ -25,7 +25,10 @@ interfaces: enum.ChameleonUiKey.Key: type: ChameleonBoundUserInterface - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesHudOmni] id: ClothingEyesGlassesCentComm @@ -45,6 +48,7 @@ - WhitelistChameleon - HudMedical - HudSecurity + - PetWearable - type: IdentityBlocker coverage: EYES - type: ShowHealthBars diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/hud.yml index 4eb44227a17..2ebcf515a3a 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Eyes/hud.yml @@ -8,10 +8,16 @@ sprite: _Goobstation/Clothing/Eyes/Hud/chrono.rsi - type: Clothing sprite: _Goobstation/Clothing/Eyes/Hud/chrono.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudChrono id: ClothingEyesHudChronoUnremoveable suffix: Unremoveable components: - type: Unremoveable + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/hats.yml index e583f91fd44..b98bef98fff 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Head/hats.yml @@ -12,6 +12,7 @@ tags: - ClothMade - WhitelistChameleon # We do a little bit of trolling. + - PetWearable - type: entity parent: [ClothingHeadBase] @@ -27,7 +28,8 @@ tags: - ClothMade - WhitelistChameleon - + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadSanabi @@ -40,3 +42,6 @@ sprite: _Goobstation/Clothing/Head/Hats/sanabi.rsi - type: StaticPrice # Monolith vendPrice: 220 + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Masks/masks.yml index 87066b01d37..dd48c4e0958 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Masks/masks.yml @@ -14,10 +14,14 @@ - WhitelistChameleon - HidesHair - HidesNose + - PetWearable - type: entity parent: ClothingMaskGasChrono id: ClothingMaskGasChronoUnremoveable suffix: Unremoveable components: - - type: Unremoveable \ No newline at end of file + - type: Unremoveable + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/Balaclava/balaclavas.yml b/Resources/Prototypes/_Mono/Entities/Clothing/Balaclava/balaclavas.yml index 5d240fe7214..0d22d6e9ad6 100644 --- a/Resources/Prototypes/_Mono/Entities/Clothing/Balaclava/balaclavas.yml +++ b/Resources/Prototypes/_Mono/Entities/Clothing/Balaclava/balaclavas.yml @@ -24,6 +24,9 @@ right: - state: inhand-right color: "#1F1F1F" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -48,6 +51,9 @@ right: - state: inhand-right color: "#6A6A6A" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -68,6 +74,9 @@ - state: inhand-left right: - state: inhand-right + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -92,6 +101,9 @@ right: - state: inhand-right color: "#ff2c2c" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -116,6 +128,9 @@ right: - state: inhand-right color: "#4CBB17" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -140,6 +155,9 @@ right: - state: inhand-right color: "#2832C2" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -164,6 +182,9 @@ right: - state: inhand-right color: "#B200ED" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -188,6 +209,9 @@ right: - state: inhand-right color: "#FFF200" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -212,6 +236,9 @@ right: - state: inhand-right color: "#d2B48C" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -236,6 +263,9 @@ right: - state: inhand-right color: "#4A5A49" + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingBalaclavaBase @@ -260,7 +290,10 @@ right: - state: inhand-right color: "#81613C" - + - type: Tag + tags: + - PetWearable + #ski mask + hole - type: entity @@ -286,7 +319,10 @@ right: - state: inhand-right color: "#1F1F1F" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthGray @@ -310,7 +346,10 @@ right: - state: inhand-right color: "#6A6A6A" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthWhite @@ -330,7 +369,10 @@ - state: inhand-left right: - state: inhand-right - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthRed @@ -354,7 +396,10 @@ right: - state: inhand-right color: "#ff2c2c" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthGreen @@ -378,7 +423,10 @@ right: - state: inhand-right color: "#4CBB17" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthBlue @@ -402,7 +450,10 @@ right: - state: inhand-right color: "#2832C2" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthPurple @@ -426,7 +477,10 @@ right: - state: inhand-right color: "#B200ED" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthYellow @@ -450,7 +504,10 @@ right: - state: inhand-right color: "#FFF200" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthTan @@ -474,7 +531,10 @@ right: - state: inhand-right color: "#d2B48C" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthRangerGreen @@ -498,7 +558,10 @@ right: - state: inhand-right color: "#4A5A49" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaSkiMaskMouthCoyoteBrown @@ -522,7 +585,10 @@ right: - state: inhand-right color: "#81613C" - + - type: Tag + tags: + - PetWearable + #classic mask no hole - type: entity @@ -548,7 +614,10 @@ right: - state: inhand-right color: "#1F1F1F" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicGray @@ -572,7 +641,10 @@ right: - state: inhand-right color: "#6A6A6A" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicWhite @@ -592,7 +664,10 @@ - state: inhand-left right: - state: inhand-right - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicRed @@ -616,7 +691,10 @@ right: - state: inhand-right color: "#ff2c2c" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicGreen @@ -640,7 +718,10 @@ right: - state: inhand-right color: "#4CBB17" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicBlue @@ -664,7 +745,10 @@ right: - state: inhand-right color: "#2832C2" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicPurple @@ -688,7 +772,10 @@ right: - state: inhand-right color: "#B200ED" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicYellow @@ -712,7 +799,10 @@ right: - state: inhand-right color: "#FFF200" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicTan @@ -736,7 +826,10 @@ right: - state: inhand-right color: "#d2B48C" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicRangerGreen @@ -760,7 +853,10 @@ right: - state: inhand-right color: "#4A5A49" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicCoyoteBrown @@ -784,7 +880,10 @@ right: - state: inhand-right color: "#81613C" - + - type: Tag + tags: + - PetWearable + #classic mask + hole - type: entity @@ -810,7 +909,10 @@ right: - state: inhand-right color: "#1F1F1F" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthGray @@ -834,7 +936,10 @@ right: - state: inhand-right color: "#6A6A6A" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthWhite @@ -854,7 +959,10 @@ - state: inhand-left right: - state: inhand-right - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthRed @@ -878,7 +986,10 @@ right: - state: inhand-right color: "#ff2c2c" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthGreen @@ -902,7 +1013,10 @@ right: - state: inhand-right color: "#4CBB17" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthBlue @@ -926,7 +1040,10 @@ right: - state: inhand-right color: "#2832C2" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthPurple @@ -950,7 +1067,10 @@ right: - state: inhand-right color: "#B200ED" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthYellow @@ -974,7 +1094,10 @@ right: - state: inhand-right color: "#FFF200" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthTan @@ -998,7 +1121,10 @@ right: - state: inhand-right color: "#d2B48C" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthRangerGreen @@ -1022,7 +1148,10 @@ right: - state: inhand-right color: "#4A5A49" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingBalaclavaBase id: ClothingBalaclavaClassicMouthCoyoteBrown @@ -1046,3 +1175,7 @@ right: - state: inhand-right color: "#81613C" + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_Mono/Entities/Clothing/Eyes/glasses.yml index e8471e03112..f2fed7de220 100644 --- a/Resources/Prototypes/_Mono/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_Mono/Entities/Clothing/Eyes/glasses.yml @@ -25,6 +25,10 @@ - Inorganic - Silicon - Biological + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudMedical @@ -51,7 +55,10 @@ - Inorganic - Silicon - Biological - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudMedical id: ClothingEyesBallisticGogglesGreen @@ -77,7 +84,10 @@ - Inorganic - Silicon - Biological - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudMedical id: ClothingEyesBallisticGlassesGreen @@ -103,7 +113,10 @@ - Inorganic - Silicon - Biological - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudMedical id: ClothingEyesBallisticGogglesOrange @@ -129,7 +142,10 @@ - Inorganic - Silicon - Biological - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudMedical id: ClothingEyesBallisticGlassesOrange @@ -155,7 +171,10 @@ - Inorganic - Silicon - Biological - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] id: ClothingEyesTSFOfficerGlasses @@ -182,3 +201,7 @@ action: ActionToggleNightVision phosphorColor: "#00FF00" lightingColor: "#FFFFFF32" + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/_Mono/Entities/Clothing/Masks/masks.yml index 010754bcec1..e00a8a3ea2e 100644 --- a/Resources/Prototypes/_Mono/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/_Mono/Entities/Clothing/Masks/masks.yml @@ -11,7 +11,10 @@ sprite: _Mono/Clothing/Mask/gasdi.rsi - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ ClothingMaskDrakeIndustries ] id: ClothingMaskDrakeIndustriesWatchdog @@ -26,7 +29,10 @@ coverage: MOUTH - type: EyeProtection protectionTime: 5 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGasExplorer id: ClothingMaskCOG @@ -39,7 +45,10 @@ sprite: _Mono/Clothing/Mask/cogmask.rsi - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + #tactical gas masks - type: entity @@ -57,7 +66,10 @@ sprite: _Mono/Clothing/Mask/SOM40.rsi - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGasExplorer id: ClothingMaskSOM41 @@ -73,7 +85,10 @@ sprite: _Mono/Clothing/Mask/SOM41.rsi - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGasExplorer id: ClothingMaskSOM42 @@ -89,3 +104,7 @@ sprite: _Mono/Clothing/Mask/SOM42.rsi - type: IdentityBlocker coverage: MOUTH + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml index 6c26dcd69c2..bd6dbd87bee 100644 --- a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mothroaches.yml @@ -510,8 +510,8 @@ type: StrippableBoundUserInterface - type: InventorySlots - type: Inventory - speciesId: hamster - templateId: hamster + speciesId: mothroach + templateId: mothroach displacements: head: sizeMaps: diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml index 00006f60b4d..2ba1611f892 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml @@ -12,6 +12,9 @@ - type: EyeProtection - type: VisionCorrection - type: IdentityBlocker + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -25,6 +28,9 @@ sprite: _NF/Clothing/Eyes/Glasses/pilot.rsi - type: HandheldGPS - type: VisionCorrection + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesGlassesSecurity @@ -36,3 +42,6 @@ sprite: _NF/Clothing/Eyes/Glasses/nfsd_glasses.rsi - type: Clothing sprite: _NF/Clothing/Eyes/Glasses/nfsd_glasses.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses_punks.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses_punks.yml index d20251478a9..1c9623e54eb 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses_punks.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses_punks.yml @@ -33,7 +33,10 @@ base_glasses_01: CyberpunkDark glasses_decor: decor_base_glasses_01: CyberpunkDark - + - type: Tag + tags: + - PetWearable + # HUDs - type: entity id: ClothingEyesPunkInfoShades @@ -78,3 +81,7 @@ - Inorganic - Silicon - Biological + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml index 57934ad2c51..469cabb76e8 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml @@ -8,6 +8,9 @@ sprite: _NF/Clothing/Eyes/Hud/nfsd_hud.rsi - type: Clothing sprite: _NF/Clothing/Eyes/Hud/nfsd_hud.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingEyesBase @@ -20,7 +23,10 @@ - type: Clothing sprite: _NF/Clothing/Eyes/Hud/mail.rsi - type: ShowJobIcons - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ClothingEyesHudMedical, ClothingEyesHudNfsd] id: ClothingEyesHudNfsdMed @@ -34,7 +40,10 @@ - type: Construction graph: HudMedSec node: medsecHud - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudSecurity id: ClothingEyesHudNfsdPatch @@ -45,7 +54,10 @@ sprite: _NF/Clothing/Eyes/Hud/nfsd_patch.rsi - type: Clothing sprite: _NF/Clothing/Eyes/Hud/nfsd_patch.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingEyesHudSecurity id: ClothingEyesHudBountyHunter @@ -55,3 +67,7 @@ - type: ShowHealthBars damageContainers: - Biological + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/goblin_headwear.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/goblin_headwear.yml index 117fb4cc059..33c72e99236 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/goblin_headwear.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/goblin_headwear.yml @@ -8,7 +8,10 @@ sprite: _NF/Clothing/Head/Hoods/goblin_robe_hood.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/goblin_robe_hood.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetBase id: ClothingHeadEVAHelmetGoblin @@ -20,3 +23,7 @@ sprite: _NF/Clothing/Head/Helmets/goblin_eva_hood.rsi - type: Clothing sprite: _NF/Clothing/Head/Helmets/goblin_eva_hood.rsi + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/hardsuit-helmets.yml index 39a80ed5fb4..01f9d750bcd 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/hardsuit-helmets.yml @@ -28,6 +28,9 @@ Slash: 0.9 Piercing: 0.9 Heat: 0.9 + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHelmetHardsuitMercenary @@ -41,7 +44,10 @@ sprite: _NF/Clothing/Head/Hardsuits/private_security.rsi - type: PointLight color: "#ffff00" - + - type: Tag + tags: + - PetWearable + #Pilot Hardsuit - type: entity parent: NFClothingHeadHardsuitWithLightBase @@ -60,7 +66,10 @@ - type: PressureProtection highPressureMultiplier: 0.1 lowPressureMultiplier: 1000 - + - type: Tag + tags: + - PetWearable + #ERT Mail Carrier Hardsuit - type: entity parent: ClothingHeadHelmetHardsuitSyndie @@ -75,7 +84,10 @@ sprite: _NF/Clothing/Head/Hardsuits/ERThelmets/ertmailcarrier.rsi - type: PointLight color: "#cbadff" - + - type: Tag + tags: + - PetWearable + # MAXIM helmet, but with light - type: entity parent: [ ClothingHeadHelmetHardsuitMaxim, NFClothingHeadHardsuitWithLightBase ] @@ -92,7 +104,10 @@ - type: PointLight # Luxury Hardsuit Light radius: 8 # 7->8 Mono energy: 4 # 3->4 Mono - + - type: Tag + tags: + - PetWearable + #Tactical hardsuit Helmet - type: entity parent: NFClothingHeadHardsuitWithLightBase @@ -115,7 +130,10 @@ Blunt: 0.8 Slash: 0.8 Piercing: 0.8 - + - type: Tag + tags: + - PetWearable + - type: entity parent: NFClothingHeadHardsuitWithLightBase id: ClothingHeadHelmetHardsuitPirateElite @@ -139,3 +157,7 @@ Slash: 0.9 Piercing: 0.9 Heat: 0.9 + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml index 01847fe6b74..33bff8b14a9 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml @@ -9,6 +9,9 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/bounty_hunter_hat.rsi - type: HamsterWearable + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBaseButcherable @@ -20,6 +23,9 @@ sprite: _NF/Clothing/Head/Hats/pilgrim_hat.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/pilgrim_hat.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBaseButcherable @@ -31,6 +37,9 @@ sprite: _NF/Clothing/Head/Hats/widebrim_hat.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/widebrim_hat.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadBaseButcherable @@ -42,7 +51,10 @@ sprite: _NF/Clothing/Head/Hats/cardinal_hat.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/cardinal_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatWitchhunter @@ -53,7 +65,10 @@ sprite: _NF/Clothing/Head/Hats/witch_hunter_hat.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/witch_hunter_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatBishopMitre @@ -64,7 +79,10 @@ sprite: _NF/Clothing/Head/Hats/bishop_mitre.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/bishop_mitre.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatKippah @@ -75,7 +93,10 @@ sprite: _NF/Clothing/Head/Hats/kippah.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/kippah.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatHoodCardinalHood @@ -87,7 +108,10 @@ sprite: _NF/Clothing/Head/Hoods/cardinal_hood.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/cardinal_hood.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatMcCrown @@ -98,7 +122,10 @@ sprite: _NF/Clothing/Head/Hoods/mccargocrown.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/mccargocrown.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatPilot @@ -112,7 +139,10 @@ - type: HideLayerClothing slots: - Hair - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatPirates @@ -123,7 +153,10 @@ sprite: _NF/Clothing/Head/Hats/pirate_hat.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/pirate_hat.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatPirateLuffy @@ -134,7 +167,10 @@ sprite: _NF/Clothing/Head/Hats/pirate_hat_luffy.rsi - type: Clothing sprite: _NF/Clothing/Head/Hats/pirate_hat_luffy.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatNfsdBeretGreen @@ -146,7 +182,10 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/nfsd_beret_green.rsi - type: CatWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatNfsdBeretBrown @@ -158,7 +197,10 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/nfsd_beret_brown.rsi - type: CatWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatNfsdBeretCream @@ -170,7 +212,10 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/nfsd_beret_cream.rsi - type: CatWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatNfsdCampaign @@ -199,7 +244,10 @@ storagebase: !type:Container - type: PirateBountyItem id: CampaignHat - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatNfsdCampaign id: ClothingHeadHatNfsdCampaignFilled @@ -212,7 +260,10 @@ - id: FlippoEngravedLighter - id: CigarGold amount: 3 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBaseButcherable id: ClothingHeadHatNfsdSmallCampaign @@ -226,7 +277,10 @@ - type: CatWearable - type: PirateBountyItem id: CampaignHat - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHopcap id: ClothingHeadHatSrCap @@ -238,7 +292,10 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/sr_cap.rsi - type: HamsterWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHopcap id: ClothingHeadHatSrBeret @@ -250,7 +307,10 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/sr_beret.rsi - type: CatWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHopcap id: ClothingHeadHatStcCap @@ -262,13 +322,16 @@ - type: Clothing sprite: _NF/Clothing/Head/Hats/stc_cap.rsi - type: HamsterWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatBeretHoS id: ClothingHeadHatBeretCommander name: commander's beret description: A black beret with a commander's rank emblem. - + - type: entity parent: ClothingHeadHatBeretHoS id: ClothingHeadHatBeretCommon @@ -279,7 +342,10 @@ sprite: _Mono/Clothing/Head/Hats/tsf_blue_beret.rsi - type: Clothing sprite: _Mono/Clothing/Head/Hats/tsf_blue_beret.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadHatHopcap id: ClothingHeadHatUtilityTsfmc @@ -294,3 +360,4 @@ tags: - HamsterWearable - WhitelistChameleon + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_blood_cult.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_blood_cult.yml index 0bc5b854d81..4568cf690eb 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_blood_cult.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_blood_cult.yml @@ -11,6 +11,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable - type: entity parent: @@ -26,6 +29,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable - type: entity # for looks only parent: [ ClothingHeadHatHoodBloodCulthood, ClothingHeadHelmetBasic ] @@ -34,3 +40,6 @@ name: cult hood components: - type: Unremoveable + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_punks.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_punks.yml index 9bade6e0f17..75ad7684eaf 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_punks.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_punks.yml @@ -17,6 +17,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodAcidRaincoat @@ -27,6 +30,9 @@ sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_blue.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_blue.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodAcidRaincoat @@ -37,6 +43,9 @@ sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_green.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_green.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodAcidRaincoat @@ -47,6 +56,9 @@ sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_magenta.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_magenta.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHatHoodAcidRaincoat @@ -57,3 +69,6 @@ sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_yellow.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/Coat/acid_raincoat_yellow.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_syndicate.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_syndicate.yml index b9b219b65cd..1189b0065f9 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_syndicate.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/headwear_syndicate.yml @@ -12,6 +12,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable # Syndicate armored bio suit hood - type: entity @@ -30,6 +33,9 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable # Syndicate NPC unremoveable headwear for looks only - type: entity @@ -39,6 +45,10 @@ categories: [ HideSpawnMenu ] components: - type: Unremoveable + - type: Tag + tags: + - PetWearable + - type: entity parent: @@ -47,6 +57,10 @@ categories: [ HideSpawnMenu ] components: - type: Unremoveable + - type: Tag + tags: + - PetWearable + - type: entity parent: @@ -55,6 +69,10 @@ categories: [ HideSpawnMenu ] components: - type: Unremoveable + - type: Tag + tags: + - PetWearable + - type: entity parent: @@ -63,4 +81,8 @@ categories: [ HideSpawnMenu ] name: syndicate coat hood components: - - type: Unremoveable \ No newline at end of file + - type: Unremoveable + - type: Tag + tags: + - PetWearable + diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml index a0888333a17..ab43f1b30bf 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml @@ -12,6 +12,9 @@ sprite: _NF/Clothing/Head/Helmets/ert_mailcarrier.rsi - type: Clothing sprite: _NF/Clothing/Head/Helmets/ert_mailcarrier.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingHeadHelmetBasic @@ -23,6 +26,9 @@ sprite: _NF/Clothing/Head/Helmets/nfsd.rsi - type: Clothing sprite: _NF/Clothing/Head/Helmets/nfsd.rsi + - type: Tag + tags: + - PetWearable #Mercenary Helmet - type: entity @@ -35,3 +41,6 @@ sprite: _NF/Clothing/Head/Helmets/mercenary_black.rsi - type: Clothing sprite: _NF/Clothing/Head/Helmets/mercenary_black.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/hoods.yml index 081fc943c96..fed39f0287b 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/hoods.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/hoods.yml @@ -9,7 +9,10 @@ sprite: _NF/Clothing/Head/Hoods/Coat/arcadia.rsi - type: Clothing sprite: _NF/Clothing/Head/Hoods/Coat/arcadia.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodRosyCloak @@ -23,6 +26,7 @@ - type: Tag tags: - WhitelistChameleon + - PetWearable - type: HideLayerClothing slots: - Hair diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/softsuit-helmets.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/softsuit-helmets.yml index 520d7eabcd1..92f9d0f208a 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/softsuit-helmets.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/softsuit-helmets.yml @@ -64,7 +64,10 @@ mask: /Textures/Effects/LightMasks/cone.png autoRot: true netsync: false - + - type: Tag + tags: + - PetWearable + # DEPARTMENTAL - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -91,7 +94,10 @@ color: "#6b4600" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetMailman @@ -117,7 +123,10 @@ color: "#3e3e48" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + # COLORED DEPARTMENTAL ## CONTRACTORS - type: entity @@ -145,7 +154,10 @@ color: "#3e3e48" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + ## COMMAND - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -179,7 +191,10 @@ - type: PointLight radius: 5 energy: 2 - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetCaptain @@ -212,7 +227,10 @@ - type: PointLight radius: 5 energy: 2 - + - type: Tag + tags: + - PetWearable + ## ENGINEERING - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -239,7 +257,10 @@ color: "#ff7f00" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetAtmosTech @@ -267,7 +288,10 @@ color: "#e1b537" - type: PointLight color: "#adffe6" - + - type: Tag + tags: + - PetWearable + ## SUPPLY - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -294,7 +318,10 @@ color: "#3e3e48" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetSalvage @@ -322,7 +349,10 @@ color: "#adcfd5" - type: PointLight radius: 6 - + - type: Tag + tags: + - PetWearable + ## MEDICAL - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -351,7 +381,10 @@ color: "#adcfd5" - type: PointLight color: "#adf1ff" - + - type: Tag + tags: + - PetWearable + ## SCIENCE - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -380,7 +413,10 @@ color: "#2accff" - type: PointLight color: "#d6adff" - + - type: Tag + tags: + - PetWearable + ## SERVICE - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -409,7 +445,10 @@ color: "#bb5cc9" - type: PointLight color: "#d6adff" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetServiceWorker @@ -435,7 +474,10 @@ color: "#606275" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetChaplain @@ -463,7 +505,10 @@ color: "#ffce5b" - type: PointLight color: "#ffce5b" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetBoxerRed @@ -489,7 +534,10 @@ color: "#606275" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetBoxerGreen @@ -515,7 +563,10 @@ color: "#606275" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetBoxerBlue @@ -541,7 +592,10 @@ color: "#606275" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetBoxerYellow @@ -567,7 +621,10 @@ color: "#606275" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetBoxerRandom @@ -597,7 +654,10 @@ available: - EVA_helmet_decal_boxing: equipped-head-base: Sixteen # CyberpunkNeon - + - type: Tag + tags: + - PetWearable + ## WILDCARDS - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -624,7 +684,10 @@ color: "#784f1e" - state: equipped-head-visor color: "#adcfd5" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetMercenary @@ -650,7 +713,10 @@ color: "#27272e" - state: equipped-head-visor color: "#f5fc95" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetPrivateSec @@ -676,7 +742,10 @@ color: "#2286bd" - state: equipped-head-visor color: "#ffd600" - + - type: Tag + tags: + - PetWearable + ## NFSD - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -703,7 +772,10 @@ color: "#384d2f" - state: equipped-head-visor color: "#52843f" - + - type: Tag + tags: + - PetWearable + ## PLAYER FACTIONS - type: entity parent: ClothingHeadEVAHelmetWithLightBase @@ -730,7 +802,10 @@ color: "#3e3e48" - state: equipped-head-visor color: "#283846" - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingHeadEVAHelmetWithLightBase id: ClothingHeadEVAHelmetArcadia @@ -756,7 +831,10 @@ color: "#3e3e48" - state: equipped-head-visor color: "#8f1717" - + - type: Tag + tags: + - PetWearable + #FSB Void suit helmet - type: entity parent: NFClothingHeadHardsuitWithLightBase @@ -782,3 +860,7 @@ #- Snout - HeadTop #- HeadSide + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml index b8b220cf85a..e8576068417 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml @@ -11,6 +11,10 @@ - type: HideLayerClothing slots: - Hair + - type: Tag + tags: + - PetWearable + - type: entity parent: PlushieXeno #Mono: Remove ClothingMaskBase @@ -29,6 +33,10 @@ - type: AddAccentClothing accent: ReplacementAccent replacement: mumble + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGas @@ -42,7 +50,10 @@ sprite: _NF/Clothing/Mask/pilot.rsi - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGasSecurity id: ClothingMaskGasNfsd @@ -54,7 +65,10 @@ - type: Clothing sprite: _NF/Clothing/Mask/nfsd.rsi - type: CatWearable - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskGasSwat id: ClothingMaskGasSheriff @@ -65,7 +79,10 @@ sprite: _NF/Clothing/Mask/nfsd_sheriff.rsi - type: Clothing sprite: _NF/Clothing/Mask/nfsd_sheriff.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: [ ClothingMaskGasExplorer ] id: ClothingMaskCultJanitor @@ -79,7 +96,10 @@ - type: HideLayerClothing slots: - Hair - + - type: Tag + tags: + - PetWearable + - type: entity id: ClothingMaskPunkHalf parent: [ ClothingMaskGasExplorer, RecyclableItemClothDevice ] @@ -116,7 +136,10 @@ decor-equipped-MASK: CyberpunkNeon - type: IdentityBlocker coverage: MOUTH - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingMaskClown id: ClothingMaskClownBald @@ -127,3 +150,7 @@ sprite: _NF/Clothing/Mask/clown_bald.rsi - type: Clothing sprite: _NF/Clothing/Mask/clown_bald.rsi + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/badges.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/badges.yml index 58f35b0d090..9a40818e882 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/badges.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/badges.yml @@ -12,7 +12,10 @@ layers: [] - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_bronze_badge.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckNfsdBadge id: ClothingNeckNfsdBadgeSecurityCadet @@ -29,6 +32,9 @@ sprite: _NF/Clothing/Neck/Scarfs/nfsd_silver_badge.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_silver_badge.rsi + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckNfsdBadge @@ -40,7 +46,10 @@ sprite: _NF/Clothing/Neck/Scarfs/nfsd_silvercross_badge.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_silvercross_badge.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckNfsdBadge id: ClothingNeckNfsdBadgeDetective @@ -51,7 +60,10 @@ sprite: _NF/Clothing/Neck/Scarfs/nfsd_silver_badge.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_silver_badge.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckNfsdBadge id: ClothingNeckNfsdBadgeSeniorOfficer @@ -62,7 +74,10 @@ sprite: _NF/Clothing/Neck/Scarfs/nfsd_gold_badge.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_gold_badge.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckNfsdBadge id: ClothingNeckNfsdBadgeWarden @@ -73,7 +88,10 @@ sprite: _NF/Clothing/Neck/Scarfs/nfsd_gold_badge.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_gold_badge.rsi - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckNfsdBadge id: ClothingNeckNfsdBadgeSheriff @@ -85,7 +103,10 @@ - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/nfsd_star_badge.rsi - type: EmbeddableProjectile # pointy - + - type: Tag + tags: + - PetWearable + - type: entity parent: ClothingNeckBase id: ClothingNeckPublicAffairsLiaisonBadge @@ -99,3 +120,7 @@ sprite: _NF/Clothing/Neck/Misc/palbadge.rsi - type: TypingIndicatorClothing proto: pal + - type: Tag + tags: + - PetWearable + \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/medals.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/medals.yml index 8060b6bd1fa..37f7cc55add 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/medals.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/medals.yml @@ -11,7 +11,7 @@ - type: Tag tags: - Medal - + - PetWearable - type: entity parent: ClothingNeckBase id: ClothingNeckMedalNfsdShieldGold @@ -25,6 +25,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -39,6 +40,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -53,6 +55,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -67,6 +70,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -81,6 +85,7 @@ - type: Tag tags: - Medal + - PetWearable - type: entity parent: ClothingNeckBase @@ -95,6 +100,7 @@ - type: Tag tags: - Medal + - PetWearable # just a little joke :) - type: entity @@ -110,6 +116,7 @@ - type: Tag tags: - Medal + - PetWearable - type: Construction graph: ClothingNeckMedalGloriousOrder node: GloriousOrder diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml index 2eb3a0c50b9..471c19f9da3 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml @@ -18,6 +18,7 @@ tags: - ObjectOfSpiritualSignificance - Crucifix + - PetWearable - type: entity parent: @@ -47,6 +48,7 @@ - type: Tag tags: - ObjectOfSpiritualSignificance + - PetWearable - type: PirateBountyItem id: ClothingNeckAmuletBloodCult @@ -73,6 +75,9 @@ - state: equipped-NECK-on color: "#a9b6bd" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -94,6 +99,9 @@ - state: equipped-NECK-on color: "#33cc00" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -115,6 +123,9 @@ - state: equipped-NECK-on color: "#990000" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -136,6 +147,9 @@ - state: equipped-NECK-on color: "#0055cc" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -157,6 +171,9 @@ - state: equipped-NECK-on color: "#47f8ff" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -178,6 +195,9 @@ - state: equipped-NECK-on color: "#ff8227" shader: unshaded + - type: Tag + tags: + - PetWearable - type: entity parent: ClothingNeckIFFNeutral @@ -199,3 +219,6 @@ - state: equipped-NECK-on color: "#9c0de1" shader: unshaded + - type: Tag + tags: + - PetWearable diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/scarfs.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/scarfs.yml index 29c406961bd..dbc8b8993b5 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/scarfs.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/scarfs.yml @@ -7,6 +7,7 @@ - type: Tag tags: - ObjectOfSpiritualSignificance + - PetWearable - type: Sprite sprite: _NF/Clothing/Neck/Scarfs/chaplain_stole.rsi - type: Clothing @@ -22,3 +23,6 @@ sprite: _NF/Clothing/Neck/Scarfs/pilot.rsi - type: Clothing sprite: _NF/Clothing/Neck/Scarfs/pilot.rsi + - type: Tag + tags: + - PetWearable \ No newline at end of file From 2ab44b24fba28f926a4efff2cff686df7196188a Mon Sep 17 00:00:00 2001 From: solomam Date: Thu, 16 Jul 2026 12:31:15 +0100 Subject: [PATCH 10/16] fixed shitmed replacing animal heart would make them unrevivable now allowing animals to have cyber limbs, potential for new limb options later on cappy is now shitmed enabled to recieve surgery Signed-off-by: solomam --- Resources/Prototypes/Body/Parts/animal.yml | 51 ++++++-- Resources/Prototypes/Body/Parts/base.yml | 34 +++++ Resources/Prototypes/Body/Parts/mothroach.yml | 123 ++++++++++++++++++ .../Body/Prototypes/Animal/animal.yml | 41 ++++-- .../Body/Prototypes/Specific/mothroach.yml | 13 -- .../Prototypes/Body/Prototypes/mothroach.yml | 35 +++++ .../_NF/Entities/Mobs/NPCs/pets.yml | 5 + .../Prototypes/_Shitmed/Body/Parts/base.yml | 42 ++++++ 8 files changed, 309 insertions(+), 35 deletions(-) create mode 100644 Resources/Prototypes/Body/Parts/mothroach.yml delete mode 100644 Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml create mode 100644 Resources/Prototypes/Body/Prototypes/mothroach.yml diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index 03f765e40fa..489111e99ee 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -64,13 +64,48 @@ slotId: feet # Shitmed - type: entity - parent: [ PartAnimalBase, BaseTorso ] + parent: [ PartAnimalBase, BaseLeftLeg ] + id: LeftLegAnimal + name: "left animal legs" + components: + - type: Sprite + layers: + - state: l_leg + - state: r_leg + - type: Icon + state: l_leg # cba to make a state for it + partType: Leg + symmetry: Left + slotId: leg # Shitmed + - type: MovementBodyPart + +- type: entity + parent: [ PartAnimalBase, BaseRightLeg ] + id: RightLegAnimal + name: "right animal legs" + components: + - type: Sprite + layers: + - state: l_leg + - state: r_leg + - type: Icon + state: l_leg # cba to make a state for it + partType: Leg + symmetry: Left + slotId: leg # Shitmed + - type: MovementBodyPart + +- type: entity + parent: [ PartAnimalBase, BaseTorsoAnimal ] id: TorsoAnimal name: animal torso - components: - - type: BodyPart - # standard organs are good for most animals - children: # most animals have no hands (primate is unused) so just legs by default - legs: - id: legs - type: Leg + slots: + torso: + part: TorsoAnimal + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganMothStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + diff --git a/Resources/Prototypes/Body/Parts/base.yml b/Resources/Prototypes/Body/Parts/base.yml index c6705da189c..cf495845393 100644 --- a/Resources/Prototypes/Body/Parts/base.yml +++ b/Resources/Prototypes/Body/Parts/base.yml @@ -76,6 +76,40 @@ torso_slot: !type:ContainerSlot {} # Shitmed Change End +- type: entity + abstract: true + id: BaseTorsoInorganicAnimal + name: "torso" + components: + - type: Sprite + state: "torso_m" + - type: Icon + state: "torso_m" + - type: BodyPart + partType: Torso + # Shitmed Change Start + toolName: "a torso" + containerName: "torso_slot" + children: + head: + id: head + type: Head + organs: + heart: + id: heart + lungs: + id: lungs + stomach: + id: stomach + liver: + id: liver + kidneys: + id: kidneys + - type: ContainerContainer + containers: + torso_slot: !type:ContainerSlot {} + # Shitmed Change End + - type: entity abstract: true id: BaseHead diff --git a/Resources/Prototypes/Body/Parts/mothroach.yml b/Resources/Prototypes/Body/Parts/mothroach.yml new file mode 100644 index 00000000000..7b822a6bf60 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/mothroach.yml @@ -0,0 +1,123 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartMothroach + parent: [BaseItem, BasePart] + name: "moth body part" + abstract: true + components: + - type: Icon # Shitmed Change + sprite: Mobs/Species/Moth/parts.rsi + - type: BodyPart # Shitmed Change + species: Mothroach + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: InsectBlood + Quantity: 10 + +- type: entity + id: TorsoMothRoach + name: "mothroach torso" + parent: [ PartMothroach, BaseTorsoAnimal ] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: InsectBlood + Quantity: 20 + +- type: entity + id: HeadMothRoach + name: "moth head" + parent: [PartMoth, BaseHead] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: InsectBlood + Quantity: 10 + +- type: entity + id: LeftArmMothRoach + name: "left moth arm" + parent: [PartMoth, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "l_arm" + +- type: entity + id: RightArmMothRoach + name: "right moth arm" + parent: [PartMoth, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "r_arm" + +- type: entity + id: LeftHandMothRoach + name: "left moth hand" + parent: [PartMoth, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "l_hand" + +- type: entity + id: RightHandMothRoach + name: "right moth hand" + parent: [PartMoth, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "r_hand" + +- type: entity + id: LeftLegMothRoach + name: "left moth leg" + parent: [PartMoth, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "l_leg" + +- type: entity + id: RightLegMothRoach + name: "right moth leg" + parent: [PartMoth, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "r_leg" + +- type: entity + id: LeftFootMothRoach + name: "left moth foot" + parent: [PartMoth, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "l_foot" + +- type: entity + id: RightFootMothRoach + name: "right moth foot" + parent: [PartMoth, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Species/Moth/parts.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index a8c81f9eb60..afd6455ecd9 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -3,41 +3,54 @@ name: "animal" root: torso slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes torso: part: TorsoAnimal - connections: - - legs organs: lungs: OrganAnimalLungs stomach: OrganAnimalStomach liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys - legs: - part: LegsAnimal connections: - - feet - feet: - part: FeetAnimal + - right leg + - left leg + right leg: + part: RightLegAnimal + left leg: + part: LeftLegAnimal + - type: body id: Mouse name: "mouse" root: torso slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes torso: part: TorsoAnimal - connections: - - legs organs: lungs: OrganAnimalLungs stomach: OrganMouseStomach liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys - legs: - part: LegsAnimal connections: - - feet - feet: - part: FeetAnimal \ No newline at end of file + - right leg + - left leg + right leg: + part: RightLegAnimal + left leg: + part: LeftLegAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml b/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml deleted file mode 100644 index ef5df769def..00000000000 --- a/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml +++ /dev/null @@ -1,13 +0,0 @@ -- type: body - id: Mothroach - name: "mothroach" - root: torso - slots: - torso: - part: TorsoAnimal - organs: - lungs: OrganAnimalLungs - stomach: OrganMothStomach - liver: OrganAnimalLiver - heart: OrganAnimalHeart - kidneys: OrganAnimalKidneys diff --git a/Resources/Prototypes/Body/Prototypes/mothroach.yml b/Resources/Prototypes/Body/Prototypes/mothroach.yml new file mode 100644 index 00000000000..0362cefb86a --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/mothroach.yml @@ -0,0 +1,35 @@ +- type: body + id: Mothroach + name: "mothroach" + root: torso + slots: + head: + part: HeadMothRoach + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoMothRoach + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganMothStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + connections: + - right leg + - left leg + right leg: + part: RightLegMoth + connections: + - right foot + left leg: + part: LeftLegMoth + connections: + - left foot + right foot: + part: RightFootMoth + left foot: + part: LeftFootMoth \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml index 1f534d1ce1b..8656a4006ec 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/pets.yml @@ -163,6 +163,11 @@ - type: SouthernAccent - type: Company companyName: TSF + - type: SurgeryTarget # Shitmed + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: # Shitmed + type: SurgeryBui - type: entity name: El Capo diff --git a/Resources/Prototypes/_Shitmed/Body/Parts/base.yml b/Resources/Prototypes/_Shitmed/Body/Parts/base.yml index 34d8fc60bd7..f1cc60150cf 100644 --- a/Resources/Prototypes/_Shitmed/Body/Parts/base.yml +++ b/Resources/Prototypes/_Shitmed/Body/Parts/base.yml @@ -86,3 +86,45 @@ Quantity: 10 - ReagentId: Blood Quantity: 20 + +- type: entity + abstract: true + parent: BaseTorsoInorganicAnimal + id: BaseTorsoAnimal + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 400 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + - type: Extractable # torso is meatier + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 \ No newline at end of file From 01819b95049eb350a0c0943d4dd9f12e9b8377c4 Mon Sep 17 00:00:00 2001 From: solomam Date: Thu, 16 Jul 2026 14:01:09 +0100 Subject: [PATCH 11/16] appeasing the yaml linter Signed-off-by: solomam --- .../Prototypes/Body/Prototypes/Animal/animal.yml | 16 +++++++++++++++- .../Prototypes/_Goobstation/Actions/types.yml | 1 - 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index afd6455ecd9..fc13bea90d7 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -53,4 +53,18 @@ right leg: part: RightLegAnimal left leg: - part: LeftLegAnimal \ No newline at end of file + part: LeftLegAnimal + +- type: entity + parent: [ PartAnimalBase, BaseTorsoAnimal ] + id: TorsoAnimal + name: animal torso + slots: + torso: + part: TorsoAnimal + organs: + heart: OrganAnimalHeart + lungs: OrganHumanLungs + stomach: OrganMothStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys \ No newline at end of file diff --git a/Resources/Prototypes/_Goobstation/Actions/types.yml b/Resources/Prototypes/_Goobstation/Actions/types.yml index c3bc6dcb939..e2f1aca9a4a 100644 --- a/Resources/Prototypes/_Goobstation/Actions/types.yml +++ b/Resources/Prototypes/_Goobstation/Actions/types.yml @@ -25,7 +25,6 @@ checkCanAccess: false range: 0 icon: { sprite: _Goobstation/Actions/dash.rsi, state: icon } - state: icon itemIconStyle: NoItem sound: !type:SoundPathSpecifier path: /Audio/_Goobstation/Effects/moth_wings.ogg From 355573bbb9ad4dc7be7e7ada3145787d0978e292 Mon Sep 17 00:00:00 2001 From: solomam Date: Thu, 16 Jul 2026 14:06:35 +0100 Subject: [PATCH 12/16] yaml linter fix attempt 2 Signed-off-by: solomam --- Resources/Prototypes/Body/Parts/animal.yml | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index 489111e99ee..7c92a831767 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -93,19 +93,4 @@ partType: Leg symmetry: Left slotId: leg # Shitmed - - type: MovementBodyPart - -- type: entity - parent: [ PartAnimalBase, BaseTorsoAnimal ] - id: TorsoAnimal - name: animal torso - slots: - torso: - part: TorsoAnimal - organs: - heart: OrganAnimalHeart - lungs: OrganHumanLungs - stomach: OrganMothStomach - liver: OrganAnimalLiver - kidneys: OrganHumanKidneys - + - type: MovementBodyPart \ No newline at end of file From 8b8bd30c66f787c36377eade1a67e2b191a1f5e8 Mon Sep 17 00:00:00 2001 From: solomam Date: Fri, 17 Jul 2026 02:52:26 +0100 Subject: [PATCH 13/16] added animal feet made animal legs and feet... edible added animal heads Signed-off-by: solomam --- Resources/Prototypes/Body/Parts/animal.yml | 36 ++++++++++++++-- .../Body/Prototypes/Animal/animal.yml | 42 ++++++++++--------- .../Body/Prototypes/Animal/mouse.yml | 35 ++++++++++++++++ .../Body/Prototypes/Animal/ruminant.yml | 28 +++++++++---- .../Prototypes/Body/Prototypes/mothroach.yml | 8 ++-- 5 files changed, 115 insertions(+), 34 deletions(-) create mode 100644 Resources/Prototypes/Body/Prototypes/Animal/mouse.yml diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index 7c92a831767..e00e5e4447d 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -64,7 +64,7 @@ slotId: feet # Shitmed - type: entity - parent: [ PartAnimalBase, BaseLeftLeg ] + parent: [ PartAnimalBase, BaseLeftLeg, BaseAnimalOrgan ] id: LeftLegAnimal name: "left animal legs" components: @@ -80,7 +80,7 @@ - type: MovementBodyPart - type: entity - parent: [ PartAnimalBase, BaseRightLeg ] + parent: [ PartAnimalBase, BaseRightLeg, BaseAnimalOrgan ] id: RightLegAnimal name: "right animal legs" components: @@ -93,4 +93,34 @@ partType: Leg symmetry: Left slotId: leg # Shitmed - - type: MovementBodyPart \ No newline at end of file + - type: MovementBodyPart + +- type: entity + parent: [ PartAnimalBase, BaseLeftFoot, BaseAnimalOrgan ] + id: LeftFootAnimal + name: "left animal feet" + components: + - type: Sprite + layers: + - state: r_foot + - state: l_foot + - type: Icon + state: l_foot # cba to make a state for it + - type: BodyPart + partType: Foot + slotId: feet # Shitmed + +- type: entity + parent: [ PartAnimalBase, BaseRightFoot, BaseAnimalOrgan ] + id: RightFootAnimal + name: "right animal feet" + components: + - type: Sprite + layers: + - state: r_foot + - state: l_foot + - type: Icon + state: l_foot # cba to make a state for it + - type: BodyPart + partType: Foot + slotId: feet # Shitmed \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index fc13bea90d7..45cdf4e8c41 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -23,13 +23,21 @@ - left leg right leg: part: RightLegAnimal + connections: + - right foot left leg: part: LeftLegAnimal + connections: + - left foot + right foot: + part: RightFootAnimal + left foot: + part: LeftFootAnimal - -- type: body - id: Mouse - name: "mouse" +- type: entity + parent: [ PartAnimalBase, BaseTorsoAnimal ] + id: TorsoAnimal + name: "animal torso" root: torso slots: head: @@ -42,29 +50,23 @@ torso: part: TorsoAnimal organs: + heart: OrganAnimalHeart lungs: OrganAnimalLungs - stomach: OrganMouseStomach + stomach: OrganAnimalStomach liver: OrganAnimalLiver - heart: OrganAnimalHeart kidneys: OrganAnimalKidneys connections: - right leg - left leg right leg: part: RightLegAnimal + connections: + - right foot left leg: part: LeftLegAnimal - -- type: entity - parent: [ PartAnimalBase, BaseTorsoAnimal ] - id: TorsoAnimal - name: animal torso - slots: - torso: - part: TorsoAnimal - organs: - heart: OrganAnimalHeart - lungs: OrganHumanLungs - stomach: OrganMothStomach - liver: OrganAnimalLiver - kidneys: OrganHumanKidneys \ No newline at end of file + connections: + - left foot + right foot: + part: RightFootAnimal + left foot: + part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/mouse.yml b/Resources/Prototypes/Body/Prototypes/Animal/mouse.yml new file mode 100644 index 00000000000..974f6114245 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/Animal/mouse.yml @@ -0,0 +1,35 @@ +- type: body + id: Mouse + name: "mouse" + root: torso + slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoAnimal + organs: + lungs: OrganAnimalLungs + stomach: OrganMouseStomach + liver: OrganAnimalLiver + heart: OrganAnimalHeart + kidneys: OrganAnimalKidneys + connections: + - right leg + - left leg + right leg: + part: RightLegAnimal + connections: + - right foot + left leg: + part: LeftLegAnimal + connections: + - left foot + right foot: + part: RightFootAnimal + left foot: + part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml b/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml index cd3ab1fdd78..c2a24fc64b7 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml @@ -3,10 +3,15 @@ name: "ruminant" root: torso slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes torso: part: TorsoAnimal - connections: - - legs organs: lungs: OrganAnimalLungs stomach: OrganAnimalRuminantStomach @@ -14,9 +19,18 @@ liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys - legs: - part: LegsAnimal connections: - - feet - feet: - part: FeetAnimal + - right leg + - left leg + right leg: + part: RightLegAnimal + connections: + - right foot + left leg: + part: LeftLegAnimal + connections: + - left foot + right foot: + part: RightFootAnimal + left foot: + part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/mothroach.yml b/Resources/Prototypes/Body/Prototypes/mothroach.yml index 0362cefb86a..52b722b2d05 100644 --- a/Resources/Prototypes/Body/Prototypes/mothroach.yml +++ b/Resources/Prototypes/Body/Prototypes/mothroach.yml @@ -22,14 +22,14 @@ - right leg - left leg right leg: - part: RightLegMoth + part: RightLegAnimal connections: - right foot left leg: - part: LeftLegMoth + part: LeftLegAnimal connections: - left foot right foot: - part: RightFootMoth + part: RightFootAnimal left foot: - part: LeftFootMoth \ No newline at end of file + part: LeftFootAnimal \ No newline at end of file From ac05ba162b4a49b957f6ae29fe1f82910c38e682 Mon Sep 17 00:00:00 2001 From: solomam Date: Fri, 17 Jul 2026 03:22:11 +0100 Subject: [PATCH 14/16] yaml linter fix 3? Signed-off-by: solomam --- .../Body/Prototypes/Animal/animal.yml | 37 ------------------- .../Body/Prototypes/Animal/base.yml | 36 ++++++++++++++++++ 2 files changed, 36 insertions(+), 37 deletions(-) create mode 100644 Resources/Prototypes/Body/Prototypes/Animal/base.yml diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index 45cdf4e8c41..01ed20f63fb 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -31,42 +31,5 @@ - left foot right foot: part: RightFootAnimal - left foot: - part: LeftFootAnimal - -- type: entity - parent: [ PartAnimalBase, BaseTorsoAnimal ] - id: TorsoAnimal - name: "animal torso" - root: torso - slots: - head: - part: HeadAnimal - connections: - - torso - organs: - brain: OrganAnimalBrain - eyes: OrganAnimalEyes - torso: - part: TorsoAnimal - organs: - heart: OrganAnimalHeart - lungs: OrganAnimalLungs - stomach: OrganAnimalStomach - liver: OrganAnimalLiver - kidneys: OrganAnimalKidneys - connections: - - right leg - - left leg - right leg: - part: RightLegAnimal - connections: - - right foot - left leg: - part: LeftLegAnimal - connections: - - left foot - right foot: - part: RightFootAnimal left foot: part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/base.yml b/Resources/Prototypes/Body/Prototypes/Animal/base.yml new file mode 100644 index 00000000000..a7a65cf8ebd --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/Animal/base.yml @@ -0,0 +1,36 @@ +- type: entity + parent: [ PartAnimalBase, BaseTorsoAnimal ] + id: TorsoAnimal + name: "animal torso" + root: torso + slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoAnimal + organs: + heart: OrganAnimalHeart + lungs: OrganAnimalLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + connections: + - right leg + - left leg + right leg: + part: RightLegAnimal + connections: + - right foot + left leg: + part: LeftLegAnimal + connections: + - left foot + right foot: + part: RightFootAnimal + left foot: + part: LeftFootAnimal \ No newline at end of file From 09001ed71cc66629a9bc8bee1792c545449a6a34 Mon Sep 17 00:00:00 2001 From: solomam Date: Fri, 17 Jul 2026 03:33:10 +0100 Subject: [PATCH 15/16] yaml linter attempt 4 Signed-off-by: solomam --- Resources/Prototypes/Body/Prototypes/Animal/base.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Body/Prototypes/Animal/base.yml b/Resources/Prototypes/Body/Prototypes/Animal/base.yml index a7a65cf8ebd..e8e7cc2ac90 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/base.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/base.yml @@ -1,4 +1,4 @@ -- type: entity +- type: body parent: [ PartAnimalBase, BaseTorsoAnimal ] id: TorsoAnimal name: "animal torso" From 1c72f4c05aa907e12ea3ed2af213f1f905335148 Mon Sep 17 00:00:00 2001 From: solomam Date: Fri, 17 Jul 2026 06:12:15 +0100 Subject: [PATCH 16/16] refined shitme amendments Signed-off-by: solomam --- Resources/Prototypes/Body/Parts/animal.yml | 44 ++++--- Resources/Prototypes/Body/Parts/base.yml | 34 ----- Resources/Prototypes/Body/Parts/mothroach.yml | 123 ------------------ .../Body/Prototypes/Animal/animal.yml | 46 ++++++- .../Body/Prototypes/Animal/base.yml | 36 ----- .../Body/Prototypes/Animal/ruminant.yml | 15 ++- .../mouse.yml => Specific/mothroach.yml} | 23 ++-- .../Prototypes/Body/Prototypes/mothroach.yml | 35 ----- .../Prototypes/_Shitmed/Body/Parts/base.yml | 42 ------ 9 files changed, 85 insertions(+), 313 deletions(-) delete mode 100644 Resources/Prototypes/Body/Parts/mothroach.yml delete mode 100644 Resources/Prototypes/Body/Prototypes/Animal/base.yml rename Resources/Prototypes/Body/Prototypes/{Animal/mouse.yml => Specific/mothroach.yml} (71%) delete mode 100644 Resources/Prototypes/Body/Prototypes/mothroach.yml diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index e00e5e4447d..5c7d8866728 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -64,63 +64,65 @@ slotId: feet # Shitmed - type: entity - parent: [ PartAnimalBase, BaseLeftLeg, BaseAnimalOrgan ] - id: LeftLegAnimal + id: LeftLegsAnimal name: "left animal legs" + parent: [ PartAnimalBase, BaseLeftLeg, BaseAnimalOrgan ] components: - type: Sprite + sprite: Mobs/Species/Reptilian/parts.rsi layers: - state: l_leg - state: r_leg - type: Icon state: l_leg # cba to make a state for it - partType: Leg - symmetry: Left - slotId: leg # Shitmed - - type: MovementBodyPart - type: entity - parent: [ PartAnimalBase, BaseRightLeg, BaseAnimalOrgan ] - id: RightLegAnimal + id: RightLegsAnimal name: "right animal legs" + parent: [ PartAnimalBase, BaseRightLeg, BaseAnimalOrgan ] components: - type: Sprite + sprite: Mobs/Species/Reptilian/parts.rsi layers: - state: l_leg - state: r_leg - type: Icon state: l_leg # cba to make a state for it - partType: Leg - symmetry: Left - slotId: leg # Shitmed - - type: MovementBodyPart - type: entity - parent: [ PartAnimalBase, BaseLeftFoot, BaseAnimalOrgan ] - id: LeftFootAnimal + id: LeftAnimalFeet name: "left animal feet" + parent: [ PartAnimalBase, BaseLeftFoot, BaseAnimalOrgan ] components: - type: Sprite + sprite: Mobs/Species/Reptilian/parts.rsi layers: - state: r_foot - state: l_foot - type: Icon state: l_foot # cba to make a state for it - - type: BodyPart - partType: Foot - slotId: feet # Shitmed - type: entity - parent: [ PartAnimalBase, BaseRightFoot, BaseAnimalOrgan ] - id: RightFootAnimal + id: RightAnimalFeet name: "right animal feet" + parent: [ PartAnimalBase, BaseRightFoot, BaseAnimalOrgan ] components: - type: Sprite + sprite: Mobs/Species/Reptilian/parts.rsi layers: - state: r_foot - state: l_foot - type: Icon state: l_foot # cba to make a state for it + +- type: entity + parent: [ PartAnimalBase, BaseTorso ] + id: TorsoAnimal + name: animal torso + components: - type: BodyPart - partType: Foot - slotId: feet # Shitmed \ No newline at end of file + # standard organs are good for most animals + children: # most animals have no hands (primate is unused) so just legs by default + legs: + id: legs + type: Leg diff --git a/Resources/Prototypes/Body/Parts/base.yml b/Resources/Prototypes/Body/Parts/base.yml index cf495845393..c6705da189c 100644 --- a/Resources/Prototypes/Body/Parts/base.yml +++ b/Resources/Prototypes/Body/Parts/base.yml @@ -76,40 +76,6 @@ torso_slot: !type:ContainerSlot {} # Shitmed Change End -- type: entity - abstract: true - id: BaseTorsoInorganicAnimal - name: "torso" - components: - - type: Sprite - state: "torso_m" - - type: Icon - state: "torso_m" - - type: BodyPart - partType: Torso - # Shitmed Change Start - toolName: "a torso" - containerName: "torso_slot" - children: - head: - id: head - type: Head - organs: - heart: - id: heart - lungs: - id: lungs - stomach: - id: stomach - liver: - id: liver - kidneys: - id: kidneys - - type: ContainerContainer - containers: - torso_slot: !type:ContainerSlot {} - # Shitmed Change End - - type: entity abstract: true id: BaseHead diff --git a/Resources/Prototypes/Body/Parts/mothroach.yml b/Resources/Prototypes/Body/Parts/mothroach.yml deleted file mode 100644 index 7b822a6bf60..00000000000 --- a/Resources/Prototypes/Body/Parts/mothroach.yml +++ /dev/null @@ -1,123 +0,0 @@ -# TODO: Add descriptions (many) -# TODO BODY: Part damage -- type: entity - id: PartMothroach - parent: [BaseItem, BasePart] - name: "moth body part" - abstract: true - components: - - type: Icon # Shitmed Change - sprite: Mobs/Species/Moth/parts.rsi - - type: BodyPart # Shitmed Change - species: Mothroach - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 3 - - ReagentId: InsectBlood - Quantity: 10 - -- type: entity - id: TorsoMothRoach - name: "mothroach torso" - parent: [ PartMothroach, BaseTorsoAnimal ] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "torso_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 10 - - ReagentId: InsectBlood - Quantity: 20 - -- type: entity - id: HeadMothRoach - name: "moth head" - parent: [PartMoth, BaseHead] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "head_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 5 - - ReagentId: InsectBlood - Quantity: 10 - -- type: entity - id: LeftArmMothRoach - name: "left moth arm" - parent: [PartMoth, BaseLeftArm] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "l_arm" - -- type: entity - id: RightArmMothRoach - name: "right moth arm" - parent: [PartMoth, BaseRightArm] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "r_arm" - -- type: entity - id: LeftHandMothRoach - name: "left moth hand" - parent: [PartMoth, BaseLeftHand] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "l_hand" - -- type: entity - id: RightHandMothRoach - name: "right moth hand" - parent: [PartMoth, BaseRightHand] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "r_hand" - -- type: entity - id: LeftLegMothRoach - name: "left moth leg" - parent: [PartMoth, BaseLeftLeg] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "l_leg" - -- type: entity - id: RightLegMothRoach - name: "right moth leg" - parent: [PartMoth, BaseRightLeg] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "r_leg" - -- type: entity - id: LeftFootMothRoach - name: "left moth foot" - parent: [PartMoth, BaseLeftFoot] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "l_foot" - -- type: entity - id: RightFootMothRoach - name: "right moth foot" - parent: [PartMoth, BaseRightFoot] - components: - - type: Sprite - sprite: Mobs/Species/Moth/parts.rsi - state: "r_foot" diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index 01ed20f63fb..a87fcbb7789 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -12,24 +12,62 @@ eyes: OrganAnimalEyes torso: part: TorsoAnimal + connections: + - right leg + - left leg + - head # Shitmed organs: lungs: OrganAnimalLungs stomach: OrganAnimalStomach liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys + right leg: + part: RightLegsAnimal + connections: + - right foot + left leg: + part: LeftLegsAnimal + connections: + - left foot + right foot: + part: RightAnimalFeet + left foot: + part: LeftAnimalFeet + +- type: body + id: Mouse + name: "mouse" + root: torso + slots: + head: + part: HeadAnimal + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoAnimal connections: - right leg - left leg + - head # Shitmed + organs: + lungs: OrganAnimalLungs + stomach: OrganMouseStomach + liver: OrganAnimalLiver + heart: OrganAnimalHeart + kidneys: OrganAnimalKidneys right leg: - part: RightLegAnimal + part: RightLegsAnimal connections: - right foot left leg: - part: LeftLegAnimal + part: LeftLegsAnimal connections: - left foot right foot: - part: RightFootAnimal + part: RightAnimalFeet left foot: - part: LeftFootAnimal \ No newline at end of file + part: LeftAnimalFeet \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/base.yml b/Resources/Prototypes/Body/Prototypes/Animal/base.yml deleted file mode 100644 index e8e7cc2ac90..00000000000 --- a/Resources/Prototypes/Body/Prototypes/Animal/base.yml +++ /dev/null @@ -1,36 +0,0 @@ -- type: body - parent: [ PartAnimalBase, BaseTorsoAnimal ] - id: TorsoAnimal - name: "animal torso" - root: torso - slots: - head: - part: HeadAnimal - connections: - - torso - organs: - brain: OrganAnimalBrain - eyes: OrganAnimalEyes - torso: - part: TorsoAnimal - organs: - heart: OrganAnimalHeart - lungs: OrganAnimalLungs - stomach: OrganAnimalStomach - liver: OrganAnimalLiver - kidneys: OrganAnimalKidneys - connections: - - right leg - - left leg - right leg: - part: RightLegAnimal - connections: - - right foot - left leg: - part: LeftLegAnimal - connections: - - left foot - right foot: - part: RightFootAnimal - left foot: - part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml b/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml index c2a24fc64b7..6433ff4b029 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/ruminant.yml @@ -12,6 +12,10 @@ eyes: OrganAnimalEyes torso: part: TorsoAnimal + connections: + - right leg + - left leg + - head # Shitmed organs: lungs: OrganAnimalLungs stomach: OrganAnimalRuminantStomach @@ -19,18 +23,15 @@ liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys - connections: - - right leg - - left leg right leg: - part: RightLegAnimal + part: RightLegsAnimal connections: - right foot left leg: - part: LeftLegAnimal + part: LeftLegsAnimal connections: - left foot right foot: - part: RightFootAnimal + part: RightAnimalFeet left foot: - part: LeftFootAnimal \ No newline at end of file + part: LeftAnimalFeet \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/Animal/mouse.yml b/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml similarity index 71% rename from Resources/Prototypes/Body/Prototypes/Animal/mouse.yml rename to Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml index 974f6114245..cac4cbdb985 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/mouse.yml +++ b/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml @@ -1,6 +1,6 @@ -- type: body - id: Mouse - name: "mouse" +- type: body + id: Mothroach + name: "mothroach" root: torso slots: head: @@ -12,24 +12,25 @@ eyes: OrganAnimalEyes torso: part: TorsoAnimal + connections: + - right leg + - left leg + - head # Shitmed organs: lungs: OrganAnimalLungs - stomach: OrganMouseStomach + stomach: OrganMothStomach liver: OrganAnimalLiver heart: OrganAnimalHeart kidneys: OrganAnimalKidneys - connections: - - right leg - - left leg right leg: - part: RightLegAnimal + part: RightLegsAnimal connections: - right foot left leg: - part: LeftLegAnimal + part: LeftLegsAnimal connections: - left foot right foot: - part: RightFootAnimal + part: RightAnimalFeet left foot: - part: LeftFootAnimal \ No newline at end of file + part: LeftAnimalFeet \ No newline at end of file diff --git a/Resources/Prototypes/Body/Prototypes/mothroach.yml b/Resources/Prototypes/Body/Prototypes/mothroach.yml deleted file mode 100644 index 52b722b2d05..00000000000 --- a/Resources/Prototypes/Body/Prototypes/mothroach.yml +++ /dev/null @@ -1,35 +0,0 @@ -- type: body - id: Mothroach - name: "mothroach" - root: torso - slots: - head: - part: HeadMothRoach - connections: - - torso - organs: - brain: OrganAnimalBrain - eyes: OrganAnimalEyes - torso: - part: TorsoMothRoach - organs: - heart: OrganAnimalHeart - lungs: OrganHumanLungs - stomach: OrganMothStomach - liver: OrganAnimalLiver - kidneys: OrganHumanKidneys - connections: - - right leg - - left leg - right leg: - part: RightLegAnimal - connections: - - right foot - left leg: - part: LeftLegAnimal - connections: - - left foot - right foot: - part: RightFootAnimal - left foot: - part: LeftFootAnimal \ No newline at end of file diff --git a/Resources/Prototypes/_Shitmed/Body/Parts/base.yml b/Resources/Prototypes/_Shitmed/Body/Parts/base.yml index f1cc60150cf..34d8fc60bd7 100644 --- a/Resources/Prototypes/_Shitmed/Body/Parts/base.yml +++ b/Resources/Prototypes/_Shitmed/Body/Parts/base.yml @@ -86,45 +86,3 @@ Quantity: 10 - ReagentId: Blood Quantity: 20 - -- type: entity - abstract: true - parent: BaseTorsoInorganicAnimal - id: BaseTorsoAnimal - components: - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Blunt - damage: 400 - behaviors: - - !type:GibPartBehavior { } - - trigger: - !type:DamageTypeTrigger - damageType: Slash - damage: 400 - behaviors: - - !type:GibPartBehavior { } - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 400 - behaviors: - - !type:SpawnEntitiesBehavior - spawnInContainer: true - spawn: - Ash: - min: 1 - max: 1 - - !type:BurnBodyBehavior { } - - !type:PlaySoundBehavior - sound: - collection: MeatLaserImpact - - type: Extractable # torso is meatier - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 10 - - ReagentId: Blood - Quantity: 20 \ No newline at end of file