Files
abysmal-isle/Scripts/Items/Quest/SAQuestItems.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

1296 lines
30 KiB
C#

using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class AcidSac : Item
{
[Constructable]
public AcidSac()
: base(0x0C67)
{
Stackable = true;
Weight = 1.0;
Hue = 648;
}
public AcidSac(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1111654;
}
}// acid sac
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1111656); // What do you wish to use the acid on?
from.Target = new InternalTarget(this);
}
else
from.SendLocalizedMessage(1080063); // This must be in your backpack to use it.
}
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();
}
private class InternalTarget : Target
{
private readonly Item m_Item;
private Item wall;
private Item wallandvine;
public InternalTarget(Item item)
: base(2, false, TargetFlags.None)
{
m_Item = item;
}
protected override void OnTarget(Mobile from, object targeted)
{
PlayerMobile pm = from as PlayerMobile;
if (m_Item.Deleted)
return;
if (targeted is AddonComponent)
{
AddonComponent addoncomponent = (AddonComponent)targeted;
if (addoncomponent is MagicVinesComponent || addoncomponent is StoneWallComponent || addoncomponent is DungeonWallComponent)
{
int Xs = addoncomponent.X;
if (addoncomponent is MagicVinesComponent)
Xs += -1;
if (addoncomponent.Addon is StoneWallAndVineAddon)
{
wall = new SecretStoneWallNS();
wallandvine = new StoneWallAndVineAddon();
}
else if (addoncomponent.Addon is DungeonWallAndVineAddon)
{
wall = new SecretDungeonWallNS();
wallandvine = new DungeonWallAndVineAddon();
}
wall.MoveToWorld(new Point3D(Xs, addoncomponent.Y, addoncomponent.Z), addoncomponent.Map);
addoncomponent.Delete();
m_Item.Consume();
wall.PublicOverheadMessage(0, 1358, 1111662); // The acid quickly burns through the writhing wallvines, revealing the strange wall.
Timer.DelayCall(TimeSpan.FromSeconds(15.0), delegate()
{
wallandvine.MoveToWorld(wall.Location, wall.Map);
wall.Delete();
wallandvine.PublicOverheadMessage(0, 1358, 1111663); // The vines recover from the acid and, spreading like tentacles, reclaim their grip over the wall.
});
}
}
else
{
from.SendLocalizedMessage(1111657); // The acid swiftly burn through it.
m_Item.Consume();
return; // Exit the method, because addoncomponent is null
}
}
}
}
public class AncientPotteryFragments : Item
{
[Constructable]
public AncientPotteryFragments()
: base(0x2243)
{
Hue = 2108;
}
public AncientPotteryFragments(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112990;
}
}// Ancient Pottery fragments
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 BouraPelt : Item, ICommodity
{
[Constructable]
public BouraPelt()
: this(1)
{
}
[Constructable]
public BouraPelt(int amount)
: base(0x5742)
{
Stackable = true;
Amount = amount;
}
public BouraPelt(Serial serial)
: base(serial)
{
}
TextDefinition ICommodity.Description { get { return LabelNumber; } }
bool ICommodity.IsDeedable { get { return true; } }
public override int LabelNumber
{
get
{
return 1113355;
}
}// boura pelt
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 ClawSlasherVeils : Item
{
[Constructable]
public ClawSlasherVeils()
: this(1)
{
}
[Constructable]
public ClawSlasherVeils(int amount)
: base(0x2DB8)
{
Stackable = true;
Amount = amount;
}
public ClawSlasherVeils(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1031704;
}
}// Claw of Slasher of Veils
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 CongealedSlugAcid : Item
{
[Constructable]
public CongealedSlugAcid()
: this(1)
{
}
[Constructable]
public CongealedSlugAcid(int amount)
: base(0x5742)
{
Stackable = true;
Amount = amount;
}
public CongealedSlugAcid(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112901;
}
}// Congealed Slug Acid
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();
}
}
[TypeAlias("Server.Items.EnchantEssence")]
public class EnchantedEssence : Item, ICommodity
{
[Constructable]
public EnchantedEssence()
: this(1)
{
}
[Constructable]
public EnchantedEssence(int amount)
: base(0x2DB2)
{
Stackable = true;
Amount = amount;
}
public EnchantedEssence(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1031698;
}
}// Enchaned Essence
TextDefinition ICommodity.Description
{
get
{
return this.LabelNumber;
}
}
bool ICommodity.IsDeedable
{
get
{
return true;
}
}
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 FairyDragonWing : Item
{
[Constructable]
public FairyDragonWing()
: this(1)
{
}
[Constructable]
public FairyDragonWing(int amount)
: base(0x1084)
{
Hue = 1111;
Stackable = true;
Amount = amount;
}
public FairyDragonWing(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112899;
}
}// Fairy Dragon Wing
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 LeatherWolfSkin : Item
{
[Constructable]
public LeatherWolfSkin()
: this(1)
{
}
[Constructable]
public LeatherWolfSkin(int amount)
: base(0xDF8)
{
Stackable = true;
Amount = amount;
Hue = 248;
}
public LeatherWolfSkin(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112906;
}
}// leather wolf skin
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0)
{
ItemID = 0xDF8;
Hue = 248;
}
}
}
public class LuckyCoin : Item, ICommodity
{
[Constructable]
public LuckyCoin()
: this(1)
{
}
[Constructable]
public LuckyCoin(int amount)
: base(0xF87)
{
Stackable = true;
Amount = amount;
Hue = 1174;
}
public LuckyCoin(Serial serial)
: base(serial)
{
}
TextDefinition ICommodity.Description { get { return LabelNumber; } }
bool ICommodity.IsDeedable { get { return true; } }
public override int LabelNumber
{
get
{
return 1113366;
}
}// lucky coin
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack) && Amount >= 1)
{
from.SendLocalizedMessage(1113367); // Make a wish then toss me into sacred waters!!
from.Target = new InternalTarget(this);
}
}
private class InternalTarget : Target
{
private LuckyCoin m_Coin;
public InternalTarget(LuckyCoin coin)
: base(3, false, TargetFlags.None)
{
m_Coin = coin;
}
protected override void OnTarget(Mobile from, object targeted)
{
if (targeted is AddonComponent && ((AddonComponent)targeted).Addon is FountainOfFortune)
{
AddonComponent c = (AddonComponent)targeted;
if (c.Addon is FountainOfFortune)
((FountainOfFortune)c.Addon).OnTarget(from, m_Coin);
}
else
from.SendLocalizedMessage(1113369); // That is not sacred waters. Try looking in the Underworld.
}
}
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 MagicalResidue : Item, ICommodity
{
[Constructable]
public MagicalResidue()
: this(1)
{
}
[Constructable]
public MagicalResidue(int amount)
: base(0x2DB1)
{
Stackable = true;
Amount = amount;
}
public MagicalResidue(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1031697;
}
}// Magical Residue
TextDefinition ICommodity.Description
{
get
{
return this.LabelNumber;
}
}
bool ICommodity.IsDeedable
{
get
{
return true;
}
}
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 PileInspectedIngots : Item
{
[Constructable]
public PileInspectedIngots()
: this(1)
{
}
[Constructable]
public PileInspectedIngots(int amount)
: base(0x1BEA)
{
Stackable = true;
Amount = amount;
}
public PileInspectedIngots(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();
if (ItemID != 0x1BEA)
ItemID = 0x1BEA;
}
}
public class RelicFragment : Item, ICommodity
{
[Constructable]
public RelicFragment()
: this(1)
{
}
[Constructable]
public RelicFragment(int amount)
: base(0x2DB3)
{
Stackable = true;
Amount = amount;
}
public RelicFragment(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1031699;
}
}// Relic Fragment
TextDefinition ICommodity.Description
{
get
{
return this.LabelNumber;
}
}
bool ICommodity.IsDeedable
{
get
{
return true;
}
}
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 SearedFireAntGoo : Item
{
[Constructable]
public SearedFireAntGoo()
: this(1)
{
}
[Constructable]
public SearedFireAntGoo(int amount)
: base(0x122E)
{
Stackable = true;
Amount = amount;
Hue = 1359;
}
public SearedFireAntGoo(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112902;
}
}// Seared Fire Ant Goo
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();
if (ItemID != 0x122E)
ItemID = 0x122E;
}
}
public class StygianDragonHead : Item
{
[Constructable]
public StygianDragonHead()
: this(1)
{
}
[Constructable]
public StygianDragonHead(int amount)
: base(0x2DB4)
{
Stackable = true;
Amount = amount;
}
public StygianDragonHead(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1031700;
}
}// Stygian Dragon Head
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 TatteredAncientScroll : Item
{
[Constructable]
public TatteredAncientScroll()
: this(1)
{
}
[Constructable]
public TatteredAncientScroll(int amount)
: base(0x1700)
{
}
public TatteredAncientScroll(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112991;
}
}// Tattered Remnants of an Ancient Scroll
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0 && ItemID != 0x1437)
ItemID = 0x1437;
if (version == 0 && Stackable)
{
Stackable = false;
Amount = 1;
}
}
}
public class UndamagedIronBeetleScale : Item, ICommodity
{
[Constructable]
public UndamagedIronBeetleScale()
: this(1)
{
}
[Constructable]
public UndamagedIronBeetleScale(int amount)
: base(0x26B3)
{
Stackable = true;
Amount = amount;
}
public UndamagedIronBeetleScale(Serial serial)
: base(serial)
{
}
TextDefinition ICommodity.Description { get { return LabelNumber; } }
bool ICommodity.IsDeedable { get { return true; } }
public override int LabelNumber
{
get
{
return 1112905;
}
}// Undamaged Iron Beetle Scale
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();
if (ItemID != 0x26B3)
ItemID = 0x26B3;
}
}
public class UndeadGargHorn : Item
{
[Constructable]
public UndeadGargHorn()
: this(1)
{
}
[Constructable]
public UndeadGargHorn(int amount)
: base(0x315C)
{
Stackable = true;
Amount = amount;
}
public UndeadGargHorn(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112903;
}
}// Undamaged Undead Gargoyle Horns
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();
if (ItemID != 0x315C)
ItemID = 0x315C;
}
}
public class UndeadGargMedallion : Item
{
[Constructable]
public UndeadGargMedallion()
: this(1)
{
}
[Constructable]
public UndeadGargMedallion(int amount)
: base(0x1088)
{
Stackable = true;
Amount = amount;
Hue = 2207;
LootType = LootType.Blessed;
}
public UndeadGargMedallion(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112907;
}
}// Undead Gargoyle Medallion
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();
if (ItemID != 0x1088)
ItemID = 0x1088;
}
}
[TypeAlias("Server.Items.UntransTome")]
public class UntranslatedAncientTome : Item
{
[Constructable]
public UntranslatedAncientTome()
: this(1)
{
}
[Constructable]
public UntranslatedAncientTome(int amount)
: base(0x0FF2)
{
Stackable = true;
Amount = amount;
Hue = 2405;
}
public UntranslatedAncientTome(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
return 1112992;
}
}// Untranslated Ancient Tome
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();
if (ItemID != 0x0FF2)
ItemID = 0x0FF2;
}
}
public class CrystalDust : Item
{
public override int LabelNumber { get { return 1112328; } } // crystal dust
[Constructable]
public CrystalDust()
: this(1)
{
}
[Constructable]
public CrystalDust(int amount)
: base(16393)
{
Hue = 2103;
Stackable = true;
Amount = amount;
}
public CrystalDust(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 BarrelOfBarley : Item
{
public override int LabelNumber { get { return 1094999; } } // Barrel of Barley
[Constructable]
public BarrelOfBarley()
: base(4014)
{
Weight = 25;
}
public BarrelOfBarley(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 FlintsLogbook : Item
{
public override int LabelNumber { get { return 1095000; } } // Flint's Logbook
[Constructable]
public FlintsLogbook()
: base(7185)
{
}
public FlintsLogbook(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 BottleOfFlintsPungnentBrew : BaseBeverage
{
public override int LabelNumber
{
get
{
return IsEmpty ? 1113607 : 1094967; // a bottle of Flint's Pungent Brew
}
}
[Constructable]
public BottleOfFlintsPungnentBrew()
: base(BeverageType.Ale)
{
}
public override int ComputeItemID()
{
return 0x99F;
}
public override int MaxQuantity { get { return 5; } }
public BottleOfFlintsPungnentBrew(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();
}
}
[Flipable(6870, 6871)]
public class KegOfFlintsPungnentBrew : Item
{
public override int LabelNumber { get { return 1113608; } } // a keg of Flint's Pungent Brew
[Constructable]
public KegOfFlintsPungnentBrew()
: base(6870)
{
Weight = 25;
}
public KegOfFlintsPungnentBrew(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 FloorTrapComponent : Item
{
public override int LabelNumber { get { return 1095001; } } // Floor Trap Components
[Constructable]
public FloorTrapComponent()
: base(Utility.RandomMinMax(3117, 3120))
{
}
public FloorTrapComponent(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 DuganMissingQuestCorpse : QuestHintItem
{
public override Type QuestType { get { return typeof(Server.Engines.Quests.Missing); } }
[Constructable]
public DuganMissingQuestCorpse()
: base(1094954) // You observe the remains of four humans here. As you observe the tragic scene, you are reminded that you promised to bring evidence to Elder Dugan of their fate.
{
}
public DuganMissingQuestCorpse(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
public class FlintLostBarrelHint : QuestHintItem
{
public override Type QuestType { get { return typeof(Server.Engines.Quests.ThievesBeAfootQuest); } }
public override Type QuestItemType { get { return typeof(BarrelOfBarley); } }
public override int DefaultRange { get { return 5; } }
[Constructable]
public FlintLostBarrelHint()
: base(1094963) // The smug smell of Barley fills this chamber.
{
}
public FlintLostBarrelHint(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
public class FlintLostLogbookHint : QuestHintItem
{
public override Type QuestType { get { return typeof(Server.Engines.Quests.BibliophileQuest); } }
public override Type QuestItemType { get { return typeof(FlintsLogbook); } }
public override int DefaultRange { get { return 5; } }
[Constructable]
public FlintLostLogbookHint()
: base(1094974) // This appears to be Flint's logbook. It is not clear why the goblins were using it in a ritual. Perhaps they were summoning a nefarious intention?
{
}
public FlintLostLogbookHint(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}