v0.0.1-Alpha (#42)
This commit is contained in:
parent
d30f93c454
commit
a36796c2c1
3552 changed files with 2476 additions and 15223 deletions
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue