Fixes body expression style.

This commit is contained in:
Kamron Batman 2018-09-14 08:46:14 -07:00
parent 3f0a72a62f
commit 33f5e77a24
957 changed files with 7424 additions and 15973 deletions

View file

@ -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 )
{

View file

@ -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()
{

View file

@ -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)
{

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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(); }
}

View file

@ -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(); }
}

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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 )
{

View file

@ -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(); }
}

View file

@ -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()

View file

@ -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 )

View file

@ -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()
{

View file

@ -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 )

View file

@ -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;

View file

@ -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 )
{

View file

@ -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 )
{

View file

@ -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 )
{

View file

@ -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 )
{

View file

@ -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;

View file

@ -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;

View file

@ -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; }
}

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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;

View file

@ -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 )
{

View file

@ -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()

View file

@ -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 )
{

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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;

View file

@ -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 )
{

View file

@ -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 )
{

View file

@ -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 )
{

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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 )
{

View file

@ -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;

View file

@ -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
{

View file

@ -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()
{

View file

@ -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 )
{

View file

@ -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()
{

View file

@ -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()
{

View file

@ -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;

View file

@ -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()
{

View file

@ -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 )

View file

@ -9,7 +9,7 @@ namespace Server.Engines.Quests.Doom
public BoneDemon Daemon
{
get{ return m_Daemon; }
get => m_Daemon;
set
{
m_Daemon = value;

View file

@ -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()

View file

@ -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 )
{

View file

@ -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;

View file

@ -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;

View file

@ -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; }
}

View file

@ -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]

View file

@ -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()
{

View file

@ -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;

View file

@ -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()
{

View file

@ -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 )
{

View file

@ -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 )

View file

@ -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]

View file

@ -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()
{

View file

@ -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;