Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
31
Projects/Scripts/Engines/MLQuests/Items/ABauble.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/ABauble.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class ABauble : Item
|
||||
{
|
||||
[Constructible]
|
||||
public ABauble() : base(0x23B)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public ABauble(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073137; // A bauble
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class APersonalLetterAddressedToAhie : TransientItem
|
||||
{
|
||||
[Constructible]
|
||||
public APersonalLetterAddressedToAhie() : base(0x14ED, TimeSpan.FromMinutes(30))
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public APersonalLetterAddressedToAhie(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073128; // A personal letter addressed to: Ahie
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Projects/Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs
Normal file
40
Projects/Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AlchemistsBandage : Item
|
||||
{
|
||||
[Constructible]
|
||||
public AlchemistsBandage() : base(0xE21)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x482;
|
||||
}
|
||||
|
||||
public AlchemistsBandage(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075452; // Alchemist's Bandage
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/AnOldNecklace.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/AnOldNecklace.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AnOldNecklace : Necklace
|
||||
{
|
||||
[Constructible]
|
||||
public AnOldNecklace()
|
||||
{
|
||||
Hue = 0x222;
|
||||
}
|
||||
|
||||
public AnOldNecklace(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075525; // an old necklace
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/AnOldRing.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/AnOldRing.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AnOldRing : GoldRing
|
||||
{
|
||||
[Constructible]
|
||||
public AnOldRing()
|
||||
{
|
||||
Hue = 0x222;
|
||||
}
|
||||
|
||||
public AnOldRing(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075524; // an old ring
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/AndricSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/AndricSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AndricSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public AndricSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new Feather(10));
|
||||
DropItem(new FletcherTools());
|
||||
}
|
||||
|
||||
public AndricSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/AndrosGratitude.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/AndrosGratitude.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AndrosGratitude : SmithHammer
|
||||
{
|
||||
[Constructible]
|
||||
public AndrosGratitude() : base(10)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public AndrosGratitude(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075345; // Andros Gratitude
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/AsandosSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/AsandosSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class AsandosSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public AsandosSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new SackFlour());
|
||||
DropItem(new Skillet());
|
||||
}
|
||||
|
||||
public AsandosSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class BasinOfCrystalClearWater : Item
|
||||
{
|
||||
[Constructible]
|
||||
public BasinOfCrystalClearWater() : base(0x1008)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BasinOfCrystalClearWater(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075303; // Basin of Crystal-Clear Water
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
57
Projects/Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs
Normal file
57
Projects/Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Engines.MLQuests.Items
|
||||
{
|
||||
public class BedlamTeleporter : Item
|
||||
{
|
||||
private static readonly Point3D PointDest = new Point3D(120, 1682, 0);
|
||||
private static readonly Map MapDest = Map.Malas;
|
||||
|
||||
public BedlamTeleporter()
|
||||
: base(0x124D)
|
||||
{
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public BedlamTeleporter(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074161; // Access to Bedlam by invitation only
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
{
|
||||
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
return;
|
||||
}
|
||||
|
||||
if (from is PlayerMobile mobile && MLQuestSystem.GetContext(mobile)?.BedlamAccess == true)
|
||||
{
|
||||
BaseCreature.TeleportPets(mobile, PointDest, MapDest);
|
||||
mobile.MoveToWorld(PointDest, MapDest);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(1074276); // You press and push on the iron maiden, but nothing happens.
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/Bleach.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/Bleach.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class Bleach : PigmentsOfTokuno
|
||||
{
|
||||
[Constructible]
|
||||
public Bleach()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public Bleach(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075375; // Bleach
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Projects/Scripts/Engines/MLQuests/Items/BridesLetter.cs
Normal file
39
Projects/Scripts/Engines/MLQuests/Items/BridesLetter.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class BridesLetter : Item
|
||||
{
|
||||
[Constructible]
|
||||
public BridesLetter() : base(0x14ED)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BridesLetter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075301; // Bride's Letter
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class CompletedTuitionReimbursementForm : Item
|
||||
{
|
||||
[Constructible]
|
||||
public CompletedTuitionReimbursementForm() : base(0x14F0)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CompletedTuitionReimbursementForm(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074625; // Completed Tuition Reimbursement Form
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
227
Projects/Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs
Normal file
227
Projects/Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
using System;
|
||||
using Server.Engines.Craft;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Engines.MLQuests.Items
|
||||
{
|
||||
public abstract class BaseCraftmansSatchel : Backpack
|
||||
{
|
||||
protected static readonly Type[] m_TalismanType = { typeof(RandomTalisman) };
|
||||
|
||||
public BaseCraftmansSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
|
||||
public BaseCraftmansSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
protected void AddBaseLoot(params Type[][] lootSets)
|
||||
{
|
||||
Item loot = Loot.Construct(lootSets[Utility.Random(lootSets.Length)]);
|
||||
|
||||
if (loot == null)
|
||||
return;
|
||||
|
||||
RewardBag.Enhance(loot);
|
||||
DropItem(loot);
|
||||
}
|
||||
|
||||
protected void AddRecipe(CraftSystem system)
|
||||
{
|
||||
// TODO: change craftable artifact recipes to a rarer drop
|
||||
int recipeID = system.RandomRecipe();
|
||||
|
||||
if (recipeID != -1)
|
||||
DropItem(new RecipeScroll(recipeID));
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TailorSatchel : BaseCraftmansSatchel
|
||||
{
|
||||
[Constructible]
|
||||
public TailorSatchel()
|
||||
{
|
||||
AddBaseLoot(Loot.MLArmorTypes, Loot.JewelryTypes, m_TalismanType);
|
||||
|
||||
if (Utility.RandomDouble() < 0.50)
|
||||
AddRecipe(DefTailoring.CraftSystem);
|
||||
}
|
||||
|
||||
public TailorSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BlacksmithSatchel : BaseCraftmansSatchel
|
||||
{
|
||||
[Constructible]
|
||||
public BlacksmithSatchel()
|
||||
{
|
||||
AddBaseLoot(Loot.MLWeaponTypes, Loot.JewelryTypes, m_TalismanType);
|
||||
|
||||
if (Utility.RandomDouble() < 0.50)
|
||||
AddRecipe(DefBlacksmithy.CraftSystem);
|
||||
}
|
||||
|
||||
public BlacksmithSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TinkerSatchel : BaseCraftmansSatchel
|
||||
{
|
||||
[Constructible]
|
||||
public TinkerSatchel()
|
||||
{
|
||||
AddBaseLoot(Loot.MLArmorTypes, Loot.MLWeaponTypes, Loot.MLRangedWeaponTypes, Loot.JewelryTypes, m_TalismanType);
|
||||
|
||||
if (Utility.RandomDouble() < 0.50)
|
||||
switch (Utility.Random(6))
|
||||
{
|
||||
case 0:
|
||||
AddRecipe(DefInscription.CraftSystem);
|
||||
break;
|
||||
case 1:
|
||||
AddRecipe(DefAlchemy.CraftSystem);
|
||||
break;
|
||||
// TODO
|
||||
//case 2: AddNonArtifactRecipe( DefTailoring.CraftSystem ); break;
|
||||
//case 3: AddNonArtifactRecipe( DefBlacksmithy.CraftSystem ); break;
|
||||
//case 4: AddNonArtifactRecipe( DefCarpentry.CraftSystem ); break;
|
||||
//case 5: AddNonArtifactRecipe( DefBowFletching.CraftSystem ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public TinkerSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class FletchingSatchel : BaseCraftmansSatchel
|
||||
{
|
||||
[Constructible]
|
||||
public FletchingSatchel()
|
||||
{
|
||||
AddBaseLoot(Loot.MLRangedWeaponTypes, Loot.JewelryTypes, m_TalismanType);
|
||||
|
||||
if (Utility.RandomDouble() < 0.50)
|
||||
AddRecipe(DefBowFletching.CraftSystem);
|
||||
|
||||
// TODO: runic fletching kit
|
||||
}
|
||||
|
||||
public FletchingSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class CarpentrySatchel : BaseCraftmansSatchel
|
||||
{
|
||||
[Constructible]
|
||||
public CarpentrySatchel()
|
||||
{
|
||||
AddBaseLoot(Loot.MLArmorTypes, Loot.MLWeaponTypes, Loot.MLRangedWeaponTypes, Loot.JewelryTypes, m_TalismanType);
|
||||
|
||||
if (Utility.RandomDouble() < 0.50)
|
||||
AddRecipe(DefCarpentry.CraftSystem);
|
||||
|
||||
// TODO: Add runic dovetail saw
|
||||
}
|
||||
|
||||
public CarpentrySatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
41
Projects/Scripts/Engines/MLQuests/Items/CrateForSledge.cs
Normal file
41
Projects/Scripts/Engines/MLQuests/Items/CrateForSledge.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CrateForSledge : TransientItem
|
||||
{
|
||||
[Constructible]
|
||||
public CrateForSledge() : base(0x1FFF, TimeSpan.FromHours(1))
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CrateForSledge(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074520; // Crate for Sledge
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Projects/Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs
Normal file
40
Projects/Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class DreadSpiderSilk : Item
|
||||
{
|
||||
[Constructible]
|
||||
public DreadSpiderSilk() : base(0xDF8)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x481;
|
||||
}
|
||||
|
||||
public DreadSpiderSilk(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075319; // Dread Spider Silk
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class FragmentOfAMap : Item
|
||||
{
|
||||
[Constructible]
|
||||
public FragmentOfAMap() : base(0x14ED)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public FragmentOfAMap(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074533; // Fragment of a Map
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class FragmentOfAMapDelivery : Item
|
||||
{
|
||||
[Constructible]
|
||||
public FragmentOfAMapDelivery() : base(0x14ED)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public FragmentOfAMapDelivery(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074533; // Fragment of a Map
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class FriendOfTheLibraryToken : Item
|
||||
{
|
||||
[Constructible]
|
||||
public FriendOfTheLibraryToken() : base(0x2F58)
|
||||
{
|
||||
Layer = Layer.Talisman;
|
||||
Hue = 0x28A;
|
||||
}
|
||||
|
||||
public FriendOfTheLibraryToken(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073136; // Friend of the Library Token (allows donations to be made)
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class FriendsOfTheLibraryApplication : Item
|
||||
{
|
||||
[Constructible]
|
||||
public FriendsOfTheLibraryApplication() : base(0xEC0)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public FriendsOfTheLibraryApplication(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073131; // Friends of the Library Application
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
34
Projects/Scripts/Engines/MLQuests/Items/GamanHorns.cs
Normal file
34
Projects/Scripts/Engines/MLQuests/Items/GamanHorns.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class GamanHorns : Item
|
||||
{
|
||||
[Constructible]
|
||||
public GamanHorns(int amount = 1) : base(0x1084)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
Hue = 0x395;
|
||||
}
|
||||
|
||||
public GamanHorns(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074557; // Gaman Horns
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/GervisSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/GervisSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class GervisSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public GervisSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new IronIngot(10));
|
||||
DropItem(new SmithHammer());
|
||||
}
|
||||
|
||||
public GervisSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Projects/Scripts/Engines/MLQuests/Items/GiftForArielle.cs
Normal file
40
Projects/Scripts/Engines/MLQuests/Items/GiftForArielle.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class GiftForArielle : BaseContainer
|
||||
{
|
||||
[Constructible]
|
||||
public GiftForArielle() : base(0x1882)
|
||||
{
|
||||
Hue = 0x2C4;
|
||||
}
|
||||
|
||||
public GiftForArielle(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074356; // gift for arielle
|
||||
public override int DefaultGumpID => 0x41;
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/HargroveSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/HargroveSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class HargroveSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public HargroveSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new Gold(15));
|
||||
DropItem(new Hatchet());
|
||||
}
|
||||
|
||||
public HargroveSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/KirinBrains.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/KirinBrains.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class KirinBrains : Item
|
||||
{
|
||||
[Constructible]
|
||||
public KirinBrains() : base(0x1CF0)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0xD7;
|
||||
}
|
||||
|
||||
public KirinBrains(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074612; // Ki-Rin Brains
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/LowelSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/LowelSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class LowelSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public LowelSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new Board(10));
|
||||
DropItem(new DovetailSaw());
|
||||
}
|
||||
|
||||
public LowelSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class MiniatureMushroom : Food
|
||||
{
|
||||
[Constructible]
|
||||
public MiniatureMushroom() : base(0xD16)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MiniatureMushroom(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073138; // Miniature mushroom
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class MirrorOfPurification : Item
|
||||
{
|
||||
[Constructible]
|
||||
public MirrorOfPurification() : base(0x1008)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x530;
|
||||
}
|
||||
|
||||
public MirrorOfPurification(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075304; // Mirror of Purification
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/MuggSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/MuggSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class MuggSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public MuggSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new Pickaxe());
|
||||
DropItem(new Pickaxe());
|
||||
}
|
||||
|
||||
public MuggSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Projects/Scripts/Engines/MLQuests/Items/NibbetSatchel.cs
Normal file
65
Projects/Scripts/Engines/MLQuests/Items/NibbetSatchel.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class NibbetSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public NibbetSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new TinkerTools());
|
||||
|
||||
switch (Utility.Random(10))
|
||||
{
|
||||
case 0:
|
||||
DropItem(new Springs(3));
|
||||
break;
|
||||
case 1:
|
||||
DropItem(new Axle(3));
|
||||
break;
|
||||
case 2:
|
||||
DropItem(new Hinge(3));
|
||||
break;
|
||||
case 3:
|
||||
DropItem(new Key());
|
||||
break;
|
||||
case 4:
|
||||
DropItem(new Scissors());
|
||||
break;
|
||||
case 5:
|
||||
DropItem(new BarrelTap(3));
|
||||
break;
|
||||
case 6:
|
||||
DropItem(new BarrelHoops());
|
||||
break;
|
||||
case 7:
|
||||
DropItem(new Gears(3));
|
||||
break;
|
||||
case 8:
|
||||
DropItem(new Lockpick(3));
|
||||
break;
|
||||
case 9:
|
||||
DropItem(new ClockFrame(3));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public NibbetSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class NotarizedApplication : Item
|
||||
{
|
||||
[Constructible]
|
||||
public NotarizedApplication() : base(0x14EF)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public NotarizedApplication(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073135; // Notarized Application
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class OfficialSealingWax : Item
|
||||
{
|
||||
[Constructible]
|
||||
public OfficialSealingWax() : base(0x1426)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x84;
|
||||
}
|
||||
|
||||
public OfficialSealingWax(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1072744; // Official Sealing Wax
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class PeppercornFishsteak : FishSteak
|
||||
{
|
||||
[Constructible]
|
||||
public PeppercornFishsteak()
|
||||
{
|
||||
Hue = 0x222;
|
||||
}
|
||||
|
||||
public PeppercornFishsteak(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075557; // peppercorn fishsteak
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/PixieLeg.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/PixieLeg.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class PixieLeg : ChickenLeg
|
||||
{
|
||||
[Constructible]
|
||||
public PixieLeg(int amount = 1) : base(amount)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x1C2;
|
||||
}
|
||||
|
||||
public PixieLeg(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074613; // Pixie Leg
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class PortraitOfTheBride : Item
|
||||
{
|
||||
[Constructible]
|
||||
public PortraitOfTheBride() : base(0xE9F)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PortraitOfTheBride(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075300; // Portrait of the Bride
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Projects/Scripts/Engines/MLQuests/Items/PrismaticAmber.cs
Normal file
73
Projects/Scripts/Engines/MLQuests/Items/PrismaticAmber.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class PrismaticAmber : Amber
|
||||
{
|
||||
[Constructible]
|
||||
public PrismaticAmber()
|
||||
{
|
||||
}
|
||||
|
||||
public PrismaticAmber(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075299; // Prismatic Amber
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
|
||||
list.Add(1075269); // Destroyed when dropped
|
||||
}
|
||||
|
||||
public override bool DropToWorld(Mobile from, Point3D p)
|
||||
{
|
||||
bool ret = base.DropToWorld(from, p);
|
||||
|
||||
if (ret)
|
||||
DestroyItem(from);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public override bool DropToMobile(Mobile from, Mobile target, Point3D p)
|
||||
{
|
||||
bool ret = base.DropToMobile(from, target, p);
|
||||
|
||||
if (ret)
|
||||
DestroyItem(from);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public override bool DropToItem(Mobile from, Item target, Point3D p)
|
||||
{
|
||||
bool ret = base.DropToItem(from, target, p);
|
||||
|
||||
if (ret && Parent != from.Backpack)
|
||||
DestroyItem(from);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public virtual void DestroyItem(Mobile from)
|
||||
{
|
||||
from.SendLocalizedMessage(500424); // You destroyed the item.
|
||||
Delete();
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Projects/Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs
Normal file
71
Projects/Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using Server.Engines.MLQuests;
|
||||
using Server.Engines.MLQuests.Definitions;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PrismaticCrystal : Item
|
||||
{
|
||||
[Constructible]
|
||||
public PrismaticCrystal() : base(0x2DA)
|
||||
{
|
||||
Movable = false;
|
||||
Hue = 0x32;
|
||||
}
|
||||
|
||||
public PrismaticCrystal(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074269; // prismatic crystal
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!(from is PlayerMobile pm) || pm.Backpack == null)
|
||||
return;
|
||||
|
||||
if (pm.InRange(GetWorldLocation(), 2))
|
||||
{
|
||||
if (MLQuestSystem.GetContext(pm)?.IsDoingQuest(typeof(UnfadingMemoriesPartOne)) == true &&
|
||||
pm.Backpack.FindItemByType<PrismaticAmber>(false) == null)
|
||||
{
|
||||
Item amber = new PrismaticAmber();
|
||||
|
||||
if (pm.PlaceInBackpack(amber))
|
||||
{
|
||||
MLQuestSystem.MarkQuestItem(pm, amber);
|
||||
Delete();
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(502385); // Your pack cannot hold this item.
|
||||
amber.Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(1075464); // You already have as many of those as you need.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
140
Projects/Scripts/Engines/MLQuests/Items/QuestGiverItem.cs
Normal file
140
Projects/Scripts/Engines/MLQuests/Items/QuestGiverItem.cs
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Engines.MLQuests.Items
|
||||
{
|
||||
public abstract class QuestGiverItem : Item, IQuestGiver
|
||||
{
|
||||
private List<MLQuest> m_MLQuests;
|
||||
|
||||
public QuestGiverItem(int itemId)
|
||||
: base(itemId)
|
||||
{
|
||||
}
|
||||
|
||||
public QuestGiverItem(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public bool CanGiveMLQuest => MLQuests.Count != 0;
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public List<MLQuest> MLQuests => m_MLQuests ??
|
||||
(m_MLQuests = MLQuestSystem.FindQuestList(GetType()) ?? MLQuestSystem.EmptyList);
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
|
||||
AddQuestItemProperty(list);
|
||||
|
||||
if (CanGiveMLQuest)
|
||||
list.Add(1072269); // Quest Giver
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
else if (!IsChildOf(from.Backpack))
|
||||
from.SendLocalizedMessage(1042593); // That is not in your backpack.
|
||||
else if (MLQuestSystem.Enabled && CanGiveMLQuest && from is PlayerMobile mobile)
|
||||
MLQuestSystem.OnDoubleClick(this, mobile);
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if (MLQuestSystem.Enabled)
|
||||
MLQuestSystem.HandleDeletion(this);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class TransientQuestGiverItem : TransientItem, IQuestGiver
|
||||
{
|
||||
private List<MLQuest> m_MLQuests;
|
||||
|
||||
public TransientQuestGiverItem(int itemId, TimeSpan lifeSpan)
|
||||
: base(itemId, lifeSpan)
|
||||
{
|
||||
}
|
||||
|
||||
public TransientQuestGiverItem(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public bool CanGiveMLQuest => MLQuests.Count != 0;
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public List<MLQuest> MLQuests => m_MLQuests ??
|
||||
(m_MLQuests = MLQuestSystem.FindQuestList(GetType()) ?? MLQuestSystem.EmptyList);
|
||||
|
||||
public override void HandleInvalidTransfer(Mobile from)
|
||||
{
|
||||
}
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
|
||||
AddQuestItemProperty(list);
|
||||
|
||||
if (CanGiveMLQuest)
|
||||
list.Add(1072269); // Quest Giver
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
else if (!IsChildOf(from.Backpack))
|
||||
from.SendLocalizedMessage(1042593); // That is not in your backpack.
|
||||
else if (MLQuestSystem.Enabled && CanGiveMLQuest && from is PlayerMobile mobile)
|
||||
MLQuestSystem.OnDoubleClick(this, mobile);
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if (MLQuestSystem.Enabled)
|
||||
MLQuestSystem.HandleDeletion(this);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
30
Projects/Scripts/Engines/MLQuests/Items/RedLeatherBook.cs
Normal file
30
Projects/Scripts/Engines/MLQuests/Items/RedLeatherBook.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class RedLeatherBook : BlueBook
|
||||
{
|
||||
[Constructible]
|
||||
public RedLeatherBook()
|
||||
{
|
||||
Hue = 0x485;
|
||||
}
|
||||
|
||||
public RedLeatherBook(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Projects/Scripts/Engines/MLQuests/Items/ReginasLetter.cs
Normal file
39
Projects/Scripts/Engines/MLQuests/Items/ReginasLetter.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class ReginasLetter : Item
|
||||
{
|
||||
[Constructible]
|
||||
public ReginasLetter() : base(0x14ED)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public ReginasLetter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075306; // Regina's Letter
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Projects/Scripts/Engines/MLQuests/Items/ReginasRing.cs
Normal file
39
Projects/Scripts/Engines/MLQuests/Items/ReginasRing.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class ReginasRing : SilverRing
|
||||
{
|
||||
[Constructible]
|
||||
public ReginasRing()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public ReginasRing(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075305; // Regina's Ring
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
203
Projects/Scripts/Engines/MLQuests/Items/RewardBags.cs
Normal file
203
Projects/Scripts/Engines/MLQuests/Items/RewardBags.cs
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Engines.MLQuests.Items
|
||||
{
|
||||
public static class RewardBag
|
||||
{
|
||||
public static void Fill(Container c, int itemCount, double talismanChance)
|
||||
{
|
||||
c.Hue = Utility.RandomNondyedHue();
|
||||
|
||||
int done = 0;
|
||||
|
||||
if (Utility.RandomDouble() < talismanChance)
|
||||
{
|
||||
c.DropItem(new RandomTalisman());
|
||||
++done;
|
||||
}
|
||||
|
||||
for (; done < itemCount; ++done)
|
||||
{
|
||||
Item loot = null;
|
||||
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0:
|
||||
loot = Loot.RandomWeapon(false, true);
|
||||
break;
|
||||
case 1:
|
||||
loot = Loot.RandomArmor(false, true);
|
||||
break;
|
||||
case 2:
|
||||
loot = Loot.RandomRangedWeapon(false, true);
|
||||
break;
|
||||
case 3:
|
||||
loot = Loot.RandomJewelry();
|
||||
break;
|
||||
case 4:
|
||||
loot = Loot.RandomHat(false);
|
||||
break;
|
||||
}
|
||||
|
||||
if (loot == null)
|
||||
continue;
|
||||
|
||||
Enhance(loot);
|
||||
c.DropItem(loot);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Enhance(Item loot)
|
||||
{
|
||||
if (loot is BaseWeapon weapon)
|
||||
{
|
||||
BaseRunicTool.ApplyAttributesTo(weapon, Utility.RandomMinMax(1, 5), 10, 80);
|
||||
return;
|
||||
}
|
||||
|
||||
if (loot is BaseArmor armor) BaseRunicTool.ApplyAttributesTo(armor, Utility.RandomMinMax(1, 5), 10, 80);
|
||||
|
||||
if (loot is BaseJewel jewel) BaseRunicTool.ApplyAttributesTo(jewel, Utility.RandomMinMax(1, 5), 10, 80);
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallBagOfTrinkets : Bag
|
||||
{
|
||||
[Constructible]
|
||||
public SmallBagOfTrinkets()
|
||||
{
|
||||
RewardBag.Fill(this, 1, 0.0);
|
||||
}
|
||||
|
||||
public SmallBagOfTrinkets(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BagOfTrinkets : Bag
|
||||
{
|
||||
[Constructible]
|
||||
public BagOfTrinkets()
|
||||
{
|
||||
RewardBag.Fill(this, 2, 0.05);
|
||||
}
|
||||
|
||||
public BagOfTrinkets(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BagOfTreasure : Bag
|
||||
{
|
||||
[Constructible]
|
||||
public BagOfTreasure()
|
||||
{
|
||||
RewardBag.Fill(this, 3, 0.20);
|
||||
}
|
||||
|
||||
public BagOfTreasure(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeBagOfTreasure : Bag
|
||||
{
|
||||
[Constructible]
|
||||
public LargeBagOfTreasure()
|
||||
{
|
||||
RewardBag.Fill(this, 4, 0.50);
|
||||
}
|
||||
|
||||
public LargeBagOfTreasure(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class RewardStrongbox : WoodenBox
|
||||
{
|
||||
[Constructible]
|
||||
public RewardStrongbox()
|
||||
{
|
||||
RewardBag.Fill(this, 5, 1.0);
|
||||
}
|
||||
|
||||
public RewardStrongbox(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/SadrahSatchel.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/SadrahSatchel.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SadrahSatchel : Backpack
|
||||
{
|
||||
[Constructible]
|
||||
public SadrahSatchel()
|
||||
{
|
||||
Hue = Utility.RandomBrightHue();
|
||||
DropItem(new Bloodmoss(10));
|
||||
DropItem(new MortarPestle());
|
||||
}
|
||||
|
||||
public SadrahSatchel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
33
Projects/Scripts/Engines/MLQuests/Items/SapOfSosaria.cs
Normal file
33
Projects/Scripts/Engines/MLQuests/Items/SapOfSosaria.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SapOfSosaria : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SapOfSosaria(int amount = 1) : base(0x1848)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public SapOfSosaria(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074178; // Sap of Sosaria
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SealedNotesForJamal : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SealedNotesForJamal() : base(0xEF9)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SealedNotesForJamal(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074998; // Sealed Notes For Jamal
|
||||
public override double DefaultWeight => 1.0;
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SealingWaxOrderAddressedToPetrus : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SealingWaxOrderAddressedToPetrus() : base(0xEBF)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SealingWaxOrderAddressedToPetrus(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073132; // Sealing Wax Order addressed to Petrus
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/SeveredElfEars.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/SeveredElfEars.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x312D, 0x312E)]
|
||||
public class SeveredElfEars : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SeveredElfEars(int amount = 1) : base(Utility.RandomList(0x312D, 0x312E))
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public SeveredElfEars(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x312F, 0x3130)]
|
||||
public class SeveredHumanEars : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SeveredHumanEars(int amount = 1) : base(Utility.RandomList(0x312F, 0x3130))
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public SeveredHumanEars(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SignedTuitionReimbursementForm : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SignedTuitionReimbursementForm() : base(0x14F0)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SignedTuitionReimbursementForm(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074614; // Signed Tuition Reimbursement Form
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SpecialTreatForDrithen : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SpecialTreatForDrithen() : base(0x21B)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x489;
|
||||
}
|
||||
|
||||
public SpecialTreatForDrithen(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074517; // Special Treat for Drithen
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
33
Projects/Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs
Normal file
33
Projects/Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SpeckledPoisonSac : TransientItem
|
||||
{
|
||||
[Constructible]
|
||||
public SpeckledPoisonSac() : base(0x23A, TimeSpan.FromHours(1))
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SpeckledPoisonSac(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1073133; // Speckled Poison Sac
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Projects/Scripts/Engines/MLQuests/Items/SpiritBottle.cs
Normal file
39
Projects/Scripts/Engines/MLQuests/Items/SpiritBottle.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SpiritBottle : Item
|
||||
{
|
||||
[Constructible]
|
||||
public SpiritBottle() : base(0xEFB)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SpiritBottle(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075283; // Spirit bottle
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Projects/Scripts/Engines/MLQuests/Items/StoutWhip.cs
Normal file
31
Projects/Scripts/Engines/MLQuests/Items/StoutWhip.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class StoutWhip : Item
|
||||
{
|
||||
[Constructible]
|
||||
public StoutWhip() : base(0x166F)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public StoutWhip(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074812; // Stout Whip
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Projects/Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs
Normal file
40
Projects/Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class TaintedTreeSample : Item // On OSI the base class is Kindling, and it's ignitable...
|
||||
{
|
||||
[Constructible]
|
||||
public TaintedTreeSample() : base(0xDE2)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x9D;
|
||||
}
|
||||
|
||||
public TaintedTreeSample(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074997; // Tainted Tree Sample
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
194
Projects/Scripts/Engines/MLQuests/Items/Teleporters.cs
Normal file
194
Projects/Scripts/Engines/MLQuests/Items/Teleporters.cs
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.MLQuests.Items
|
||||
{
|
||||
public class MLQuestTeleporter : Teleporter
|
||||
{
|
||||
private Type m_QuestType;
|
||||
|
||||
[Constructible]
|
||||
public MLQuestTeleporter()
|
||||
: this(Point3D.Zero)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public MLQuestTeleporter(
|
||||
Point3D pointDest, Map mapDest = null, Type questType = null, TextDefinition message = null)
|
||||
: base(pointDest, mapDest)
|
||||
{
|
||||
m_QuestType = questType;
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public MLQuestTeleporter(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Type QuestType
|
||||
{
|
||||
get => m_QuestType;
|
||||
set
|
||||
{
|
||||
m_QuestType = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TextDefinition Message{ get; set; }
|
||||
|
||||
public override bool CanTeleport(Mobile m)
|
||||
{
|
||||
if (!base.CanTeleport(m))
|
||||
return false;
|
||||
|
||||
if (m_QuestType == null)
|
||||
return true;
|
||||
if (!(m is PlayerMobile pm))
|
||||
return false;
|
||||
|
||||
MLQuestContext context = MLQuestSystem.GetContext(pm);
|
||||
|
||||
if (context?.IsDoingQuest(m_QuestType) == true || context?.HasDoneQuest(m_QuestType) == true)
|
||||
return true;
|
||||
|
||||
TextDefinition.SendMessageTo(m, Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (m_QuestType != null)
|
||||
list.Add($"Required quest: {m_QuestType.Name}");
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
|
||||
writer.Write(m_QuestType != null ? m_QuestType.FullName : null);
|
||||
TextDefinition.Serialize(writer, Message);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
string typeName = reader.ReadString();
|
||||
|
||||
if (typeName != null)
|
||||
m_QuestType = ScriptCompiler.FindTypeByFullName(typeName, false);
|
||||
|
||||
Message = TextDefinition.Deserialize(reader);
|
||||
}
|
||||
}
|
||||
|
||||
public interface ITicket
|
||||
{
|
||||
void OnTicketUsed(Mobile from);
|
||||
}
|
||||
|
||||
public class TicketTeleporter : Teleporter
|
||||
{
|
||||
private Type m_TicketType;
|
||||
|
||||
[Constructible]
|
||||
public TicketTeleporter()
|
||||
: this(Point3D.Zero)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public TicketTeleporter(
|
||||
Point3D pointDest, Map mapDest = null, Type ticketType = null, TextDefinition message = null)
|
||||
: base(pointDest, mapDest)
|
||||
{
|
||||
m_TicketType = ticketType;
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public TicketTeleporter(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Type TicketType
|
||||
{
|
||||
get => m_TicketType;
|
||||
set
|
||||
{
|
||||
m_TicketType = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public TextDefinition Message{ get; set; }
|
||||
|
||||
public override bool CanTeleport(Mobile m)
|
||||
{
|
||||
if (!base.CanTeleport(m))
|
||||
return false;
|
||||
|
||||
if (m_TicketType == null)
|
||||
return true;
|
||||
|
||||
Container pack = m.Backpack;
|
||||
Item ticket = pack?.FindItemByType(m_TicketType, false) ?? m.Items.Find(item => m_TicketType.IsInstanceOfType(item));
|
||||
|
||||
if (ticket == null)
|
||||
{
|
||||
TextDefinition.SendMessageTo(m, Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
(ticket as ITicket)?.OnTicketUsed(m);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (m_TicketType != null)
|
||||
list.Add($"Required ticket: {m_TicketType.Name}");
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
|
||||
writer.Write(m_TicketType != null ? m_TicketType.FullName : null);
|
||||
TextDefinition.Serialize(writer, Message);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
string typeName = reader.ReadString();
|
||||
|
||||
if (typeName != null)
|
||||
m_TicketType = ScriptCompiler.FindTypeByFullName(typeName, false);
|
||||
|
||||
Message = TextDefinition.Deserialize(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Projects/Scripts/Engines/MLQuests/Items/TransparentHeart.cs
Normal file
32
Projects/Scripts/Engines/MLQuests/Items/TransparentHeart.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class TransparentHeart : GoldEarrings
|
||||
{
|
||||
[Constructible]
|
||||
public TransparentHeart()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x4AB;
|
||||
}
|
||||
|
||||
public TransparentHeart(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1075400; // Transparent Heart
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class TuitionReimbursementForm : Item
|
||||
{
|
||||
[Constructible]
|
||||
public TuitionReimbursementForm() : base(0xE3A)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public TuitionReimbursementForm(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074610; // Tuition Reimbursement Form (in triplicate)
|
||||
|
||||
public override bool Nontransferable => true;
|
||||
|
||||
public override void AddNameProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.AddNameProperties(list);
|
||||
AddQuestItemProperty(list);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
34
Projects/Scripts/Engines/MLQuests/Items/UnicornRibs.cs
Normal file
34
Projects/Scripts/Engines/MLQuests/Items/UnicornRibs.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class UnicornRibs : Item
|
||||
{
|
||||
[Constructible]
|
||||
public UnicornRibs(int amount = 1) : base(0x9F1)
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 0x14B;
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public UnicornRibs(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074611; // Unicorn Ribs
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // Version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue