// Variables used: nibble 2 of QUEST_SouthTulimshar

001-1.gat,135,42,0|script|Vincent|113,
{
    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);

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

L_Convince_Vincent_First:
    mes "[Vincent]";
    mes "\"I'm making an action figure. I'm almost done with it.\"";
    next;

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

L_Opening1:
    mes "\"I just need 10 more Bug Legs to finish my action figure!\"";
    next;
    goto L_Ask;

L_Opening2:
    mes "\"This maggot action figure is awesome! I just need to attach 10 Bug Legs.\"";
    next;
    goto L_Ask;

L_Opening3:
    mes "\"This is a great action figure! A must have! All I need is a few parts...\"";
    next;
    goto L_Ask;

L_Opening4:
    mes "\"Can you get me 10 Bug Legs? I need them to replace the action figure parts.\"";
    next;
    goto L_Ask;

L_Ask:
    mes "\"Will you help me find 10 Bug Legs?\"";
    next;
    menu
        "Yes.", L_Sure,
        "No.", L_Close;

L_Sure:
    set @state, 1;
    callsub S_Update_Var;
    set @TEMP, rand(4);
    if(@TEMP == 1) goto L_Req2;
    if(@TEMP == 2) goto L_Req3;
    if(@TEMP == 3) goto L_Req4;
    goto L_Req1;

L_Req1:
    mes "[Vincent]";
    mes "\"Thank you!\"";
    next;
    goto L_Wait;

L_Req2:
    mes "[Vincent]";
    mes "\"I don't know how to thank you enough!\"";
    next;
    goto L_Wait;

L_Req3:
    mes "[Vincent]";
    mes "\"I will thank you when I get them!\"";
    next;
    goto L_Wait;

L_Req4:
    mes "[Vincent]";
    mes "\"I'm sure I will give a small reward.\"";
    next;
    goto L_Wait;

L_Wait:
    mes "\"Now please go get me 10 Bug Legs.\"";
    goto L_Close;

L_Progress:
    if(countitem("BugLeg") >= 10)
        goto L_Have;
    mes "[Vincent]";
    mes "\"Please help me collect 10 Bug Legs! I need them to complete my action figure.\"";
    goto L_Close;

L_Have:
    mes "[Vincent]";
    mes "\"Excellent! Finally I can complete the model!!\"";
    next;
    if(countitem("BugLeg") < 10)
        goto L_Progress;
    delitem "BugLeg", 10;
    set Zeny, Zeny + 1000;
    set @state, 2;
    callsub S_Update_Var;

    mes "[Vincent]";
    mes "\"Here you go, a little of my appreciation!\"";
    mes "";
    mes "[1000 gold]";
    goto L_Close;

L_Done:
    mes "[Vincent]";
    mes "\"Thanks for your help!\"";
    goto L_Close;

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

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