summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-04-11 21:46:42 +0000
committerJesusaves <cpntb1@ymail.com>2019-04-11 21:46:42 +0000
commite7ceef253528458c30abed263f5980835426a92f (patch)
tree573c88ecf9490d28f18f40ee94bc7a3ccd9938ac
parent1156c321795325cca5422d527808283d5c5df34c (diff)
downloadserverdata-e7ceef253528458c30abed263f5980835426a92f.tar.gz
serverdata-e7ceef253528458c30abed263f5980835426a92f.tar.bz2
serverdata-e7ceef253528458c30abed263f5980835426a92f.tar.xz
serverdata-e7ceef253528458c30abed263f5980835426a92f.zip
Wyara the witch/dark druid/Apothecary - status reset implemented.
Plushroom potion? What's this?
-rw-r--r--npc/008-2-7/wyara.txt69
1 files changed, 66 insertions, 3 deletions
diff --git a/npc/008-2-7/wyara.txt b/npc/008-2-7/wyara.txt
index a875544a..502a5409 100644
--- a/npc/008-2-7/wyara.txt
+++ b/npc/008-2-7/wyara.txt
@@ -3,16 +3,79 @@
// Micksha
// Description:
// Wyara the witch.
-// THIS IS A PLACEHOLDER!
+// TODO: Buy or make plushroom potions
+// TODO: Should she ask for a money comission when resetting status?
008-2-7,27,28,0 script Wyara#008-2-7 NPC_DARK_DRUID,{
+ function confirmStatusReset;
+ function doStatusReset;
speech
l("What? Is there someone?"),
l("Please, leave me alone. I have to pixel potions."),
- lg("I will sell some when you return a bit later.");
-
+ lg("I will sell some when you return a bit later."),
+ l("Unless you are interested in a status reset?");
+ next;
+ do
+ {
+ select
+ l("I'm fine, thanks."),
+ l("I actually could use a status reset!");
+ switch (@menu) {
+ case 2:
+ @plush_count = lognbaselvl(1, 10);
+ @plush_count = @plush_count*12/10;
+ if (confirmStatusReset())
+ doStatusReset();
+ break;
+ }
+ } while (@menu != 1);
+ // Note: There is some dark magic here, because confirmStatusReset() overrides @menu.
close;
+function confirmStatusReset {
+ mesn;
+ mesq l("Let me just have a quick look at you. Hm... I will need @@ @@s to reset your stats.", @plush_count, getitemlink(Plushroom));
+ next;
+ mesn;
+ mesq l("Also, status point reset can't be undone. Do you really want this?");
+ next;
+ if (askyesno() == ASK_YES)
+ {
+ if (countitem(Plushroom) >= @plush_count)
+ return 1;
+ mesn;
+ mesq l("Alright, but... You only have @@ @@, and I need @@ to do the status reset for you!", countitem(Plushroom), getitemlink(Plushroom), @plush_count);
+ }
+ return 0;
+}
+
+function doStatusReset {
+ delitem Plushroom, @plush_count;
+
+ .@wasSP = StatusPoint;
+ resetstatus;
+
+ // Everything was done before dialog in case of forced disconnection
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Thank you."),
+ l("Now stand still... It should not take much time...");
+ if (StatusPoint == .@wasSP)
+ {
+ speech
+ l("It seems that you have no status points to reset!"),
+ l("I'll return the plushroom to you, but please, do not waste my time.");
+ getitem Plushroom, @plush_count;
+ }
+ else
+ {
+ speech
+ l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP),
+ l("Spend it wisely this time."),
+ lg("But you are welcome to reset your stats again if you bring me some more plushrooms!");
+ }
+ return;
+}
+
OnInit:
.sex = G_FEMALE;
.distance = 2;