#W# DOTD: Added more rare rewards to the drop list. Set the default rare drop chance to 2%

This commit is contained in:
WarrentyExpired 2026-10-07 12:20:30 -04:00
parent 4afeb5dd98
commit 2a3551511e
4 changed files with 100 additions and 11 deletions

View file

@ -38,7 +38,7 @@
]
},
{
"name": "Deciet",
"name": "Deceit",
"locations": [
{ "name": "Entrance", "location": [1068, 1512, 10], "map": "Veridia" },
{ "name": "Level 1", "location": [1515, 164, 0], "map": "Underworld" },

View file

@ -2181,7 +2181,7 @@
{
"$type": "DungeonRegion",
"Map": "Underworld",
"Name": "the Dungeon Deciet",
"Name": "the Dungeon Deceit",
"Priority": 50,
"Area": [
{ "x1": 1464, "y1": 49, "x2": 1571, "y2": 170 },
@ -2193,8 +2193,8 @@
{
"$type": "GreetingDungeonRegion",
"Map": "Underworld",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deciet" },
"Name": "the Dungeon Deciet - Level 1",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deceit" },
"Name": "the Dungeon Deceit - Level 1",
"Priority": 55,
"Area": [
{ "x1": 1464, "y1": 49, "x2": 1571, "y2": 170 }
@ -2203,8 +2203,8 @@
{
"$type": "GreetingDungeonRegion",
"Map": "Underworld",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deciet" },
"Name": "Deciet - Level 2",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deceit" },
"Name": "Deceit - Level 2",
"Priority": 55,
"Area": [
{ "x1": 1595, "y1": 37, "x2": 1690, "y2": 166 }
@ -2213,8 +2213,8 @@
{
"$type": "GreetingDungeonRegion",
"Map": "Underworld",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deciet" },
"Name": "Deciet - Level 3",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deceit" },
"Name": "Deceit - Level 3",
"Priority": 55,
"Area": [
{ "x1": 1450, "y1": 170, "x2": 1570, "y2": 301 }
@ -2223,8 +2223,8 @@
{
"$type": "GreetingDungeonRegion",
"Map": "Underworld",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deciet" },
"Name": "Deciet - Level 4",
"Parent": { "Map": "Underworld", "Name": "the Dungeon Deceit" },
"Name": "Deceit - Level 4",
"Priority": 55,
"Area": [
{ "x1": 1574, "y1": 165, "x2": 1673, "y2": 295 }

View file

@ -1,6 +1,7 @@
using System;
using Server;
using Server.Commands;
using Server.Items;
namespace Server.Custom
{
@ -63,6 +64,83 @@ namespace Server.Custom
World.Broadcast(1161, true, $"The magical energies of the world have shifted. {ActiveDungeon} is now the Dungeon of the Day!");
}
private static readonly Func<Server.Item>[] DailyRares = new Func<Server.Item>[]
{
// --- Cosmetics & Status ---
() => new ClothingBlessDeed(),
() => new SpecialHairDye(),
() => new SpecialBeardDye(),
() => new LeatherDyeTub(),
() => new FurnitureDyeTub(),
() => new BlackDyeTub(),
() => new MetallicLeatherDyeTub(),
() => new RunebookDyeTub(),
() => new SpecialDyeTub(),
() => new WhiteClothDyeTub(),
() => new WhiteLeatherDyeTub(),
// --- Wealth & Adventure ---
// Forces a Level 5 (Devious) Treasure Map
() => new TreasureMap(5, Map.Trammel),
// A fat bank check for 5,000 gold
() => new BankCheck(5000),
// --- Classic UOR Deco Rares ---
() => new DecoGoldIngot(),
() => new DecoGoldIngot2(),
() => new DecoGoldIngots(),
() => new DecoGoldIngots2(),
() => new DecoGoldIngots3(),
() => new DecoGoldIngots4(),
() => new DecoIronIngot(),
() => new DecoIronIngot2(),
() => new DecoIronIngots(),
() => new DecoIronIngots2(),
() => new DecoIronIngots3(),
() => new DecoIronIngots4(),
() => new DecoIronIngots5(),
() => new DecoIronIngots6(),
() => new DecoSilverIngot(),
() => new DecoSilverIngot2(),
() => new DecoSilverIngots(),
() => new DecoSilverIngots2(),
() => new DecoSilverIngots3(),
() => new DecoSilverIngots4(),
() => new DecoSilverIngots5(),
() => new Bucket(),
() => new ClosedBarrel(),
() => new WaterBarrel(),
() => new DecoCrystalBall(),
() => new DecoMagicalCrystal(),
() => new DecoHay(),
() => new DecoHay2(),
() => new DecoHorseDung(),
() => new EmptyToolKit(),
() => new Lockpicks(),
// --- Rare Resources ---
// Drops exactly 50 Valorite Ingots
() => new ValoriteIngot(50),
() => new VeriteIngot(50),
() => new AgapiteIngot(50),
() => new GoldIngot(50),
// --- Weaons and Armor ---
() =>
{
var halberd = new Halberd();
halberd.DamageLevel = WeaponDamageLevel.Vanq;
halberd.DurabilityLevel = WeaponDurabilityLevel.Indestructible;
return halberd;
}
};
public static Server.Item GetRandomRare()
{
Func<Server.Item> createItem = DailyRares[Utility.Random(DailyRares.Length)];
return createItem();
}
[Usage("ForceDungeonSwap")]
[Description("Forces the Dungeon of the Day to rotate immediately.")]
private static void ForceSwap_OnCommand(CommandEventArgs e)

View file

@ -3668,9 +3668,20 @@ namespace Server.Mobiles
}
}
// 2% chance to drop a random rare from your curated list
if (Utility.RandomDouble() <= 0.05)
{
c.DropItem(new Server.Items.SpecialHairDye());
Server.Item rareLoot = Custom.DailyDungeonManager.GetRandomRare();
if (rareLoot != null)
{
c.DropItem(rareLoot);
// Optional: Add a special effect or sound when a rare drops!
if (killer != null)
{
killer.SendMessage(1161, "A rare item has dropped into the corpse!");
}
}
}
if (killer != null)