Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
47
Scripts/Services/BulkOrders/Items/BODRewardTitleDeed.cs
Normal file
47
Scripts/Services/BulkOrders/Items/BODRewardTitleDeed.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BODRewardTitleDeed : BaseRewardTitleDeed
|
||||
{
|
||||
public override int LabelNumber { get { return 1155604; } } // A Deed for a Reward Title
|
||||
public override TextDefinition Title { get { return _Title; } }
|
||||
|
||||
private TextDefinition _Title;
|
||||
|
||||
[Constructable]
|
||||
public BODRewardTitleDeed(int title)
|
||||
{
|
||||
_Title = new TextDefinition(1157181 + title);
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1114057, Title.ToString()); // ~1_NOTHING~
|
||||
}
|
||||
|
||||
public BODRewardTitleDeed(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
|
||||
TextDefinition.Serialize(writer, _Title);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int v = reader.ReadInt();
|
||||
|
||||
_Title = TextDefinition.Deserialize(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
45
Scripts/Services/BulkOrders/Items/DrSpectorsLenses.cs
Normal file
45
Scripts/Services/BulkOrders/Items/DrSpectorsLenses.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DrSpectorsLenses : Glasses
|
||||
{
|
||||
public override int LabelNumber { get { return 1156991; } } // Dr. Spector's lenses
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public DrSpectorsLenses()
|
||||
{
|
||||
Attributes.BonusInt = 8;
|
||||
Attributes.RegenMana = 4;
|
||||
Attributes.SpellDamage = 12;
|
||||
Attributes.LowerManaCost = 8;
|
||||
Attributes.LowerRegCost = 10;
|
||||
}
|
||||
|
||||
public override int BasePhysicalResistance { get { return 5; } }
|
||||
public override int BaseFireResistance { get { return 10; } }
|
||||
public override int BaseColdResistance { get { return 14; } }
|
||||
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 DrSpectorsLenses(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
456
Scripts/Services/BulkOrders/Items/FementationBarrel.cs
Normal file
456
Scripts/Services/BulkOrders/Items/FementationBarrel.cs
Normal file
@@ -0,0 +1,456 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.ContextMenus;
|
||||
using System.Collections.Generic;
|
||||
using Server.Gumps;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum FruitType
|
||||
{
|
||||
None,
|
||||
Grape,
|
||||
Apple,
|
||||
Peach,
|
||||
Pear,
|
||||
Plum
|
||||
}
|
||||
|
||||
[FlipableAttribute(0x9E36, 0x9E37)]
|
||||
public class FermentationBarrel : Item
|
||||
{
|
||||
private static readonly int MinFruit = 20;
|
||||
private static readonly int MaxFruit = 80;
|
||||
|
||||
private FruitType _FruitType;
|
||||
private int _Fruit;
|
||||
private int _BacterialResistance;
|
||||
|
||||
private bool _Fermenting;
|
||||
private DateTime _FermentingEnds;
|
||||
|
||||
private bool _Fermented;
|
||||
private bool _BadBatch;
|
||||
private int _BottlesRemaining;
|
||||
public string _Vintage;
|
||||
|
||||
public Mobile _Maker;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public FruitType FruitType { get { return _FruitType; } set { _FruitType = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Fruit { get { return _Fruit; } set { _Fruit = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int BacterialResistance { get { return _BacterialResistance; } set { _BacterialResistance = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Fermenting { get { return _Fermenting; } set { _Fermenting = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime FermentingEnds { get { return _FermentingEnds; } set { _FermentingEnds = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Fermented { get { return _Fermented; } set { _Fermented = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool BadBatch { get { return _BadBatch; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int BottlesRemaining { get { return _BottlesRemaining; } set { _BottlesRemaining = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public string Vintage { get { return _Vintage; } set { _Vintage = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Maker { get { return _Maker; } set { _Maker = value; } }
|
||||
|
||||
public bool HasYeast { get { return _BacterialResistance > 0; } }
|
||||
|
||||
public override int LabelNumber { get { return 1124526; } } // Fermentation Barrel
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get
|
||||
{
|
||||
if (BottlesRemaining <= 0)
|
||||
return 1.0;
|
||||
|
||||
return (double)BottlesRemaining;
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FermentationBarrel()
|
||||
: base(0x9E36)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (from.InRange(this.GetWorldLocation(), 2))
|
||||
{
|
||||
if (_Fermenting && _FermentingEnds < DateTime.UtcNow)
|
||||
{
|
||||
_Fermented = true;
|
||||
|
||||
int skill = (int)((from.Skills[SkillName.Cooking].Value + from.Skills[SkillName.Alchemy].Value) / 2);
|
||||
|
||||
skill *= _BacterialResistance / 4;
|
||||
|
||||
_BadBatch = skill < Utility.Random(225);
|
||||
|
||||
if (!_BadBatch)
|
||||
{
|
||||
BottlesRemaining = _Fruit / 4;
|
||||
}
|
||||
}
|
||||
|
||||
if (_Fermented)
|
||||
{
|
||||
if (_BadBatch)
|
||||
{
|
||||
from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1157258, from.NetState); // *You gently taste the fermentation...it's spoiled! You should probably empty the barrel*
|
||||
}
|
||||
else if (_BottlesRemaining > 0)
|
||||
{
|
||||
BottleOfWine bottle = new BottleOfWine(_FruitType, _Vintage, _Maker);
|
||||
|
||||
if (from.Backpack != null && from.Backpack.TryDropItem(from, bottle, false))
|
||||
{
|
||||
from.PlaySound(0x240);
|
||||
from.SendMessage("You pour the wine into a bottle and place it in your backpack.");
|
||||
|
||||
BottlesRemaining--;
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(500720); // You don't have enough room in your backpack!
|
||||
bottle.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override bool OnDragDrop(Mobile from, Item dropped)
|
||||
{
|
||||
if (_Fermented)
|
||||
{
|
||||
from.SendLocalizedMessage(1157245); // The fermentation barrel is not empty. Empty it first to add fruit and yeast.
|
||||
}
|
||||
else if (_Fermenting)
|
||||
{
|
||||
from.SendLocalizedMessage(1157244); // You may not add anything to the fermentation barrel after fermentation has begun.
|
||||
}
|
||||
else if (dropped is Yeast)
|
||||
{
|
||||
if (HasYeast)
|
||||
{
|
||||
from.SendLocalizedMessage(1157256); // You have already added yeast to the barrel.
|
||||
}
|
||||
else
|
||||
{
|
||||
BacterialResistance = ((Yeast)dropped).BacterialResistance;
|
||||
dropped.Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FruitType type = GetFruitType(dropped.GetType());
|
||||
|
||||
if (_FruitType != FruitType.None && _FruitType != type)
|
||||
{
|
||||
from.SendLocalizedMessage(1157243); // You may only put one type of fruit in the fermentation barrel at one time. Empty the barrel first.
|
||||
}
|
||||
else if (type != FruitType.None)
|
||||
{
|
||||
if (_FruitType == FruitType.None)
|
||||
_FruitType = type;
|
||||
|
||||
if (_Fruit + dropped.Amount <= MaxFruit)
|
||||
{
|
||||
Fruit += dropped.Amount;
|
||||
dropped.Delete();
|
||||
}
|
||||
else
|
||||
{
|
||||
dropped.Amount -= MaxFruit - _Fruit;
|
||||
Fruit = MaxFruit;
|
||||
}
|
||||
}
|
||||
else if (!(dropped is Yeast))
|
||||
{
|
||||
from.SendLocalizedMessage(1157246); // You may only put fruit and yeast in the fermentation barrel.
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (_Vintage != null)
|
||||
{
|
||||
list.Add(1157254, _Vintage); // <BASEFONT COLOR=#0099cc>~1_VAL~<BASEFONT COLOR=#FFFFFF>
|
||||
}
|
||||
|
||||
if (_FruitType != FruitType.None)
|
||||
{
|
||||
list.Add(1157248 + (int)_FruitType);
|
||||
}
|
||||
|
||||
if (_Fermented)
|
||||
{
|
||||
list.Add(1157259, _BottlesRemaining.ToString()); // Bottles Remaining: ~1_VAL~
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> entries)
|
||||
{
|
||||
base.GetContextMenuEntries(from, entries);
|
||||
|
||||
entries.Add(new SimpleContextMenuEntry(from, 1157231, m => // Begin Fermentation
|
||||
{
|
||||
if (_Fermenting)
|
||||
{
|
||||
m.SendLocalizedMessage(1157237); // The fermentation process has already begun.
|
||||
}
|
||||
else if (!HasYeast || _Fruit < MinFruit)
|
||||
{
|
||||
m.SendLocalizedMessage(1157255); // You do not have enough fruit or yeast to begin fermentation.
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendGump(new ConfirmCallbackGump(m as PlayerMobile, 1157234, 1157240, null, confirm: StartFermentation, close: CancelFermentation)); // Are you sure you wish to start the fermentation process?
|
||||
}
|
||||
}, 3, !_Fermented && (HasYeast || _Fruit > 0)));
|
||||
|
||||
entries.Add(new SimpleContextMenuEntry(from, 1157232, m => // Empty Barrel
|
||||
{
|
||||
m.SendGump(new ConfirmCallbackGump(m as PlayerMobile, 1157234, 1157235, null, confirm: DoEmpty)); // Are you sure you wish to end the fermentation process? All progress and materials will be lost!
|
||||
}, 3, HasYeast || _Fruit > 0));
|
||||
|
||||
entries.Add(new SimpleContextMenuEntry(from, 1157233, m => // Rename Vintage
|
||||
{
|
||||
if (_Fermenting)
|
||||
{
|
||||
m.SendLocalizedMessage(1157238); // You may not rename the vintage once the fermentation process has begun.
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendLocalizedMessage(1157242); // What do you wish to call this vintage?
|
||||
m.BeginPrompt((mob, text) =>
|
||||
{
|
||||
if (text != null)
|
||||
{
|
||||
text = text.Trim();
|
||||
text = Utility.FixHtml(text);
|
||||
|
||||
if (text.Length > 15 || !Server.Guilds.BaseGuildGump.CheckProfanity(text))
|
||||
{
|
||||
mob.SendMessage("That label is unacceptable. Please try again.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Vintage = text;
|
||||
}
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
}, 3, !_Fermented));
|
||||
}
|
||||
|
||||
private void StartFermentation(Mobile m, object state)
|
||||
{
|
||||
m.SendLocalizedMessage(1157239); // The fermentation process has begun.
|
||||
|
||||
_Fermenting = true;
|
||||
|
||||
_FermentingEnds = DateTime.UtcNow + TimeSpan.FromHours(24);
|
||||
}
|
||||
|
||||
private void CancelFermentation(Mobile m, object state)
|
||||
{
|
||||
m.SendLocalizedMessage(1157241); // The fermentation process has not been started.
|
||||
}
|
||||
|
||||
private void DoEmpty(Mobile m, object state)
|
||||
{
|
||||
m.SendLocalizedMessage(1157236); // You empty the contents of the barrel.
|
||||
|
||||
Reset();
|
||||
}
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
_FruitType = FruitType.None;
|
||||
_Fruit = 0;
|
||||
_BacterialResistance = 0;
|
||||
|
||||
_Fermenting = false;
|
||||
_FermentingEnds = DateTime.MinValue;
|
||||
|
||||
_Fermented = false;
|
||||
_BottlesRemaining = 0;
|
||||
_Vintage = null;
|
||||
|
||||
_Maker = null;
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
|
||||
private FruitType GetFruitType(Type t)
|
||||
{
|
||||
for(int i = 0; i < _FruitTypes.Length; i++)
|
||||
{
|
||||
foreach (var type in _FruitTypes[i])
|
||||
{
|
||||
if (type == t)
|
||||
return (FruitType)i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
return FruitType.None;
|
||||
}
|
||||
|
||||
private Type[][] _FruitTypes =
|
||||
{
|
||||
new Type[] { typeof(GrapeBunch), typeof(Grapes) },
|
||||
new Type[] { typeof(Apple) },
|
||||
new Type[] { typeof(Peach) },
|
||||
new Type[] { typeof(Pear) },
|
||||
new Type[] { typeof(Plum) }
|
||||
};
|
||||
|
||||
public FermentationBarrel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
|
||||
writer.Write((int)_FruitType);
|
||||
writer.Write(_Fruit);
|
||||
writer.Write(_BacterialResistance);
|
||||
|
||||
writer.Write(_Fermenting);
|
||||
writer.Write(_FermentingEnds);
|
||||
|
||||
writer.Write(_Fermented);
|
||||
writer.Write(_BadBatch);
|
||||
writer.Write(_BottlesRemaining);
|
||||
writer.Write(_Vintage);
|
||||
|
||||
writer.Write(_Maker);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
_FruitType = (FruitType)reader.ReadInt();
|
||||
_Fruit = reader.ReadInt();
|
||||
_BacterialResistance = reader.ReadInt();
|
||||
|
||||
_Fermenting = reader.ReadBool();
|
||||
_FermentingEnds = reader.ReadDateTime();
|
||||
|
||||
_Fermented = reader.ReadBool();
|
||||
_BadBatch = reader.ReadBool();
|
||||
_BottlesRemaining = reader.ReadInt();
|
||||
_Vintage = reader.ReadString();
|
||||
|
||||
_Maker = reader.ReadMobile();
|
||||
}
|
||||
}
|
||||
|
||||
public class BottleOfWine : BeverageBottle
|
||||
{
|
||||
private FruitType _FruitType;
|
||||
private string _Vintage;
|
||||
private Mobile _Maker;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public FruitType FruitType { get { return _FruitType; } set { _FruitType = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public string Vintage { get { return _Vintage; } set { _Vintage = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Maker { get { return _Maker; } set { _Maker = value; InvalidateProperties(); } }
|
||||
|
||||
[Constructable]
|
||||
public BottleOfWine()
|
||||
: this(FruitType.Grape, null, null)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BottleOfWine(FruitType type, string vintage, Mobile maker)
|
||||
: base(BeverageType.Wine)
|
||||
{
|
||||
Quantity = MaxQuantity;
|
||||
|
||||
_FruitType = type;
|
||||
_Vintage = vintage;
|
||||
_Maker = maker;
|
||||
}
|
||||
|
||||
public override void AddNameProperty(ObjectPropertyList list)
|
||||
{
|
||||
list.Add(1049519, String.Format("#{0}", (1157248 + (int)_FruitType).ToString())); // a bottle of ~1_DRINK_NAME~
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (_Vintage != null)
|
||||
{
|
||||
list.Add(1157254, _Vintage); // <BASEFONT COLOR=#0099cc>~1_VAL~<BASEFONT COLOR=#FFFFFF>
|
||||
}
|
||||
|
||||
if (_Maker != null)
|
||||
{
|
||||
list.Add(1150679, _Maker.Name); // Distiller: ~1_NAME~
|
||||
}
|
||||
|
||||
list.Add(GetQuantityDescription());
|
||||
}
|
||||
|
||||
public BottleOfWine(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
|
||||
writer.Write((int)_FruitType);
|
||||
writer.Write(_Vintage);
|
||||
writer.Write(_Maker);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
_FruitType = (FruitType)reader.ReadInt();
|
||||
_Vintage = reader.ReadString();
|
||||
_Maker = reader.ReadMobile();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GuaranteedSpellbookImprovementTalisman : BaseTalisman
|
||||
{
|
||||
[Constructable]
|
||||
public GuaranteedSpellbookImprovementTalisman()
|
||||
: this(10)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public GuaranteedSpellbookImprovementTalisman(int charges)
|
||||
: base(0x9E28)
|
||||
{
|
||||
Charges = charges;
|
||||
|
||||
Skill = TalismanSkill.Inscription;
|
||||
SuccessBonus = BaseTalisman.GetRandomSuccessful();
|
||||
ExceptionalBonus = BaseTalisman.GetRandomExceptional();
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (Charges > 0)
|
||||
list.Add(1049116, Charges.ToString()); // [ Charges: ~1_CHARGES~ ]
|
||||
|
||||
list.Add(1157212); // Crafting Failure Protection
|
||||
}
|
||||
|
||||
public GuaranteedSpellbookImprovementTalisman(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
80
Scripts/Services/BulkOrders/Items/KotlBlackRod.cs
Normal file
80
Scripts/Services/BulkOrders/Items/KotlBlackRod.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class KotlBlackRod : QuarterStaff
|
||||
{
|
||||
public override int LabelNumber { get { return 1156990; } } // kotl black rod
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public KotlBlackRod()
|
||||
{
|
||||
Hue = 1150;
|
||||
|
||||
WeaponAttributes.MageWeapon = 30;
|
||||
Attributes.SpellChanneling = 1;
|
||||
Attributes.CastSpeed = 2;
|
||||
Attributes.LowerManaCost = 5;
|
||||
Attributes.LowerRegCost = 10;
|
||||
}
|
||||
|
||||
public override int InitMinHits { get { return 255; } }
|
||||
public override int InitMaxHits { get { return 255; } }
|
||||
|
||||
public KotlBlackRod(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 GargishKotlBlackRod : GargishGnarledStaff
|
||||
{
|
||||
public override int LabelNumber { get { return 1156994; } } // gargish kotl black rod
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public GargishKotlBlackRod()
|
||||
{
|
||||
Hue = 1150;
|
||||
|
||||
WeaponAttributes.MageWeapon = 30;
|
||||
Attributes.SpellChanneling = 1;
|
||||
Attributes.CastSpeed = 2;
|
||||
Attributes.LowerManaCost = 5;
|
||||
Attributes.LowerRegCost = 10;
|
||||
}
|
||||
|
||||
public override int InitMinHits { get { return 255; } }
|
||||
public override int InitMaxHits { get { return 255; } }
|
||||
|
||||
public GargishKotlBlackRod(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Scripts/Services/BulkOrders/Items/MasterChefsApron.cs
Normal file
54
Scripts/Services/BulkOrders/Items/MasterChefsApron.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MasterChefsApron : FullApron
|
||||
{
|
||||
private int _Bonus;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Bonus { get { return _Bonus; } set { _Bonus = value; InvalidateProperties(); } }
|
||||
|
||||
public override int LabelNumber { get { return 1157228; } } // Master Chef's Apron
|
||||
|
||||
[Constructable]
|
||||
public MasterChefsApron()
|
||||
{
|
||||
Hue = 1990;
|
||||
|
||||
while(_Bonus == 0)
|
||||
_Bonus = BaseTalisman.GetRandomExceptional();
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1072395, "#{0}\t{1}", AosSkillBonuses.GetLabel(SkillName.Cooking), _Bonus); // ~1_NAME~ Exceptional Bonus: ~2_val~%
|
||||
}
|
||||
|
||||
public MasterChefsApron(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
|
||||
writer.Write(_Bonus);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
_Bonus = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Scripts/Services/BulkOrders/Items/MasterCraftsmanTalisman.cs
Normal file
82
Scripts/Services/BulkOrders/Items/MasterCraftsmanTalisman.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MasterCraftsmanTalisman : BaseTalisman
|
||||
{
|
||||
public override bool IsArtifact { get { return true; } }
|
||||
|
||||
private int _Type;
|
||||
public virtual int Type { get { return _Type; } }
|
||||
|
||||
[Constructable]
|
||||
public MasterCraftsmanTalisman(int charges, int itemID, TalismanSkill skill)
|
||||
: base(itemID)
|
||||
{
|
||||
Skill = skill;
|
||||
|
||||
SuccessBonus = GetRandomSuccessful();
|
||||
ExceptionalBonus = BaseTalisman.GetRandomExceptional();
|
||||
Blessed = GetRandomBlessed();
|
||||
|
||||
_Type = charges;
|
||||
Charges = charges;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1157213); // Crafting Failure Protection
|
||||
|
||||
if (Charges > 0)
|
||||
list.Add(1049116, Charges.ToString()); // [ Charges: ~1_CHARGES~ ]
|
||||
}
|
||||
|
||||
public MasterCraftsmanTalisman(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1157217;
|
||||
}
|
||||
}// MasterCraftsmanTalisman
|
||||
public override bool ForceShowName
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)1); // version
|
||||
|
||||
writer.Write(_Type);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
_Type = reader.ReadInt();
|
||||
break;
|
||||
case 0:
|
||||
_Type = 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
74
Scripts/Services/BulkOrders/Items/PlumTreeAddon.cs
Normal file
74
Scripts/Services/BulkOrders/Items/PlumTreeAddon.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PlumTreeAddon : BaseFruitTreeAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new PlumTreeAddonDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PlumTreeAddon()
|
||||
{
|
||||
AddComponent(new LocalizedAddonComponent(0x9E38, 1029965), 0, 0, 0);
|
||||
AddComponent(new LocalizedAddonComponent(0x9E39, 1029965), 0, 0, 0);
|
||||
}
|
||||
|
||||
public override Item Fruit
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Plum();
|
||||
}
|
||||
}
|
||||
|
||||
public PlumTreeAddon(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 PlumTreeAddonDeed : BaseAddonDeed
|
||||
{
|
||||
public override int LabelNumber { get { return 1157312; } } // Plum Tree
|
||||
public override BaseAddon Addon { get { return new PlumTreeAddon(); } }
|
||||
|
||||
[Constructable]
|
||||
public PlumTreeAddonDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PlumTreeAddonDeed(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
155
Scripts/Services/BulkOrders/Items/PowderOfFortKeg.cs
Normal file
155
Scripts/Services/BulkOrders/Items/PowderOfFortKeg.cs
Normal file
@@ -0,0 +1,155 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
using Server.Engines.Harvest;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PowderOfFortKeg : Item
|
||||
{
|
||||
private int _Charges;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Charges { get { return _Charges; } set { _Charges = value; InvalidateProperties(); } }
|
||||
|
||||
public override int LabelNumber { get { return 1157221; } } // A specially lined keg for powder of fortification.
|
||||
|
||||
[Constructable]
|
||||
public PowderOfFortKeg()
|
||||
: this(0)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public PowderOfFortKeg(int uses)
|
||||
: base(0x1940)
|
||||
{
|
||||
_Charges = uses;
|
||||
|
||||
Hue = 2419;
|
||||
this.Weight = 15.0;
|
||||
}
|
||||
|
||||
public override bool OnDragDrop(Mobile m, Item dropped)
|
||||
{
|
||||
if (dropped is PowderOfTemperament)
|
||||
{
|
||||
var powder = dropped as PowderOfTemperament;
|
||||
|
||||
if (_Charges < 250)
|
||||
{
|
||||
if (powder.UsesRemaining + _Charges > 250)
|
||||
{
|
||||
int add = 250 - _Charges;
|
||||
|
||||
powder.UsesRemaining -= add;
|
||||
|
||||
Charges = 250;
|
||||
}
|
||||
else
|
||||
{
|
||||
Charges += powder.UsesRemaining;
|
||||
powder.Delete();
|
||||
}
|
||||
|
||||
m.PlaySound(0x247);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (from.Backpack != null && IsChildOf(from.Backpack) && Charges > 0)
|
||||
{
|
||||
PowderOfTemperament powder = from.Backpack.FindItemByType(typeof(PowderOfTemperament)) as PowderOfTemperament;
|
||||
|
||||
if (powder != null)
|
||||
{
|
||||
powder.UsesRemaining++;
|
||||
Charges--;
|
||||
}
|
||||
else
|
||||
{
|
||||
powder = new PowderOfTemperament(1);
|
||||
|
||||
if (!from.Backpack.TryDropItem(from, powder, false))
|
||||
{
|
||||
from.SendLocalizedMessage(1080016); // That container cannot hold more weight.
|
||||
powder.Delete();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Charges--;
|
||||
}
|
||||
|
||||
from.PlaySound(0x247);
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1060584, _Charges.ToString());
|
||||
|
||||
int perc = (int)(((double)_Charges / 250) * 100);
|
||||
int number = 0;
|
||||
|
||||
if (perc <= 0)
|
||||
number = 502246; // The keg is empty.
|
||||
else if (perc < 5)
|
||||
number = 502248; // The keg is nearly empty.
|
||||
else if (perc < 20)
|
||||
number = 502249; // The keg is not very full.
|
||||
else if (perc < 30)
|
||||
number = 502250; // The keg is about one quarter full.
|
||||
else if (perc < 40)
|
||||
number = 502251; // The keg is about one third full.
|
||||
else if (perc < 47)
|
||||
number = 502252; // The keg is almost half full.
|
||||
else if (perc < 54)
|
||||
number = 502254; // The keg is approximately half full.
|
||||
else if (perc < 70)
|
||||
number = 502253; // The keg is more than half full.
|
||||
else if (perc < 80)
|
||||
number = 502255; // The keg is about three quarters full.
|
||||
else if (perc < 90)
|
||||
number = 502256; // The keg is very full.
|
||||
else if (perc < 100)
|
||||
number = 502257; // The liquid is almost to the top of the keg.
|
||||
else
|
||||
number = 502258; // The keg is completely full.
|
||||
|
||||
list.Add(number);
|
||||
}
|
||||
|
||||
public PowderOfFortKeg(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)1); // version
|
||||
|
||||
writer.Write(_Charges);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
_Charges = reader.ReadInt();
|
||||
|
||||
if (version == 0)
|
||||
ItemID = 0x1940;
|
||||
}
|
||||
}
|
||||
}
|
||||
51
Scripts/Services/BulkOrders/Items/RockHammer.cs
Normal file
51
Scripts/Services/BulkOrders/Items/RockHammer.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Engines.Harvest;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute(0x9E7E, 0x9E7F)]
|
||||
public class RockHammer : BaseHarvestTool
|
||||
{
|
||||
public override int LabelNumber { get { return 1124598; } }
|
||||
|
||||
[Constructable]
|
||||
public RockHammer()
|
||||
: this(500)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public RockHammer(int uses)
|
||||
: base(uses, 0x9E7E)
|
||||
{
|
||||
this.Weight = 5.0;
|
||||
}
|
||||
|
||||
public RockHammer(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override HarvestSystem HarvestSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return Mining.System;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
268
Scripts/Services/BulkOrders/Items/SpecialNaturalDye.cs
Normal file
268
Scripts/Services/BulkOrders/Items/SpecialNaturalDye.cs
Normal file
@@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using Server.Engines.Plants;
|
||||
using Server.Multis;
|
||||
using Server.Targeting;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum DyeType
|
||||
{
|
||||
None,
|
||||
WindAzul,
|
||||
DullRuby,
|
||||
PoppieWhite,
|
||||
ZentoOrchid,
|
||||
UmbranViolet
|
||||
}
|
||||
|
||||
public class SpecialNaturalDye : Item
|
||||
{
|
||||
private DyeType m_DyeType;
|
||||
private int m_UsesRemaining;
|
||||
private bool m_BooksOnly;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DyeType DyeType
|
||||
{
|
||||
get { return m_DyeType; }
|
||||
set
|
||||
{
|
||||
DyeType old = m_DyeType;
|
||||
m_DyeType = value;
|
||||
|
||||
if (m_DyeType != old)
|
||||
ValidateHue();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int UsesRemaining
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_UsesRemaining;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_UsesRemaining = value;
|
||||
this.InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool BooksOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_BooksOnly;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_BooksOnly = value;
|
||||
this.InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SpecialNaturalDye(DyeType type)
|
||||
: this(type, false)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SpecialNaturalDye(DyeType type, bool booksonly)
|
||||
: base(0x182B)
|
||||
{
|
||||
Weight = 1.0;
|
||||
DyeType = type;
|
||||
UsesRemaining = 5;
|
||||
|
||||
BooksOnly = booksonly;
|
||||
}
|
||||
|
||||
public void ValidateHue()
|
||||
{
|
||||
if (HueInfo.ContainsKey(this.DyeType))
|
||||
{
|
||||
Hue = HueInfo[this.DyeType].Item1;
|
||||
}
|
||||
}
|
||||
|
||||
public SpecialNaturalDye(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1112136;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool ForceShowProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
return ObjectPropertyList.Enabled;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1060584, this.m_UsesRemaining.ToString()); // uses remaining: ~1_val~
|
||||
|
||||
if (m_BooksOnly)
|
||||
list.Add(1157205); // Spellbook Only Dye
|
||||
}
|
||||
|
||||
public override void AddNameProperty(ObjectPropertyList list)
|
||||
{
|
||||
if (this.DyeType == DyeType.None)
|
||||
{
|
||||
base.AddNameProperty(list);
|
||||
}
|
||||
else if (this.Amount > 1)
|
||||
{
|
||||
list.Add(1113276, "{0}\t{1}", this.Amount, String.Format("#{0}", HueInfo[this.DyeType].Item2)); // ~1_AMOUNT~ ~2_COLOR~ natural dyes
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Add(1112137, String.Format("#{0}", HueInfo[this.DyeType].Item2)); // ~1_COLOR~ natural dye
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
|
||||
writer.Write((int)this.m_DyeType);
|
||||
writer.Write((int)this.m_UsesRemaining);
|
||||
writer.Write(m_BooksOnly);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
this.m_DyeType = (DyeType)reader.ReadInt();
|
||||
this.m_UsesRemaining = reader.ReadInt();
|
||||
this.m_BooksOnly = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
from.SendLocalizedMessage(1112139); // Select the item you wish to dye.
|
||||
from.Target = new InternalTarget(this);
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private readonly SpecialNaturalDye m_Item;
|
||||
|
||||
public InternalTarget(SpecialNaturalDye item)
|
||||
: base(1, false, TargetFlags.None)
|
||||
{
|
||||
this.m_Item = item;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (this.m_Item.Deleted)
|
||||
return;
|
||||
|
||||
Item item = targeted as Item;
|
||||
bool valid = false;
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
if (m_Item.BooksOnly && !(item is Spellbook))
|
||||
{
|
||||
valid = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
valid = (item is IDyable ||
|
||||
item is BaseBook || item is BaseClothing ||
|
||||
item is BaseJewel || item is BaseStatuette ||
|
||||
item is BaseWeapon || item is Runebook ||
|
||||
item is BaseTalisman || item is Spellbook ||
|
||||
item.IsArtifact || BasePigmentsOfTokuno.IsValidItem(item));
|
||||
|
||||
if (!valid && item is BaseArmor)
|
||||
{
|
||||
CraftResourceType restype = CraftResources.GetType(((BaseArmor)item).Resource);
|
||||
if ((CraftResourceType.Leather == restype || CraftResourceType.Metal == restype) &&
|
||||
ArmorMaterialType.Bone != ((BaseArmor)item).MaterialType)
|
||||
{
|
||||
valid = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!valid && FurnitureAttribute.Check(item))
|
||||
{
|
||||
if (!from.InRange(this.m_Item.GetWorldLocation(), 1) || !from.InRange(item.GetWorldLocation(), 1))
|
||||
{
|
||||
from.SendLocalizedMessage(500446); // That is too far away.
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt(item);
|
||||
|
||||
if (house == null || (!house.IsLockedDown(item) && !house.IsSecure(item)))
|
||||
{
|
||||
from.SendLocalizedMessage(501022); // Furniture must be locked down to paint it.
|
||||
return;
|
||||
}
|
||||
else if (!house.IsCoOwner(from))
|
||||
{
|
||||
from.SendLocalizedMessage(501023); // You must be the owner to use this item.
|
||||
return;
|
||||
}
|
||||
else
|
||||
valid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (valid)
|
||||
{
|
||||
item.Hue = m_Item.Hue;
|
||||
from.PlaySound(0x23E);
|
||||
|
||||
if (--this.m_Item.UsesRemaining > 0)
|
||||
this.m_Item.InvalidateProperties();
|
||||
else
|
||||
this.m_Item.Delete();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage(1042083); // You cannot dye that.
|
||||
}
|
||||
}
|
||||
|
||||
public static Dictionary<DyeType, Tuple<int, int>> HueInfo;
|
||||
|
||||
public static void Configure()
|
||||
{
|
||||
HueInfo = new Dictionary<DyeType, Tuple<int, int>>();
|
||||
|
||||
HueInfo[DyeType.WindAzul] = new Tuple<int, int>(2741, 1157277);
|
||||
HueInfo[DyeType.DullRuby] = new Tuple<int, int>(2731, 1157267);
|
||||
HueInfo[DyeType.PoppieWhite] = new Tuple<int, int>(2735, 1157271);
|
||||
HueInfo[DyeType.ZentoOrchid] = new Tuple<int, int>(2732, 1157268);
|
||||
HueInfo[DyeType.UmbranViolet] = new Tuple<int, int>(2740, 1157276);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user