summaryrefslogtreecommitdiff
path: root/world/map/npc/029-2/morgan.txt
blob: 085542cec3a439a9aba580940f1ff4ec73d9fb46 (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
// Tut mage
// Author: Wushin
// Gains Access to Magic School
// See 024-2 clean that shit up
// Morgan, liana
029-2,105,57,0|script|MorganDebug|355
{
    mes "[Morgan Debug]";
    mes "Reset?";
    menu
        "Yes.", L_Reset,
        "No.", L_End;
L_Reset:
    set QL_MORGAN, 0;
    mes "Reset!";
    goto L_End;

L_End:
    end;

OnInit:
    if (!debug)
        disablenpc "MorganDebug";
    end;
}
029-2,101,57,0|script|Morgan#_M|355
{
    callfunc "PCtoNPCRange";
    callfunc "MorganState";
    if (Int >= 5)
        goto L_Learn;
    goto L_NotMagic;

L_Learn:
    if (QL_MORGAN == 0)
        goto L_NotSeen;
    if (QL_MORGAN == 1)
        goto L_Seen;
    if (QL_MORGAN == 2)
        goto L_Started;
    if (QL_MORGAN == 3)
        goto L_CastOnce;
    if (QL_MORGAN == 4)
        goto L_LearningDone;
    goto L_Close;

L_NotSeen:
    set QL_MORGAN, 1;
    mes "[Morgan]";
    mes "\"Welcome to the magic school of Candor\"";
    mes "\"My name is Morgan, I'm Head of Wizardry.\"";
    mes "\"You appear to have the markings to use magic.\"";
    mes "\"Granted you are still to young to cast spells.\"";
    mes "\"But we can teach you to use simple magic devices.\"";
    mes "\"Would you like to learn some apprentice skills?\"";
    menu
        "Yes.", L_Start,
        "Maybe later", L_Close;

L_Seen:
    mes "[Morgan]";
    mes "\"Have you returned to learn some magic?\"";
    menu
        "Yes.", L_Start,
        "Maybe later", L_Close;

L_NotMagic:
    mes "[Morgan]";
    mes "\"Hrmm you don't appear to posses enough magical talent to teach.\"";
    goto L_Close;

L_Start:
    set QL_MORGAN, 2;
    mes "\"Great, lets begin your first lesson.\"";
    getitem 1171, 1;
    mes "\"This is a wand, there are many like it but this one is now yours.\"";
    mes "\"Various wands and staffs are found throughout the land with many different strengths and weaknesses.\"";
    mes "\"To use the wand you need to have it equipped and speak the incantation to let it tap into your mana.\"";
    mes "\"As the power of your magic grows so will the spells you can cast.\"";
    mes "\"Lets start with a basic wand attack. " + getspellinvocation("wand") + "\"";
    mes "\"Equip the wand and lets try out that spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    mes "\"Speak to me again once you've cast the spell.\"";
    goto L_Close;

L_Started:
    mes "[Morgan]";
    mes "\"Lets start with a basic wand attack. " + getspellinvocation("wand") + "\"";
    mes "\"Equip the wand and lets try out that spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    mes "\"Speak to me again once you've cast the spell.\"";
    goto L_Close;

L_CastOnce:
    mes "[Morgan]";
    mes "\"Ok, good job! Looks like you have good mana flow.\"";
    mes "\"Onto the next lesson. Now that you have " + getspellinvocation("wand") + " cast,\"";
    mes "\"Each time you attack the wand will convert a bit of you mana into a magic bolt.\"";
    mes "\"After so many attacks, you will need to recast the invocation to stay attuned to the wand.\"";
    mes "\"(Logging out will also cancel any spell effects currently active in-game.).\"";
    goto L_Close;

L_LearningDone:
    mes "[Morgan]";
    mes "\"" + getspellinvocation("wand") + " is a basic wand attack.\"";
    mes "\"A Wand must be equipped to use the spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    mes "\"I've taught you all I can for now. You should visit the Mana Seed north west of Hurnscald.\"";
    goto L_Close;

L_Close:
    close;
}