summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1/sandra.txt
blob: 205897ac5c1601c3d84fdcad6a551dae8f338241 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Variables used: nibble 3 of QUEST_SouthTulimshar

001-1.gat,110,71,0|script|Sandra|114,{

    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    if (@state >= 2) goto L_Done;
    if (@state == 1) goto L_Progress;

    mes "[Sandra]";
    mes "\"Hunting monsters for potion ingredients can sometimes be a difficult task.\"";
    next;

    set @TEMP, rand(4);
    if(@TEMP == 0) goto L_Opening0;
    if(@TEMP == 1) goto L_Opening1;
    if(@TEMP == 2) goto L_Opening2;
    if(@TEMP == 3) goto L_Opening3;

L_Opening0:
    mes "\"In the outskirts of Tulimshar, there are some scorpions...  I need  help!  Will you help?\"";
    next;
    goto L_Ask;

L_Opening1:
    mes "\"When you venture to the outskirts of Tulimshar, you can spot scorpions.  Will you help me kill some?\"";
    next;
    goto L_Ask;

L_Opening2:
    mes "\"The Scorpion Stinger carries many properties used in potions.  Would you get some for me?\"";
    next;
    goto L_Ask;

L_Opening3:
    mes "\"You look sturdy enough, will you help me get something?\"";
    next;
    goto L_Ask;

L_Ask:
    menu
        "Yes.", L_Yes,
        "No.", L_Close;

L_Yes:
    set @TEMP, rand(3);
    if(@TEMP == 0) goto L_Req0;
    if(@TEMP == 1) goto L_Req1;
    if(@TEMP == 2) goto L_Req2;

L_Req0:
    mes "[Sandra]";
    mes "\"I need 5 Scorpion Stingers.\"";
    next;
    goto L_Set;

L_Req1:
    mes "[Sandra]";
    mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes.  I need you to help me get 5 Scorpion Stingers.\"";
    next;
    goto L_Set;

L_Req2:
    mes "[Sandra]";
    mes "\"Bring me 5 Scorpion Stingers.  I'll give you something if you do!\"";
    next;
    goto L_Set;

L_Set:
    set @state, 1;
    callsub S_Update_Var;
    mes "\"Please get them for me!\"";
    goto L_Close;

L_Progress:
    if (countitem("ScorpionStinger") < 5)
        goto L_NotEnough;
    mes "[Sandra]";
    mes "\"Excellent! You brought me 5 Scorpion Stingers!";
    mes "Here's something for you.\"";
    getinventorylist;
    if (@inventorylist_count + (countitem("ScorpionStinger") == 5) - (countitem("Arrow") == 0) > 99)
        goto L_TooMany;
    delitem "ScorpionStinger", 5;
    getitem "Bow", 1;
    getitem "Arrow", 100;
    set @state, 2;
    callsub S_Update_Var;
    goto L_Close;

L_NotEnough:
    mes "[Sandra]";
    mes "\"Please hurry and bring me 5 Scorpion Stingers.\"";
    goto L_Close;

L_Done:
    mes "[Sandra]";
    mes "\"Thank you for all your help!\"";
    goto L_Close;

L_Close:
    set @TEMP, 0;
    set  @state, 0;
    close;

L_TooMany:
    next;
    mes "[Sandra]";
    mes "\"You don't have room for my reward.  I'll wait until you do.\"";
    goto L_Close;

S_Update_Var:
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@state << NIBBLE_3_SHIFT));
    return;
}