summaryrefslogtreecommitdiff
path: root/npc/012-7
diff options
context:
space:
mode:
Diffstat (limited to 'npc/012-7')
-rw-r--r--npc/012-7/_import.txt1
-rw-r--r--npc/012-7/celestia.txt199
2 files changed, 200 insertions, 0 deletions
diff --git a/npc/012-7/_import.txt b/npc/012-7/_import.txt
index 1f927ce5f..f38d358e6 100644
--- a/npc/012-7/_import.txt
+++ b/npc/012-7/_import.txt
@@ -1,3 +1,4 @@
// Map 012-7: Town Hall
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/012-7/_warps.txt",
+"npc/012-7/celestia.txt",
diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt
new file mode 100644
index 000000000..28a85324e
--- /dev/null
+++ b/npc/012-7/celestia.txt
@@ -0,0 +1,199 @@
+// TMW2 Scripts
+// Author:
+// gumi (TMW Org. Team)
+// Jesusalva
+// Description:
+// Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
+// summon the Yeti King, helping you while doing the quest by themselves.
+
+// TODO: OnPCDieEvent must reset quest
+
+
+012-7,94,21,0 script Celestia NPC_ELF_F,{
+ .@q1=getq(HurnscaldQuest_Celestia);
+ .@q2=getq(HurnscaldQuest_TeaParty);
+ mesn;
+ mesq lg("Hello, darling. I was thinking in doing a tea party.");
+ next;
+ mesn strcharinfo(0);
+ menu
+ l("Sorry, I'm more of a coffee person."), L_Coffee,
+ l("What an amazing crown you have! How do I get it?!"), L_Crown,
+ rif(.@q2 == 0 && BaseLevel > 30, l("Tea party! I want to participate.")), L_TeaQuest,
+ rif(.@q2 == 1, l("I have some sweeties for the Tea Party!")), L_TeaCheck,
+ rif(.@q2 >= 2, l("Tea party! I want to participate.")), L_TeaParty,
+ rif(.@q1 == 0, l("How do you have time for tea parties?!")), L_MainQuest,
+ rif(.@q1 == 99, l("I want to try again.")), L_MainQuest;
+
+L_Coffee:
+ mes "";
+ mesn;
+ mesq l("Hmpf! Coffee is an heresy!");
+ // Except I love coffee ~ Jesusalva
+ close;
+
+L_Crown:
+ mes "";
+ mesn;
+ mesq l("Ooh, this nice shiny thing? It was an event.");
+ next;
+ mesn;
+ mesq l("Saulc is rich, you know. He challenged a group of thirty NPCs to defeat him, whoever won would get this crown.");
+ next;
+ mesn;
+ mesq l("Well, Andrei Sakar said it was a waste a time, and the other NPCs started fighting against themselves, so I won.");
+ next;
+ mesn;
+ if (BaseLevel < 90)
+ mesq l("...Besides, I have this nice @@ with me. I'm not low-level like you.", getitemlink(BansheeBow));
+ else
+ mesq l("...Besides, I have this nice @@ with me. It's a reliable bow.", getitemlink(BansheeBow));
+ close;
+
+L_MainQuest:
+ if (is_admin())
+ setq HurnscaldQuest_Celestia, 1;
+ mesn;
+ mes col("TODO, please report this error to Jesusalva.", 1);
+ close;
+
+L_TeaQuest:
+ mes "";
+ mesn;
+ mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies.");
+ //next;
+ //mesn;
+ //mesq l("And anyone who hanged out on #evol-dev knows that, well... Cookies are life!");
+ next;
+ mesn;
+ mesq l("But I can still make it without cookies, as long that you bring me some other sweeties.");
+ next;
+ mesn l("Item List");
+ mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
+ mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
+ mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
+ mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
+ mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
+ mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
+ mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
+ mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
+ /* We can't ask for THAT many!
+ mes l("@@/20 @@", countitem(ApanaCake), getitemlink(ApanaCake));
+ mes l("@@/20 @@", countitem(Lollipop), getitemlink(Lollipop));
+ mes l("@@/20 @@", countitem(Mashmallow), getitemlink(Mashmallow));
+ mes l("@@/20 @@", countitem(TonoriDelight), getitemlink(TonoriDelight));
+ mes l("@@/20 @@", countitem(EasterEgg), getitemlink(EasterEgg));
+ mes l("@@/20 @@", countitem(ChocolateBunny), getitemlink(ChocolateBunny));
+ mes l("@@/20 @@", countitem(FrozenYetiTear), getitemlink(FrozenYetiTear));
+ mes l("@@/20 @@", countitem(DeliciousCookie), getitemlink(DeliciousCookie));
+ */
+ setq HurnscaldQuest_TeaParty, 1;
+ close;
+
+L_TeaCheck:
+ mesn l("Item List");
+ mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
+ mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
+ mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
+ mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
+ mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
+ mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
+ mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
+ mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
+ next;
+ select
+ l("I will be back shortly."),
+ l("I have all.");
+
+ if (@menu == 1) {
+ closedialog;
+ goodbye;
+ close;
+ }
+ if (countitem(Acorn) < 20 ||
+ countitem(ChocolateMouboo) < 20 ||
+ countitem(ChocolateBar) < 20 ||
+ countitem(Candy) < 15 ||
+ countitem(OrangeCupcake) < 15 ||
+ countitem(CherryCake) < 10 ||
+ countitem(GingerBreadMan) < 5 ||
+ countitem(ChocolateBiscuit) < 2)
+ goto L_Lying;
+
+ delitem Acorn, 20;
+ delitem ChocolateMouboo, 20;
+ delitem ChocolateBar, 20;
+ delitem Candy, 15;
+ delitem OrangeCupcake, 15;
+ delitem CherryCake, 10;
+ delitem GingerBreadMan, 5;
+ delitem ChocolateBiscuit, 2;
+
+ getexp rand(12000, 13000), 0;
+ setq HurnscaldQuest_TeaParty, 2;
+
+ mes "";
+ mesn;
+ mesq l("Many thanks! I'll arrange the table.");
+ close;
+
+L_Lying:
+ mesn;
+ mesq l("Wha- How dare you, to lie to me!");
+ // She'll try to drain all your MP. If you're not MP Full, you'll die. And will have EXP penalty, of course.
+ if (Sp == MaxSp)
+ percentheal 0, -100;
+ else
+ percentheal -100, 0;
+ close;
+
+// begin: Gumi Script
+L_TeaParty:
+ mes "";
+ mesn;
+ mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea.");
+ next;
+ mes col("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before.", 9);
+ mes col("It has a very dark color and an unusual aroma reminiscent of a moist forest.", 9);
+ next;
+ mes col("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot.", 9);
+ mes col("You ponder whether or not it would be wise to drink it.", 9);
+ menu
+ l("Uh are you sure this is fit to drink?"), L_QuestionTea,
+ l("(Drink the tea, hoping for the best)"), L_DrinkTea;
+
+L_DrinkTea:
+ // This is easily exploitable on purpose: It's mostly to protect against flood.
+ if (@tmp_teatime < gettimetick(2)) {
+ percentheal 0, 15;
+ @tmp_teatime=gettimetick(2)+140;
+ }
+ mes col("To your pleasant surprise the tea is actually quite good.", 9);
+ next;
+ mes col("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavour, but in a very good way.", 9);
+ next;
+ mes col("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia.", 9);
+ close;
+
+L_QuestionTea:
+ mesq l("Yes, did you really think I was some kind of monster that would try to poison you in my own house?");
+ mes l("##a(it would be way too messy anyway)##0");
+ next;
+ mes col("Celestia then picks up the cup of tea and drinks it in front of you to demonstrate that it is not only harmless but also quite delectable.", 9);
+ close;
+// end: Gumi Script
+
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ setunitdata(.@npcId, UDT_HEADTOP, ValentineDress);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, MurdererCrown);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
+ setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 19);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 10);
+
+ .sex = G_FEMALE;
+ .distance = 5;
+
+}