ModernUO/Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs
2018-09-14 08:46:14 -07:00

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;
}
}
}
}