#W# DOTD: Added more rare rewards to the drop list. Set the default rare drop chance to 2%
This commit is contained in:
parent
4afeb5dd98
commit
2a3551511e
4 changed files with 100 additions and 11 deletions
|
|
@ -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" },
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue