Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AlchemistsBauble : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public AlchemistsBauble()
|
||||
{
|
||||
Hue = 0x290;
|
||||
SkillBonuses.SetValues(0, SkillName.Magery, 10.0);
|
||||
Attributes.EnhancePotions = 30;
|
||||
Attributes.LowerRegCost = 20;
|
||||
Resistances.Poison = 10;
|
||||
}
|
||||
|
||||
public AlchemistsBauble(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1070638;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
using System;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AmuletOfRighteousness : SilverNecklace, IUsesRemaining
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
private int m_UsesRemaining;
|
||||
[Constructable]
|
||||
public AmuletOfRighteousness()
|
||||
: this(100)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public AmuletOfRighteousness(int uses)
|
||||
: base()
|
||||
{
|
||||
this.LootType = LootType.Blessed;
|
||||
this.Weight = 1.0;
|
||||
|
||||
this.m_UsesRemaining = uses;
|
||||
}
|
||||
|
||||
public AmuletOfRighteousness(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1075313;
|
||||
}
|
||||
}// Amulet of Righteousness
|
||||
public virtual bool ShowUsesRemaining
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
set
|
||||
{
|
||||
}
|
||||
}
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int UsesRemaining
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_UsesRemaining;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_UsesRemaining = value;
|
||||
this.InvalidateProperties();
|
||||
}
|
||||
}
|
||||
public override void AddUsesRemainingProperties(ObjectPropertyList list)
|
||||
{
|
||||
list.Add(1060584, this.m_UsesRemaining.ToString()); // uses remaining: ~1_val~
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
base.OnDoubleClick(from);
|
||||
|
||||
if (this.IsChildOf(from.Backpack))
|
||||
from.Target = new InternalTarget(this);
|
||||
else
|
||||
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
|
||||
writer.Write((int)this.m_UsesRemaining);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
this.m_UsesRemaining = reader.ReadInt();
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private readonly AmuletOfRighteousness m_Amulet;
|
||||
public InternalTarget(AmuletOfRighteousness amulet)
|
||||
: base(12, false, TargetFlags.None)
|
||||
{
|
||||
this.m_Amulet = amulet;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (this.m_Amulet == null || this.m_Amulet.Deleted)
|
||||
return;
|
||||
|
||||
if (targeted is Mobile)
|
||||
{
|
||||
Mobile target = (Mobile)targeted;
|
||||
|
||||
if (this.m_Amulet.UsesRemaining <= 0)
|
||||
{
|
||||
from.SendLocalizedMessage(1042544); // This item is out of charges.
|
||||
return;
|
||||
}
|
||||
|
||||
target.BoltEffect(0);
|
||||
this.m_Amulet.UsesRemaining -= 1;
|
||||
this.m_Amulet.InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
364
Scripts/Items/Artifacts/Equipment/Jewelry/AnkhPendant.cs
Normal file
364
Scripts/Items/Artifacts/Equipment/Jewelry/AnkhPendant.cs
Normal file
@@ -0,0 +1,364 @@
|
||||
using System;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
using Server.Regions;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum VirtueType
|
||||
{
|
||||
None = 0,
|
||||
Honesty = 1,
|
||||
Compassion = 2,
|
||||
Valor = 3,
|
||||
Justice = 4,
|
||||
Sacrafice = 5,
|
||||
Honor = 6,
|
||||
Spirituality = 7,
|
||||
Humility = 8
|
||||
}
|
||||
|
||||
public class AnkhPendant : BaseNecklace
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
EventSink.Speech += new SpeechEventHandler(EventSink_Speech);
|
||||
}
|
||||
|
||||
public override int LabelNumber { get { return 1079525; } } // Ankh Pendant
|
||||
|
||||
[Constructable]
|
||||
public AnkhPendant()
|
||||
: base(0x3BB5)
|
||||
{
|
||||
Hue = Utility.RandomBool() ? 2213 : 0;
|
||||
}
|
||||
|
||||
public static void EventSink_Speech(SpeechEventArgs e)
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
Item ankh = from.FindItemOnLayer(Layer.Neck);
|
||||
|
||||
if (!(ankh is AnkhPendant))
|
||||
return;
|
||||
|
||||
string str = e.Speech.ToLower();
|
||||
VirtueType t = VirtueType.None;
|
||||
|
||||
if (str == "ahm")
|
||||
t = VirtueType.Honesty;
|
||||
else if (str == "mu")
|
||||
t = VirtueType.Compassion;
|
||||
else if (str == "ra")
|
||||
t = VirtueType.Valor;
|
||||
else if (str == "beh")
|
||||
t = VirtueType.Justice;
|
||||
else if (str == "cah")
|
||||
t = VirtueType.Sacrafice;
|
||||
else if (str == "summ")
|
||||
t = VirtueType.Honor;
|
||||
else if (str == "om")
|
||||
t = VirtueType.Spirituality;
|
||||
else if (str == "lum")
|
||||
t = VirtueType.Humility;
|
||||
|
||||
if (t != VirtueType.None && CheckShrine(t, from))
|
||||
ApplyBonus(t, from);
|
||||
}
|
||||
|
||||
public static int GetHitsRegenModifier(Mobile from)
|
||||
{
|
||||
if (!m_Table.ContainsKey(from))
|
||||
return 0;
|
||||
|
||||
if (CheckExpired(from))
|
||||
return 0;
|
||||
|
||||
AnkhPendantBonusContext context = m_Table[from];
|
||||
|
||||
if (context == null)
|
||||
return 0;
|
||||
|
||||
switch (context.VType)
|
||||
{
|
||||
case VirtueType.Honesty: break;
|
||||
case VirtueType.Compassion:
|
||||
return 2;
|
||||
case VirtueType.Valor: break;
|
||||
case VirtueType.Justice:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Sacrafice:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Honor: break;
|
||||
case VirtueType.Spirituality:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Humility:
|
||||
if (context.Random == 0)
|
||||
return 3;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int GetStamRegenModifier(Mobile from)
|
||||
{
|
||||
if (!m_Table.ContainsKey(from))
|
||||
return 0;
|
||||
|
||||
if (CheckExpired(from))
|
||||
return 0;
|
||||
|
||||
AnkhPendantBonusContext context = m_Table[from];
|
||||
|
||||
if (context == null)
|
||||
return 0;
|
||||
|
||||
switch (context.VType)
|
||||
{
|
||||
case VirtueType.Honesty: break;
|
||||
case VirtueType.Compassion: break;
|
||||
case VirtueType.Valor:
|
||||
return 2;
|
||||
case VirtueType.Justice:
|
||||
break;
|
||||
case VirtueType.Sacrafice:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Honor:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Spirituality:
|
||||
return context.DoBump2 ? 2 : 1;
|
||||
case VirtueType.Humility:
|
||||
if (context.Random == 1)
|
||||
return 3;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int GetManaRegenModifier(Mobile from)
|
||||
{
|
||||
if (!m_Table.ContainsKey(from))
|
||||
return 0;
|
||||
|
||||
if (CheckExpired(from))
|
||||
return 0;
|
||||
|
||||
AnkhPendantBonusContext context = m_Table[from];
|
||||
|
||||
if (context == null)
|
||||
return 0;
|
||||
|
||||
switch (context.VType)
|
||||
{
|
||||
case VirtueType.Honesty:
|
||||
return 2;
|
||||
case VirtueType.Compassion: break;
|
||||
case VirtueType.Valor:
|
||||
break;
|
||||
case VirtueType.Justice:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Sacrafice:
|
||||
break;
|
||||
case VirtueType.Honor:
|
||||
return context.DoBump ? 2 : 1;
|
||||
case VirtueType.Spirituality:
|
||||
return context.DoBump3 ? 2 : 1;
|
||||
case VirtueType.Humility:
|
||||
if (context.Random == 2)
|
||||
return 3;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static bool CheckExpired(Mobile from)
|
||||
{
|
||||
if (m_Table.ContainsKey(from) && m_Table[from].Expired)
|
||||
{
|
||||
AddToCooldown(from);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool CheckShrine(VirtueType t, Mobile from)
|
||||
{
|
||||
Region r = from.Region;
|
||||
Map map = from.Map;
|
||||
|
||||
if (r is DungeonRegion || r is TownRegion || (map != Map.Trammel && map != Map.Felucca))
|
||||
return false;
|
||||
|
||||
bool atShrine = false;
|
||||
|
||||
for (int i = 0; i < m_ShrineLocs.Length; i++)
|
||||
{
|
||||
if (m_ShrineLocs[i].Contains(new Point2D(from.X, from.Y)) && (int)t == i + 1)
|
||||
{
|
||||
atShrine = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (atShrine)
|
||||
{
|
||||
if (IsUnderEffects(from))
|
||||
{
|
||||
from.SendLocalizedMessage(1079544, String.Format("#{0}", GetCliloc(m_Table[from].VType)));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IsWaitingCooldown(from))
|
||||
{
|
||||
TimeSpan ts = DateTime.UtcNow - m_Cooldown[from];
|
||||
|
||||
if (ts.TotalHours >= 1)
|
||||
from.SendLocalizedMessage(1079550, ((int)ts.TotalHours).ToString()); //You can improve your fortunes again in about ~1_TIME~ hours.
|
||||
else
|
||||
from.SendLocalizedMessage(1079547); //Your fortunes are about to improve.
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return atShrine;
|
||||
}
|
||||
|
||||
public static Rectangle2D[] ShrineLocs { get { return m_ShrineLocs; } }
|
||||
private static Rectangle2D[] m_ShrineLocs = new Rectangle2D[]
|
||||
{
|
||||
new Rectangle2D(4208, 563, 2, 2), //Honesty
|
||||
new Rectangle2D(1857, 874, 2, 2), //Compassion
|
||||
new Rectangle2D(2491, 3930, 2, 2), //Valor
|
||||
new Rectangle2D(1300, 633, 2, 2), //Justice
|
||||
new Rectangle2D(3354, 289, 2, 2), //Sacrafice
|
||||
new Rectangle2D(1726, 3527, 2, 2), //Honor
|
||||
new Rectangle2D(1605, 2489, 2, 2), //Spirituality
|
||||
new Rectangle2D(4273, 3696, 2, 2), //Humility
|
||||
};
|
||||
|
||||
private static void ApplyBonus(VirtueType t, Mobile from)
|
||||
{
|
||||
m_Table[from] = new AnkhPendantBonusContext(from, t);
|
||||
|
||||
from.Delta(MobileDelta.WeaponDamage);
|
||||
|
||||
from.SendLocalizedMessage(1079546, String.Format("#{0}", GetCliloc(t)));
|
||||
}
|
||||
|
||||
private static int GetCliloc(VirtueType t)
|
||||
{
|
||||
switch (t)
|
||||
{
|
||||
default:
|
||||
case VirtueType.Honesty: return 1079539;
|
||||
case VirtueType.Compassion: return 1079535;
|
||||
case VirtueType.Valor: return 1079543;
|
||||
case VirtueType.Justice: return 1079536;
|
||||
case VirtueType.Sacrafice: return 1079538;
|
||||
case VirtueType.Honor: return 1079540;
|
||||
case VirtueType.Spirituality: return 1079542;
|
||||
case VirtueType.Humility: return 1079541;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsUnderEffects(Mobile from)
|
||||
{
|
||||
return m_Table.ContainsKey(from);
|
||||
}
|
||||
|
||||
public static bool IsWaitingCooldown(Mobile from)
|
||||
{
|
||||
if (m_Cooldown.ContainsKey(from) && m_Cooldown[from] < DateTime.UtcNow)
|
||||
m_Cooldown.Remove(from);
|
||||
|
||||
return m_Cooldown.ContainsKey(from);
|
||||
}
|
||||
|
||||
public static void AddToCooldown(Mobile from)
|
||||
{
|
||||
if (m_Table.ContainsKey(from))
|
||||
m_Table.Remove(from);
|
||||
|
||||
from.Delta(MobileDelta.WeaponDamage);
|
||||
|
||||
if (from.NetState != null)
|
||||
from.SendLocalizedMessage(1079553); //The effects of meditating at the shrine have worn off.
|
||||
|
||||
m_Cooldown[from] = DateTime.UtcNow + TimeSpan.FromHours(24);
|
||||
}
|
||||
|
||||
private static Dictionary<Mobile, AnkhPendantBonusContext> m_Table = new Dictionary<Mobile, AnkhPendantBonusContext>();
|
||||
private static Dictionary<Mobile, DateTime> m_Cooldown = new Dictionary<Mobile, DateTime>();
|
||||
|
||||
private class AnkhPendantBonusContext
|
||||
{
|
||||
private Mobile m_Mobile;
|
||||
private VirtueType m_Type;
|
||||
private int m_Random;
|
||||
private bool m_DoBump;
|
||||
private bool m_DoBump2;
|
||||
private bool m_DoBump3;
|
||||
private DateTime m_Expires;
|
||||
|
||||
public VirtueType VType { get { return m_Type; } }
|
||||
public bool DoBump { get { return m_DoBump; } }
|
||||
public bool DoBump2 { get { return m_DoBump2; } }
|
||||
public bool DoBump3 { get { return m_DoBump3; } }
|
||||
public int Random { get { return m_Random; } }
|
||||
|
||||
public bool Expired { get { return DateTime.UtcNow > m_Expires; } }
|
||||
|
||||
public AnkhPendantBonusContext(Mobile from, VirtueType type)
|
||||
{
|
||||
m_Mobile = from;
|
||||
m_Type = type;
|
||||
m_Random = -1;
|
||||
m_Expires = DateTime.UtcNow + TimeSpan.FromMinutes(60);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case VirtueType.Honesty:
|
||||
case VirtueType.Compassion:
|
||||
case VirtueType.Valor: break;
|
||||
case VirtueType.Humility:
|
||||
m_Random = Utility.Random(3);
|
||||
break;
|
||||
case VirtueType.Justice:
|
||||
case VirtueType.Sacrafice:
|
||||
case VirtueType.Honor:
|
||||
m_DoBump = Utility.RandomBool();
|
||||
break;
|
||||
case VirtueType.Spirituality:
|
||||
m_DoBump = 0.25 > Utility.RandomDouble();
|
||||
m_DoBump2 = 0.25 > Utility.RandomDouble();
|
||||
m_DoBump3 = 0.25 > Utility.RandomDouble();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public AnkhPendant(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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)
|
||||
reader.ReadBool();
|
||||
}
|
||||
}
|
||||
}
|
||||
96
Scripts/Items/Artifacts/Equipment/Jewelry/BarreraakRing.cs
Normal file
96
Scripts/Items/Artifacts/Equipment/Jewelry/BarreraakRing.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[TypeAlias("Server.Items.BarreraakRing")]
|
||||
public class BarreraaksRing : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1095049; } } // Barreraak<61>s Old Beat Up Ring
|
||||
|
||||
[Constructable]
|
||||
public BarreraaksRing()
|
||||
{
|
||||
//TODO: Get Hue
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public override bool CanEquip(Mobile from)
|
||||
{
|
||||
if (!base.CanEquip(from))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (from.Mounted)
|
||||
{
|
||||
from.SendLocalizedMessage(1010097); // You cannot use this while mounted.
|
||||
return false;
|
||||
}
|
||||
else if (from.Flying)
|
||||
{
|
||||
from.SendLocalizedMessage(1113414); // You can't use this while flying!
|
||||
return false;
|
||||
}
|
||||
else if (from.IsBodyMod)
|
||||
{
|
||||
from.SendLocalizedMessage(1111896); // You may only change forms while in your original body.
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnAdded( object parent )
|
||||
{
|
||||
base.OnAdded(parent);
|
||||
|
||||
if(parent is Mobile)
|
||||
((Mobile)parent).BodyMod = 334;
|
||||
}
|
||||
|
||||
public override void OnRemoved( object parent )
|
||||
{
|
||||
base.OnRemoved(parent);
|
||||
|
||||
if(parent is Mobile)
|
||||
((Mobile)parent).BodyMod = 0;
|
||||
}
|
||||
|
||||
public BarreraaksRing(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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 (Parent is Mobile)
|
||||
{
|
||||
var m = (Mobile)Parent;
|
||||
|
||||
Timer.DelayCall(() =>
|
||||
{
|
||||
if (!m.Mounted && !m.Flying && !m.IsBodyMod)
|
||||
{
|
||||
m.BodyMod = 334;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (version == 0)
|
||||
{
|
||||
reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BraceletOfHealth : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public BraceletOfHealth()
|
||||
{
|
||||
Hue = 0x21;
|
||||
Attributes.BonusHits = 5;
|
||||
Attributes.RegenHits = 10;
|
||||
}
|
||||
|
||||
public BraceletOfHealth(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1061103;
|
||||
}
|
||||
}// Bracelet of Health
|
||||
public override int ArtifactRarity
|
||||
{
|
||||
get
|
||||
{
|
||||
return 11;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BraceletOfPrimalConsumption : GoldBracelet
|
||||
{
|
||||
public override int LabelNumber { get { return 1157350; } } // bracelet of primal consumption
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BraceletOfPrimalConsumption()
|
||||
{
|
||||
AbsorptionAttributes.EaterDamage = 6;
|
||||
Attributes.Luck = 200;
|
||||
Resistances.Physical = 20;
|
||||
Resistances.Fire = 20;
|
||||
Resistances.Cold = 20;
|
||||
Resistances.Poison = 20;
|
||||
Resistances.Energy = 20;
|
||||
}
|
||||
|
||||
public BraceletOfPrimalConsumption(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BraceletOfResilience : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public BraceletOfResilience()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Attributes.DefendChance = 5;
|
||||
Resistances.Fire = 5;
|
||||
Resistances.Cold = 5;
|
||||
Resistances.Poison = 5;
|
||||
Resistances.Energy = 5;
|
||||
}
|
||||
|
||||
public BraceletOfResilience(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1077627;
|
||||
}
|
||||
}// Bracelet of Resilience
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Scripts/Items/Artifacts/Equipment/Jewelry/BurningAmber.cs
Normal file
39
Scripts/Items/Artifacts/Equipment/Jewelry/BurningAmber.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BurningAmber : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1114790; } } // Burning Amber
|
||||
|
||||
[Constructable]
|
||||
public BurningAmber()
|
||||
{
|
||||
Hue = 1174;
|
||||
Attributes.CastRecovery = 3;
|
||||
Attributes.RegenMana = 2;
|
||||
Attributes.BonusDex = 5;
|
||||
Resistances.Fire = 20;
|
||||
}
|
||||
|
||||
public BurningAmber(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ClaspOfConcentration : SilverBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public ClaspOfConcentration()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Attributes.RegenStam = 2;
|
||||
Attributes.RegenMana = 1;
|
||||
Resistances.Fire = 5;
|
||||
Resistances.Cold = 5;
|
||||
}
|
||||
|
||||
public ClaspOfConcentration(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1077695;
|
||||
}
|
||||
}// Clasp of Concentration
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Scripts/Items/Artifacts/Equipment/Jewelry/CrystallineRing.cs
Normal file
39
Scripts/Items/Artifacts/Equipment/Jewelry/CrystallineRing.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CrystallineRing : GoldRing
|
||||
{
|
||||
public override int LabelNumber { get { return 1075096; } } // Crystalline Ring
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public CrystallineRing()
|
||||
{
|
||||
Hue = 0x480;
|
||||
Attributes.RegenHits = 5;
|
||||
Attributes.RegenMana = 3;
|
||||
Attributes.SpellDamage = 20;
|
||||
SkillBonuses.SetValues(0, SkillName.Magery, 20.0);
|
||||
SkillBonuses.SetValues(1, SkillName.Focus, 20.0);
|
||||
}
|
||||
|
||||
public CrystallineRing(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Scripts/Items/Artifacts/Equipment/Jewelry/DemonBridleRing.cs
Normal file
56
Scripts/Items/Artifacts/Equipment/Jewelry/DemonBridleRing.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DemonBridleRing : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1113651; } } // Demon Bridle Ring
|
||||
|
||||
[Constructable]
|
||||
public DemonBridleRing()
|
||||
{
|
||||
Hue = 39;
|
||||
Attributes.CastRecovery = 2;
|
||||
Attributes.CastSpeed = 1;
|
||||
Attributes.RegenHits = 1;
|
||||
Attributes.RegenMana = 1;
|
||||
Attributes.DefendChance = 10;
|
||||
Attributes.LowerManaCost = 4;
|
||||
Resistances.Fire = 5;
|
||||
}
|
||||
|
||||
public DemonBridleRing(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Scripts/Items/Artifacts/Equipment/Jewelry/DjinnisRing.cs
Normal file
56
Scripts/Items/Artifacts/Equipment/Jewelry/DjinnisRing.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DjinnisRing : SilverRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public DjinnisRing()
|
||||
{
|
||||
Attributes.BonusInt = 5;
|
||||
Attributes.SpellDamage = 10;
|
||||
Attributes.CastSpeed = 2;
|
||||
}
|
||||
|
||||
public DjinnisRing(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1094927;
|
||||
}
|
||||
}// Djinni's Ring [Replica]
|
||||
public override int InitMinHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 150;
|
||||
}
|
||||
}
|
||||
public override int InitMaxHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 150;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DragonJadeEarrings : GargishEarrings
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1113720; } } // Dragon Jade Earrings
|
||||
|
||||
public override int BasePhysicalResistance { get { return 9; } }
|
||||
public override int BaseFireResistance { get { return 16; } }
|
||||
public override int BaseColdResistance { get { return 5; } }
|
||||
public override int BasePoisonResistance { get { return 13; } }
|
||||
public override int BaseEnergyResistance { get { return 3; } }
|
||||
|
||||
[Constructable]
|
||||
public DragonJadeEarrings()
|
||||
{
|
||||
Hue = 2129;
|
||||
Attributes.BonusDex = 5;
|
||||
Attributes.BonusStr = 5;
|
||||
Attributes.RegenHits = 2;
|
||||
Attributes.RegenStam = 3;
|
||||
Attributes.LowerManaCost = 5;
|
||||
AbsorptionAttributes.EaterFire = 10;
|
||||
}
|
||||
|
||||
public DragonJadeEarrings(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int InitMinHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override int InitMaxHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override bool CanBeWornByGargoyles
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override Race RequiredRace
|
||||
{
|
||||
get
|
||||
{
|
||||
return Race.Gargoyle;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EarringBoxSet : RedVelvetGiftBox
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public EarringBoxSet()
|
||||
: base()
|
||||
{
|
||||
DropItem(new EarringsOfProtection(AosElementAttribute.Physical));
|
||||
DropItem(new EarringsOfProtection(AosElementAttribute.Fire));
|
||||
DropItem(new EarringsOfProtection(AosElementAttribute.Cold));
|
||||
DropItem(new EarringsOfProtection(AosElementAttribute.Poison));
|
||||
DropItem(new EarringsOfProtection(AosElementAttribute.Energy));
|
||||
}
|
||||
|
||||
public EarringBoxSet(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class EarringsOfProtection : BaseJewel
|
||||
{
|
||||
private AosElementAttribute m_Attribute;
|
||||
[Constructable]
|
||||
public EarringsOfProtection()
|
||||
: this(RandomType())
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public EarringsOfProtection(AosElementAttribute element)
|
||||
: base(0x1087, Layer.Earrings)
|
||||
{
|
||||
Resistances[((AosElementAttribute)element)] = 2;
|
||||
|
||||
m_Attribute = element;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
Hue = GetItemData(m_Attribute, false);
|
||||
}
|
||||
|
||||
public EarringsOfProtection(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public virtual AosElementAttribute Attribute
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Attribute;
|
||||
}
|
||||
}
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetItemData(m_Attribute, true);
|
||||
}
|
||||
}
|
||||
public static AosElementAttribute RandomType()
|
||||
{
|
||||
return GetTypes(Utility.Random(5));
|
||||
}
|
||||
|
||||
public static AosElementAttribute GetTypes(int value)
|
||||
{
|
||||
switch( value )
|
||||
{
|
||||
case 0:
|
||||
return AosElementAttribute.Physical;
|
||||
case 1:
|
||||
return AosElementAttribute.Fire;
|
||||
case 2:
|
||||
return AosElementAttribute.Cold;
|
||||
case 3:
|
||||
return AosElementAttribute.Poison;
|
||||
default:
|
||||
return AosElementAttribute.Energy;
|
||||
}
|
||||
}
|
||||
|
||||
public static int GetItemData(AosElementAttribute element, bool label)
|
||||
{
|
||||
switch( element )
|
||||
{
|
||||
case AosElementAttribute.Physical:
|
||||
return (label) ? 1071091 : 0; // Earring of Protection (Physical) 1071091
|
||||
case AosElementAttribute.Fire:
|
||||
return (label) ? 1071092 : 0x4ec; // Earring of Protection (Fire) 1071092
|
||||
case AosElementAttribute.Cold:
|
||||
return (label) ? 1071093 : 0x4f2; // Earring of Protection (Cold) 1071093
|
||||
case AosElementAttribute.Poison:
|
||||
return (label) ? 1071094 : 0x4f8; // Earring of Protection (Poison) 1071094
|
||||
case AosElementAttribute.Energy:
|
||||
return (label) ? 1071095 : 0x4fe; // Earring of Protection (Energy) 1071095
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
writer.Write((int)m_Attribute);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
m_Attribute = (AosElementAttribute)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
43
Scripts/Items/Artifacts/Equipment/Jewelry/EssenceOfBattle.cs
Normal file
43
Scripts/Items/Artifacts/Equipment/Jewelry/EssenceOfBattle.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EssenceOfBattle : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public EssenceOfBattle()
|
||||
{
|
||||
Hue = 0x550;
|
||||
Attributes.BonusDex = 7;
|
||||
Attributes.BonusStr = 7;
|
||||
Attributes.WeaponDamage = 30;
|
||||
}
|
||||
|
||||
public EssenceOfBattle(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1072935;
|
||||
}
|
||||
}// Essence of Battle
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Scripts/Items/Artifacts/Equipment/Jewelry/JadeArmband.cs
Normal file
40
Scripts/Items/Artifacts/Equipment/Jewelry/JadeArmband.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class JadeArmband : GoldBracelet
|
||||
{
|
||||
public override int LabelNumber { get { return 1112407; } } //Jade Armband [Replica]
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
public override int InitMinHits { get { return 150; } }
|
||||
public override int InitMaxHits { get { return 150; } }
|
||||
|
||||
[Constructable]
|
||||
public JadeArmband()
|
||||
{
|
||||
Hue = 2126;
|
||||
Attributes.AttackChance = 10;
|
||||
Attributes.DefendChance = 10;
|
||||
Attributes.WeaponSpeed = 5;
|
||||
Resistances.Poison = 20;
|
||||
}
|
||||
|
||||
public JadeArmband( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Scripts/Items/Artifacts/Equipment/Jewelry/Lavaliere.cs
Normal file
39
Scripts/Items/Artifacts/Equipment/Jewelry/Lavaliere.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Lavaliere : GoldNecklace
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1114843; } } // Lavaliere
|
||||
|
||||
[Constructable]
|
||||
public Lavaliere()
|
||||
{
|
||||
Hue = 1194;
|
||||
AbsorptionAttributes.EaterKinetic = 20;
|
||||
Attributes.DefendChance = 10;
|
||||
Resistances.Physical = 15;
|
||||
Attributes.LowerManaCost = 10;
|
||||
Attributes.LowerRegCost = 20;
|
||||
}
|
||||
|
||||
public Lavaliere(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
35
Scripts/Items/Artifacts/Equipment/Jewelry/LuckyNecklace.cs
Normal file
35
Scripts/Items/Artifacts/Equipment/Jewelry/LuckyNecklace.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LuckyNecklace : BaseJewel
|
||||
{
|
||||
public override int LabelNumber { get { return 1075239; } } //Lucky Necklace
|
||||
|
||||
[Constructable]
|
||||
public LuckyNecklace()
|
||||
: base(0x1088, Layer.Neck)
|
||||
{
|
||||
Hue = 1150;
|
||||
Attributes.Luck = 200;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public LuckyNecklace(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);
|
||||
reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
144
Scripts/Items/Artifacts/Equipment/Jewelry/MuseumJewlery.cs
Normal file
144
Scripts/Items/Artifacts/Equipment/Jewelry/MuseumJewlery.cs
Normal file
@@ -0,0 +1,144 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class VesperCollectionRing : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public VesperCollectionRing()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public VesperCollectionRing(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1073234;
|
||||
}
|
||||
}// A Souvenir from the 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 VesperCollectionNecklace : GoldNecklace
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public VesperCollectionNecklace()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public VesperCollectionNecklace(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1073234;
|
||||
}
|
||||
}// A Souvenir from the 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 VesperCollectionBracelet : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public VesperCollectionBracelet()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public VesperCollectionBracelet(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1073234;
|
||||
}
|
||||
}// A Souvenir from the 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 VesperCollectionEarrings : GoldEarrings
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public VesperCollectionEarrings()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public VesperCollectionEarrings(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1073234;
|
||||
}
|
||||
}// A Souvenir from the 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class NecklaceofDiligence : SilverNecklace
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public NecklaceofDiligence()
|
||||
{
|
||||
Hue = 221;
|
||||
Attributes.RegenMana = 1;
|
||||
Attributes.BonusInt = 5;
|
||||
}
|
||||
|
||||
public NecklaceofDiligence(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1113137;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ObsidianEarrings : GargishEarrings
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1113820; } } // Obsidian Earrings
|
||||
|
||||
public override int BasePhysicalResistance { get { return 4; } }
|
||||
public override int BaseFireResistance { get { return 10; } }
|
||||
public override int BaseColdResistance { get { return 10; } }
|
||||
public override int BasePoisonResistance { get { return 3; } }
|
||||
public override int BaseEnergyResistance { get { return 13; } }
|
||||
|
||||
[Constructable]
|
||||
public ObsidianEarrings()
|
||||
{
|
||||
Attributes.BonusMana = 8;
|
||||
Attributes.RegenMana = 2;
|
||||
Attributes.RegenStam = 2;
|
||||
Attributes.SpellDamage = 8;
|
||||
AbsorptionAttributes.CastingFocus = 4;
|
||||
}
|
||||
|
||||
public ObsidianEarrings(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int InitMinHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override int InitMaxHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override bool CanBeWornByGargoyles
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override Race RequiredRace
|
||||
{
|
||||
get
|
||||
{
|
||||
return Race.Gargoyle;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class OrnamentOfTheMagician : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public OrnamentOfTheMagician()
|
||||
{
|
||||
Hue = 0x554;
|
||||
Attributes.CastRecovery = 3;
|
||||
Attributes.CastSpeed = 2;
|
||||
Attributes.LowerManaCost = 10;
|
||||
Attributes.LowerRegCost = 20;
|
||||
Resistances.Energy = 15;
|
||||
}
|
||||
|
||||
public OrnamentOfTheMagician(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1061105;
|
||||
}
|
||||
}// Ornament of the Magician
|
||||
public override int ArtifactRarity
|
||||
{
|
||||
get
|
||||
{
|
||||
return 11;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PendantOfTheMagi : GoldNecklace
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public PendantOfTheMagi()
|
||||
{
|
||||
Hue = 0x48D;
|
||||
Attributes.BonusInt = 10;
|
||||
Attributes.RegenMana = 3;
|
||||
Attributes.SpellDamage = 5;
|
||||
Attributes.LowerManaCost = 10;
|
||||
Attributes.LowerRegCost = 30;
|
||||
}
|
||||
|
||||
public PendantOfTheMagi(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1072937;
|
||||
}
|
||||
}// Pendant of the Magi
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PetrifiedMatriarchsTongue : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1115776; } } // Petrified Matriarch's Tongue
|
||||
|
||||
public override int InitMinHits { get { return 255; } }
|
||||
public override int InitMaxHits { get { return 255; } }
|
||||
|
||||
[Constructable]
|
||||
public PetrifiedMatriarchsTongue()
|
||||
{
|
||||
Hue = 2006; //TODO: get proper hue, this is a guess
|
||||
Attributes.RegenMana = 2;
|
||||
Attributes.AttackChance = 10;
|
||||
Attributes.CastSpeed = 1;
|
||||
Attributes.CastRecovery = 2;
|
||||
Attributes.LowerManaCost = 4;
|
||||
Resistances.Poison = 5;
|
||||
}
|
||||
|
||||
public PetrifiedMatriarchsTongue(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
41
Scripts/Items/Artifacts/Equipment/Jewelry/ReginasRing.cs
Normal file
41
Scripts/Items/Artifacts/Equipment/Jewelry/ReginasRing.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ReginasRing : SilverRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public ReginasRing()
|
||||
: base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public ReginasRing(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1075305;
|
||||
}
|
||||
}// Regina's Ring
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ResilientBracer : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public ResilientBracer()
|
||||
{
|
||||
Hue = 0x488;
|
||||
SkillBonuses.SetValues(0, SkillName.MagicResist, 15.0);
|
||||
Attributes.BonusHits = 5;
|
||||
Attributes.RegenHits = 2;
|
||||
Attributes.DefendChance = 10;
|
||||
}
|
||||
|
||||
public ResilientBracer(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1072933;
|
||||
}
|
||||
}// Resillient Bracer
|
||||
public override int PhysicalResistance
|
||||
{
|
||||
get
|
||||
{
|
||||
return 20;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RingOfTheElements : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public RingOfTheElements()
|
||||
{
|
||||
Hue = 0x4E9;
|
||||
Attributes.Luck = 100;
|
||||
Resistances.Fire = 16;
|
||||
Resistances.Cold = 16;
|
||||
Resistances.Poison = 16;
|
||||
Resistances.Energy = 16;
|
||||
}
|
||||
|
||||
public RingOfTheElements(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1061104;
|
||||
}
|
||||
}// Ring of the Elements
|
||||
public override int ArtifactRarity
|
||||
{
|
||||
get
|
||||
{
|
||||
return 11;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
43
Scripts/Items/Artifacts/Equipment/Jewelry/RingOfTheSavant.cs
Normal file
43
Scripts/Items/Artifacts/Equipment/Jewelry/RingOfTheSavant.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RingOfTheSavant : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public RingOfTheSavant()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Attributes.BonusInt = 3;
|
||||
Attributes.CastRecovery = 1;
|
||||
Attributes.CastSpeed = 1;
|
||||
}
|
||||
|
||||
public RingOfTheSavant(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1077608;
|
||||
}
|
||||
}// Ring of the Savant
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
51
Scripts/Items/Artifacts/Equipment/Jewelry/RingOfTheVile.cs
Normal file
51
Scripts/Items/Artifacts/Equipment/Jewelry/RingOfTheVile.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RingOfTheVile : GoldRing
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
[Constructable]
|
||||
public RingOfTheVile()
|
||||
{
|
||||
Hue = 0x4F7;
|
||||
Attributes.BonusDex = 8;
|
||||
Attributes.RegenStam = 6;
|
||||
Attributes.AttackChance = 15;
|
||||
Resistances.Poison = 20;
|
||||
}
|
||||
|
||||
public RingOfTheVile(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1061102;
|
||||
}
|
||||
}// Ring of the Vile
|
||||
public override int ArtifactRarity
|
||||
{
|
||||
get
|
||||
{
|
||||
return 11;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TokenOfHolyFavor : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1113652; } } // Token of Holy Favor
|
||||
|
||||
[Constructable]
|
||||
public TokenOfHolyFavor()
|
||||
{
|
||||
Hue = 96;
|
||||
Attributes.BonusHits = 5;
|
||||
Attributes.CastRecovery = 2;
|
||||
Attributes.CastSpeed = 1;
|
||||
Attributes.DefendChance = 10;
|
||||
Attributes.AttackChance = 10;
|
||||
Attributes.SpellDamage = 4;
|
||||
Resistances.Cold = 5;
|
||||
Resistances.Poison = 5;
|
||||
}
|
||||
|
||||
public TokenOfHolyFavor(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TorcOfTheGuardians : GoldNecklace
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1113721; } } // Torc of the Guardians
|
||||
|
||||
[Constructable]
|
||||
public TorcOfTheGuardians()
|
||||
{
|
||||
Hue = 1837;
|
||||
Attributes.BonusInt = 5;
|
||||
Attributes.BonusStr = 5;
|
||||
Attributes.BonusDex = 5;
|
||||
Attributes.RegenStam = 2;
|
||||
Attributes.RegenMana = 2;
|
||||
Attributes.LowerManaCost = 5;
|
||||
Resistances.Physical = 5;
|
||||
Resistances.Fire = 5;
|
||||
Resistances.Cold = 5;
|
||||
Resistances.Poison = 5;
|
||||
Resistances.Energy = 5;
|
||||
}
|
||||
|
||||
public TorcOfTheGuardians(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int InitMinHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override int InitMaxHits
|
||||
{
|
||||
get
|
||||
{
|
||||
return 255;
|
||||
}
|
||||
}
|
||||
public override Race RequiredRace
|
||||
{
|
||||
get
|
||||
{
|
||||
return Race.Gargoyle;
|
||||
}
|
||||
}
|
||||
public override bool CanBeWornByGargoyles
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
37
Scripts/Items/Artifacts/Equipment/Jewelry/Venom.cs
Normal file
37
Scripts/Items/Artifacts/Equipment/Jewelry/Venom.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Venom : GoldBracelet
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
public override int LabelNumber { get { return 1114783; } } // Venom
|
||||
|
||||
[Constructable]
|
||||
public Venom()
|
||||
{
|
||||
Hue = 1371;
|
||||
Attributes.CastRecovery = 1;
|
||||
Attributes.CastSpeed = 2;
|
||||
Attributes.SpellDamage = 10;
|
||||
Resistances.Poison = 20;
|
||||
}
|
||||
|
||||
public Venom(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user