namespace Server.Items { public class EarringBoxSet : RedVelvetGiftBox { [Constructible] public EarringBoxSet() { 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 => m_Attribute; public override int LabelNumber => GetItemData( m_Attribute, true ); public override int Hue => GetItemData( m_Attribute, false ); private AosElementAttribute m_Attribute; [Constructible] public EarringsOfProtection() : this( RandomType() ) { } [Constructible] 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; } } } }