using System; using Server.Misc; namespace Server.Items { [FlipableAttribute( 0x1515, 0x1530 )] public class ElvenCloakOfHiding : Cloak { private SkillMod m_SkillMod0; private SkillMod m_SkillMod1; private SkillMod m_SkillMod2; private StatMod m_StatMod0; [Constructable] public ElvenCloakOfHiding() : base( 0x309 ) { Name = "Elven Cloak of the Unseen"; DefineMods(); } private void DefineMods() { m_SkillMod0 = new DefaultSkillMod( SkillName.Hiding, true, 10 ); m_SkillMod1 = new DefaultSkillMod( SkillName.Stealth, true, 10 ); m_SkillMod2 = new DefaultSkillMod( SkillName.DetectHidden, true, 5 ); m_StatMod0 = new StatMod( StatType.Dex, "ElvenCloak", 5, TimeSpan.Zero ); } private void SetMods( Mobile wearer ) { wearer.AddSkillMod( m_SkillMod0 ); wearer.AddSkillMod( m_SkillMod1 ); wearer.AddSkillMod( m_SkillMod2 ); wearer.AddStatMod( m_StatMod0 ); } public override bool OnEquip( Mobile from ) { SetMods( from ); return true; } public override bool Dye( Mobile from, DyeTub sender ) { from.SendLocalizedMessage( 1042083 ); // You can not dye that. return false; } public override void OnRemoved( object parent ) { if ( parent is Mobile ) { ((Mobile)parent).RemoveStatMod("ElvenCloak"); if (((Mobile)parent).Hits > ((Mobile)parent).HitsMax) ((Mobile)parent).Hits = ((Mobile)parent).HitsMax; if ( m_SkillMod0 != null ) m_SkillMod0.Remove(); if ( m_SkillMod1 != null ) m_SkillMod1.Remove(); if ( m_SkillMod2 != null ) m_SkillMod2.Remove(); } } public override void OnSingleClick( Mobile from ) { this.LabelTo( from, Name ); base.OnSingleClick( from ); } public ElvenCloakOfHiding( Serial serial ) : base( serial ) { DefineMods(); if ( Parent != null && this.Parent is Mobile ) SetMods( (Mobile)Parent ); } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); } } }