Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
[TypeAlias("Server.Items.AdmiralHeartyRum")]
public class AdmiralsHeartyRum : BeverageBottle
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public AdmiralsHeartyRum()
: base(BeverageType.Ale)
{
Hue = 0x66C;
}
public AdmiralsHeartyRum(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1063477;
}
}
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,218 @@
using System;
using Server.Misc;
using Server.Mobiles;
namespace Server.Items
{
public abstract class BasePigmentsOfTokuno : Item, IUsesRemaining
{
public override int LabelNumber
{
get
{
return 1070933;
}
}// Pigments of Tokuno
private int m_UsesRemaining;
private TextDefinition m_Label;
protected TextDefinition Label
{
get
{
return m_Label;
}
set
{
m_Label = value;
InvalidateProperties();
}
}
#region Old Item Serialization Vars
/* DO NOT USE! Only used in serialization of pigments that originally derived from Item */
private bool m_InheritsItem;
protected bool InheritsItem
{
get
{
return m_InheritsItem;
}
}
#endregion
public BasePigmentsOfTokuno()
: base(0xEFF)
{
Weight = 1.0;
m_UsesRemaining = 1;
}
public BasePigmentsOfTokuno(int uses)
: base(0xEFF)
{
Weight = 1.0;
m_UsesRemaining = uses;
}
public BasePigmentsOfTokuno(Serial serial)
: base(serial)
{
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
if (m_Label != null && m_Label > 0)
TextDefinition.AddTo(list, m_Label);
}
public override void AddUsesRemainingProperties(ObjectPropertyList list)
{
list.Add(1060584, m_UsesRemaining.ToString()); // uses remaining: ~1_val~
}
public override void OnDoubleClick(Mobile from)
{
if (IsAccessibleTo(from) && from.InRange(GetWorldLocation(), 3))
{
from.SendLocalizedMessage(1070929); // Select the artifact or enhanced magic item to dye.
from.BeginTarget(3, false, Server.Targeting.TargetFlags.None, new TargetStateCallback(InternalCallback), this);
}
else
from.SendLocalizedMessage(502436); // That is not accessible.
}
private void InternalCallback(Mobile from, object targeted, object state)
{
BasePigmentsOfTokuno pigment = (BasePigmentsOfTokuno)state;
if (pigment.Deleted || pigment.UsesRemaining <= 0 || !from.InRange(pigment.GetWorldLocation(), 3) || !pigment.IsAccessibleTo(from))
return;
Item i = targeted as Item;
if (i == null)
from.SendLocalizedMessage(1070931); // You can only dye artifacts and enhanced magic items with this tub.
else if (!from.InRange(i.GetWorldLocation(), 3) || !IsAccessibleTo(from))
from.SendLocalizedMessage(502436); // That is not accessible.
else if (from.Items.Contains(i))
from.SendLocalizedMessage(1070930); // Can't dye artifacts or enhanced magic items that are being worn.
else if (i.IsLockedDown)
from.SendLocalizedMessage(1070932); // You may not dye artifacts and enhanced magic items which are locked down.
else if (i is MetalPigmentsOfTokuno || i is LesserPigmentsOfTokuno || i is PigmentsOfTokuno || i is CompassionPigment)
from.SendLocalizedMessage(1042417); // You cannot dye that.
else if (!IsValidItem(i))
from.SendLocalizedMessage(1070931); // You can only dye artifacts and enhanced magic items with this tub. //Yes, it says tub on OSI. Don't ask me why ;p
else
{
//Notes: on OSI there IS no hue check to see if it's already hued. and no messages on successful hue either
i.Hue = Hue;
if (--pigment.UsesRemaining <= 0)
pigment.Delete();
from.PlaySound(0x23E); // As per OSI TC1
}
}
public static bool IsValidItem(Item i)
{
if (i is BasePigmentsOfTokuno)
return false;
Type t = i.GetType();
CraftResource resource = CraftResource.None;
if (i is BaseWeapon)
resource = ((BaseWeapon)i).Resource;
else if (i is BaseArmor)
resource = ((BaseArmor)i).Resource;
else if (i is BaseClothing)
resource = ((BaseClothing)i).Resource;
if (!CraftResources.IsStandard(resource))
return true;
if (i.IsArtifact)
return true;
if (i is BaseAddonDeed && ((BaseAddonDeed)i).UseCraftResource && !((BaseAddonDeed)i).IsReDeed && ((BaseAddonDeed)i).Resource != CraftResource.None)
return true;
return false;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.WriteEncodedInt(m_UsesRemaining);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch ( version )
{
case 1:
{
m_UsesRemaining = reader.ReadEncodedInt();
break;
}
case 0: // Old pigments that inherited from item
{
m_InheritsItem = true;
if (this is LesserPigmentsOfTokuno)
((LesserPigmentsOfTokuno)this).Type = (LesserPigmentType)reader.ReadEncodedInt();
else if (this is PigmentsOfTokuno)
((PigmentsOfTokuno)this).Type = (PigmentType)reader.ReadEncodedInt();
else if (this is MetalPigmentsOfTokuno)
reader.ReadEncodedInt();
m_UsesRemaining = reader.ReadEncodedInt();
break;
}
}
}
#region IUsesRemaining Members
[CommandProperty(AccessLevel.GameMaster)]
public int UsesRemaining
{
get
{
return m_UsesRemaining;
}
set
{
m_UsesRemaining = value;
InvalidateProperties();
}
}
public bool ShowUsesRemaining
{
get
{
return true;
}
set
{
}
}
#endregion
}
}

View File

@@ -0,0 +1,40 @@
using System;
namespace Server.Items
{
public class Bleach : PigmentsOfTokuno
{
[Constructable]
public Bleach()
: base(PigmentType.None)
{
this.LootType = LootType.Blessed;
}
public Bleach(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075375;
}
}// Bleach
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,64 @@
using System;
namespace Server.Items
{
public class ElixirofAgapiteConversion : Item
{
public override int LabelNumber { get { return 1113008; } } // Elixir of Agapite Conversion
[Constructable]
public ElixirofAgapiteConversion()
: base(0x99B)
{
Hue = 2425;
Movable = true;
}
public ElixirofAgapiteConversion(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
Container backpack = from.Backpack;
ShadowIronIngot item1 = (ShadowIronIngot)backpack.FindItemByType(typeof(ShadowIronIngot));
if (item1 != null)
{
BaseIngot m_Ore1 = item1 as BaseIngot;
int toConsume = m_Ore1.Amount;
if ((m_Ore1.Amount > 499) && (m_Ore1.Amount < 501))
{
m_Ore1.Delete();
from.SendLocalizedMessage(1113048); // You've successfully converted the metal.
from.AddToBackpack(new AgapiteIngot(500));
this.Delete();
}
else if ((m_Ore1.Amount < 500) || (m_Ore1.Amount > 500))
{
from.SendLocalizedMessage(1113046); // You can only convert five hundred ingots at a time.
}
}
else
{
from.SendLocalizedMessage(1078618); // The item must be in your backpack to be exchanged.
}
}
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();
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
namespace Server.Items
{
public class ElixirofGoldConversion : Item
{
public override int LabelNumber { get { return 1113007; } } // Elixir of Gold Conversion
[Constructable]
public ElixirofGoldConversion()
: base(0x99B)
{
Hue = 2213;
Movable = true;
}
public ElixirofGoldConversion(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
Container backpack = from.Backpack;
DullCopperIngot item1 = (DullCopperIngot)backpack.FindItemByType(typeof(DullCopperIngot));
if (item1 != null)
{
BaseIngot m_Ore1 = item1 as BaseIngot;
int toConsume = m_Ore1.Amount;
if ((m_Ore1.Amount > 499) && (m_Ore1.Amount < 501))
{
m_Ore1.Delete();
from.SendLocalizedMessage(1113048); // You've successfully converted the metal.
from.AddToBackpack(new GoldIngot(500));
this.Delete();
}
else if ((m_Ore1.Amount < 500) || (m_Ore1.Amount > 500))
{
from.SendLocalizedMessage(1113046); // You can only convert five hundred ingots at a time.
}
}
else
{
from.SendLocalizedMessage(1078618); // The item must be in your backpack to be exchanged.
}
}
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();
}
}
}

View File

@@ -0,0 +1,80 @@
using System;
namespace Server.Items
{
public class ElixirofMetalConversion : Item
{
public override int LabelNumber { get { return 1113011; } } // Elixir of Metal Conversion
[Constructable]
public ElixirofMetalConversion()
: base(0x99B)
{
Hue = 1159;
Movable = true;
}
public ElixirofMetalConversion(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
Container backpack = from.Backpack;
IronIngot item1 = (IronIngot)backpack.FindItemByType(typeof(IronIngot));
if (item1 != null)
{
BaseIngot m_Ore1 = item1 as BaseIngot;
int toConsume = m_Ore1.Amount;
if ((m_Ore1.Amount > 499) && (m_Ore1.Amount < 501))
{
m_Ore1.Delete();
switch ( Utility.Random(4) )
{
case 0:
from.AddToBackpack(new DullCopperIngot(500));
break;
case 2:
from.AddToBackpack(new ShadowIronIngot(500));
break;
case 1:
from.AddToBackpack(new CopperIngot(500));
break;
case 3:
from.AddToBackpack(new BronzeIngot(500));
break;
}
from.SendLocalizedMessage(1113048); // You've successfully converted the metal.
this.Delete();
}
else if ((m_Ore1.Amount < 500) || (m_Ore1.Amount > 500))
{
from.SendLocalizedMessage(1113046); // You can only convert five hundred ingots at a time.
}
}
else
{
from.SendLocalizedMessage(1078618); // The item must be in your backpack to be exchanged.
}
}
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();
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
namespace Server.Items
{
public class ElixirofValoriteConversion : Item
{
public override int LabelNumber { get { return 1113010; } } // Elixir of Valorite Conversion
[Constructable]
public ElixirofValoriteConversion()
: base(0x99B)
{
Hue = 2219;
Movable = true;
}
public ElixirofValoriteConversion(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
Container backpack = from.Backpack;
BronzeIngot item1 = (BronzeIngot)backpack.FindItemByType(typeof(BronzeIngot));
if (item1 != null)
{
BaseIngot m_Ore1 = item1 as BaseIngot;
int toConsume = m_Ore1.Amount;
if ((m_Ore1.Amount > 499) && (m_Ore1.Amount < 501))
{
m_Ore1.Delete();
from.SendLocalizedMessage(1113048); // You've successfully converted the metal.
from.AddToBackpack(new ValoriteIngot(500));
this.Delete();
}
else if ((m_Ore1.Amount < 500) || (m_Ore1.Amount > 500))
{
from.SendLocalizedMessage(1113046); // You can only convert five hundred ingots at a time.
}
}
else
{
from.SendLocalizedMessage(1078618); // The item must be in your backpack to be exchanged.
}
}
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();
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
namespace Server.Items
{
public class ElixirofVeriteConversion : Item
{
public override int LabelNumber { get { return 1113009; } } // Elixir of Verite Conversion
[Constructable]
public ElixirofVeriteConversion()
: base(0x99B)
{
Hue = 2207;
Movable = true;
}
public ElixirofVeriteConversion(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
Container backpack = from.Backpack;
CopperIngot item1 = (CopperIngot)backpack.FindItemByType(typeof(CopperIngot));
if (item1 != null)
{
BaseIngot m_Ore1 = item1 as BaseIngot;
int toConsume = m_Ore1.Amount;
if ((m_Ore1.Amount > 499) && (m_Ore1.Amount < 501))
{
m_Ore1.Delete();
from.SendLocalizedMessage(1113048); // You've successfully converted the metal.
from.AddToBackpack(new VeriteIngot(500));
this.Delete();
}
else if ((m_Ore1.Amount < 500) || (m_Ore1.Amount > 500))
{
from.SendLocalizedMessage(1113046); // You can only convert five hundred ingots at a time.
}
}
else
{
from.SendLocalizedMessage(1078618); // The item must be in your backpack to be exchanged.
}
}
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();
}
}
}

View File

@@ -0,0 +1,121 @@
using System;
using Server;
namespace Server.Items
{
public class GobletOfCelebration : Item
{
public override int LabelNumber { get { return 1075430; } } // Goblet of Celebration
private bool m_Full;
private DateTime m_NextFill;
private Timer m_FillTimer;
[CommandProperty(AccessLevel.GameMaster)]
public bool Full
{
get
{
return m_Full;
}
set
{
if (m_Full != value)
{
m_Full = value;
InvalidateProperties();
if (m_FillTimer != null)
m_FillTimer.Stop();
if (!m_Full)
{
m_NextFill = DateTime.Now + TimeSpan.FromDays(1.0);
m_FillTimer = Timer.DelayCall(TimeSpan.FromDays(1.0), new TimerCallback(delegate { Full = true; }));
}
}
}
}
[Constructable]
public GobletOfCelebration()
: base(0x99A)
{
LootType = LootType.Blessed;
Weight = 1.0;
Hue = 19;
m_Full = true;
}
public override void OnDoubleClick(Mobile from)
{
base.OnDoubleClick(from);
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1075438); // You can only drink from the goblet of celebration when its in your inventory.
}
else
{
if (m_Full)
{
from.SendLocalizedMessage(1075272); // You drink from the goblet of celebration
Full = false;
from.BAC = 60;
BaseBeverage.CheckHeaveTimer(from);
}
else
{
from.SendLocalizedMessage(1075439); // You need to wait a day for the goblet of celebration to be replenished.
}
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
if (m_Full)
list.Add(1042972); // It's full.
else
list.Add(1042975); // It's empty.
}
public GobletOfCelebration(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
writer.Write(m_Full);
if (!m_Full)
{
writer.Write(m_NextFill);
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Full = reader.ReadBool();
if (!m_Full)
{
m_NextFill = reader.ReadDateTime();
m_FillTimer = Timer.DelayCall(m_NextFill - DateTime.Now, new TimerCallback(delegate { Full = true; }));
}
}
}
}

View File

@@ -0,0 +1,36 @@
using Server;
using System;
namespace Server.Items
{
public class GrapeBunch : Food
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1022513; } }
[Constructable]
public GrapeBunch() : base(1, 3354)
{
Weight = 1.0;
FillFactor = 1;
Stackable = false;
}
public GrapeBunch(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,101 @@
using System;
namespace Server.Engines.Quests.Hag
{
public class HangoverCure : Item
{
public override bool IsArtifact { get { return true; } }
private int m_Uses;
[Constructable]
public HangoverCure()
: base(0xE2B)
{
Weight = 1.0;
Hue = 0x2D;
m_Uses = 20;
}
public HangoverCure(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1055060;
}
}// Grizelda's Extra Strength Hangover Cure
[CommandProperty(AccessLevel.GameMaster)]
public int Uses
{
get
{
return this.m_Uses;
}
set
{
this.m_Uses = value;
}
}
public override void OnDoubleClick(Mobile from)
{
if (!this.IsChildOf(from.Backpack))
{
this.SendLocalizedMessageTo(from, 1042038); // You must have the object in your backpack to use it.
return;
}
if (this.m_Uses > 0)
{
from.PlaySound(0x2D6);
from.SendLocalizedMessage(501206); // An awful taste fills your mouth.
if (from.BAC > 0)
{
from.BAC = 0;
from.SendLocalizedMessage(501204); // You are now sober!
}
this.m_Uses--;
}
else
{
this.Delete();
from.SendLocalizedMessage(501201); // There wasn't enough left to have any effect.
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
writer.WriteEncodedInt(this.m_Uses);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch ( version )
{
case 1:
{
this.m_Uses = reader.ReadEncodedInt();
break;
}
case 0:
{
this.m_Uses = 20;
break;
}
}
}
}
}

View File

@@ -0,0 +1,55 @@
using System;
namespace Server.Items
{
public class InfusedAlchemistsGem : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public InfusedAlchemistsGem()
: base(0x1EA7)
{
Weight = 1.0;
}
public InfusedAlchemistsGem(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1113006;
}
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1070722, "Alchemy Skill Increaser + 1");
}
public override void OnDoubleClick(Mobile from)
{
from.Skills[SkillName.Alchemy].Base += 1;
from.SendMessage("You have increased your Alchemy Skill by 1 Point !.");
this.Delete();
}
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();
}
}
}

View File

@@ -0,0 +1,139 @@
using System;
using Server.Mobiles;
using Server.Targeting;
using System.Collections.Generic;
namespace Server.Items
{
public class VialofArmorEssence : Item
{
public static Dictionary<BaseCreature, DateTime> m_Table = new Dictionary<BaseCreature, DateTime>();
public virtual int Bonus { get { return 10; } }
public virtual TimeSpan Duration { get { return TimeSpan.FromMinutes(10); } }
public virtual TimeSpan CoolDown { get { return TimeSpan.FromMinutes(120); } }
[Constructable]
public VialofArmorEssence()
: base(0x5722)
{
}
public VialofArmorEssence(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1113018;
}
}
public override bool DropToMobile(Mobile from, Mobile target, Point3D p)
{
TryFeed(from, target);
return false;
}
public override void OnDoubleClick(Mobile m)
{
if (IsChildOf(m.Backpack))
{
m.BeginTarget(2, false, TargetFlags.Beneficial, (from, targeted) =>
{
if (targeted is Mobile)
{
TryFeed(from, (Mobile)targeted);
}
});
}
}
private void TryFeed(Mobile from, Mobile target)
{
if (target is BaseCreature && !((BaseCreature)target).IsDeadBondedPet)
{
BaseCreature bc = (BaseCreature)target;
if (UnderInfluence(bc))
{
if (m_Table[bc] + (CoolDown + Duration) < DateTime.Now)
{
from.SendLocalizedMessage(1113076); //Your pet is still recovering from the last armor essence it consumed.
}
else
{
from.SendLocalizedMessage(1113075); //Your pet is still under the effect of armor essence.
}
}
else if (bc.ControlMaster == from)
{
from.SendLocalizedMessage(1113050); //Your pet looks much happier.
DoEffects(bc);
}
}
}
public bool DoEffects(BaseCreature bc)
{
bc.PlaySound(0x1EA);
bc.FixedParticles(0x373A, 10, 15, 5018, EffectLayer.Waist);
m_Table.Add(bc, DateTime.Now);
Timer.DelayCall(Duration + CoolDown, new TimerStateCallback(RemoveInfluence), bc);
bc.TempDamageAbsorb = Bonus;
bc.Loyalty = BaseCreature.MaxLoyalty;
Consume();
return true;
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1113213); //* For Pets Only *
list.Add(1113219); //Stats Increased by 10%
list.Add(1113212, Duration.TotalMinutes.ToString()); //Duration: ~1_val~ minutes
list.Add(1113218, CoolDown.TotalMinutes.ToString()); //Cooldown: ~1_val~ minutes
}
public static bool UnderInfluence(BaseCreature bc)
{
return m_Table.ContainsKey(bc);
}
public static void RemoveInfluence(object obj)
{
BaseCreature bc = (BaseCreature)obj;
if (m_Table.ContainsKey(bc))
m_Table.Remove(bc);
bc.TempDamageAbsorb = 0;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0)
reader.ReadBool();
}
}
}

View File

@@ -0,0 +1,36 @@
using System;
using Server;
namespace Server.Items
{
public class AcademicBooksArtifact : BaseDecorationArtifact
{
public override int ArtifactRarity { get { return 8; } }
public override int LabelNumber { get { return 1071202; } } // academic books
[Constructable]
public AcademicBooksArtifact()
: base(0x1E25)
{
Hue = 2413;
}
public AcademicBooksArtifact(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
namespace Server.Items
{
public class ArtifactLargeVase : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ArtifactLargeVase()
: base(0x0B47)
{
}
public ArtifactLargeVase(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();
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
namespace Server.Items
{
public class ArtifactVase : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ArtifactVase()
: base(0x0B48)
{
}
public ArtifactVase(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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class BakeKitsuneStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BakeKitsuneStatue()
: base(0x2763)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public BakeKitsuneStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073189;
}
}// A Bake Kitsune Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,94 @@
using System;
namespace Server.Items
{
public abstract class BaseDecorationArtifact : Item, IArtifact
{
public override bool IsArtifact { get { return true; } }
public virtual bool ShowArtifactRarity { get { return true; } }
public BaseDecorationArtifact(int itemID)
: base(itemID)
{
this.Weight = 10.0;
}
public BaseDecorationArtifact(Serial serial)
: base(serial)
{
}
public abstract int ArtifactRarity { get; }
public override bool ForceShowProperties
{
get
{
return true;
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
if(ShowArtifactRarity)
list.Add(1061078, this.ArtifactRarity.ToString()); // artifact rarity ~1_val~
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
public abstract class BaseDecorationContainerArtifact : BaseContainer
{
public BaseDecorationContainerArtifact(int itemID)
: base(itemID)
{
this.Weight = 10.0;
}
public BaseDecorationContainerArtifact(Serial serial)
: base(serial)
{
}
public abstract int ArtifactRarity { get; }
public override bool ForceShowProperties
{
get
{
return true;
}
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1061078, this.ArtifactRarity.ToString()); // artifact rarity ~1_val~
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,39 @@
using System;
namespace Server.Items
{
public class CandelabraOfSouls : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public CandelabraOfSouls()
: base(0xB26)
{
Light = LightType.Circle225;
}
public CandelabraOfSouls(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1063478;
}
}
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;
namespace Server.Items
{
public class ChangelingStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ChangelingStatue()
: base(0x2D8A)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public ChangelingStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073191;
}
}// A Changeling Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,34 @@
using Server;
using System;
namespace Server.Items
{
public class CoffinPiece : Item
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1116783; } }
[Constructable]
public CoffinPiece() : base(Utility.RandomList(7481, 7480, 7479, 7452, 7451, 7450))
{
}
public CoffinPiece(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,371 @@
using System;
using Server.Network;
namespace Server.Items
{
public class CollectionStatuette : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
public CollectionStatuette(int itemID)
: base(itemID)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public CollectionStatuette(Serial serial)
: base(serial)
{
}
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomMinMax(1073207, 1073216));
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x5A, 0xE9));
}
base.OnMovement(m, oldLocation);
}
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 SilverSteedZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SilverSteedZooStatuette()
: base(0x259D)
{
}
public SilverSteedZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073219;
}
}// Interactive Silver Steed Contribution Statue
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 QuagmireZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public QuagmireZooStatuette()
: base(0x2614)
{
}
public QuagmireZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074848;
}
}// Interactive Quagmire Contribution Statue from the Britannia Royal Zoo.
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 BakeKitsuneZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BakeKitsuneZooStatuette()
: base(0x2763)
{
}
public BakeKitsuneZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074849;
}
}// Interactive Bake Kitsune Contribution Statue from the Britannia Royal Zoo.
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 DireWolfZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public DireWolfZooStatuette()
: base(0x25D0)
{
}
public DireWolfZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073196;
}
}// Interactive Dire Wolf Contribution Statue from the Britannia Royal Zoo.
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 CraneZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public CraneZooStatuette()
: base(0x2764)
{
}
public CraneZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073197;
}
}// An Interactive Crane Contribution Statue from the Britannia Royal Zoo.
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 PolarBearZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public PolarBearZooStatuette()
: base(0x20E1)
{
}
public PolarBearZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074851;
}
}// Interactive Polar Bear Contribution Statue from the Britannia Royal Zoo.
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 ChangelingZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ChangelingZooStatuette()
: base(0x2D8A)
{
}
public ChangelingZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074850;
}
}// Interactive Changeling Contribution Statue from the Britannia Royal Zoo.
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 ReptalonZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ReptalonZooStatuette()
: base(0x2D95)
{
}
public ReptalonZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074852;
}
}// Interactive Reptalon Contribution Statue from the Britannia Royal Zoo.
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 SpecialAchievementZooStatuette : CollectionStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SpecialAchievementZooStatuette()
: base(0x2FF6)
{
this.Weight = 10.0;
}
public SpecialAchievementZooStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073226;
}
}// Britannia Royal Zoo Special Achievement Award
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();
}
}
}

View File

@@ -0,0 +1,76 @@
using System;
namespace Server.Items
{
public class LibraryFriendLantern : Lantern
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public LibraryFriendLantern()
: base()
{
}
public LibraryFriendLantern(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073339;
}
}// Friends of the Library Reading Lantern
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 LibraryFriendReadingChair : BigElvenChair
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public LibraryFriendReadingChair()
: base()
{
}
public LibraryFriendReadingChair(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073340;
}
}// Friends of the Library Reading Chair
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();
}
}
}

View File

@@ -0,0 +1,275 @@
using System;
using Server.Network;
namespace Server.Items
{
[Flipable(0xFBD, 0xFBE)]
public class SherryTheMouseQuotes : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SherryTheMouseQuotes()
: base(0xFBD)
{
this.LootType = LootType.Blessed;
this.Weight = 5.0;
}
public SherryTheMouseQuotes(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073300;
}
}// Library Friends - Quotes from the pen of Sherry the Mouse
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomMinMax(1073301, 1073309));
if (Utility.RandomBool())
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x30A, 0x313));
else
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x419, 0x422));
}
base.OnMovement(m, oldLocation);
}
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();
}
}
[Flipable(0xFBD, 0xFBE)]
public class WyrdBeastmasterQuotes : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public WyrdBeastmasterQuotes()
: base(0xFBD)
{
this.LootType = LootType.Blessed;
this.Weight = 5.0;
}
public WyrdBeastmasterQuotes(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073310;
}
}// Library Friends - Quotes from the pen of Wyrd Beastmaster
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomMinMax(1073311, 1073316));
if (Utility.RandomBool())
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x30A, 0x313));
else
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x419, 0x422));
}
base.OnMovement(m, oldLocation);
}
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();
}
}
[Flipable(0xFBD, 0xFBE)]
public class MercenaryJustinQuotes : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public MercenaryJustinQuotes()
: base(0xFBD)
{
this.LootType = LootType.Blessed;
this.Weight = 5.0;
}
public MercenaryJustinQuotes(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073317;
}
}// Library Friends - Quotes from the pen of Mercenary Justin
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomMinMax(1073318, 1073325));
if (Utility.RandomBool())
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x30A, 0x313));
else
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x419, 0x422));
}
base.OnMovement(m, oldLocation);
}
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();
}
}
[Flipable(0xFBD, 0xFBE)]
public class HeigelOfMoonglowQuotes : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public HeigelOfMoonglowQuotes()
: base(0xFBD)
{
this.LootType = LootType.Blessed;
this.Weight = 5.0;
}
public HeigelOfMoonglowQuotes(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073327;
}
}// Library Friends - Quotes from the pen of Heigel of Moonglow
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomList(1073326, 1073328, 1073329, 1073330, 1073331));
if (Utility.RandomBool())
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x30A, 0x313));
else
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x419, 0x422));
}
base.OnMovement(m, oldLocation);
}
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();
}
}
[Flipable(0xFBD, 0xFBE)]
public class TraderHoraceQuotes : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public TraderHoraceQuotes()
: base(0xFBD)
{
this.LootType = LootType.Blessed;
this.Weight = 5.0;
}
public TraderHoraceQuotes(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073338;
}
}// Library Friends - Quotes from the pen of Horace, Trader
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, Utility.RandomMinMax(1073332, 1073337));
if (Utility.RandomBool())
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x30A, 0x313));
else
Effects.PlaySound(this.Location, this.Map, Utility.RandomMinMax(0x419, 0x422));
}
base.OnMovement(m, oldLocation);
}
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();
}
}
}

View File

@@ -0,0 +1,34 @@
using Server;
using System;
namespace Server.Items
{
public class CreepingVine : Item
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1112401; } }
[Constructable]
public CreepingVine()
: base(Utility.Random(18322, 4))
{
}
public CreepingVine(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,33 @@
using System;
namespace Server.Items
{
public class DemonSkull : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public DemonSkull()
: base(0x224e + Utility.Random(4))
{
}
public DemonSkull(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();
}
}
}

View File

@@ -0,0 +1,32 @@
using System;
namespace Server.Items
{
public class DirtPatch : Item
{
[Constructable]
public DirtPatch()
: base(0x0913)
{
}
public DirtPatch(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();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
using System;
namespace Server.Items
{
public class EvilIdolSkull : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public EvilIdolSkull()
: base(0x1F18)
{
}
public EvilIdolSkull(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1095237;
}
}// Evil Idol
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();
}
}
}

View File

@@ -0,0 +1,90 @@
using System;
using Server.Mobiles;
namespace Server.Items
{
public class FerretImprisonedInCrystal : BaseImprisonedMobile
{
[Constructable]
public FerretImprisonedInCrystal()
: base(0x1F19)
{
this.Name = "a ferret imprisoned in a crystal";
this.Weight = 1.0;
}
public FerretImprisonedInCrystal(Serial serial)
: base(serial)
{
}
public override BaseCreature Summon
{
get
{
return new ShimmeringFerret();
}
}
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();
}
}
}
namespace Server.Mobiles
{
public class ShimmeringFerret : Ferret
{
[Constructable]
public ShimmeringFerret()
: base()
{
this.SetSkill(SkillName.MagicResist, 100.0);
this.SetSkill(SkillName.Tactics, 100.0);
this.SetSkill(SkillName.Wrestling, 100.0);
}
public ShimmeringFerret(Serial serial)
: base(serial)
{
}
public override bool DeleteOnRelease
{
get
{
return true;
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add(1049646); // (summoned)
}
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();
}
}
}

View File

@@ -0,0 +1,37 @@
using System;
using Server.Items;
namespace Server.Items
{
public class FigureheadOfBmvArarat : BaseDecorationArtifact
{
public override int ArtifactRarity { get { return 8; } }
public override bool IsArtifact { get { return true; } }
[Constructable]
public FigureheadOfBmvArarat()
: base(0x2D0E)
{
this.Name = "Figurehead Of The Bmv Ararat";
this.Weight = 10.0;
this.Hue = 2968; // checked
}
public FigureheadOfBmvArarat(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();
}
}
}

View File

@@ -0,0 +1,51 @@
using System;
namespace Server.Items
{
[Flipable]
public class Futon : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public Futon()
: base(Utility.RandomDouble() > 0.5 ? 0x295C : 0x295E)
{
}
public Futon(Serial serial)
: base(serial)
{
}
public void Flip()
{
switch ( this.ItemID )
{
case 0x295C:
this.ItemID = 0x295D;
break;
case 0x295E:
this.ItemID = 0x295F;
break;
case 0x295D:
this.ItemID = 0x295C;
break;
case 0x295F:
this.ItemID = 0x295E;
break;
}
}
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,52 @@
using System;
namespace Server.Items
{
public class GhostShipAnchor : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GhostShipAnchor()
: base(0x14F7)
{
this.Hue = 0x47E;
this.Weight = 2;
}
public GhostShipAnchor(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1070816;
}
}// Ghost Ship Anchor
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 0:
this.Weight = 2;
break;
}
if (this.ItemID == 0x1F47)
this.ItemID = 0x14F7;
}
}
}

View File

@@ -0,0 +1,40 @@
using System;
namespace Server.Items
{
public class KingsGildedStatue : BaseDecorationArtifact
{
public override bool IsArtifact { get { return true; } }
public override bool ShowArtifactRarity { get { return false; } }
public override int ArtifactRarity { get { return 8; } }
public override double DefaultWeight { get { return 10.0; } }
public override string DefaultName { get { return "A Gilded Statue from the Personal Collection of the King"; } }
[Constructable]
public KingsGildedStatue()
: base(0x139D)
{
Hue = 2721;
}
public KingsGildedStatue(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();
}
}
}

View File

@@ -0,0 +1,40 @@
using System;
namespace Server.Items
{
public class GoldBricks : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GoldBricks()
: base(0x1BEB)
{
}
public GoldBricks(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1063489;
}
}
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,48 @@
using Server;
using System;
using Server.Mobiles;
namespace Server.Items
{
public class GrapeVine : Item
{
public override bool IsArtifact { get { return true; } }
private DateTime m_NextHarvest;
private readonly double HarvestWait = 4;
public override int LabelNumber { get { return 1149954; } }
[Constructable]
public GrapeVine() : base(Utility.Random(3355, 10))
{
m_NextHarvest = DateTime.UtcNow;
}
public override void OnDoubleClick(Mobile from)
{
if((ItemID == 3358 || ItemID == 3363) && Movable == false && m_NextHarvest < DateTime.UtcNow)
{
from.AddToBackpack(new GrapeBunch());
m_NextHarvest = DateTime.UtcNow + TimeSpan.FromHours(HarvestWait);
}
}
public GrapeVine(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);
writer.Write(m_NextHarvest);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_NextHarvest = reader.ReadDateTime();
}
}
}

View File

@@ -0,0 +1,232 @@
using System;
using Server.Mobiles;
namespace Server.Items
{
public class ImprisonedDog : BaseImprisonedMobile
{
[Constructable]
public ImprisonedDog()
: base(0x1F1C)
{
this.Weight = 1.0;
this.Hue = 0x485;
}
public ImprisonedDog(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075091;
}
}// An Imprisoned Dog
public override BaseCreature Summon
{
get
{
return new TravestyDog();
}
}
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();
}
}
}
namespace Server.Mobiles
{
public class TravestyDog : Dog
{
private string m_Name;
private DateTime m_NextAttempt;
[Constructable]
public TravestyDog()
: base()
{
this.Hue = 2301;
this.m_Name = null;
this.m_NextAttempt = DateTime.UtcNow;
}
public TravestyDog(Serial serial)
: base(serial)
{
}
public override bool DeleteOnRelease
{
get
{
return true;
}
}
public bool Morphed
{
get
{
return this.m_Name != null;
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add(1049646); // (summoned)
}
public void DeleteItems()
{
for (int i = this.Items.Count - 1; i >= 0; i --)
if (this.Items[i] is ClonedItem)
this.Items[i].Delete();
}
public void BeginMorph(Mobile to)
{
if (to == null || !this.Alive || this.Morphed)
return;
this.m_Name = this.Name;
this.Body = to.Body;
this.Hue = to.Hue;
this.Name = to.Name;
this.Female = to.Female;
this.Title = to.Title;
this.HairItemID = to.HairItemID;
this.HairHue = to.HairHue;
this.FacialHairItemID = to.FacialHairItemID;
this.FacialHairHue = to.FacialHairHue;
for (int i = to.Items.Count - 1; i >= 0; i --)
{
Item item = to.Items[i];
if (item.Layer != Layer.Backpack && item.Layer != Layer.Mount)
this.AddItem(new ClonedItem(item));
}
this.PlaySound(0x511);
this.FixedParticles(0x376A, 1, 14, 5045, EffectLayer.Waist);
Timer.DelayCall(TimeSpan.FromSeconds(60), new TimerCallback(EndMorph));
}
public void EndMorph()
{
this.DeleteItems();
this.Body = 0xD9;
this.Hue = 2301;
this.Name = this.m_Name;
this.Female = false;
this.Title = null;
this.HairItemID = 0;
this.HairHue = 0;
this.FacialHairItemID = 0;
this.FacialHairHue = 0;
this.m_Name = null;
this.PlaySound(0x511);
this.FixedParticles(0x376A, 1, 14, 5045, EffectLayer.Waist);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
writer.Write((string)this.m_Name);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
this.m_Name = reader.ReadString();
this.m_NextAttempt = DateTime.UtcNow;
if (this.Morphed)
this.EndMorph();
}
protected override bool OnMove(Direction d)
{
if (!this.Morphed && this.m_NextAttempt <= DateTime.UtcNow)
{
IPooledEnumerable eable = GetMobilesInRange(6);
foreach (Mobile m in eable)
{
if (!m.Hidden && m.Alive && Utility.RandomDouble() < 0.25)
{
this.BeginMorph(m);
break;
}
}
eable.Free();
this.m_NextAttempt = DateTime.UtcNow + TimeSpan.FromSeconds(90);
}
return base.OnMove(d);
}
private class ClonedItem : Item
{
public ClonedItem(Item item)
: base(item.ItemID)
{
this.Name = item.Name;
this.Weight = item.Weight;
this.Hue = item.Hue;
this.Layer = item.Layer;
}
public ClonedItem(Serial serial)
: base(serial)
{
}
public override DeathMoveResult OnParentDeath(Mobile parent)
{
this.Delete();
return DeathMoveResult.RemainEquiped;
}
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();
}
}
}
}

View File

@@ -0,0 +1,74 @@
using System;
namespace Server.Items
{
public class KingsPainting1 : BaseDecorationArtifact
{
public override bool IsArtifact { get { return true; } }
public override bool ShowArtifactRarity { get { return false; } }
public override int ArtifactRarity { get { return 8; } }
public override double DefaultWeight { get { return 10.0; } }
public override string DefaultName { get { return "A Painting From The Personal Collection Of The King"; } }
[Constructable]
public KingsPainting1()
: base(19552)
{
}
public KingsPainting1(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 KingsPainting2 : BaseDecorationArtifact
{
public override bool IsArtifact { get { return true; } }
public override bool ShowArtifactRarity { get { return false; } }
public override int ArtifactRarity { get { return 8; } }
public override double DefaultWeight { get { return 10.0; } }
public override string DefaultName { get { return "A Painting From The Personal Collection Of The King"; } }
[Constructable]
public KingsPainting2()
: base(19558)
{
}
public KingsPainting2(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();
}
}
}

View File

@@ -0,0 +1,79 @@
using Server;
using System;
using Server.Targeting;
namespace Server.Items
{
[Flipable(7845, 7846)]
public class LargeFishingNet : Item
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1149955; } }
[Constructable]
public LargeFishingNet()
: base(7845)
{
}
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack))
{
from.SendMessage("Target a corpse you'd like to net.");
from.BeginTarget(10, false, TargetFlags.None, new TargetCallback(Net_OnTarget));
}
}
public void Net_OnTarget(Mobile from, object targeted)
{
if (targeted is Corpse && (((Corpse)targeted).Owner == null || !((Corpse)targeted).Owner.Player))
{
if (SOS.ValidateDeepWater(((Corpse)targeted).Map, ((Corpse)targeted).X, ((Corpse)targeted).Y))
{
from.Animate(12, 5, 1, true, false, 0);
Timer.DelayCall(TimeSpan.FromSeconds(0.5), new TimerStateCallback(MoveCorpse), new object[] { (Corpse)targeted, from });
}
else
from.SendLocalizedMessage(1010485); // You can only use this in deep water!
}
else
from.SendMessage("You can only net corpses!");
}
public void MoveCorpse(object o)
{
object[] ojs = (object[])o;
Corpse c = ojs[0] as Corpse;
Mobile from = ojs[1] as Mobile;
if (c != null && from != null)
c.MoveToWorld(from.Location, from.Map);
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1041645); // recovered from a shipwrecklist
}
public LargeFishingNet(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,32 @@
using System;
namespace Server.Items
{
public class LavaTile : Item
{
[Constructable]
public LavaTile()
: base(0x12EE)
{
}
public LavaTile(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();
}
}
}

View File

@@ -0,0 +1,83 @@
using System;
namespace Server.Items
{
public class LordBritishThroneAddon : BaseAddon
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public LordBritishThroneAddon()
{
this.AddComponent(new AddonComponent(0x1526), 0, 0, 0);
this.AddComponent(new AddonComponent(0x1527), 0, -1, 0);
}
public LordBritishThroneAddon(Serial serial)
: base(serial)
{
}
public override BaseAddonDeed Deed
{
get
{
return new LordBritishThroneDeed();
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class LordBritishThroneDeed : BaseAddonDeed
{
[Constructable]
public LordBritishThroneDeed()
{
this.LootType = LootType.Blessed;
}
public LordBritishThroneDeed(Serial serial)
: base(serial)
{
}
public override BaseAddon Addon
{
get
{
return new LordBritishThroneAddon();
}
}
public override int LabelNumber
{
get
{
return 1073243;
}
}// Replica of Lord British's Throne - Museum of Vesper
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();
}
}
}

View File

@@ -0,0 +1,38 @@
using System;
using Server;
namespace Server.Items
{
public class AncientShipModelOfTheHMSCape : Item
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1063476; } }
[Constructable]
public AncientShipModelOfTheHMSCape()
: base(0x14F3)
{
Name = "an Ancient Ship Model Of The HMS Cape";
Hue = 0x37B;
}
public AncientShipModelOfTheHMSCape(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,84 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.Gumps;
using Server.Network;
using Server.Multis;
using Server.ContextMenus;
namespace Server.Items
{
[FlipableAttribute( 0x3BB6, 0x3BB7 )]
public class MapOfTheKnownWorld : Item, ISecurable
{
private SecureLevel m_Level;
public override bool IsArtifact { get { return true; } }
[CommandProperty( AccessLevel.GameMaster )]
public SecureLevel Level
{
get{ return m_Level; }
set{ m_Level = value; }
}
[Constructable]
public MapOfTheKnownWorld() : base( 0x3BB6 )
{
Name = "a map of the known world";
Weight = 1.0;
LootType = LootType.Blessed;
}
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
{
base.GetContextMenuEntries( from, list );
SetSecureLevelEntry.AddTo( from, this, list );
}
public override void OnDoubleClick( Mobile from )
{
if ( from.InRange( GetWorldLocation(), 2 ) )
{
from.CloseGump( typeof( InternalGump ) );
from.SendGump( new InternalGump() );
}
else
{
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
}
}
private class InternalGump : Gump
{
public InternalGump() : base( 50, 50 )
{
AddImage( 0, 0, 0x12B ); //299
}
}
public MapOfTheKnownWorld( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( (int) 0 ); // version
writer.WriteEncodedInt( (int) m_Level );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
m_Level = (SecureLevel) reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class MedusaStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public MedusaStatue()
: base(0x40BC)
{
this.Name = "Medusa";
this.Weight = 10;
}
public MedusaStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1113626;
}
}
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,106 @@
//Created By Milva
////////////////////////////////////////
// //
// Generated by CEO's YAAAG - V1.2 //
// (Yet Another Arya Addon Generator) //
// //
////////////////////////////////////////
using System;
using Server;
using Server.Items;
namespace Server.Items
{
[TypeAlias("Server.Items.MedusasFloortileAddon")]
public class MedusaFloorTileAddon : BaseAddon
{
public override BaseAddonDeed Deed
{
get
{
return new MedusaFloorTileAddonDeed();
}
}
[ Constructable ]
public MedusaFloorTileAddon()
{
AddComponent(new LocalizedAddonComponent(16589, 1113922), 0, 0, 0);// 1
AddComponent(new LocalizedAddonComponent(16591, 1113922), 2, 1, 0);// 2
AddComponent(new LocalizedAddonComponent(16577, 1113922), -2, 2, 0);// 3
AddComponent(new LocalizedAddonComponent(16578, 1113922), -1, -2, 0);// 4
AddComponent(new LocalizedAddonComponent(16581, 1113922), 2, -2, 0);// 5
AddComponent(new LocalizedAddonComponent(16598, 1113922), -1, 2, 0);// 6
AddComponent(new LocalizedAddonComponent(16579, 1113922), 0, -2, 0);// 7
AddComponent(new LocalizedAddonComponent(16601, 1113922), -2, -2, 0);// 8
AddComponent(new LocalizedAddonComponent(16580, 1113922), 1, -2, 0);// 9
AddComponent(new LocalizedAddonComponent(16582, 1113922), -2, 0, 0);// 10
AddComponent(new LocalizedAddonComponent(16586, 1113922), 2, -1, 0);// 11
AddComponent(new LocalizedAddonComponent(16595, 1113922), 1, -1, 0);// 12
AddComponent(new LocalizedAddonComponent(16590, 1113922), 1, 1, 0);// 13
AddComponent(new LocalizedAddonComponent(16585, 1113922), 1, 0, 0);// 14
AddComponent(new LocalizedAddonComponent(16587, 1113922), -2, -1, 0);// 15
AddComponent(new LocalizedAddonComponent(16593, 1113922), -1, 1, 0);// 16
AddComponent(new LocalizedAddonComponent(16594, 1113922), 0, 1, 0);// 17
AddComponent(new LocalizedAddonComponent(16596, 1113922), 2, 0, 0);// 18
AddComponent(new LocalizedAddonComponent(16588, 1113922), -1, -1, 0);// 19
AddComponent(new LocalizedAddonComponent(16597, 1113922), 2, 2, 0);// 20
AddComponent(new LocalizedAddonComponent(16592, 1113922), -2, 1, 0);// 21
AddComponent(new LocalizedAddonComponent(16584, 1113922), 0, -1, 0);// 22
AddComponent(new LocalizedAddonComponent(16583, 1113922), -1, 0, 0);// 23
AddComponent(new LocalizedAddonComponent(16599, 1113922), 0, 2, 0);// 24
AddComponent(new LocalizedAddonComponent(16600, 1113922), 1, 2, 0);// 25
}
public MedusaFloorTileAddon( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( 0 ); // Version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
[TypeAlias("Server.Items.MedusasFloortileAddonDeed")]
public class MedusaFloorTileAddonDeed : BaseAddonDeed
{
public override int LabelNumber { get { return 1113918; } } // a Medusa Floor deed
public override BaseAddon Addon
{
get
{
return new MedusaFloorTileAddon();
}
}
[Constructable]
public MedusaFloorTileAddonDeed()
{
}
public MedusaFloorTileAddonDeed( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( 0 ); // Version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class MummifiedCorpse : Item
{
public override int LabelNumber { get { return 1112400; } } //a mummified corpse
[Constructable]
public MummifiedCorpse() : base( 0x1C20 )
{
}
public MummifiedCorpse( 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();
}
}
}

View File

@@ -0,0 +1,436 @@
using System;
using Server.Network;
namespace Server.Items
{
public class VesperCollectionStatuette : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
public VesperCollectionStatuette(int itemID)
: base(itemID)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public VesperCollectionStatuette(Serial serial)
: base(serial)
{
}
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
{
int cliloc = Utility.RandomMinMax(1073266, 1073286);
if (cliloc == 1073282)
cliloc -= 1;
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, cliloc);
Effects.PlaySound(this.Location, this.Map, Utility.Random(0x17));
}
base.OnMovement(m, oldLocation);
}
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 TrollStatuette : VesperCollectionStatuette
{
[Constructable]
public TrollStatuette()
: base(0x20E9)
{
}
public TrollStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073242;
}
}// G'Thunk the Troll - Museum of Vesper Replica
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 CrystalBallStatuette : VesperCollectionStatuette
{
[Constructable]
public CrystalBallStatuette()
: base(0xE2E)
{
}
public CrystalBallStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073244;
}
}// Nystul's Crystal Ball - Museum of Vesper Replica
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 DevourerStatuette : VesperCollectionStatuette
{
[Constructable]
public DevourerStatuette()
: base(0x2623)
{
}
public DevourerStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073245;
}
}// Dangerous Creatures Replica: Devourer of Souls - Museum of Vesper
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 SnowLadyStatuette : VesperCollectionStatuette
{
[Constructable]
public SnowLadyStatuette()
: base(0x276C)
{
}
public SnowLadyStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075016;
}
}// Dangerous Creatures Replica: Lady of the Snow - Museum of Vesper
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 GolemStatuette : VesperCollectionStatuette
{
[Constructable]
public GolemStatuette()
: base(0x2610)
{
}
public GolemStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075017;
}
}// Dangerous Creatures Replica: Golem - Museum of Vesper
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 ExodusOverseerStatuette : VesperCollectionStatuette
{
[Constructable]
public ExodusOverseerStatuette()
: base(0x260C)
{
}
public ExodusOverseerStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075018;
}
}// Dangerous Creatures Replica: Exodus Overseer - Museum of Vesper
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 JukaLordStatuette : VesperCollectionStatuette
{
[Constructable]
public JukaLordStatuette()
: base(0x25FC)
{
}
public JukaLordStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075019;
}
}// Dangerous Creatures Replica: Juka Lord- Museum of Vesper
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 MeerCaptainStatuette : VesperCollectionStatuette
{
[Constructable]
public MeerCaptainStatuette()
: base(0x25FA)
{
}
public MeerCaptainStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075020;
}
}// Dangerous Creatures Replica: Meer Captain - Museum of Vesper
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 MeerEternalStatuette : VesperCollectionStatuette
{
[Constructable]
public MeerEternalStatuette()
: base(0x25F8)
{
}
public MeerEternalStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075021;
}
}// Dangerous Creatures Replica: Meer Eternal - Museum of Vesper
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 SolenQueenStatuette : VesperCollectionStatuette
{
[Constructable]
public SolenQueenStatuette()
: base(0x2602)
{
}
public SolenQueenStatuette(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075022;
}
}// Dangerous Creatures Replica: Solen Queen - Museum of Vesper
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 VesperSpecialAchievementReplica : VesperCollectionStatuette
{
[Constructable]
public VesperSpecialAchievementReplica()
: base(0x2D4E)
{
}
public VesperSpecialAchievementReplica(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073265;
}
}// Museum of Vesper Special Achievement Replica
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();
}
}
}

View File

@@ -0,0 +1,41 @@
using System;
namespace Server.Items
{
public class PhillipsWoodenSteed : MonsterStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public PhillipsWoodenSteed()
: base(MonsterStatuetteType.PhillipsWoodenSteed)
{
this.LootType = LootType.Regular;
}
public PhillipsWoodenSteed(Serial serial)
: base(serial)
{
}
public override bool ForceShowProperties
{
get
{
return ObjectPropertyList.Enabled;
}
}
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,55 @@
using System;
namespace Server.Items
{
public class Pier : Item
{
/*
* This does not make a lot of sense, being a "Pier"
* and having possible itemids that have nothing
* to do with piers. The three items here are basically
* permutations of the same "drop", or item that
* will be randomly selected when the item drops.
*
* It was either this, or make 2
* new classes named to reflect that they are rocks
* in water, or put them all in one class. Either
* is kind of senseless, so it is what it is.
*
*/
public override bool IsArtifact { get { return true; } }
private static readonly int[] m_itemids = new int[]
{
0x3486, 0x348b, 0x3ae
};
[Constructable]
public Pier()
: base(m_itemids[Utility.Random(3)])
{
}
public Pier(int itemid)
: base(itemid)
{
}
public Pier(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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class PolarBearStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public PolarBearStatue()
: base(0x20E1)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public PolarBearStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073193;
}
}// A Polar Bear Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class QuagmireStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public QuagmireStatue()
: base(0x2614)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public QuagmireStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073195;
}
}// A Quagmire Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class ReptalonStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ReptalonStatue()
: base(0x2D95)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public ReptalonStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073192;
}
}// A Reptalon Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
using System;
namespace Server.Items
{
[FlipableAttribute(0x4A9A, 0x4A9B)]
public class SantaStatue : MonsterStatuette
{
public override int LabelNumber { get { return 1097968; } } // santa statue
[Constructable]
public SantaStatue()
: base(MonsterStatuetteType.Santa)
{
Weight = 10.0;
}
public SantaStatue(Serial serial)
: base(serial)
{
}
public override bool ForceShowProperties
{
get
{
return ObjectPropertyList.Enabled;
}
}
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,36 @@
using System;
namespace Server.Items
{
public class SeahorseStatuette : MonsterStatuette
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SeahorseStatuette()
: base(MonsterStatuetteType.Seahorse)
{
this.LootType = LootType.Regular;
this.Hue = Utility.RandomList(0, 0x482, 0x489, 0x495, 0x4F2);
}
public SeahorseStatuette(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;
namespace Server.Items
{
public class ShipModelOfTheHMSCape : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ShipModelOfTheHMSCape()
: base(0x14F3)
{
this.Hue = 0x37B;
}
public ShipModelOfTheHMSCape(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1063476;
}
}
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,37 @@
using System;
using Server.Items;
namespace Server.Items
{
public class ShipsBellOfBmvArarat : BaseDecorationArtifact
{
public override int ArtifactRarity { get { return 8; } }
public override bool IsArtifact { get { return true; } }
[Constructable]
public ShipsBellOfBmvArarat()
: base(0x4C5E)
{
this.Name = "Ship's Bell Of The Bmv Ararat";
this.Weight = 10.0;
this.Hue = 2968; //checked
}
public ShipsBellOfBmvArarat(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();
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
namespace Server.Items
{
public class SkullPole : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SkullPole()
: base(0x2204)
{
this.Weight = 5;
}
public SkullPole(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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class SnakeStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public SnakeStatue()
: base(0x25C2)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public SnakeStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073194;
}
}// A Snake Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,37 @@
using System;
using Server.Items;
namespace Server.Items
{
public class SternAnchorOfBmvArarat : BaseDecorationArtifact
{
public override int ArtifactRarity { get { return 8; } }
public override bool IsArtifact { get { return true; } }
[Constructable]
public SternAnchorOfBmvArarat()
: base(0x14F7)
{
this.Name = "Stern Anchor of the BMV Ararat";
this.Weight = 10.0;
this.Hue = 2959; // checked
}
public SternAnchorOfBmvArarat(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();
}
}
}

View File

@@ -0,0 +1,32 @@
using System;
namespace Server.Items
{
public class SwampTile : Item
{
[Constructable]
public SwampTile()
: base(0x320D)
{
}
public SwampTile(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();
}
}
}

View File

@@ -0,0 +1,195 @@
using System;
using Server;
namespace Server.Items
{
public class StretchedDinosaurHide : BaseDecorationArtifact
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public StretchedDinosaurHide() : base(4202)
{
Name = "Stretched Dinosaur Hide";
Hue = 2523;
}
public StretchedDinosaurHide(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
public class CarvedMyrmydexGlyph : BaseDecorationArtifact // Barrab
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public CarvedMyrmydexGlyph() : base(4676)
{
Name = "Carved Myrmydex Glyph";
Hue = 2952;
}
public CarvedMyrmydexGlyph(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
public class WakuOnASpit : BaseDecorationArtifact // Barako
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public WakuOnASpit() : base(7832)
{
Name = "Waku on a Spit";
}
public WakuOnASpit(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
public class SacredLavaRock : BaseDecorationArtifact // Jukari
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public SacredLavaRock() : base(4962)
{
Name = "Sacred Lava Rock";
Hue = 1964;
}
public SacredLavaRock(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
public class WhiteTigerFigurine : BaseDecorationArtifact // Kurak
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public WhiteTigerFigurine() : base(38980)
{
Name = "Hand Carved White Tiger Figurine";
Hue = 2500;
}
public WhiteTigerFigurine(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
public class DragonTurtleHatchlingNet : BaseDecorationArtifact // Urali
{
public override int ArtifactRarity { get { return 11; } }
public override bool ShowArtifactRarity { get { return false; } }
public override bool DisplayWeight { get { return false; } }
[Constructable]
public DragonTurtleHatchlingNet() : base(3574)
{
Name = "Dragon Turtle Hatchling Net";
}
public DragonTurtleHatchlingNet(Serial serial) : base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,41 @@
using System;
namespace Server.Items
{
public class TatteredAncientMummyWrapping : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public TatteredAncientMummyWrapping()
: base(0xE21)
{
this.Hue = 0x909;
}
public TatteredAncientMummyWrapping(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1094912;
}
}// Tattered Ancient Mummy Wrapping [Replica]
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();
}
}
}

View File

@@ -0,0 +1,193 @@
using System;
using Server.Mobiles;
using System.Collections.Generic;
using Server.Accounting;
using Server.Engines.VeteranRewards;
namespace Server.Items
{
[Flipable( 0x3BB3, 0x3BB4 )]
public class TenthAnniversarySculpture : Item
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1079532; } } // 10th Anniversary Sculpture
private static Dictionary<Mobile, DateTime> m_LuckTable = new Dictionary<Mobile, DateTime>();
private Dictionary<Mobile, DateTime> m_RewardCooldown;
public Dictionary<Mobile, DateTime> RewardCooldown { get { return m_RewardCooldown; } }
private static List<TenthAnniversarySculpture> m_sculptures = new List<TenthAnniversarySculpture>();
private static Timer m_Timer;
private static readonly int MaxLuckBonus = 1000;
[Constructable]
public TenthAnniversarySculpture() : base( 15283 )
{
Weight = 1.0;
m_RewardCooldown = new Dictionary<Mobile, DateTime>();
AddSculpture(this);
}
public override void OnDoubleClick(Mobile from)
{
if (!from.InRange(GetWorldLocation(), 2))
{
from.SendLocalizedMessage(500446); // That is too far away.
return;
}
DefragTables();
if (!IsCoolingDown(from))
{
m_LuckTable[from] = DateTime.UtcNow + TimeSpan.FromMinutes(60);
from.SendLocalizedMessage(1079551); // Your luck just improved!
m_RewardCooldown[from] = DateTime.UtcNow + TimeSpan.FromHours(24);
from.Delta(MobileDelta.Armor);
}
}
public bool IsCoolingDown(Mobile from)
{
bool donemessage = false;
if (m_LuckTable.ContainsKey(from))
{
from.SendLocalizedMessage(1079534); // You're still feeling lucky from the last time you touched the sculpture.
donemessage = true;
}
foreach (TenthAnniversarySculpture sculpture in m_sculptures)
{
if (sculpture.RewardCooldown != null && sculpture.RewardCooldown.ContainsKey(from))
{
if (!donemessage)
{
TimeSpan left = sculpture.RewardCooldown[from] - DateTime.UtcNow;
if (left.TotalHours > 1)
from.SendLocalizedMessage(1079550, ((int)left.TotalHours).ToString()); // You can improve your fortunes again in about ~1_TIME~ hours.
else if (left.TotalMinutes > 1)
from.SendLocalizedMessage(1079548, ((int)left.TotalMinutes).ToString()); // You can improve your fortunes in about ~1_TIME~ minutes.
else
from.SendLocalizedMessage(1079547); // Your fortunes are about to improve.
}
return true;
}
}
return false;
}
public static void DefragTables()
{
foreach (TenthAnniversarySculpture sculpture in m_sculptures)
{
List<Mobile> list = new List<Mobile>(sculpture.RewardCooldown.Keys);
foreach (Mobile m in list)
{
if (sculpture.RewardCooldown.ContainsKey(m) && sculpture.RewardCooldown[m] < DateTime.UtcNow)
sculpture.RewardCooldown.Remove(m);
}
list.Clear();
}
List<Mobile> remove = new List<Mobile>();
foreach (KeyValuePair<Mobile, DateTime> kvp in m_LuckTable)
{
if (kvp.Value < DateTime.UtcNow)
remove.Add(kvp.Key);
}
remove.ForEach(m =>
{
m_LuckTable.Remove(m);
if (m.NetState != null)
m.SendLocalizedMessage(1079552); //Your luck just ran out.
});
remove.Clear();
}
public static int GetLuckBonus(Mobile from)
{
if (m_LuckTable.ContainsKey(from))
{
Account account = from.Account as Account;
if(account != null)
{
return (int)Math.Min(MaxLuckBonus, 200 + (RewardSystem.GetRewardLevel(account)) * 50);
}
}
return 0;
}
public override void Delete()
{
base.Delete();
RemoveSculpture(this);
if (m_RewardCooldown != null)
m_RewardCooldown.Clear();
}
public static void AddSculpture(TenthAnniversarySculpture sculpture)
{
if (!m_sculptures.Contains(sculpture))
{
m_sculptures.Add(sculpture);
StartTimer();
}
}
public static void RemoveSculpture(TenthAnniversarySculpture sculpture)
{
if (m_sculptures.Contains(sculpture))
m_sculptures.Remove(sculpture);
if (m_sculptures.Count == 0 && m_Timer != null)
{
m_Timer.Stop();
m_Timer = null;
}
}
public static void StartTimer()
{
if (m_Timer != null && m_Timer.Running)
return;
m_Timer = Timer.DelayCall(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1), new TimerCallback(DefragTables));
m_Timer.Start();
}
public TenthAnniversarySculpture(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();
m_RewardCooldown = new Dictionary<Mobile, DateTime>();
AddSculpture(this);
}
}
}

View File

@@ -0,0 +1,54 @@
using System;
namespace Server.Items
{
public class TragicRemainsOfTravesty : BaseStatuette
{
public override bool IsArtifact { get { return true; } }
private static readonly int[] m_Sounds = new int[]
{
0x314, 0x315, 0x316, 0x317 // TODO check
};
[Constructable]
public TragicRemainsOfTravesty()
: base(Utility.Random(0x122A, 6))
{
this.Weight = 1.0;
this.Hue = Utility.RandomList(0x11E, 0x846);
}
public TragicRemainsOfTravesty(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1074500;
}
}// Tragic Remains of the Travesty
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (this.TurnedOn && this.IsLockedDown && (!m.Hidden || m.IsPlayer()) && Utility.InRange(m.Location, this.Location, 2) && !Utility.InRange(oldLocation, this.Location, 2))
Effects.PlaySound(this.Location, this.Map, m_Sounds[Utility.Random(m_Sounds.Length)]);
base.OnMovement(m, oldLocation);
}
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();
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
namespace Server.Items
{
public class WallBlood : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public WallBlood()
: base(Utility.RandomBool() ? 0x1D95 : 0x1D94)
{
}
public WallBlood(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();
}
}
}

View File

@@ -0,0 +1,32 @@
using System;
namespace Server.Items
{
public class WaterTile : Item
{
[Constructable]
public WaterTile()
: base(0x346E)
{
}
public WaterTile(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();
}
}
}

View File

@@ -0,0 +1,41 @@
using System;
namespace Server.Items
{
public class Web : Item
{
public override bool IsArtifact { get { return true; } }
private static readonly int[] m_itemids = new int[]
{
0x10d7, 0x10d8, 0x10dd
};
[Constructable]
public Web()
: base(m_itemids[Utility.Random(3)])
{
}
[Constructable]
public Web(int itemid)
: base(itemid)
{
}
public Web(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,40 @@
using System;
namespace Server.Items
{
public class WindSpirit : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public WindSpirit()
: base(0x1F1F)
{
}
public WindSpirit(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1094925;
}
}// Wind Spirit [Replica]
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();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
namespace Server.Items
{
public class WolfStatue : Item
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public WolfStatue()
: base(0x25D3)
{
this.LootType = LootType.Blessed;
this.Weight = 1.0;
}
public WolfStatue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1073190;
}
}// A Wolf Contribution Statue from the Britannia Royal Zoo.
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();
}
}
}

View File

@@ -0,0 +1,291 @@
using Server;
using System;
namespace Server.Items
{
public class CompassionsEye : GoldRing
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153288; } } // Compassion's Eye
[Constructable]
public CompassionsEye()
{
Hue = 1174;
Attributes.BonusInt = 10;
Attributes.BonusMana = 10;
Attributes.RegenMana = 2;
Attributes.Luck = 250;
Attributes.SpellDamage = 20;
Attributes.LowerRegCost = 20;
}
public CompassionsEye(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 v = reader.ReadInt();
}
}
public class UnicornManeWovenSandals : Sandals
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153289; } } // Unicorn Mane Woven Sandals
[Constructable]
public UnicornManeWovenSandals()
{
Hue = 1154;
switch(Utility.Random(6))
{
case 0: SAAbsorptionAttributes.EaterKinetic = 2; break;
case 1: SAAbsorptionAttributes.EaterFire = 2; break;
case 2: SAAbsorptionAttributes.EaterCold = 2; break;
case 3: SAAbsorptionAttributes.EaterPoison = 2; break;
case 4: SAAbsorptionAttributes.EaterEnergy = 2; break;
case 5: SAAbsorptionAttributes.EaterDamage = 2; break;
}
Attributes.NightSight = 1;
}
public UnicornManeWovenSandals(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 v = reader.ReadInt();
}
}
public class UnicornManeWovenTalons : LeatherTalons
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153314; } } // Unicorn Mane Woven Talons
[Constructable]
public UnicornManeWovenTalons()
{
Hue = 1154;
switch(Utility.Random(6))
{
case 0: SAAbsorptionAttributes.EaterKinetic = 2; break;
case 1: SAAbsorptionAttributes.EaterFire = 2; break;
case 2: SAAbsorptionAttributes.EaterCold = 2; break;
case 3: SAAbsorptionAttributes.EaterPoison = 2; break;
case 4: SAAbsorptionAttributes.EaterEnergy = 2; break;
case 5: SAAbsorptionAttributes.EaterDamage = 2; break;
}
Attributes.NightSight = 1;
}
public UnicornManeWovenTalons(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 v = reader.ReadInt();
}
}
public class DespicableQuiver : BaseQuiver
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153290; } } // Despicable Quiver
[Constructable]
public DespicableQuiver() : base(0x2B02)
{
Hue = 2671;
DamageIncrease = 10;
WeightReduction = 30;
Attributes.BonusDex = 5;
SkillBonuses.SetValues( 0, SkillName.Archery, 5.0 );
Attributes.ReflectPhysical = 5;
Attributes.AttackChance = 5;
LowerAmmoCost = 30;
switch(Utility.Random(5))
{
case 0: Resistances.Physical = 10; break;
case 1: Resistances.Fire = 10; break;
case 2: Resistances.Cold = 10; break;
case 3: Resistances.Poison = 10; break;
case 4: Resistances.Energy = 10; break;
}
}
public DespicableQuiver(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 v = reader.ReadInt();
}
}
public class UnforgivenVeil : GargishLeatherWingArmor
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153291; } } // Unforgiven Veil
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
public override int PhysicalResistance { get { return PhysicalBonus; } }
public override int FireResistance { get { return FireBonus; } }
public override int ColdResistance { get { return ColdBonus; } }
public override int PoisonResistance { get { return PoisonBonus; } }
public override int EnergyResistance { get { return EnergyBonus; } }
[Constructable]
public UnforgivenVeil()
{
Hue = 2671;
Attributes.BonusDex = 5;
SkillBonuses.SetValues( 0, SkillName.Throwing, 5.0 );
Attributes.ReflectPhysical = 5;
Attributes.AttackChance = 5;
switch(Utility.Random(5))
{
case 0: PhysicalBonus = 10; break;
case 1: FireBonus = 10; break;
case 2: ColdBonus = 10; break;
case 3: PoisonBonus = 10; break;
case 4: EnergyBonus = 10; break;
}
}
public UnforgivenVeil(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 v = reader.ReadInt();
}
}
public class HailstormHuman : WarFork
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153292; } } // Hailstorm
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public HailstormHuman()
{
Hue = 2714;
WeaponAttributes.HitLightning = 15;
WeaponAttributes.HitColdArea = 100;
WeaponAttributes.HitLeechMana = 30;
Attributes.AttackChance = 20;
Attributes.WeaponSpeed = 25;
Attributes.WeaponDamage = 50;
AosElementDamages.Cold = 100;
}
public HailstormHuman(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 v = reader.ReadInt();
}
}
public class HailstormGargoyle : GargishWarFork
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1153292; } } // Hailstorm
[Constructable]
public HailstormGargoyle()
{
Hue = 2714;
WeaponAttributes.HitLightning = 15;
WeaponAttributes.HitColdArea = 100;
WeaponAttributes.HitLeechMana = 30;
Attributes.AttackChance = 20;
Attributes.WeaponSpeed = 25;
Attributes.WeaponDamage = 50;
AosElementDamages.Cold = 100;
}
public HailstormGargoyle(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 v = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,75 @@
using System;
namespace Server.Items
{
public class Aegis : HeaterShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public Aegis()
{
Hue = 0x47E;
ArmorAttributes.SelfRepair = 5;
Attributes.ReflectPhysical = 15;
Attributes.DefendChance = 15;
Attributes.LowerManaCost = 8;
}
public Aegis(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1061602;
}
}// <20>gis
public override int ArtifactRarity
{
get
{
return 11;
}
}
public override int BasePhysicalResistance
{
get
{
return 15;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 1)
this.PhysicalBonus = 0;
}
}
}

View File

@@ -0,0 +1,61 @@
using System;
namespace Server.Items
{
public class AegisOfGrace : DragonHelm
{
public override int LabelNumber { get { return 1075047; } } // Aegis of Grace
public override bool IsArtifact { get { return true; } }
[Constructable]
public AegisOfGrace()
{
SkillBonuses.SetValues(0, SkillName.MagicResist, 10.0);
Attributes.DefendChance = 20;
ArmorAttributes.SelfRepair = 2;
if (Utility.RandomBool())
{
ItemID = 0x2B6E;
Weight = 2.0;
StrRequirement = 10;
MeditationAllowance = ArmorMeditationAllowance.All;
}
}
public AegisOfGrace(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 9; } }
public override int BaseColdResistance { get { return 7; } }
public override int BasePoisonResistance { get { return 7; } }
public override int BaseEnergyResistance { get { return 15; } }
public override ArmorMaterialType MaterialType { get { return ArmorMaterialType.Dragon; } }
public override CraftResource DefaultResource { get { return CraftResource.Iron; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
if(version == 0 && ItemID == 0x2B6E)
{
MeditationAllowance = ArmorMeditationAllowance.All;
}
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
namespace Server.Items
{
public class AnimatedLegsoftheInsaneTinker : PlateLegs
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public AnimatedLegsoftheInsaneTinker()
: base()
{
Hue = 2310;
Attributes.BonusDex = 5;
Attributes.RegenStam = 2;
Attributes.WeaponDamage = 10;
Attributes.WeaponSpeed = 10;
ArmorAttributes.LowerStatReq = 50;
}
public AnimatedLegsoftheInsaneTinker(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113760;} }// Animated Legs of the Insane Tinker
public override int BasePhysicalResistance
{
get
{
return 17;
}
}
public override int BaseFireResistance
{
get
{
return 15;
}
}
public override int BaseColdResistance
{
get
{
return 7;
}
}
public override int BasePoisonResistance
{
get
{
return 15;
}
}
public override int BaseEnergyResistance
{
get
{
return 2;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); //version
}
}
}

View File

@@ -0,0 +1,65 @@
using System;
namespace Server.Items
{
public class ArcaneShield : WoodenKiteShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ArcaneShield()
{
Hue = 0x556;
Attributes.NightSight = 1;
Attributes.SpellChanneling = 1;
Attributes.DefendChance = 15;
Attributes.CastSpeed = 1;
}
public ArcaneShield(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1061101;
}
}// Arcane Shield
public override int ArtifactRarity
{
get
{
return 11;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
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,65 @@
using System;
namespace Server.Items
{
public class ArmorOfFortune : StuddedChest
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ArmorOfFortune()
{
Hue = 0x501;
Attributes.Luck = 200;
Attributes.DefendChance = 15;
Attributes.LowerRegCost = 40;
ArmorAttributes.MageArmor = 1;
}
public ArmorOfFortune(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1061098;
}
}// Armor of Fortune
public override int ArtifactRarity
{
get
{
return 11;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
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,77 @@
using System;
namespace Server.Items
{
public class ArmsOfArmstrong : LeatherArms
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public ArmsOfArmstrong()
{
LootType = LootType.Blessed;
Attributes.BonusStr = 3;
Attributes.RegenHits = 1;
}
public ArmsOfArmstrong(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1077675;
}
}// Arms of Armstrong
public override int BasePhysicalResistance
{
get
{
return 6;
}
}
public override int BaseFireResistance
{
get
{
return 6;
}
}
public override int BaseColdResistance
{
get
{
return 5;
}
}
public override int BasePoisonResistance
{
get
{
return 5;
}
}
public override int BaseEnergyResistance
{
get
{
return 5;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,96 @@
using System;
namespace Server.Items
{
public class BasiliskHideBreastplate : DragonChest
{
public override bool IsArtifact { get { return true; } }
public override int LabelNumber { get { return 1115444; } } // Basilisk Hide Breastplate
[Constructable]
public BasiliskHideBreastplate()
{
Resource = CraftResource.None;
Hue = 1366;
AbsorptionAttributes.EaterDamage = 10;
Attributes.BonusDex = 5;
Attributes.RegenHits = 2;
Attributes.RegenStam = 2;
Attributes.RegenMana = 1;
Attributes.DefendChance = 5;
Attributes.LowerManaCost = 5;
}
public BasiliskHideBreastplate(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance
{
get
{
return 12;
}
}
public override int BaseFireResistance
{
get
{
return 14;
}
}
public override int BaseColdResistance
{
get
{
return 6;
}
}
public override int BasePoisonResistance
{
get
{
return 11;
}
}
public override int BaseEnergyResistance
{
get
{
return 5;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0)
{
Resource = CraftResource.None;
this.Hue = 1366;
}
}
}
}

View File

@@ -0,0 +1,86 @@
using System;
namespace Server.Items
{
public class BouraTailShield : WoodenKiteShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BouraTailShield()
{
Hue = 554;
Attributes.ReflectPhysical = 10;
ArmorAttributes.ReactiveParalyze = 1;
}
public BouraTailShield(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1112361;} }// boura tail shield
public override int BasePhysicalResistance
{
get
{
return 8;
}
}
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 1;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
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,80 @@
using System;
namespace Server.Items
{
public class BrambleCoat : WoodlandChest
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BrambleCoat()
{
Hue = 0x1;
ArmorAttributes.SelfRepair = 3;
Attributes.BonusHits = 4;
Attributes.Luck = 150;
Attributes.ReflectPhysical = 25;
Attributes.DefendChance = 15;
}
public BrambleCoat(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1072925;
}
}// Bramble Coat
public override int BasePhysicalResistance
{
get
{
return 10;
}
}
public override int BaseFireResistance
{
get
{
return 8;
}
}
public override int BaseColdResistance
{
get
{
return 7;
}
}
public override int BasePoisonResistance
{
get
{
return 8;
}
}
public override int BaseEnergyResistance
{
get
{
return 7;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,106 @@
using System;
namespace Server.Items
{
public class BritchesOfWarding : ChainLegs
{
public override int LabelNumber { get { return 1157345; } }// britches of warding
public override bool IsArtifact { get { return true; } }
[Constructable]
public BritchesOfWarding()
{
switch (Utility.Random(6))
{
case 0: AbsorptionAttributes.EaterKinetic = 9; break;
case 1: AbsorptionAttributes.EaterFire = 9; break;
case 2: AbsorptionAttributes.EaterCold = 9; break;
case 3: AbsorptionAttributes.EaterPoison = 9; break;
case 4: AbsorptionAttributes.EaterEnergy = 9; break;
case 5: AbsorptionAttributes.EaterDamage = 9; break;
}
Attributes.BonusStam = 12;
Attributes.AttackChance = 10;
Attributes.LowerManaCost = 8;
}
public BritchesOfWarding(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 20; } }
public override int BaseFireResistance { get { return 20; } }
public override int BaseColdResistance { get { return 20; } }
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; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
public class GargishBritchesOfWarding : GargishPlateLegs
{
public override int LabelNumber { get { return 1157345; } }// britches of warding
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishBritchesOfWarding()
{
switch (Utility.Random(6))
{
case 0: AbsorptionAttributes.EaterKinetic = 9; break;
case 1: AbsorptionAttributes.EaterFire = 9; break;
case 2: AbsorptionAttributes.EaterCold = 9; break;
case 3: AbsorptionAttributes.EaterPoison = 9; break;
case 4: AbsorptionAttributes.EaterEnergy = 9; break;
case 5: AbsorptionAttributes.EaterDamage = 9; break;
}
Attributes.BonusStam = 12;
Attributes.AttackChance = 10;
Attributes.LowerManaCost = 8;
}
public GargishBritchesOfWarding(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 20; } }
public override int BaseFireResistance { get { return 20; } }
public override int BaseColdResistance { get { return 20; } }
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; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
namespace Server.Items
{
public class BronzedArmorValkyrie : FemaleLeatherChest
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BronzedArmorValkyrie()
{
Attributes.BonusHits = 5;
Attributes.BonusStr = 5;
Attributes.BonusDex = 5;
Attributes.BonusStam = 5;
Attributes.RegenStam = 3;
Attributes.LowerManaCost = 10;
Hue = 1863; // Hue not exact
}
public BronzedArmorValkyrie(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1149957;} }// Bronzed Armor of the Valkyrie
public override int BasePhysicalResistance
{
get
{
return 11;
}
}
public override int BaseFireResistance
{
get
{
return 14;
}
}
public override int BaseColdResistance
{
get
{
return 8;
}
}
public override int BasePoisonResistance
{
get
{
return 11;
}
}
public override int BaseEnergyResistance
{
get
{
return 8;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
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,77 @@
using System;
namespace Server.Items
{
public class BulwarkLeggings : RingmailLegs
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public BulwarkLeggings()
{
LootType = LootType.Blessed;
Attributes.RegenStam = 1;
Attributes.RegenMana = 1;
}
public BulwarkLeggings(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1077727;
}
}// Bulwark Leggings
public override int BasePhysicalResistance
{
get
{
return 9;
}
}
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 3;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
namespace Server.Items
{
public class CandlewoodTorch : BaseShield
{
public override int LabelNumber { get { return 1094957; } } //Candlewood Torch
public override bool IsArtifact { get { return true; } }
public bool Burning { get { return ItemID == 0xA12; } }
[Constructable]
public CandlewoodTorch()
: base(0xF6B)
{
LootType = LootType.Blessed;
Weight = 1.0;
Attributes.SpellChanneling = 1;
Attributes.CastSpeed = -1;
}
public CandlewoodTorch(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
if (ItemID == 0xF6B)
{
ItemID = 0xA12;
}
else if (ItemID == 0xA12)
{
ItemID = 0xF6B;
}
}
var parent = Parent as Mobile;
if (parent == from && Burning)
{
Mobiles.MeerMage.StopEffect((Mobile)parent, true);
SwarmContext.CheckRemove((Mobile)parent);
}
}
public override void OnAdded(object parent)
{
base.OnAdded(parent);
if (parent is Mobile && Burning)
{
Mobiles.MeerMage.StopEffect((Mobile)parent, true);
SwarmContext.CheckRemove((Mobile)parent);
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
if (version < 1)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
}
}
}

View File

@@ -0,0 +1,87 @@
using System;
namespace Server.Items
{
public class CastOffZombieSkin : GargishLeatherArms
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public CastOffZombieSkin()
{
Hue = 1893;
SkillBonuses.SetValues(0, SkillName.Necromancy, 5.0);
SkillBonuses.SetValues(1, SkillName.SpiritSpeak, 5.0);
Attributes.LowerManaCost = 5;
Attributes.LowerRegCost = 8;
Attributes.IncreasedKarmaLoss = 5;
}
public CastOffZombieSkin(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113538;} }// Cast-off Zombie Skin
public override int BasePhysicalResistance
{
get
{
return 13;
}
}
public override int BaseFireResistance
{
get
{
return -2;
}
}
public override int BaseColdResistance
{
get
{
return 17;
}
}
public override int BasePoisonResistance
{
get
{
return 18;
}
}
public override int BaseEnergyResistance
{
get
{
return 6;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
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,47 @@
using System;
namespace Server.Items
{
public class CrownOfArcaneTemperament : Circlet
{
public override bool IsArtifact { get { return true; } }
public override Race RequiredRace { get { return null; } }
public override int LabelNumber { get { return 1113762; } } // Crown of Arcane Temperament
[Constructable]
public CrownOfArcaneTemperament()
{
Attributes.BonusMana = 8;
Attributes.RegenMana = 3;
Attributes.SpellDamage = 8;
Attributes.LowerManaCost = 6;
Hue = 2012;
AbsorptionAttributes.CastingFocus = 2;
}
public CrownOfArcaneTemperament(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 14; } }
public override int BaseColdResistance { get { return 4; } }
public override int BasePoisonResistance { get { return 12; } }
public override int BaseEnergyResistance { get { return 7; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
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,90 @@
using System;
namespace Server.Items
{
public class CuffsOfTheArchmage : BoneArms
{
public override int LabelNumber { get { return 1157348; } } // cuffs of the archmage
public override bool IsArtifact { get { return true; } }
[Constructable]
public CuffsOfTheArchmage()
{
SkillBonuses.SetValues(0, SkillName.MagicResist, 15.0);
Attributes.BonusMana = 5;
Attributes.RegenMana = 4;
Attributes.SpellDamage = 20;
ArmorAttributes.MageArmor = 1;
}
public CuffsOfTheArchmage(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 15; } }
public override int BaseFireResistance { get { return 15; } }
public override int BaseColdResistance { get { return 15; } }
public override int BasePoisonResistance { get { return 15; } }
public override int BaseEnergyResistance { get { return 15; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class GargishCuffsOfTheArchmage : GargishStoneArms
{
public override int LabelNumber { get { return 1157348; } } // cuffs of the archmage
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishCuffsOfTheArchmage()
{
SkillBonuses.SetValues(0, SkillName.MagicResist, 15.0);
Attributes.BonusMana = 5;
Attributes.RegenMana = 4;
Attributes.SpellDamage = 20;
ArmorAttributes.MageArmor = 1;
}
public GargishCuffsOfTheArchmage(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 15; } }
public override int BaseFireResistance { get { return 15; } }
public override int BaseColdResistance { get { return 15; } }
public override int BasePoisonResistance { get { return 15; } }
public override int BaseEnergyResistance { get { return 15; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,126 @@
using System;
namespace Server.Items
{
public class DefenderOfTheMagus : MetalShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public DefenderOfTheMagus()
{
Hue = 590;
Attributes.SpellChanneling = 1;
Attributes.DefendChance = 10;
Attributes.CastRecovery = 1;
//Random Resonance:
switch (Utility.Random(5))
{
case 0:
AbsorptionAttributes.ResonanceCold = 10;
break;
case 1:
AbsorptionAttributes.ResonanceFire = 10;
break;
case 2:
AbsorptionAttributes.ResonanceKinetic = 10;
break;
case 3:
AbsorptionAttributes.ResonancePoison = 10;
break;
case 4:
AbsorptionAttributes.ResonanceEnergy = 10;
break;
}
//Random Resist:
switch (Utility.Random(5))
{
case 0:
ColdBonus = 10;
break;
case 1:
FireBonus = 10;
break;
case 2:
PhysicalBonus = 10;
break;
case 3:
PoisonBonus = 10;
break;
case 4:
EnergyBonus = 10;
break;
}
}
public DefenderOfTheMagus(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113851;} }// Defender of the Magus
public override int BasePhysicalResistance
{
get
{
return 0;
}
}
public override int BaseFireResistance
{
get
{
return 1;
}
}
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;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);//version
}
}
}

View File

@@ -0,0 +1,87 @@
using System;
namespace Server.Items
{
public class DragonHideShield : GargishKiteShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public DragonHideShield()
: base()
{
Hue = 44;
AbsorptionAttributes.EaterFire = 20;
Attributes.RegenHits = 2;
Attributes.DefendChance = 10;
}
public DragonHideShield(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113532;} }// Dragon Hide Shield
public override int BasePhysicalResistance
{
get
{
return 15;
}
}
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 -4;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);//version
}
}
}

View File

@@ -0,0 +1,108 @@
using System;
namespace Server.Items
{
public class DupresShield : BaseShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public DupresShield()
: base(0x2B01)
{
LootType = LootType.Blessed;
Weight = 6.0;
Attributes.BonusHits = 5;
Attributes.RegenHits = 1;
SkillBonuses.SetValues(0, SkillName.Parry, 5);
}
public DupresShield(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075196;
}
}// Dupre<72>s Shield
public override int BasePhysicalResistance
{
get
{
return 1;
}
}
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 1;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override int AosStrReq
{
get
{
return 50;
}
}
public override int ArmorBase
{
get
{
return 15;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); //version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,65 @@
using System;
namespace Server.Items
{
public class EscutcheonDeAriadne : MetalKiteShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public EscutcheonDeAriadne()
{
LootType = LootType.Blessed;
Hue = 0x8A5;
ArmorAttributes.DurabilityBonus = 49;
Attributes.ReflectPhysical = 5;
Attributes.DefendChance = 5;
}
public EscutcheonDeAriadne(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1077694;
}
}// Escutcheon de Ariadne
public override int BasePhysicalResistance
{
get
{
return 5;
}
}
public override int BaseEnergyResistance
{
get
{
return 1;
}
}
public override int AosStrReq
{
get
{
return 14;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,114 @@
using System;
namespace Server.Items
{
public class FeyLeggings : ChainLegs, ICanBeElfOrHuman
{
public override bool IsArtifact { get { return true; } }
private bool _ElfOnly;
public override Race RequiredRace { get { return _ElfOnly ? Race.Elf : null; } }
[CommandProperty(AccessLevel.GameMaster)]
public bool ElfOnly { get { return _ElfOnly; } set { _ElfOnly = value; InvalidateProperties(); } }
[Constructable]
public FeyLeggings()
{
Attributes.BonusHits = 6;
Attributes.DefendChance = 20;
_ElfOnly = true;
ArmorAttributes.MageArmor = 1;
}
public FeyLeggings(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1075041;
}
}// Fey Leggings
public override int BasePhysicalResistance
{
get
{
return 12;
}
}
public override int BaseFireResistance
{
get
{
return 8;
}
}
public override int BaseColdResistance
{
get
{
return 7;
}
}
public override int BasePoisonResistance
{
get
{
return 4;
}
}
public override int BaseEnergyResistance
{
get
{
return 19;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(1); // version
writer.Write(_ElfOnly);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
switch (version)
{
case 1:
_ElfOnly = reader.ReadBool();
break;
case 0:
_ElfOnly = true;
break;
}
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
namespace Server.Items
{
public class GargishSignOfChaos : GargishChaosShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishSignOfChaos()
: base()
{
Hue = 2075;
ArmorAttributes.SoulCharge = 20;
Attributes.AttackChance = 5;
Attributes.DefendChance = 10;
Attributes.CastSpeed = 1;
}
public GargishSignOfChaos(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113535;} }// Sign of Chaos
public override int BasePhysicalResistance
{
get
{
return 3;
}
}
public override int BaseFireResistance
{
get
{
return 2;
}
}
public override int BaseColdResistance
{
get
{
return 2;
}
}
public override int BasePoisonResistance
{
get
{
return 2;
}
}
public override int BaseEnergyResistance
{
get
{
return 2;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);//version
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
namespace Server.Items
{
public class GargishSignOfOrder : GargishOrderShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishSignOfOrder()
: base()
{
SkillBonuses.SetValues(0, SkillName.Chivalry, 10.0);
Attributes.AttackChance = 5;
Attributes.DefendChance = 10;
Attributes.CastSpeed = 1;
Attributes.CastRecovery = 1;
}
public GargishSignOfOrder(Serial serial)
: base(serial)
{
}
public override int LabelNumber { get{return 1113534;} }// Sign of Order
public override int BasePhysicalResistance
{
get
{
return 1;
}
}
public override int BaseFireResistance
{
get
{
return 0;
}
}
public override int BaseColdResistance
{
get
{
return 5;
}
}
public override int BasePoisonResistance
{
get
{
return 5;
}
}
public override int BaseEnergyResistance
{
get
{
return 0;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); //version
}
}
}

View File

@@ -0,0 +1,111 @@
using System;
namespace Server.Items
{
// Based off a WoodenShield
[FlipableAttribute(0x4200, 0x4207)]
public class GargishWoodenShield : BaseShield
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishWoodenShield()
: base(0x4200)
{
//Weight = 5.0;
}
public GargishWoodenShield(Serial serial)
: base(serial)
{
}
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 1;
}
}
public override int InitMinHits
{
get
{
return 20;
}
}
public override int InitMaxHits
{
get
{
return 25;
}
}
public override int AosStrReq
{
get
{
return 20;
}
}
public override int ArmorBase
{
get
{
return 8;
}
}
public override bool CanBeWornByGargoyles
{
get
{
return true;
}
}
public override Race RequiredRace
{
get
{
return Race.Gargoyle;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);//version
}
}
}

View File

@@ -0,0 +1,99 @@
using System;
namespace Server.Items
{
public class GauntletsOfAnger : PlateGloves
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GauntletsOfAnger()
{
Hue = 0x29b;
Attributes.BonusHits = 8;
Attributes.RegenHits = 2;
Attributes.DefendChance = 10;
}
public GauntletsOfAnger(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1094902;
}
}// Gauntlets of Anger [Replica]
public override int BasePhysicalResistance
{
get
{
return 4;
}
}
public override int BaseFireResistance
{
get
{
return 4;
}
}
public override int BaseColdResistance
{
get
{
return 5;
}
}
public override int BasePoisonResistance
{
get
{
return 6;
}
}
public override int BaseEnergyResistance
{
get
{
return 5;
}
}
public override int InitMinHits
{
get
{
return 150;
}
}
public override int InitMaxHits
{
get
{
return 150;
}
}
public override bool CanFortify
{
get
{
return false;
}
}
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,87 @@
using System;
namespace Server.Items
{
public class GauntletsOfNobility : RingmailGloves
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GauntletsOfNobility()
{
Hue = 0x4FE;
Attributes.BonusStr = 8;
Attributes.Luck = 100;
Attributes.WeaponDamage = 20;
}
public GauntletsOfNobility(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1061092;
}
}// Gauntlets of Nobility
public override int ArtifactRarity
{
get
{
return 11;
}
}
public override int BasePhysicalResistance
{
get
{
return 18;
}
}
public override int BasePoisonResistance
{
get
{
return 20;
}
}
public override int InitMinHits
{
get
{
return 255;
}
}
public override int InitMaxHits
{
get
{
return 255;
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 1)
{
if (this.Hue == 0x562)
this.Hue = 0x4FE;
this.PhysicalBonus = 0;
this.PoisonBonus = 0;
}
}
}
}

View File

@@ -0,0 +1,99 @@
using System;
namespace Server.Items
{
public class GladiatorsCollar : PlateGorget
{
public override bool IsArtifact { get { return true; } }
[Constructable]
public GladiatorsCollar()
{
Hue = 0x26d;
Attributes.BonusHits = 10;
Attributes.AttackChance = 10;
ArmorAttributes.MageArmor = 1;
}
public GladiatorsCollar(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1094917;
}
}// Gladiator's Collar [Replica]
public override int BasePhysicalResistance
{
get
{
return 18;
}
}
public override int BaseFireResistance
{
get
{
return 18;
}
}
public override int BaseColdResistance
{
get
{
return 17;
}
}
public override int BasePoisonResistance
{
get
{
return 18;
}
}
public override int BaseEnergyResistance
{
get
{
return 16;
}
}
public override int InitMinHits
{
get
{
return 150;
}
}
public override int InitMaxHits
{
get
{
return 150;
}
}
public override bool CanFortify
{
get
{
return false;
}
}
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,106 @@
using System;
namespace Server.Items
{
public class GlovesOfFeudalGrip : DragonGloves
{
public override int LabelNumber { get { return 1157349; } } // gloves of feudal grip
public override bool IsArtifact { get { return true; } }
[Constructable]
public GlovesOfFeudalGrip()
{
Resource = CraftResource.None;
Attributes.BonusStr = 8;
Attributes.BonusStam = 8;
Attributes.RegenHits = 3;
Attributes.RegenMana = 3;
Attributes.WeaponDamage = 30;
}
public GlovesOfFeudalGrip(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 15; } }
public override int BaseFireResistance { get { return 15; } }
public override int BaseColdResistance { get { return 15; } }
public override int BasePoisonResistance { get { return 15; } }
public override int BaseEnergyResistance { get { return 15; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
public override CraftResource DefaultResource { get { return CraftResource.None; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
if (version == 0)
{
Resource = CraftResource.None;
}
}
}
public class GargishKiltOfFeudalVise : GargishPlateKilt
{
public override int LabelNumber { get { return 1157367; } } // Kilt of Feudal Vise
public override bool IsArtifact { get { return true; } }
[Constructable]
public GargishKiltOfFeudalVise()
{
Resource = CraftResource.None;
Attributes.BonusStr = 8;
Attributes.BonusStam = 8;
Attributes.RegenHits = 3;
Attributes.RegenMana = 3;
Attributes.WeaponDamage = 30;
}
public GargishKiltOfFeudalVise(Serial serial)
: base(serial)
{
}
public override int BasePhysicalResistance { get { return 15; } }
public override int BaseFireResistance { get { return 15; } }
public override int BaseColdResistance { get { return 15; } }
public override int BasePoisonResistance { get { return 15; } }
public override int BaseEnergyResistance { get { return 15; } }
public override int InitMinHits { get { return 255; } }
public override int InitMaxHits { get { return 255; } }
public override CraftResource DefaultResource { get { return CraftResource.None; } }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
if (version == 0)
{
Resource = CraftResource.None;
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More