Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
352
Scripts/Items/Containers/TreasureChestMod.cs
Normal file
352
Scripts/Items/Containers/TreasureChestMod.cs
Normal file
@@ -0,0 +1,352 @@
|
||||
// Treasure Chest Pack - Version 0.99I
|
||||
// By Nerun
|
||||
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Multis;
|
||||
using Server.Network;
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
|
||||
// ---------- [Level 1] ----------
|
||||
// Large, Medium and Small Crate
|
||||
[FlipableAttribute( 0xe3e, 0xe3f )]
|
||||
public class TreasureLevel1 : BaseTreasureChestMod
|
||||
{
|
||||
public override int DefaultGumpID{ get{ return 0x49; } }
|
||||
|
||||
[Constructable]
|
||||
public TreasureLevel1() : base( Utility.RandomList( 0xE3C, 0xE3E, 0x9a9 ) )
|
||||
{
|
||||
RequiredSkill = 52;
|
||||
LockLevel = this.RequiredSkill - Utility.Random( 1, 10 );
|
||||
MaxLockLevel = this.RequiredSkill;
|
||||
TrapType = TrapType.MagicTrap;
|
||||
TrapPower = 1 * Utility.Random( 1, 25 );
|
||||
|
||||
DropItem(new Gold(30, 100));
|
||||
DropItem(new Bolt(10));
|
||||
DropItem(Loot.RandomClothing());
|
||||
|
||||
AddLoot(Loot.RandomWeapon());
|
||||
AddLoot(Loot.RandomArmorOrShield());
|
||||
AddLoot(Loot.RandomJewelry());
|
||||
|
||||
for (int i = Utility.Random(3) + 1; i > 0; i--) // random 1 to 3
|
||||
DropItem( Loot.RandomGem() );
|
||||
}
|
||||
|
||||
public TreasureLevel1( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- [Level 1 Hybrid] ----------
|
||||
// Large, Medium and Small Crate
|
||||
[FlipableAttribute( 0xe3e, 0xe3f )]
|
||||
public class TreasureLevel1h : BaseTreasureChestMod
|
||||
{
|
||||
public override int DefaultGumpID{ get{ return 0x49; } }
|
||||
|
||||
[Constructable]
|
||||
public TreasureLevel1h() : base( Utility.RandomList( 0xE3C, 0xE3E, 0x9a9 ) )
|
||||
{
|
||||
RequiredSkill = 56;
|
||||
LockLevel = this.RequiredSkill - Utility.Random( 1, 10 );
|
||||
MaxLockLevel = this.RequiredSkill;
|
||||
TrapType = TrapType.MagicTrap;
|
||||
TrapPower = 1 * Utility.Random( 1, 25 );
|
||||
|
||||
DropItem( new Gold( 10, 40 ) );
|
||||
DropItem( new Bolt( 5 ) );
|
||||
switch ( Utility.Random( 2 ))
|
||||
{
|
||||
case 0: DropItem( new Shoes( Utility.Random( 1, 2 ) ) ); break;
|
||||
case 1: DropItem( new Sandals( Utility.Random( 1, 2 ) ) ); break;
|
||||
}
|
||||
|
||||
switch ( Utility.Random( 3 ))
|
||||
{
|
||||
case 0: DropItem( new BeverageBottle(BeverageType.Ale) ); break;
|
||||
case 1: DropItem( new BeverageBottle(BeverageType.Liquor) ); break;
|
||||
case 2: DropItem( new Jug(BeverageType.Cider) ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public TreasureLevel1h( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- [Level 2] ----------
|
||||
// Large, Medium and Small Crate
|
||||
// Wooden, Metal and Metal Golden Chest
|
||||
// Keg and Barrel
|
||||
[FlipableAttribute( 0xe43, 0xe42 )]
|
||||
public class TreasureLevel2 : BaseTreasureChestMod
|
||||
{
|
||||
[Constructable]
|
||||
public TreasureLevel2() : base( Utility.RandomList( 0xe3c, 0xE3E, 0x9a9, 0xe42, 0x9ab, 0xe40, 0xe7f, 0xe77 ) )
|
||||
{
|
||||
RequiredSkill = 72;
|
||||
LockLevel = this.RequiredSkill - Utility.Random( 1, 10 );
|
||||
MaxLockLevel = this.RequiredSkill;
|
||||
TrapType = TrapType.MagicTrap;
|
||||
TrapPower = 2 * Utility.Random( 1, 25 );
|
||||
|
||||
DropItem( new Gold( 70, 100 ) );
|
||||
DropItem( new Arrow( 10 ) );
|
||||
DropItem( Loot.RandomPotion() );
|
||||
for( int i = Utility.Random( 1, 2 ); i > 1; i-- )
|
||||
{
|
||||
Item ReagentLoot = Loot.RandomReagent();
|
||||
ReagentLoot.Amount = Utility.Random( 1, 2 );
|
||||
DropItem( ReagentLoot );
|
||||
}
|
||||
if (Utility.RandomBool()) //50% chance
|
||||
for (int i = Utility.Random(8) + 1; i > 0; i--)
|
||||
DropItem(Loot.RandomScroll(0, 39, SpellbookType.Regular));
|
||||
|
||||
if (Utility.RandomBool()) //50% chance
|
||||
for (int i = Utility.Random(6) + 1; i > 0; i--)
|
||||
DropItem( Loot.RandomGem() );
|
||||
}
|
||||
|
||||
public TreasureLevel2( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- [Level 3] ----------
|
||||
// Wooden, Metal and Metal Golden Chest
|
||||
[FlipableAttribute( 0x9ab, 0xe7c )]
|
||||
public class TreasureLevel3 : BaseTreasureChestMod
|
||||
{
|
||||
public override int DefaultGumpID{ get{ return 0x4A; } }
|
||||
|
||||
[Constructable]
|
||||
public TreasureLevel3() : base( Utility.RandomList( 0x9ab, 0xe40, 0xe42 ) )
|
||||
{
|
||||
RequiredSkill = 84;
|
||||
LockLevel = this.RequiredSkill - Utility.Random( 1, 10 );
|
||||
MaxLockLevel = this.RequiredSkill;
|
||||
TrapType = TrapType.MagicTrap;
|
||||
TrapPower = 3 * Utility.Random( 1, 25 );
|
||||
|
||||
DropItem( new Gold( 180, 240 ) );
|
||||
DropItem( new Arrow( 10 ) );
|
||||
|
||||
for( int i = Utility.Random( 1, 3 ); i > 1; i-- )
|
||||
{
|
||||
Item ReagentLoot = Loot.RandomReagent();
|
||||
ReagentLoot.Amount = Utility.Random( 1, 9 );
|
||||
DropItem( ReagentLoot );
|
||||
}
|
||||
|
||||
for ( int i = Utility.Random( 1, 3 ); i > 1; i-- )
|
||||
DropItem( Loot.RandomPotion() );
|
||||
|
||||
if ( 0.67 > Utility.RandomDouble() ) //67% chance = 2/3
|
||||
for (int i = Utility.Random(12) + 1; i > 0; i--)
|
||||
DropItem(Loot.RandomScroll(0, 47, SpellbookType.Regular));
|
||||
|
||||
if ( 0.67 > Utility.RandomDouble() ) //67% chance = 2/3
|
||||
for (int i = Utility.Random(9) + 1; i > 0; i--)
|
||||
DropItem( Loot.RandomGem() );
|
||||
|
||||
for( int i = Utility.Random( 1, 3 ); i > 1; i-- )
|
||||
DropItem( Loot.RandomWand() );
|
||||
|
||||
// Magical ArmorOrWeapon
|
||||
for( int i = Utility.Random( 1, 3 ); i > 1; i-- )
|
||||
{
|
||||
Item item = Loot.RandomArmorOrShieldOrWeapon();
|
||||
|
||||
if (!Core.AOS)
|
||||
{
|
||||
if (item is BaseWeapon)
|
||||
{
|
||||
BaseWeapon weapon = (BaseWeapon)item;
|
||||
weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(3);
|
||||
weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(3);
|
||||
weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(3);
|
||||
weapon.Quality = ItemQuality.Normal;
|
||||
}
|
||||
else if (item is BaseArmor)
|
||||
{
|
||||
BaseArmor armor = (BaseArmor)item;
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(3);
|
||||
armor.Quality = ItemQuality.Normal;
|
||||
}
|
||||
}
|
||||
else
|
||||
AddLoot(item);
|
||||
}
|
||||
|
||||
for( int i = Utility.Random( 1, 2 ); i > 1; i-- )
|
||||
AddLoot( Loot.RandomClothing() );
|
||||
|
||||
for( int i = Utility.Random( 1, 2 ); i > 1; i-- )
|
||||
AddLoot(Loot.RandomJewelry());
|
||||
|
||||
// Magic clothing (not implemented)
|
||||
|
||||
// Magic jewelry (not implemented)
|
||||
}
|
||||
|
||||
public TreasureLevel3( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- [Level 4] ----------
|
||||
// Wooden, Metal and Metal Golden Chest
|
||||
[FlipableAttribute( 0xe41, 0xe40 )]
|
||||
public class TreasureLevel4 : BaseTreasureChestMod
|
||||
{
|
||||
[Constructable]
|
||||
public TreasureLevel4() : base( Utility.RandomList( 0xe40, 0xe42, 0x9ab ) )
|
||||
{
|
||||
RequiredSkill = 92;
|
||||
LockLevel = this.RequiredSkill - Utility.Random( 1, 10 );
|
||||
MaxLockLevel = this.RequiredSkill;
|
||||
TrapType = TrapType.MagicTrap;
|
||||
TrapPower = 4 * Utility.Random( 1, 25 );
|
||||
|
||||
DropItem( new Gold( 200, 400 ) );
|
||||
DropItem( new BlankScroll( Utility.Random( 1, 4 ) ) );
|
||||
|
||||
for( int i = Utility.Random( 1, 4 ); i > 1; i-- )
|
||||
{
|
||||
Item ReagentLoot = Loot.RandomReagent();
|
||||
ReagentLoot.Amount = Utility.Random( 6, 12 );
|
||||
DropItem( ReagentLoot );
|
||||
}
|
||||
|
||||
for ( int i = Utility.Random( 1, 4 ); i > 1; i-- )
|
||||
DropItem( Loot.RandomPotion() );
|
||||
|
||||
if ( 0.75 > Utility.RandomDouble() ) //75% chance = 3/4
|
||||
for (int i = Utility.RandomMinMax(8,16); i > 0; i--)
|
||||
DropItem(Loot.RandomScroll(0, 47, SpellbookType.Regular));
|
||||
|
||||
if ( 0.75 > Utility.RandomDouble() ) //75% chance = 3/4
|
||||
for (int i = Utility.RandomMinMax(6,12) + 1; i > 0; i--)
|
||||
DropItem( Loot.RandomGem() );
|
||||
|
||||
for( int i = Utility.Random( 1, 4 ); i > 1; i-- )
|
||||
DropItem( Loot.RandomWand() );
|
||||
|
||||
// Magical ArmorOrWeapon
|
||||
for( int i = Utility.Random( 1, 4 ); i > 1; i-- )
|
||||
{
|
||||
Item item = Loot.RandomArmorOrShieldOrWeapon();
|
||||
|
||||
if (!Core.AOS)
|
||||
{
|
||||
if (item is BaseWeapon)
|
||||
{
|
||||
BaseWeapon weapon = (BaseWeapon)item;
|
||||
weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(4);
|
||||
weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(4);
|
||||
weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(4);
|
||||
weapon.Quality = ItemQuality.Normal;
|
||||
}
|
||||
else if (item is BaseArmor)
|
||||
{
|
||||
BaseArmor armor = (BaseArmor)item;
|
||||
armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(4);
|
||||
armor.Durability = (ArmorDurabilityLevel)Utility.Random(4);
|
||||
armor.Quality = ItemQuality.Normal;
|
||||
}
|
||||
}
|
||||
else
|
||||
AddLoot(item);
|
||||
}
|
||||
|
||||
for( int i = Utility.Random( 1, 2 ); i > 1; i-- )
|
||||
AddLoot( Loot.RandomClothing() );
|
||||
|
||||
for( int i = Utility.Random( 1, 2 ); i > 1; i-- )
|
||||
AddLoot( Loot.RandomJewelry() );
|
||||
}
|
||||
|
||||
public TreasureLevel4( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user