BaseCreature & PlayerMobile set to partial classes for easier extensibility. Prevent Item from stacking with itself Updated Bounds.bin with latest values. ItemBounds will now correctly size itself to the TileData. Compiler directives for .NET 4.0 no longer needed - .NET 4.0 is now supported by default to take advantage of the new Socket Events and Parallelization improvements.
136 lines
No EOL
3.4 KiB
C#
136 lines
No EOL
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public class EarringBoxSet : RedVelvetGiftBox
|
|
{
|
|
[Constructable]
|
|
public EarringBoxSet()
|
|
: base()
|
|
{
|
|
DropItem( new EarringsOfProtection( AosElementAttribute.Physical ) );
|
|
DropItem( new EarringsOfProtection( AosElementAttribute.Fire ) );
|
|
DropItem( new EarringsOfProtection( AosElementAttribute.Cold ) );
|
|
DropItem( new EarringsOfProtection( AosElementAttribute.Poison ) );
|
|
DropItem( new EarringsOfProtection( AosElementAttribute.Energy ) );
|
|
}
|
|
|
|
public EarringBoxSet( 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();
|
|
}
|
|
}
|
|
|
|
public class EarringsOfProtection : BaseJewel
|
|
{
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public virtual AosElementAttribute Attribute
|
|
{
|
|
get
|
|
{
|
|
return m_Attribute;
|
|
}
|
|
}
|
|
|
|
public override int LabelNumber
|
|
{
|
|
get
|
|
{
|
|
return GetItemData( m_Attribute, true );
|
|
}
|
|
}
|
|
|
|
public override int Hue
|
|
{
|
|
get
|
|
{
|
|
return GetItemData( m_Attribute, false );
|
|
}
|
|
}
|
|
|
|
private AosElementAttribute m_Attribute;
|
|
|
|
[Constructable]
|
|
public EarringsOfProtection() : this( RandomType() )
|
|
{
|
|
}
|
|
|
|
[Constructable]
|
|
public EarringsOfProtection( AosElementAttribute element )
|
|
: base( 0x1087, Layer.Earrings )
|
|
{
|
|
Resistances[ ( (AosElementAttribute)element ) ] = 2;
|
|
|
|
m_Attribute = element;
|
|
LootType = LootType.Blessed;
|
|
}
|
|
|
|
public EarringsOfProtection( Serial serial )
|
|
: base( serial )
|
|
{
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.Write( (int)0 ); // version
|
|
writer.Write( (int)m_Attribute );
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadInt();
|
|
m_Attribute = (AosElementAttribute)reader.ReadInt();
|
|
}
|
|
|
|
public static AosElementAttribute RandomType()
|
|
{
|
|
return GetTypes( Utility.Random( 5 ) );
|
|
}
|
|
|
|
public static AosElementAttribute GetTypes( int value )
|
|
{
|
|
switch( value )
|
|
{
|
|
case 0: return AosElementAttribute.Physical;
|
|
case 1: return AosElementAttribute.Fire;
|
|
case 2: return AosElementAttribute.Cold;
|
|
case 3: return AosElementAttribute.Poison;
|
|
default: return AosElementAttribute.Energy;
|
|
}
|
|
}
|
|
|
|
public static int GetItemData( AosElementAttribute element, bool label )
|
|
{
|
|
switch( element )
|
|
{
|
|
case AosElementAttribute.Physical: return ( label ) ? 1071091 : 0; // Earring of Protection (Physical) 1071091
|
|
case AosElementAttribute.Fire: return ( label ) ? 1071092 : 0x4ec; // Earring of Protection (Fire) 1071092
|
|
case AosElementAttribute.Cold: return ( label ) ? 1071093 : 0x4f2; // Earring of Protection (Cold) 1071093
|
|
case AosElementAttribute.Poison: return ( label ) ? 1071094 : 0x4f8; // Earring of Protection (Poison) 1071094
|
|
case AosElementAttribute.Energy: return ( label ) ? 1071095 : 0x4fe; // Earring of Protection (Energy) 1071095
|
|
|
|
default: return -1;
|
|
}
|
|
}
|
|
}
|
|
} |