ModernUO/Projects/UOContent/Items/TreasureChests/TreasureChestLevel2.cs
Kamron Batman 54d728a322
fix: Updates serialization to use v2.0 (#998)
- [X] Deletes serialization annotations
- [X] Updates to ModernUO.Serialization.Annotations nuget
- [X] Updates serializer to v2.0
- [X] Changes all `Serializable()` to `SerializationGenerator()`
- [X] Updates to schema generator v2.0
2022-04-17 08:02:15 -07:00

117 lines
2.6 KiB
C#

using System;
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class TreasureChestLevel2 : LockableContainer
{
[Constructible]
public TreasureChestLevel2() : base(0xE41)
{
SetChestAppearance();
Movable = false;
TrapType = TrapType.ExplosionTrap;
TrapPower = 2 * Utility.Random(1, 25);
Locked = true;
RequiredSkill = 72;
LockLevel = RequiredSkill - Utility.Random(1, 10);
MaxLockLevel = RequiredSkill + Utility.Random(1, 10);
// According to OSI, loot in level 2 chest is:
// Gold 80 - 150
// Arrows 10
// Reagents
// Scrolls
// Potions
// Gems
// Gold
DropItem(new Gold(Utility.Random(70, 100)));
// Drop bolts
// DropItem( new Arrow( 10 ) );
// Reagents
for (var i = Utility.Random(3); i > 0; i--)
{
var reagents = Loot.RandomReagent();
reagents.Amount = Utility.Random(1, 2);
DropItem(reagents);
}
// Scrolls
if (Utility.RandomBool())
{
var scrolls = Loot.RandomScroll(0, 39, SpellbookType.Regular);
scrolls.Amount = Utility.Random(1, 8);
DropItem(scrolls);
}
// Potions
if (Utility.RandomBool())
{
DropItem(Loot.RandomPotion());
}
// Gems
if (Utility.RandomBool())
{
var gems = Loot.RandomGem();
gems.Amount = Utility.Random(1, 6);
DropItem(gems);
}
}
public override bool Decays => true;
public override bool IsDecoContainer => false;
public override TimeSpan DecayTime => TimeSpan.FromMinutes(Utility.Random(15, 60));
public override int DefaultGumpID => 0x42;
public override int DefaultDropSound => 0x42;
public override Rectangle2D Bounds => new(18, 105, 144, 73);
private static readonly (int, int)[] _chestAppearances =
{
// Large Crate
(0xe3c, 0x44),
(0xe3d, 0x44),
// Medium Crate
(0xe3e, 0x44),
(0xe3f, 0x44),
// Small Crate
(0x9a9, 0x44),
(0xe7e, 0x44),
// Wooden Chest
(0xe42, 0x49),
(0xe43, 0x49),
// Metal Chest
(0x9ab, 0x4A),
(0xe7c, 0x4A),
// Metal Golden Chest
(0xe40, 0x42),
(0xe41, 0x42),
// Keg
(0xe7f, 0x3e),
// Barrel
(0xe77, 0x3e),
};
private void SetChestAppearance()
{
(ItemID, GumpID) = _chestAppearances.RandomElement();
}
}