// 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;
}