Cool shades, cheap sunglasses

This commit is contained in:
xavier 2011-09-11 01:10:58 +00:00
parent 93da1f5037
commit 9ff6bfbc79
14 changed files with 670 additions and 0 deletions

View file

@ -7,6 +7,23 @@ namespace Server.Items
{
public abstract class BasePigmentsOfTokuno : Item, IUsesRemaining
{
private static Type[] m_Glasses = new Type[]
{
typeof( MaritimeGlasses ),
typeof( WizardsGlasses ),
typeof( TradeGlasses ),
typeof( LyricalGlasses ),
typeof( NecromanticGlasses ),
typeof( LightOfWayGlasses ),
typeof( FoldedSteelGlasses ),
typeof( PoisonedGlasses ),
typeof( TreasureTrinketGlasses ),
typeof( MaceShieldGlasses ),
typeof( ArtsGlasses ),
typeof( AnthropomorphistGlasses )
};
private static Type[] m_Replicas = new Type[]
{
typeof( ANecromancerShroud ),
@ -172,6 +189,7 @@ namespace Server.Items
|| IsInTypeList( t, TreasureMapChest.Artifacts )
|| IsInTypeList( t, m_Replicas )
|| IsInTypeList( t, m_DyableHeritageItems )
|| IsInTypeList( t, m_Glasses )
);
}

View file

@ -0,0 +1,43 @@
using System;
using Server;
namespace Server.Items
{
public class AnthropomorphistGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073379; } } //Anthropomorphist Reading Glasses
public override int BasePhysicalResistance{ get{ return 5; } }
public override int BaseFireResistance{ get{ return 5; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 20; } }
public override int BaseEnergyResistance{ get{ return 20; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public AnthropomorphistGlasses()
{
Attributes.BonusHits = 5;
Attributes.RegenMana = 3;
Attributes.ReflectPhysical = 20;
}
public AnthropomorphistGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class ArtsGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073363; } } //Reading Glasses of the Arts
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 8; } }
public override int BaseColdResistance{ get{ return 8; } }
public override int BasePoisonResistance{ get{ return 4; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public ArtsGlasses()
{
Attributes.BonusStr = 5;
Attributes.BonusInt = 5;
Attributes.BonusHits = 15;
}
public ArtsGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,146 @@
using System;
using Server;
namespace Server.Items
{
public class ElvenGlasses : BaseArmor
{
public override int LabelNumber{ get{ return 1032216; } } //elven glasses
public override int BasePhysicalResistance{ get{ return 2; } }
public override int BaseFireResistance{ get{ return 4; } }
public override int BaseColdResistance{ get{ return 4; } }
public override int BasePoisonResistance{ get{ return 3; } }
public override int BaseEnergyResistance{ get{ return 2; } }
public override int InitMinHits{ get{ return 36; } }
public override int InitMaxHits{ get{ return 48; } }
public override int AosStrReq{ get{ return 45; } }
public override int OldStrReq{ get{ return 40; } }
public override int ArmorBase{ get{ return 30; } }
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Leather; } }
public override CraftResource DefaultResource{ get{ return CraftResource.RegularLeather; } }
public override ArmorMeditationAllowance DefMedAllowance{ get{ return ArmorMeditationAllowance.All; } }
private AosWeaponAttributes m_AosWeaponAttributes;
[CommandProperty( AccessLevel.GameMaster )]
public AosWeaponAttributes WeaponAttributes
{
get{ return m_AosWeaponAttributes; }
}
[Constructable]
public ElvenGlasses() : base( 0x2FB8 )
{
Weight = 2;
m_AosWeaponAttributes = new AosWeaponAttributes( this );
}
public ElvenGlasses( Serial serial ) : base( serial )
{
}
public override void AppendChildNameProperties( ObjectPropertyList list )
{
base.AppendChildNameProperties( list );
int prop;
if ( (prop = m_AosWeaponAttributes.HitColdArea) != 0 )
list.Add( 1060416, prop.ToString() ); // hit cold area ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitDispel) != 0 )
list.Add( 1060417, prop.ToString() ); // hit dispel ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitEnergyArea) != 0 )
list.Add( 1060418, prop.ToString() ); // hit energy area ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitFireArea) != 0 )
list.Add( 1060419, prop.ToString() ); // hit fire area ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitFireball) != 0 )
list.Add( 1060420, prop.ToString() ); // hit fireball ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitHarm) != 0 )
list.Add( 1060421, prop.ToString() ); // hit harm ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLeechHits) != 0 )
list.Add( 1060422, prop.ToString() ); // hit life leech ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLightning) != 0 )
list.Add( 1060423, prop.ToString() ); // hit lightning ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLowerAttack) != 0 )
list.Add( 1060424, prop.ToString() ); // hit lower attack ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLowerDefend) != 0 )
list.Add( 1060425, prop.ToString() ); // hit lower defense ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitMagicArrow) != 0 )
list.Add( 1060426, prop.ToString() ); // hit magic arrow ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLeechMana) != 0 )
list.Add( 1060427, prop.ToString() ); // hit mana leech ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitPhysicalArea) != 0 )
list.Add( 1060428, prop.ToString() ); // hit physical area ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitPoisonArea) != 0 )
list.Add( 1060429, prop.ToString() ); // hit poison area ~1_val~%
if ( (prop = m_AosWeaponAttributes.HitLeechStam) != 0 )
list.Add( 1060430, prop.ToString() ); // hit stamina leech ~1_val~%
}
private static void SetSaveFlag( ref SaveFlag flags, SaveFlag toSet, bool setIf )
{
if ( setIf )
flags |= toSet;
}
private static bool GetSaveFlag( SaveFlag flags, SaveFlag toGet )
{
return ( (flags & toGet) != 0 );
}
private enum SaveFlag
{
None = 0x00000000,
WeaponAttributes = 0x00000001,
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
SaveFlag flags = SaveFlag.None;
SetSaveFlag( ref flags, SaveFlag.WeaponAttributes, !m_AosWeaponAttributes.IsEmpty );
writer.Write( (int) flags );
if ( GetSaveFlag( flags, SaveFlag.WeaponAttributes ) )
m_AosWeaponAttributes.Serialize( writer );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
SaveFlag flags = (SaveFlag) reader.ReadInt();
if ( GetSaveFlag( flags, SaveFlag.WeaponAttributes ) )
m_AosWeaponAttributes = new AosWeaponAttributes( this, reader );
else
m_AosWeaponAttributes = new AosWeaponAttributes( this );
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class FoldedSteelGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073380; } } //Folded Steel Reading Glasses
public override int BasePhysicalResistance{ get{ return 20; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public FoldedSteelGlasses()
{
Attributes.BonusStr = 8;
Attributes.NightSight = 1;
Attributes.DefendChance = 15;
}
public FoldedSteelGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class LightOfWayGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073378; } } //Light Of Way Reading Glasses
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public LightOfWayGlasses()
{
Attributes.BonusStr = 7;
Attributes.BonusInt = 5;
Attributes.WeaponDamage = 30;
}
public LightOfWayGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,44 @@
using System;
using Server;
namespace Server.Items
{
public class LyricalGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073382; } } //Lyrical Reading Glasses
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private AosWeaponAttributes m_AosWeaponAttributes;
[Constructable]
public LyricalGlasses()
{
WeaponAttributes.HitLowerDefend = 20;
Attributes.NightSight = 1;
Attributes.ReflectPhysical = 15;
}
public LyricalGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,44 @@
using System;
using Server;
namespace Server.Items
{
public class MaceShieldGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073381; } } //Mace And Shield Reading Glasses
public override int BasePhysicalResistance{ get{ return 25; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private AosWeaponAttributes m_AosWeaponAttributes;
[Constructable]
public MaceShieldGlasses()
{
WeaponAttributes.HitLowerDefend = 30;
Attributes.BonusStr = 10;
Attributes.BonusDex = 5;
}
public MaceShieldGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class MaritimeGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073364; } } //Maritime Reading Glasses
public override int BasePhysicalResistance{ get{ return 3; } }
public override int BaseFireResistance{ get{ return 4; } }
public override int BaseColdResistance{ get{ return 30; } }
public override int BasePoisonResistance{ get{ return 5; } }
public override int BaseEnergyResistance{ get{ return 3; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public MaritimeGlasses()
{
Attributes.Luck = 150;
Attributes.NightSight = 1;
Attributes.ReflectPhysical = 20;
}
public MaritimeGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class NecromanticGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073377; } } //Necromantic Reading Glasses
public override int BasePhysicalResistance{ get{ return 0; } }
public override int BaseFireResistance{ get{ return 0; } }
public override int BaseColdResistance{ get{ return 0; } }
public override int BasePoisonResistance{ get{ return 0; } }
public override int BaseEnergyResistance{ get{ return 0; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public NecromanticGlasses()
{
Attributes.LowerManaCost = 15;
Attributes.LowerRegCost = 30;
}
public NecromanticGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class PoisonedGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073376; } } //Poisoned Reading Glasses
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 30; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public PoisonedGlasses()
{
Attributes.BonusStam = 3;
Attributes.RegenStam = 4;
}
public PoisonedGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class TradeGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073362; } } //Reading Glasses of the Trades
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public TradeGlasses()
{
Attributes.BonusStr = 10;
Attributes.BonusInt = 10;
}
public TradeGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class TreasureTrinketGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073373; } } //Treasures and Trinkets Reading Glasses
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public TreasureTrinketGlasses()
{
Attributes.BonusInt = 10;
Attributes.BonusHits = 5;
Attributes.SpellDamage = 10;
}
public TreasureTrinketGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class WizardsGlasses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1073374; } } //Wizard's Crystal Reading Glasses
public override int BasePhysicalResistance{ get{ return 5; } }
public override int BaseFireResistance{ get{ return 5; } }
public override int BaseColdResistance{ get{ return 5; } }
public override int BasePoisonResistance{ get{ return 5; } }
public override int BaseEnergyResistance{ get{ return 5; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public WizardsGlasses()
{
Attributes.BonusMana = 10;
Attributes.RegenMana = 3;
Attributes.SpellDamage = 15;
}
public WizardsGlasses( Serial serial ) : base( serial )
{
}
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();
}
}
}