Fixes body expression style.
This commit is contained in:
parent
3f0a72a62f
commit
33f5e77a24
957 changed files with 7424 additions and 15973 deletions
|
|
@ -24,46 +24,9 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Ambitious Solen Queen Quest
|
||||
return 1054146;
|
||||
}
|
||||
}
|
||||
public override object Name => 1054146;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen considers you eagerly for a moment then says,</I><BR><BR>
|
||||
*
|
||||
* Yes. Yes, I think you could be of use. Normally, of course, I would handle
|
||||
* these things on my own, but these are busy times. Much to do, much to do.
|
||||
* And besides, if I am to one day become the Matriarch, then it will be good to
|
||||
* have experience trusting others to carry out various tasks for me. Yes.<BR><BR>
|
||||
*
|
||||
* That is my plan, you see - I will become the next Matriarch. Our current
|
||||
* Matriarch is fine and all, but she won't be around forever. And when she steps
|
||||
* down, I intend to be the next in line. Ruling others is my destiny, you see.<BR><BR>
|
||||
*
|
||||
* What I ask of you is quite simple. First, I need you to remove some of the
|
||||
* - well - competition, I suppose. Though I dare say most are hardly competent to
|
||||
* live up to such a title. I'm referring to the other queens of this colony,
|
||||
* of course. My dear sisters, so to speak. If you could remove 5 of them, I would
|
||||
* be most pleased. *sighs* By remove, I mean kill them. Don't make that face
|
||||
* at me - this is how things work in a proper society, and ours has been more proper
|
||||
* than most since the dawn of time. It's them or me, and whenever I give it
|
||||
* any thought, I'm quite sure I'd prefer it to be them.<BR><BR>
|
||||
*
|
||||
* I also need you to gather some zoogi fungus for me - 50 should do the trick.<BR><BR>
|
||||
*
|
||||
* Will you accept my offer?
|
||||
*/
|
||||
return 1054060;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1054060;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.Zero;
|
||||
public override bool IsTutorial => false;
|
||||
|
|
@ -72,7 +35,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
private bool m_RedSolen;
|
||||
|
||||
public bool RedSolen{ get{ return m_RedSolen; } }
|
||||
public bool RedSolen => m_RedSolen;
|
||||
|
||||
public AmbitiousQueenQuest( PlayerMobile from, bool redSolen ) : base( from )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,19 +2,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
{
|
||||
public class DontOfferConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen considers you for a moment then says,</I><BR><BR>
|
||||
*
|
||||
* Hmmm... I could perhaps benefit from your assistance, but you seem to be
|
||||
* busy with another task at the moment. Return to me when you complete whatever
|
||||
* it is that you're working on and maybe I can still put you to good use.
|
||||
*/
|
||||
return 1054059;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054059;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -25,27 +13,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen smiles as you decide to help her.</I><BR><BR>
|
||||
*
|
||||
* Excellent. We'll worry about the zoogi fungus later - start by eliminating
|
||||
* 5 queens from my colony.<BR><BR>That part's important, by the way; they must
|
||||
* be queens from my colony. Killing queens from the other solen colony does
|
||||
* little to help me become Matriarch of this colony and will not count
|
||||
* toward your task.<BR><BR>
|
||||
*
|
||||
* Oh, and none of those nasty infiltrator queens either. They perform a necessary
|
||||
* duty, I suppose, spying on the other colony. I fail to see why that couldn't be
|
||||
* left totally to the warriors, though. Nevertheless, they do not count as well.<BR><BR>
|
||||
*
|
||||
* Very well. Carry on. I'll be waiting for your return.
|
||||
*/
|
||||
return 1054061;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054061;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -59,23 +27,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class DuringKillQueensConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen looks up as you approach.</I><BR><BR>
|
||||
*
|
||||
* You're back, but you have not yet eliminated 5 queens from my colony.
|
||||
* Return when you have completed this task.<BR><BR>
|
||||
*
|
||||
* Remember, by the way, that queens from the other solen colony and
|
||||
* infiltrator queens do not count toward your task.<BR><BR>
|
||||
*
|
||||
* Very well. Carry on. I'll be waiting for your return.
|
||||
*/
|
||||
return 1054066;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054066;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -86,24 +38,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class GatherFungiConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen looks pleased to see you.</I><BR><BR>
|
||||
*
|
||||
* Splendid! You've done quite well in reducing my competition to become
|
||||
* the next Matriarch. Now I must ask that you gather some zoogi fungus for me.
|
||||
* I must practice processing it into powder of translocation.<BR><BR>
|
||||
*
|
||||
* I believe the amount we agreed upon earlier was 50. Please return when
|
||||
* you have that amount and then give them to me.<BR><BR>
|
||||
*
|
||||
* Farewell for now.
|
||||
*/
|
||||
return 1054068;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054068;
|
||||
|
||||
public GatherFungiConversation()
|
||||
{
|
||||
|
|
@ -117,19 +52,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class DuringFungiGatheringConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen looks up as you approach.</I><BR><BR>
|
||||
*
|
||||
* Do you have the zoogi fungus?<BR><BR>
|
||||
*
|
||||
* If so, give them to me. Otherwise, go gather some and then return to me.
|
||||
*/
|
||||
return 1054070;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054070;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -140,23 +63,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen smiles as she takes the zoogi fungus from you.</I><BR><BR>
|
||||
*
|
||||
* Wonderful! I greatly appreciate your help with these tasks. My plans are beginning
|
||||
* to take shape ensuring that I will be the next Matriarch. But there is still
|
||||
* much to be done until then.<BR><BR>
|
||||
*
|
||||
* You've done what I've asked of you and for that I thank you. Please accept this
|
||||
* bag of sending and some powder of translocation as a reward. Oh, and I suppose
|
||||
* I should give you some gold as well. Yes, yes. Of course.
|
||||
*/
|
||||
return 1054073;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054073;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
@ -183,20 +90,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class FullBackpackConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen looks at you with a smile.</I><BR><BR>
|
||||
*
|
||||
* While I'd like to finish conducting our business, it seems that you're a
|
||||
* bit overloaded with equipment at the moment.<BR><BR>
|
||||
*
|
||||
* Perhaps you should free some room in your backpack before we proceed.
|
||||
*/
|
||||
return 1054077;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054077;
|
||||
|
||||
private bool m_Logged;
|
||||
private bool m_BagOfSending;
|
||||
|
|
@ -246,18 +140,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class End2Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen queen looks up as you approach.</I><BR><BR>
|
||||
*
|
||||
* Ah good, you've returned. I will conclude our business by giving you any
|
||||
* remaining rewards I owe you for aiding me.
|
||||
*/
|
||||
return 1054078;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054078;
|
||||
|
||||
public End2Conversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,14 +5,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
{
|
||||
public class KillQueensObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill 5 red/black solen queens.
|
||||
return ((AmbitiousQueenQuest)System).RedSolen ? 1054062 : 1054063;
|
||||
}
|
||||
}
|
||||
public override object Message => ((AmbitiousQueenQuest)System).RedSolen ? 1054062 : 1054063;
|
||||
|
||||
public override int MaxProgress => 5;
|
||||
|
||||
|
|
@ -73,16 +66,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class ReturnAfterKillsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You've completed your task of slaying solen queens. Return to
|
||||
* the ambitious queen who asked for your help.
|
||||
*/
|
||||
return 1054067;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054067;
|
||||
|
||||
public ReturnAfterKillsObjective()
|
||||
{
|
||||
|
|
@ -96,16 +80,7 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class GatherFungiObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Gather zoogi fungus until you have 50 of them, then give them
|
||||
* to the ambitious queen you are helping.
|
||||
*/
|
||||
return 1054069;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054069;
|
||||
|
||||
public GatherFungiObjective()
|
||||
{
|
||||
|
|
@ -119,22 +94,21 @@ namespace Server.Engines.Quests.Ambitious
|
|||
|
||||
public class GetRewardObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to the ambitious solen queen for your reward.
|
||||
return 1054148;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054148;
|
||||
|
||||
private bool m_BagOfSending;
|
||||
private bool m_PowderOfTranslocation;
|
||||
private bool m_Gold;
|
||||
|
||||
public bool BagOfSending{ get{ return m_BagOfSending; } set{ m_BagOfSending = value; } }
|
||||
public bool PowderOfTranslocation{ get{ return m_PowderOfTranslocation; } set{ m_PowderOfTranslocation = value; } }
|
||||
public bool Gold{ get{ return m_Gold; } set{ m_Gold = value; } }
|
||||
public bool BagOfSending{ get => m_BagOfSending;
|
||||
set => m_BagOfSending = value;
|
||||
}
|
||||
public bool PowderOfTranslocation{ get => m_PowderOfTranslocation;
|
||||
set => m_PowderOfTranslocation = value;
|
||||
}
|
||||
public bool Gold{ get => m_Gold;
|
||||
set => m_Gold = value;
|
||||
}
|
||||
|
||||
public GetRewardObjective( bool bagOfSending, bool powderOfTranslocation, bool gold)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -54,40 +54,9 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
//return 1020549; // This localized message seems broken...
|
||||
return "Collector's Quest";
|
||||
}
|
||||
}
|
||||
public override object Name => "Collector's Quest";
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood greets you warmly, like an old friend he's not
|
||||
* quite sure he ever had.</I><BR><BR>
|
||||
*
|
||||
* Hello. Yes. Sit down. Please. Good. Okay, stand. Up to you.<BR><BR>
|
||||
*
|
||||
* So, what brings you to these parts... hey, wait. Just had a thought.
|
||||
* Would you like to do me a favor? Yes, really. You know, for old
|
||||
* times sake. The good ole days. You were always one of my best
|
||||
* suppliers. Or maybe you weren't, who knows any more. Anyway,
|
||||
* could use some help supplementing my stock. You know me. Always
|
||||
* looking for something new to add to the collection. Or sometimes
|
||||
* not so new - just more of the same. But don't have to tell you that.
|
||||
* You know, don't you. Yes. Just like old times. That's what it'll be.
|
||||
* You and me - together again. Ah, it's been too long.<BR><BR>
|
||||
*
|
||||
* So what do you think? The fee will be the same as always. I'm a fair
|
||||
* man. You know that. So what do you say?
|
||||
*/
|
||||
return 1055081;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1055081;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.Zero;
|
||||
public override bool IsTutorial => false;
|
||||
|
|
|
|||
|
|
@ -2,17 +2,7 @@ namespace Server.Engines.Quests.Collector
|
|||
{
|
||||
public class DontOfferConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood looks up from his ale as you greet him.</I><BR><BR>
|
||||
*
|
||||
* What's that? Who me? No, no. You must be looking for someone else.
|
||||
*/
|
||||
return 1055080;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055080;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -23,22 +13,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class DeclineConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood looks a bit flustered and nearly knocks over his
|
||||
* bottle of ale.</I><BR><BR>
|
||||
*
|
||||
* Well, I see. It's like that, is it? Yes. Well then. Okay.
|
||||
* You've changed. Yes. Yes, you have. Something's changed. I know
|
||||
* I haven't. Not me. Not good ole Elwood.<BR><BR>
|
||||
*
|
||||
* <I>Elwood trails off, though you can still hear him muttering softly.</I>
|
||||
*/
|
||||
return 1055082;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055082;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -49,42 +24,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood slaps his knee and grins at you.</I><BR><BR>
|
||||
*
|
||||
* Yes. Yes. That's the spirit. I knew it. Knew it when I
|
||||
* first saw you. You remind me so much of your dear departed
|
||||
* father. Or someone. Not sure. Maybe no one. But that's okay.
|
||||
* Ah, good times.<BR><BR>
|
||||
*
|
||||
* Anyway, so as you know, I'm a collector. Got all kinds of
|
||||
* interesting things laying around back at my warehouse.
|
||||
* You know. You've seen it. Haven't you? Yes? No? Nevermind.
|
||||
* Not important.<BR><BR>
|
||||
*
|
||||
* Right. So, always trying to add new things to my collection.
|
||||
* Or sometimes just get more of something. Can't have too many.
|
||||
* Right? Yeah? Sure.<BR><BR>
|
||||
*
|
||||
* Let's see. Where to start. Oh, I know. Pearls. Yes. But not
|
||||
* just any pearls. Rainbow pearls. Yes. From the lake here in
|
||||
* Haven. Seems all that magic Uzeraan was throwing around when
|
||||
* he transformed the island had an interesting effect on some
|
||||
* of the shellfish down there. Exactly, rainbow pearls. Useless
|
||||
* for magic, but an item worth collecting. Trust me on this.
|
||||
* Trust me.<BR><BR>
|
||||
*
|
||||
* Need you to go fish some up for me. Down at the lake. Lake Haven.
|
||||
* Off ya go. Happy fishing!<BR><BR>
|
||||
*
|
||||
* <I>Elwood turns back to his ale and now seems oblivious to you.</I>
|
||||
*/
|
||||
return 1055083;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055083;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -98,19 +38,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringFishConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood looks up as you tap him on the shoulder.</I><BR><BR>
|
||||
*
|
||||
* Good. Good. You're back. Wait. You don't have the rainbow pearls I
|
||||
* need. Taking a break? Yeah. Sure. There's no hurry. Let me know when
|
||||
* you've got all those pearls, though. I'll be here.
|
||||
*/
|
||||
return 1055089;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055089;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -121,30 +49,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnPearlsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood jumps slightly when you call his name.</I><BR><BR>
|
||||
*
|
||||
* What. I'm awake. Oh, It's you. Hey, look at those pearls.
|
||||
* Beautiful. Wow. Where'd you get those... oh right. I sent you to get
|
||||
* them. From the lake. Lake Haven. Great job. Gotta love rainbow
|
||||
* pearls. Oooh, Colors.<BR><BR>
|
||||
*
|
||||
* Okay, let's see. Next. Need a painting. Go to the Colored Canvas and
|
||||
* speak to Alberta. Alberta Giacco. Best painter I've ever met. Ask
|
||||
* her to do a painting of you. Yes. Of you. A portrait. Never know if
|
||||
* you might up and become famous one day. Need to have a painting of you
|
||||
* in my collection. From now. Before all the fame. Go. Alberta awaits.
|
||||
* She's in Vesper.<BR><BR>
|
||||
*
|
||||
* <I>Elwood starts playing with the pearls you brought him and seems
|
||||
* to have forgotten you're there.</I>
|
||||
*/
|
||||
return 1055090;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055090;
|
||||
|
||||
public ReturnPearlsConversation()
|
||||
{
|
||||
|
|
@ -158,26 +63,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class AlbertaPaintingConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Alberta looks up from the painting she is working on and
|
||||
* faces you.</I><BR><BR>
|
||||
*
|
||||
* Excuse me. I don't mean to be rude, but I'm in the middle
|
||||
* of something, and can't... oh wait, I see. You must be the one
|
||||
* Elwood sent over.<BR><BR>
|
||||
*
|
||||
* Very well. If you'll have a seat on the stool over there, we'll
|
||||
* get started. This will just take a few seconds. I paint quite
|
||||
* quickly, you see. I'll start once you are seated.<BR><BR>
|
||||
*
|
||||
* <I>Alberta exchanges the painting she was working on for a blank canvas.</I>
|
||||
*/
|
||||
return 1055092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055092;
|
||||
|
||||
public AlbertaPaintingConversation()
|
||||
{
|
||||
|
|
@ -191,21 +77,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class AlbertaStoolConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Alberta looks at you sympathetically.</I><BR><BR>
|
||||
*
|
||||
* Don't worry, this will only take a few seconds. I realize
|
||||
* that stool can be uncomfortable, and I apologize for that.
|
||||
* Perhaps I should replace it with a more comfortable chair.
|
||||
* But then again, it's that very discomfort that helps produce
|
||||
* such wonderful facial expressions for my paintings. Ah well.
|
||||
*/
|
||||
return 1055096;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055096;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -216,25 +88,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class AlbertaEndPaintingConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Alberta stands back from the canvas and surveys her
|
||||
* work.</I><BR><BR>
|
||||
*
|
||||
* Not too bad. Quite good even, if I do say so myself. As always,
|
||||
* of course.<BR><BR>
|
||||
*
|
||||
* Oh, you're still here. Please let Elwood know that the painting
|
||||
* has been completed. I'll have it sent to him once it dries.<BR><BR>
|
||||
*
|
||||
* <I>Alberta removes the portrait from her easel and sets
|
||||
* it aside to dry.</I>
|
||||
*/
|
||||
return 1055098;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055098;
|
||||
|
||||
public AlbertaEndPaintingConversation()
|
||||
{
|
||||
|
|
@ -248,18 +102,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class AlbertaAfterPaintingConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Alberta stops cleaning her brushes and looks your way.</I><BR><BR>
|
||||
*
|
||||
* Don't worry, I'll send the painting to Elwood once it's dry. Please
|
||||
* let him know that the painting has been finished.
|
||||
*/
|
||||
return 1055102;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055102;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -270,22 +113,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringPainting1Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood yawns and stretches, then focuses his gaze
|
||||
* on you.</I><BR><BR>
|
||||
*
|
||||
* Hello. Do I know you? Hold on a second. Yes. Yes, I do.
|
||||
* You were going to bring me some rainbow pearls. Wait. No.
|
||||
* You already did that. I remember now. Right. So go get that
|
||||
* portrait painted. Alberta is in Vesper. Go to her. Alberta
|
||||
* Giacco. Come back when she's done.
|
||||
*/
|
||||
return 1055094;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055094;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -296,28 +124,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringPainting2Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood drums his fingers on the counter then looks
|
||||
* up at you expectantly.</I><BR><BR>
|
||||
*
|
||||
* Ah, finally. I'm famished. This so-called tavern doesn't
|
||||
* even serve pizza, so one must have it delivered. It's an
|
||||
* outrage. Er... wait. Where's my pizza? Yes, my pizza.
|
||||
* What kind of delivery is this? Didn't even bring my pizza.
|
||||
* This will severely impact your tip, I'm afraid.<BR><BR>
|
||||
*
|
||||
* Hold on a moment. You were helping me with something else,
|
||||
* weren't you? Ah. Yes. I've got it now. You were to have a
|
||||
* portrait done. Well. Good. Yes. But let's not dawdle.
|
||||
* Off you go. If you happen to see anyone with my pizza,
|
||||
* please insist they hurry.<BR><BR>
|
||||
*/
|
||||
return 1055097;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055097;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -328,35 +135,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnPaintingConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood notices you immediately and waves you over.</I><BR><BR>
|
||||
*
|
||||
* You're back. Good. That's good. Hmm. You don't seem to have that
|
||||
* painting yet. Don't tell me Alberta refused. That's no good. I made
|
||||
* her what she is! She was living in the gutter when I found her. The
|
||||
* gutter. And she has the... what's that? Oh, she finished the portrait.
|
||||
* Right. Good. Can always count on Alberta. Always. Best painter in
|
||||
* the land.<BR><BR>
|
||||
*
|
||||
* Just have a couple... er... wait... make that... two more task for you.
|
||||
* Then our business will be concluded. For now. Old chums like us will
|
||||
* always work together again. Yes. We go so far back. Right. I think.<BR><BR>
|
||||
*
|
||||
* Anyway. There's a musician. A minstrel. His name's Gabriel Piete. Quite
|
||||
* the good singer. One of my favorites. Absolute favorite. What I'd like
|
||||
* is his autograph. Simple. Just his autograph. You're likely to find him
|
||||
* at the Conservatory of Music in Britain. He's often there. Often. Between
|
||||
* performances. Hurry now. There ya go.<BR><BR>
|
||||
*
|
||||
* <I>Elwood falls silent though his lips are still moving. It looks like
|
||||
* he's quietly repeating the word, "autograph."</I>
|
||||
*/
|
||||
return 1055100;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055100;
|
||||
|
||||
public ReturnPaintingConversation()
|
||||
{
|
||||
|
|
@ -370,30 +149,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class GabrielAutographConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Gabriel sighs loudly as you address him and stops whatever
|
||||
* it was that he was doing.</I><BR><BR>
|
||||
*
|
||||
* WHAT?!? Can you not see that I'm working here? Ugh, sometimes
|
||||
* I wish they'd just lock the outer doors to anyone who doesn't
|
||||
* belong here. So go ahead and fawn. Get it over with, and then
|
||||
* leave. Sooner you're out of here, the sooner I'm back to work.<BR><BR>
|
||||
*
|
||||
* I see. So you want an autograph. Fine. If it'll get rid of you,
|
||||
* I'll give you my autograph. But I'll only sign some sheet music
|
||||
* for one of my songs. Until then, please let me get back to work.<BR><BR>
|
||||
*
|
||||
* You can probably find some of my sheet music at one of the theaters
|
||||
* in the land. When I perform there, they often sell it as a souvenir.
|
||||
* Speak to the impresario... the theater manager. My last three
|
||||
* performances were in Nujel'm, Jhelom, and here in Britian.
|
||||
*/
|
||||
return 1055103;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055103;
|
||||
|
||||
public GabrielAutographConversation()
|
||||
{
|
||||
|
|
@ -407,18 +163,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class GabrielNoSheetMusicConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Gabriel does not look happy to see you.</I><BR><BR>
|
||||
*
|
||||
* Do you have any sheet music? No. Please return when you do,
|
||||
* but until then please leave me to my work.
|
||||
*/
|
||||
return 1055111;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055111;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -429,17 +174,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class NoSheetMusicConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Sheet music for a Gabriel Piete song? No, I'm sorry, but we've run out.
|
||||
* We might get some more after he performs here again, but right now
|
||||
* we don't have any. My apologies.
|
||||
*/
|
||||
return 1055106;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055106;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -450,14 +185,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class GetSheetMusicConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The theater impresario hands you some sheet of music for one of Gabriel Piete's songs.
|
||||
return 1055109;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055109;
|
||||
|
||||
public GetSheetMusicConversation()
|
||||
{
|
||||
|
|
@ -471,20 +199,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class GabrielSheetMusicConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Gabriel looks up impatiently as you approach.</I><BR><BR>
|
||||
*
|
||||
* Good. We can finally be done with one another. Here, let me
|
||||
* sign that and have this business completed.<BR><BR>
|
||||
*
|
||||
* <I>Gabriel takes the sheet music, autographs it, and then hands it back to you.</I>
|
||||
*/
|
||||
return 1055113;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055113;
|
||||
|
||||
public GabrielSheetMusicConversation()
|
||||
{
|
||||
|
|
@ -498,14 +213,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class GabrielIgnoreConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// <I>Gabriel ignores you.</I>
|
||||
return 1055118;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055118;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -516,28 +224,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringAutograph1Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood jumps and almost falls from his stool when you
|
||||
* tap his shoulder.</I><BR><BR>
|
||||
*
|
||||
* Oh my. Don't do that. Scared me half to death. Sneaking up on
|
||||
* people like that. I don't even know you. Yes, I do. I do know you.
|
||||
* Ordered a pizza from you and never received it. I'm rather miffed
|
||||
* about that.<BR><BR>
|
||||
*
|
||||
* No. No. Wait. Of course. Not the pizza. You're here with the
|
||||
* moonfire brew I wanted. Magical moonfire brew. Not sure what it is.
|
||||
* Just want some.<BR><BR>
|
||||
*
|
||||
* What's that? Oh. The autograph. Gabriel Piete. Yes. Of course.
|
||||
* Do you have it? No. Well. Hmm. Don't sneak up on people like that. Not polite.
|
||||
*/
|
||||
return 1055105;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055105;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -548,24 +235,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringAutograph2Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood seems to be studying the bottom of his bottle of ale
|
||||
* as you approach.</I><BR><BR>
|
||||
*
|
||||
* What's this? Strange. Quite strange. I could have sworn I was
|
||||
* drinking wine.<BR><BR>
|
||||
*
|
||||
* Oh, hello. Yes. Good to see you. Any luck with that autograph?
|
||||
* Bet you thought I'd forgotten. No. Not me. Mind like a steel trap.
|
||||
* Can't get it open no matter how hard you try. Or something. No luck
|
||||
* yet? Ah well. keep trying. I have faith in you. Whoever you are.
|
||||
*/
|
||||
return 1055112;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055112;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -576,19 +246,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringAutograph3Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood scratches his ear then notices you.</I><BR><BR>
|
||||
*
|
||||
* Good day. What brings you to the Albatross? Me? An autograph?
|
||||
* You want my autograph? Well, I suppose. What's that? Oh. Yes.
|
||||
* Gabriel Piete. Yes. Get his autograph and return to me. Good day.
|
||||
*/
|
||||
return 1055115;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055115;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -599,26 +257,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnAutographConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood looks up eagerly as you tell him about the autographed
|
||||
* sheet music.</I><BR><BR>
|
||||
*
|
||||
* Quite good work. Not an easy one to deal with, that one. Gabriel Piete.
|
||||
* Yes. Well done. Nice autograph.<BR><BR>
|
||||
*
|
||||
* One last task. I would like a set of toy monster figurines made by the
|
||||
* famous toymaker, Tomas O'Neerlan. You'll find him in Trinsic. He's often
|
||||
* at the Tinker's Guild. Try looking there.<BR><BR>
|
||||
*
|
||||
* You're doing quite well. Quite well indeed. Knew you would. Just like old
|
||||
* times. Yes. Quite good.
|
||||
*/
|
||||
return 1055116;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055116;
|
||||
|
||||
public ReturnAutographConversation()
|
||||
{
|
||||
|
|
@ -632,26 +271,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class TomasToysConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Tomas smiles freely as you speak to him.</I><BR><BR>
|
||||
*
|
||||
* Ah, to be sure I can make you some toy monster figurines.
|
||||
* That's my work, making toys. Worry not, we'll put together
|
||||
* a good set of monsters for you and your figurines.<BR><BR>
|
||||
*
|
||||
* But I'll be needing something from you before I can begin.
|
||||
* Here, take these enchanted paints. Using them, you can capture
|
||||
* a set of images of the creatures you wish me to make into toys.
|
||||
* It'll only work on the group of creatures I select for your
|
||||
* set of figurines. Oh, and I'll be needing those enchanted paints
|
||||
* back when all is said and done.<BR><BR>
|
||||
*/
|
||||
return 1055119;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055119;
|
||||
|
||||
public TomasToysConversation()
|
||||
{
|
||||
|
|
@ -665,20 +285,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class TomasDuringCollectingConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Tomas greets you warmly as you approach.</I><BR><BR>
|
||||
*
|
||||
* 'Tis good to see you. I see that you have not yet collected
|
||||
* all of the images we need. 'Tis fine, but I'll be needing
|
||||
* those before I can make the toy figurines. Return when you have
|
||||
* the complete set of images.<BR><BR>
|
||||
*/
|
||||
return 1055129;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055129;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -689,22 +296,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnImagesConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Tomas grins as you walk toward him.</I><BR><BR>
|
||||
*
|
||||
* I see that you have collected all of the images we need.
|
||||
* 'Tis good. I'll begin straight away on the toy figurines.
|
||||
* I'll have them delivered to you when ready. Where shall I send
|
||||
* them? To Elwood in Haven? Yes, I know him. We've done business
|
||||
* in the past. Odd fellow.<BR><BR>Tomas smiles as you return his
|
||||
* enchanted paints back to him.<BR><BR>
|
||||
*/
|
||||
return 1055131;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055131;
|
||||
|
||||
public ReturnImagesConversation()
|
||||
{
|
||||
|
|
@ -718,23 +310,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringToys1Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>You watch as Elwood spins around blissfully on his stool.</I><BR><BR>
|
||||
*
|
||||
* Oh. Forgive me. Didn't see you there. Whoo. Dizzy. Can't see straight.
|
||||
* Have you gotten those figurines yet? No. Ah. Not to worry. Keep at it.
|
||||
* No doubt you'll come through with those.<BR><BR>
|
||||
*
|
||||
* Excuse me a moment. I think I need to sit down. Wait. I am sitting down.
|
||||
* Good then. Yes. Sitting down.<BR><BR><I>Elwood reaches out and takes hold
|
||||
* of the counter as if to steady himself.</I>
|
||||
*/
|
||||
return 1055123;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055123;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -745,25 +321,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringToys2Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood suddenly stops and beckons you over to him.</I><BR><BR>
|
||||
*
|
||||
* Over here. Come here. Don't be alarmed, but I think one of the
|
||||
* tavernkeepers used to be a wandering healer. Said something about
|
||||
* the good ole days when people would just walk up and hand gold to
|
||||
* them. Piles of gold. Out of the blue. Can you imagine? Got so much
|
||||
* gold, this ex-healer decided to buy a tavern and settle down. Kind
|
||||
* of sad really. Can't even cure my hangover now. Nice tavern though.<BR><BR>
|
||||
*
|
||||
* Right. Anyway. Let me know when those toy figurines are ready.
|
||||
* I'll be here. As always.
|
||||
*/
|
||||
return 1055130;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055130;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -774,22 +332,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ElwoodDuringToys3Conversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood is singing as you greet him.</I><BR><BR>
|
||||
*
|
||||
* Come. Join in. It's a Gabriel Piete song. I have the sheet music
|
||||
* for it. It's even autographed by Gabriel Piete himself. Yes.
|
||||
* One of his songs. Brilliant.<BR><BR>
|
||||
*
|
||||
* So let me see the toys. Figurines. Let's see them. Oh. You don't
|
||||
* have them yet. I see. Well. Okay. That's too bad.
|
||||
*/
|
||||
return 1055133;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055133;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -800,26 +343,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood takes a sip of his ale as you address him.</I><BR><BR>
|
||||
*
|
||||
* Ah. That's the stuff. Ale. Nothing better. What's that? Toy figurines
|
||||
* will be delivered. Right. Yes. Perhaps better than Ale. Tough one.<BR><BR>
|
||||
*
|
||||
* Very good work. Quite. Think we're all done now. You completed everything
|
||||
* I asked. Would work with you again. Yes. We should.<BR><BR>
|
||||
*
|
||||
* Ah. Yes. your payment. The usual. I think you'll be pleased.<BR><BR>
|
||||
*
|
||||
* <I>With that Elwood rummages around in his backpack. He eventually
|
||||
* pulls out a small bag and hands it to you.</I>
|
||||
*/
|
||||
return 1055134;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055134;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
@ -835,20 +359,7 @@ namespace Server.Engines.Quests.Collector
|
|||
{
|
||||
private bool m_Logged;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Elwood stares at you as you approach.</I><BR><BR>
|
||||
*
|
||||
* I know you. Oh yes. You've been running some errands for me.
|
||||
* We are about done. Noticed that your backpack is a bit full.
|
||||
* Might want to make some room. Won't be able to hold your payment.
|
||||
* Come back when you have more room, and we'll conclude our business.
|
||||
*/
|
||||
return 1055135;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055135;
|
||||
|
||||
public override bool Logged => m_Logged;
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public int Figurine => m_Figurine;
|
||||
public Type Type => m_Type;
|
||||
public int Name { get { return m_Figurine < 0x4000 ? 1020000 + m_Figurine : 1078872 + m_Figurine; } }
|
||||
public int Name => m_Figurine < 0x4000 ? 1020000 + m_Figurine : 1078872 + m_Figurine;
|
||||
public int X => m_X;
|
||||
public int Y => m_Y;
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ namespace Server.Engines.Quests.Collector
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Quantity
|
||||
{
|
||||
get { return m_Quantity; }
|
||||
get => m_Quantity;
|
||||
set
|
||||
{
|
||||
if ( value <= 1 )
|
||||
|
|
@ -113,7 +113,7 @@ namespace Server.Engines.Quests.Collector
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string StatueName
|
||||
{
|
||||
get { return m_StatueName; }
|
||||
get => m_StatueName;
|
||||
set { m_StatueName = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ namespace Server.Engines.Quests.Collector
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public ImageType Image
|
||||
{
|
||||
get { return m_Image; }
|
||||
get => m_Image;
|
||||
set { m_Image = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,14 +5,7 @@ namespace Server.Engines.Quests.Collector
|
|||
{
|
||||
public class FishPearlsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Fish up shellfish from Lake Haven and collect rainbow pearls.
|
||||
return 1055084;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055084;
|
||||
|
||||
public override int MaxProgress => 6;
|
||||
|
||||
|
|
@ -45,16 +38,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnPearlsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You've collected enough rainbow pearls. Speak to
|
||||
* Elwood to give them to him and get your next task.
|
||||
*/
|
||||
return 1055088;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055088;
|
||||
|
||||
public ReturnPearlsObjective()
|
||||
{
|
||||
|
|
@ -68,14 +52,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class FindAlbertaObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Go to Vesper and speak to Alberta Giacco at the Colored Canvas.
|
||||
return 1055091;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055091;
|
||||
|
||||
public FindAlbertaObjective()
|
||||
{
|
||||
|
|
@ -94,16 +71,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
private DateTime m_Begin;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Sit on the stool in front of Alberta's easel so that she can
|
||||
* paint your portrait. You'll need to sit there for about 30 seconds.
|
||||
*/
|
||||
return 1055093;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055093;
|
||||
|
||||
public SitOnTheStoolObjective()
|
||||
{
|
||||
|
|
@ -140,14 +108,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnPaintingObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Elwood and let him know that the painting is complete.
|
||||
return 1055099;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055099;
|
||||
|
||||
public ReturnPaintingObjective()
|
||||
{
|
||||
|
|
@ -161,16 +122,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class FindGabrielObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Go to Britain and obtain the autograph of renowned
|
||||
* minstrel, Gabriel Piete. He is often found at the Conservatory of Music.
|
||||
*/
|
||||
return 1055101;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055101;
|
||||
|
||||
public FindGabrielObjective()
|
||||
{
|
||||
|
|
@ -193,16 +145,7 @@ namespace Server.Engines.Quests.Collector
|
|||
{
|
||||
private Theater m_Theater;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find some sheet music for one of Gabriel's songs.
|
||||
* Try speaking to an impresario from one of the theaters in the land.
|
||||
*/
|
||||
return 1055104;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055104;
|
||||
|
||||
public FindSheetMusicObjective( bool init )
|
||||
{
|
||||
|
|
@ -265,14 +208,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnSheetMusicObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Speak to Gabriel to have him autograph the sheet music.
|
||||
return 1055110;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055110;
|
||||
|
||||
public ReturnSheetMusicObjective()
|
||||
{
|
||||
|
|
@ -286,14 +222,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnAutographObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Speak to Elwood to give him the autographed sheet music.
|
||||
return 1055114;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055114;
|
||||
|
||||
public ReturnAutographObjective()
|
||||
{
|
||||
|
|
@ -307,14 +236,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class FindTomasObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Go to Trinsic and speak to Tomas O'Neerlan, the famous toymaker.
|
||||
return 1055117;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055117;
|
||||
|
||||
public FindTomasObjective()
|
||||
{
|
||||
|
|
@ -338,14 +260,7 @@ namespace Server.Engines.Quests.Collector
|
|||
private ImageType[] m_Images;
|
||||
private bool[] m_Done;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Use the enchanted paints to capture the image of all of the creatures listed below.
|
||||
return 1055120;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055120;
|
||||
|
||||
public override bool Completed
|
||||
{
|
||||
|
|
@ -477,16 +392,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnImagesObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You now have all of the creature images you need.
|
||||
* Return to Tomas O'Neerlan so that he can make the toy figurines.
|
||||
*/
|
||||
return 1055128;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055128;
|
||||
|
||||
public ReturnImagesObjective()
|
||||
{
|
||||
|
|
@ -500,14 +406,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class ReturnToysObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Elwood with news that the toy figurines will be delivered when ready.
|
||||
return 1055132;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055132;
|
||||
|
||||
public ReturnToysObjective()
|
||||
{
|
||||
|
|
@ -516,14 +415,7 @@ namespace Server.Engines.Quests.Collector
|
|||
|
||||
public class MakeRoomObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Elwood for your reward when you have some room in your backpack.
|
||||
return 1055136;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055136;
|
||||
|
||||
public MakeRoomObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Server.Engines.Quests
|
|||
public abstract class BaseQuester : BaseVendor
|
||||
{
|
||||
protected List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos{ get { return m_SBInfos; } }
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override bool IsActiveVendor => false;
|
||||
public override bool IsInvulnerable => true;
|
||||
|
|
@ -34,7 +34,8 @@ namespace Server.Engines.Quests
|
|||
public override bool ClickTitle => false;
|
||||
public override bool CanTeach => false;
|
||||
|
||||
public virtual int TalkNumber{ get{ return 6146; } } // Talk
|
||||
public virtual int TalkNumber // Talk
|
||||
=> 6146;
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@ namespace Server.Engines.Quests
|
|||
|
||||
public abstract bool GetDestination( PlayerMobile player, ref Point3D loc, ref Map map );
|
||||
|
||||
public virtual int NotWorkingMessage{ get{ return 500309; } } // Nothing Happens.
|
||||
public virtual int NotWorkingMessage // Nothing Happens.
|
||||
=> 500309;
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,21 +12,21 @@ namespace Server.Engines.Quests
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D DestLoc
|
||||
{
|
||||
get{ return m_DestLoc; }
|
||||
set{ m_DestLoc = value; }
|
||||
get => m_DestLoc;
|
||||
set => m_DestLoc = value;
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Map DestMap
|
||||
{
|
||||
get{ return m_DestMap; }
|
||||
set{ m_DestMap = value; }
|
||||
get => m_DestMap;
|
||||
set => m_DestMap = value;
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Charges
|
||||
{
|
||||
get{ return m_Charges; }
|
||||
get => m_Charges;
|
||||
set{ m_Charges = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,19 +11,19 @@ namespace Server.Engines.Quests
|
|||
|
||||
public abstract object Message{ get; }
|
||||
|
||||
public virtual QuestItemInfo[] Info{ get{ return null; } }
|
||||
public virtual bool Logged{ get{ return true; } }
|
||||
public virtual QuestItemInfo[] Info => null;
|
||||
public virtual bool Logged => true;
|
||||
|
||||
public QuestSystem System
|
||||
{
|
||||
get{ return m_System; }
|
||||
set{ m_System = value; }
|
||||
get => m_System;
|
||||
set => m_System = value;
|
||||
}
|
||||
|
||||
public bool HasBeenRead
|
||||
{
|
||||
get{ return m_HasBeenRead; }
|
||||
set{ m_HasBeenRead = value; }
|
||||
get => m_HasBeenRead;
|
||||
set => m_HasBeenRead = value;
|
||||
}
|
||||
|
||||
public QuestConversation()
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ namespace Server.Engines.Quests
|
|||
|
||||
public object Name
|
||||
{
|
||||
get{ return m_Name; }
|
||||
set{ m_Name = value; }
|
||||
get => m_Name;
|
||||
set => m_Name = value;
|
||||
}
|
||||
|
||||
public int ItemID
|
||||
{
|
||||
get{ return m_ItemID; }
|
||||
set{ m_ItemID = value; }
|
||||
get => m_ItemID;
|
||||
set => m_ItemID = value;
|
||||
}
|
||||
|
||||
public QuestItemInfo( object name, int itemID )
|
||||
|
|
|
|||
|
|
@ -15,42 +15,36 @@ namespace Server.Engines.Quests
|
|||
|
||||
public abstract object Message{ get; }
|
||||
|
||||
public virtual int MaxProgress{ get{ return 1; } }
|
||||
public virtual QuestItemInfo[] Info{ get{ return null; } }
|
||||
public virtual int MaxProgress => 1;
|
||||
public virtual QuestItemInfo[] Info => null;
|
||||
|
||||
public QuestSystem System
|
||||
{
|
||||
get{ return m_System; }
|
||||
set{ m_System = value; }
|
||||
get => m_System;
|
||||
set => m_System = value;
|
||||
}
|
||||
|
||||
public bool HasBeenRead
|
||||
{
|
||||
get{ return m_HasBeenRead; }
|
||||
set{ m_HasBeenRead = value; }
|
||||
get => m_HasBeenRead;
|
||||
set => m_HasBeenRead = value;
|
||||
}
|
||||
|
||||
public int CurProgress
|
||||
{
|
||||
get{ return m_CurProgress; }
|
||||
get => m_CurProgress;
|
||||
set{ m_CurProgress = value; CheckCompletionStatus(); }
|
||||
}
|
||||
|
||||
public bool HasCompleted
|
||||
{
|
||||
get{ return m_HasCompleted; }
|
||||
set{ m_HasCompleted = value; }
|
||||
get => m_HasCompleted;
|
||||
set => m_HasCompleted = value;
|
||||
}
|
||||
|
||||
public virtual bool Completed
|
||||
{
|
||||
get{ return m_CurProgress >= MaxProgress; }
|
||||
}
|
||||
public virtual bool Completed => m_CurProgress >= MaxProgress;
|
||||
|
||||
public bool IsSingleObjective
|
||||
{
|
||||
get{ return ( MaxProgress == 1 ); }
|
||||
}
|
||||
public bool IsSingleObjective => ( MaxProgress == 1 );
|
||||
|
||||
public QuestObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ namespace Server.Engines.Quests
|
|||
|
||||
public Type QuestType
|
||||
{
|
||||
get{ return m_QuestType; }
|
||||
set{ m_QuestType = value; }
|
||||
get => m_QuestType;
|
||||
set => m_QuestType = value;
|
||||
}
|
||||
|
||||
public DateTime RestartTime
|
||||
{
|
||||
get{ return m_RestartTime; }
|
||||
set{ m_RestartTime = value; }
|
||||
get => m_RestartTime;
|
||||
set => m_RestartTime = value;
|
||||
}
|
||||
|
||||
public void Reset( TimeSpan restartDelay )
|
||||
|
|
|
|||
|
|
@ -44,20 +44,20 @@ namespace Server.Engines.Quests
|
|||
|
||||
public PlayerMobile From
|
||||
{
|
||||
get{ return m_From; }
|
||||
set{ m_From = value; }
|
||||
get => m_From;
|
||||
set => m_From = value;
|
||||
}
|
||||
|
||||
public ArrayList Objectives
|
||||
{
|
||||
get{ return m_Objectives; }
|
||||
set{ m_Objectives = value; }
|
||||
get => m_Objectives;
|
||||
set => m_Objectives = value;
|
||||
}
|
||||
|
||||
public ArrayList Conversations
|
||||
{
|
||||
get{ return m_Conversations; }
|
||||
set{ m_Conversations = value; }
|
||||
get => m_Conversations;
|
||||
set => m_Conversations = value;
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Engines.Quests
|
|||
{
|
||||
private Type m_Quest;
|
||||
|
||||
public Type Quest{ get{ return m_Quest; } }
|
||||
public Type Quest => m_Quest;
|
||||
|
||||
public CancelQuestRegion( XmlElement xml, Map map, Region parent ) : base( xml, map, parent )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ namespace Server.Engines.Quests
|
|||
private Type m_Quest;
|
||||
private Type m_Objective;
|
||||
|
||||
public Type Quest{ get{ return m_Quest ; } }
|
||||
public Type Objective{ get{ return m_Objective; } }
|
||||
public Type Quest => m_Quest;
|
||||
public Type Objective => m_Objective;
|
||||
|
||||
public QuestCompleteObjectiveRegion( XmlElement xml, Map map, Region parent ) : base( xml, map, parent )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@ namespace Server.Engines.Quests
|
|||
private Type m_MaxObjective;
|
||||
private int m_Message;
|
||||
|
||||
public Type Quest{ get{ return m_Quest; } }
|
||||
public Type MinObjective{ get{ return m_MinObjective; } }
|
||||
public Type MaxObjective{ get{ return m_MaxObjective; } }
|
||||
public int Message{ get{ return m_Message; } }
|
||||
public Type Quest => m_Quest;
|
||||
public Type MinObjective => m_MinObjective;
|
||||
public Type MaxObjective => m_MaxObjective;
|
||||
public int Message => m_Message;
|
||||
|
||||
public QuestNoEntryRegion( XmlElement xml, Map map, Region parent ) : base( xml, map, parent )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Engines.Quests
|
|||
{
|
||||
private Type m_Quest;
|
||||
|
||||
public Type Quest{ get{ return m_Quest ; } }
|
||||
public Type Quest => m_Quest;
|
||||
|
||||
public QuestOfferRegion( XmlElement xml, Map map, Region parent ) : base( xml, map, parent )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,35 +4,7 @@ namespace Server.Engines.Quests.Necro
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear in a
|
||||
* window such as this one. You can review the information at
|
||||
* any time during your quest.<BR><BR><U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest, will
|
||||
* be underlined <a href = "?ForceTopic73">links to the codex of
|
||||
* wisdom</a>, or online help system. You can click on the text
|
||||
* to get detailed information on the underlined subject. You
|
||||
* may also access the Codex Of Wisdom by pressing "F1" or by
|
||||
* clicking on the "?" on the toolbar at the top of your screen.<BR><BR>
|
||||
*
|
||||
* <U>Context Menus</U><BR><BR>Context menus can be called up by
|
||||
* single left-clicking (or Shift + single left-click, if you
|
||||
* changed it) on most objects or NPCs in the world. Nearly
|
||||
* everything, including your own avatar will have context menus
|
||||
* available. Bringing up your avatar's context menu will give
|
||||
* you options to cancel your quest and review various quest
|
||||
* information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049092;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -52,49 +24,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class ReanimateMaabusConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Excellent choice, young apprentice of evil!<BR><BR>
|
||||
*
|
||||
* I will not waste our time with pleasantries. There is much work
|
||||
* to be done <EFBFBD> especially in light of the recent Paladin ambushes
|
||||
* that we have suffered. The necromantic brotherhood is working
|
||||
* towards the summoning of the elder daemon Kronus, who will rise
|
||||
* from the Well of Tears to help us finally crush the Paladin forces
|
||||
* that have plagued our lands for so long now.<BR><BR>
|
||||
*
|
||||
* To summon Kronus, we must energize the Well of Tears with a series
|
||||
* of dark rituals. Unfortunately the rituals needed to sufficiently
|
||||
* energize the Well of Tears have been lost to us. Your task will be
|
||||
* to recover one of the ritual scrolls needed for the summoning.<BR><BR>
|
||||
*
|
||||
* You will need to find the corpse of the Arch Necromancer Maabus, which
|
||||
* has been laid to rest in the tomb of elders. We believe his spirit may
|
||||
* have memory of where we may find the scrolls needed for the summoning.
|
||||
* You will need to awaken him from the slumber of death, using your
|
||||
* Animate Dead spell, of course.<BR><BR>
|
||||
*
|
||||
* To reach the tomb, step onto the magical teleporter just to the
|
||||
* <a href = "?ForceTopic13">West</a> of where I am standing.<BR><BR>
|
||||
*
|
||||
* Once you have been teleported, follow the path, which will lead you to
|
||||
* the tomb of Maabus.<BR><BR>One more thing before you go:<BR><BR>
|
||||
*
|
||||
* Should you get into trouble out there or should you lose your way, do
|
||||
* not worry. I have also given you a magical horn - a <I>Horn of Retreat</I>.
|
||||
* Play the horn at any time to open a magical gateway that leads back to this
|
||||
* tower.<BR><BR>
|
||||
*
|
||||
* Should your horn run out of <a href = "?ForceTopic83">charges</a>, simply
|
||||
* hand me the horn to have it recharged.<BR><BR>
|
||||
*
|
||||
* Good luck friend.
|
||||
*/
|
||||
return 1060099;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060099;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -117,37 +47,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class MaabasConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Maabus emits an ear-crawling screech as his body reanimates.
|
||||
* He turns and angrily screams at you</I>:<BR><BR>
|
||||
*
|
||||
* YOU INFIDEL! HOW DARE YOU AWAKEN MAABUS!?!<BR><BR>
|
||||
*
|
||||
* <I>Maabus continues to scream at you angrily for some time.
|
||||
* As he settles down, you explain to him the purpose of your visit.
|
||||
* Once you explain that you are on a quest to summon the elder daemon
|
||||
* Kronus, Maabus begins to cooperate, and begins to speak in a more
|
||||
* reasonable tone</I>:<BR><BR>
|
||||
*
|
||||
* Well, why didn<EFBFBD>t you say so? If you<EFBFBD>re going to raise Kronus from
|
||||
* the Well of Tears, you must first complete a long series of dark
|
||||
* rituals. I once owned one of the scrolls needed for the summoning,
|
||||
* but alas it was lost to me when I lost my life to a cowardly Paladin
|
||||
* ambush near the Paladin city of Light. They would have probably
|
||||
* hidden the scroll in their precious crystal cave near the city.<BR><BR>
|
||||
*
|
||||
* There is a teleporter in the corner of this tomb. It will transport
|
||||
* you near the crystal cave at which I believe one of the calling scrolls
|
||||
* is hidden. Good luck.<BR><BR>
|
||||
*
|
||||
* <I>Maabus' body slumps back into the coffinas your magic expires</I>.
|
||||
*/
|
||||
return 1060103;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060103;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -168,37 +68,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class HorusConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>An old man, dressed in slightly tattered armor, whom you recognize
|
||||
* to be a Paladin stands before the Crystal Cave staring blankly into
|
||||
* the space in front of him. As he begins to speak to you, you realize
|
||||
* this man is blind. You attempt to persuade the blind man that you are
|
||||
* a Paladin seeking to inspect the scroll of calling...</I><BR><BR>
|
||||
*
|
||||
* Greetings traveler!<BR><BR>
|
||||
*
|
||||
* You seek entrance to the Crystal Cave, home of the Calling Scroll? Hmm.
|
||||
* You reak of death and decay, brother. You reak of death like a Necromancer,
|
||||
* but yet you claim to be a Paladin in hopes that I will grant thee passage
|
||||
* into the cave?<BR><BR>
|
||||
*
|
||||
* Please don<EFBFBD>t think ill of me for this, but I<EFBFBD>m just a blind, old man looking
|
||||
* to keep the brotherhood of Paladins safe from the clutches of the elder daemon
|
||||
* Kronus. The Necromancers have been after this particular scroll for quite some
|
||||
* time, so we must take all the security precautions we can.<BR><BR>
|
||||
*
|
||||
* Before I can let you pass into the Crystal Cave, you must speak to me the secret
|
||||
* word that is kept in the Scroll of Abraxus in the Vault of Secrets at the Paladin
|
||||
* city of Light. It<EFBFBD>s the only way that I can be sure you are who you claim to be,
|
||||
* since Necromancers cannot enter the Vault due to powerful protective magic that
|
||||
* the brotherhood has blessed the vault with.
|
||||
*/
|
||||
return 1060105;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060105;
|
||||
|
||||
public HorusConversation()
|
||||
{
|
||||
|
|
@ -212,32 +82,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class MardothVaultConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Mardoth looks at you expectantly until you tell him that you failed
|
||||
* to retrieve the scroll...</I><BR><BR>
|
||||
*
|
||||
* You failed? Very unfortunate... So now you must find your way into
|
||||
* the paladin<EFBFBD>s Vault of Secrets, eh? Well, you won't be able to get in
|
||||
* <EFBFBD> there is a powerful magic aura that protects the Vault from all
|
||||
* Necromancers. We simply cannot enter. However, that's not to say you
|
||||
* familiar spirit can't.<BR><BR>
|
||||
*
|
||||
* <I>Mardoth grins with obvious satisfaction
|
||||
* as he explains the details of the <a href="?ForceTopic127">Summon
|
||||
* Familiar</a> spell to you...</I>, which will allow you to summon a
|
||||
* scavenging Horde Minion to steal the scroll.<BR><BR>
|
||||
*
|
||||
* Very well. You are prepared to go. Take the teleporter just to the
|
||||
* <a href = "?ForceTopic13">West</a> of where I am standing to transport
|
||||
* to the Paladin city of Light. Once you have arrived in the city, follow
|
||||
* the road of glowing runes to the Vault of Secrets. You know what to do.
|
||||
*/
|
||||
return 1060107;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060107;
|
||||
|
||||
public MardothVaultConversation()
|
||||
{
|
||||
|
|
@ -251,28 +96,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class VaultOfSecretsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have arrived in the Vault of Secrets. You can feel the
|
||||
* protective magic in this place restricting you, making you
|
||||
* feel nearly claustrophobic.<BR><BR>
|
||||
*
|
||||
* Just ahead of you and out of your reach, you see a collection
|
||||
* of scrolls and books, one of them being entitled
|
||||
* 'Scroll of Abraxus' . You can only assume that this scroll
|
||||
* holds the current password required to enter the Crystal Cave.<BR><BR>
|
||||
*
|
||||
* This would be a good opportunity to <a href="?ForceTopic127">summon
|
||||
* your familiar</a>. Since your familiar is not a Necromancer, it
|
||||
* will not be affected by the anti-magic aura that surrounds the Vault.<BR><BR>
|
||||
*
|
||||
* Summon your familiar with the <a href="?ForceTopic127">Summon Familiar</a> spell.
|
||||
*/
|
||||
return 1060110;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060110;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -293,24 +117,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class ReadAbraxusScrollConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have obtained the Scroll of Abraxus, which contains the secret
|
||||
* password needed to gain passage into the Crystal Cave where the
|
||||
* Scroll of Calling is kept. Read the scroll (double click) and
|
||||
* figure out the password.<BR><BR>
|
||||
*
|
||||
* Once you have the password, return to the Crystal Cave and speak
|
||||
* the password to the guard.<BR><BR>
|
||||
*
|
||||
* If you do not know the way to the Crystal Cave from the Paladin City,
|
||||
* you can use the magic teleporter located just outside of the vault.
|
||||
*/
|
||||
return 1060114;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060114;
|
||||
|
||||
public ReadAbraxusScrollConversation()
|
||||
{
|
||||
|
|
@ -324,31 +131,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class SecondHorusConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Very well Paladin, you have proven to me your identity.
|
||||
* I grant thee passage.<BR><BR>
|
||||
*
|
||||
* Be careful, however <EFBFBD> I<EFBFBD>ve heard that the cave has been
|
||||
* infested with a vermin of some sort. Our High Lord
|
||||
* Melkeer was supposed to send some troops to clear the
|
||||
* vermin out of the cave, but that was last week already.
|
||||
* I fear that he forgot.<BR><BR>
|
||||
*
|
||||
* If you can find it in your goodness to dispose of at
|
||||
* least 5 of those vermin in there, I shall reward your
|
||||
* efforts. If however you are too busy, and I would
|
||||
* understand if you were, don<EFBFBD>t bother with the vermin.<BR><BR>
|
||||
*
|
||||
* You may now pass through the energy barrier to enter the
|
||||
* Crystal Cave. Take care honorable Paladin soul.
|
||||
* Walk in the light my friend.
|
||||
*/
|
||||
return 1060118;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060118;
|
||||
|
||||
public SecondHorusConversation()
|
||||
{
|
||||
|
|
@ -362,21 +145,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class HealConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You've just slain a creature. Now is a good time to learn how
|
||||
* to heal yourself as a Necromancer.<BR><BR>
|
||||
*
|
||||
* As a follower of the dark path, you are able to recover lost
|
||||
* hitpoints by communing with the spirit world via the skill
|
||||
* <a href="?ForceTopic133">Spirit Speak</a>. Learn more about it now,
|
||||
* <a href="?ForceTopic73">in the codex of Wisdom</a>.
|
||||
*/
|
||||
return 1061610;
|
||||
}
|
||||
}
|
||||
public override object Message => 1061610;
|
||||
|
||||
public HealConversation()
|
||||
{
|
||||
|
|
@ -385,20 +154,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class HorusRewardConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* I thank you for going out of your way to clean out some
|
||||
* of the vermin in that cave <EFBFBD> here is your reward: a bag
|
||||
* containing 500 gold coins plus a strange and magical artifact
|
||||
* that should come in handy in your travels.<BR><BR>
|
||||
*
|
||||
* Take care young Paladin!
|
||||
*/
|
||||
return 1060717;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060717;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -465,27 +221,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class MardothKronusConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have returned with the scroll! I knew I could count on you.
|
||||
* You can now perform the rite of calling at the Well of Tears.
|
||||
* This ritual will help charge the Well to prepare for the coming
|
||||
* of Kronus. You are prepared to do your part young Necromancer!<BR><BR>
|
||||
*
|
||||
* Just outside of this tower, you will find a path lined with red
|
||||
* lanterns. Follow this path to get to the Well of Tears. Once
|
||||
* you have arrived at the Well, use the scroll to perform the
|
||||
* ritual of calling. Performing the rite will empower the well
|
||||
* and bring us that much closer to the arrival of Kronus.<BR><BR>
|
||||
*
|
||||
* Once you have completed the ritual, return here for your
|
||||
* promised reward.
|
||||
*/
|
||||
return 1060121;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060121;
|
||||
|
||||
public MardothKronusConversation()
|
||||
{
|
||||
|
|
@ -499,36 +235,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class MardothEndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have done as I asked... I knew I could count on you from
|
||||
* the moment you walked in here!<BR><BR>
|
||||
*
|
||||
* The forces of evil are strong within you. You will become
|
||||
* a great Necromancer in this life - perhaps even the greatest.<BR><BR>
|
||||
*
|
||||
* My work for you is done here. I release you from my service
|
||||
* to go into the world and fight for our cause...<BR><BR>
|
||||
*
|
||||
* Oh...I almost forgot - your reward. Here is a magical
|
||||
* weapon and 2000 gold for you, in the form of a check. Don't
|
||||
* spend it all in one place though, eh?<BR><BR>
|
||||
*
|
||||
* Actually, before you can spend any of it at all, you will
|
||||
* have to <a href="?ForceTopic86">cash the check</a> at the
|
||||
* nearest bank. Shopkeepers never accept checks for payment,
|
||||
* they require cash.<BR><BR>
|
||||
*
|
||||
* In your pack, you will find an enchanted sextant. Use this
|
||||
* sextant to guide you to the nearest bank.<BR><BR>
|
||||
*
|
||||
* Farewell, and stay true to the ways of the shadow...
|
||||
*/
|
||||
return 1060133;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060133;
|
||||
|
||||
public MardothEndConversation()
|
||||
{
|
||||
|
|
@ -542,30 +249,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class BankerConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The banker smiles at you and greets you in a loud and robust voice...</I><BR><BR>
|
||||
*
|
||||
* Well hello there adventurer! I see you've learned how to cash checks. Wonderful!
|
||||
* Let me tell you a bit about the banks in this world...<BR><BR>
|
||||
*
|
||||
* Anything that you place into any bank box, can be retrieved from any other
|
||||
* bank box in the land. For instance, if you place an item into a bank box in
|
||||
* Britain, it can be retrieved from your bank box in Moonglow or any other city.<BR><BR>
|
||||
*
|
||||
* Bank boxes are very secure. So secure, in fact, that no one can ever get into
|
||||
* your bank box except for yourself. Security is hard to come by these days,
|
||||
* but you can trust in the banking system of Britannia! We shall not let you down!<BR><BR>
|
||||
*
|
||||
* I hope to be seeing much more of you as your riches grow! May your bank box overflow
|
||||
* with the spoils of your adventures.<BR><BR>Farewell adventurer, you are now free to
|
||||
* explore the world on your own.
|
||||
*/
|
||||
return 1060137;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060137;
|
||||
|
||||
public BankerConversation()
|
||||
{
|
||||
|
|
@ -579,21 +263,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class RadarConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* If you are leaving the tower, you should learn about the Radar Map.<BR><BR>
|
||||
*
|
||||
* The Radar Map (or Overhead View) can be opened by pressing 'ALT-R'
|
||||
* on your keyboard. It shows your immediate surroundings from a bird's
|
||||
* eye view.<BR><BR>Pressing ALT-R twice, will enlarge the Radar Map a
|
||||
* little. Use the Radar Map often as you travel throughout the world
|
||||
* to familiarize yourself with your surroundings.
|
||||
*/
|
||||
return 1061692;
|
||||
}
|
||||
}
|
||||
public override object Message => 1061692;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
|
|||
|
|
@ -46,56 +46,9 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Dark Tides
|
||||
return 1060095;
|
||||
}
|
||||
}
|
||||
public override object Name => 1060095;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>An old man who looks to be 200 years old from the looks
|
||||
* of his translucently pale and heavily wrinkled skin, turns
|
||||
* to you and gives you a half-cocked grin that makes you
|
||||
* feel somewhat uneasy.<BR><BR>
|
||||
*
|
||||
* After a short pause, he begins to speak to you...</I><BR><BR>
|
||||
*
|
||||
* Hmm. What's this? Another budding Necromancer to join the
|
||||
* ranks of Evil? Here... let me take a look at you... Ah
|
||||
* yes... Very Good! I sense the forces of evil are strong
|
||||
* within you, child <EFBFBD> but you need training so that you can
|
||||
* learn to focus your skills against those aligned against
|
||||
* our cause. You are destined to become a legendary
|
||||
* Necromancer - with the proper training, that only I can
|
||||
* give you.<BR><BR>
|
||||
*
|
||||
* <I>Mardoth pauses just long enough to give you a wide,
|
||||
* skin-crawling grin.</I><BR><BR>
|
||||
*
|
||||
* Let me introduce myself. I am Mardoth, the guildmaster of
|
||||
* the Necromantic Brotherhood. I have taken it upon myself
|
||||
* to train anyone willing to learn the dark arts of Necromancy.
|
||||
* The path of destruction, decay and obliteration is not an
|
||||
* easy one. Only the most evil and the most dedicated can
|
||||
* hope to master the sinister art of death.<BR><BR>
|
||||
*
|
||||
* I can lend you training and help supply you with equipment <EFBFBD>
|
||||
* in exchange for a few services rendered by you, of course.
|
||||
* Nothing major, just a little death and destruction here and
|
||||
* there - the tasks should be easy as a tasty meat pie for one
|
||||
* as treacherous and evil as yourself.<BR><BR>
|
||||
*
|
||||
* What do you say? Do we have a deal?
|
||||
*/
|
||||
return 1060094;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1060094;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
|
||||
public override bool IsTutorial => true;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,9 @@ namespace Server.Engines.Quests.Necro
|
|||
public Maabus Maabus => m_Maabus;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D SpawnLocation { get { return m_SpawnLocation; } set { m_SpawnLocation = value; } }
|
||||
public Point3D SpawnLocation { get => m_SpawnLocation;
|
||||
set => m_SpawnLocation = value;
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public MaabusCoffin()
|
||||
|
|
@ -106,7 +108,7 @@ namespace Server.Engines.Quests.Necro
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D SpawnLocation
|
||||
{
|
||||
get { return Addon is MaabusCoffin coffin ? coffin.SpawnLocation : Point3D.Zero; }
|
||||
get => Addon is MaabusCoffin coffin ? coffin.SpawnLocation : Point3D.Zero;
|
||||
set { if ( Addon is MaabusCoffin coffin ) coffin.SpawnLocation = value; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,16 +5,7 @@ namespace Server.Engines.Quests.Necro
|
|||
{
|
||||
public class AnimateMaabusCorpseObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Re-animate the corpse of Maabus using your <a href="?ForceTopic112">Animate Dead</a>
|
||||
* spell and question him about the Kronus rituals.
|
||||
*/
|
||||
return 1060102;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060102;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -35,16 +26,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindCrystalCaveObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Take the teleporter in the corner of Maabus' tomb to
|
||||
* the crystal cave where the calling scroll is kept.
|
||||
*/
|
||||
return 1060104;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060104;
|
||||
|
||||
public FindCrystalCaveObjective()
|
||||
{
|
||||
|
|
@ -58,16 +40,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindMardothAboutVaultObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Infiltrate the city of the Paladins and figure out a way into
|
||||
* the Vault. See Mardoth for help with this objective.
|
||||
*/
|
||||
return 1060106;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060106;
|
||||
|
||||
public FindMardothAboutVaultObjective()
|
||||
{
|
||||
|
|
@ -81,16 +54,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindMaabusTombObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Step onto the teleporter near Mardoth and follow the path
|
||||
* of glowing runes to the tomb of Maabus.
|
||||
*/
|
||||
return 1060124;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060124;
|
||||
|
||||
public FindMaabusTombObjective()
|
||||
{
|
||||
|
|
@ -110,16 +74,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindMaabusCorpseObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* This is the tomb of Maabus. Enter within and find
|
||||
* the corpse of the ancient necromancer.
|
||||
*/
|
||||
return 1061142;
|
||||
}
|
||||
}
|
||||
public override object Message => 1061142;
|
||||
|
||||
public FindMaabusCorpseObjective()
|
||||
{
|
||||
|
|
@ -139,16 +94,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindCityOfLightObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Use the teleporter near Mardoth to be transported
|
||||
* to the Paladin City of Light.
|
||||
*/
|
||||
return 1060108;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060108;
|
||||
|
||||
public FindCityOfLightObjective()
|
||||
{
|
||||
|
|
@ -168,18 +114,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindVaultOfSecretsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Follow the road paved with glowing runes to
|
||||
* find the Vault of Secrets. Be careful not
|
||||
* to give yourself away as a Necromancer while
|
||||
* in the city.
|
||||
*/
|
||||
return 1060109;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060109;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -206,14 +141,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FetchAbraxusScrollObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// <a href="?ForceTopic127">Summon your Horde Minion familiar</a> to fetch the scroll for you.
|
||||
return 1060196;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060196;
|
||||
|
||||
public FetchAbraxusScrollObjective()
|
||||
{
|
||||
|
|
@ -239,16 +167,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class RetrieveAbraxusScrollObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Double click your Horde Minion to open his pack and retrieve
|
||||
* the Scroll of Abraxus that he looted for you.
|
||||
*/
|
||||
return 1060199;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060199;
|
||||
|
||||
public RetrieveAbraxusScrollObjective()
|
||||
{
|
||||
|
|
@ -262,17 +181,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class ReadAbraxusScrollObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find the Crystal Cave password by reading (double click)
|
||||
* the golden scroll entitled "Scroll of Abraxus" that you
|
||||
* got from your familiar..
|
||||
*/
|
||||
return 1060125;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060125;
|
||||
|
||||
public ReadAbraxusScrollObjective()
|
||||
{
|
||||
|
|
@ -286,17 +195,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class ReturnToCrystalCaveObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Now that you have the password, return to the Crystal Cave
|
||||
* to speak with the guard there. Use the teleporter outside
|
||||
* of the vault to get there if necessary.
|
||||
*/
|
||||
return 1060115;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060115;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -317,17 +216,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class SpeakCavePasswordObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Speak the secret word that you read in the scroll
|
||||
* stolen from the Vault to Horus the guard, using
|
||||
* his <a href="?ForceTopic90">context menu</a>.
|
||||
*/
|
||||
return 1060117;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060117;
|
||||
|
||||
public SpeakCavePasswordObjective()
|
||||
{
|
||||
|
|
@ -341,16 +230,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindCallingScrollObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Enter the Crystal Cave and find the Scroll of Calling.
|
||||
* The barrier will now allow you to pass.
|
||||
*/
|
||||
return 1060119;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060119;
|
||||
|
||||
private int m_SkitteringHoppersKilled;
|
||||
private bool m_HealConversationShown;
|
||||
|
|
@ -414,16 +294,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindHorusAboutRewardObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have disposed of the creatures as Horus has asked.
|
||||
* See him on your way out of the Crystal Cave to claim your reward.
|
||||
*/
|
||||
return 1060126;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060126;
|
||||
|
||||
public FindHorusAboutRewardObjective()
|
||||
{
|
||||
|
|
@ -437,16 +308,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindMardothAboutKronusObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have obtained the scroll of calling. See Mardoth
|
||||
* for further instructions.
|
||||
*/
|
||||
return 1060127;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060127;
|
||||
|
||||
public FindMardothAboutKronusObjective()
|
||||
{
|
||||
|
|
@ -460,16 +322,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindWellOfTearsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Follow the red lanterns to the Well of Tears where
|
||||
* you will perform the calling of Kronus.
|
||||
*/
|
||||
return 1060128;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060128;
|
||||
|
||||
public FindWellOfTearsObjective()
|
||||
{
|
||||
|
|
@ -509,17 +362,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class UseCallingScrollObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Use the Scroll of Calling (double click) near the
|
||||
* Well of Tears to charge the waters for the arrival
|
||||
* of Kronus.
|
||||
*/
|
||||
return 1060130;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060130;
|
||||
|
||||
public UseCallingScrollObjective()
|
||||
{
|
||||
|
|
@ -585,17 +428,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class FindBankObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Use the enchanted sextant in your pack to locate
|
||||
* the nearest bank. Go there and speak with the
|
||||
* Banker.
|
||||
*/
|
||||
return 1060134;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060134;
|
||||
|
||||
public FindBankObjective()
|
||||
{
|
||||
|
|
@ -615,16 +448,7 @@ namespace Server.Engines.Quests.Necro
|
|||
|
||||
public class CashBankCheckObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have arrived at the Bank. <a href="?ForceTopic38">Open your bank box</a>
|
||||
* and then <a href="?ForceTopic86">cash the check</a> that Mardoth gave you.
|
||||
*/
|
||||
return 1060644;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060644;
|
||||
|
||||
public CashBankCheckObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,35 +2,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear in a
|
||||
* window such as this one. You can review the information at
|
||||
* any time during your quest.<BR><BR><U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest, will
|
||||
* be underlined <a href = "?ForceTopic73">links to the codex of
|
||||
* wisdom</a>, or online help system. You can click on the text
|
||||
* to get detailed information on the underlined subject. You
|
||||
* may also access the Codex Of Wisdom by pressing "F1" or by
|
||||
* clicking on the "?" on the toolbar at the top of your screen.<BR><BR>
|
||||
*
|
||||
* <U>Context Menus</U><BR><BR>Context menus can be called up by
|
||||
* single left-clicking (or Shift + single left-click, if you
|
||||
* changed it) on most objects or NPCs in the world. Nearly
|
||||
* everything, including your own avatar will have context menus
|
||||
* available. Bringing up your avatar's context menu will give
|
||||
* you options to cancel your quest and review various quest
|
||||
* information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049092;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -44,28 +16,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class FindZoelConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Ah, another fledgling unfurls its wings. Welcome to my
|
||||
* home young one. <BR><BR>
|
||||
*
|
||||
* I am Daimyo Emino, a passionate collector of sorts.
|
||||
* One who is vengeful towards those impeding my reign. <BR><BR>
|
||||
*
|
||||
* You have the look of someone who could help me but
|
||||
* your skills are untested. Are you willing to prove
|
||||
* your mettle as my hireling? <BR><BR>
|
||||
*
|
||||
* Elite Ninja Zoel awaits you in the backyard. He will
|
||||
* lead you to the first trial. You will be directed
|
||||
* further when you arrive at your destination. You
|
||||
* should speak to him before exploring the yard or cave entrance.
|
||||
*/
|
||||
return 1063175;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063175;
|
||||
|
||||
public FindZoelConversation()
|
||||
{
|
||||
|
|
@ -79,23 +30,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class RadarConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* To view the surrounding area, you should learn about the Radar Map.<BR><BR>
|
||||
*
|
||||
* The Radar Map (or Overhead View) can be opened by pressing 'ALT-R'
|
||||
* on your keyboard. It shows your immediate surroundings from a
|
||||
* bird's eye view.<BR><BR>
|
||||
*
|
||||
* Pressing ALT-R twice, will enlarge the Radar Map a little.
|
||||
* Use the Radar Map often as you travel throughout the world
|
||||
* to familiarize yourself with your surroundings.
|
||||
* */
|
||||
return 1063033;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063033;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -106,31 +41,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class EnterCaveConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Zoel studies your face as you approach him. Wryly, he says:</I><BR><BR>
|
||||
*
|
||||
* Daimyo Emino has sent another already? The stains from the
|
||||
* last have not yet dried! <BR><BR>
|
||||
*
|
||||
* No matter, we<EFBFBD>ll finish you off and clean it all at once, eh? <BR><BR>
|
||||
*
|
||||
* Now to the point, your only task is to survive in the abandoned inn.<BR><BR>
|
||||
*
|
||||
* You will be instructed when you need to act and when you should
|
||||
* return to one of us. <BR><BR>
|
||||
*
|
||||
* Only a true Ninja is deft enough to finish and remain alive.<BR><BR>
|
||||
*
|
||||
* Your future... or your demise... lies in this cave beyond. <BR><BR>
|
||||
*
|
||||
* Now go.
|
||||
*/
|
||||
return 1063177;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063177;
|
||||
|
||||
public EnterCaveConversation()
|
||||
{
|
||||
|
|
@ -144,21 +55,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class SneakPastGuardiansConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* A glowing archway stands before you. <BR><BR>
|
||||
*
|
||||
* To either side of its frame are mounted demon heads,
|
||||
* breathing fire and watching your every move. <BR><BR>
|
||||
*
|
||||
* To pass through, you must first vanish from the demons<EFBFBD>
|
||||
* sight. Only then can you slowly traverse the entryway.
|
||||
*/
|
||||
return 1063180;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063180;
|
||||
|
||||
public SneakPastGuardiansConversation()
|
||||
{
|
||||
|
|
@ -172,23 +69,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class NeedToHideConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You<EFBFBD>ll need to hide in order to pass through the door. <BR><BR>
|
||||
*
|
||||
* To find out how to use active skills, visit the
|
||||
* <a href = "?ForceTopic73">Codex of Wisdom</a>.
|
||||
* To activate a skill, locate it on your skills
|
||||
* list and click the blue button located to the
|
||||
* left of the skill's name.<br><br>Once you have
|
||||
* successfully hidden, you may move slowly through the door.
|
||||
*
|
||||
*/
|
||||
return 1063181;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063181;
|
||||
|
||||
public NeedToHideConversation()
|
||||
{
|
||||
|
|
@ -197,20 +78,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class UseTeleporterConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/*
|
||||
* Through the door lies a short passageway.
|
||||
* The path ends abruptly at a strange tile on the floor.
|
||||
* The special tile is known as a teleporter.
|
||||
* Step on the teleporter tile and you will be transported
|
||||
* to a new location.
|
||||
*/
|
||||
return 1063182;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063182;
|
||||
|
||||
public UseTeleporterConversation()
|
||||
{
|
||||
|
|
@ -224,25 +92,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GiveZoelNoteConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Daimyo Emino smiles as you approach him:</I> <BR><BR>
|
||||
*
|
||||
* I see that you have survived both the first trial and Zoel<EFBFBD>s temper. <BR><BR>
|
||||
*
|
||||
* For that you have been rewarded with Leggings and Gloves
|
||||
* befitting your occupation. The material is the only armor
|
||||
* a <b><I>True Ninja</i></b> needs. <BR><BR>
|
||||
*
|
||||
* You have yet to prove yourself fully, young hireling.
|
||||
* Another trial must be met. Off to Zoel you go.
|
||||
* Bring him this note so he knows we have spoken.
|
||||
*/
|
||||
return 1063184;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063184;
|
||||
|
||||
public GiveZoelNoteConversation()
|
||||
{
|
||||
|
|
@ -256,14 +106,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class LostNoteConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You have lost my note? I will scribe another for you. Try not to lose this one.
|
||||
return 1063187;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063187;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -274,36 +117,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GainInnInformationConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Zoel quickly grabs the scroll from your
|
||||
* hand and reads the note:</i> <BR><BR>
|
||||
*
|
||||
* Still alive then? You<EFBFBD>ll have to impress me
|
||||
* further before I will give my approval of
|
||||
* you to Daimyo Emino. <BR><BR>
|
||||
*
|
||||
* You must return to the inn and begin the next trial. <BR><BR>
|
||||
*
|
||||
* We believe an associate has, shall we say,
|
||||
* inadvertently negated our contract. <BR><BR>
|
||||
*
|
||||
* Find out what information you can and return
|
||||
* to Daimyo Emino with the news. And be careful
|
||||
* not to lose your head.<BR><BR>
|
||||
*
|
||||
* The Blue Teleporter Tile in Daimyo Emino<EFBFBD>s
|
||||
* residence will lead you to your fate.
|
||||
* I suggest you hurry. <BR><BR>
|
||||
*
|
||||
* ...And take care to tread softly. There
|
||||
* is no greater traitor than a heavy footfall upon a path.
|
||||
*/
|
||||
return 1063189;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063189;
|
||||
|
||||
public GainInnInformationConversation()
|
||||
{
|
||||
|
|
@ -317,33 +131,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class ReturnFromInnConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You quietly approach the door and see
|
||||
* a woman named Jedah Entille speaking
|
||||
* to a shady figure in dark clothing.
|
||||
* You move closer so you can overhear
|
||||
* the conversation. Fortunately, your
|
||||
* entrance did not alert the preoccupied party. <BR><BR>
|
||||
*
|
||||
* Jedah<EFBFBD>s brash voice permeates the air:<I><BR><BR>
|
||||
*
|
||||
* Now that it is hidden, we<EFBFBD>ll hide out here
|
||||
* until Daimyo Emino forgets about us.
|
||||
* Once he realizes his beloved sword is missing,
|
||||
* he<EFBFBD>ll surely start looking for the thieves.
|
||||
* We will be long gone by that time. </I><BR><BR>
|
||||
*
|
||||
* After overhearing the conversation,
|
||||
* you understand why you were sent on
|
||||
* this trial. You must immediately tell
|
||||
* Daimyo Emino what you have learned.
|
||||
* */
|
||||
return 1063196;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063196;
|
||||
|
||||
public ReturnFromInnConversation()
|
||||
{
|
||||
|
|
@ -357,45 +145,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class SearchForSwordConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Daimyo Emino frowns as you relay the information.
|
||||
* He pauses for a moment before speaking to you:</i> <BR><BR>
|
||||
*
|
||||
* Jedah was once one of my most promising students,
|
||||
* but her greed will be her downfall. <BR><BR>
|
||||
*
|
||||
* I will send one of my disciples to deal with her later.
|
||||
* It is more important to get that sword back first. <BR><BR>
|
||||
*
|
||||
* I<EFBFBD>m counting on you to find it. She would have kept it
|
||||
* close to her. Take the White Teleporter, located in my
|
||||
* backyard, and check inside boxes and chests around the
|
||||
* treasure room of the inn and return it to me when you
|
||||
* find it.<BR><BR>
|
||||
*
|
||||
* Be very careful. Jedah was an expert with traps and no
|
||||
* doubt she<EFBFBD>s protecting the sword with them. <BR><BR>
|
||||
*
|
||||
* If you find a trap, try timing it and you may be able
|
||||
* to avoid damage. <BR><BR>
|
||||
*
|
||||
* I<EFBFBD>ve provided you with several heal potions in case you
|
||||
* become injured. <BR><BR>
|
||||
*
|
||||
* In the bag you will also find more clothing appropriate
|
||||
* to your new found profession. <BR><BR>
|
||||
*
|
||||
* Please return the sword to me. I implore you not to take
|
||||
* anything else that may be hidden in the Inn. <BR><BR>
|
||||
*
|
||||
* Thank you.
|
||||
*/
|
||||
return 1063199;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063199;
|
||||
|
||||
public SearchForSwordConversation()
|
||||
{
|
||||
|
|
@ -409,19 +159,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class HallwayWalkConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* A narrow hallway greets the teleporter.
|
||||
* The enclosed space is the perfect setting
|
||||
* for dangerous traps. Walk through the
|
||||
* hallway being careful to avoid the traps.
|
||||
* You may be able to time the traps to avoid injury.
|
||||
*/
|
||||
return 1063201;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063201;
|
||||
|
||||
public HallwayWalkConversation()
|
||||
{
|
||||
|
|
@ -435,20 +173,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class ReturnSwordConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* The lid of the chest refuses to budge at first,
|
||||
* but slowly you are able to pry the lid open. <BR><BR>
|
||||
*
|
||||
* Inside lies the sword you have been in search of.
|
||||
* You quickly take the sword and stash it in your backpack.
|
||||
* Bring the sword back to Daimyo Emino.
|
||||
*/
|
||||
return 1063203;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063203;
|
||||
|
||||
public ReturnSwordConversation()
|
||||
{
|
||||
|
|
@ -462,20 +187,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class SlayHenchmenConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Screams echo through the chamber as you walk
|
||||
* away from the chest. Jedah<EFBFBD>s Henchmen have
|
||||
* become cognizant of your presence. <BR><BR>
|
||||
*
|
||||
* It is time for your Ninja Spirit to come alive.
|
||||
* Slay 3 of the Henchmen before returning to Daimyo Emino.
|
||||
*/
|
||||
return 1063205;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063205;
|
||||
|
||||
public SlayHenchmenConversation()
|
||||
{
|
||||
|
|
@ -489,14 +201,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class ContinueSlayHenchmenConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Continue killing the henchmen!
|
||||
return 1063208;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063208;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -507,17 +212,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GiveEminoSwordConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Go to Daimyo Emino. Go back through the chamber the way you came.<BR><BR>
|
||||
*
|
||||
* Give Daimyo Emino the sword when you've returned to his side.
|
||||
*/
|
||||
return 1063211;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063211;
|
||||
|
||||
public GiveEminoSwordConversation()
|
||||
{
|
||||
|
|
@ -531,14 +226,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class LostSwordConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// What? You have returned without the sword? You need to go back and get it again!
|
||||
return 1063212;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063212;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -549,23 +237,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class EarnGiftsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Beyond this path lies Zento City, your future home.
|
||||
* To the right of the cave entrance you will find a luminous oval
|
||||
* object known as a Moongate, step through it and you'll
|
||||
* find yourself in Zento.<BR><BR>
|
||||
*
|
||||
* You may want to visit Ansella Gryen when you arrive. <BR><BR>
|
||||
*
|
||||
* Please accept the gifts I have placed in your pack. You
|
||||
* have earned them. Farewell for now.
|
||||
*/
|
||||
return 1063216;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063216;
|
||||
|
||||
public EarnGiftsConversation()
|
||||
{
|
||||
|
|
@ -579,19 +251,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class EarnLessGiftsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have earned these gifts for returning the sword.
|
||||
* For that I thank you. <BR><BR>
|
||||
*
|
||||
* However, your reward has been lessened by your greed
|
||||
* in the treasure room. Do not think I did not notice your full pockets.
|
||||
*/
|
||||
return 1063217;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063217;
|
||||
|
||||
public EarnLessGiftsConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,23 +44,9 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Emino's Undertaking
|
||||
return 1063173;
|
||||
}
|
||||
}
|
||||
public override object Name => 1063173;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
// Your value as a Ninja must be proven. Find Daimyo Emino and accept the test he offers.
|
||||
return 1063174;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1063174;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
|
||||
public override bool IsTutorial => true;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
return 2;
|
||||
}
|
||||
|
||||
public override int TalkNumber{ get { return -1; } }
|
||||
public override int TalkNumber => -1;
|
||||
|
||||
public override void OnTalk( PlayerMobile player, bool contextMenu )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ namespace Server.Engines.Quests.Ninja
|
|||
private int m_Message;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Message{ get{ return m_Message; } set{ m_Message = value; } }
|
||||
public int Message{ get => m_Message;
|
||||
set => m_Message = value;
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public HiddenFigure()
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
AddItem( tekagi );
|
||||
}
|
||||
|
||||
public override int TalkNumber{ get { return -1; } }
|
||||
public override int TalkNumber => -1;
|
||||
|
||||
public override int GetAutoTalkRange( PlayerMobile pm )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,14 +5,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
{
|
||||
public class FindEminoBeginObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Your value as a Ninja must be proven. Find Daimyo Emino and accept the test he offers.
|
||||
return 1063174;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063174;
|
||||
|
||||
public FindEminoBeginObjective()
|
||||
{
|
||||
|
|
@ -26,14 +19,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class FindZoelObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Find Elite Ninja Zoel immediately!
|
||||
return 1063176;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063176;
|
||||
|
||||
public FindZoelObjective()
|
||||
{
|
||||
|
|
@ -47,14 +33,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class EnterCaveObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Enter the cave and walk through it. You will be tested as you travel along the path.
|
||||
return 1063179;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063179;
|
||||
|
||||
public EnterCaveObjective()
|
||||
{
|
||||
|
|
@ -78,18 +57,11 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public bool TaughtHowToUseSkills
|
||||
{
|
||||
get{ return m_TaughtHowToUseSkills; }
|
||||
set{ m_TaughtHowToUseSkills = value; }
|
||||
get => m_TaughtHowToUseSkills;
|
||||
set => m_TaughtHowToUseSkills = value;
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Use your Ninja training to move invisibly past the magical guardians.
|
||||
return 1063261;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063261;
|
||||
|
||||
public SneakPastGuardiansObjective()
|
||||
{
|
||||
|
|
@ -123,16 +95,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class UseTeleporterObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* The special tile is known as a teleporter.
|
||||
* Step on the teleporter tile and you will be transported to a new location.
|
||||
*/
|
||||
return 1063183;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063183;
|
||||
|
||||
public UseTeleporterObjective()
|
||||
{
|
||||
|
|
@ -146,17 +109,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GiveZoelNoteObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Bring the note to Elite Ninja Zoel and speak with him again.
|
||||
* He is near the cave entrance. You can hand the note to Zoel
|
||||
* by dragging it and dropping it on his body.
|
||||
*/
|
||||
return 1063185;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063185;
|
||||
|
||||
public GiveZoelNoteObjective()
|
||||
{
|
||||
|
|
@ -170,17 +123,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GainInnInformationObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Take the Blue Teleporter Tile from Daimyo Emino's
|
||||
* house to the Abandoned Inn. Quietly look around
|
||||
* to gain information.
|
||||
*/
|
||||
return 1063190;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063190;
|
||||
|
||||
public GainInnInformationObjective()
|
||||
{
|
||||
|
|
@ -202,14 +145,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class ReturnFromInnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Go back through the blue teleporter and tell Daimyo Emino what you<6F>ve overheard.
|
||||
return 1063197;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063197;
|
||||
|
||||
public ReturnFromInnObjective()
|
||||
{
|
||||
|
|
@ -223,18 +159,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class SearchForSwordObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Take the white teleporter and check the chests for the sword.
|
||||
* Leave everything else behind. Avoid damage from traps you may
|
||||
* encounter. To use a potion, make sure at least one hand is
|
||||
* free and double click on the bottle.
|
||||
*/
|
||||
return 1063200;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063200;
|
||||
|
||||
public SearchForSwordObjective()
|
||||
{
|
||||
|
|
@ -252,21 +177,11 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public bool StolenTreasure
|
||||
{
|
||||
get{ return m_StolenTreasure; }
|
||||
set{ m_StolenTreasure = value; }
|
||||
get => m_StolenTreasure;
|
||||
set => m_StolenTreasure = value;
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Walk through the hallway being careful
|
||||
* to avoid the traps. You may be able to
|
||||
* time the traps to avoid injury.
|
||||
*/
|
||||
return 1063202;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063202;
|
||||
|
||||
public HallwayWalkObjective()
|
||||
{
|
||||
|
|
@ -294,14 +209,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class ReturnSwordObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Take the sword and bring it back to Daimyo Emino.
|
||||
return 1063204;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063204;
|
||||
|
||||
public ReturnSwordObjective()
|
||||
{
|
||||
|
|
@ -323,14 +231,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class SlayHenchmenObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill three henchmen.
|
||||
return 1063206;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063206;
|
||||
|
||||
public SlayHenchmenObjective()
|
||||
{
|
||||
|
|
@ -368,17 +269,7 @@ namespace Server.Engines.Quests.Ninja
|
|||
|
||||
public class GiveEminoSwordObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have proven your fighting skills. Bring the Sword to
|
||||
* Daimyo Emino immediately. Be sure to follow the
|
||||
* path back to the teleporter.
|
||||
*/
|
||||
return 1063210;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063210;
|
||||
|
||||
public GiveEminoSwordObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,35 +2,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear in a window
|
||||
* such as this one. You can review the information at any time during your
|
||||
* quest.<BR><BR>
|
||||
*
|
||||
* <U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest,
|
||||
* will be underlined <a href = "?ForceTopic73">links to the codex of wisdom</a>,
|
||||
* or online help system. You can click on the text to get detailed information
|
||||
* on the underlined subject. You may also access the Codex Of Wisdom by
|
||||
* pressing "F1" or by clicking on the "?" on the toolbar at the top of
|
||||
* your screen.<BR><BR><U>Context Menus</U><BR><BR>
|
||||
*
|
||||
* Context menus can be called up by single left-clicking (or Shift + single
|
||||
* left-click, if you changed it) on most objects or NPCs in the world.
|
||||
* Nearly everything, including your own avatar will have context menus available.
|
||||
* Bringing up your avatar's context menu will give you options to cancel your quest
|
||||
* and review various quest information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049092;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -44,23 +16,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class RadarConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* To view the surrounding area, you should learn about the Radar Map.<BR><BR>
|
||||
*
|
||||
* The Radar Map (or Overhead View) can be opened by pressing 'ALT-R'
|
||||
* on your keyboard. It shows your immediate surroundings from a
|
||||
* bird's eye view.<BR><BR>
|
||||
*
|
||||
* Pressing ALT-R twice, will enlarge the Radar Map a little.
|
||||
* Use the Radar Map often as you travel throughout the world
|
||||
* to familiarize yourself with your surroundings.
|
||||
* */
|
||||
return 1063033;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063033;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -71,36 +27,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FirstTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Greetings. I am Daimyo Haochi, the Feudal Lord of this region. <BR><BR>
|
||||
*
|
||||
* Since you are here at my side, you must wish to learn the ways of the Samurai.<BR><BR>
|
||||
*
|
||||
* Wielding a blade is easy, anyone can grasp a sword<EFBFBD>s hilt. Learning how to
|
||||
* fight properly and skillfully is to become an Armsman.<BR><BR>
|
||||
*
|
||||
* Learning how to master weapons, and even more importantly when not to use
|
||||
* them, is the Way of the Warrior. The Way of the Samurai. The Code of the
|
||||
* Bushido. That is why you are here. <BR><BR>
|
||||
*
|
||||
* You will go through 7 trials to prove your adherence to the Samurai code. <BR><BR>
|
||||
*
|
||||
* The first trial will test your decision making skills. You only have to enter
|
||||
* the area beyond the green passageway. <BR><BR>
|
||||
*
|
||||
* Do not attempt to hurry your trials. The guards will only let you through
|
||||
* to each trial when I have deemed you ready.<br><br>
|
||||
*
|
||||
* As a last resort you may use the golden teleporter tiles in each trial area
|
||||
* but do so at your own risk. You may not be able to return and complete your
|
||||
* trials once you have chosen to escape.
|
||||
*/
|
||||
return 1063029;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063029;
|
||||
|
||||
public FirstTrialIntroConversation()
|
||||
{
|
||||
|
|
@ -114,32 +41,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FirstTrialKillConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Beyond you are two troubled groups.<BR><BR>
|
||||
*
|
||||
* The Cursed Souls were once proud warriors that were ensorcelled
|
||||
* by an evil mage. The mage trapped and killed them later but the spell
|
||||
* has not lifted from their souls in death. <BR><BR>
|
||||
*
|
||||
* The Young Ronin were former Samurai in training who lost their way.
|
||||
* They are loyal only to those with enough coin in their pocket. <BR><BR>
|
||||
*
|
||||
* You must decide who needs to be fought to the death. You may wish to
|
||||
* <a href="?ForceTopic27">review combat techniques</a> as well as
|
||||
* <a href = "?ForceTopic29">information on healing yourself</a>. <BR><BR>
|
||||
*
|
||||
* Return to Daimyo Haochi after you have finished with your trial.<br><br>
|
||||
*
|
||||
* If you should die during any of your trials, visit one of the Ankh Shrines
|
||||
* and you will be resurrected. You should retrieve your belongings from your
|
||||
* body before returning to the Daimyo or you may not be able to return to your corpse.
|
||||
*/
|
||||
return 1063031;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063031;
|
||||
|
||||
public FirstTrialKillConversation()
|
||||
{
|
||||
|
|
@ -265,23 +167,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SecondTrialAttackConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Beyond the guards is a test of courage. You must face your fear and attack a
|
||||
* great beast. You must choose which beast to slay for there is more than
|
||||
* one beyond the courtyard doors. <BR><BR>
|
||||
*
|
||||
* The imp entered the courtyard unaware of its surroundings. The dragon came
|
||||
* knowingly, hunting for the flesh of humans <EFBFBD> A feast for the beast. <BR><BR>
|
||||
*
|
||||
* You must rid the courtyard of these beasts but you may only choose one to
|
||||
* attack. Go and choose wisely.
|
||||
*/
|
||||
return 1063057;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063057;
|
||||
|
||||
public SecondTrialAttackConversation()
|
||||
{
|
||||
|
|
@ -369,19 +255,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class ThirdTrialKillConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* A pack of wolves circle your feet. They have been injured and are in pain.
|
||||
* A quick death will end their suffering.<br><br>
|
||||
*
|
||||
* Use your Honorable Execution skill or other means to finish off a wounded wolf.
|
||||
* Do so and return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063062;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063062;
|
||||
|
||||
public ThirdTrialKillConversation()
|
||||
{
|
||||
|
|
@ -395,24 +269,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FourthTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Daimyo Haochi smiles as you walk up to him. Quietly he says:</I><BR><BR>
|
||||
*
|
||||
* A Samurai understands the need to help others even as he wields a blade against
|
||||
* them. <BR><BR>
|
||||
*
|
||||
* You have shown compassion. A true Samurai is benevolent even to an enemy.
|
||||
* For this you have been rewarded. <BR><BR>
|
||||
*
|
||||
* And now you must prove yourself again. Walk the red path.
|
||||
* We will talk again later.
|
||||
*/
|
||||
return 1063065;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063065;
|
||||
|
||||
public FourthTrialIntroConversation()
|
||||
{
|
||||
|
|
@ -426,27 +283,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FourthTrialCatsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>You approach a disheveled gypsy standing near a small shed.
|
||||
* You sense that she has not eaten nor bathed in quite some time. <BR><BR>
|
||||
*
|
||||
* Around her is a large colony of mangy and diseased cats. It appears
|
||||
* she has spent what little money she<EFBFBD>s earned to feed the cats instead
|
||||
* of herself. <BR><BR>
|
||||
*
|
||||
* You have a decision to make. You can give her gold so she can buy some
|
||||
* food for her animals and herself. You can also remove the necessity
|
||||
* of the extra mouths to feed so she may concentrate on saving herself.</i><br><br>
|
||||
*
|
||||
* If you elect to give the gypsy money, you can do so by clicking your stack
|
||||
* of gold and selecting <EFBFBD>1<EFBFBD>. Then dragging it and dropping it on the Gypsy.
|
||||
*/
|
||||
return 1063067;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063067;
|
||||
|
||||
public FourthTrialCatsConversation()
|
||||
{
|
||||
|
|
@ -531,21 +368,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FifthTrialReturnConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <i>The guards let you through without question, and pay you no mind as
|
||||
* you walk into the Daimyo's treasure cache. A vast fortune in gold,
|
||||
* gemstones, and jewelry is stored here! Surely, the Daimyo wouldn't
|
||||
* miss a single small item...<br><br>
|
||||
*
|
||||
* You spot the sword quickly amongst the cache of gemstones and other valuables.
|
||||
* In one quick motion you retrieve it and stash it in your pack.</i>
|
||||
*/
|
||||
return 1063248;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063248;
|
||||
|
||||
public FifthTrialReturnConversation()
|
||||
{
|
||||
|
|
@ -559,14 +382,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class LostSwordConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// What? You have returned without the sword? Go back and look for it again.
|
||||
return 1063074;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063074;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -644,22 +460,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SeventhTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have done well young Samurai. There is but one thing left to do. <BR><BR>
|
||||
*
|
||||
* In the final room is the holding cell containing young Ninjas who came to
|
||||
* take my life. They were caught and placed in my custody. <BR><BR>
|
||||
*
|
||||
* Take care of these miscreants and show them where your loyalty lies. <BR><BR>
|
||||
*
|
||||
* This is your final act as a Samurai in training.
|
||||
*/
|
||||
return 1063079;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063079;
|
||||
|
||||
public SeventhTrialIntroConversation()
|
||||
{
|
||||
|
|
@ -673,28 +474,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have proven yourself young one. You will continue to improve as your skills
|
||||
* are honed with age. <BR><BR>
|
||||
*
|
||||
* Now it is time for you to explore the lands. Beyond this path lies Zento
|
||||
* City, your future home. On these grounds you will find a golden oval object
|
||||
* known as a Moongate, step through it and you'll find yourself in Zento.<BR><BR>
|
||||
*
|
||||
* You may want to visit Ansella Gryen when you arrive. <BR><BR>
|
||||
*
|
||||
* You have learned the ways. You are an honorable warrior, a Samurai in
|
||||
* the highest regards. <BR><BR>
|
||||
*
|
||||
* Please accept the gifts I have placed in your pack. You have earned them.
|
||||
* Farewell for now.
|
||||
*/
|
||||
return 1063125;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063125;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,34 +47,9 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Haochi's Trials
|
||||
return 1063022;
|
||||
}
|
||||
}
|
||||
public override object Name => 1063022;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <i>As you enter the courtyard you notice a faded sign.
|
||||
* It reads: </i><br><br>
|
||||
*
|
||||
* Welcome to your new home, Samurai.<br><br>
|
||||
*
|
||||
* Though your skills are only a shadow of what they can be some day,
|
||||
* you must prove your adherence to the code of the Bushido.<br><br>
|
||||
*
|
||||
* Seek Daimyo Haochi for guidance.<br><br>
|
||||
*
|
||||
* <i>Will you accept the challenge?</i>
|
||||
*/
|
||||
return 1063023;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1063023;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
|
||||
public override bool IsTutorial => true;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
return 2;
|
||||
}
|
||||
|
||||
public override int TalkNumber{ get { return -1; } }
|
||||
public override int TalkNumber => -1;
|
||||
|
||||
public override void OnTalk( PlayerMobile player, bool contextMenu )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
AddItem( weapon );
|
||||
}
|
||||
|
||||
public override int TalkNumber{ get { return -1; } }
|
||||
public override int TalkNumber => -1;
|
||||
|
||||
public override void OnTalk( PlayerMobile player, bool contextMenu )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
AddItem( new Skirt( 0x544 ) );
|
||||
}
|
||||
|
||||
public override int TalkNumber{ get { return -1; } }
|
||||
public override int TalkNumber => -1;
|
||||
|
||||
public override void OnTalk( PlayerMobile player, bool contextMenu )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,14 +6,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
{
|
||||
public class FindHaochiObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Speak to Daimyo Haochi.
|
||||
return 1063026;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063026;
|
||||
|
||||
public FindHaochiObjective()
|
||||
{
|
||||
|
|
@ -27,14 +20,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FirstTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the green path. The guards will now let you through.
|
||||
return 1063030;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063030;
|
||||
|
||||
public FirstTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -48,14 +34,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FirstTrialKillObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill 3 Young Ronin or 3 Cursed Souls. Return to Daimyo Haochi when you have finished.
|
||||
return 1063032;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063032;
|
||||
|
||||
public FirstTrialKillObjective()
|
||||
{
|
||||
|
|
@ -116,14 +95,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FirstTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The first trial is complete. Return to Daimyo Haochi.
|
||||
return 1063044;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063044;
|
||||
|
||||
bool m_CursedSoul;
|
||||
|
||||
|
|
@ -158,14 +130,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SecondTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the yellow path. The guards will now let you through.
|
||||
return 1063047;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063047;
|
||||
|
||||
public SecondTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -179,14 +144,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SecondTrialAttackObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Choose your opponent and attack one with all your skill.
|
||||
return 1063058;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063058;
|
||||
|
||||
public SecondTrialAttackObjective()
|
||||
{
|
||||
|
|
@ -195,18 +153,11 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SecondTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The second trial is complete. Return to Daimyo Haochi.
|
||||
return 1063229;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063229;
|
||||
|
||||
private bool m_Dragon;
|
||||
|
||||
public bool Dragon{ get{ return m_Dragon; } }
|
||||
public bool Dragon => m_Dragon;
|
||||
|
||||
public SecondTrialReturnObjective( bool dragon )
|
||||
{
|
||||
|
|
@ -239,16 +190,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class ThirdTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* The next trial will test your benevolence. Follow the blue path.
|
||||
* The guards will now let you through.
|
||||
*/
|
||||
return 1063061;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063061;
|
||||
|
||||
public ThirdTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -262,17 +204,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class ThirdTrialKillObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Use your Honorable Execution skill to finish off the wounded wolf.
|
||||
* Double click the icon in your Book of Bushido to activate the skill.
|
||||
* When you are done, return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063063;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063063;
|
||||
|
||||
public ThirdTrialKillObjective()
|
||||
{
|
||||
|
|
@ -292,14 +224,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class ThirdTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Daimyo Haochi.
|
||||
return 1063064;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063064;
|
||||
|
||||
public ThirdTrialReturnObjective()
|
||||
{
|
||||
|
|
@ -313,14 +238,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FourthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the red path and pass through the guards to the entrance of the fourth trial.
|
||||
return 1063066;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063066;
|
||||
|
||||
public FourthTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -334,16 +252,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FourthTrialCatsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Give the gypsy gold or hunt one of the cats to eliminate the undue
|
||||
* need it has placed on the gypsy.
|
||||
*/
|
||||
return 1063068;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063068;
|
||||
|
||||
public FourthTrialCatsObjective()
|
||||
{
|
||||
|
|
@ -361,18 +270,11 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FourthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You have made your choice. Return now to Daimyo Haochi.
|
||||
return 1063242;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063242;
|
||||
|
||||
private bool m_KilledCat;
|
||||
|
||||
public bool KilledCat{ get{ return m_KilledCat; } }
|
||||
public bool KilledCat => m_KilledCat;
|
||||
|
||||
public FourthTrialReturnObjective( bool killedCat )
|
||||
{
|
||||
|
|
@ -405,18 +307,13 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FifthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Retrieve Daimyo Haochi<68>s katana from the treasure room.
|
||||
return 1063072;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063072;
|
||||
|
||||
private bool m_StolenTreasure;
|
||||
|
||||
public bool StolenTreasure{ get{ return m_StolenTreasure; } set{ m_StolenTreasure = value; } }
|
||||
public bool StolenTreasure{ get => m_StolenTreasure;
|
||||
set => m_StolenTreasure = value;
|
||||
}
|
||||
|
||||
public FifthTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -444,14 +341,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class FifthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Give the sword to Daimyo Haochi.
|
||||
return 1063073;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063073;
|
||||
|
||||
public FifthTrialReturnObjective()
|
||||
{
|
||||
|
|
@ -460,14 +350,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SixthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Light one of the candles near the altar and return to Daimyo Haochi.
|
||||
return 1063078;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063078;
|
||||
|
||||
public SixthTrialIntroObjective()
|
||||
{
|
||||
|
|
@ -481,14 +364,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SixthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You have done as requested. Return to Daimyo Haochi.
|
||||
return 1063252;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063252;
|
||||
|
||||
public SixthTrialReturnObjective()
|
||||
{
|
||||
|
|
@ -502,16 +378,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SeventhTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Three young Ninja must be dealt with. Your job is to kill them.
|
||||
* When you have done so, return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063080;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063080;
|
||||
|
||||
public override int MaxProgress => 3;
|
||||
|
||||
|
|
@ -533,14 +400,7 @@ namespace Server.Engines.Quests.Samurai
|
|||
|
||||
public class SeventhTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The executions are complete. Return to the Daimyo.
|
||||
return 1063253;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063253;
|
||||
|
||||
public SeventhTrialReturnObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -62,20 +62,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch looks pleased that you've accepted.</I><BR><BR>
|
||||
*
|
||||
* Very good. Please start by hunting some infiltrators from the other solen
|
||||
* colony and eliminating them. Slay 7 of them and then return to me.<BR><BR>
|
||||
*
|
||||
* Farewell for now and good hunting.
|
||||
*/
|
||||
return 1054084;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054084;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -89,20 +76,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class DuringKillInfiltratorsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch looks up as you approach.</I><BR><BR>
|
||||
*
|
||||
* You're back, but you have not yet eliminated 7 infiltrators from the enemy
|
||||
* colony. Return when you have completed this task.<BR><BR>
|
||||
*
|
||||
* Carry on. I'll be waiting for your return.
|
||||
*/
|
||||
return 1054089;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054089;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -113,24 +87,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class GatherWaterConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch nods favorably as you approach her.</I><BR><BR>
|
||||
*
|
||||
* Marvelous! I'm impressed at your ability to hunt and kill enemies for me.
|
||||
* My colony is thankful.<BR><BR>
|
||||
*
|
||||
* Now I must ask that you gather some water for me. A standard pitcher of water
|
||||
* holds approximately one gallon. Please decant 8 gallons of fresh water
|
||||
* into our water vats.<BR><BR>
|
||||
*
|
||||
* Farewell for now.
|
||||
*/
|
||||
return 1054091;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054091;
|
||||
|
||||
public GatherWaterConversation()
|
||||
{
|
||||
|
|
@ -144,20 +101,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class DuringWaterGatheringConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch looks up as you approach.</I><BR><BR>
|
||||
*
|
||||
* You're back, but you have not yet gathered 8 gallons of water. Return when
|
||||
* you have completed this task.<BR><BR>
|
||||
*
|
||||
* Carry on. I'll be waiting for your return.
|
||||
*/
|
||||
return 1054094;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054094;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -241,19 +185,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class DuringFungiProcessConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch smiles as you greet her.</I><BR><BR>
|
||||
*
|
||||
* I will gladly process some zoogi fungus into powder of translocation for you.
|
||||
* Two of the zoogi fungi are required for each measure of the powder.
|
||||
* I will process up to 200 zoogi fungi into 100 measures of powder of translocation.
|
||||
*/
|
||||
return 1054099;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054099;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -264,20 +196,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class FullBackpackConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch looks at you with a smile.</I><BR><BR>
|
||||
*
|
||||
* While I'd like to finish conducting our business, it seems that you're a
|
||||
* bit overloaded with equipment at the moment.<BR><BR>
|
||||
*
|
||||
* Perhaps you should free some room in your backpack before we proceed.
|
||||
*/
|
||||
return 1054102;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054102;
|
||||
|
||||
private bool m_Logged;
|
||||
|
||||
|
|
@ -302,18 +221,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Solen Matriarch smiles as you greet her.</I><BR><BR>
|
||||
*
|
||||
* Ah good, you've returned. I will conclude our business by giving you
|
||||
* gold I owe you for aiding me.
|
||||
*/
|
||||
return 1054101;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054101;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,14 +5,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
{
|
||||
public class KillInfiltratorsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill 7 black/red solen infiltrators.
|
||||
return ((SolenMatriarchQuest)System).RedSolen ? 1054086 : 1054085;
|
||||
}
|
||||
}
|
||||
public override object Message => ((SolenMatriarchQuest)System).RedSolen ? 1054086 : 1054085;
|
||||
|
||||
public override int MaxProgress => 7;
|
||||
|
||||
|
|
@ -73,16 +66,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class ReturnAfterKillsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You've completed your task of slaying solen infiltrators. Return to the
|
||||
* Matriarch who gave you this task.
|
||||
*/
|
||||
return 1054090;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054090;
|
||||
|
||||
public ReturnAfterKillsObjective()
|
||||
{
|
||||
|
|
@ -96,14 +80,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class GatherWaterObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Gather 8 gallons of water for the water vats of the solen ant lair.
|
||||
return 1054092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054092;
|
||||
|
||||
public override int MaxProgress => 40;
|
||||
|
||||
|
|
@ -134,14 +111,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class ReturnAfterWaterObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You've completed your task of gathering water. Return to the Matriarch who gave you this task.
|
||||
return 1054095;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054095;
|
||||
|
||||
public ReturnAfterWaterObjective()
|
||||
{
|
||||
|
|
@ -165,14 +135,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class ProcessFungiObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Give the Solen Matriarch a stack of zoogi fungus to process into powder of translocation.
|
||||
return 1054098;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054098;
|
||||
|
||||
public ProcessFungiObjective()
|
||||
{
|
||||
|
|
@ -193,14 +156,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public class GetRewardObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to the solen matriarch for your reward.
|
||||
return 1054149;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054149;
|
||||
|
||||
public GetRewardObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -27,14 +27,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Solen Matriarch Quest
|
||||
return 1054147;
|
||||
}
|
||||
}
|
||||
public override object Name => 1054147;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
|
|
@ -99,7 +92,7 @@ namespace Server.Engines.Quests.Matriarch
|
|||
|
||||
private bool m_RedSolen;
|
||||
|
||||
public bool RedSolen{ get{ return m_RedSolen; } }
|
||||
public bool RedSolen => m_RedSolen;
|
||||
|
||||
public SolenMatriarchQuest( PlayerMobile from, bool redSolen ) : base( from )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,24 +2,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
{
|
||||
public class DontOfferConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks up from his scribbled notes.</I><BR><BR>
|
||||
*
|
||||
* Greetings!<BR><BR>
|
||||
*
|
||||
* If you're interested in helping out a scholar of some repute, I do have some
|
||||
* work that I could use some assistance with.<BR><BR>
|
||||
*
|
||||
* You seem a little preoccupied with another task right now, however. Perhaps
|
||||
* you should finish whatever it is that has your attention at the moment and
|
||||
* return to me once you're done.
|
||||
*/
|
||||
return 1054052;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054052;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -30,23 +13,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Ah! This is splendid news! Each time an assistant travels into the
|
||||
* Solen Hive to gather information for me, I feel as if I am one step
|
||||
* closer to some grand discovery. Though I felt the same way when I was
|
||||
* certain that Terathans had the ability to change their shape to resemble
|
||||
* various fruits and vegetables - a point on which I am certain further
|
||||
* study of the beasts will prove correct.<BR><BR>
|
||||
*
|
||||
* In any case, I cannot thank you enough! Please return to me when you have
|
||||
* studied all the Solen Egg Nests hidden within the Solen Hive.
|
||||
*/
|
||||
return 1054043;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054043;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -60,27 +27,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class NaturalistDuringStudyConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks up from his notes with a frustrated look
|
||||
* on his face.</I><BR><BR>
|
||||
*
|
||||
* Haven't you finished the task I appointed you yet? Gah! It's so
|
||||
* difficult to find a good apprentice these days.<BR><BR>
|
||||
*
|
||||
* Remember, you must first find an entrance to the Solen Hive. Once inside,
|
||||
* I need you to examine the Solen Egg Nests for me. When you have studied
|
||||
* all four nests, you should have enough information to earn yourself a
|
||||
* reward.<BR><BR>
|
||||
*
|
||||
* Now go on, away with you! I have piles of notes from other more helpful
|
||||
* apprentices that I still need to study!
|
||||
*/
|
||||
return 1054049;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054049;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -91,34 +38,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks up from his notes with a pleased expression
|
||||
* on his face.</I><BR><BR>
|
||||
*
|
||||
* Ah! Thank you, my goodly apprentice! These notes you have gathered will
|
||||
* no doubt assist me in my understanding of these fascinating Solen creatures.<BR><BR>
|
||||
*
|
||||
* Now, since you've done such a fine job, I feel that I should give you a little
|
||||
* reward.<BR><BR>
|
||||
*
|
||||
* I have a botanist friend who has discovered a strange mutation in the plants
|
||||
* she has grown. Through science and sorcery, she has managed to produce a mutant
|
||||
* strain of colored seeds the like of which no gardener has laid eyes upon.<BR><BR>
|
||||
*
|
||||
* As a reward for your fine efforts, I present you with this strange rare seed.
|
||||
* Which reminds me, I still need to compile my notes on Solen dietary habits. They
|
||||
* are voracious seed eaters, those Solen Matriarchs!<BR><BR>
|
||||
*
|
||||
* In any case, I must get back to my notes now. I give you my thanks once more,
|
||||
* and bid a good day to you my little apprentice! If you wish to help me out again,
|
||||
* just say the word.
|
||||
*/
|
||||
return 1054050;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054050;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
@ -132,39 +52,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class SpecialEndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks up from his notes with an ecstatic look upon
|
||||
* his face.</I><BR><BR>
|
||||
*
|
||||
* Oh my! These notes you've brought me - they say you have information on the
|
||||
* Secret Solen Egg Nest? I've heard many tales of this secret store of special
|
||||
* Solen Eggs, but there are many missing gaps in my notes concerning it.<BR><BR>
|
||||
*
|
||||
* The notes you've made here will most certainly advance my understanding of
|
||||
* this mysterious breed of creatures!<BR><BR>
|
||||
*
|
||||
* Considering the amazing effort you put into your work, I feel as if I should
|
||||
* give you something extra special as a bonus. Hrmm...<BR><BR>
|
||||
*
|
||||
* I have a botanist friend who has discovered a strange mutation in the plants
|
||||
* she has grown. Through science and sorcery, she has managed to produce a rare
|
||||
* mutant strain of colored seeds the like of which no gardener has laid
|
||||
* eyes upon.<BR><BR>
|
||||
*
|
||||
* I've given a few of her seeds out to various apprentices - but I usually keep
|
||||
* her very rare stock all for myself. They're quite amazing looking! However,
|
||||
* since you've done such a fine job for me, I'll present you with one of
|
||||
* these rare fire-red seeds.<BR><BR>
|
||||
*
|
||||
* Once again, my thanks to you! Now I really must get back to studying these notes!
|
||||
* Take care, my fine apprentice, and come back if you wish to help me further!
|
||||
*/
|
||||
return 1054051;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054051;
|
||||
|
||||
public SpecialEndConversation()
|
||||
{
|
||||
|
|
@ -178,20 +66,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class FullBackpackConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks at you with a friendly expression.</I><BR><BR>
|
||||
*
|
||||
* I see you've returned with information for me. While I'd like to finish
|
||||
* conducting our business, it seems that you're a bit overloaded with
|
||||
* equipment at the moment. Perhaps you'd better free up some room before
|
||||
* we get to discussing your reward.
|
||||
*/
|
||||
return 1054053;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054053;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
private bool m_Special;
|
||||
private Rectangle2D[] m_Rects;
|
||||
|
||||
public bool Special{ get{ return m_Special; } }
|
||||
public bool Special => m_Special;
|
||||
|
||||
public int ID
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,20 +6,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
{
|
||||
public class StudyNestsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find an entrance to the Solen Hive, and search within for the Solen
|
||||
* Egg Nests. Each Nest must be studied for some time without a break in
|
||||
* concentration in order to gather useful information.<BR><BR>
|
||||
*
|
||||
* Once you have completed your study of the Nests, return to the Naturalist
|
||||
* who gave you this task.
|
||||
*/
|
||||
return 1054044;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054044;
|
||||
|
||||
public override int MaxProgress => NestArea.NonSpecialCount;
|
||||
|
||||
|
|
@ -32,7 +19,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
private ArrayList m_StudiedNests;
|
||||
private bool m_StudiedSpecialNest;
|
||||
|
||||
public bool StudiedSpecialNest{ get{ return m_StudiedSpecialNest; } }
|
||||
public bool StudiedSpecialNest => m_StudiedSpecialNest;
|
||||
|
||||
public StudyNestsObjective()
|
||||
{
|
||||
|
|
@ -174,16 +161,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public class ReturnToNaturalistObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have studied enough Solen Egg Nests to gather a fair amount of
|
||||
* useful information. Return to the Naturalist who gave you this task.
|
||||
*/
|
||||
return 1054048;
|
||||
}
|
||||
}
|
||||
public override object Message => 1054048;
|
||||
|
||||
public ReturnToNaturalistObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,50 +19,9 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// "Study of the Solen Hive"
|
||||
return 1054041;
|
||||
}
|
||||
}
|
||||
public override object Name => 1054041;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Naturalist looks up from his notes, regarding you with a hopeful
|
||||
* look in his eyes.</I><BR><BR>
|
||||
*
|
||||
* Um..yes..excuse me. I was wondering if you could offer me a bit of assistance.
|
||||
* You see, I'm a naturalist of some repute - a gentleman and a scholar if you
|
||||
* will - primarily interested in the study of insects and arachnids. While I've
|
||||
* written a few interesting books on the marvelous Terathan race and their bizarre
|
||||
* culture, now I've heard tales of a truly significant new discovery!<BR><BR>
|
||||
*
|
||||
* Apparently a race of ant-like creatures known as the Solen have appeared in
|
||||
* our world, scuttling up from some previously hidden home. Can you believe it?
|
||||
* Truly these are amazing times! To a scholar such as myself this is indeed
|
||||
* an exciting opportunity.<BR><BR>
|
||||
*
|
||||
* That said, while I may be a genius of some reknown, sharp as a tack and quick
|
||||
* with the quill, I'm afraid I'm not much of the adventuring type. Though I have
|
||||
* gained assistance before, I still have many unanswered questions.<BR><BR>
|
||||
*
|
||||
* I am particularly interested in the Solen Egg Nests that are studiously
|
||||
* protected by the Solen workers. If you would be so kind as to assist me,
|
||||
* I would ask that you travel into the Solen Hive and inspect each of the
|
||||
* Solen Egg Nests that reside within. You will have to spend some time examining
|
||||
* each Nest before you have gathered enough information. Once you are done,
|
||||
* report back to me and I will reward you as best as I can for your valiant
|
||||
* efforts!<BR><BR>
|
||||
*
|
||||
* Will you accept my offer?
|
||||
*/
|
||||
return 1054042;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1054042;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.Zero;
|
||||
public override bool IsTutorial => false;
|
||||
|
|
@ -71,7 +30,7 @@ namespace Server.Engines.Quests.Naturalist
|
|||
|
||||
private Naturalist m_Naturalist;
|
||||
|
||||
public Naturalist Naturalist{ get{ return m_Naturalist; } }
|
||||
public Naturalist Naturalist => m_Naturalist;
|
||||
|
||||
public StudyOfSolenQuest( PlayerMobile from, Naturalist naturalist ) : base( from )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,35 +2,7 @@ namespace Server.Engines.Quests.Zento
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear in a window
|
||||
* such as this one. You can review the information at any time during your
|
||||
* quest.<BR><BR>
|
||||
*
|
||||
* <U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest,
|
||||
* will be underlined <a href = "?ForceTopic73">links to the codex of wisdom</a>,
|
||||
* or online help system. You can click on the text to get detailed information
|
||||
* on the underlined subject. You may also access the Codex Of Wisdom by
|
||||
* pressing "F1" or by clicking on the "?" on the toolbar at the top of
|
||||
* your screen.<BR><BR><U>Context Menus</U><BR><BR>
|
||||
*
|
||||
* Context menus can be called up by single left-clicking (or Shift + single
|
||||
* left-click, if you changed it) on most objects or NPCs in the world.
|
||||
* Nearly everything, including your own avatar will have context menus available.
|
||||
* Bringing up your avatar's context menu will give you options to cancel your quest
|
||||
* and review various quest information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049092;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -44,14 +16,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class DirectionConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The Deathwatch Beetle Hatchlings live in The Waste - the desert close to this city.
|
||||
return 1063323;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063323;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -62,14 +27,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class TakeCareConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// I know you can take care of those nasty Deathwatch Beetle Hatchlings! No get to it!
|
||||
return 1063324;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063324;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -80,19 +38,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Thank you for helping me get rid of these vile beasts!
|
||||
* You have been rewarded for your good deeds. If you wish to
|
||||
* help me in the future, visit me again.<br><br>
|
||||
*
|
||||
* Farewell.
|
||||
*/
|
||||
return 1063321;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063321;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,14 +5,7 @@ namespace Server.Engines.Quests.Zento
|
|||
{
|
||||
public class FirstKillObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill 10 Deathwatch Beetle Hatchlings and return to Ansella Gryen.
|
||||
return 1063316;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063316;
|
||||
|
||||
public override void RenderProgress( BaseQuestGump gump )
|
||||
{
|
||||
|
|
@ -49,18 +42,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class SecondKillObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Great job! One less terrible hatchling in the Waste!<BR><BR>
|
||||
*
|
||||
* Once you've killed 10 of the Deathwatch Beetle Hatchlings,
|
||||
* return to Ansella for your reward!
|
||||
*/
|
||||
return 1063320;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063320;
|
||||
|
||||
public override void RenderProgress( BaseQuestGump gump )
|
||||
{
|
||||
|
|
@ -104,14 +86,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class ThirdKillObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Continue killing Deathwatch Beetle Hatchlings.
|
||||
return 1063319;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063319;
|
||||
|
||||
public override void RenderProgress( BaseQuestGump gump )
|
||||
{
|
||||
|
|
@ -155,14 +130,7 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public class ReturnObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Ansella Gryen for your reward.
|
||||
return 1063313;
|
||||
}
|
||||
}
|
||||
public override object Message => 1063313;
|
||||
|
||||
public ReturnObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,30 +19,9 @@ namespace Server.Engines.Quests.Zento
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Terrible Hatchlings
|
||||
return 1063314;
|
||||
}
|
||||
}
|
||||
public override object Name => 1063314;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* The Deathwatch Beetle Hatchlings have trampled through my fields
|
||||
* again, what a nuisance! Please help me get rid of the terrible
|
||||
* hatchlings. If you kill 10 of them, you will be rewarded.
|
||||
* The Deathwatch Beetle Hatchlings live in The Waste -
|
||||
* the desert close to this city.<BR><BR>
|
||||
*
|
||||
* Will you accept this challenge?
|
||||
*/
|
||||
return 1063315;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1063315;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
|
||||
public override bool IsTutorial => true;
|
||||
|
|
|
|||
|
|
@ -4,24 +4,7 @@ namespace Server.Engines.Quests.Doom
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have accepted Victoria's help. She requires 1000 Daemon
|
||||
* bones to summon the devourer.<BR><BR>
|
||||
*
|
||||
* You may hand Victoria the bones as you collect them and she
|
||||
* will keep count of how many you have brought her.<BR><BR>
|
||||
*
|
||||
* Daemon bones can be collected via various means throughout
|
||||
* Dungeon Doom.<BR><BR>
|
||||
*
|
||||
* Good luck.
|
||||
*/
|
||||
return 1050027;
|
||||
}
|
||||
}
|
||||
public override object Message => 1050027;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -35,17 +18,7 @@ namespace Server.Engines.Quests.Doom
|
|||
|
||||
public class VanquishDaemonConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Well done brave soul. I shall summon the beast to the circle
|
||||
* of stones just South-East of here. Take great care - the beast
|
||||
* takes many forms. Now hurry...
|
||||
*/
|
||||
return 1050021;
|
||||
}
|
||||
}
|
||||
public override object Message => 1050021;
|
||||
|
||||
public VanquishDaemonConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,22 +23,22 @@ namespace Server.Engines.Quests.Doom
|
|||
[CommandProperty( AccessLevel.GameMaster, AccessLevel.Administrator )]
|
||||
public Chyloth Chyloth
|
||||
{
|
||||
get{ return m_Chyloth; }
|
||||
set{ m_Chyloth = value; }
|
||||
get => m_Chyloth;
|
||||
set => m_Chyloth = value;
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster, AccessLevel.Administrator )]
|
||||
public SkeletalDragon Dragon
|
||||
{
|
||||
get{ return m_Dragon; }
|
||||
set{ m_Dragon = value; }
|
||||
get => m_Dragon;
|
||||
set => m_Dragon = value;
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster, AccessLevel.Administrator )]
|
||||
public bool Summoning
|
||||
{
|
||||
get{ return m_Summoning; }
|
||||
set{ m_Summoning = value; }
|
||||
get => m_Summoning;
|
||||
set => m_Summoning = value;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Engines.Quests.Doom
|
|||
|
||||
public BoneDemon Daemon
|
||||
{
|
||||
get{ return m_Daemon; }
|
||||
get => m_Daemon;
|
||||
set
|
||||
{
|
||||
m_Daemon = value;
|
||||
|
|
|
|||
|
|
@ -39,14 +39,14 @@ namespace Server.Engines.Quests.Doom
|
|||
|
||||
public BellOfTheDead Bell
|
||||
{
|
||||
get{ return m_Bell; }
|
||||
set{ m_Bell = value; }
|
||||
get => m_Bell;
|
||||
set => m_Bell = value;
|
||||
}
|
||||
|
||||
public Mobile AngryAt
|
||||
{
|
||||
get{ return m_AngryAt; }
|
||||
set{ m_AngryAt = value; }
|
||||
get => m_AngryAt;
|
||||
set => m_AngryAt = value;
|
||||
}
|
||||
|
||||
public virtual void BeginGiveWarning()
|
||||
|
|
|
|||
|
|
@ -6,16 +6,7 @@ namespace Server.Engines.Quests.Doom
|
|||
{
|
||||
public class CollectBonesObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find 1000 Daemon bones and hand them
|
||||
* to Victoria as you find them.
|
||||
*/
|
||||
return 1050026;
|
||||
}
|
||||
}
|
||||
public override object Message => 1050026;
|
||||
|
||||
public override int MaxProgress => 1000;
|
||||
|
||||
|
|
@ -85,19 +76,11 @@ namespace Server.Engines.Quests.Doom
|
|||
|
||||
public Corpse CorpseWithSkull
|
||||
{
|
||||
get{ return m_CorpseWithSkull; }
|
||||
set{ m_CorpseWithSkull = value; }
|
||||
get => m_CorpseWithSkull;
|
||||
set => m_CorpseWithSkull = value;
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Go forth and vanquish the devourer that has been summoned!
|
||||
*/
|
||||
return 1050037;
|
||||
}
|
||||
}
|
||||
public override object Message => 1050037;
|
||||
|
||||
public VanquishDaemonObjective( BoneDemon daemon )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,58 +19,17 @@ namespace Server.Engines.Quests.Doom
|
|||
private Victoria m_Victoria;
|
||||
private bool m_WaitForSummon;
|
||||
|
||||
public Victoria Victoria
|
||||
{
|
||||
get{ return m_Victoria; }
|
||||
}
|
||||
public Victoria Victoria => m_Victoria;
|
||||
|
||||
public bool WaitForSummon
|
||||
{
|
||||
get{ return m_WaitForSummon; }
|
||||
set{ m_WaitForSummon = value; }
|
||||
get => m_WaitForSummon;
|
||||
set => m_WaitForSummon = value;
|
||||
}
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// The Summoning
|
||||
return 1050025;
|
||||
}
|
||||
}
|
||||
public override object Name => 1050025;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Victoria turns to you and smiles...</I><BR><BR>
|
||||
*
|
||||
* Chyloth, eh? He is the ferry man of lake <I>Mortis</I>, beyond which lies
|
||||
* the nest of the <I>The Dark Father</I> - the fountainhead of all the evil
|
||||
* that you see around you here.<BR><BR>
|
||||
*
|
||||
* 800 and some years ago, my sisters and I persuaded the ferry man Chyloth
|
||||
* to take us across the lake to battle the <I>The Dark Father</I>.
|
||||
* My party was utterly destroyed, except for me. For my insolence, I was
|
||||
* cursed by the <I>The Dark Father</I> to wander these halls for eternity,
|
||||
* unable to die - unable to leave.<BR><BR>
|
||||
*
|
||||
* Chyloth usually only crosses over the souls of the undead, but he can be
|
||||
* persuaded otherwise...with a token of gold, in the form of a human skull.
|
||||
* Such a gem can be found only in the belly of the hellspawn known as
|
||||
* <I>the devourer</I>.<BR><BR>
|
||||
*
|
||||
* I can help you summon the beast from the depths of the abyss, but I require
|
||||
* 1000 Daemon bones to do so. If you accept my help, I will store the Daemon
|
||||
* bones for you until you have collected all 1000 of them. Once the bones
|
||||
* are collected in full, I will summon the beast for you, which you must
|
||||
* slay to claim your prize.<BR><BR>
|
||||
*
|
||||
* Do you accept?
|
||||
*/
|
||||
return 1050020;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1050020;
|
||||
|
||||
public override bool IsTutorial => false;
|
||||
public override TimeSpan RestartDelay => TimeSpan.Zero;
|
||||
|
|
|
|||
|
|
@ -2,38 +2,7 @@ namespace Server.Engines.Quests.Haven
|
|||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear
|
||||
* in a window such as this one. You can review the information
|
||||
* at any time during your quest.<BR><BR>
|
||||
*
|
||||
* <U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest,
|
||||
* will be underlined <a href = "?ForceTopic73">links to the codex of wisdom</a>,
|
||||
* or online help system. You can click on the text to get detailed
|
||||
* information on the underlined subject. You may also access the
|
||||
* Codex Of Wisdom by pressing "F1" or by clicking on the "?" on the toolbar
|
||||
* at the top of your screen.<BR><BR>
|
||||
*
|
||||
* <U>Context Menus</U><BR><BR>
|
||||
*
|
||||
* Context menus can be called up by single left-clicking
|
||||
* (or Shift + single left-click, if you changed it) on most objects
|
||||
* or NPCs in the world. Nearly everything, including your own avatar
|
||||
* will have context menus available. Bringing up your avatar's
|
||||
* context menu will give you options to cancel your quest and review
|
||||
* various quest information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049092;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -47,53 +16,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class UzeraanTitheConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Uzeraan greets you as you approach...</I><BR><BR>
|
||||
*
|
||||
* Greetings traveler!<BR><BR>
|
||||
*
|
||||
* I am Uzeraan, the lord of this house and overseer of this fine city, Haven.
|
||||
* I know we have just met, but time is short and we need to reinforce
|
||||
* the troops in the mountain pass, so I will not waste your time
|
||||
* with pleasantries.<BR><BR>
|
||||
*
|
||||
* We have been trying to fight back the wicked <I>Horde Minions</I> which
|
||||
* have recently begun attacking our cities - but to no avail.
|
||||
* We desperately need help!<BR><BR>
|
||||
*
|
||||
* Your first task will be to assess the situation in the mountain pass,
|
||||
* and help our troops defeat the Horde Minions there.<BR><BR>
|
||||
*
|
||||
* Before I send you into battle however, it is time that I teach you a thing
|
||||
* or two about the way of the Paladin.<BR><BR>
|
||||
*
|
||||
* <U>The Paladin</U><BR><BR>
|
||||
*
|
||||
* Paladins are the holy warriors of the realm who have dedicated themselves
|
||||
* as protectors of the virtues and vanquishers of all that is evil.<BR><BR>
|
||||
*
|
||||
* Paladins have several <a href = "?ForceTopic111">special abilities</a> that
|
||||
* are not available to the ordinary warrior. Due to the spiritual nature of
|
||||
* these abilities, the Paladin requires some amount of mana to activate them.
|
||||
* In addition to mana, the Paladin is also required to spend a certain amount
|
||||
* of <a href = "?ForceTopic109">tithing points</a> each time a special ability
|
||||
* is used.<BR><BR>
|
||||
*
|
||||
* Tithing points and mana are automatically consumed when a special Paladin
|
||||
* ability is activated. All Paladin abilities are activated through the
|
||||
* <a href = "?ForceTopic114">Book of Chivalry</a><BR><BR>
|
||||
*
|
||||
* Go now, to the shrine just East of here, just before the doors and
|
||||
* <a href = "?ForceTopic109">tithe</a> at least 500 gold.<BR><BR>
|
||||
*
|
||||
* Return here when you are done.
|
||||
*/
|
||||
return 1060209;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060209;
|
||||
|
||||
public UzeraanTitheConversation()
|
||||
{
|
||||
|
|
@ -387,46 +310,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class UzeraanScrollOfPowerConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Uzeraan carefully unravels the scroll and begins to read...
|
||||
* after a short while his face lights up with a smile and he speaks to you...</I><BR><BR>
|
||||
*
|
||||
* This is wonderful, friend! For your troubles I've given you a treasure map
|
||||
* I had laying about, along with a shovel to <a href = "?ForceTopic91">dig up the treasure</a>.
|
||||
* Feel free to find the treasure at your leisure.<BR><BR>
|
||||
*
|
||||
* Now let us get back to the business of this scroll. The only trouble,
|
||||
* is that this scroll calls for some special ingredients that I do
|
||||
* not have on hand.<BR><BR>
|
||||
*
|
||||
* Though it may involve some danger, I will ask of you to find
|
||||
* these reagents for me. <BR><BR>
|
||||
*
|
||||
* There are three reagents I need to complete the spell.<BR><BR>
|
||||
*
|
||||
* The first thing I need is some <I>Fertile Dirt</I>.<BR><BR>
|
||||
*
|
||||
* There lives a Dryad on this island who I know would have such a thing on hand.
|
||||
* I have recalibrated the teleporter to transport you to the Dryad's grove,
|
||||
* which lies <a href = "?ForceTopic13">South-West</a> of this mansion.<BR><BR>
|
||||
*
|
||||
* Tell her Uzeraan sent you, and she should cooperate.<BR><BR>
|
||||
*
|
||||
* Should you get into trouble out there or should you lose your way, do not worry.
|
||||
* I have also given you a magical horn - a <I>Horn of Retreat</I>.
|
||||
* Play the horn at any time to open a magical gateway that leads back to this mansion.<BR><BR>
|
||||
*
|
||||
* Should your horn run out of <a href = "?ForceTopic83">charges</a>,
|
||||
* simply hand me or any of my mansion guards the horn to have it recharged.<BR><BR>
|
||||
*
|
||||
* Good luck friend.
|
||||
*/
|
||||
return 1049325;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049325;
|
||||
|
||||
private static QuestItemInfo[] m_Info = new QuestItemInfo[]
|
||||
{
|
||||
|
|
@ -449,27 +333,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class DryadConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Dryad watches hungrily as you approach, giving you an
|
||||
* uneasy feeling in the pit of your stomach. You explain that
|
||||
* Uzeraan has sent you for a quantity of fertile dirt. With a wide grin
|
||||
* and in a slightly hoarse voice she replies...</I><BR><BR>
|
||||
*
|
||||
* <I>Fertile Dirt</I>, eh? Well, I have a few patches here...but what have
|
||||
* you brought me in return? Came empty-handed did you? That's unfortunate
|
||||
* indeed... but since you were sent by my dear friend Uzeraan, I supposed
|
||||
* I could oblige you.<BR><BR>
|
||||
*
|
||||
* <I>The Dryad digs around in the ground and hands you a patch of Fertile Dirt.<BR><BR>
|
||||
*
|
||||
* With a smile she goes back to her work...</I>
|
||||
*/
|
||||
return 1049326;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049326;
|
||||
|
||||
public DryadConversation()
|
||||
{
|
||||
|
|
@ -639,34 +503,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class UzeraanDaemonBoneConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>As you hand Uzeraan the final reagent, he nods at you with approval
|
||||
* and starts searching through the pockets of his robe...<BR><BR>
|
||||
*
|
||||
* After a short while he hands you a small pouch...</I><BR><BR>
|
||||
*
|
||||
* There you are. Your contract of employment with me has expired and so here
|
||||
* is your pay. 2000 gold in the form of a check and a magical sextant that
|
||||
* will help you find <a href = "?ForceTopic47">Moongates</a> and Banks.<BR><BR>
|
||||
*
|
||||
* Before you can actually spend the money I have given you, however, you must
|
||||
* <a href="?ForceTopic86">cash the check</a>.<BR><BR>
|
||||
*
|
||||
* I have recalibrated the teleporter to take you to the Haven
|
||||
* <a href="?ForceTopic38">Bank</a>. Step onto the teleporter to be taken
|
||||
* to the bank, which lies <a href = "?ForceTopic13">South-East</a> of here.<BR><BR>
|
||||
*
|
||||
* Thank you for all your help friend. I hope we shall meet
|
||||
* each other again in the future.<BR><BR>
|
||||
*
|
||||
* Farewell.
|
||||
*/
|
||||
return 1049335;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049335;
|
||||
|
||||
public UzeraanDaemonBoneConversation()
|
||||
{
|
||||
|
|
@ -680,30 +517,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class BankerConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The banker smiles at you and greets you in a loud and robust voice...</I><BR><BR>
|
||||
*
|
||||
* Well hello there adventurer! I see you've learned how to cash checks. Wonderful!
|
||||
* Let me tell you a bit about the banks in this world...<BR><BR>
|
||||
*
|
||||
* Anything that you place into any bank box, can be retrieved from any other
|
||||
* bank box in the land. For instance, if you place an item into a bank box in
|
||||
* Britain, it can be retrieved from your bank box in Moonglow or any other city.<BR><BR>
|
||||
*
|
||||
* Bank boxes are very secure. So secure, in fact, that no one can ever get into
|
||||
* your bank box except for yourself. Security is hard to come by these days,
|
||||
* but you can trust in the banking system of Britannia! We shall not let you down!<BR><BR>
|
||||
*
|
||||
* I hope to be seeing much more of you as your riches grow! May your bank box overflow
|
||||
* with the spoils of your adventures.<BR><BR>Farewell adventurer, you are now free to
|
||||
* explore the world on your own.
|
||||
*/
|
||||
return 1060137;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060137;
|
||||
|
||||
public BankerConversation()
|
||||
{
|
||||
|
|
@ -717,21 +531,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class RadarConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* If you are leaving the mansion, you should learn about the Radar Map.<BR><BR>
|
||||
*
|
||||
* The Radar Map (or Overhead View) can be opened by pressing 'ALT-R' on your
|
||||
* keyboard. It shows your immediate surroundings from a bird's eye view.<BR><BR>
|
||||
*
|
||||
* Pressing ALT-R twice, will enlarge the Radar Map a little. Use the Radar Map
|
||||
* often as you travel throughout the world to familiarize yourself with your surroundings.
|
||||
*/
|
||||
return 1049660;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049660;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -868,21 +668,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class DryadAppleConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The Dryad sticks the apple into the ground and you watch it
|
||||
* rot before your eyes.<BR><BR>
|
||||
*
|
||||
* She pulls the now fertile dirt out of the ground and hands
|
||||
* it to you.</I><BR><BR>
|
||||
*
|
||||
* There you go friend. Try not to lose it again this time, eh?
|
||||
*/
|
||||
return 1049360;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049360;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -893,18 +679,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class LostDaemonBloodConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You return without <I>a Vial of Blood</I>? It is imperative that we
|
||||
* get all of the ingredients friend.<BR><BR>
|
||||
*
|
||||
* Go back to the chest and fetch another vial. Please hurry.
|
||||
*/
|
||||
return 1049375;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049375;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -915,19 +690,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class LostDaemonBoneConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You return without <I>a Daemon Bone</I>? It is imperative that we
|
||||
* get all of the ingredients friend.<BR><BR>
|
||||
*
|
||||
* Go back to the graveyard and continue hunting the undead until you
|
||||
* find another one. Please hurry.
|
||||
*/
|
||||
return 1049376;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049376;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -938,25 +701,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FewReagentsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* I don't feel comfortable sending you into a potentially dangerous situation
|
||||
* with as few <a href = "?ForceTopic37">reagents</a> as you have in your pack.<BR><BR>
|
||||
*
|
||||
* Before going on, please acquire at least 30 of each reagent. You can
|
||||
* <a href ="?ForceTopic33">purchase</a> reagents from the Mage shop, which is
|
||||
* located just <a href ="?ForceTopic13">East</a> this mansion.<BR><BR>
|
||||
*
|
||||
* Remember that there are eight (8) different reagents: Black Pearl, Mandrake Root,
|
||||
* Sulfurous Ash, Garlic, Ginseng, Blood Moss, Nightshade and Spider's Silk.<BR><BR>
|
||||
*
|
||||
* Come back here when you are ready to go.
|
||||
*/
|
||||
return 1049390;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049390;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ namespace Server.Engines.Quests.Haven
|
|||
public CannonDirection CannonDirection => m_CannonDirection;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public MilitiaCanoneer Canoneer { get { return m_Canoneer; } set { m_Canoneer = value; } }
|
||||
public MilitiaCanoneer Canoneer { get => m_Canoneer;
|
||||
set => m_Canoneer = value;
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Cannon( CannonDirection direction )
|
||||
|
|
@ -149,7 +151,7 @@ namespace Server.Engines.Quests.Haven
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public MilitiaCanoneer Canoneer
|
||||
{
|
||||
get { return Addon is Cannon cannon ? cannon.Canoneer : null; }
|
||||
get => Addon is Cannon cannon ? cannon.Canoneer : null;
|
||||
set { if ( Addon is Cannon cannon ) cannon.Canoneer = value; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ namespace Server.Engines.Quests.Haven
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Active
|
||||
{
|
||||
get { return m_Active; }
|
||||
set { m_Active = value; }
|
||||
get => m_Active;
|
||||
set => m_Active = value;
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
|
|
|
|||
|
|
@ -6,14 +6,7 @@ namespace Server.Engines.Quests.Haven
|
|||
{
|
||||
public class FindUzeraanBeginObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Find Uzeraan. Uzeraan will explain what you need to do next.
|
||||
return 1046039;
|
||||
}
|
||||
}
|
||||
public override object Message => 1046039;
|
||||
|
||||
public FindUzeraanBeginObjective()
|
||||
{
|
||||
|
|
@ -30,18 +23,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class TitheGoldObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Go to the shrine inside of Uzeraan's Mansion, near the front doors and
|
||||
* <a href = "?ForceTopic109">tithe</a> at least 500 gold.<BR><BR>
|
||||
*
|
||||
* Return to Uzeraan when you are done.
|
||||
*/
|
||||
return 1060386;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060386;
|
||||
|
||||
private int m_OldTithingPoints;
|
||||
|
||||
|
|
@ -71,14 +53,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FindUzeraanFirstTaskObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Uzeraan, now that you have enough tithing points to continue your quest.
|
||||
return 1060387;
|
||||
}
|
||||
}
|
||||
public override object Message => 1060387;
|
||||
|
||||
public FindUzeraanFirstTaskObjective()
|
||||
{
|
||||
|
|
@ -259,18 +234,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FindUzeraanAboutReportObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* It's no use... The <I>Horde Minions</I> are too many.
|
||||
* They are appearing out of nowhere.<BR><BR>
|
||||
*
|
||||
* Return to Uzeraan and report your findings.
|
||||
*/
|
||||
return 1049091;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049091;
|
||||
|
||||
public FindUzeraanAboutReportObjective()
|
||||
{
|
||||
|
|
@ -284,18 +248,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FindSchmendrickObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Prepare for battle and step onto the teleporter,
|
||||
* located against the wall in the main hall of Uzeraan's mansion.<BR><BR>
|
||||
*
|
||||
* Find Schmendrick within the mines.
|
||||
*/
|
||||
return 1049120;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049120;
|
||||
|
||||
public FindSchmendrickObjective()
|
||||
{
|
||||
|
|
@ -318,16 +271,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FindApprenticeObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find Schmendrick's apprentice who is somewhere in the mining cave.
|
||||
* The apprentice has the scroll of power needed by Uzeraan.
|
||||
*/
|
||||
return 1049323;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049323;
|
||||
|
||||
public FindApprenticeObjective()
|
||||
{
|
||||
|
|
@ -341,17 +285,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class ReturnScrollOfPowerObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have obtained the scroll of power! Find your way out of the cave.<BR><BR>
|
||||
*
|
||||
* Hand the scroll to Uzeraan (drag and drop) once you arrive in his mansion.
|
||||
*/
|
||||
return 1049324;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049324;
|
||||
|
||||
public ReturnScrollOfPowerObjective()
|
||||
{
|
||||
|
|
@ -365,18 +299,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class FindDryadObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find the Dryad in the woods of Haven and get a patch
|
||||
* of fertile dirt from her.<BR><BR>
|
||||
*
|
||||
* Use Uzeraan's teleporter to get there if necessary.
|
||||
*/
|
||||
return 1049358;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049358;
|
||||
|
||||
public FindDryadObjective()
|
||||
{
|
||||
|
|
@ -390,18 +313,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class ReturnFertileDirtObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have acquired the <I>Fertile Dirt</I>!<BR><BR>
|
||||
*
|
||||
* Return to the mansion (<a href = "?ForceTopic13">North-East</a>
|
||||
* of the Dryad's Grove) and hand it to Uzeraan.
|
||||
*/
|
||||
return 1049327;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049327;
|
||||
|
||||
public ReturnFertileDirtObjective()
|
||||
{
|
||||
|
|
@ -415,18 +327,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class GetDaemonBloodObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Bring back a vial of blood.<BR><BR>
|
||||
*
|
||||
* Follow the road leading north from the mansion and walk into the hut
|
||||
* to find the chest that contains the vial
|
||||
*/
|
||||
return 1049361;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049361;
|
||||
|
||||
private bool m_Ambushed;
|
||||
|
||||
|
|
@ -479,17 +380,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class ReturnDaemonBloodObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have the vial of blood!<BR><BR>
|
||||
*
|
||||
* Return to Uzeraan's mansion and hand him the vial.
|
||||
*/
|
||||
return 1049332;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049332;
|
||||
|
||||
public ReturnDaemonBloodObjective()
|
||||
{
|
||||
|
|
@ -507,8 +398,8 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public Container CorpseWithBone
|
||||
{
|
||||
get { return m_CorpseWithBone; }
|
||||
set { m_CorpseWithBone = value; }
|
||||
get => m_CorpseWithBone;
|
||||
set => m_CorpseWithBone = value;
|
||||
}
|
||||
|
||||
public override object Message
|
||||
|
|
@ -589,16 +480,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class ReturnDaemonBoneObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Head <a href = "?ForceTopic13">East</a> of here (or use the Horn of Retreat)
|
||||
* to return to Uzeraan's Mansion and deliver the bone to Uzeraan.
|
||||
*/
|
||||
return 1049334;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049334;
|
||||
|
||||
public ReturnDaemonBoneObjective()
|
||||
{
|
||||
|
|
@ -612,17 +494,7 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public class CashBankCheckObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Locate the Haven Bank (use the teleporter in Uzeraan's Mansion
|
||||
* if necessary), which lies <a href = "?ForceTopic13">South-East</a>
|
||||
* of Uzeraan's Mansion. Once there, <a href="?ForceTopic86">cash your check</a>.
|
||||
*/
|
||||
return 1049336;
|
||||
}
|
||||
}
|
||||
public override object Message => 1049336;
|
||||
|
||||
public CashBankCheckObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,41 +44,9 @@ namespace Server.Engines.Quests.Haven
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// "Uzeraan's Turmoil"
|
||||
return 1049007;
|
||||
}
|
||||
}
|
||||
public override object Name => 1049007;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The guard speaks to you as you come closer... </I><BR><BR>
|
||||
*
|
||||
* Greetings traveler! <BR><BR>
|
||||
*
|
||||
* Uzeraan, the lord of this house and overseer of this city -
|
||||
* <a href="?ForceTopic72">Haven</a>, has requested an audience with you. <BR><BR>
|
||||
*
|
||||
* Hordes of gruesome hell spawn are beginning to overrun the
|
||||
* city and terrorize the inhabitants. No one seems to be able
|
||||
* to stop them.<BR><BR>
|
||||
*
|
||||
* Our fine city militia is falling to the evil creatures
|
||||
* one battalion after the other.<BR><BR>
|
||||
*
|
||||
* Uzeraan, whom you can find through these doors, is looking to
|
||||
* hire mercenaries to aid in the battle. <BR><BR>
|
||||
*
|
||||
* Will you assist us?
|
||||
*/
|
||||
return 1049008;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1049008;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
|
||||
public override bool IsTutorial => true;
|
||||
|
|
|
|||
|
|
@ -2,29 +2,7 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
public class DontOfferConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The ancient, wrinkled hag looks up from her vile-smelling cauldron.
|
||||
* Her single, unblinking eye attempts to focus in on you, but to
|
||||
* little avail.</I><BR><BR>
|
||||
*
|
||||
* What's that? Who's there? What do you want with me? I don't have
|
||||
* time for the likes of you. I have stews to spice and brews to boil.
|
||||
* Too many things to complete to be helping out a stranger.<BR><BR>
|
||||
*
|
||||
* Besides, it looks as if you've already got yourself a quest that needs
|
||||
* doing. Perhaps if you finish the task you're on, you can return to me
|
||||
* and I'll help you out. But until then, leave an old witch alone to her
|
||||
* magics! Shoo! Away with ye!<BR><BR>
|
||||
*
|
||||
* <I>The witch rushes you off with a wave of her decrepit hand and returns
|
||||
* to tending the noxious brew boiling in her cauldron.</I>
|
||||
*/
|
||||
return 1055000;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055000;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -35,29 +13,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Somewhat out of character for the vile old witch, she actually seems
|
||||
* delighted that you've accepted her offer.</I><BR><BR>
|
||||
*
|
||||
* Ah! That's the spirit! You're not a useless bag of bones after all, are ye?
|
||||
* Well then, best get your hind quarters in gear and head towards the road!
|
||||
* Remember, my young Apprentice could be anywhere along the road heading towards
|
||||
* the Yew Graveyard, so be sure to run the whole course of it, and stay
|
||||
* on track!<BR><BR>
|
||||
*
|
||||
* And for Gashnak's sake, come back here when you've found something! And remember,
|
||||
* I don't have all day! And watch out for the imp Zeefzorpul! And don't return
|
||||
* empty handed! And pack a warm sweater! And don't trample my lawn on the
|
||||
* way out!<BR><BR>
|
||||
*
|
||||
* What are you still doing here? Get to it! Shoo!
|
||||
*/
|
||||
return 1055002;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055002;
|
||||
|
||||
public AcceptConversation()
|
||||
{
|
||||
|
|
@ -71,20 +27,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class HagDuringCorpseSearchConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The wrinkled hag looks up at you with venom in her eyes.</I><BR><BR>
|
||||
*
|
||||
* What're you doing back here? I thought I told you to go find my lost
|
||||
* Apprentice! I don't have time for your laziness, you wretched little worm!
|
||||
* Shoo! Away with ye! And don't come back until you've found out what's
|
||||
* happened to my Apprentice!
|
||||
*/
|
||||
return 1055003;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055003;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -95,24 +38,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class ApprenticeCorpseConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You inspect the charred and bloodied corpse, recognizing it from the
|
||||
* Hag's description as the lost Apprentice you were tasked to
|
||||
* bring back.<BR><BR>
|
||||
*
|
||||
* It appears as if he has been scorched by fire and magic, and scratched
|
||||
* at with vicious claws.<BR><BR>
|
||||
*
|
||||
* You wonder if this horrific act is the work of the vile imp Zeefzorpul
|
||||
* of which the Hag spoke. You decide you'd best return to the Hag and
|
||||
* report your findings.
|
||||
*/
|
||||
return 1055004;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055004;
|
||||
|
||||
public ApprenticeCorpseConversation()
|
||||
{
|
||||
|
|
@ -126,41 +52,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class MurderConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The wrinkled old Hag looks up from her cauldron of boiling
|
||||
* innards.</I><BR><BR>
|
||||
*
|
||||
* Bah! Back already? Can't you see I'm busy with my cooking? You
|
||||
* wouldn't like to have a little taste of my delicious dragon gizzard soup,
|
||||
* would you? Haw! I thought as much.<BR><BR>
|
||||
*
|
||||
* Enough of this jibber-jabber then - what news of my Apprentice?<BR><BR>
|
||||
*
|
||||
* What's that? You say that horrible little imp Zeefzorpul was behind his
|
||||
* disappearance!? What would Zeefzorpul want with my Apprentice? Probably
|
||||
* just wants to make life more miserable for me than it already is.<BR><BR>
|
||||
*
|
||||
* Wait! Bah! That must be it! Zeefzorpul must have found out that I sent
|
||||
* my Apprentices out with various Magic Brew Recipes - lists of tasks and
|
||||
* ingredients that needed completing.<BR><BR>
|
||||
*
|
||||
* That despicable Zeefzorpul knows I need the list of ingredients I gave to
|
||||
* that Apprentice. I've recipes to mix, stews to boil, magics to cast, and
|
||||
* fortunes to meddle! I won't let that wretched felchscum spoil my day.
|
||||
* You then, I need you to go find Zeefzorpul and get that scrap of
|
||||
* parchment back!<BR><BR>
|
||||
*
|
||||
* I'm not sure where he bides his time, but I'm sure if you go find his imp
|
||||
* friends and rough them up, they'll squeal on him in no time! They all
|
||||
* know each others' secret hiding places. Go on! Shoo! Go slay a few imps
|
||||
* until they cough up their secrets! No mercy for those little nasties!
|
||||
*/
|
||||
return 1055005;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055005;
|
||||
|
||||
public MurderConversation()
|
||||
{
|
||||
|
|
@ -174,22 +66,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class HagDuringImpSearchConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The sickly old hag looks up from her boiling cauldron.</I><BR><BR>
|
||||
*
|
||||
* Have you found that vile little Zeefzorpul yet? What!? You've come
|
||||
* back here without finding out where Zeefzorpul is, and what he's done
|
||||
* with my Magic Brew Recipe?<BR><BR>
|
||||
*
|
||||
* I told you what needs to be done, you little whelp! Now away with ye!
|
||||
* And don't you return until you've found my list of ingredients!
|
||||
*/
|
||||
return 1055006;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055006;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -202,33 +79,7 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
private Point3D m_ImpLocation;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The wretched imp cries out for mercy.</I><BR><BR>
|
||||
*
|
||||
* Forgive me! You master! You great warrior, great hooman, great greatest!
|
||||
* Forgive! Forgive! I give up Zeef! He no good any way! He always smack me
|
||||
* head and hurt me good! He say I ugly too, even with me pretty teef!<BR><BR>
|
||||
*
|
||||
* But I knows where he hide! I follow him flapping to his hidey hole.
|
||||
* He think he so smart but he so wrong! I make scribble drawing of where he
|
||||
* like to hide! But you need the whistle blower to make him come! He no come
|
||||
* without it! Make with the whistle at his hidey place, and Zeef must come,
|
||||
* he cannot resist!<BR><BR>
|
||||
*
|
||||
* <I>The frightened imp hands you a crumpled map and a strange flute.</I><BR><BR>
|
||||
*
|
||||
* You go to where the picture shows and then you play that whistle! Zeef come,
|
||||
* me promise! But you make promise that you smack Zeef head good!
|
||||
* Pweese?<BR><BR>
|
||||
*
|
||||
* <I>With this last request, the miserable little imp falls and breathes no more.</I>
|
||||
*/
|
||||
return 1055007;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055007;
|
||||
|
||||
public ImpDeathConversation( Point3D impLocation )
|
||||
{
|
||||
|
|
@ -261,41 +112,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class ZeefzorpulConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>In a puff of smoke that smells of brimstone, the imp Zeefzorpul
|
||||
* appears.</I><BR><BR>
|
||||
*
|
||||
* Wuh-whut!? How did stupid hooman find mighty Zeefzorpul? This crazy
|
||||
* many times! This crazy not possible! This big crazy with crazy on top!
|
||||
* But it happening! How can it be true!?<BR><BR>
|
||||
*
|
||||
* GAH! Even mighty Zeefzorpul can no resist that crazy music! Mighty
|
||||
* Zeefzorpul do what you want! Have you stupid paper back! Mighty Zeefzorpul
|
||||
* no want it any way. It dumb. It super dumb. Big dumb like stupid dumb
|
||||
* tree with dumb things on it! So stupid! So dumb that mighty Zeefzorpul
|
||||
* not even care! You see me not caring? You better cause it certainly
|
||||
* happening! Me not caring one bit!<BR><BR>
|
||||
*
|
||||
* <I>The strange little imp tosses the piece of parchment at you. Much
|
||||
* to your surprise, however, he swoops down in a flash of flapping wings
|
||||
* and steals the Magic Flute from your grasp.</I><BR><BR>
|
||||
*
|
||||
* Hah! So stupid like a hooman! Mighty Zeefzorpul has defeated stupid
|
||||
* hooman and is greatest ever imp in world! You serious stupid, mister
|
||||
* hooman. Big stupid with stupid on top. Now you no can make trick on me
|
||||
* again with crazy dance music! Mighty Zeefzorpul fly away to his other
|
||||
* secret home where you never find him again!<BR><BR>
|
||||
*
|
||||
* Me hope you get eated by a troll!<BR><BR>
|
||||
*
|
||||
* <I>With that, the imp Zeefzorpul disappears in another puff of rancid smoke.</I>
|
||||
*/
|
||||
return 1055008;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055008;
|
||||
|
||||
public ZeefzorpulConversation()
|
||||
{
|
||||
|
|
@ -309,31 +126,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class RecipeConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The wart-covered witch looks up from pouring fetid scraps of meat
|
||||
* into her cauldron.</I><BR><BR>
|
||||
*
|
||||
* You've dealt with that troublesome imp Zeefzorpul? Good for you, little
|
||||
* one! You're not as useless as you appear, even to a daft old wench such
|
||||
* as myself!<BR><BR>
|
||||
*
|
||||
* Now then, I see you've recovered my precious Magic Brew Recipe. I suppose
|
||||
* you expect a reward? Well, you can go on expecting, and I can go on being
|
||||
* ugly. What good is it to me that I have the list, if I don't have an
|
||||
* apprentice to go gather the ingredients and perform the tasks
|
||||
* themselves!<BR><BR>
|
||||
*
|
||||
* If you want your precious little reward, you'll have to complete the task
|
||||
* I gave to my previous Apprentice. Now away with you! Shoo! Shimmy! Skedattle!
|
||||
* I've heads to boil and stews to spice! Don't you return until you've completed
|
||||
* every item on that list!
|
||||
*/
|
||||
return 1055009;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055009;
|
||||
|
||||
public RecipeConversation()
|
||||
{
|
||||
|
|
@ -347,31 +140,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class HagDuringIngredientsConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The ancient crone looks up from her bubbling brew, staring you down
|
||||
* with her one good eye.</I><BR><BR>
|
||||
*
|
||||
* You've returned already have you? And what of your task? Have you gathered
|
||||
* all the needed ingredients?<BR><BR>
|
||||
*
|
||||
* What's that!? You still haven't finished the simple little task I've set before
|
||||
* you? Then why come back here and bother me? I can't get a single brew
|
||||
* concocted if you keep bugging me with your whimpering little diatribes! Why,
|
||||
* you're worse than my last apprentice - and he was the very king of fools!<BR><BR>
|
||||
*
|
||||
* Go on with ye! Away and begone! I don't want to see hide nor hair of your
|
||||
* whining little face until you've gathered each and every last one of the ingredients
|
||||
* on that list!<BR><BR>
|
||||
*
|
||||
* <I>With a disgusting hacking noise, the vile witch spits upon the ground and
|
||||
* brushes you off with a wave of her wrinkled old hand.</I>
|
||||
*/
|
||||
return 1055012;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055012;
|
||||
|
||||
public override bool Logged => false;
|
||||
|
||||
|
|
@ -382,41 +151,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class BlackheartFirstConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The bawdy old pirate captain looks up from his bottle of Wild Harpy
|
||||
* whiskey, as drunk as any man you've ever seen.<BR><BR>
|
||||
*
|
||||
* With an excruciatingly slow movement, he pushes back his tricorne hat
|
||||
* and stares you down with red-rimmed eyes.</I><BR><BR>
|
||||
*
|
||||
* Whut tha blazes do ye want, landlubber? Some've Captain Blackheart's
|
||||
* fine Whiskey? Well ye can drown in the seven seas, ya barnacle-covered
|
||||
* bilge rat!<BR><BR>
|
||||
*
|
||||
* I've cut down pasty-faced runts like yerself for lesser insults! I've
|
||||
* sailed the seas've this world fer fifty years, and never seen a more
|
||||
* milk-soaked pansy lass than ye come in here for a favor. Give ye some
|
||||
* of my special Whiskey? I'd sooner wrestle a sea serpent naked - and I've
|
||||
* done that some twenty times!<BR><BR>
|
||||
*
|
||||
* Ye see, ol' Captain Blackheart's Whiskey is only for pirate folk. And ye
|
||||
* don't look like no pirate I've ever seen. Ye have te have the right cut
|
||||
* of cloth and the right amount of liquor in yer belly te sail on my crew!
|
||||
* And without that, ye might as well go home and cry to yer mommy. Cause
|
||||
* ye ain't ever gonna share no drink with me!<BR><BR>
|
||||
*
|
||||
* Now off with ye!<BR><BR>
|
||||
*
|
||||
* <I>With that, Captain Blackheart goes back to singing his bawdy songs
|
||||
* and drinking his whiskey. It seems as if you'll have to find some way to
|
||||
* change his mind about your worthiness.</I>
|
||||
*/
|
||||
return 1055010;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055010;
|
||||
|
||||
public BlackheartFirstConversation()
|
||||
{
|
||||
|
|
@ -643,46 +378,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The horrible wretch of a witch looks up from her vile experiments
|
||||
* and focuses her one good eye on you.</I><BR><BR>
|
||||
*
|
||||
* Eh? What's that? You say you've gathered the ingredients for my delicious
|
||||
* Magic Brew?<BR><BR>
|
||||
*
|
||||
* Well, well, I don't know exactly what to say. I thought for sure you'd
|
||||
* end up dead! Haw! Can't blame a lady for wishing, can you? Even if she
|
||||
* is a bit old and wrinkled.<BR><BR>
|
||||
*
|
||||
* Well, I promised you a reward for your efforts, and I never lie - leastways
|
||||
* not to someone like you, after the great sacrifices you've made. You know,
|
||||
* I could use a new Apprentice, in an official capacity as it were. I couldn't
|
||||
* convince you to stay around and help me out some more could I? There's always
|
||||
* cauldrons that need cleaning, dung that needs shoveling, newts eye that
|
||||
* needs a proper chewing, and fires that need stoking.<BR><BR>
|
||||
*
|
||||
* What's that? Not interested? Well, I suppose you have great things ahead of
|
||||
* you and all that. Feh! Like a puckish little puke like you could ever make
|
||||
* something of themselves in this cold old world!<BR><BR>
|
||||
*
|
||||
* Nevertheless, I'll give you your blasted reward, and you'd better be happy
|
||||
* with it because it's all you're getting. Caused me enough trouble as it is.
|
||||
* Here, take it, and be off with you! It'll be a pleasure to my eye if I
|
||||
* never have to squint to see you again! And the stench! Smells like you
|
||||
* washed this very morning! A great fancy folk you are, with your soaps and
|
||||
* water! Think you're so great...why, I remember when we didn't even have
|
||||
* soap, and water was made by tiny little fairies and cost a gold piece for
|
||||
* a thimbleful...I could tell you some stories, I could...<BR><BR>
|
||||
*
|
||||
* <I>Your reward in hand, you decide to leave the old Hag to her mumblings
|
||||
* before she realizes you're still around and puts you back to work.</I>
|
||||
*/
|
||||
return 1055013;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055013;
|
||||
|
||||
public EndConversation()
|
||||
{
|
||||
|
|
@ -696,25 +392,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class RecentlyFinishedConversation : QuestConversation
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The wrinkled old crone stops stirring her noxious stew, looking up at
|
||||
* you with an annoyed expression on her face.</I><BR><BR>
|
||||
*
|
||||
* You again? Listen, you little wretch, I'm in no mood for any of your meddlesome
|
||||
* requests. I've work to do, and no time for your whining.<BR><BR>
|
||||
*
|
||||
* Come back later, and maybe I'll have something for you to do. In the meantime,
|
||||
* get out of my sight - and don't touch anything on your way out!<BR><BR>
|
||||
*
|
||||
* <I>The vile hag hacks up a gob of phlegm, spitting it on the ground before
|
||||
* returning to her work.</I>
|
||||
*/
|
||||
return 1055064;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055064;
|
||||
|
||||
public RecentlyFinishedConversation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -97,9 +97,9 @@ namespace Server.Engines.Quests.Hag
|
|||
private Type[] m_Creatures;
|
||||
private int m_Quantity;
|
||||
|
||||
public int Name{ get{ return m_Name; } }
|
||||
public Type[] Creatures{ get{ return m_Creatures; } }
|
||||
public int Quantity{ get{ return m_Quantity; } }
|
||||
public int Name => m_Name;
|
||||
public Type[] Creatures => m_Creatures;
|
||||
public int Quantity => m_Quantity;
|
||||
|
||||
private IngredientInfo( int name, int quantity, params Type[] creatures )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ namespace Server.Items
|
|||
{
|
||||
public class Cauldron : Item
|
||||
{
|
||||
public override string DefaultName
|
||||
{
|
||||
get { return "a cauldron"; }
|
||||
}
|
||||
public override string DefaultName => "a cauldron";
|
||||
|
||||
[Constructible]
|
||||
public Cauldron() : base( 0x9ED )
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ namespace Server.Engines.Quests.Hag
|
|||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Uses
|
||||
{
|
||||
get{ return m_Uses; }
|
||||
set{ m_Uses = value; }
|
||||
get => m_Uses;
|
||||
set => m_Uses = value;
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
|
|
|
|||
|
|
@ -25,19 +25,9 @@ namespace Server.Engines.Quests.Hag
|
|||
private Corpse m_Corpse;
|
||||
private Point3D m_CorpseLocation;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* To the west of the Hag's house lies the road between Skara Brae
|
||||
* and Yew. Follow it carefully toward Yew's graveyard, and search for
|
||||
* any sign of the Hag's apprentice along the road.
|
||||
*/
|
||||
return 1055014;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055014;
|
||||
|
||||
public Corpse Corpse{ get{ return m_Corpse; } }
|
||||
public Corpse Corpse => m_Corpse;
|
||||
|
||||
public FindApprenticeObjective( bool init )
|
||||
{
|
||||
|
|
@ -124,17 +114,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class FindGrizeldaAboutMurderObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Return to the Hag to tell her of the vile imp Zeefzorpul's role
|
||||
* in the murder of her Apprentice, and the subsequent theft of a mysterious
|
||||
* scrap of parchment from the corpse.
|
||||
*/
|
||||
return 1055015;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055015;
|
||||
|
||||
public FindGrizeldaAboutMurderObjective()
|
||||
{
|
||||
|
|
@ -150,17 +130,7 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
private int m_MaxProgress;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Search the realm for any imps you can find, and slash, bash, mash,
|
||||
* or fry them with magics until one of them gives up the secret hiding
|
||||
* place of the imp Zeefzorpul.
|
||||
*/
|
||||
return 1055016;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055016;
|
||||
|
||||
public override int MaxProgress => m_MaxProgress;
|
||||
|
||||
|
|
@ -225,19 +195,9 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
private Point3D m_ImpLocation;
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Find the location shown in the map that the imp gave you. When you
|
||||
* have arrived at the location, play the magic flute he provided,
|
||||
* and the imp Zeefzorpul will be drawn to your presence.
|
||||
*/
|
||||
return 1055017;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055017;
|
||||
|
||||
public Point3D ImpLocation{ get{ return m_ImpLocation; } }
|
||||
public Point3D ImpLocation => m_ImpLocation;
|
||||
|
||||
public FindZeefzorpulObjective( Point3D impLocation )
|
||||
{
|
||||
|
|
@ -296,16 +256,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class ReturnRecipeObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Return to the old Hag and tell her you have recovered her Magic
|
||||
* Brew Recipe from the bizarre imp named Zeefzorpul.
|
||||
*/
|
||||
return 1055018;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055018;
|
||||
|
||||
public ReturnRecipeObjective()
|
||||
{
|
||||
|
|
@ -369,10 +320,10 @@ namespace Server.Engines.Quests.Hag
|
|||
}
|
||||
}
|
||||
|
||||
public Ingredient[] Ingredients{ get{ return m_Ingredients; } }
|
||||
public Ingredient Ingredient{ get{ return m_Ingredients[m_Ingredients.Length - 1]; } }
|
||||
public int Step{ get{ return m_Ingredients.Length; } }
|
||||
public bool BlackheartMet{ get{ return m_BlackheartMet; } }
|
||||
public Ingredient[] Ingredients => m_Ingredients;
|
||||
public Ingredient Ingredient => m_Ingredients[m_Ingredients.Length - 1];
|
||||
public int Step => m_Ingredients.Length;
|
||||
public bool BlackheartMet => m_BlackheartMet;
|
||||
|
||||
public FindIngredientObjective( Ingredient[] oldIngredients ) : this( oldIngredients, false )
|
||||
{
|
||||
|
|
@ -500,16 +451,7 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public class ReturnIngredientsObjective : QuestObjective
|
||||
{
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have gathered all the ingredients listed in the Hag's Magic Brew
|
||||
* Recipe. Return to the Hag and tell her you have completed her task.
|
||||
*/
|
||||
return 1055050;
|
||||
}
|
||||
}
|
||||
public override object Message => 1055050;
|
||||
|
||||
public ReturnIngredientsObjective()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,57 +33,9 @@ namespace Server.Engines.Quests.Hag
|
|||
|
||||
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
|
||||
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// "The Witch's Apprentice"
|
||||
return 1055042;
|
||||
}
|
||||
}
|
||||
public override object Name => 1055042;
|
||||
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>The ancient, wrinkled hag looks up from her vile-smelling cauldron.
|
||||
* Her single, unblinking eye attempts to focus in on you, but to
|
||||
* little avail.</I><BR><BR>
|
||||
*
|
||||
* Eh? Who is it? Who's there? Come to trouble an old woman have you?<BR><BR>
|
||||
*
|
||||
* I'll split ye open and swallow yer guts! I'll turn ye into a pile
|
||||
* o' goo, I will! Bah! As if I didn't have enough to worry about. As if I've
|
||||
* not enough trouble as it is!<BR><BR>
|
||||
*
|
||||
* Another of my blasted apprentices has gone missing! Foolish children,
|
||||
* think they know everything. I should turn the lot of them into toads -
|
||||
* if only they'd return with their task complete! But that's the trouble, innit?
|
||||
* They never return!<BR><BR>
|
||||
*
|
||||
* But you don't care, do ye? I suppose you're another one of those meddlesome kids,
|
||||
* come to ask me for something? Eh? Is that it? You want something from me,
|
||||
* expect me to hand it over? I've enough troubles with my apprentices, and that
|
||||
* vile imp, Zeefzorpul! Why, I bet it's him who's got the lot of them! And who
|
||||
* knows what he's done? Vile little thing.<BR><BR>
|
||||
*
|
||||
* If you expect me to help you with your silly little desires, you'll be doing
|
||||
* something for me first, eh? I expect you to go seek out my apprentice.
|
||||
* I sent him along the road west of here up towards Yew's graveyard, but he never
|
||||
* came back. Find him, and bring him back, and I'll give you a little reward that
|
||||
* I'm sure you'll find pleasant.<BR><BR>
|
||||
*
|
||||
* But I tells ye to watch out for the imp name've Zeefzorpul! He's a despicable
|
||||
* little beast who likes to fool and fiddle with folk and generally make life
|
||||
* miserable for everyone. If ye get him on your bad side, you're sure to end up
|
||||
* ruing the day ye were born. As if you didn't already, with an ugly mug
|
||||
* like that!<BR><BR>
|
||||
*
|
||||
* Well, you little whelp? Going to help an old hag or not?
|
||||
*/
|
||||
return 1055001;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage => 1055001;
|
||||
|
||||
public override TimeSpan RestartDelay => TimeSpan.FromMinutes( 5.0 );
|
||||
public override bool IsTutorial => false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue