summaryrefslogtreecommitdiff
path: root/npc/017-1/inspector.txt
blob: fb170dbaf4f4f793dc609c8250a6af9bfb9cfbe3 (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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
// TMW2/LOF Script.
// Author:
//    Jesusalva
// Description:
//  Part of Katze quest (Lv 49 Quest)
// See also
//  npc/config/inspector.txt

017-1,77,104,0	script	Anselmo	NPC_ANSELMO_BR,{
    .@q = getq(LoFQuest_Inspector);
    // TODO: Require orange pants like originally planned?
    //if (getequipcardid(EQI_HEAD_TOP, 0) == OrangeDye)
    mesn;
    mesq l("Hello. My name is Anselmo and I'm investigating a recent string of robberies.");
    next;
    if (BaseLevel < 49) goto L_Close;
    if (.@q == 0) goto L_Start;
    if (.@q == 1) goto L_Arc1;
    if (.@q == 2) goto L_Arc2;
    if (.@q == 3) goto L_Arc3;
    if (.@q == 4) goto L_Interlude;
    if (.@q == 5) goto L_Interlude;
    if (.@q == 6) goto L_Arc4;
    goto L_Close;

L_Start:
    mesn;
    mesq l("Well... Not robberies per se... Just cheese vanishing and being replaced by %s, which is super weird.", getitemlink(GoldenApple));
    next;
    mesn;
    mesq l("You look capable, will you help me solve these robberies? Of course, not for free.");
    next;
    if (askyesno() == ASK_NO)
        goto L_Close;
    mesn;
    mesq l("Excellent. I'd like you to ask around about the recent string of robberies.");
    next;
    mesn;
    mesq l("I'll just... put this tiny coat of arms on you. This will let everyone know you are acting on an official capacity.");
    next;
    mesn;
    mesq l("But remember, they're stealing %s, not shinies, so try to limit your search a bit.", getitemlink(Cheese));
    setq LoFQuest_Inspector, 1, 0;
    next;
    goto L_Close;

L_Arc1:
    .@q2 = getq2(LoFQuest_Inspector);
    if (.@q2 == (1024-1)) {
        mesn;
        mesq l("Cool, you have collected enough evidence. I also have some of my own, so we can proceed.");
        next;
        mesn;
        mesq l("So, what have we concluded thus far?");
        next;
        mesc l("You spend some time going over the evidence with Anselmo. You mention which kind of cheese was stolen and the thief description, the time of the robbery and the victims, the route they used from the portal to the kitchen depot, the scratch marks and the odd aversion to loud instruments the thief had.");
        next;
        mesn;
        mesq l("Excellent. So, this time, we should follow the other lead we had - the %s found in the scene of the crime.", getitemlink(GoldenApple));
        next;
        mesn;
        mesq l("We know our thief is likely either a squirrel or a cat, although one intelligent enough and resourceful enough to make the travel every day. So I'm going to assume it was bought in some store as some sort of prank.");
        next;
        mesn;
        mesq l("Considering the direction they came from, we should check Hurnscald next. Ask them if they saw a squirrel robbing Golden Apples, or anything which could help.");
        next;
        mesn;
        mesq l("Ah, and you don't need to ask all of them, that would be a real bother. Ask around, and try to prioritize shop keepers, unless you feel you found a trail. You can also ask inside La Marine.");
        next;
        mesn;
        mesq l("My authority won't do you any good, but we have good relations with Hurnscald so you should have no problem. Good luck, %s!", strcharinfo(0));
        getexp 40000, 200;
        setq LoFQuest_Inspector, 2, 0;
    } else {
        .@p = bitmask_count(.@q2);
        mesn;
        mesq l("Keep investigating. You've found %d/%d pieces of evidence thus far.", .@p, 10);
        if (!TUTORIAL) {
            next;
            goto L_Close;
        }
        .@THIEF_DESCRIPTION =   1; // Know how thief looked alike
        .@TIME_OF_THEFT     =   4; // Know the time the theft happened
        .@VICTIM_CHEF       =   8; // Talked to Dimond Cove chef
        .@UNDERGROUND_PASS  =  32; // Know the route used in Dimond
        .@RAT_RULEOUT       =  64; // Ruled out the possibility of rats
        .@PORTAL_USE        = 128; // Concluded the Portal was used by thief
        .@TROUPE_DISGUISE   = 256; // Learned about thief "run-in" with musics
        .@SCRATCH_EVIDENCE  = 512; // Learned about the scratch marks left by thief
        if (!(.@q2 & .@THIEF_DESCRIPTION))
            mesc l("- I don't know how the thief looks like.");
        if (!(.@q2 & .@TIME_OF_THEFT))
            mesc l("- I don't know when the theft happened.");
        if (!(.@q2 & .@VICTIM_CHEF))
            mesc l("- I don't know the victims of the thievery.");
        if (!(.@q2 & .@UNDERGROUND_PASS))
            mesc l("- I don't know how the theft happened.");
        if (!(.@q2 & .@RAT_RULEOUT))
            mesc l("- I don't know the possible culprits for this.");
        if (!(.@q2 & .@PORTAL_USE))
            mesc l("- I don't know if the thief is from LoF or not.");
        if (!(.@q2 & .@SCRATCH_EVIDENCE))
            mesc l("- I don't know any supporting evidence from the crome.");
    }
    next;
    goto L_Close;

L_Arc2:
    .@q2 = getq2(LoFQuest_Inspector);
    if (.@q2 == 63 || .@q2 == 127) {
        mesn;
        mesq l("Hmm, none of them saw anything? What did we miss... Oh right, Golden Apples grows in the Desert Canyon as well. Snakes often carry them, although we already discarded the possibility of a snake being the thief.");
        next;
        mesn;
        mesq l("Sorry for wasting so much of your time, but go in Halinarzo and ask about it. Who knows, one of them might have seen our little thief crossing the Eternal Swamps, and it would match the time range if they had to occasionally wait for the floods to stop, and the fact no one in Hurnscald saw anything.");
        next;
        mesn;
        mesq l("But be careful, they won't like an inspector snooping there. In fact, better to limit yourself to asking only to the guards, they're mostly volunteers but they'll help. Ask all of them, don't cut corners!");
        getexp 30000, 250;
        setq LoFQuest_Inspector, 3, 0;
    } else {
        .@LA_MARINE         =   1; // Asked around La Marine
        .@SHOPKEEPERS       =   2; // Asked around shops
        .@GUARDS            =   4; // Asked to guards or police
        .@CIVILIANS         =   8; // Asked around to some civilians
        .@AUTHORITY         =  16; // Asked around to e.g. Airlia or Celeste
        .@FARMERS           =  32; // Asked around to those in the camps
        .@p = bitmask_count(.@q2);
        // Kfahr correction
        if (.@q2 & 64)
            .@p -= 1;
        mesn;
        mesq l("Keep investigating. You've talked to %d/%d groups in Hurnscald thus far.", .@p, 6);
        if (!(.@q2 & .@LA_MARINE))
            mesc l("- Please collect reports from La Marine.");
        if (!(.@q2 & .@SHOPKEEPERS))
            mesc l("- Please collect reports from the shop keepers.");
        if (!(.@q2 & .@GUARDS))
            mesc l("- Please collect reports from the guards and police.");
        if (!(.@q2 & .@CIVILIANS))
            mesc l("- Please collect reports from the civilians.");
        if (!(.@q2 & .@AUTHORITY))
            mesc l("- Please collect reports from Hurnscald authorities.");
        if (!(.@q2 & .@FARMERS))
            mesc l("- Please collect reports from the farmers.");
    }
    next;
    goto L_Close;

L_Arc3:
    .@q2 = getq2(LoFQuest_Inspector);
    if (.@q2 == 31) {
        mesn;
        mesq l("Hmm... Katze is a very reputable cat, I don't believe she would rob, let alone something as mundane as cheese. Something fishy is going on. Or cheesy, should I say.");
        next;
        mesn;
        mesq l("Alright, you should go visit Katze. She's not lactose intolerant, so she could eat cheese, but still, you should give her a gift before going.");
        inventoryplace LeatherSuitcase, 1;
        next;
        mesn;
        mesq l("Here, this %s contains some wood so she may scratch her pawns, some toys, a flask of milk, some steak but not made of Mouboos, as cats are allergic to Mouboo meat... And other gifts from us. Give this to her.", getitemlink(LeatherSuitcase));
        getitembound LeatherSuitcase, 1, 4;
        getexp 30000, 300;
        setq LoFQuest_Inspector, 4, 0;
    } else {
        mesn;
        mesq l("Talk to all guards in Halinarzo, don't cut corners now!");
    }
    next;
    goto L_Close;

L_Interlude:
    mesn;
    mesq l("Have you talked to Katze yet?");
    next;
    goto L_Close;

L_Arc4:
    mesn;
    mesc l("The inspector looks at you with a pale face.");
    mesq l("It's terrible... How could this happen?");
    next;
    // You can come back to Inspector to begin the second part.
    // Use Fairy Hat instead of Inspector Hat?
    mes "";
    mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1;
    next;
    goto L_Close;

L_Close:
    closeclientdialog;
    if (rand2(100) < 2)
        npctalk3 l("And remember to never sit on Paxel! He hates that!");
    else
        goodbye();
    close;

OnInit:
    .distance=5;
    .sex = G_MALE;
    end;
}