From 27538a3d944d495da28af09207366c4983e300ae Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:56:58 -0700 Subject: [PATCH] feat(throwing): add Valkyrie's Glaive as a Ter Mur stealable artifact MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-introduce the Valkyrie's Glaive (SoulGlaive-based SA artifact) with a self-contained acquisition path: a stealable spawn in Ter Mur at (843, 665, 27), matching ServUO/OSI. Adds ArtifactRarity => 5 (was missing in the original). No test — pure property definition (per project test-scope policy). Co-Authored-By: Joe Valentine Co-Authored-By: Claude Opus 4.8 (1M context) --- .../Engines/Stealables/StealableArtifacts.cs | 5 +++- .../Items/Weapons/Throwing/ValkyriesGlaive.cs | 26 +++++++++++++++++++ .../Server.Items.ValkyriesGlaive.v0.json | 4 +++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Projects/UOContent/Items/Weapons/Throwing/ValkyriesGlaive.cs create mode 100644 Projects/UOContent/Migrations/Server.Items.ValkyriesGlaive.v0.json diff --git a/Projects/UOContent/Engines/Stealables/StealableArtifacts.cs b/Projects/UOContent/Engines/Stealables/StealableArtifacts.cs index 1ac218ad2..396b87dcd 100644 --- a/Projects/UOContent/Engines/Stealables/StealableArtifacts.cs +++ b/Projects/UOContent/Engines/Stealables/StealableArtifacts.cs @@ -170,7 +170,10 @@ public class StealableArtifacts : GenericPersistence new(Map.Malas, new Point3D(157, 608, -1), 18432, 27648, typeof(SwordDisplay5WestArtifact)), new(Map.Malas, new Point3D(187, 643, 1), 18432, 27648, typeof(Painting6NorthArtifact)), new(Map.Malas, new Point3D(146, 623, 1), 18432, 27648, typeof(Painting6WestArtifact)), - new(Map.Malas, new Point3D(178, 629, -1), 18432, 27648, typeof(ManStatuetteEastArtifact)) + new(Map.Malas, new Point3D(178, 629, -1), 18432, 27648, typeof(ManStatuetteEastArtifact)), + + // Stygian Abyss (Ter Mur) - Artifact rarity 5 + new(Map.TerMur, new Point3D(843, 665, 27), 1152, 1728, typeof(ValkyriesGlaive)) }; public static Type[] TypesOfEntries diff --git a/Projects/UOContent/Items/Weapons/Throwing/ValkyriesGlaive.cs b/Projects/UOContent/Items/Weapons/Throwing/ValkyriesGlaive.cs new file mode 100644 index 000000000..beded2540 --- /dev/null +++ b/Projects/UOContent/Items/Weapons/Throwing/ValkyriesGlaive.cs @@ -0,0 +1,26 @@ +using ModernUO.Serialization; + +namespace Server.Items; + +[SerializationGenerator(0)] +public partial class ValkyriesGlaive : SoulGlaive +{ + [Constructible] + public ValkyriesGlaive() + { + Hue = 1651; + Attributes.SpellChanneling = 1; + Attributes.BonusStr = 5; + Attributes.WeaponSpeed = 20; + Attributes.WeaponDamage = 20; + Slayer = SlayerName.Silver; + WeaponAttributes.HitFireball = 40; + } + + public override int LabelNumber => 1113531; // Valkyrie's Glaive + + public override int ArtifactRarity => 5; + + public override int InitMinHits => 255; + public override int InitMaxHits => 255; +} diff --git a/Projects/UOContent/Migrations/Server.Items.ValkyriesGlaive.v0.json b/Projects/UOContent/Migrations/Server.Items.ValkyriesGlaive.v0.json new file mode 100644 index 000000000..227fe419a --- /dev/null +++ b/Projects/UOContent/Migrations/Server.Items.ValkyriesGlaive.v0.json @@ -0,0 +1,4 @@ +{ + "version": 0, + "type": "Server.Items.ValkyriesGlaive" +} \ No newline at end of file