Esempio n. 1
0
    public async Task <HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_memo_of_lost_thing")
        {
            if (npc.HasKeyword("g1_20"))
            {
                npc.RemoveKeyword("g1_20");
                npc.GiveKeyword("g1_21");

                npc.GiveWarpScroll(63009, "Math_Dungeon");

                npc.Msg(L("You're back. I knew you would be back.<br/>Here's the item you're looking for."));
                npc.Msg(L("I only remembered it later on too.<br/>I figured the person who wrote that can<br/>find the lost item at the Town Office."), npc.Image("g1_ch18_torque01"));
                npc.Msg(L("Broken Torque.<br/>It looks like a memorial item. Try using it in Math Dungeon.<br/>I gave you the Red Wing of the Goddess too, just in case you need it."), npc.Image("g1_ch18_torque01"));
            }
            else if (npc.HasKeyword("g1_21"))
            {
                npc.Msg(L("Try using the Broken Torque in Math Dungeon."));
            }

            if (!npc.HasItem(Torque))
            {
                npc.GiveItem(Torque);
            }

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> AeiraBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;
		if (keyword != "g1_book1")
			return HookResult.Continue;

		if (npc.HasKeyword("g1_06"))
		{
			npc.RemoveKeyword("g1_06");
			npc.GiveKeyword("g1_07");

			npc.Msg(L("'The Land of Eternity, Tir Na Nog'...?"));
			npc.Msg(L("Oh no.<br/>That book wasn't selling at all, so I returned all of them.<br/>Haha! Where did you hear about that book?"));
		}
		else if (npc.HasKeyword("g1_07"))
		{
			npc.RemoveKeyword("g1_07");
			npc.GiveKeyword("g1_08");

			npc.Msg(L("Let's see... I can order one for you,<br/>but it'll take some time to arrive.<br/>I hope that's okay."));
		}
		else if (npc.HasKeyword("g1_08"))
		{
			npc.RemoveKeyword("g1_book1");
			npc.SendOwl(this.Id, OwlDelay);

			npc.Msg(L("I'm sorry!<br/>The book still isn't in stock."));
			npc.Msg(L("Hmm, how about this. I'll send you an owl when the book arrives.<br/>That would be better, right?"));
		}

		return HookResult.Break;
	}
Esempio n. 3
0
    public async Task <HookResult> AeiraBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword != "g1_book1")
        {
            return(HookResult.Continue);
        }

        if (npc.HasKeyword("g1_06"))
        {
            npc.RemoveKeyword("g1_06");
            npc.GiveKeyword("g1_07");

            npc.Msg(L("'The Land of Eternity, Tir Na Nog'...?"));
            npc.Msg(L("Oh no.<br/>That book wasn't selling at all, so I returned all of them.<br/>Haha! Where did you hear about that book?"));
        }
        else if (npc.HasKeyword("g1_07"))
        {
            npc.RemoveKeyword("g1_07");
            npc.GiveKeyword("g1_08");

            npc.Msg(L("Let's see... I can order one for you,<br/>but it'll take some time to arrive.<br/>I hope that's okay."));
        }
        else if (npc.HasKeyword("g1_08"))
        {
            npc.RemoveKeyword("g1_book1");
            npc.SendOwl(this.Id, OwlDelay);

            npc.Msg(L("I'm sorry!<br/>The book still isn't in stock."));
            npc.Msg(L("Hmm, how about this. I'll send you an owl when the book arrives.<br/>That would be better, right?"));
        }

        return(HookResult.Break);
    }
	public async Task<HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_glasgavelen")
		{
			if (npc.HasKeyword("g1_26"))
			{
				npc.RemoveKeyword("g1_26");
				npc.GiveKeyword("g1_27");

				npc.Msg(L("What? What did you just say?"));
				npc.Msg(L("G-Glas Ghaibhleann?<br/>This can't be... Where did you hear that name?"));
				npc.Msg(L("Does the third book of Fomors cover that?<br/>I'd like to read it. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no"));
			}
			else if (npc.HasKeyword("g1_27"))
			{
				npc.Msg(L("I'd like to read the third book of Fomors. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no"));
			}

			if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge3Translated))
			{
				npc.Msg(L("Please come back immediately once you have the book on you."));
				return HookResult.Break;
			}

			npc.RemoveKeyword("g1_glasgavelen");
			npc.GiveKeyword("g1_book_of_glasgavelen");

			npc.RemoveItem(BookOfRevenge3Translated);
			npc.Notice(L("You have given the Book of Revenge, Vol. 3 (Translated) to Duncan."));

			npc.Msg(Hide.Name, L("(Duncan receives the book and carefully starts reading.)"));
			npc.Msg(L("This can't be!<br/>Things are a lot more serious than I'd thought.<br/>This is a problem. What should we do?"));
			npc.Msg(L("Glas Ghaibhleann is a legendary giant<br/>that destroyed everything within it's sight with hatred and anger.<br/>It's impossible to describe the fear this monster generates."));
			npc.Msg(L("Once, Glas Ghaibhleann was commanded by an evil god<br/>to rampage all across Erinn.<br/>There was simply nothing we could do about it."), npc.Image("g1_ch24_glasgavelen"));
			npc.Msg(L("That's when our ancestor race, the Partholons, was decimated<br/>and sought refuge in this small mountainous area."));
			npc.Msg(L("I'm sorry. I'm a bit dazed and it's hard to talk.<br/>It'd be more helpful for you to read a book written by our ancestors<br/>who fought against this monster.<br/>Let's see."));
			npc.Msg(L("...<p/>...!!<p/>It's not here!<p/>Ah, don't give up now.<br/>I just forgot that<br/>I'd lent it to someone.<br/>He lives in Bangor and...what was his name?"));
			npc.Msg(L("B-Bri... That's right!<br/>Bryce is the person who borrowed it from me."));
			npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book."));

			return HookResult.Break;
		}
		else if (keyword == "g1_book_of_glasgavelen")
		{
			npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
    public async Task <HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_glasgavelen")
        {
            if (npc.HasKeyword("g1_26"))
            {
                npc.RemoveKeyword("g1_26");
                npc.GiveKeyword("g1_27");

                npc.Msg(L("What? What did you just say?"));
                npc.Msg(L("G-Glas Ghaibhleann?<br/>This can't be... Where did you hear that name?"));
                npc.Msg(L("Does the third book of Fomors cover that?<br/>I'd like to read it. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no"));
            }
            else if (npc.HasKeyword("g1_27"))
            {
                npc.Msg(L("I'd like to read the third book of Fomors. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no"));
            }

            if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge3Translated))
            {
                npc.Msg(L("Please come back immediately once you have the book on you."));
                return(HookResult.Break);
            }

            npc.RemoveKeyword("g1_glasgavelen");
            npc.GiveKeyword("g1_book_of_glasgavelen");

            npc.RemoveItem(BookOfRevenge3Translated);
            npc.Notice(L("You have given the Book of Revenge, Vol. 3 (Translated) to Duncan."));

            npc.Msg(Hide.Name, L("(Duncan receives the book and carefully starts reading.)"));
            npc.Msg(L("This can't be!<br/>Things are a lot more serious than I'd thought.<br/>This is a problem. What should we do?"));
            npc.Msg(L("Glas Ghaibhleann is a legendary giant<br/>that destroyed everything within it's sight with hatred and anger.<br/>It's impossible to describe the fear this monster generates."));
            npc.Msg(L("Once, Glas Ghaibhleann was commanded by an evil god<br/>to rampage all across Erinn.<br/>There was simply nothing we could do about it."), npc.Image("g1_ch24_glasgavelen"));
            npc.Msg(L("That's when our ancestor race, the Partholons, was decimated<br/>and sought refuge in this small mountainous area."));
            npc.Msg(L("I'm sorry. I'm a bit dazed and it's hard to talk.<br/>It'd be more helpful for you to read a book written by our ancestors<br/>who fought against this monster.<br/>Let's see."));
            npc.Msg(L("...<p/>...!!<p/>It's not here!<p/>Ah, don't give up now.<br/>I just forgot that<br/>I'd lent it to someone.<br/>He lives in Bangor and...what was his name?"));
            npc.Msg(L("B-Bri... That's right!<br/>Bryce is the person who borrowed it from me."));
            npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book."));

            return(HookResult.Break);
        }
        else if (keyword == "g1_book_of_glasgavelen")
        {
            npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 6
0
    public async Task <HookResult> MevenBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword != "g1_medal_of_fomor")
        {
            return(HookResult.Continue);
        }

        if (npc.HasItem(FomorMedal))
        {
            if (npc.HasKeyword("g1_11"))
            {
                npc.RemoveKeyword("g1_paradise");
                npc.RemoveKeyword("g1_11");
                npc.RemoveKeyword("g1_11_1");
                npc.GiveKeyword("g1_11_2");

                npc.Msg(L("Medal...? Could...I see it?"));
                npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01"));
                npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this..."));
                npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court."));
                npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02"));
                npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
            }
            else if (npc.HasKeyword("g1_11_1"))
            {
                npc.RemoveKeyword("g1_11_1");
                npc.RemoveKeyword("g1_11_2");
                npc.GiveKeyword("g1_12");
                npc.RemoveKeyword("g1_medal_of_fomor");
                npc.GiveKeyword("g1_voucher_of_priest");

                npc.Msg(L("Medal...? Could...I see it?"));
                npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01"));
                npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this..."));
                npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court."));
                npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02"));
                npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
            }
            else
            {
                npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
            }
        }
        else
        {
            npc.Msg(L("Medal...? Could...I see it?"));
        }

        return(HookResult.Break);
    }
Esempio n. 7
0
    public async Task <HookResult> StewartBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == null || keyword != "g1_tarlach2")
        {
            return(HookResult.Continue);
        }

        if (npc.HasKeyword("g1_02"))
        {
            npc.RemoveKeyword("g1_02");
            npc.GiveKeyword("g1_03");

            npc.GiveItem(TarlachsLocket);
            npc.GiveWarpScroll(63009, "Alby_Dungeon");

            npc.Msg(L("The three missing Warriors? The ones who are said to have gone to Tir Na Nog?"));
            npc.Msg(L("I see...<br/>There was a time when scholars debated back and forth regarding the validity of that legend."));
            npc.Msg(L("From what I remember, there were stories of Tir Na Nog circulating via word of mouth<br/>but there weren't any written records of it.<br/>In the end, it was concluded that it was only a rumor."));
            npc.Msg(L("So it's just a legend..."));
            npc.Msg(L("...What do I think...?<br/>I believe in the legend of three missing Warriors. Haha...<br/>I'm no fool though..."));
            npc.Msg(L("I'm not sure if what I just gave you will be of any help.<br/>It's a locket. You know, an accessory that you put pictures in."), npc.Image("G1_Ch04_locket01"));
            npc.Msg(L("...Don't be surprised...<br/>This is actually a memento that belonged to<br/>Tarlach, the mighty Wizard, one of the<br/>three missing Warriors."), npc.Image("G1_Ch04_locket02"));
            npc.Msg(L("Yes, the picture of the boy in the locket is Tarlach.<br/>This was probably from when he was young.<br/>Judging from how old she is, the pretty girl next to him is probably his sister."), npc.Image("G1_Ch04_locket02"));
            npc.Msg(L("That's not all, though...<br/>This locket...it's a type of a Memorial item that allows you<br/>to experience the life of the person who used to own it."));
            npc.Msg(L("Tarlach spent his entire life trying to rescue the goddess<br/>who holds the secrets of Tir Na Nog.<br/>His desires and memories remain in this locket."));
            npc.Msg(L("Try placing this on the altar to the goddess inside Alby Dungeon."));
            npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you."));

            return(HookResult.Break);
        }
        else if (npc.HasKeyword("g1_03"))
        {
            // Give locket again if lost
            if (!npc.HasItem(TarlachsLocket))
            {
                npc.GiveItem(TarlachsLocket);
            }

            npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you."));

            return(HookResult.Break);
        }
        else
        {
            return(HookResult.Continue);
        }
    }
Esempio n. 8
0
    public async Task <HookResult> KristellAfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.HasKeyword("g1_25") && npc.HasItem(BookOfRevenge2))
        {
            npc.RemoveItem(BookOfRevenge2);
            npc.SendOwl(this.Id, OwlDelay1);

            npc.RemoveKeyword("g1_memo_of_parcelman");
            npc.RemoveKeyword("g1_25");
            npc.GiveKeyword("g1_26");

            npc.Msg(L("So there really was another volume.<br/>I'm impressed. I didn't think you'd be able to find it."));
            npc.Msg(L("I'll translate this book, as promised.<br/>I'll let you know as soon as I'm finished."));

            return(HookResult.Break);
        }
        else if (npc.QuestActive(this.Id, "get_book"))
        {
            npc.FinishQuest(this.Id, "get_book");

            npc.GiveItem(BookOfRevenge2Translated);
            npc.Notice(L("You have received the Book of Revenge, Vol. 2 (Translated) from Kristell."));

            npc.Msg(L("You must be here for your translated copy of the book.<br/>Here, I think you should read it yourself.<br/>It's better than having me summarize it for you."));
            npc.Msg(L("That said, I can't believe what's written in this book..."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 9
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_bone_of_glasgavelen" && npc.HasKeyword("g1_28"))
        {
            if (!npc.QuestActive(NextQuestId))
            {
                npc.StartQuest(NextQuestId);                 // Obtain the Magic Powder of Preservation
                npc.GiveWarpScroll(63009, "Fiodth_Dungeon");

                npc.Msg(L("...!<p/>That's it! In order to revive Glas Ghaibhleann,<br/>his bones must be exacavated and re-assembled.<br/>Any missing bones must be replaced with Adamantium."));
                npc.Msg(L("But Adamantium is difficult to shape. It must<br/>be melted at very high temperatures first. And<br/>there's a special ingredient that must be applied to the bone."));
                npc.Msg(L("It won't be enough to simply destroy the bones before it's<br/>completed. Once the Adamantium hardens, you can't destroy it. I have no<br/>doubt the Formors have already gathered all the bones<br/>and prepared their magical reagents, too."));
                npc.Msg(L("It's only a matter of time before the Fomors invade Erinn..."));
                npc.Msg(L("How do I know all this? I learned it<br/>in the land of Fomors, Tir Na Nog.<br/>Tir Na Nog is a reflection of Erinn...or perhaps it's the other way around?<br/>At any rate, the worlds are quite similar."));
                npc.Msg(L("Perhaps it would be better for you to see it first hand.<br/>Can you do me a favor?"));
                npc.Msg(L("These glasses carry the memories of my time there."), npc.Image("g1_ch25_glasses"));
                npc.Msg(L("I can't say for certain if the memories<br/>are intact, but if you wish to see what I saw through<br/>these glasses, you'll need them.<br/>Please find me some Magic Powder of Preservation."), npc.Image("g1_ch25_glasses"));
                npc.Msg(L("The powder will prevent the glasses from breaking further.<br/>This will also sustain the memories contained within,<br/>If you get me the powder, I'll preserve the glasses."));
                npc.Msg(L("You can find Magic Powder of Preservation<br/>deep inside Fiodh Dungeon."));
            }
            else
            {
                npc.Msg(L("You can find Magic Powder of Preservation<br/>deep inside Fiodh Dungeon.<br/>If you get me the powder, I'll preserve the glasses."));
            }

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.HasKeyword("g1_25") && npc.HasItem(BookOfRevenge2))
		{
			npc.RemoveItem(BookOfRevenge2);
			npc.SendOwl(this.Id, OwlDelay1);

			npc.RemoveKeyword("g1_memo_of_parcelman");
			npc.RemoveKeyword("g1_25");
			npc.GiveKeyword("g1_26");

			npc.Msg(L("So there really was another volume.<br/>I'm impressed. I didn't think you'd be able to find it."));
			npc.Msg(L("I'll translate this book, as promised.<br/>I'll let you know as soon as I'm finished."));

			return HookResult.Break;
		}
		else if (npc.QuestActive(this.Id, "get_book"))
		{
			npc.FinishQuest(this.Id, "get_book");

			npc.GiveItem(BookOfRevenge2Translated);
			npc.Notice(L("You have received the Book of Revenge, Vol. 2 (Translated) from Kristell."));

			npc.Msg(L("You must be here for your translated copy of the book.<br/>Here, I think you should read it yourself.<br/>It's better than having me summarize it for you."));
			npc.Msg(L("That said, I can't believe what's written in this book..."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 11
0
    public async Task <HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_goddess_morrighan2")
        {
            if (npc.HasKeyword("g1_30"))
            {
                npc.RemoveKeyword("g1_30");
                npc.GiveKeyword("g1_31");

                npc.Msg(Hide.Name, L("(You tell Duncan about the experience Tarlach had in Tir Na Nog.)"));
                npc.Msg(L("Is that what happened to Tarlach?<br/>That's unbelievable.<br/>But I suppose there's no choice but to believe him. Hmmm."));
                npc.Msg(L("There is one more thing I'd like to tell you.<br/>What I'm about to tell you is a secret I've kept all my life,<br/>so promise me you won't tell anyone else, okay?"));
                npc.Msg(L("You said Mores tried to save<br/>Tarlach and his friends at the last minute when they went to Tir Na Nog, right?"));
                npc.Msg(L("I'm sure that wasn't because of Tarlach."));
                npc.Msg(L("Mari. It was because of Mari.<br/>Mari was Mores's only daughter.<br/>Mores recognized that fact."), npc.Image("g1_ch27_mari"));
                npc.Msg(L("I knew his wife Shiela before she passed away.<br/>She was killed by humans instigated by nobles,<br/>but Mari was sent to me with the help of the wolves and deer."));
                npc.Msg(L("Mari's memory of her parents<br/>was personally erased by her mother."));
                npc.Msg(L("It would mean death for her to<br/>remember her parents."));
                npc.Msg(L("So I raised Mari myself."));
                npc.Msg(L("Yes, I think I've told you enought about this story."));
                npc.Msg(L("Hmm. Everything else fits into the story except<br/>the Goddess.<br/>You don't aactually agree with Tarlach<br/>about the Goddess, do you?"));
                npc.Msg(L("Ask the other people.<br/>Don't tell them what you think, but just listen<br/>to see if the Goddess is someone who'd betray humankind."));
            }

            npc.Msg(L("I'll remind you one more time.<br/>Please keep what I told you about Mari a secret."));

            return(HookResult.Break);
        }
        else if (keyword == "g1_request_from_goddess")
        {
            var owlDelay = 36 * 60;             // 1 Erinn day
            if (IsEnabled("ShorterWaitTimesChapter1"))
            {
                owlDelay = 4 * 60;
            }

            npc.SendOwl(this.Id, owlDelay);

            npc.RemoveKeyword("g1_32");
            npc.GiveKeyword("g1_33");
            npc.RemoveKeyword("g1_request_from_goddess");
            npc.GiveKeyword("g1_way_to_tirnanog1");

            npc.Msg(L("You dreamt of the Goddess again?<br/>The Goddess said that the day of Glas Ghaibhleann's resurrection is approaching?"));
            npc.Msg(L("It's just as I'd thought... Is Mores<br/>behind the resurrection of Glas Ghaibhleann?<br/>We don't even have the slightest clue what to do about it yet.<br/>This is a big problem!"));
            npc.Msg(L("I think I forgot to tell you this,<br/>Magic doesn't work on Adamantium,<br/>so it's difficult to fuse to a magical creature."));
            npc.Msg(L("That's why special ingredients are required.<br/>They say that the soul of a brave human is needed as an ingredient."));
            npc.Msg(L("It's possible that they may already have the soul<br/>of one of the Three Missing Warriors.<br/>Then this is truly a big problem.<br/>We have to stop them somehow."));
            npc.Msg(L("Now hurry up and find out how to get there!"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 12
0
    public async Task <HookResult> ComganBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword != "g1_medal_of_fomor")
        {
            return(HookResult.Continue);
        }

        if (npc.HasItem(FomorMedal))
        {
            if (npc.HasKeyword("g1_11"))
            {
                npc.RemoveKeyword("g1_paradise");
                npc.RemoveKeyword("g1_11");
                npc.GiveKeyword("g1_11_1");

                npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?"));
                npc.Msg(L("Strange... This is just a medal Priests use..."), npc.Image("g1_ch11_12_fomormedal01"));
                npc.Msg(L("Every Priest has one because they say it<br/>contains the principles that created this world..."));
                npc.Msg(L("I wonder if a Fomor found one that was lost by a Priest...<br/>Hmm...I have mine here with me...<br/>Did you speak to any of the other Priests?"));
            }
            else if (npc.HasKeyword("g1_11_2"))
            {
                npc.RemoveKeyword("g1_11_1");
                npc.RemoveKeyword("g1_11_2");
                npc.GiveKeyword("g1_12");
                npc.RemoveKeyword("g1_medal_of_fomor");
                npc.GiveKeyword("g1_voucher_of_priest");

                npc.Msg(L("(Missing dialog: Talking to Comgan after talking to Meven."));
            }
            else
            {
                npc.Msg(L("Did you speak to any of the other Priests?"));
            }
        }
        else
        {
            npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?"));
        }

        return(HookResult.Break);
    }
Esempio n. 13
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_mores_gwydion")
        {
            if (npc.HasKeyword("g1_19"))
            {
                npc.RemoveKeyword("g1_19");
                npc.GiveKeyword("g1_20");

                npc.Msg(L("Mores Gwydion..."));
                npc.Msg(L("...Yes, he's the author of that book.<br/>He's my mentor who's taught me<br/>...And also a Wizard who'd saved the world."));
                npc.Msg(L("I had always thought that he had passed away but...<br/>he's apparently alive and has sided with the Fomors."));
                npc.Msg(L("...Anyhow, give me the translated book.<br/>I would like to take a look at it."), npc.Button(L("Sure"), "@yes"), npc.Button(L("No"), "@no"));
            }
            else if (npc.HasKeyword("g1_20"))
            {
                npc.Msg(L("Give me the translated book.<br/>I would like to take a look at it."), npc.Button(L("Sure"), "@yes"), npc.Button(L("No"), "@no"));
            }

            if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge))
            {
                npc.Msg(L("Don't you have it with you?"));
                return(HookResult.Break);
            }

            npc.RemoveItem(BookOfRevenge);
            npc.RemoveKeyword("g1_mores_gwydion");
            npc.GiveKeyword("g1_memo_of_lost_thing");

            npc.Msg(Hide.Name, L("(Tarlach flipped through the book.)"));
            npc.Msg(L("Just what I'd tought...<br/>Master had faked his own death<br/>for some reason and now he's helping the Fomors."));
            npc.Msg(L("This must be what Kristell was talking about."));
            npc.Msg(L("'...Okay, I admit it.<br/>Perhaps I didn't lose the token but<br/>I wanted to throw it away..."), npc.Image("g1_ch18_book"));
            npc.Msg(L("Hmm... apparently, Master was mulling over something<br/>after losing some item...<p/>I wonder what it was..."));
            npc.Msg(L("...!<p/>Dunbarton's Town Office<br/>collects lost items and returns them to their rightful owners.<br/>You might be able to find a clue if you<br/>can find what it is that Mores had lost."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_goddess_morrighan2")
		{
			if (npc.HasKeyword("g1_30"))
			{
				npc.RemoveKeyword("g1_30");
				npc.GiveKeyword("g1_31");

				npc.Msg(Hide.Name, L("(You tell Duncan about the experience Tarlach had in Tir Na Nog.)"));
				npc.Msg(L("Is that what happened to Tarlach?<br/>That's unbelievable.<br/>But I suppose there's no choice but to believe him. Hmmm."));
				npc.Msg(L("There is one more thing I'd like to tell you.<br/>What I'm about to tell you is a secret I've kept all my life,<br/>so promise me you won't tell anyone else, okay?"));
				npc.Msg(L("You said Mores tried to save<br/>Tarlach and his friends at the last minute when they went to Tir Na Nog, right?"));
				npc.Msg(L("I'm sure that wasn't because of Tarlach."));
				npc.Msg(L("Mari. It was because of Mari.<br/>Mari was Mores's only daughter.<br/>Mores recognized that fact."), npc.Image("g1_ch27_mari"));
				npc.Msg(L("I knew his wife Shiela before she passed away.<br/>She was killed by humans instigated by nobles,<br/>but Mari was sent to me with the help of the wolves and deer."));
				npc.Msg(L("Mari's memory of her parents<br/>was personally erased by her mother."));
				npc.Msg(L("It would mean death for her to<br/>remember her parents."));
				npc.Msg(L("So I raised Mari myself."));
				npc.Msg(L("Yes, I think I've told you enought about this story."));
				npc.Msg(L("Hmm. Everything else fits into the story except<br/>the Goddess.<br/>You don't aactually agree with Tarlach<br/>about the Goddess, do you?"));
				npc.Msg(L("Ask the other people.<br/>Don't tell them what you think, but just listen<br/>to see if the Goddess is someone who'd betray humankind."));
			}

			npc.Msg(L("I'll remind you one more time.<br/>Please keep what I told you about Mari a secret."));

			return HookResult.Break;
		}
		else if (keyword == "g1_request_from_goddess")
		{
			var owlDelay = 36 * 60; // 1 Erinn day
			if (IsEnabled("ShorterWaitTimesChapter1"))
				owlDelay = 4 * 60;

			npc.SendOwl(this.Id, owlDelay);

			npc.RemoveKeyword("g1_32");
			npc.GiveKeyword("g1_33");
			npc.RemoveKeyword("g1_request_from_goddess");
			npc.GiveKeyword("g1_way_to_tirnanog1");

			npc.Msg(L("You dreamt of the Goddess again?<br/>The Goddess said that the day of Glas Ghaibhleann's resurrection is approaching?"));
			npc.Msg(L("It's just as I'd thought... Is Mores<br/>behind the resurrection of Glas Ghaibhleann?<br/>We don't even have the slightest clue what to do about it yet.<br/>This is a big problem!"));
			npc.Msg(L("I think I forgot to tell you this,<br/>Magic doesn't work on Adamantium,<br/>so it's difficult to fuse to a magical creature."));
			npc.Msg(L("That's why special ingredients are required.<br/>They say that the soul of a brave human is needed as an ingredient."));
			npc.Msg(L("It's possible that they may already have the soul<br/>of one of the Three Missing Warriors.<br/>Then this is truly a big problem.<br/>We have to stop them somehow."));
			npc.Msg(L("Now hurry up and find out how to get there!"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 15
0
    public async Task <HookResult> LassarBeforeKeyword(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_black_rose")
        {
            if (npc.HasKeyword("g1_17_2"))
            {
                npc.RemoveKeyword("g1_17_2");
                npc.GiveKeyword("g1_17_3");

                npc.Msg(L("Hmm. Priest Meven's favor?<br/>Why would he need something like that? Hehehe."));
                npc.Msg(L("Hmm, I don't know how this will sound<br/>but I need some Holy Water of Lymilark to grow this.<br/>Priest Meven used to supply me with it up until recently."));
                npc.Msg(L("I guess he got caught by Priestess Endelyon.<br/>He hasn't given me any for the past few days."));
                npc.Msg(L("If you have any Holy Water of Lymilark, could you give me a bottle?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no"));
                if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater))
                {
                    npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some."));
                    return(HookResult.Break);
                }

                LassarFinish(npc);

                return(HookResult.Break);
            }
            else if (npc.HasKeyword("g1_17_3"))
            {
                npc.Msg(L("Did you get a bottle of Holy Water of Lymilark?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no"));
                if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater))
                {
                    npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some."));
                    return(HookResult.Break);
                }

                LassarFinish(npc);

                return(HookResult.Break);
            }
        }

        return(HookResult.Continue);
    }
Esempio n. 16
0
	public async Task<HookResult> DougalAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.HasQuest(this.Id) && !npc.HasKeyword("g1_37_1"))
		{
			npc.SendOwl(this.Id, OwlDelay);
			npc.GiveKeyword("g1_37_1");

			npc.Msg(L("You're quite brave to come to a place like this. I'm Dougal.<br/>I'm here... alone."));
			npc.Msg(L("I see that you're not from around here.<br/>I'm Dougal, the last remaining human here.<br/>I was pretty lonely. It's been a while since I've seen anyone."));
			npc.Msg(L("Why am I left here alone?<br/>It's complicated, but I didn't stay behind<br/>because I wanted to."));
			npc.Msg(L("..."));
			npc.Msg(L("What?<br/>This is Tir Na Nog?<br/>You mean the legendary paradise, Tir Na Nog?"));
			npc.Msg(L("Hah!<br/>Hahaha. I didn't expect to hear such a foolish statement from you."));
			npc.Msg(L("Look, if this truly is Tir Na Nog, the world where sickness and death don't exist,<br/>why would I have a leg like this?"));
			npc.Msg(L("Also, this town has turned into a wasteland<br/>after being invaded by the Fomors."));
			npc.Msg(L("You probably heard a false rumor somewhere.<br/>I'm sorry but this isn't the place you think it is."));
			npc.Msg(L("This is just another world that has become a land of the Fomors."));
			npc.Msg(L("But since you're here, take a look<br/>around as much as you want.<br/>Who knows?<br/>You might find this place similar to a place<br/>you are familiar with. Haha."));

			return HookResult.Break;
		}
		else if (npc.QuestActive(this.Id, "talk1"))
		{
			npc.FinishQuest(this.Id, "talk1");

			npc.Msg(L("You've come... I was waiting for you.<br/>Because you're not from around here,<br/>I thought that losing the freedom of your body<br/>might end up getting you into big trouble."));
			npc.Msg(L("...True... Nobody but your party can help you<br/>in here.<br/>Even if your life ends and you pass away..."));
			npc.Msg(L("When you can't move...<br/>You return to your world.<br/>I do think you have to endure that fact, only because you are a human of another world..."));
			npc.Msg(L("...I've called you because a good plan has come up."));
			npc.Msg(L("Do you...know about the added soul phenomenon?<br/>It is the phenomenon where the spirit doesn't go away from one's body...<br/>I thought maybe if you were to use this trick<br/>you could let your spirit stay near here."));
			npc.Msg(L("Yes... If your spirit does not go away from your fallen body and stays near it<br/>there wouldn't be such a thing as having to resurrect back from the world you were in<br/>even if you were to lose the freedom of your body."));
			npc.Msg(L("But... dealing with spirits is also a dangerous thing...<br/>With the slightest provocation you can turn into one of those zombies behind the graveyard..."));
			npc.Msg(L("...So, I'll have to see if my thoughts are correct.<br/>If you knock down the spiritless zombies<br/>I will measure the added soul phenomenon that happens around the zombies<br/>and see if you can resurrect in this place."));
			npc.Msg(L("What do you think? Would you like to give it a try?"));

			return HookResult.Break;
		}
		else if (npc.QuestActive(this.Id, "talk2"))
		{
			npc.CompleteQuest(this.Id);

			npc.RemoveKeyword("g1_37_1");
			npc.GiveKeyword("g1_bind");

			npc.Msg(L("It's just as I'd thought. We can use the added soul phenomenon<br/>and have your spirit stay here.<br/>If you believe me, from now on,<br/>you won't ever be an undead even if you collapse here."));
			npc.Msg(L("...Yes. My body and soul<br/>are exchanging with you the amount of strength<br/>you need to resurrect here..."));
			npc.Msg(L("Oh no... Are you uncomfortable about exchanging such things with me?<br/>Ha ha, no need to act calm.<br/>But..."));
			npc.Msg(L("Even when you can't move<br/>you can come near me.<br/>You will make it through this world with more ease if you remember this."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 17
0
    public async Task <HookResult> DougalAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.HasQuest(this.Id) && !npc.HasKeyword("g1_37_1"))
        {
            npc.SendOwl(this.Id, OwlDelay);
            npc.GiveKeyword("g1_37_1");

            npc.Msg(L("You're quite brave to come to a place like this. I'm Dougal.<br/>I'm here... alone."));
            npc.Msg(L("I see that you're not from around here.<br/>I'm Dougal, the last remaining human here.<br/>I was pretty lonely. It's been a while since I've seen anyone."));
            npc.Msg(L("Why am I left here alone?<br/>It's complicated, but I didn't stay behind<br/>because I wanted to."));
            npc.Msg(L("..."));
            npc.Msg(L("What?<br/>This is Tir Na Nog?<br/>You mean the legendary paradise, Tir Na Nog?"));
            npc.Msg(L("Hah!<br/>Hahaha. I didn't expect to hear such a foolish statement from you."));
            npc.Msg(L("Look, if this truly is Tir Na Nog, the world where sickness and death don't exist,<br/>why would I have a leg like this?"));
            npc.Msg(L("Also, this town has turned into a wasteland<br/>after being invaded by the Fomors."));
            npc.Msg(L("You probably heard a false rumor somewhere.<br/>I'm sorry but this isn't the place you think it is."));
            npc.Msg(L("This is just another world that has become a land of the Fomors."));
            npc.Msg(L("But since you're here, take a look<br/>around as much as you want.<br/>Who knows?<br/>You might find this place similar to a place<br/>you are familiar with. Haha."));

            return(HookResult.Break);
        }
        else if (npc.QuestActive(this.Id, "talk1"))
        {
            npc.FinishQuest(this.Id, "talk1");

            npc.Msg(L("You've come... I was waiting for you.<br/>Because you're not from around here,<br/>I thought that losing the freedom of your body<br/>might end up getting you into big trouble."));
            npc.Msg(L("...True... Nobody but your party can help you<br/>in here.<br/>Even if your life ends and you pass away..."));
            npc.Msg(L("When you can't move...<br/>You return to your world.<br/>I do think you have to endure that fact, only because you are a human of another world..."));
            npc.Msg(L("...I've called you because a good plan has come up."));
            npc.Msg(L("Do you...know about the added soul phenomenon?<br/>It is the phenomenon where the spirit doesn't go away from one's body...<br/>I thought maybe if you were to use this trick<br/>you could let your spirit stay near here."));
            npc.Msg(L("Yes... If your spirit does not go away from your fallen body and stays near it<br/>there wouldn't be such a thing as having to resurrect back from the world you were in<br/>even if you were to lose the freedom of your body."));
            npc.Msg(L("But... dealing with spirits is also a dangerous thing...<br/>With the slightest provocation you can turn into one of those zombies behind the graveyard..."));
            npc.Msg(L("...So, I'll have to see if my thoughts are correct.<br/>If you knock down the spiritless zombies<br/>I will measure the added soul phenomenon that happens around the zombies<br/>and see if you can resurrect in this place."));
            npc.Msg(L("What do you think? Would you like to give it a try?"));

            return(HookResult.Break);
        }
        else if (npc.QuestActive(this.Id, "talk2"))
        {
            npc.CompleteQuest(this.Id);

            npc.RemoveKeyword("g1_37_1");
            npc.GiveKeyword("g1_bind");

            npc.Msg(L("It's just as I'd thought. We can use the added soul phenomenon<br/>and have your spirit stay here.<br/>If you believe me, from now on,<br/>you won't ever be an undead even if you collapse here."));
            npc.Msg(L("...Yes. My body and soul<br/>are exchanging with you the amount of strength<br/>you need to resurrect here..."));
            npc.Msg(L("Oh no... Are you uncomfortable about exchanging such things with me?<br/>Ha ha, no need to act calm.<br/>But..."));
            npc.Msg(L("Even when you can't move<br/>you can come near me.<br/>You will make it through this world with more ease if you remember this."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 18
0
	public async Task<HookResult> ComganBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;
		if (keyword != "g1_medal_of_fomor")
			return HookResult.Continue;

		if (npc.HasItem(FomorMedal))
		{
			if (npc.HasKeyword("g1_11"))
			{
				npc.RemoveKeyword("g1_paradise");
				npc.RemoveKeyword("g1_11");
				npc.GiveKeyword("g1_11_1");

				npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?"));
				npc.Msg(L("Strange... This is just a medal Priests use..."), npc.Image("g1_ch11_12_fomormedal01"));
				npc.Msg(L("Every Priest has one because they say it<br/>contains the principles that created this world..."));
				npc.Msg(L("I wonder if a Fomor found one that was lost by a Priest...<br/>Hmm...I have mine here with me...<br/>Did you speak to any of the other Priests?"));
			}
			else if (npc.HasKeyword("g1_11_2"))
			{
				npc.RemoveKeyword("g1_11_1");
				npc.RemoveKeyword("g1_11_2");
				npc.GiveKeyword("g1_12");
				npc.RemoveKeyword("g1_medal_of_fomor");
				npc.GiveKeyword("g1_voucher_of_priest");

				npc.Msg(L("(Missing dialog: Talking to Comgan after talking to Meven."));
			}
			else
			{
				npc.Msg(L("Did you speak to any of the other Priests?"));
			}
		}
		else
		{
			npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?"));
		}

		return HookResult.Break;
	}
Esempio n. 19
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_dulbrau1")
        {
            if (npc.HasItem(FomorMedal))
            {
                if (npc.HasKeyword("g1_13"))
                {
                    npc.RemoveKeyword("g1_13");
                    npc.GiveKeyword("g1_14");

                    npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
                    npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
                }

                npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
                if (await npc.Select() != "@yes")
                {
                    npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal."));
                    return(HookResult.Break);
                }

                npc.RemoveItem(FomorMedal);
                npc.RemoveKeyword("g1_dulbrau1");
                npc.GiveKeyword("g1_dulbrau2");

                npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see."));
                npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power..."));
                npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'"));
                npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>..."));
                npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess."));
                npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?"));
            }
            else
            {
                npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
                npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
            }

            return(HookResult.Break);
        }
        else if (keyword == "g1_dulbrau2")
        {
            npc.Msg(L("If you don't believe me, why don't you go ask Goro again?"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> TarlachBearBeforeGift(NpcScript npc, params object[] args)
	{
		if (!npc.HasKeyword("g1_01") || npc.Favor < 15)
			return HookResult.Continue;

		npc.RemoveKeyword("g1_01");
		npc.GiveKeyword("g1_02");
		npc.GiveKeyword("g1_tarlach1");

		npc.Msg(Hide.Name, L("(The bear is writing something in the snow.)"));
		npc.Msg(Hide.Name, L("(Tar...)<p/>(Tar... la... ch.)<p/>(The bear writes the word 'Tarlach' and stares at you.)<p/>(Tarlach...)<p/>(It seems to be someone's name.)"));

		return HookResult.Break;
	}
Esempio n. 21
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword != "g1_paradise")
        {
            return(HookResult.Continue);
        }

        if (npc.HasKeyword("g1_09"))
        {
            npc.RemoveKeyword("g1_09");
            npc.GiveKeyword("g1_10");

            npc.GiveItem(BrownFomorPass);
            npc.GiveWarpScroll(63009, "Barri_Dungeon");

            npc.Msg(L("...Did you actually read the book?<br/>You still want to go...?<br/>Just as I'd thought...<br/>..."));
            npc.Msg(L("...Honestly, I was hoping that<br/>reading the book would be enough to satisfy your curiosity and that you would forget all about it...<br/>But, you can't help that you're an adventurer..."));
            npc.Msg(L("...<p/>...<br/>Tir Na Nog... is not paradise.<br/>What's in that book is actually a lie.<br/>...Tir Na Nog is a real place, but it's not anything like paradise."));
            npc.Msg(L("...<p/>Listen carefully... Tir Na Nog is the land of the Fomors.<br/>And... the Goddess,<br/>who seems so loving, draws zealous adventurers like yourself to manipulate and use you."));
            npc.Msg(L("...<p/>...You don't believe me, do you...? Hah...<br/>The pass I just gave you is what the Fomors use to enter dungeons...<br/>It's an item they use to avoid the barriers set up by the Goddess."), npc.Image("g1_ch09_brownpass"));
            npc.Msg(L("If you offer that to the statue of the Goddess in Barri dungeon,<br/>you will witness everything I just told you with your own eyes.<br/>Here's a Red Wing of the Goddess, so use it if you need it...<br/>You can go there alone, but taking one or two friends with you is probably a better idea."));
            npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning..."));
        }
        else if (npc.HasKeyword("g1_10") || npc.HasKeyword("g1_11"))
        {
            if (!npc.HasItem(BrownFomorPass))
            {
                npc.GiveItem(BrownFomorPass);
            }

            npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning..."));
        }

        return(HookResult.Break);
    }
Esempio n. 22
0
    public async Task <HookResult> TarlachBearBeforeGift(NpcScript npc, params object[] args)
    {
        if (!npc.HasKeyword("g1_01") || npc.Favor < 15)
        {
            return(HookResult.Continue);
        }

        npc.RemoveKeyword("g1_01");
        npc.GiveKeyword("g1_02");
        npc.GiveKeyword("g1_tarlach1");

        npc.Msg(Hide.Name, L("(The bear is writing something in the snow.)"));
        npc.Msg(Hide.Name, L("(Tar...)<p/>(Tar... la... ch.)<p/>(The bear writes the word 'Tarlach' and stares at you.)<p/>(Tarlach...)<p/>(It seems to be someone's name.)"));

        return(HookResult.Break);
    }
Esempio n. 23
0
	public async Task<HookResult> EavanBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_memorial4" && npc.HasKeyword("g1_34_1"))
		{
			if (!npc.HasItem(Torque))
				npc.GiveItem(Torque);

			npc.Msg(L("(Missing dialog: Eavan giving you back the lost Torque.)"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
	public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_bone_of_glasgavelen" && npc.HasKeyword("g1_29"))
		{
			if (!npc.HasItem(Glasses))
				npc.GiveItem(Glasses);

			npc.Msg(L("Go to Rabbie Dungeon and put the glasses on the altar.<br/>Then... you will know about...<br/>my anger toward the Goddess and evil spirits..."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 25
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_bone_of_glasgavelen" && npc.HasKeyword("g1_29"))
        {
            if (!npc.HasItem(Glasses))
            {
                npc.GiveItem(Glasses);
            }

            npc.Msg(L("Go to Rabbie Dungeon and put the glasses on the altar.<br/>Then... you will know about...<br/>my anger toward the Goddess and evil spirits..."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 26
0
    public async Task <HookResult> EavanBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_memorial4" && npc.HasKeyword("g1_34_1"))
        {
            if (!npc.HasItem(Torque))
            {
                npc.GiveItem(Torque);
            }

            npc.Msg(L("(Missing dialog: Eavan giving you back the lost Torque.)"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> StewartBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;
		if (keyword == null || keyword != "g1_tarlach2")
			return HookResult.Continue;

		if (npc.HasKeyword("g1_02"))
		{
			npc.RemoveKeyword("g1_02");
			npc.GiveKeyword("g1_03");

			npc.GiveItem(TarlachsLocket);
			npc.GiveWarpScroll(63009, "Alby_Dungeon");

			npc.Msg(L("The three missing Warriors? The ones who are said to have gone to Tir Na Nog?"));
			npc.Msg(L("I see...<br/>There was a time when scholars debated back and forth regarding the validity of that legend."));
			npc.Msg(L("From what I remember, there were stories of Tir Na Nog circulating via word of mouth<br/>but there weren't any written records of it.<br/>In the end, it was concluded that it was only a rumor."));
			npc.Msg(L("So it's just a legend..."));
			npc.Msg(L("...What do I think...?<br/>I believe in the legend of three missing Warriors. Haha...<br/>I'm no fool though..."));
			npc.Msg(L("I'm not sure if what I just gave you will be of any help.<br/>It's a locket. You know, an accessory that you put pictures in."), npc.Image("G1_Ch04_locket01"));
			npc.Msg(L("...Don't be surprised...<br/>This is actually a memento that belonged to<br/>Tarlach, the mighty Wizard, one of the<br/>three missing Warriors."), npc.Image("G1_Ch04_locket02"));
			npc.Msg(L("Yes, the picture of the boy in the locket is Tarlach.<br/>This was probably from when he was young.<br/>Judging from how old she is, the pretty girl next to him is probably his sister."), npc.Image("G1_Ch04_locket02"));
			npc.Msg(L("That's not all, though...<br/>This locket...it's a type of a Memorial item that allows you<br/>to experience the life of the person who used to own it."));
			npc.Msg(L("Tarlach spent his entire life trying to rescue the goddess<br/>who holds the secrets of Tir Na Nog.<br/>His desires and memories remain in this locket."));
			npc.Msg(L("Try placing this on the altar to the goddess inside Alby Dungeon."));
			npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you."));

			return HookResult.Break;
		}
		else if (npc.HasKeyword("g1_03"))
		{
			// Give locket again if lost
			if (!npc.HasItem(TarlachsLocket))
				npc.GiveItem(TarlachsLocket);

			npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you."));

			return HookResult.Break;
		}
		else
		{
			return HookResult.Continue;
		}
	}
	public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;
		if (keyword != "g1_paradise")
			return HookResult.Continue;

		if (npc.HasKeyword("g1_09"))
		{
			npc.RemoveKeyword("g1_09");
			npc.GiveKeyword("g1_10");

			npc.GiveItem(BrownFomorPass);
			npc.GiveWarpScroll(63009, "Barri_Dungeon");

			npc.Msg(L("...Did you actually read the book?<br/>You still want to go...?<br/>Just as I'd thought...<br/>..."));
			npc.Msg(L("...Honestly, I was hoping that<br/>reading the book would be enough to satisfy your curiosity and that you would forget all about it...<br/>But, you can't help that you're an adventurer..."));
			npc.Msg(L("...<p/>...<br/>Tir Na Nog... is not paradise.<br/>What's in that book is actually a lie.<br/>...Tir Na Nog is a real place, but it's not anything like paradise."));
			npc.Msg(L("...<p/>Listen carefully... Tir Na Nog is the land of the Fomors.<br/>And... the Goddess,<br/>who seems so loving, draws zealous adventurers like yourself to manipulate and use you."));
			npc.Msg(L("...<p/>...You don't believe me, do you...? Hah...<br/>The pass I just gave you is what the Fomors use to enter dungeons...<br/>It's an item they use to avoid the barriers set up by the Goddess."), npc.Image("g1_ch09_brownpass"));
			npc.Msg(L("If you offer that to the statue of the Goddess in Barri dungeon,<br/>you will witness everything I just told you with your own eyes.<br/>Here's a Red Wing of the Goddess, so use it if you need it...<br/>You can go there alone, but taking one or two friends with you is probably a better idea."));
			npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning..."));
		}
		else if (npc.HasKeyword("g1_10") || npc.HasKeyword("g1_11"))
		{
			if (!npc.HasItem(BrownFomorPass))
				npc.GiveItem(BrownFomorPass);

			npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning..."));
		}

		return HookResult.Break;
	}
Esempio n. 29
0
    public async Task <HookResult> DougalBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_revive_of_glasgavelen")
        {
            if (npc.HasKeyword("g1_37"))
            {
                npc.RemoveKeyword("g1_37");
                npc.GiveKeyword("g1_37_2");

                npc.Msg(L("There's a sudden change in the sky.<br/>What's happened?"));
                npc.Msg(L("...<p/>You finally rescued the Goddess.<br/>Congratulations."));
                npc.Msg(Hide.Name, L("(You tell Dougal what you heard from the Goddess.)"));
                npc.Msg(L("...<p/>The Goddess told you that?<br/>But why are you telling me this?<p/>...<p/>...<p/>Ahh. I see.<p/>Heh. Hahaha.<p/>This explains quite a few things."));
                npc.Msg(L("I didn't realize that the 'Added Soul Effect'<br/>that I had told you in order to make you stay here<br/>could have the same effect on me."));
                npc.Msg(L("But you already seem to have guessed it.<br/>No, you must already know about it since that is essentially why you came here,<br/>to tell me this, right?"));
                npc.Msg(L("Right...<br/>I'm also a soul from another world just like yourself.<br/>I'm probably known to<br/>your people as Glas Ghaibhleann."));
                npc.Msg(L("I came here to reclaim my body<br/>that was summoned by the people<br/>of this world against my will,"));
                npc.Msg(L("but I ended up in the body<br/>of the last remaining human in this world.<br/>My host body is weak.<br/>I cannot even walk properly in this weak Human form."));
                npc.Msg(L("Now that you have learned all about me,<br/>I will proceed to pursue my original goal.<br/>The Goddess probably sent you to me fully<br/>aware of what my intentions are."));
                npc.Msg(L("My goal?<br/>It's obvious, isn't it? I wish to reclaim the freedom of my real body.<br/>I need to free my body into the world I originally belonged to<br/>by breaking away from these shackles."));
                npc.Msg(L("The Goddess Pendant is a key into another world.<br/>If you want, I can inscribe the pattern into<br/>the pendant so it will move you to my body, which is calling me."));
                npc.Msg(L("However, my body that's being<br/>controlled by the summoner would be powerful enough to blow away mere humans.<br/>I'm not sure if I should trust you with this task."));
                npc.Msg(L("Can you make me a promise?<br/>Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
            }
            else if (npc.HasKeyword("g1_37_2"))
            {
                npc.Msg(L("Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
            }
            else if (npc.HasKeyword("g1_38"))
            {
                if (!npc.HasItem(PendantOfTheGoddessBind))
                {
                    npc.GiveItem(PendantOfTheGoddessBind);
                }

                npc.Msg(L("Go to Albey Dungeon and offer the pendant there.<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));

                return(HookResult.Break);
            }
            else
            {
                return(HookResult.Continue);
            }

            if (await npc.Select() != "@yes")
            {
                npc.Msg(L("Oh..."));
                return(HookResult.Break);
            }
            else if (!npc.HasItem(PendantOfTheGoddess))
            {
                npc.Msg(L("You don't have the pendant on you?"));
                return(HookResult.Break);
            }

            npc.RemoveKeyword("g1_37");
            npc.RemoveKeyword("g1_37_2");
            npc.GiveKeyword("g1_38");

            npc.RemoveItem(PendantOfTheGoddess);
            npc.GiveItem(PendantOfTheGoddessBind);
            npc.GiveItem(Item.CreateWarpScroll(63009, "tirnanog_dungeon"));

            npc.Msg(L("Okay, I'll trust you.<br/>I guess it might not be a bad idea to trust you since<br/>you rescued the Goddess."));
            npc.Msg(L("Go to Albey Dungeon and offer this pendant there.<br/>You know how to use the Red Wings of a Goddess, right?<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));
        }

        return(HookResult.Continue);
    }
Esempio n. 30
0
	public async Task<HookResult> MevenBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;
		if (keyword != "g1_medal_of_fomor")
			return HookResult.Continue;

		if (npc.HasItem(FomorMedal))
		{
			if (npc.HasKeyword("g1_11"))
			{
				npc.RemoveKeyword("g1_paradise");
				npc.RemoveKeyword("g1_11");
				npc.RemoveKeyword("g1_11_1");
				npc.GiveKeyword("g1_11_2");

				npc.Msg(L("Medal...? Could...I see it?"));
				npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01"));
				npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this..."));
				npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court."));
				npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02"));
				npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
			}
			else if (npc.HasKeyword("g1_11_1"))
			{
				npc.RemoveKeyword("g1_11_1");
				npc.RemoveKeyword("g1_11_2");
				npc.GiveKeyword("g1_12");
				npc.RemoveKeyword("g1_medal_of_fomor");
				npc.GiveKeyword("g1_voucher_of_priest");

				npc.Msg(L("Medal...? Could...I see it?"));
				npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01"));
				npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this..."));
				npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court."));
				npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02"));
				npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
			}
			else
			{
				npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could..."));
			}
		}
		else
		{
			npc.Msg(L("Medal...? Could...I see it?"));
		}

		return HookResult.Break;
	}
Esempio n. 31
0
    // Dialog pieced together from vague translations
    // and snippets of official dialog.
    public async Task <HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_cichol")
        {
            npc.Msg(L("He's amongst one of the evil Gods that lead the Fomors.<br/>Yes, Fomors do worship Gods."));
            npc.Msg(L("I don't particularly feel up to talking about him.<br/>But, I'll tell you now, you should hurry if you think Cichol<br/>is somehow involved with GOddess Morrighan."));
            npc.Msg(L("He is cunning and meticulous, so he will<br/>be very difficult to stop by ourselves."));
        }
        else if (keyword == "g1_way_to_tirnanog1")
        {
            if (npc.Player.Level < 25)
            {
                npc.Msg(L("...<p/>I have heard people call your name...<br/>And I know what kind of person you are."));
                npc.Msg(L("...But, <username/>... Tir Na Nog is a bad place to be.<br/>In that place even your connection<br/>to the Soul Stream won't help you..."));
                npc.Msg(L("You don't have the experience to survive there."));
                npc.Msg(L("You should at least reach level 25...<br/>Otherwise, going there would be suicide."));

                return(HookResult.Break);
            }

            var hasSlayerTitle = (npc.Title == 79 || npc.Title == 80 || npc.Title == 81 || npc.Title == 82 || npc.Title == 83 || npc.Title == 85 || npc.Title == 53);
            if (!hasSlayerTitle)
            {
                npc.Msg(L("...<br/>If...<br/>If Tir Na Nog is..."));
                npc.Msg(L("If it really is the land of the Fomors, like Tarlach said..."));
                npc.Msg(L("I've already betrayed the Fomors. I supposed it doesn't hurt to tell you.<br/>The land of the Fomors is a dangerous place.<br/>There are no friendly faces or safe places...<br/>You have no one but yourself and your party members to rely on."));
                npc.Msg(L("Do you... think you have the strength to bear the pain...?"));
                npc.Msg(L("I can tell you how to reach Tir Na Nog."));
                npc.Msg(L("But... please show me that you're capable<br/>of fighting Erinn's powerful monsters."));
                npc.Msg(L("I can't tell you how to reach Tir Na Nog before that."));

                return(HookResult.Break);
            }

            if (npc.HasKeyword("g1_33"))
            {
                if (!npc.HasQuest(this.Id))
                {
                    npc.StartQuest(this.Id);
                }

                npc.Msg(L("That title above your head<br/>tells me that you're confident<br/>with your strength."));
                npc.Msg(L("If you're so strong,<br/>could I ask you for one favor?"));
                npc.Msg(L("I've betrayed the Fomors to become a Human.<br/>Fomors are always waiting for the chance to hurt me."));
                npc.Msg(L("Ever since I translated the book for Tarlach,<br/>I sensed someone stalking me."));
                npc.Msg(L("I'm really insecure because I feel the Fomors looking for me.<br/>I saw the Fomor Command Scroll and think I'm supposed to be the target.<br/>Can you help me so they can't come anywhere near here?"));
                npc.Msg(L("If you do that,<br/>I'll feel a bit more at ease."));
            }
            else
            {
                if (!npc.HasItem(BlackFomorPass))
                {
                    npc.GiveItem(BlackFomorPass);
                    npc.Msg(L("This is a Fomor Pass used only by high ranking Fomors.<br/>I pray that you won't lose it."));
                }
                else
                {
                    npc.Msg(L("Yes, offer the pass I gave you in Barri Dungeon.<br/>...<br/>Please be careful."));
                }
            }

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 32
0
	public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_dulbrau1")
		{
			if (npc.HasItem(FomorMedal))
			{
				if (npc.HasKeyword("g1_13"))
				{
					npc.RemoveKeyword("g1_13");
					npc.GiveKeyword("g1_14");

					npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
					npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
				}

				npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
				if (await npc.Select() != "@yes")
				{
					npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal."));
					return HookResult.Break;
				}

				npc.RemoveItem(FomorMedal);
				npc.RemoveKeyword("g1_dulbrau1");
				npc.GiveKeyword("g1_dulbrau2");

				npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see."));
				npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power..."));
				npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'"));
				npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>..."));
				npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess."));
				npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?"));
			}
			else
			{
				npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
				npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
			}

			return HookResult.Break;
		}
		else if (keyword == "g1_dulbrau2")
		{
			npc.Msg(L("If you don't believe me, why don't you go ask Goro again?"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 33
0
	public async Task<HookResult> LassarBeforeKeyword(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_black_rose")
		{
			if (npc.HasKeyword("g1_17_2"))
			{
				npc.RemoveKeyword("g1_17_2");
				npc.GiveKeyword("g1_17_3");

				npc.Msg(L("Hmm. Priest Meven's favor?<br/>Why would he need something like that? Hehehe."));
				npc.Msg(L("Hmm, I don't know how this will sound<br/>but I need some Holy Water of Lymilark to grow this.<br/>Priest Meven used to supply me with it up until recently."));
				npc.Msg(L("I guess he got caught by Priestess Endelyon.<br/>He hasn't given me any for the past few days."));
				npc.Msg(L("If you have any Holy Water of Lymilark, could you give me a bottle?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no"));
				if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater))
				{
					npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some."));
					return HookResult.Break;
				}

				LassarFinish(npc);

				return HookResult.Break;
			}
			else if (npc.HasKeyword("g1_17_3"))
			{
				npc.Msg(L("Did you get a bottle of Holy Water of Lymilark?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no"));
				if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater))
				{
					npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some."));
					return HookResult.Break;
				}

				LassarFinish(npc);

				return HookResult.Break;
			}
		}

		return HookResult.Continue;
	}
Esempio n. 34
0
	public async Task<HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_dulbrau2")
		{
			if (npc.HasKeyword("g1_14"))
			{
				npc.RemoveKeyword("g1_14");
				npc.GiveKeyword("g1_15");

				npc.GiveItem(TarlachsGlassesPouch);
				npc.GiveWarpScroll(63009, "Rabbie_Dungeon");

				npc.Msg(L("...How... how did you interpret...it...<br/>It means that the Goddess is sending Fomors here?<br/>Where did you hear that...?<br/>What...? The wizard...you heard from a Druid?"));
				npc.Msg(L("...Named Tarlach...?"));
				npc.Msg(L("Ahh, I see...<br/>I understand... So Tarlach is still alive after all."));
				npc.Msg(Hide.Name, L("(Kristell closes her eyes and smiles.)"));
				npc.Msg(L("Dul Brau Dairam Shanon.<br/>Truth is, I was the<br/>one who taught Tarlach the meaning of those words."));
				npc.Msg(L("Yes...I am Bondi Gordisse.<br/>I'm what you people call Fomor. A monster..."));
				npc.Msg(L("I don't look it, eh?<br/>I have become a human with the blessings of the gods..."));
				npc.Msg(L("Ah... But I've rambled on too much...<br/>I apologize."));
				npc.Msg(L("The words on that medal...<br/>It's true that it means to seek out the power of Morrighan."));
				npc.Msg(L("But...the the goddess isn't the one sending the Fomors.<br/>I can swear on my honor as a priestess.<br/>Tarlach misunderstood that part.<br/>The Goddess has always been looking after mankind, even as a statue."));
				npc.Msg(L("That's only an amulet for Fomors<br/>There's no meaning behind those words anymore..."));
				npc.Msg(L("...<br/>Can you tell me where Tarlach is...?"));
				npc.Msg(L("...You don't seem to trust me either.<br/>Is this because I told you I was a Fomor?"));
				npc.Msg(L("I see...<br/>Well, then..."));
				npc.Msg(L("What I just gave you is the only item I've ever received from Tarlach...<br/>It's an item that holds his memory."), npc.Image("g1_ch14_glassespocket"));
				npc.Msg(L("If you go to Rabbi dungeon alone and offer this on the altar of the Goddess...<br/>You will be able to trust me.<br/>I'll give you a Red Wing of the Goddess<br/>so you can get to Rabbie Dungeon easily."), npc.Image("g1_ch14_glassespocket"));
				npc.Msg(Hide.None, L("(You receive Tarlach's Spectacle Pouch from Kristell.)"));
			}
			else if (npc.HasKeyword("g1_15"))
			{
				if (!npc.HasItem(TarlachsGlassesPouch))
					npc.GiveItem(TarlachsGlassesPouch);

				npc.Msg(L("If you go to Rabbi dungeon alone and offer the pouch on the altar of the Goddess...<br/>You will be able to trust me."));
			}

			return HookResult.Break;
		}
		else if (keyword == "g1_succubus")
		{
			npc.RemoveKeyword("g1_16");
			npc.GiveKeyword("g1_17");
			npc.RemoveKeyword("g1_succubus");
			npc.GiveKeyword("g1_message_of_kristell");

			npc.Msg(L("...<p/>Hello, I see you're back...<br/>Do you believe me now...?"));
			npc.Msg(L("I'm not trying to hurt Tarlach or anything.<br/>I only want to know how he's doing."));
			npc.Msg(L("You still seem reluctant...<br/>Well then...I have a favor to ask."));
			npc.Msg(L("Tell Tarlach how I am doing<br/>and let him know that I really want to meet him...<br/>That I have something I want to tell him...<br/>...that should be okay...right?"));
			npc.Msg(L("...If you understand how hard it is for a woman to<br/>reveal her true intentions and her past..."));
			npc.Msg(L("...Please do this favor for me..."));

			return HookResult.Break;
		}
		else if (keyword == "g1_message_of_kristell")
		{
			npc.Msg(L("Tell Tarlach how I am doing<br/>...Please do this favor for me..."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
Esempio n. 35
0
	public async Task<HookResult> DougalBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_revive_of_glasgavelen")
		{
			if (npc.HasKeyword("g1_37"))
			{
				npc.RemoveKeyword("g1_37");
				npc.GiveKeyword("g1_37_2");

				npc.Msg(L("There's a sudden change in the sky.<br/>What's happened?"));
				npc.Msg(L("...<p/>You finally rescued the Goddess.<br/>Congratulations."));
				npc.Msg(Hide.Name, L("(You tell Dougal what you heard from the Goddess.)"));
				npc.Msg(L("...<p/>The Goddess told you that?<br/>But why are you telling me this?<p/>...<p/>...<p/>Ahh. I see.<p/>Heh. Hahaha.<p/>This explains quite a few things."));
				npc.Msg(L("I didn't realize that the 'Added Soul Effect'<br/>that I had told you in order to make you stay here<br/>could have the same effect on me."));
				npc.Msg(L("But you already seem to have guessed it.<br/>No, you must already know about it since that is essentially why you came here,<br/>to tell me this, right?"));
				npc.Msg(L("Right...<br/>I'm also a soul from another world just like yourself.<br/>I'm probably known to<br/>your people as Glas Ghaibhleann."));
				npc.Msg(L("I came here to reclaim my body<br/>that was summoned by the people<br/>of this world against my will,"));
				npc.Msg(L("but I ended up in the body<br/>of the last remaining human in this world.<br/>My host body is weak.<br/>I cannot even walk properly in this weak Human form."));
				npc.Msg(L("Now that you have learned all about me,<br/>I will proceed to pursue my original goal.<br/>The Goddess probably sent you to me fully<br/>aware of what my intentions are."));
				npc.Msg(L("My goal?<br/>It's obvious, isn't it? I wish to reclaim the freedom of my real body.<br/>I need to free my body into the world I originally belonged to<br/>by breaking away from these shackles."));
				npc.Msg(L("The Goddess Pendant is a key into another world.<br/>If you want, I can inscribe the pattern into<br/>the pendant so it will move you to my body, which is calling me."));
				npc.Msg(L("However, my body that's being<br/>controlled by the summoner would be powerful enough to blow away mere humans.<br/>I'm not sure if I should trust you with this task."));
				npc.Msg(L("Can you make me a promise?<br/>Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
			}
			else if (npc.HasKeyword("g1_37_2"))
			{
				npc.Msg(L("Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
			}
			else if (npc.HasKeyword("g1_38"))
			{
				if (!npc.HasItem(PendantOfTheGoddessBind))
					npc.GiveItem(PendantOfTheGoddessBind);

				npc.Msg(L("Go to Albey Dungeon and offer the pendant there.<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));

				return HookResult.Break;
			}
			else
			{
				return HookResult.Continue;
			}

			if (await npc.Select() != "@yes")
			{
				npc.Msg(L("Oh..."));
				return HookResult.Break;
			}
			else if (!npc.HasItem(PendantOfTheGoddess))
			{
				npc.Msg(L("You don't have the pendant on you?"));
				return HookResult.Break;
			}

			npc.RemoveKeyword("g1_37");
			npc.RemoveKeyword("g1_37_2");
			npc.GiveKeyword("g1_38");

			npc.RemoveItem(PendantOfTheGoddess);
			npc.GiveItem(PendantOfTheGoddessBind);
			npc.GiveItem(Item.CreateWarpScroll(63009, "TirNaNog_Dungeon"));

			npc.Msg(L("Okay, I'll trust you.<br/>I guess it might not be a bad idea to trust you since<br/>you rescued the Goddess."));
			npc.Msg(L("Go to Albey Dungeon and offer this pendant there.<br/>You know how to use the Red Wings of a Goddess, right?<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));
		}

		return HookResult.Continue;
	}
Esempio n. 36
0
    public async Task <HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_dulbrau2")
        {
            if (npc.HasKeyword("g1_14"))
            {
                npc.RemoveKeyword("g1_14");
                npc.GiveKeyword("g1_15");

                npc.GiveItem(TarlachsGlassesPouch);
                npc.GiveWarpScroll(63009, "Rabbie_Dungeon");

                npc.Msg(L("...How... how did you interpret...it...<br/>It means that the Goddess is sending Fomors here?<br/>Where did you hear that...?<br/>What...? The wizard...you heard from a Druid?"));
                npc.Msg(L("...Named Tarlach...?"));
                npc.Msg(L("Ahh, I see...<br/>I understand... So Tarlach is still alive after all."));
                npc.Msg(Hide.Name, L("(Kristell closes her eyes and smiles.)"));
                npc.Msg(L("Dul Brau Dairam Shanon.<br/>Truth is, I was the<br/>one who taught Tarlach the meaning of those words."));
                npc.Msg(L("Yes...I am Bondi Gordisse.<br/>I'm what you people call Fomor. A monster..."));
                npc.Msg(L("I don't look it, eh?<br/>I have become a human with the blessings of the gods..."));
                npc.Msg(L("Ah... But I've rambled on too much...<br/>I apologize."));
                npc.Msg(L("The words on that medal...<br/>It's true that it means to seek out the power of Morrighan."));
                npc.Msg(L("But...the the goddess isn't the one sending the Fomors.<br/>I can swear on my honor as a priestess.<br/>Tarlach misunderstood that part.<br/>The Goddess has always been looking after mankind, even as a statue."));
                npc.Msg(L("That's only an amulet for Fomors<br/>There's no meaning behind those words anymore..."));
                npc.Msg(L("...<br/>Can you tell me where Tarlach is...?"));
                npc.Msg(L("...You don't seem to trust me either.<br/>Is this because I told you I was a Fomor?"));
                npc.Msg(L("I see...<br/>Well, then..."));
                npc.Msg(L("What I just gave you is the only item I've ever received from Tarlach...<br/>It's an item that holds his memory."), npc.Image("g1_ch14_glassespocket"));
                npc.Msg(L("If you go to Rabbi dungeon alone and offer this on the altar of the Goddess...<br/>You will be able to trust me.<br/>I'll give you a Red Wing of the Goddess<br/>so you can get to Rabbie Dungeon easily."), npc.Image("g1_ch14_glassespocket"));
                npc.Msg(Hide.None, L("(You receive Tarlach's Spectacle Pouch from Kristell.)"));
            }
            else if (npc.HasKeyword("g1_15"))
            {
                if (!npc.HasItem(TarlachsGlassesPouch))
                {
                    npc.GiveItem(TarlachsGlassesPouch);
                }

                npc.Msg(L("If you go to Rabbi dungeon alone and offer the pouch on the altar of the Goddess...<br/>You will be able to trust me."));
            }

            return(HookResult.Break);
        }
        else if (keyword == "g1_succubus")
        {
            npc.RemoveKeyword("g1_16");
            npc.GiveKeyword("g1_17");
            npc.RemoveKeyword("g1_succubus");
            npc.GiveKeyword("g1_message_of_kristell");

            npc.Msg(L("...<p/>Hello, I see you're back...<br/>Do you believe me now...?"));
            npc.Msg(L("I'm not trying to hurt Tarlach or anything.<br/>I only want to know how he's doing."));
            npc.Msg(L("You still seem reluctant...<br/>Well then...I have a favor to ask."));
            npc.Msg(L("Tell Tarlach how I am doing<br/>and let him know that I really want to meet him...<br/>That I have something I want to tell him...<br/>...that should be okay...right?"));
            npc.Msg(L("...If you understand how hard it is for a woman to<br/>reveal her true intentions and her past..."));
            npc.Msg(L("...Please do this favor for me..."));

            return(HookResult.Break);
        }
        else if (keyword == "g1_message_of_kristell")
        {
            npc.Msg(L("Tell Tarlach how I am doing<br/>...Please do this favor for me..."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
Esempio n. 37
0
	// Dialog pieced together from vague translations
	// and snippets of official dialog.
	public async Task<HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_cichol")
		{
			npc.Msg(L("He's amongst one of the evil Gods that lead the Fomors.<br/>Yes, Fomors do worship Gods."));
			npc.Msg(L("I don't particularly feel up to talking about him.<br/>But, I'll tell you now, you should hurry if you think Cichol<br/>is somehow involved with GOddess Morrighan."));
			npc.Msg(L("He is cunning and meticulous, so he will<br/>be very difficult to stop by ourselves."));
		}
		else if (keyword == "g1_way_to_tirnanog1")
		{
			if (npc.Player.Level < 25)
			{
				npc.Msg(L("...<p/>I have heard people call your name...<br/>And I know what kind of person you are."));
				npc.Msg(L("...But, <username/>... Tir Na Nog is a bad place to be.<br/>In that place even your connection<br/>to the Soul Stream won't help you..."));
				npc.Msg(L("You don't have the experience to survive there."));
				npc.Msg(L("You should at least reach level 25...<br/>Otherwise, going there would be suicide."));

				return HookResult.Break;
			}

			var hasSlayerTitle = (npc.Title == 79 || npc.Title == 80 || npc.Title == 81 || npc.Title == 82 || npc.Title == 83 || npc.Title == 85 || npc.Title == 53);
			if (!hasSlayerTitle)
			{
				npc.Msg(L("...<br/>If...<br/>If Tir Na Nog is..."));
				npc.Msg(L("If it really is the land of the Fomors, like Tarlach said..."));
				npc.Msg(L("I've already betrayed the Fomors. I supposed it doesn't hurt to tell you.<br/>The land of the Fomors is a dangerous place.<br/>There are no friendly faces or safe places...<br/>You have no one but yourself and your party members to rely on."));
				npc.Msg(L("Do you... think you have the strength to bear the pain...?"));
				npc.Msg(L("I can tell you how to reach Tir Na Nog."));
				npc.Msg(L("But... please show me that you're capable<br/>of fighting Erinn's powerful monsters."));
				npc.Msg(L("I can't tell you how to reach Tir Na Nog before that."));

				return HookResult.Break;
			}

			if (npc.HasKeyword("g1_33"))
			{
				if (!npc.HasQuest(this.Id))
					npc.StartQuest(this.Id);

				npc.Msg(L("That title above your head<br/>tells me that you're confident<br/>with your strength."));
				npc.Msg(L("If you're so strong,<br/>could I ask you for one favor?"));
				npc.Msg(L("I've betrayed the Fomors to become a Human.<br/>Fomors are always waiting for the chance to hurt me."));
				npc.Msg(L("Ever since I translated the book for Tarlach,<br/>I sensed someone stalking me."));
				npc.Msg(L("I'm really insecure because I feel the Fomors looking for me.<br/>I saw the Fomor Command Scroll and think I'm supposed to be the target.<br/>Can you help me so they can't come anywhere near here?"));
				npc.Msg(L("If you do that,<br/>I'll feel a bit more at ease."));
			}
			else
			{
				if (!npc.HasItem(BlackFomorPass))
				{
					npc.GiveItem(BlackFomorPass);
					npc.Msg(L("This is a Fomor Pass used only by high ranking Fomors.<br/>I pray that you won't lose it."));
				}
				else
				{
					npc.Msg(L("Yes, offer the pass I gave you in Barri Dungeon.<br/>...<br/>Please be careful."));
				}
			}

			return HookResult.Break;
		}

		return HookResult.Continue;
	}