Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
180
Scripts/Mobiles/NPCs/Victoria.cs
Normal file
180
Scripts/Mobiles/NPCs/Victoria.cs
Normal file
@@ -0,0 +1,180 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.Quests.Doom
|
||||
{
|
||||
public class Victoria : BaseQuester
|
||||
{
|
||||
private const int AltarRange = 24;
|
||||
private SummoningAltar m_Altar;
|
||||
[Constructable]
|
||||
public Victoria()
|
||||
: base("the Sorceress")
|
||||
{
|
||||
}
|
||||
|
||||
public Victoria(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int TalkNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 6159;
|
||||
}
|
||||
}// Ask about Chyloth
|
||||
public override bool ClickTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override bool IsActiveVendor
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override bool DisallowAllMoves
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public SummoningAltar Altar
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Altar == null || this.m_Altar.Deleted || this.m_Altar.Map != this.Map || !Utility.InRange(this.m_Altar.Location, this.Location, AltarRange))
|
||||
{
|
||||
foreach (Item item in this.GetItemsInRange(AltarRange))
|
||||
{
|
||||
if (item is SummoningAltar)
|
||||
{
|
||||
this.m_Altar = (SummoningAltar)item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this.m_Altar;
|
||||
}
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
this.m_SBInfos.Add(new SBMage());
|
||||
}
|
||||
|
||||
public override void InitBody()
|
||||
{
|
||||
this.InitStats(100, 100, 25);
|
||||
|
||||
this.Female = true;
|
||||
this.Hue = 0x8835;
|
||||
this.Body = 0x191;
|
||||
|
||||
this.Name = "Victoria";
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
this.EquipItem(new GrandGrimoire());
|
||||
|
||||
this.EquipItem(this.SetHue(new Sandals(), 0x455));
|
||||
this.EquipItem(this.SetHue(new SkullCap(), 0x455));
|
||||
this.EquipItem(this.SetHue(new PlainDress(), 0x455));
|
||||
|
||||
this.HairItemID = 0x203C;
|
||||
this.HairHue = 0x482;
|
||||
}
|
||||
|
||||
public override bool OnDragDrop(Mobile from, Item dropped)
|
||||
{
|
||||
PlayerMobile player = from as PlayerMobile;
|
||||
|
||||
if (player != null)
|
||||
{
|
||||
QuestSystem qs = player.Quest;
|
||||
|
||||
if (qs is TheSummoningQuest)
|
||||
{
|
||||
if (dropped is DaemonBone)
|
||||
{
|
||||
DaemonBone bones = (DaemonBone)dropped;
|
||||
|
||||
QuestObjective obj = qs.FindObjective(typeof(CollectBonesObjective));
|
||||
|
||||
if (obj != null && !obj.Completed)
|
||||
{
|
||||
int need = obj.MaxProgress - obj.CurProgress;
|
||||
|
||||
if (bones.Amount < need)
|
||||
{
|
||||
obj.CurProgress += bones.Amount;
|
||||
bones.Delete();
|
||||
|
||||
qs.ShowQuestLogUpdated();
|
||||
}
|
||||
else
|
||||
{
|
||||
obj.Complete();
|
||||
bones.Consume(need);
|
||||
|
||||
if (!bones.Deleted)
|
||||
{
|
||||
// TODO: Accurate?
|
||||
this.SayTo(from, 1050038); // You have already given me all the Daemon bones necessary to weave the spell. Keep these for a later time.
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Accurate?
|
||||
this.SayTo(from, 1050038); // You have already given me all the Daemon bones necessary to weave the spell. Keep these for a later time.
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return base.OnDragDrop(from, dropped);
|
||||
}
|
||||
|
||||
public override bool CanTalkTo(PlayerMobile to)
|
||||
{
|
||||
return (to.Quest == null && QuestSystem.CanOfferQuest(to, typeof(TheSummoningQuest)));
|
||||
}
|
||||
|
||||
public override void OnTalk(PlayerMobile player, bool contextMenu)
|
||||
{
|
||||
QuestSystem qs = player.Quest;
|
||||
|
||||
if (qs == null && QuestSystem.CanOfferQuest(player, typeof(TheSummoningQuest)))
|
||||
{
|
||||
this.Direction = this.GetDirectionTo(player);
|
||||
new TheSummoningQuest(this, player).SendOffer();
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user