diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs index e5c4d9100f..79c616322a 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs @@ -38,6 +38,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Components; using Content.Shared.Movement.Systems; using Content.Shared.Nutrition.Components; +using Content.Shared.Polymorph; using Content.Shared.Popups; using Content.Shared.Silicons.Laws; using Content.Shared.Silicons.Laws.Components; @@ -60,6 +61,9 @@ namespace Content.Server.Administration.Systems; public sealed partial class AdminVerbSystem { + private readonly ProtoId LizardSmite = "AdminLizardSmite"; + private readonly ProtoId VulpkaninSmite = "AdminVulpSmite"; + [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; @@ -706,13 +710,28 @@ public sealed partial class AdminVerbSystem Icon = new SpriteSpecifier.Rsi(new("/Textures/Objects/Fun/Plushies/lizard.rsi"), "icon"), Act = () => { - _polymorphSystem.PolymorphEntity(args.Target, "AdminLizardSmite"); + _polymorphSystem.PolymorphEntity(args.Target, LizardSmite); }, Impact = LogImpact.Extreme, Message = string.Join(": ", reptilianName, Loc.GetString("admin-smite-reptilian-species-swap-description")) }; args.Verbs.Add(reptilian); + var vulpName = Loc.GetString("admin-smite-vulpkanin-species-swap-name").ToLowerInvariant(); + Verb vulp = new() + { + Text = vulpName, + Category = VerbCategory.Smite, + Icon = new SpriteSpecifier.Rsi(new ("/Textures/Objects/Fun/Balls/tennisball.rsi"), "icon"), + Act = () => + { + _polymorphSystem.PolymorphEntity(args.Target, VulpkaninSmite); + }, + Impact = LogImpact.Extreme, + Message = string.Join(": ", vulpName, Loc.GetString("admin-smite-vulpkanin-species-swap-description")) + }; + args.Verbs.Add(vulp); + var lockerName = Loc.GetString("admin-smite-locker-stuff-name").ToLowerInvariant(); Verb locker = new() { diff --git a/Content.Server/Polymorph/Systems/PolymorphSystem.cs b/Content.Server/Polymorph/Systems/PolymorphSystem.cs index 9547bc1ea5..db7fb6a92f 100644 --- a/Content.Server/Polymorph/Systems/PolymorphSystem.cs +++ b/Content.Server/Polymorph/Systems/PolymorphSystem.cs @@ -261,7 +261,7 @@ public sealed partial class PolymorphSystem : EntitySystem if (configuration.TransferHumanoidAppearance) { - _humanoid.CloneAppearance(child, uid); + _humanoid.CloneAppearance(uid, child); } if (_mindSystem.TryGetMind(uid, out var mindId, out var mind)) diff --git a/Resources/Locale/en-US/administration/smites.ftl b/Resources/Locale/en-US/administration/smites.ftl index b5a17e4f1c..794077a484 100644 --- a/Resources/Locale/en-US/administration/smites.ftl +++ b/Resources/Locale/en-US/administration/smites.ftl @@ -36,6 +36,7 @@ admin-smite-buffering-name = Buffering admin-smite-become-instrument-name = Become Instrument admin-smite-remove-gravity-name = Remove Gravity admin-smite-reptilian-species-swap-name = Become Reptilian +admin-smite-vulpkanin-species-swap-name = Become Vulpkanin admin-smite-locker-stuff-name = Locker Stuff admin-smite-headstand-name = Headstand admin-smite-become-mouse-name = Become Mouse @@ -86,6 +87,7 @@ admin-smite-buffering-description = Causes the target to randomly start bufferin admin-smite-become-instrument-description = It turns them into a supersynth. Really. That's all it does. admin-smite-remove-gravity-description = Grants them anti-gravity. admin-smite-reptilian-species-swap-description = It changes their species to Reptilian. Useful for people who were being space racist. +admin-smite-vulpkanin-species-swap-description = It changes their species to Vulpkanin. Useful for people who were being space racist. admin-smite-locker-stuff-description = Stuffs them in a (welded) locker. admin-smite-headstand-description = Vertically flips their sprite. admin-smite-become-mouse-description = They become a mouse. Squeak! diff --git a/Resources/Prototypes/Polymorphs/admin.yml b/Resources/Prototypes/Polymorphs/admin.yml index 3739175c8a..606147ce9c 100644 --- a/Resources/Prototypes/Polymorphs/admin.yml +++ b/Resources/Prototypes/Polymorphs/admin.yml @@ -4,7 +4,15 @@ entity: MobReptilian forced: true transferName: true - transferHumanoidAppearance: true + inventory: Transfer + ignoreAllowRepeatedMorphs: true + +- type: polymorph + id: AdminVulpSmite + configuration: + entity: MobVulpkanin + forced: true + transferName: true inventory: Transfer ignoreAllowRepeatedMorphs: true