summaryrefslogtreecommitdiff
path: root/npc/001-1/sophialla.txt
blob: 35b81ac9aee521addeb2e0c6b35359addf80789c (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
// Evol scripts.
// Author:
//    Micksha
//    WildX
// Description:
//    Sophialla, the connection between Artis and the Brotherhood in Hurns.
// THIS IS A PLACEHOLDER!

001-1,73,40,0	script	Sophialla#001-1	NPC_SOPHIALLA,{
    .@q=getq(General_Brotherhood);
    if (!.@q)
    {
        speech
            l("Hello."),
            l("Can't you see I am reading? Please go, you're blocking the sunlight.");
        close;
    }
    speech
        l("Hello."),
        l("Unless you have something very specific to say, I am reading. Please move out of the light.");
    // TODO: Use a token to know password or whatever
    // PS. "Sagratha" is not a typo.
    select
        l("Sorry to disturb you."),
        rif(getq(ArtisQuests_MonaDad) == 3, l("Sagratha is great.")),
        l("What do you mean by 'something specific'?");

    if (@menu == 2)
    {
        speech
            l("Look, I didn't want to have to spell it out for you, but you seem harmless enough... and I might need your help."),
            l("You've been to the sewers, right?"),
            l("Their layout mirrors the city above. Go East, into the hills by the cliffside."),
            l("You will find a manhole. No idea why they put one all the way out there, but it's been very useful for us."),
            l("Go inside and follow that section of the sewer. You'll know what you're looking for when you find it."),
            l("You may want to look into this before you decide that the Legion is your friend just because they gave you some nice stuff.");
        compareandsetq General_Brotherhood, 1, 2;
    }
    else if (@menu == 3)
    {
        speech
            l("Are you thick? I mean exactly what I say!"),
            l("I'm afraid you'll need to figure it out on your own.");

        if (@sophiahalla_needhelp) {
            speech
            l("Actually... if you want to be useful, there's someone I've been waiting for who hasn't been showing up."),
            l("Do you think I'm just here reading? There's much better places in Artis to be sitting down with a book."),
            l("Could you find someone by the name of Mundane? "),
            l("He lives in the north-east quarter with his daughter, Mona.");
        }
        @sophiahalla_needhelp=true;
        next;
        mesc l("%s sighs.", .name$);
    }

    speech
        lg("If you don't know it, just go, please.");
    close;

OnLegionComplete:
    restorecam;
    mesn "???";
    mesc l("A strange voice seems to be calling out your name.");
    next;
    // NOTE: Sophialla is more than 15 tiles of distance from player
    // Server refuses to send client data about where she is and that makes
    // setcamnpc fail. This is why I set .alwaysVisible attribute to true.
    // Note: you can work around with coordinates, but she won't be drawn.
    setcamnpc "Sophialla#001-1";
    {
        speech
            l("I see you've been busy running errands for the Legion."),
            l("You know, this building used to be the town hall before they moved in."),
            l("They arrived from Esperia when I was young. Set up base here to protect us from northern raiders."),
            l("The raiders lost, like they always do, but the Legion never left. Now they run the city."),
            l("I don't want to put ideas in your head, but don't just assume they're your best friends because of that shiny armour you got."),
            l("If you're useful they won't care what you look like, but they've been talking about Artis being a city for humans... only."),
            l("I don't want to put ideas in your head, but don't just assume they're your best friends because of that shiny armour you got."),
            l("They like to... take control of things. The city of Artis fell into their grasp and now this whole new continent, Ancea is their target."),
            l("If you are to go with them, I would try to keep them in check. From within."),
            l("There is an organisation that calls itself 'The Brotherhood of Argaes', Argaes is the name of the region that the Legion is exploring."),
            l("We've been communicating with them. They seem like good people who just want to trade and be left alone."),
            l("But, if the Legion starts bothering them, maybe we could work together to push them back. Out their land and even out of Artis.");
        select
            l("Why should I just follow you instead of the Legion? They helped me a lot."),
            l("You are right. The Legion seems suspicious. They tried to take me in too quickly.");
            mes "";

        switch (@menu) {
        case 1:
            speech
            l("Yes, they did help you. But do you know why? Of course not, you don't even know who you are!"),
            l("I heard about your story. I think I may know something about your past, but if I am right you will find out on your own soon."),
            l("Go to Argaes with this new expedition. In the end, you will either turn out a mindless follower of the Legion or you will see the truth.");
            setq General_Brotherhood, 1;
            break;
        case 2:
        speech
            l("I suspect they had a reason for this. I can't tell for sure, but I have an idea."),
            l("I heard about your story. I think I may know something about your past, but you will need to find out from the Brotherhood themselves."),
            l("Go to Argaes with this new expedition. In the end, you will either see the truth or turn out a mindless follower of the Legion.");
            setq General_Brotherhood, 1;
            break;
        }
        return;
    }

    restorecam;
    closeclientdialog;
    close;

OnInit:
    .bodytype = BODYTYPE_2;
    .distance = 2;
    .alwaysVisible = true;
    end;
}