#W# Added: Treasure bags are like treasure chests but theres a chance they may not be locked or trapped for less loot.
This commit is contained in:
parent
e15fde2e97
commit
128bececce
8 changed files with 608 additions and 3 deletions
281
Projects/UOContent/Items/TreasureChests/TreasureBagLevel3.cs
Normal file
281
Projects/UOContent/Items/TreasureChests/TreasureBagLevel3.cs
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
using System;
|
||||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
// ==============================================================
|
||||
// LEVEL 3: 90% Trapped / 90% Locked
|
||||
// ==============================================================
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class TreasureBagLevel3 : BaseTreasureBag
|
||||
{
|
||||
[Constructible]
|
||||
public TreasureBagLevel3()
|
||||
{
|
||||
Locked = Utility.RandomDouble() < 0.90; // 90% Locked (10% Unlocked)
|
||||
RequiredSkill = 84;
|
||||
LockLevel = RequiredSkill - Utility.Random(1, 10);
|
||||
MaxLockLevel = RequiredSkill + Utility.Random(1, 10);
|
||||
var isTrapped = false;
|
||||
|
||||
if (Utility.RandomDouble() < 0.90) // 90% Trapped
|
||||
{
|
||||
TrapType = TrapType.PoisonTrap;
|
||||
TrapPower = 3 * Utility.Random(1, 25);
|
||||
isTrapped = true;
|
||||
}
|
||||
|
||||
if (isTrapped && Locked)
|
||||
{
|
||||
DropItem(new Gold(Utility.Random(250, 350)));
|
||||
for (var i = Utility.Random(2); i >= 0; i--)
|
||||
{
|
||||
var reagents = Loot.RandomReagent();
|
||||
reagents.Amount = Utility.Random(1, 9);
|
||||
DropItem(reagents);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var scrolls = Loot.RandomScroll(0, 47, SpellbookType.Regular);
|
||||
scrolls.Amount = Utility.Random(1, 12);
|
||||
DropItem(scrolls);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomPotion());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var gems = Loot.RandomGem();
|
||||
gems.Amount = Utility.Random(1, 9);
|
||||
DropItem(gems);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomWand());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var item = Loot.RandomArmorOrShieldOrWeapon();
|
||||
|
||||
if (item is BaseWeapon weapon)
|
||||
{
|
||||
weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(3);
|
||||
weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(3);
|
||||
weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(3);
|
||||
weapon.Quality = WeaponQuality.Regular;
|
||||
}
|
||||
else if (item is BaseArmor armor)
|
||||
{
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(3);
|
||||
armor.Quality = ArmorQuality.Regular;
|
||||
}
|
||||
|
||||
DropItem(item);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomClothing());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomJewelry());
|
||||
}
|
||||
}
|
||||
|
||||
else if (!isTrapped && Locked)
|
||||
{
|
||||
DropItem(new Gold(Utility.Random(250, 300)));
|
||||
for (var i = Utility.Random(2); i >= 0; i--)
|
||||
{
|
||||
var reagents = Loot.RandomReagent();
|
||||
reagents.Amount = Utility.Random(1, 9);
|
||||
DropItem(reagents);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var scrolls = Loot.RandomScroll(0, 47, SpellbookType.Regular);
|
||||
scrolls.Amount = Utility.Random(1, 12);
|
||||
DropItem(scrolls);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomPotion());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var gems = Loot.RandomGem();
|
||||
gems.Amount = Utility.Random(1, 9);
|
||||
DropItem(gems);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomWand());
|
||||
}
|
||||
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var weapon = Loot.RandomWeapon();
|
||||
weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(3);
|
||||
weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(3);
|
||||
weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(3);
|
||||
weapon.Quality = WeaponQuality.Regular;
|
||||
DropItem(weapon);
|
||||
}
|
||||
}
|
||||
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var armor = Loot.RandomArmorOrShield();
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(3);
|
||||
armor.Quality = ArmorQuality.Regular;
|
||||
DropItem(armor);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomClothing());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomJewelry());
|
||||
}
|
||||
}
|
||||
|
||||
else if (isTrapped && !Locked)
|
||||
{
|
||||
DropItem(new Gold(Utility.Random(250, 300)));
|
||||
for (var i = Utility.Random(2); i >= 0; i--)
|
||||
{
|
||||
var reagents = Loot.RandomReagent();
|
||||
reagents.Amount = Utility.Random(1, 4);
|
||||
DropItem(reagents);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var scrolls = Loot.RandomScroll(0, 47, SpellbookType.Regular);
|
||||
scrolls.Amount = Utility.Random(1, 6);
|
||||
DropItem(scrolls);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomPotion());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var gems = Loot.RandomGem();
|
||||
gems.Amount = Utility.Random(1, 4);
|
||||
DropItem(gems);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomWand());
|
||||
}
|
||||
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var weapon = Loot.RandomWeapon();
|
||||
weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(3);
|
||||
weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(3);
|
||||
weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(3);
|
||||
weapon.Quality = WeaponQuality.Regular;
|
||||
DropItem(weapon);
|
||||
}
|
||||
}
|
||||
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var armor = Loot.RandomArmorOrShield();
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(3);
|
||||
armor.Quality = ArmorQuality.Regular;
|
||||
DropItem(armor);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomClothing());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomJewelry());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DropItem(new Gold(Utility.Random(175, 225)));
|
||||
for (var i = Utility.Random(2); i >= 0; i--)
|
||||
{
|
||||
var reagents = Loot.RandomReagent();
|
||||
reagents.Amount = Utility.Random(1, 4);
|
||||
DropItem(reagents);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var scrolls = Loot.RandomScroll(0, 47, SpellbookType.Regular);
|
||||
scrolls.Amount = Utility.Random(1, 6);
|
||||
DropItem(scrolls);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomPotion());
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var gems = Loot.RandomGem();
|
||||
gems.Amount = Utility.Random(1, 4);
|
||||
DropItem(gems);
|
||||
}
|
||||
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
DropItem(Loot.RandomWand());
|
||||
}
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
for (var i = Utility.Random(3); i > 0; i--)
|
||||
{
|
||||
var armor = Loot.RandomArmorOrShield();
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(3);
|
||||
armor.Quality = ArmorQuality.Regular;
|
||||
DropItem(armor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue