summaryrefslogtreecommitdiff
path: root/npc/001-1/rumly.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-1/rumly.txt')
-rw-r--r--npc/001-1/rumly.txt225
1 files changed, 225 insertions, 0 deletions
diff --git a/npc/001-1/rumly.txt b/npc/001-1/rumly.txt
new file mode 100644
index 00000000..6cc625ff
--- /dev/null
+++ b/npc/001-1/rumly.txt
@@ -0,0 +1,225 @@
+// Evol scripts.
+// Author:
+// Vasily_Makarov
+// Description:
+// Stat resetter.
+// Variables:
+// General_Rumly
+// Values:
+// 0 Player hasn't met Rumly
+// 1 Last time player has told that he will never come back
+// 2 Last time player has told that he will come back later
+// 3 Player has already reset his stat
+// Others:
+// .@visited - Rumly actual variable
+// .@wasSP - free status points before reset
+
+001-1,35,125,0 script Rumly#001-1 NPC_RUMLY,{
+
+ setnpcdir "Rumly#001-1", 2;
+ stopnpctimer;
+ initnpctimer;
+
+ speech S_LAST_NEXT,
+ l("Hey you, do you have any @@s?", getitemlink(Plushroom));
+
+L_Menu:
+ .@visited = getq(General_Rumly);
+ .@plush_count = lognbaselvl(1, 10);
+
+ select
+ l("Plushrooms you say?"),
+ l("Who are you?"),
+ rif(.@visited > 0, l("Can you reset my stats please?")),
+ l("You are weird, I have to go sorry.");
+
+ switch (@menu)
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Wind and grass is nice and cool, so juicy sweet..."),
+ l("Our only wish to eat a plush, so juicy sweet...");
+ goto L_Menu;
+ case 2:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Why are you asking? And who are you too? I've never seen you around before..."),
+ l("Wait, are you one of those from the Legion of Gasaron? I didn't do anything wrong, I promise!"),
+ l("I... I just like to eat the purple and delightful... And natural, and...");
+
+ switch (select(l("Chill out I won't say anything."),
+ l("Yes I am and you are going to face justice!")))
+ {
+ case 1: break;
+ case 2:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("No! No, no, my precious plushrooms! Don’t take me to them, they wants my precious.");
+ goto L_Quit;
+ }
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("I won't forget it, I swear on my precious plushrooms!"),
+ l("There is an unknown side effect to these plushrooms, they can free you from your past mistakes."),
+ l("You can use it to clear your stats, to start freshly if you see what I mean..."),
+ l("Bring me some of these plushrooms and I will show you how it works!"),
+ l("Although the more powerful you are, the more plushrooms you will need.");
+
+ select
+ l("Sounds good!"),
+ rif(countitem(Plushroom) >= .@plush_count, l("I think I have enough plushrooms on me.")),
+ l("We will talk about it later."),
+ l("My stats are too good, I won't need it.");
+
+ switch (@menu)
+ {
+ case 1:
+ if (.@visited < 2)
+ {
+ setq General_Rumly, 2;
+ }
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Great! Can't wait for some tasty mushrooms!");
+
+ goto L_Menu;
+ case 2:
+ goto L_ResetStats;
+ case 3:
+ goto L_Later;
+ case 4:
+ goto L_Never;
+ }
+
+ case 3:
+ goto L_ResetStats;
+ case 4:
+ if (.@visited < 2) goto L_Quit;
+
+ .@rand = rand(2);
+
+ if (.@rand)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("See you! And come back with the plushrooms!");
+ }
+ else
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Oh noes!"),
+ l("A rabbit!"),
+ l("He has a guns!"),
+ l("*Bang bang*");
+ narrator S_LAST_NEXT,
+ l("Rumly is hiding behind the tree.");
+ }
+
+ goto L_Quit;
+ }
+
+L_ResetStats:
+ if (.@visited == 1)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Changed your mind, uh?"),
+ l("Very good."),
+ l("Status point reset can't be undone. Do you really want this?"),
+ l("Are you sure about this?");
+ }
+ else
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Are you sure about this?");
+ }
+
+L_ConfirmReset:
+ switch (select(l("Yes, I am sure."),
+ l("I need to think about it..."),
+ l("I won't need it, thank you.")))
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Let me just have a quick look at you. Hm... I will need @@ @@s to reset your stats.", .@plush_count, getitemlink(Plushroom));
+
+ select
+ rif(countitem(Plushroom) >= .@plush_count, l("Here, take as many as you need, I have plenty!")),
+ rif(countitem(Plushroom) > 0 && countitem(Plushroom) < .@plush_count, l("I don't have enough plushrooms...")),
+ rif(countitem(Plushroom) == 0, l("Oh no, I don't have any plushroom on me right now.")),
+ l("I have to go, sorry.");
+
+ if (@menu > 1)
+ {
+ goto L_Later;
+ }
+
+ delitem Plushroom, .@plush_count;
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Thank you."),
+ l("Now stand still... It should not take much time...");
+
+ .@wasSP = StatusPoint;
+ resetstatus;
+ if (.@visited < 3)
+ {
+ setq General_Rumly, 3;
+ }
+ if (StatusPoint == .@wasSP)
+ {
+ speech S_LAST_NEXT,
+ l("It seems that you have no status points to reset!"),
+ l("But the plushroom you brought was really awesome you know."),
+ l("Come back when you will really need me. And bring more plushrooms with you!");
+ }
+ else
+ {
+ speech S_LAST_NEXT,
+ l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP),
+ l("Spend it wisely this time."),
+ l("But you are welcome to reset your stats again if you bring me some more plushrooms!");
+ }
+ goto L_Quit;
+
+ case 2:
+ goto L_Later;
+ case 3:
+ goto L_Never;
+ }
+
+L_Later:
+ if (.@visited < 2)
+ {
+ setq General_Rumly, 2;
+ }
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Come back soon, and bring @@s!", getitemlink(Plushroom));
+
+ goto L_Quit;
+
+L_Never:
+ if (.@visited < 2)
+ {
+ setq General_Rumly, 1;
+ }
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("I am sure that you will change your mind.");
+
+ goto L_Quit;
+
+L_Quit:
+ setnpcdir "Rumly#001-1", 4;
+ stopnpctimer;
+ initnpctimer;
+
+ goodbye;
+
+OnTimer1800:
+ stopnpctimer;
+
+ if (getnpcdir("Rumly#001-1") == 2) setnpcdir "Rumly#001-1", 6;
+ if (getnpcdir("Rumly#001-1") == 4) setnpcdir "Rumly#001-1", 8;
+
+ end;
+
+OnInit:
+ end;
+}