ModernUO/Projects/UOContent/Engines/ML Quests/Definitions/IntoTheVoid.cs
Joe Valentine e606daba9b feat: Adds GargishOutcast creature, Agralem quest NPC, and SA stealable (SA)
- Adds GargishOutcast: gargoyle humanoid, AI_Mage, 120 Throwing skill,
  random throwing weapon (Cyclone/SoulGlaive/Boomerang), Necromancy+
  SpiritSpeak skills, and periodic AnimatedWeapon summon; drops UltraRich
  loot. Mysticism variant deferred pending Mysticism skill implementation.
- Adds IntoTheVoidQuest (MLQuest): kill 10 WandererOfTheVoid to earn an
  AbyssReaver; one-time only. Kill targets will expand when additional
  void creature types are implemented.
- Adds Agralem: stationary Gargoyle Bladeweaver NPC and quest giver for
  IntoTheVoidQuest, registered in MLQuests.cfg
- Adds ValkyriesGlaive as a stealable artifact in Ter Mur (rarity 5)

Remaining gaps (deferred to SA creature pass):
- Mysticism skill implementation + AI_Mystic AI type
- Raptor (RaptorClaw drop), StoneSlith (StoneSlithClaw drop)
- PrimevalLich champion (BansheesCall), Renowned creatures (StormCaller)
- GlaiveOfTheInfiniteSwarm + Vrulkax transformation service
- GatheringOfEvidence quest (WindOfCorruption reward)
- World spawns for Agralem and GargishOutcast in Ter Mur
2026-07-02 20:24:48 -07:00

70 lines
2.2 KiB
C#

using ModernUO.Serialization;
using Server.Engines.MLQuests.Objectives;
using Server.Engines.MLQuests.Rewards;
using Server.Items;
using Server.Mobiles;
namespace Server.Engines.MLQuests.Definitions;
public class IntoTheVoidQuest : MLQuest
{
public IntoTheVoidQuest()
{
Activated = true;
OneTimeOnly = true;
Title = 1112687; // Into the Void
Description = 1112690; // Quest description cliloc
RefusalMessage = 1112691;
InProgressMessage = 1112692;
CompletionMessage = 1112693;
// TODO: ServUO targets BaseVoidCreature (a broader set of SA void creatures).
// Expand the target list when additional void creature types are implemented.
Objectives.Add(new KillObjective(10, new[] { typeof(WandererOfTheVoid) }, "Void Daemons"));
Rewards.Add(new ItemReward(1112694, typeof(AbyssReaver))); // Abyss Reaver
}
}
[QuesterName("Agralem")]
[SerializationGenerator(0, false)]
public partial class Agralem : BaseCreature
{
[Constructible]
public Agralem() : base(AIType.AI_Vendor, FightMode.None, 2)
{
Title = "the Bladeweaver";
Race = Race.Gargoyle;
Body = 666;
Female = false;
Hue = 34536;
HairItemID = 0x425D;
HairHue = 0x31D;
CantWalk = true;
InitStats(100, 100, 25);
SetSkill(SkillName.Anatomy, 65.0, 90.0);
SetSkill(SkillName.MagicResist, 65.0, 90.0);
SetSkill(SkillName.Tactics, 65.0, 90.0);
SetSkill(SkillName.Throwing, 65.0, 90.0);
AddItem(new Cyclone { LootType = LootType.Blessed });
AddItem(new GargishLeatherKiltType1 { Hue = 2305, LootType = LootType.Blessed });
AddItem(new GargishLeatherChestType1 { Hue = 2305, LootType = LootType.Blessed });
AddItem(new GargishLeatherArmsType1 { Hue = 2305, LootType = LootType.Blessed });
}
public override bool IsInvulnerable => true;
public override string DefaultName => "Agralem";
public override bool CanShout => true;
public override void Shout(PlayerMobile pm)
{
MLQuestSystem.Tell(this, pm, 1112688); // Daemons from the void! They must be vanquished!
}
}