summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1/eomie.txt
blob: 99085bcf77cbd723e5bd40478b1dae242bffdc7e (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// A professor at Tulimshar's magic academy, involved in quest:
// Anwar needs a magic fertilizer for his field
// Quest uses Nibble 3 of QUEST_NorthTulimshar
// Author: Jenalya
// state 1: Anwar sent to Tinris for help to get a magic fertilizer
// state 2: Tinris asked for chocolate cake as present for his girlfriend
// state 3: Tinris asked for ingredients for the fertilizer
// state 4: Tinris gave you the fertilizer
// state 5: Anwar tried it out and it doesn't work well, sent you back to Tinris
// state 6: Tinris asked for more ingredients for a new try
// state 7: Tinris says it's really hard, gives you the fertilizer and tells you to ask Eomie to cast a spell on it
// state 8: Eomie sends you to get some stuff so she can interrupt her spell on the spot of grass
// state 9: Eomie casted a spell on the fertilizer
// state 10: Anwar used it and it worked. he asks you to help him preparing a thank-you-gift for each Tinris and Eomis
// state 11: Anwar asked to bring present to Tinris
// state 12: gave present to Tinris
// state 13: Anwar asked to bring present to Eomie
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done

001-1,71,23,0|script|Eomie|164
{
    set @state, ((QUEST_NorthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    set @grass_amount, 5;
    set @water_amount, 2;
    set @ice_amount, 2;

    set @silk_exp, 600;

    if (@state >= 14) goto L_Done;
    if (@state >= 9) goto L_CastedSpell;
    if (@state == 8) goto L_GetStuff;

    mes "[Eomie]";
    mes "\"I maintain this little oasis in the desert.\"";
    if (@state != 7)
        goto L_Close;
    menu
        "I need to learn a spell to use Tinris' magic fertilizer. Can you help me out?",L_Next;

L_Next:
    mes "[Eomie]";
    mes "\"Oh? Well, that's a rather difficult task.";
    mes "I'd be glad to help you, but unfortunately, I can't. If I were to interrupt the magic I use to keep this alive, it would die.\"";
    next;
    mes "\"It's unusually hot at the moment – even for this desert area – so it's really out of the question.\"";
    menu
        "Is there any chance you could help me?",L_Continue;

L_Continue:
    mes "She hesitates.";
    set @state, 8;
    callsub S_Update_Mask;
    goto L_GetStuff;

L_GetStuff:
    // @state == 8
    mes "[Eomie]";
    mes "\"I could try to briefly interrupt my magic and then cast the spell on the fertilizer, but I would need to prepare the grass beforehand.";
    mes "Bring me " + @grass_amount + " " + getitemlink("GrassSeed") + ", " + @water_amount + " " + getitemlink("BottleOfWater") + ", and " + @ice_amount + " " + getitemlink("IceCube") + ".\"";
    menu
        "I've got everything.",L_More,
        "Where can I get Grass Seeds?",L_Hurnscald,
        "How can I get Ice Cubes? We're in the middle of the desert!",L_Mine,
        "Ok. I'll go and get them.",L_Close;
L_More:
    if ((countitem("GrassSeed") < @grass_amount) || (countitem("BottleOfWater") < @water_amount) || (countitem("IceCube") < @ice_amount))
        goto L_NoItem;

    delitem "GrassSeed", @grass_amount;
    delitem "BottleOfWater", @water_amount;
    delitem "IceCube", @ice_amount;
    set @state, 9;
    callsub S_Update_Mask;
    mes "[Eomie]";
    mes "\"Very good!\"";
    mes "She takes the ingredients you brought her and uses them to cast a cool mist into the air.";
    misceffect sfx_magic_nature;
    next;
    mes "[Eomie]";
    mes "\"That should last long enough to keep the plants alive while I cast the spell on the fertilizer. Besides, I can replant anything that dies with the seeds you brought me.\"";
    next;
    mes "She takes the fertilizer and casts some invocations. After a minute, she hands the now-glowing substance back to you.";
    mes "[Eomie]";
    mes "\"That should work now. I'm glad you're taking care of the plants! Not enough people do that nowadays.\" %%1";
    goto L_Close;

L_Hurnscald: // player asked how to get Grass Seeds
    mes "[Eomie]";
    mes "\"Squirrels tend to pick up " + getitemlink("GrassSeed") + " as they gather food. You can find them around Hurnscald if you ride the ferry over.\"";
    goto L_Close;

L_Mine: // player asked how to get Ice Cubes
    mes "[Eomie]";
    mes "\"Quite the quandary – isn't it? Naturally, you can easily find them on the continent of Kaizei, which is far up north and covered with snow most time of the year. But it might be a bit difficult to get there.\"";
    next;
    mes "\"I heard that Ice Goblins were seen in the caves surrounding Nivalis. Maybe you can find " + getitemlink("IceCube") + " there.\"";
    goto L_Close;

L_CastedSpell: // @state >= 9 but below 14
    mes "[Eomie]";
    mes "\"Thankfully, the grass wasn't damaged. I hope Anwar finds the magic fertilizer to be useful.\"";
    if (@state != 13)
        goto L_Close;
    menu
        "It was. He even created this Silk Headband as a present for you!",L_Present,
        "(Mumble something and leave)",L_Close;

L_Present:
    if (countitem("SilkHeadband") < 1)
        goto L_NoItem;
    delitem "SilkHeadband", 1;
    getexp @silk_exp, 0;
    set @state, 14;
    callsub S_Update_Mask;
    mes "[Eomie]";
    mes "\"Oh, that's so nice of him! Please tell him that I really like it!\"";
    mes "She smiles.";
    goto L_Close;

L_Done: // @state >= 14
    mes "[Eomie]";
    mes "\"Hello! I'm happy to see someone like you so dedicated to the environment.\" %%8";
    goto L_Close;

L_NoItem:
    mes "[Eomie]";
    mes "\"Where is it?\" %%3";
    goto L_Close;

L_Close:
    set @state, 0;
    set @grass_amount, 0;
    set @water_amount, 0;
    set @ice_amount, 0;
    close;

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