summaryrefslogtreecommitdiff
path: root/npc/027-2_Caretakers_House/lover.txt
blob: c6d1d2eea9a3e9eb400019410ab876e70a60978a (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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
027-2.gat,43,73,0	script	Savaric	317,{

	set @Graveyard_Inn_MASK, NIBBLE_1_MASK;
	set @Graveyard_Inn_SHIFT, NIBBLE_1_SHIFT;

	set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);

	set @Graveyard_Inn_Woman_MASK, NIBBLE_0_MASK;
	set @Graveyard_Inn_Woman_SHIFT, NIBBLE_0_SHIFT;

	set @woman, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Woman_MASK) >> @Graveyard_Inn_Woman_SHIFT);

	set @Graveyard_Inn_Golbanez_MASK, NIBBLE_4_MASK;
	set @Graveyard_Inn_Golbanez_SHIFT, NIBBLE_4_SHIFT;

	set @golbanez, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Golbanez_MASK) >> @Graveyard_Inn_Golbanez_SHIFT);

	//TODO: determine sane values
	set @CRYSTAL_AMOUNT, 300; //200?
	set @CRYSTAL_EXP, 100000;
	set @DIAMOND_AMOUNT, 10; // caution, this value needs to be the same as in the innkeepers script!

	if (@state >= 7) goto L_Have_Soul;
	if (@state == 6) goto L_Want_Soul;
	if (@state == 5) goto L_Apologize;
	if (@state == 4) goto L_Waiting;
	if (@state == 3) goto L_Golb;
	if (@state == 2) goto L_News;
	if (@state == 1) goto L_Crystals;

	mes "You see a dead man hanging. This place is creepy!";
	next;
	mes "Suddenly the man opens his eyes and look at you.";
	next;
	mes "[Hanged Man]";
	mes "\"Oh, hello. Nice to see you - I seem to be dead, but I don't know why and why I'm still consciousness. This is very interesting.\"";
	menu
		"INTERESTING? Are you crazy?",-;
	mes "[Hanged Man]";
	mes "\"Well, as you mention it, it is quite annyoing and uncomfortable. Would you mind to help me coming down on the floor?\"";
	next;
	mes "You take a step towards him, but some invisible force holds you back.";
	next;
	mes "[Hanged Man]";
	mes "\"Oh, someone is holding you back with magic! I sense a really dark and mighty power. What has happened!?\"";
	next;
	mes "\"Can I ask you for a favor? Can you bring me lots of dark crystals? You might need to ask a dark mage for it. I want to try to break the barrier.\"";
	set @state, 1;
	callsub S_Update_Mask;
	close;

L_Crystals:
	mes "[Hanged Man]";
	mes "\"Ah, you're back! Did you get the dark crystals?\"";

	if (countitem("DarkCrystal") == 0)
		menu
			"Not yet.", L_Close;

	if (countitem("DarkCrystal") < @CRYSTAL_AMOUNT)
		goto L_Not_Enough_Crystals;

	delitem "DarkCrystal", countitem("DarkCrystal");
	getexp @CRYSTAL_EXP, 0;
	next;
	mes "\"Oh, I can feel them! Please lay them down on the floor.\"";
	next;
	mes "You lay your dark crystals down on the floor and step back, nervously expecting the coming.";
	next;
	mes "The hanged man seems very concentrated now, which looks absurd with him hanging there.";
	next;
	mes "The dark crystals start to glow and buzz. You take another step back.";
	next;
	mes "The buzzing turns louder and louder, so you can't hear the word, the hanged man is calling now.";
	next;
	heal -300, 0;
	mes "The crystals explode and hit you!";
	if (hp <= 0)
		close;
	next;
	mes "You fall down on the floor and blink hectically to regain your eyesight again.";
	next;
	mes "[Hanged Man]";
	mes "\"Hello? You're ok? I'm sorry, something went wrong. It seems, not only there is a magical barrier, but also my manaflow is blocked. I don't know, if this is because I'm dead or part of the barrier spell.\"";
	next;
	mes "\"I never was dead before, so I can't be sure. But I was able to access my magic - it just got out of control in the critical moment.\"";
	next;
	mes "\"This is fascinating!\"";
	menu
		"Ok, you are crazy!",-,
		"Yes, it is very fascinating to be blown up!",-,
		"I NEARLY DIED! AND YOU THINK, THIS IS FASCINATING?!",-;
	mes "[Hanged Man]";
	mes "\"I sometimes forget the fact, not everybody is fascinated by the riddles of magic. Please forgive me.\"";
	next;
	mes "\"And I even didn't introduce myself! I am very sorry for my rude behavior!\"";
	next;
	mes "\"My name is Savaric, first apprentice of the Great Demon Summoner Ymbert.\"";
	next;
	mes "\"If you can forgive me my behaviour, may I ask you for another favor? Can you please search for someone or something in this inn, that could be the source of this dark magic?\"";
	set @state, 2;
	callsub S_Update_Mask;
	close;

L_News:
	mes "[Savaric]";
	mes "\"Welcome back. Did you find a possible source for the dark magic?\"";
	if ((@woman < 6) && (@golbanez == 0))
		menu
			"Not yet, I'm still searching.",L_Close;

	if ((@woman < 6) && (@golbanez > 0))
		menu
			"Yes, let me tell you.",L_Golbanez,
			"I don't think so",L_Close;

	if ((@woman >=  6) && (@golbanez == 0))
		menu
			"Can you tell me about your relationship to Reid?",L_Reid,
			"Not yet, I'm still searching.",L_Close;

	if ((@woman >=  6) && (@golbanez >= 0))
		menu
			"Can you tell me about your relationship to Reid?",L_Reid,
			"Yes, let me tell you.",L_Golbanez,
			"I don't think so",L_Close;

L_Golbanez:
	mes "You're explaining how you came in this inn and what Golbanez said to you.";
	next;
	mes "[Savaric]";
	mes "\"This... this are very disturbing news. Playground he said? Mh.. \"";
	next;
	mes "\"Savaric seems to be completely absorbed in his thoughts.\"";
	menu
		"Hello? Are you still there?",-,
		"Excuse me, I don't want to interrupt you, but can explain me what's going on? I'm confused",-,
		"Hey! I'm talking with you!",-;
	mes "Savaric winces.";
	next;
	mes "\"Oh, right - I was just thinking. It makes me feel uncomfortable to hear Golbanez being involved in this.\"";
	next;
	mes "\"I told you, I'm the apprentice of a demon summoner, remember? Well, this includes learning about the astral beings in this world.\"";
	next;
	mes "\"And Golbanez - he is a very powerful being, a Demi-God, with a very questionable sense of humor. He was worshipped by a group of cultist some hundred years ago - uhm, some hundreds years ago from my lifetime, I mean.\"";
	next;
	mes "\"But most of his adherents died, when he thought it would be funny to test their loyality by sending them on a journey over the sea to a paradise island he promised them - of course there was no such island.\"";
	next;
	mes "\"Maybe now you understand what I mean with questionable sense of humor.\"";
	next;
	mes "\"But on the other hand, he can grand great power to those who are capable to deal with him and offer him enough for his service. Trying to do that would be a risky undertaking in any case.\"";
	next;
	mes "\"He told you, this inn was one of his favorite playgrounds - so it seems he was playing one of his evil games with the people in this inn. And now, he resurrected our memories to this parody of life!\"";
	next;
	mes "\"" + strcharinfo(0) + "! I need your help again! Please return to Golbanez and try to get out of him what was happening here. But be careful when negotiating, he will demand a service in return.\"";
	set @state, 3;
	callsub S_Update_Mask;
	close;

L_Golb:
	mes "[Savaric]";
	mes "\"Good to see you back my friend. What did you find out?\"";
	if (@golbanez < 5)
		menu
			"I'm still working on getting all the stuff he wants.",L_Close;
	menu
		"Now I know what happened. I'll tell you.",-,
		"I'm sorry to tell you, but this was all your fault.",-;

	mes "You tell about what Golbanez showed to you.";
	next;
	mes "[Savaric]";
	mes "\"I.. I can't believe.. My master told me, I need to be careful because of my temper - but I never thought, it would lead me to do such a terrible mistake. Oh, Reid - and all the people in the inn! What have I done?!\"";
	next;
	mes "He seems pained by his guilt.";
	next;
	mes "[Savaric]";
	mes "\"" + strcharinfo(0) + ", please, can you go to Reid and tell her about what I've done? And then ask her if she will ever be able to forgive me?\"";
	next;
	mes "\"But wait. It is not enough just to ask for forgiveness. Please, can you bring her " + @DIAMOND_AMOUNT + " diamonds? They symbolize my pure feelings for her even.\"";
	set @state, 4;
	callsub S_Update_Mask;
	close;

L_Waiting:
	mes "[Savaric]";
	mes "\"Have you already brought the diamonds to Reid?\"";
	close;

L_Apologize:
	mes "[Savaric]";
	mes "\"Oh thank you! I thank you so much! Reid came here to talk to me.\"";
	next;
	mes "\"She forgave me! I'm so happy!\"";
	next;
	mes "\"You did so much for me, can I ask you for one last favor?\"";
	next;
	mes "\"Golbanez took my soul and I want it back. You were very clever how you negotiated with him so far. Could you get my soul back for me?\"";
	set @state, 6;
	callsub S_Update_Mask;
	close;

L_Want_Soul:
	if (@golbanez >= 7) goto L_Soul;
	mes "[Savaric]";
	mes "\"Welcome back! Are you still working on getting my soul back?\"";
	menu
		"I'm doing my best",-,
		"Yes, but it isn't easy.",-;

	mes "[Savaric]";
	mes "\"Thank you so much! I'm counting on you!\"";
	close;

L_Soul:
	mes "[Savaric]";
	mes "\"My soul came back! Oh thank you!\"";
	next;
	mes "\"Please take this as a symbol of my gratitude.\"";
	getinventorylist;
	if (@inventorylist_count == 100) goto L_Full_Inv;
	//TODO: determine and give reward
	getitem "Acorn", 1;
	set @state, 7;
	callsub S_Update_Mask;
	close;

L_Have_Soul:
	mes "[Savaric]";
	mes "\"I'll be in your debt forever. Thank you so much.\"";
	close;

L_Reid:
	mes "[Savaric]";
	mes "\"Relationship? Well, she is the innkeeper of this inn and I'm a patron. There is nothing more about this to say.\"";
	close;

L_Not_Enough_Crystals:
	mes "It seems, you managed to get some, but not enough. Can you bring me more?";
	close;

L_Full_Inv:
	mes "[Savaric]";
	mes "\"Oh, you can't carry anything more. Come back when you can take it.\"";
	close;

L_Close:
	close;

S_Update_Mask:
        set QUEST_Graveyard_Inn,
        	(QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
                | (@state << @Graveyard_Inn_SHIFT);
        return;
}