summaryrefslogtreecommitdiff
path: root/npc/008-2-7/wyara.txt
blob: 5aa5c3f446df6529b7e869638ca9228052e9550a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Evol scripts.
// Author:
//    Micksha
// Description:
//    Wyara the witch.
// 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	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."),
        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 = GENDER_MALE;
    .distance = 4;
    end;
}