servuo/Scripts/Quests/Ortlem.cs
pyro17 bebc100d6c
Ranger Equipment fix, Additem delete (#5012)
* Ranger Equipment fix, Additem delete
- add parameter with default value to AddItem
- On Conflict, still log conflict, but delete the conflicting Item by default

- Delete the base boots of Rangers befor adding the new boots

* Updated Mobile Scripts

- went through all scripts to update them to SetWearable
- reverted change to AddItem

* Update to SetWearable

- last item being set will be worn (if no override to OnEquip returns false
- delete the item on the layer that is the same as the new item (if existend)
- used ifs to cap item.Movable, therefor no need to call to Random if <= 0 or >= 1

* Update base InitOutFit

- replaced the Additem for Backpack with SetWearable, Movable is getting set this way too
- altered the other SetWearable calls, to allow the items to be moved / dropped (as they should normally)

* Null reference sanity check.

Co-authored-by: Voxpire <admin@vita-nex.com>
2022-06-16 04:44:54 +01:00

132 lines
4.2 KiB
C#

using Server.Items;
using Server.Mobiles;
using System;
namespace Server.Engines.Quests
{
public class MysticsJourneyQuest : BaseQuest
{
/* A Mystic's Journey */
public override object Title => 1112561;
/* Obtain the following Mysticism reagents: Dragon's Blood and Daemon Bone - and give
* them to Ortlem for your reward.<br><center>------</center><br>I am called Ortlem.
* I am a Mystic. Mysticism is our way of magic. I need you to obtain the following
* Mysticism reagents: Dragon's Blood and Daemon Bone.<BR><BR>These reagents will
* allow our Mystics to cast powerful spells to protect Ter-Mur. You can gather
* Dragon's Blood and Daemon Bones in Ter-Mur. Dragon's Blood is gathered by skinning
* reptilian creatures. Daemon Bones will appear on the corpse of any void demons
* that you slay.<BR><BR>Return to me with these reagents, and I will reward you. */
public override object Description => 1112563;
/* I understand your fear. I wish you no harm. If I must, I am willing to find
* another to help us. */
public override object Refuse => 1112564;
/* Good to see you, again. I am glad no harm has come to you in collecting the four
* rare reagents of Mysticism. Please obtain them soon. They are important to the
* protection of Ter-Mur. */
public override object Uncomplete => 1112565;
/* I appreciate your work in collecting these reagents. I am glad to be able to
* count on you. Be assured that these reagents will help continue the protection
* of Ter-Mur. As promised, here is your reward. */
public override object Complete => 1112566;
public MysticsJourneyQuest()
{
AddObjective(new ObtainObjective(typeof(DragonBlood), "Dragon's Blood", 100, 0x4077));
AddObjective(new ObtainObjective(typeof(DaemonBone), "Daemon Bone", 100, 0xF80));
AddReward(new BaseReward(1112530));
}
public override void GiveRewards()
{
base.GiveRewards();
Owner.SendLocalizedMessage(1074360, "#1112568"); // You receive a reward: Crystal Ball of Knowledge
Owner.AddToBackpack(new CrystalBallOfKnowledge());
}
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 Ortlem : MondainQuester
{
private static readonly Type[] m_Quests = { typeof(MysticsJourneyQuest) };
public override Type[] Quests => m_Quests;
public override bool IsActiveVendor => true;
public override void InitSBInfo()
{
SBInfos.Add(new SBMystic());
}
[Constructable]
public Ortlem()
: base("Ortlem", "the Mystic")
{
SetSkill(SkillName.EvalInt, 65.0, 90.0);
SetSkill(SkillName.Meditation, 65.0, 90.0);
SetSkill(SkillName.MagicResist, 65.0, 90.0);
SetSkill(SkillName.Mysticism, 65.0, 90.0);
}
public Ortlem(Serial serial)
: base(serial)
{
}
public override void Advertise()
{
Say(1112562); // Become adept in Mysticism. Help save Ter-Mur!
}
public override void InitBody()
{
Female = false;
CantWalk = true;
Race = Race.Gargoyle;
Hue = 0x86ED;
HairItemID = 0x4258;
HairHue = 0x38A;
}
public override void InitOutfit()
{
SetWearable(new GlassStaff(), dropChance: 1);
SetWearable(new GargishClothChest(), 0x64F, 1);
SetWearable(new GargishClothArms(), 0x64F, 1);
SetWearable(new GargishClothKilt(), 0x643, 1);
}
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();
}
}
}