Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BlackPowder : Item, ICommodity
|
||||
{
|
||||
public override int LabelNumber { get { return 1095826; } } // black powder
|
||||
|
||||
TextDefinition ICommodity.Description { get { return LabelNumber; } }
|
||||
bool ICommodity.IsDeedable { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BlackPowder()
|
||||
: this(1)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BlackPowder(int amount)
|
||||
: base(0x423A)
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
Hue = 1109;
|
||||
}
|
||||
|
||||
public BlackPowder(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,45 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Charcoal : Item, ICommodity
|
||||
{
|
||||
public override int LabelNumber { get { return 1116303; } } // charcoal
|
||||
|
||||
TextDefinition ICommodity.Description { get { return LabelNumber; } }
|
||||
bool ICommodity.IsDeedable { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public Charcoal()
|
||||
: this(1)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Charcoal(int amount)
|
||||
: base(0x423A)
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
Hue = 1190;
|
||||
}
|
||||
|
||||
public Charcoal(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,178 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MentoSeasoning : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116299; } }
|
||||
|
||||
[Constructable]
|
||||
public MentoSeasoning()
|
||||
: base(2454)
|
||||
{
|
||||
Hue = 95;
|
||||
}
|
||||
|
||||
public MentoSeasoning(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();
|
||||
}
|
||||
}
|
||||
|
||||
public class SamuelsSecretSauce : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116338; } }
|
||||
|
||||
[Constructable]
|
||||
public SamuelsSecretSauce() : base(2463)
|
||||
{
|
||||
Hue = 1461;
|
||||
}
|
||||
|
||||
public SamuelsSecretSauce(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();
|
||||
}
|
||||
}
|
||||
|
||||
public class DarkTruffle : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116300; } }
|
||||
|
||||
[Constructable]
|
||||
public DarkTruffle()
|
||||
: base(3352)
|
||||
{
|
||||
Hue = 1908;
|
||||
}
|
||||
|
||||
public DarkTruffle(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();
|
||||
}
|
||||
}
|
||||
|
||||
public class FreshGinger : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1031235; } }
|
||||
|
||||
[Constructable]
|
||||
public FreshGinger()
|
||||
: base(11235)
|
||||
{
|
||||
}
|
||||
|
||||
public FreshGinger(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();
|
||||
}
|
||||
}
|
||||
|
||||
public class FishOilFlask : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1150863; } }
|
||||
|
||||
[Constructable]
|
||||
public FishOilFlask()
|
||||
: base(7192)
|
||||
{
|
||||
Hue = 2404;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if(IsChildOf(from.Backpack))
|
||||
from.Target = new InternalTarget(this);
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private FishOilFlask m_Flask;
|
||||
|
||||
public InternalTarget(FishOilFlask flask) : base(-1, false, TargetFlags.None)
|
||||
{
|
||||
m_Flask = flask;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (targeted is OracleOfTheSea)
|
||||
{
|
||||
if (((OracleOfTheSea)targeted).UsesRemaining >= 5)
|
||||
from.SendMessage("That is already fully charged!");
|
||||
else
|
||||
{
|
||||
((OracleOfTheSea)targeted).UsesRemaining = 5;
|
||||
from.SendMessage("You charge the oracle with the fish oil.");
|
||||
m_Flask.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public FishOilFlask(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,39 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Matchcord : Item, ICommodity
|
||||
{
|
||||
public override int LabelNumber { get { return 1095184; } }
|
||||
|
||||
TextDefinition ICommodity.Description { get { return LabelNumber; } }
|
||||
bool ICommodity.IsDeedable { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public Matchcord() : this(1) { }
|
||||
|
||||
[Constructable]
|
||||
public Matchcord(int amount)
|
||||
: base(5153)
|
||||
{
|
||||
Hue = 1171;
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public Matchcord(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
211
Scripts/Services/Expansions/High Seas/Items/Resources/Niter.cs
Normal file
211
Scripts/Services/Expansions/High Seas/Items/Resources/Niter.cs
Normal file
@@ -0,0 +1,211 @@
|
||||
using System;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
using Server.Engines.Harvest;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
|
||||
public class NiterDeposit : Item
|
||||
{
|
||||
public enum NiterSize
|
||||
{
|
||||
Gigantic = 1,
|
||||
Massive,
|
||||
Huge,
|
||||
Large,
|
||||
Small
|
||||
}
|
||||
|
||||
private NiterSize m_Size;
|
||||
private int m_Hits;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Hits
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Hits;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Hits = value;
|
||||
InvalidateSize();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public NiterSize Size
|
||||
{
|
||||
get { return m_Size; }
|
||||
set
|
||||
{
|
||||
m_Size = value;
|
||||
InvalidateID();
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Decays { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public NiterDeposit() : this(Utility.RandomMinMax(1, 5))
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public NiterDeposit(int size)
|
||||
{
|
||||
if (size < 1) size = 1;
|
||||
if (size > 5) size = 5;
|
||||
|
||||
m_Hits = 40 * size;
|
||||
InvalidateSize();
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public void OnMine(Mobile from, Item tool)
|
||||
{
|
||||
if (tool is IUsesRemaining && ((IUsesRemaining)tool).UsesRemaining < 1)
|
||||
return;
|
||||
|
||||
from.Direction = from.GetDirectionTo(this.Location);
|
||||
from.Animate(11, 5, 1, true, false, 0);
|
||||
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(1), new TimerStateCallback(DoMine), new object[] { from, tool });
|
||||
}
|
||||
|
||||
public void DoMine(object obj)
|
||||
{
|
||||
object[] os = (object[])obj;
|
||||
Mobile from = (Mobile)os[0];
|
||||
Item tool = (Item)os[1];
|
||||
|
||||
if (from != null && from.CheckSkill(SkillName.Mining, 60.0, 100.0))
|
||||
{
|
||||
Container pack = from.Backpack;
|
||||
int count = 1;
|
||||
|
||||
if (from.Skills[SkillName.Mining].Value > 100 && Utility.RandomBool())
|
||||
count++;
|
||||
|
||||
from.SendLocalizedMessage(1149924, count.ToString()); //You extract ~1_COUNT~ saltpeter from the niter deposit.
|
||||
Saltpeter sp = new Saltpeter(count);
|
||||
|
||||
if (pack == null || !pack.TryDropItem(from, sp, false))
|
||||
sp.MoveToWorld(from.Location, from.Map);
|
||||
|
||||
Hits--;
|
||||
|
||||
from.PlaySound(Utility.RandomMinMax(0x125, 0x126));
|
||||
CheckTool(tool);
|
||||
|
||||
if (m_Hits <= 0)
|
||||
{
|
||||
from.SendMessage("You have mined the last of the niter deposit.");
|
||||
Delete();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage(1149923); //You mine the niter deposit but fail to produce any usable saltpeter.
|
||||
}
|
||||
|
||||
public void CheckTool(Item tool)
|
||||
{
|
||||
if (tool != null && tool is IUsesRemaining)
|
||||
{
|
||||
IUsesRemaining toolWithUses = (IUsesRemaining)tool;
|
||||
|
||||
toolWithUses.ShowUsesRemaining = true;
|
||||
|
||||
if (toolWithUses.UsesRemaining > 0)
|
||||
--toolWithUses.UsesRemaining;
|
||||
|
||||
if (toolWithUses.UsesRemaining < 1)
|
||||
tool.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
public void InvalidateSize()
|
||||
{
|
||||
if (m_Hits > 160)
|
||||
Size = NiterSize.Gigantic;
|
||||
else if (m_Hits > 120)
|
||||
Size = NiterSize.Massive;
|
||||
else if (m_Hits > 80)
|
||||
Size = NiterSize.Huge;
|
||||
else if (m_Hits > 40)
|
||||
Size = NiterSize.Large;
|
||||
else
|
||||
Size = NiterSize.Small;
|
||||
}
|
||||
|
||||
public void InvalidateID()
|
||||
{
|
||||
switch (m_Size)
|
||||
{
|
||||
default:
|
||||
case NiterSize.Gigantic: ItemID = 4962; break;
|
||||
case NiterSize.Massive: ItemID = 4961; break;
|
||||
case NiterSize.Huge: ItemID = 4967; break;
|
||||
case NiterSize.Large: ItemID = 4964; break;
|
||||
case NiterSize.Small: ItemID = 4965; break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddNameProperty(ObjectPropertyList list)
|
||||
{
|
||||
list.Add(1149912, m_Size.ToString());
|
||||
}
|
||||
|
||||
public static bool HasBeenChecked(HarvestBank bank)
|
||||
{
|
||||
if (m_BankTable.ContainsKey(bank) && m_BankTable[bank] < DateTime.UtcNow)
|
||||
m_BankTable.Remove(bank);
|
||||
|
||||
return m_BankTable.ContainsKey(bank);
|
||||
}
|
||||
|
||||
private static Dictionary<HarvestBank, DateTime> m_BankTable = new Dictionary<HarvestBank, DateTime>();
|
||||
|
||||
public static void AddBank(HarvestBank bank)
|
||||
{
|
||||
if (bank == null)
|
||||
return;
|
||||
|
||||
m_BankTable[bank] = DateTime.UtcNow + TimeSpan.FromMinutes(5);
|
||||
}
|
||||
|
||||
public void DefragBanks()
|
||||
{
|
||||
List<HarvestBank> toRemove = new List<HarvestBank>();
|
||||
|
||||
foreach (KeyValuePair<HarvestBank, DateTime> kvp in m_BankTable)
|
||||
if (kvp.Value < DateTime.UtcNow)
|
||||
toRemove.Add(kvp.Key);
|
||||
|
||||
foreach (HarvestBank bank in toRemove)
|
||||
m_BankTable.Remove(bank);
|
||||
}
|
||||
|
||||
public NiterDeposit(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
writer.Write(m_Hits);
|
||||
writer.Write((int)m_Size);
|
||||
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(30), new TimerCallback(DefragBanks));
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_Hits = reader.ReadInt();
|
||||
m_Size = (NiterSize)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Potash : Item, ICommodity
|
||||
{
|
||||
public override int LabelNumber { get { return 1116319; } } // potash
|
||||
|
||||
TextDefinition ICommodity.Description { get { return LabelNumber; } }
|
||||
bool ICommodity.IsDeedable { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public Potash()
|
||||
: this(1)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Potash(int amount)
|
||||
: base(0x423A)
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
Hue = 1102;
|
||||
}
|
||||
|
||||
public Potash(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,45 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Saltpeter : Item, ICommodity
|
||||
{
|
||||
public override int LabelNumber { get { return 1116302; } } // saltpeter
|
||||
|
||||
TextDefinition ICommodity.Description { get { return LabelNumber; } }
|
||||
bool ICommodity.IsDeedable { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public Saltpeter()
|
||||
: this(1)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Saltpeter(int count)
|
||||
: base(0x423A)
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = count;
|
||||
Hue = 1150;
|
||||
}
|
||||
|
||||
public Saltpeter(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