113 lines
3.2 KiB
C#
113 lines
3.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|