diff --git a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.XAT.cs b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.XAT.cs index e8573d2a2a..07d02d6679 100644 --- a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.XAT.cs +++ b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.XAT.cs @@ -4,6 +4,7 @@ using Content.Shared.Damage; using Content.Shared.Damage.Systems; using Content.Shared.Examine; using Content.Shared.Interaction; +using Content.Shared.Kitchen; using Content.Shared.Movement.Pulling.Events; using Content.Shared.Throwing; using Content.Shared.Weapons.Melee.Events; @@ -24,6 +25,7 @@ public abstract partial class SharedXenoArtifactSystem XATRelayLocalEvent(); XATRelayLocalEvent(); XATRelayLocalEvent(); + XATRelayLocalEvent(); // special case this one because we need to order the messages SubscribeLocalEvent(OnExamined); diff --git a/Content.Shared/Xenoarchaeology/Artifact/XAT/Components/XATMicrowaveComponent.cs b/Content.Shared/Xenoarchaeology/Artifact/XAT/Components/XATMicrowaveComponent.cs new file mode 100644 index 0000000000..9b389b320a --- /dev/null +++ b/Content.Shared/Xenoarchaeology/Artifact/XAT/Components/XATMicrowaveComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Xenoarchaeology.Artifact.XAT.Components; + +/// +/// This is used for an artifact that is activated by being microwaved. +/// +[RegisterComponent, Access(typeof(XATMicrowaveSystem))] +public sealed partial class XATMicrowaveComponent : Component; diff --git a/Content.Shared/Xenoarchaeology/Artifact/XAT/XATMicrowaveSystem.cs b/Content.Shared/Xenoarchaeology/Artifact/XAT/XATMicrowaveSystem.cs new file mode 100644 index 0000000000..22e459e24e --- /dev/null +++ b/Content.Shared/Xenoarchaeology/Artifact/XAT/XATMicrowaveSystem.cs @@ -0,0 +1,24 @@ +using Content.Shared.Kitchen; +using Content.Shared.Xenoarchaeology.Artifact.Components; +using Content.Shared.Xenoarchaeology.Artifact.XAT.Components; + +namespace Content.Shared.Xenoarchaeology.Artifact.XAT; + +/// +/// System for checking if microwaved xenoartifact should be triggered. +/// +public sealed class XATMicrowaveSystem : BaseXATSystem +{ + + /// + public override void Initialize() + { + base.Initialize(); + XATSubscribeDirectEvent(OnMicrowaved); + } + + private void OnMicrowaved(Entity artifact, Entity node, ref BeingMicrowavedEvent args) + { + Trigger(artifact, node); + } +} diff --git a/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl b/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl index 23abad3383..f979ccb3f8 100644 --- a/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl +++ b/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl @@ -53,7 +53,8 @@ xenoarch-trigger-tip-tritium = Tritium xenoarch-trigger-tip-ammonia = Ammonia xenoarch-trigger-tip-n2o = Nitrous oxide xenoarch-trigger-tip-frezon = Frezon -xenoarch-trigger-tip-radiation = Radiation +xenoarch-trigger-tip-radiation = Heavy-ion radiation +xenoarch-trigger-tip-microwave = Microwave radiation xenoarch-trigger-tip-brute-damage = Physical damage xenoarch-trigger-tip-interaction = Physical interaction xenoarch-trigger-tip-wrenching = Tightening diff --git a/Resources/Prototypes/XenoArch/triggers.yml b/Resources/Prototypes/XenoArch/triggers.yml index 641f7bc48d..c59da01637 100644 --- a/Resources/Prototypes/XenoArch/triggers.yml +++ b/Resources/Prototypes/XenoArch/triggers.yml @@ -149,7 +149,15 @@ - type: XATDamageThresholdReached typesNeeded: Radiation: 20 - # TODO: legendary microwave trigger + +- type: xenoArchTrigger + id: TriggerMicrowave + tip: xenoarch-trigger-tip-microwave + whitelist: + components: + - Item + components: + - type: XATMicrowave - type: xenoArchTrigger id: TriggerPressureHigh