summaryrefslogtreecommitdiff
path: root/npc/017-1/inspector.txt
blob: ce0bba1aea89a9d6313a4814f5156a2231baa6c9 (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
// 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);
    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;
    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 60000, 600;
        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) {
        mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1;
    } 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:
    if (!is_staff()) end;
    //...
    // ... ... ... ......
    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.");
    getexp 60000, 600;
    setq LoFQuest_Inspector, 3, 0;
    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;
}