View difference between Paste ID: F5Y4iuYa and sq1REiN3
SHOW: | | - or go back to the newest paste.
1-
#define SCR_NEWLINE
1+
define SCR_NEWLINE
2
myx = writingx
3
myy = (myy + vspacing)
4
lineno = (lineno + 1)
5
define SCR_TEXTSETUP
6-
#define SCR_TEXTSETUP
6+
7
mycolor=argument1 // variable color
8
writingx = argument2 //top left x coord
9
writingy = argument3 //top left y coord
10
writingxend = argument4 //right boundingbox
11
shake=argument5 //amount of text shaking
12
textspeed=argument6 //rate of text parse
13
txtsound=argument7 //what default sound
14
spacing=argument8 //text spacing
15
vspacing=argument9 //vertical spacing yep, old default was 25
16
17
define SCR_TEXT
18-
#define SCR_TEXT
18+
19
{
20
case argument0=0:
21
        break;
22
case argument0=1:
23
     global.msg[0]="\XLa, la.^3 &Time to wake&up and\R smell\X &the^4 pain./";
24
     global.msg[1]="* Though^2.^4.^6.^8.&It's still a&little shaky./";
25
     global.msg[2]="fhuehfuehfuehfuheufhe/%";
26
     global.msg[3]="%%%";
27
     break;
28
case argument0=2:
29
     global.msg[0]="* TestMonster and its cohorts&draw near!";
30
     global.msg[1]="%%%";
31
     break;
32
case argument0=3: //monster names
33
     global.msg[0] = " "
34
     if global.monster[0] = 1 then 
35
     {
36
     global.msg[0]="   * " + global.monstername[0];
37
     if global.monstertype[0] = global.monstertype[1] or global.monstertype[0] = global.monstertype[2] then global.msg[0]+=" A"
38
     }
39
     global.msg[0]+=" &"
40
     if global.monster[1] = 1 then
41
     {
42
     global.msg[0]+="   * " + global.monstername[1];
43
     if global.monstertype[1] = global.monstertype[0] then global.msg[0]+=" B"
44
     }
45
     global.msg[0]+=" &"
46
     if global.monster[2] = 1 then 
47
     {
48
     global.msg[0]+="   * " + global.monstername[2]; 
49
     if global.monstertype[2] = global.monstertype[1] then global.msg[0]+=" C"
50
     }
51
     global.msg[1]="%%%";
52
     break;
53
54
case argument0=7:
55
     global.msg[0]="   * Spare"
56
     if global.mercy=0 then global.msg[0]+="&   * Flee"
57
     break;
58
59
case argument0=9: //itemnames for first menu
60
     global.msg[0] = "   * " + global.itemnameb[0] + "     "
61
     if global.item[1]!=0 then global.msg[0]+= "* " + global.itemnameb[1]
62
     global.msg[0]+=" &"
63
     if global.item[2]!=0 then global.msg[0]+= "   * " + global.itemnameb[2] +"     "
64
     if global.item[3]!=0 then global.msg[0]+= "* " + global.itemnameb[3]
65
     global.msg[0]+=" &                     PAGE 1"
66
     global.msg[1]="%%%"
67
     break;
68
case argument0=10: //itemnames for second menu
69
     global.msg[0] = "   * " + global.itemnameb[4] + "     "
70
     if global.item[5]!=0 then global.msg[0]+= "* " + global.itemnameb[5]
71
     global.msg[0]+=" &"
72
     if global.item[6]!=0 then global.msg[0]+= "   * " + global.itemnameb[6] +"     "
73
     if global.item[7]!=0 then global.msg[0]+= "* " + global.itemnameb[7]
74
     global.msg[0]+=" &                     PAGE 2"
75
     global.msg[1]="%%%"
76
     break;
77
     
78
case argument0=11: //recovery item add
79
     global.msg[0] += " &"
80
     if global.item[8] < 9990 then
81
     {
82
     global.msg[0] += "* You recovered " + string(global.item[8]) + " HP!/%"
83
     }
84
     else global.msg[0] += "* Your HP was maxed out./%"
85
     break;
86
87
case argument0=12: //throwing away an item
88
     i=round(random(14))
89
     if i=0 then global.msg[0]="* You bid a quiet farewell&  to the " + global.itemname[global.menucoord[1]] + "."
90
     if i=1 then global.msg[0]="* You put the " + global.itemname[global.menucoord[1]] + "&  on the ground and gave it a&  little pat."
91
    // if i=2 then global.msg[0]="* Nothing but somber goodbyes&  for the " + global.itemname[global.menucoord[1]] + "."
92
     if i=2 then global.msg[0]="* You threw the " + global.itemname[global.menucoord[1]] + "&  on the ground like the piece&  of trash it is."
93
     if i=3 then global.msg[0]="* You abandoned the &  " + global.itemname[global.menucoord[1]] + "."
94
     if i>3 then global.msg[0]="* The " + global.itemname[global.menucoord[1]] + " was&  thrown away."
95
     global.msg[0]+="/%"
96
     break;
97
     
98
99
case argument0=14: //RUNNING AWAY
100
     i=round(random(20))
101
     if i=0 or i=1 then global.msg[0]="   * I'm outta here."
102
     if i=2 then global.msg[0]="   * I've got better to do."
103
     if i>3 then global.msg[0]="   * Escaped..."
104
     if i=3 then global.msg[0]="   * Don't slow me down."
105
     break;
106
     
107
case argument0=15: //save pt
108
     if room=room_ruins1 then global.msg[0]="* (The shadow of the ruins&  looms above^1, filling you with&  determination.)/%%"
109
     if room=room_ruins7 then global.msg[0]="* (Playfully crinkling through&  the leaves fills you with&  determination.)/%%"
110
     if room=room_ruins12A then { global.msg[0]="* (Knowing the mouse might one&  day leave its hole and&  get the cheese...)/"; global.msg[1]="* (It fills you with&  determination.)/%%"; }
111
     if room=room_ruins19 then global.msg[0]="* (Seeing such a cute^1, tidy&  house in the RUINS gives&  you determination.)/%%"
112
     if global.flag[202]>=monsterpopulation1 then global.msg[0]="* Determination./%%"
113
     break;
114
     
115
case argument0=16: //putting away an item
116
     i=round(random(14))
117
     script_execute(scr_itemname)
118
     if i<=12 then global.msg[0]="* The " + global.itemname[global.menucoord[6]] + " was&  put away."
119
     if i>12 then global.msg[0]="* The " + global.itemname[global.menucoord[6]] + " was&  tossed inside recklessly."
120
     if i>13 then global.msg[0]="* The " + global.itemname[global.menucoord[6]] + " was&  placed thoughtfully inside."
121
     global.msg[0]+="/%"
122
     break;
123
     
124
case argument0=17: //getting an item
125
     i=round(random(14))
126
     script_execute(scr_storagename,300)
127
      if i<=12 then global.msg[0]="* The " + global.itemname[global.menucoord[7]] + " was&  taken out."
128
     if i>12 then global.msg[0]="* The " + global.itemname[global.menucoord[7]] + " was&  grabbed impatiently."
129
     if i>13 then global.msg[0]="* The " + global.itemname[global.menucoord[7]] + " was&  taken out and held like a&  small puppy."
130
     global.msg[0]+="/%"
131
     break;
132
133
case argument0=18: //can't carry any more
134
        global.msg[0]="* You can't carry any more./%%"
135
        break;
136
        
137
case argument0=19: //can't carry any more
138
        global.msg[0]="* The box is full./%%"
139
        break;
140
141
case argument0=30: //itembox1
142
        global.msg[0]="* Use the box?& &         Yes         No      \C /"
143
        global.msg[1]=" "
144
        global.msg[2]=" "
145
        break;
146
        
147
case argument0=31: //itembox2
148
        if global.choice=0 then
149
          {
150
         global.msg[0]="* What to do?& &         Put in      Take out\C /"
151
         global.msg[1]=" "
152
         global.msg[2]=" "
153
          }
154
        if global.choice=1 then global.msg[0]="%%"
155
        break;
156
        
157
case argument0=32: //itembox2
158
        if global.choice=0 then
159
          {
160
          if instance_exists(obj_storagemenu)==false
161
          instance_create(0,0,obj_storagemenu)
162
          obj_storagemenu.j=1
163
          global.menucoord[6]=0
164
         global.msg[0]="%%"
165
          }
166
        if global.choice=1 then
167
          {
168
           if instance_exists(obj_storagemenu)==false
169
           instance_create(0,0,obj_storagemenu)
170
          obj_storagemenu.j=2
171
          global.menucoord[7]=0
172
         global.msg[0]="%%"
173
          }
174
          break;
175
         
176
     
177
     
178
// main script
179
     
180
case argument0=200: //flowey's first message
181
     global.msg[0]="\W* Howdy^2!&* I'm\Y FLOWEY\W.^2 &* \YFLOWEY\W the \YFLOWER\W!/"
182
     global.msg[1]="* Hmmm.../"
183
     global.msg[2]="* You're new to the&  UNDERGROUND^2, aren'tcha?/"
184
     global.msg[3]="* Golly^1, you must be&  so confused./"
185
     global.msg[4]="* Someone ought to teach&  you how things work&  around here!/"
186
     global.msg[5]="* I guess little old me&  will have to do./"
187
     global.msg[6]="* Ready^2?&* Here we go!/%%"
188
     break;
189
     
190
case argument0=201: //toriel says "this way"
191
     global.msg[0]="\E2* This way./%%"
192
     global.msg[1]="%%%"
193
     break;
194
     
195
case argument=202: //toriel from here on
196
     global.msg[0]="\E2* Welcome to your new&  home^1, innocent one./"
197
     global.msg[1]="* Allow me to educate you&  in the operation of the&  RUINS./%%"
198
     break;
199
     
200
case argument=203:
201
     global.msg[0]="\E2* The RUINS are full of&  puzzles./"
202
     global.msg[1]="* Ancient fusions between &  diversions and doorkeys./"
203
    global.msg[2]="* One must solve them&  to move from room to&  room./"
204
    global.msg[3]="* Please adjust yourself    to the sight of them./%"
205
    break;
206
207
case argument=204:
208
    global.msg[0]="\E2* To make progress here,^1 &  you will need to trigger&  several switches./"
209
    global.msg[1]="* Do not worry,^1 I have &  labelled the ones that&  you need to flip./%"
210
    break;
211
212
case argument=205:
213
    global.msg[0]="\E2* The first switch is over&  on the wall./%"
214
    break;
215
216
case argument=206:
217
    global.msg[0]="\E1* Do you need some help..^1?&* Press the switch on the   wall./"
218
    global.msg[1]="\E0* Come on^1, you can do it!/%"
219
    break;
220
221
case argument=207:
222
    global.msg[0]="\E2* Go on^1, press the switch&  on the left./%"
223
    break;    
224
case argument=208:
225
    global.msg[0]="\E1* You do know which way&  left is^1, do you not?/"
226
    global.msg[1]="\E0* Press the switch that I&  labelled for you./%"
227
    break;
228
229
case argument=209:
230
global.msg[0]="\E1* You are very curious,^1 &  are you not?/"
231
global.msg[1]="\E1* Please understand.^2 & \E0I only want the best&  for you./%"
232
break;
233
234
case argument=210:
235
global.msg[0]="\E0* Splendid!^2 &* I am proud of you,^1 &  little one./"
236
global.msg[1]="* Let us move to the&  next room./%"
237
break;
238
239
case argument=211:
240
global.msg[0]="\E1* As a human living in&  the UNDERGROUND,^1 &  monsters may attack you./"
241
global.msg[1]="\E2* You will need to be&  prepared for this&  situation./"
242
global.msg[2]="\E0* However, worry not!^2 &* The process is simple./"
243
global.msg[3]="\E2* When you encounter a &  monster,^1 you will enter&  a FIGHT./"
244
global.msg[4]="* While you are in a&  FIGHT^1, strike up a&  friendly conversation./"
245
global.msg[5]="\E2* Stall for time.&  I will come to resolve&  the conflict./"
246
global.msg[6]="\E2* Practice talking to&  the dummy./%"
247
break;
248
249
case argument=212:
250
if global.flag[12]=1
251
   {
252
   global.msg[0]="\E1* Ahh,^1 the dummies are&  not for fighting!^2 &* They are for talking!/"
253
   global.msg[1]="* We do not want to hurt&  anybody, do we...?^2 \E0 &* Come now./%"
254
   }
255
if global.flag[10]=1
256
   {
257
   global.msg[0]="\E0* Ah,^1 very good!^2 &* You are very good./%"
258
   }
259
if global.flag[11]=1
260
   {
261
global.msg[0]="\E1* .../"
262
global.msg[1]="\E1* ... you ran away.../"
263
global.msg[2]="\E0* Truthfully^1, that was&  not a poor choice./"
264
global.msg[3]="\E0* It is better to&  avoid conflict&  whenever possible./"
265
global.msg[4]="\E1* That..^1. however^1, is&  only a dummy^2.&* It cannot harm you./"
266
global.msg[5]="\E1* It is made of cotton^1.&* It has no desire&  for revenge.../"
267
global.msg[6]="\E0* Nevermind^2.&* Stay close to me and&  I will keep you safe./%"  
268
   }
269
if global.flag[13]=1
270
   {
271
global.msg[0]="\E3* ^1.^1.^1./"
272
global.msg[1]="\E4* ^1.^1.^1./"
273
global.msg[2]="\E0* The next room awaits./%"
274
  }
275
break;
276
277
case argument=213:
278
global.msg[0]="\E2* Practice talking to&  the dummy./"
279
global.msg[1]="\E1* You can say anything..^2.\E2 &* I do not think the dummy&  will be bothered./%"
280
break;
281
282
283
case argument=214:
284
global.msg[0]="\E0* Do you need some&  ideas for conversation&  topics?/"
285
global.msg[1]="* Well^1, I often start with&  a simple 'how do you&  do...'/"
286
global.msg[2]="* You could ask them about&  their favorite books.../"
287
global.msg[3]="* Jokes can be useful for&  'breaking the ice.'/"
288
global.msg[4]="* Listen to this one.../"
289
global.msg[5]="* What did the skeleton&  tile his roof with?/"
290
global.msg[6]="* ... SHIN-gles!/"
291
global.msg[7]="\E1* .../"
292
global.msg[8]="\E0* Well^1, I thought it&  was amusing./%"
293
break;
294
295
case argument=215:
296
global.msg[0]="\E2* Practice talking to&  the dummy./"
297
global.msg[1]="\E1* You can say anything..^2.\E0 &* The dummy will not&  be bothered./%"
298
break;
299
300
case argument=216:
301
global.msg[0]="\E1* There is another puzzle&  in this room.../"
302
global.msg[1]="\E0* I wonder if you can&  solve it?/%"
303
break;
304
305
case argument=217:
306
global.msg[0]="\E1* This is the puzzle^1,&  but.../"
307
global.msg[1]="\E0* Here^1, take my hand&  for a moment./%"
308
break;
309
310
case argument=218:
311
global.msg[0]="\E1* Puzzles seem a little&  too dangerous for&  now./%"
312
break;
313
314
case argument=219:
315
global.msg[0]=".../%"
316
break;
317
318
case argument=220:
319
global.msg[0]="\E2* Greetings,^1 my child^2.&* Do not worry^1, I did&  not leave you./"
320
global.msg[1]="\E0* I was merely behind this&  pillar the whole time./"
321
global.msg[2]="* Thank you for trusting&  me./"
322
global.msg[3]="\E2* However^1, there was an&  important reason for&  this exercise./"
323
global.msg[4]="* ... to test your&  independence./"
324
global.msg[5]="\E1* I must attend to some&  business^1, and you must&  stay alone for a while./"
325
global.msg[6]="\E0* Please remain here^2.&*\E1 It's dangerous to&  explore by yourself./"
326
global.msg[7]="\E0* I have an idea^2.&* I will give you a&  CELL PHONE./"
327
global.msg[8]="* If you have a need for&  anything^1, just call./"
328
global.msg[9]="\E1* Be good^1, alright?/%"
329
break;
330
331
case argument=221:
332
global.msg[0]="\E0* You have done&  excellently thus&  far^1, my child./"
333
global.msg[1]="\E2* However... I have a&  difficult request to ask&  of you./"
334
global.msg[2]="* .../"
335
global.msg[3]="* I would like you to walk&  to the end of the room&  by yourself./"
336
global.msg[4]="\E1* Forgive me for this./%"
337
break;
338
339
case argument=222:
340
global.msg[0]="* Ring..\E0.\TT /"
341
global.msg[1]="\F1 %"
342
global.msg[2]="* Hello?&* This is TORIEL./"
343
global.msg[3]="* For no reason in&  particular...&* Which do you prefer?/"
344
global.msg[4]="* Cinnamon or&  butterscotch?&  Cinnamon    Bscotch \C /"
345
global.msg[5]=" "
346
break;
347
348
case argument=223:
349
if global.choice=0 then global.flag[46]=0
350
if global.choice=1 then global.flag[46]=1
351
global.msg[0]="* Oh^1, I see.&* Thank you very much!/"
352
global.msg[1]="\TS \F0 \T0 %"
353
global.msg[2]="* Click.../%%"
354
global.msg[5]="* /"
355
break;
356
357
358
case argument0=500: //flowers
359
     global.msg[0]="* Beautiful flowers^2.&* They must have&  broken your fall./%%"
360
     global.msg[1]="%%%"
361
     break;
362
     
363
case argument0=501: //sign
364
     global.msg[0]='* "Press [Z] to read signs!"/%%'
365
     break;
366
     
367
case argument0=502: //pillar1
368
     global.msg[0]='* Just a regular old pillar./%%'
369
     break;
370
371
case argument0=503: //sign1
372
     global.msg[0]="* Please don't step on the&  leaves./%%"
373
     break;
374
375
case argument0=504: //sign1
376
     global.msg[0]="* Didn't you read the sign&  downstairs?/%%"
377
     break;
378
379
case argument0=505: //goofyrock
380
     conversation=obj_goofyrock.conversation
381
     if global.flag[33]=0 then
382
     {
383
     if conversation=0 then
384
        {
385
        global.msg[0]="* WHOA there^1, pardner^2!&* Who said you could push&  me around?/"
386
        global.msg[1]="* HMM^2?&* So you're ASKIN' me to&  move over?/"
387
        global.msg[2]="* Okay^1, just for you^1,&  pumpkin./%%"
388
        }
389
     if conversation=3 then
390
        {
391
        global.msg[0]="* HMM^2?&* You want me to move some&  more?/"
392
        global.msg[1]="* Alrighty^1, how's this?/%%"
393
        }
394
     if conversation=6 then
395
        {
396
        global.msg[0]="* HMM^2?&* That was the wrong direction?/"
397
        global.msg[1]="* Okay^1, think I got it./%%"
398
        }
399
      if conversation=9 then
400
     global.msg[0]="* Was that helpful?/%%"
401
      if conversation=12 then
402
        {
403
        global.msg[0]="* HMM^2?&* You wanted me to STAY there?/"
404
        global.msg[1]="* You're giving me a real&  workout./%%"
405
        }
406
     }
407
     else
408
     global.msg[0]="* Aren't things easier when&  you just ask?/%%"
409
     break; 
410
     
411
case argument0=508:
412
     doak=0
413
     noroom=0
414
     if global.flag[34]<4 then
415
     {
416
     global.msg[0]="*'Take one.'&* Take a candy?&         Yes         No \C"
417
     if global.flag[34]=0 then global.msg[0]="* It says 'take one.'&* Take a piece of candy?&         Yes         No \C"
418
     }
419
     else global.msg[0]="* Look at what you've done./%%"
420
     break;
421
422
case argument0=509:
423
     if global.choice=0 then
424
           {
425
               if global.flag[34]<4 then
426
               { 
427
               if doak=0 then
428
                  {
429
                  doak=1
430
                  script_execute(scr_itemget,1)
431
                  if noroom=0 then global.flag[34]+=1
432
                  }
433
               }
434
           if noroom=0 then 
435
                {
436
                if global.flag[34]=1 then global.msg[0]="* You took a piece of candy.&* (Press [C] to open the menu.)/%%"
437
                if global.flag[34]=2 then global.msg[0]="* You took more candy^1.&* How disgusting../%%"
438
                if global.flag[34]=3 then global.msg[0]="* You take another piece.&* You feel like the&  scum of the earth.../%%"
439
                if global.flag[34]=4 then global.msg[0]="* You took too much too fast.&* The candy spills onto&  the floor./%%"
440
                }
441
           if noroom=1 then global.msg[0]="* You tried to take a piece&  of candy^1, but you didn't&  have any room./%%"
442
           }
443
     if global.choice=1 then
444
           {
445
           global.msg[0]="* You decided not to take some./%%"
446
           }
447
           break;
448
449
case argument0=510:
450
     global.msg[0]="* zzzzzzzzzzzzzzz..^1.&* zzzzzzzzzzzzzz.../"
451
     global.msg[1]="* zzzzzzzzzz..^1.&* (are they gone yet^1)&* zzzzzzzzzzzzzzz.../"
452
     global.msg[2]="* (This ghost keeps saying 'z'&  out loud repeatedly^1,&  pretending to sleep.)/"
453
     global.msg[3]="* Move it with force?& &         Yes         No \C"
454
     break;
455
456
case argument0=511:
457
       global.msg[0]="%%"
458
    // if global.choice=0 then
459
     //      {
460
461
     //           if global.flag[34]=1 then global.msg[0]="* You took a piece of candy.&* (Press CTRL to open the menu.)/%%"
462
       //         if global.flag[34]=2 then global.msg[0]="* You took more candy^1.&* No one will know you took&  more than one.../%%"
463
      //          if global.flag[34]=3 then global.msg[0]="* You take another piece.&* Your inhibitions begin to&  melt away./%%"
464
       //         if global.flag[34]=4 then global.msg[0]="* You took too much too fast.&* The candy spills onto&  the floor./%%"
465
       //    }
466
467
     //if global.choice=1 then
468
      //     {
469
       //    global.msg[0]="* You decided not to take some./%%"
470
       //    }
471
           break;
472
       
473
case argument0=512:
474
     doak=0
475
     noroom=0
476
     global.msg[0]="* It says 'Take them all.'&* Take a candy?&         Yes         No \C"
477
     break;
478
479
case argument0=513:
480
     script_execute(scr_itemcheck,5)
481
     if global.choice=0 then
482
               {
483
               if haveit=0 then
484
               if doak=0 then
485
                  {
486
                  doak=1
487
                  script_execute(scr_itemget,5)
488
                  }
489
               }
490
           if noroom=0 then 
491
                {
492
                global.msg[0]="* You took a piece.&* Boy^1, that's heavy./%%"
493
                }
494
           if haveit=1 then global.msg[0]="* You can't carry more.&* It's just too heavy./%%"
495
           if noroom=1 then global.msg[0]="* You tried to take a piece&  of candy^1, but you didn't&  have any room./%%"
496
          if global.choice=1 then
497
             {
498
             global.msg[0]="* You decided not to take some./%%"
499
             }
500
           break;
501
     
502
case argument0=514:
503
     doak=0
504
     noroom=0
505
     global.msg[0]="* Leave 7G in the web?& &         Yes         No \C"
506
     break;
507
508
case argument0=515:
509
     script_execute(scr_cost,7)
510
     if global.choice=0 then
511
               {
512
               if afford=1 then
513
               if doak=0 then
514
                  {
515
                  doak=1
516
                  script_execute(scr_itemget,7)
517
                  if noroom=0 then global.gold-=7
518
                  }
519
               }
520
           if noroom=0 then 
521
                {
522
                global.msg[0]="* Some spiders crawled down&  and gave you a donut./%%"
523
                if afford=0 then global.msg[0]="* You didn't have enough&  gold./%%"
524
                }
525
           if noroom=1 then global.msg[0]="* You are carrying too&  many items./%%"
526
          if global.choice=1 then
527
             {
528
             global.msg[0]="*%%"
529
             }
530
           break;
531
           
532
case argument0=516:
533
     doak=0
534
     noroom=0
535
     global.msg[0]="* Leave 18G in the web?& &         Yes         No \C"
536
     break;
537
538
case argument0=517:
539
     script_execute(scr_cost,18)
540
     if global.choice=0 then
541
               {
542
               if afford=1 then
543
               if doak=0 then
544
                  {
545
                  doak=1
546
                  script_execute(scr_itemget,10)
547
                  if noroom=0 then global.gold-=18
548
                  }
549
               }
550
           if noroom=0 then 
551
                {
552
                global.msg[0]="* Some spiders crawled down&  and gave you a jug./%%"
553
                if afford=0 then global.msg[0]="* You didn't have enough&  gold./%%"
554
                }
555
           if noroom=1 then global.msg[0]="* You are carrying too&  many items./%%"
556
          if global.choice=1 then
557
             {
558
             global.msg[0]="*%%"
559
             }
560
           break;
561
562
case argument0=518:
563
     if doak=0 then
564
        {
565
          script_execute(scr_itemget,12)
566
          if noroom=0 then global.flag[100]=1
567
          doak=1
568
        }
569
     global.msg[0]="* You found a Faded Ribbon./%%"
570
     if noroom=1 then global.msg[0]="* You are carrying too&  much./%%"
571
     break;
572
     
573
case argument0=519:
574
     doak=0
575
     noroom=0
576
     global.msg[0]="* It's a switch.&* Press it?&         Yes         No \C"
577
     break;
578
579
case argument0=520:
580
     if doak=0 then
581
        {
582
        global.flag[43]+=1
583
        doak=1
584
        }
585
     if global.choice=0 then global.msg[0]="* Nothing happened./%%"
586
     if global.choice=1 then global.msg[0]="%%"
587
     if global.flag[43]>25 then global.msg[0]= "* You're making the switches&  uncomfortable with all&  this attention./%%"
588
     break;
589
     
590
case argument0=521:
591
     doak=0
592
     noroom=0
593
     global.msg[0]="* It's a switch.&* Press it?&         Yes         No \C"
594
     break;
595
     
596
case argument0=522:
597
     if doak=0 then
598
        {
599
        global.flag[43]+=1
600
        doak=1
601
        }
602
     if global.choice=0 then { global.msg[0]="* You hear a clicking sound./%%"; if room=room_ruins15B and global.plot<14 then global.plot=14; if room=room_ruins15C and global.plot<15 then global.plot=15; if room=room_ruins15D and global.plot<16 then global.plot=16; }
603
     if global.choice=1 then global.msg[0]="%%"
604
     break;
605
     
606
case argument0=523:
607
     if doak=0 then
608
        {
609
          script_execute(scr_itemget,13)
610
          if noroom=0 then global.flag[102]=1
611
          doak=1
612
        }
613
     global.msg[0]="* You found the Toy Knife./%%"
614
     if noroom=1 then global.msg[0]="* You are carrying too&  much./%%"
615
     break;
616
617
case argument0=524:
618
     doak=0
619
     noroom=0
620
     global.msg[0]="* It's TORIEL's diary.&* Read the circled passage?&         Yes         No \C"
621
     break;
622
     
623
case argument0=525:
624
     if global.choice=0 then { global.msg[0]="* You read the passage.../"; global.msg[1]='"* Why did the skeleton want&   a friend?"/' global.msg[2]='"* Because she was feeling&   BONELY..."/' global.msg[3]="* The rest of the page is&  filled with jokes of&  a similar caliber./%%"}
625
     if global.choice=1 then global.msg[0]="%%"
626
     break;
627
     
628
case argument0=526:
629
     if doak=0 then
630
        {
631
          script_execute(scr_itemget,11)
632
          if noroom=0 then global.flag[103]=2
633
          doak=1
634
        }
635
     global.msg[0]="* You found a slice of&  butterscotch-cinnamon&  pie./%%"
636
     if noroom=1 then global.msg[0]="* You are carrying too&  much./%%"
637
     break;
638
639
case argument0=527:
640
global.msg[0]="* Hello there^1,&  little one!/"
641
global.msg[1]="* The pie has not&  cooled down yet./"
642
global.msg[2]="* Perhaps you should&  take a nap.&  Yes         No      \C /"
643
global.msg[3]=" "
644
break;
645
646
case argument0=528:
647
     global.plot=19.1
648
     if global.choice=0 then { global.msg[0]="* Sweet dreams./%%" ; }
649
     else 
650
          { 
651
            global.msg[0]="\E1* You'd rather stay&  up and chat with&  me^1, then?/"
652
            if global.flag[103]>0 then global.msg[0]="* Up already^1, I see?/"
653
            global.msg[1]="\E0* Um^1, I want you to know&  how glad I am to&  have someone here./"
654
            global.msg[2]="* There are so many&  old books I want&  to share./"
655
            global.msg[3]="* I want to show you&  my favorite bug-&  hunting spot./"
656
            global.msg[4]="* I've also prepared&  a curriculum for&  your education./"
657
            global.msg[5]="* This may come as&  a surprise to you.../"
658
            global.msg[6]="* But I have always&  wanted to be a&  teacher./"
659
            global.msg[7]="\E1* ... actually^1, perhaps&  that isn't very&  surprising./"
660
            global.msg[8]="\E5* STILL./"
661
            global.msg[9]="\E0* I am glad to have&  you living here./"
662
            global.msg[10]="\E1* Oh^1, did you&  want something?/"
663
            global.msg[11]="* What is it?&               When can&  Nothing      I go home?\C /"
664
            global.msg[12]=" "
665
            }
666
     break;
667
668
case argument0=529:
669
global.plot=19.2
670
if global.choice=0 then
671
   {
672
   global.msg[0]="* Well^1, talk to me&  again if you&  need anything./%%"
673
   }
674
 else 
675
   {
676
   global.msg[0]="\E1* What^1?&* This..^1. this IS your&  home now./"
677
   global.msg[1]="* Um..^1. would you like&  to hear about this&  book I am reading?/"
678
   if global.choice=-1 then 
679
    { global.msg[0]="\E0* Oh^1, hello!/"; global.msg[1]="* Did you want to&  hear about the&  book I am reading?/" }
680
   global.msg[2]='\E0* It is called&  "72 Uses for Snails."/'
681
   global.msg[3]="* How about it?&              How to exit&  Sure        the RUINS\C /"
682
   global.msg[4]=" "
683
    }
684
break;
685
    
686
case argument0=530:
687
    global.plot=19.3
688
    global.msg[0]="* Here is an exciting&  snail fact./"
689
    if global.choice=1 then global.msg[0]="\E1* Um^1.^1.^1.&*\E0 How about an exciting&  snail fact?/"
690
    global.msg[1]="\E2* Did you know&  that snails.../"
691
    r=round(random(3))
692
    if r = 0 then global.msg[2]="\E0* Have a chainsaw-like&  tongue called a&  radula?/"
693
    if r = 1 then global.msg[2]='\E0* Sometimes flip their&  digestive systems&  as they mature?/'
694
    if r = 2 then global.msg[2]="\E0* Make terrible&  shoelaces?/"
695
    if r = 3 then global.msg[2]="\E0* Talk^2. Really^2. Slowly^2?&* Just kidding^1, snails&  don't talk./"
696
    global.msg[3]="\E0* Interesting.&              How to exit&  Yeah        the RUINS\C /"
697
    global.msg[4]=" "
698
break;
699
700
case argument0=531:
701
    global.plot=19.4
702
    if global.choice=0 then global.msg[0]="* Well^1, bother me&  if you need anything&  else./%%"
703
    else
704
    { 
705
      if global.choice=1 then { global.msg[0]="\E1* ... I have to do&  something^1.&* Stay here./%%" ; global.plot=19.9 }
706
      if global.choice=-1 then 
707
         {
708
         global.msg[0]="\E0* What is it?&              How to exit&  Nothing     the RUINS\C /"
709
         }
710
      }
711
    break;
712
    
713
case argument0=532:
714
    if global.choice=0 then global.msg[0]="* If you need anything^1,&  just ask./%%"
715
    if global.choice=1 then{  global.msg[0]="\E1* ... I have to do&  something.&* Stay here./%%."; global.plot=19.9; }
716
break;
717
    
718
case argument0=666: //flowey
719
     global.msg[0]="See that heart^1? &That is your SOUL^1,&the very culmination&of your being!/"
720
     global.msg[1]="Your SOUL starts off&weak^1, but can grow&strong if you gain&a lot of LV./"
721
     global.msg[2]="What's LV stand for^1?&Why^1, LOVE^1, of course!/"
722
     global.msg[3]="You want some&LOVE, don't you?/"
723
     global.msg[4]="Don't worry,&I'll share some&with you!/%"
724
     break;
725
726
case argument0=667:
727
     global.msg[0]="Down here^1, LOVE is&shared through..^1./"
728
     global.msg[1]='Little white..^2.\E1 &"friendliness&pellets."/'
729
     global.msg[2]="\E2Are you ready\E0?/%"
730
    break;
731
732
case argument0=668:
733
     global.msg[0]="Move around^1!&Get as many as&you can^2!%%%"
734
     global.msg[1]="%%%"
735
    break;
736
737
case argument0=669:
738
     global.msg[0]="You idiot./"
739
     global.msg[1]="In this world^1, it's&kill or BE killed./"
740
     global.msg[2]="Why would ANYONE pass&up an opportunity&like this!?/%"
741
    break;
742
743
case argument0=670:
744
     global.msg[0]="Die./%"
745
     break;
746
     
747
case argument0=671:
748
     global.msg[0]="Hey buddy^1,&you missed them./"
749
     global.msg[1]="Let's try again^1,&okay?/%"
750
     break;
751
case argument0=672:
752
     global.msg[0]="Is this a joke^2?&Are you braindead^2?&RUN^2. INTO^2. THE^2.&BULLETS!!!"
753
     break;
754
case argument0=673:
755
     global.msg[0]="You know what's&going on here^1,&don't you?/"
756
     global.msg[1]="You just wanted to&see me suffer./%"
757
     break;
758
case argument0=674:
759
     global.msg[0]="\E1What a cretin^1,&torturing such a&poor^1, innocent&youth.../"
760
     global.msg[1]="\E2Ah, do not be&afraid^1, my child./"
761
     global.msg[2]="\XI am \BTORIEL\X,&caretaker of&the \RRUINS\X./"
762
     global.msg[3]="I pass through this&place every day to&see if anyone has&fallen down./"
763
     global.msg[4]="You are the first&human to come here&in a long time./"
764
     global.msg[5]="I will do my best&to ensure your&protection during&your time here./%%"
765
     global.msg[5]="\E2Come^2!&I will guide you&through the&catacombs./%%"   
766
     global.msg[6]="%%%"
767
768
     break;
769
     
770
// talk choices
771
case argument0=1001:
772
     global.msg[0]="   * Check         * Compliment&   * Threat";
773
     global.choices[0] = 1
774
     global.choices[1] = 1
775
     global.choices[2] = 0
776
     global.choices[3] = 1
777
     global.choices[4] = 0
778
     global.choices[5] = 0
779
        break;
780
781
        //dummy
782
case argument0=1002:
783
     global.msg[0]="   * Check         * Talk";
784
     global.choices[0] = 1
785
     global.choices[1] = 0
786
     global.choices[2] = 0
787
     global.choices[3] = 1
788
     global.choices[4] = 0
789
     global.choices[5] = 0
790
        break;
791
792
// fake froggit
793
case argument0=1003:
794
     global.msg[0]="   * Check         * Compliment&   * Threat";
795
     global.choices[0] = 1
796
     global.choices[1] = 1
797
     global.choices[2] = 0
798
     global.choices[3] = 1
799
     global.choices[4] = 0
800
     global.choices[5] = 0
801
        break;                
802
803
// real froggit
804
case argument0=1004:
805
     global.msg[0]="   * Check         * Compliment&   * Threat";
806
     global.choices[0] = 1
807
     global.choices[1] = 1
808
     global.choices[2] = 0
809
     global.choices[3] = 1
810
     global.choices[4] = 0
811
     global.choices[5] = 0
812
        break;               
813
        
814
// whimsun
815
case argument0=1005:
816
     global.msg[0]="   * Check         * Console&   * Terrorize";
817
     global.choices[0] = 1
818
     global.choices[1] = 1
819
     global.choices[2] = 0
820
     global.choices[3] = 1
821
     global.choices[4] = 0
822
     global.choices[5] = 0
823
        break;
824
825
case argument0=1006: // moldsmal
826
     global.msg[0]="   * Check         * Imitate&   * Flirt";
827
     global.choices[0] = 1
828
     global.choices[1] = 1
829
     global.choices[2] = 0
830
     global.choices[3] = 1
831
     global.choices[4] = 0
832
     global.choices[5] = 0
833
        break;
834
835
case argument0=1007: // migosp
836
     global.msg[0]="   * Check         * Talk";
837
     global.choices[0] = 1
838
     global.choices[1] = 0
839
     global.choices[2] = 0
840
     global.choices[3] = 1
841
     global.choices[4] = 0
842
     global.choices[5] = 0
843
        break;
844
        
845
case argument0=1008: // vegetoid
846
     global.msg[0]="   * Check         * Talk&   * Eat";
847
     global.choices[0] = 1
848
     global.choices[1] = 1
849
     global.choices[2] = 0
850
     global.choices[3] = 1
851
     global.choices[4] = 0
852
     global.choices[5] = 0
853
        break;
854
        
855
case argument0=1009: // Loox
856
     global.msg[0]="   * Check         * Pick On&   * Don't Pick On";
857
     global.choices[0] = 1
858
     global.choices[1] = 1
859
     global.choices[2] = 0
860
     global.choices[3] = 1
861
     global.choices[4] = 0
862
     global.choices[5] = 0
863
        break;
864
        
865
case argument0=1010: // Toriel
866
     global.msg[0]="   * Check         * Talk";
867
     global.choices[0] = 1
868
     global.choices[1] = 0
869
     global.choices[2] = 0
870
     global.choices[3] = 1
871
     global.choices[4] = 0
872
     global.choices[5] = 0
873
        break;
874
        
875
case argument0=1011: // napstablook
876
     global.msg[0]="   * Check         * Flirt&   * Threat        * Cheer";
877
     global.choices[0] = 1
878
     global.choices[1] = 1
879
     global.choices[2] = 0
880
     global.choices[3] = 1
881
     global.choices[4] = 1
882
     global.choices[5] = 0
883
        break;
884
        
885
case argument0>=1012 and argument0<=1015: // doges
886
     global.msg[0]="   * Check         * Beckon&   * Bathe         * Dry  &   * Walk          * Pet  ";
887
     global.choices[0] = 1
888
     global.choices[1] = 1
889
     global.choices[2] = 1
890
     global.choices[3] = 1
891
     global.choices[4] = 1
892
     global.choices[5] = 1
893
        break;   
894
        
895
        
896
// phone dialogue
897
case argument0=1501:
898
     global.msg[0]="* Dialing..\E0.\TT /"
899
     if doak=0 then
900
        {
901
        doak=1
902
        global.flag[40]+=1
903
        }
904
     if global.flag[40]=1 then
905
       {
906
       global.msg[1]="\F1 %"
907
       global.msg[2]="\E0* This is TORIEL./"
908
       global.msg[3]="* You only wanted to&  say hello...^2?&* Well then./"
909
       global.msg[4]="\E0* 'Hello!'/"
910
       global.msg[5]="* I hope that suffices^1.&* Hee hee./"
911
       global.msg[6]="\TS \F0 \T0 %"
912
       global.msg[7]="* Click.../%%"
913
       }
914
     if global.flag[40]=2 then
915
       {
916
       global.msg[1]="\F1 %"
917
       global.msg[2]="\E0* This is TORIEL./"
918
       global.msg[3]="* You want to say&  hello again?/"
919
       global.msg[4]="* 'Salutations!'/"
920
       global.msg[5]="* Is that enough?/"
921
       global.msg[6]="\TS \F0 \T0 %"
922
       global.msg[7]="* Click.../%%"
923
       }
924
     if global.flag[40]=3 then
925
       {
926
       global.msg[1]="\F1 \TT %"
927
       global.msg[2]="\E0* This is TORIEL./"
928
       global.msg[3]="* Are you bored^1?&* I should have given& a book to you./"
929
       global.msg[4]="* My apologies./"
930
       global.msg[5]="* Why not use your&  imagination to&  divert yourself?/"
931
       global.msg[6]="* Pretend you are..^1.&* A monarch!/"
932
       global.msg[7]="* Rule over the leaf pile&  with a fist of iron./"
933
       global.msg[8]="* Can you do that for me?/"
934
       global.msg[9]="\TS \F0 \T0 %"
935
       global.msg[10]="* Click.../%%"
936
       }
937
      if global.flag[40]>3 then
938
       {
939
       global.msg[1]="\F1 \TT %"
940
       global.msg[2]="\E0* This is TORIEL./"
941
       global.msg[3]="* Hello^1, my child./"
942
       global.msg[4]="\E1* Sorry^1, I do not have&  much to say./"
943
       global.msg[5]="\E0* It was nice to hear&  your voice^1, though^1./"
944
       global.msg[6]="\TS \F0 \T0 %"
945
       global.msg[7]="* Click.../%%"
946
       }
947
        break;
948
        
949
case argument0=1502:
950
     global.msg[0]="* Dialing..\E0.\TT /"
951
     global.msg[1]="\F1 %"
952
     global.msg[2]="* This is TORIEL./"
953
     global.msg[3]="\E1* Help with a puzzle^1.^1.^1.?/"
954
     global.msg[4]="* Um^1, you have not&  left the room^1, have you?/"
955
     global.msg[5]="\E0* Wait patiently for&  me and we can solve&  it together!/"
956
     global.msg[6]="\TS \F0 \T0 %"
957
     global.msg[7]="* Click.../%%"
958
     break;
959
960
case argument0=1503: // about yourself
961
     global.msg[0]="* Dialing..\E0.\TT /"
962
     global.msg[1]="\F1 %"
963
     global.msg[2]="* This is TORIEL./"
964
     global.msg[3]="\E1* You want to know&  more about me?/"
965
     global.msg[4]="* Well^1, I am afraid there&  is not much to say./"
966
     global.msg[5]="\E0* I am just a silly little&  lady who worries too&  much!/"
967
     global.msg[6]="\TS \F0 \T0 %"
968
     global.msg[7]="* Click.../%%"
969
     break;
970
971
case argument0=1504: // call her mom
972
     global.flag[42]=1
973
     global.msg[0]="* Dialing..\E0.\TT /"
974
     global.msg[1]="\F1 %"
975
     global.msg[2]="* This is TORIEL./"
976
     global.msg[3]='\E8* Huh^2?&* Did you just call&  me... "Mom"?/'
977
     global.msg[4]="\E1* Well...&* I suppose.../"
978
     global.msg[5]="* Would that make you&  happy?/"
979
     global.msg[6]='* To call me..^2.&* "Mother?"/'
980
     global.msg[7]="\E0* Well then^1, call me&  whatever you like!/!"
981
     global.msg[8]="\TS \F0 \T0 %"
982
     global.msg[9]="* Click.../%%"
983
     break;
984
     
985
case argument0=1505: // flirt
986
     if doak=0 then
987
        {
988
        doak=1
989
        global.flag[41]+=1
990
        }
991
     if global.flag[41]=1 then
992
     {
993
     global.msg[0]="* Dialing..\E0.\TT /"
994
     global.msg[1]="\F1 %"
995
     global.msg[2]="\E8* ...^2 huh???/"
996
     global.msg[3]="\E1* Oh,^1 heh..^1 heh...^1 \E0 &* Ha ha ha!/"
997
     global.msg[4]="* How adorable...^1 I&  could pinch your cheek!/"
998
     global.msg[5]="* You can certainly find&  better than an old woman&  like me./"
999
     global.msg[6]="\TS \F0 \T0 %"
1000
     global.msg[7]="* Click.../%%"
1001
     }
1002
     if global.flag[41]=2 then
1003
     {
1004
     global.msg[0]="* Dialing..\E0.\TT /"
1005
     global.msg[1]="\F1 %"
1006
     global.msg[2]="\E1* Oh dear,^1 are you&  serious...?/"
1007
     global.msg[3]="\E1* I do not know if this is&  pathetic,^1 or endearing./"
1008
     global.msg[4]="\TS \F0 \T0 %"
1009
     global.msg[5]="* Click.../%%"
1010
         if global.flag[42]=1 then
1011
                {
1012
                global.msg[3]='\E8* And after you said you&  want to call&  me "mother..."/'
1013
                global.msg[4]='\E0* You are an...^2 &  \E1... "interesting"&  child./'
1014
                global.msg[5]="\TS \F0 \T0 %"
1015
                global.msg[6]="* Click.../%%"
1016
                }
1017
     }
1018
     break;
1019
1020
case argument0=1506: // nobody's home
1021
     global.flag[42]=1
1022
     global.msg[0]="* Dialing... /"
1023
     global.msg[1]="* ... /"
1024
     global.msg[2]="* No one picked up.../%%"
1025
     break;
1026
1027
case argument0=1507:
1028
     global.faceemotion=99
1029
     global.msg[0]="* Dialing...\TT /"
1030
     global.msg[1]="\F1 %"
1031
     global.msg[2]="* Hey^1, you silly&  child./"
1032
     global.msg[3]="* If you want to&  talk to me^1, I am&  right here./"
1033
     global.msg[4]="\TS \F0 \T0 %"
1034
     global.msg[5]="* Click.../%%"
1035
     break;
1036
1037
1038
1039
1040
// npc dialogue
1041
case argument0=2001:
1042
     global.msg[0]="\E2* Welcome to your new& home,^1 innocent one./"
1043
     global.msg[1]="* Allow me to educate you&  in the operation of&  the RUINS./%"
1044
     break;
1045
1046
1047
case argument0=2002: // toriel flirt phone call
1048
     global.faceplate=1
1049
     global.msg[0]="\E8* ...^2 huh???/"
1050
     global.msg[1]="\E1* Oh,^1 heh..^1 heh...^1 \E0 &* Ha ha ha!/"
1051
     global.msg[2]="* How adorable...^1 I&  could pinch your cheek!/"
1052
     global.msg[3]="* You can certainly find&  better than an old woman&  like me./%"
1053
     // "\E1* Oh dear,^1 are you&  serious...?/"
1054
     //// alt --> '\E8* And after you said you&  want to call me "mother..."/'
1055
     //// alt --> '\E0* You are an...^2& \E1... "interesting" child.'
1056
     // "\E0* I do not know if this is&  pathetic,^1 or endearing./%"
1057
     //
1058
     // "\E0*
1059
     // "
1060
     break;
1061
     
1062
case argument0=3002: //battle intro messages
1063
     global.msg[0]="* You encountered the Dummy."
1064
     global.msg[1]="%%%"     
1065
     break;
1066
1067
case argument0=3003: //froggit
1068
     global.msg[0]="* Froggit attacks you!"
1069
     global.msg[1]="%%%"     
1070
     break;
1071
     
1072
case argument0=3004: //froggit
1073
     global.msg[0]="* Froggit hopped close!"
1074
     global.msg[1]="%%%"     
1075
     break;
1076
1077
case argument0=3005: //whimsun
1078
     global.msg[0]="* Whimsun approached meekly!"
1079
     global.msg[1]="%%%"     
1080
     break;
1081
     
1082
case argument0=3006: //whimsun
1083
     global.msg[0]="* Froggit and Whimsun drew near!"
1084
     global.msg[1]="%%%"     
1085
     break;
1086
1087
case argument0=3007: //moldsmal
1088
     global.msg[0]="* Moldsmal blocked the way!"
1089
     global.msg[1]="%%%"     
1090
     break;     
1091
               
1092
case argument0=9999: // test line
1093
     i=0
1094
     fileid=file_text_open_read("testlines.txt")
1095
     while (file_text_eof(fileid))=false
1096
        {
1097
         global.msg[i]=file_text_read_string(fileid)
1098
         file_text_readln(fileid)
1099
         i+=1
1100
        }
1101
     file_text_close(fileid)
1102
     break;
1103
         
1104
     
1105
     
1106
     
1107
     
1108
     
1109
     
1110
     
1111
     
1112
     
1113
     
1114
     
1115
     
1116
}
1117
1118
#define SCR_GAMESTART
1119
randomize()
1120
1121
global.hp = 20 //hp
1122
global.maxhp = 20 //hp
1123
global.en = 20 //energy
1124
global.maxen = 20 //energy
1125
global.at = 10 //attk
1126
global.df = 10 //def
1127
global.adef= 0 // armor defence
1128
global.sp = 4 //sped
1129
global.asp = 4 //actual sped
1130
global.hb = 5 //hitbox
1131
global.gt = 5 //guts
1132
global.km = 0 //karma
1133
global.ph = 30 //phasing
1134
global.gold = 0
1135
global.xp = 0
1136
global.lv = 1
1137
global.charname=" "
1138
for (i=0; i<8; i+=1)
1139
{
1140
global.item[i]= 0
1141
global.spell[i] = 1
1142
global.bulletvariable[i] = 0
1143
global.menuno = -1
1144
global.menucoord[i] = 0
1145
global.bmenuno = 0
1146
global.bmenucoord[i] = 0
1147
}
1148
1149
for (i=0; i<24; i+=1)
1150
{
1151
global.msg[i] = "%%%"
1152
global.areapop[i]=0
1153
}
1154
global.area=0
1155
for (i=0; i<512; i+=1)
1156
{
1157
global.flag[i]= 0
1158
}
1159
global.idealborder[0]= 0
1160
global.idealborder[1]= 0
1161
global.idealborder[2]= 0
1162
global.idealborder[3]= 0
1163
1164
global.plot = 0
1165
global.currentroom=0
1166
1167
for (i=0; i<3; i+=1)
1168
{
1169
global.monstername[i]="Error"
1170
global.monsterhp[i]=50
1171
global.monstermaxhp[i]=50
1172
global.monsterdef[i]=0
1173
global.xpreward[i] = 0
1174
global.goldreward[i] =0
1175
global.itemrewardid[i] = 0
1176
global.itemrewardchance[i] = 0
1177
global.monster[i] = 0
1178
global.attacker[i] = 0
1179
global.mnpwr[i] = 0
1180
global.bulletpwr[i] = 0
1181
global.hurtanim[i] = 0
1182
}
1183
global.xpreward[3] = 0
1184
global.goldreward[3] = 0
1185
1186
global.battlegroup = 3
1187
global.turntimer = 0
1188
global.talked = 0
1189
global.inv = 20
1190
global.invc = 0
1191
global.turnmax = 0
1192
global.myfight = 0
1193
global.mnfight = 0
1194
global.incombat = 0
1195
global.firingrate = 14
1196
global.border = 0
1197
global.turn = 0
1198
global.actfirst = 0
1199
global.extraintro = 0
1200
global.mytarget = 0
1201
global.confirm = "ord('z')"
1202
global.damagetimer = 90
1203
1204
//spellnames
1205
1206
//itemnames
1207
1208
global.attacktype = 1
1209
global.wstrength = 0
1210
global.pwr = 0
1211
global.attackspeed = 11
1212
global.attackspeedr = 2
1213
1214
global.wstrength = 0
1215
global.kills = 0
1216
global.specialbattle=0
1217
1218
global.myview = 0
1219
global.hshake = 0
1220
global.vshake = 0
1221
global.shakespeed = 0
1222
global.encounter=0
1223
1224
1225
// overworld
1226
1227
global.facing = 0
1228
global.phasing= 0
1229
1230
global.choices = 0
1231
1232
global.interact = 0
1233
global.viewpan = 0
1234
global.inbattle=0
1235
global.facechoice=0
1236
global.faceemotion=0
1237
global.seriousbattle=0
1238
global.mercy=0 // if 1, then there's no "run" command. if 2, then you cannot select anything at all.
1239
1240
global.item[0]= 0
1241
global.item[1]= 0
1242
global.item[2]= 0
1243
global.item[3]= 0
1244
global.item[4]= 0
1245
global.item[5]= 0
1246
global.item[6]= 0
1247
global.item[7]= 0
1248
global.item[8]= 0
1249
global.weapon = 3
1250
global.armor = 4
1251
1252
global.phone[0]=0  // papyrus
1253
global.phone[1]=0  // undine
1254
global.phone[2]=0  // mettaton
1255
global.phone[3]=0  // sans
1256
global.phone[4]=0  // dralphys
1257
global.phone[5]=0  // other
1258
global.phone[6]=0
1259
global.phone[7]=0
1260
global.phone[8]=0
1261
//0 --> nobody
1262
//1 --> torielHello
1263
//2 --> torielPuzzleHelp
1264
//3 --> torielAboutYou
1265
//4 --> torielMom...
1266
//5 --> torielFlirt
1267
//6 --> Papyrus
1268
//7 --> Sans1 (prank number 1)
1269
//8 --> Sans2 (prank number 2)
1270
//9 --> Sans3 (prank number 3)
1271
//10 --> GrandpaSemi (Hello... id like a large pepperoni pizza...)
1272
//11 --> DrAlphys
1273
//12 --> Undine
1274
//13 --> Mettaton
1275
1276
1277
global.menuchoice[0]=1
1278
global.menuchoice[1]=1
1279
global.menuchoice[2]=0
1280
global.menuchoice[3]=0
1281
global.choice=-1
1282
1283
global.lastsavedtime = 0
1284
global.lastsavedkills = 0
1285
global.lastsavedlv=0
1286
global.filechoice=0
1287
global.dontfade=0
1288
1289
global.entrance=0
1290
global.currentsong=" "
1291
global.typer=5
1292
1293
global.debug=0
1294
1295
#define SCR_DIRECT
1296
global.bulletvariable[0] = argument0 //chasespeed
1297
global.bulletvariable[1] = argument1 //speedvariance
1298
global.bulletvariable[2] = argument2 //direction variance
1299
global.bulletvariable[3] = argument3 //gravity
1300
global.bulletvariable[4] = argument4 //gdirection
1301
global.bulletvariable[5] = argument5 //friction
1302
global.bulletvariable[6] = argument6 //direction
1303
global.bulletvariable[7] = argument7 //directionalspeed
1304
bulletnumber = argument8 
1305
global.bulletappearance = argument9
1306
1307
1308
for (i=0; i<=bulletnumber;i+=1)
1309
{
1310
iii=instance_create(x,y,blt_direct)
1311
iii.dmg = global.monsteratk[myself]
1312
}
1313
1314
//1, 4, 60, 0.5, 270, 0.1, 8 rain
1315
1316
#define SCR_THATCH
1317
xdiff = argument0 //xdiff
1318
ydiff = argument1 //ydiff
1319
global.bulletvariable[2] = argument2 //thatch angle
1320
global.bulletvariable[3] = argument3 //gravity
1321
global.bulletvariable[4] = argument4 //gdirection
1322
global.bulletvariable[5] = argument5 //friction
1323
global.bulletvariable[6] = argument6 //direction
1324
global.bulletvariable[7] = argument7 //directionalspeed
1325
thatchbonus = argument8 //thatchbonus
1326
bulletnumber = argument9
1327
global.bulletappearance = argument10
1328
1329
1330
for (i=0; i<=bulletnumber;i+=1)
1331
{
1332
global.bulletvariable[6] += argument2
1333
global.bulletvariable[7] += (argument8*i)
1334
iii = instance_create(x+(i*xdiff),y+(i*ydiff),blt_thatch)
1335
with (iii) dmg = 5
1336
global.bulletvariable[6] -= argument2*2
1337
global.bulletvariable[7] -= (argument8*i)*2
1338
iii = instance_create(x+(i*xdiff),y+(i*ydiff),blt_thatch)
1339
with (iii) dmg = 5
1340
global.bulletvariable[6] = argument6
1341
global.bulletvariable[7] = argument7
1342
}
1343
1344
//1, 4, 60, 0.5, 270, 0.1, 8 rain
1345
1346
#define SCR_LASER
1347
global.bulletvariable[0] = argument0 //ORIGINSPEED
1348
global.bulletvariable[1] = argument1 //ORIGINDIR
1349
global.bulletvariable[2] = argument2 //GOALX
1350
global.bulletvariable[3] = argument3 //GOALY
1351
global.bulletvariable[4] = argument4 //gravity
1352
global.bulletvariable[5] = argument5 //gdirection
1353
global.bulletvariable[6] = argument6 //friction
1354
global.bulletvariable[7] = argument7 //GOALDIR
1355
global.bulletvariable[8] = argument8 //GOALSPEED
1356
global.bulletappearance = argument9
1357
1358
1359
1360
instance_create(x,y,blt_laser)
1361
1362
#define SCR_BORDERSETUP
1363
if global.border = 0 then // dialogue box
1364
{
1365
global.idealborder[0] = 32
1366
global.idealborder[1] = 602
1367
global.idealborder[2] = 250
1368
global.idealborder[3] = 385
1369
}
1370
1371
if global.border = 1 then // standard box
1372
{
1373
global.idealborder[0] = 217
1374
global.idealborder[1] = 417
1375
global.idealborder[2] = 180
1376
global.idealborder[3] = 385
1377
}
1378
1379
if global.border = 2 then // tower box
1380
{
1381
global.idealborder[0] = 217
1382
global.idealborder[1] = 417
1383
global.idealborder[2] = 125
1384
global.idealborder[3] = 385
1385
}
1386
1387
if global.border = 3 then // small box
1388
{
1389
global.idealborder[0] = 237
1390
global.idealborder[1] = 397
1391
global.idealborder[2] = 250
1392
global.idealborder[3] = 385
1393
}
1394
1395
if global.border = 4 then // claustrophobic box
1396
{
1397
global.idealborder[0] = 267
1398
global.idealborder[1] = 367
1399
global.idealborder[2] = 295
1400
global.idealborder[3] = 385
1401
}
1402
1403
if global.border = 5 then // wide-small box
1404
{
1405
global.idealborder[0] = 192
1406
global.idealborder[1] = 442
1407
global.idealborder[2] = 250
1408
global.idealborder[3] = 385
1409
}
1410
1411
if global.border = 6 then // slightly bigger box PREP
1412
{
1413
global.idealborder[0] = 227
1414
global.idealborder[1] = 407
1415
global.idealborder[2] = 250
1416
global.idealborder[3] = 385
1417
}
1418
if global.border = 7 then // slightly bigger box TALL
1419
{
1420
global.idealborder[0] = 227
1421
global.idealborder[1] = 407
1422
global.idealborder[2] = 200
1423
global.idealborder[3] = 385
1424
}
1425
1426
if global.border = 8 then // short box
1427
{
1428
global.idealborder[0] = 202
1429
global.idealborder[1] = 432
1430
global.idealborder[2] = 290
1431
global.idealborder[3] = 385
1432
}
1433
1434
#define scr_monstersetup
1435
//determine our ID based on who else is around. we're alive
1436
1437
myself = 0
1438
1439
if global.monster[1] = 1 then
1440
   {
1441
   myself = 2
1442
   global.monster[2] = 1
1443
  }
1444
1445
if global.monster[0] = 1 and myself != 2 then
1446
   {
1447
   myself = 1
1448
   global.monster[1] = 1
1449
   }
1450
   
1451
if global.monster[0] = 0 then
1452
   {
1453
   myself = 0
1454
   global.monster[0] = 1
1455
   }
1456
1457
if global.monstertype[myself] = 1 then
1458
   {
1459
   global.monstername[myself]="TestFroggit"
1460
   global.monstermaxhp[myself]=23
1461
   global.monsterhp[myself]=23
1462
   global.monsteratk[myself]=4
1463
   global.monsterdef[myself]=1
1464
   global.xpreward[myself] = 2
1465
   global.goldreward[myself] = 2
1466
   global.itemrewardid = 1
1467
   global.itemrewardchance = 50
1468
   }
1469
1470
if global.monstertype[myself] = 2 then
1471
   {
1472
   global.monstername[myself]="Dummy"
1473
   global.monstermaxhp[myself]=15
1474
   global.monsterhp[myself]=15
1475
   global.monsteratk[myself]=0
1476
   global.monsterdef[myself]=-5
1477
   global.xpreward[myself] = 0
1478
   global.goldreward[myself] = 0
1479
   global.itemrewardid = 0
1480
   global.itemrewardchance = 0
1481
   }
1482
if global.monstertype[myself] = 3 then
1483
   {
1484
   global.monstername[myself]="Froggit"
1485
   global.monstermaxhp[myself]=23
1486
   global.monsterhp[myself]=23
1487
   global.monsteratk[myself]=4
1488
   global.monsterdef[myself]=1
1489
   global.xpreward[myself] = 10
1490
   global.goldreward[myself] = 20
1491
   global.itemrewardid = 1
1492
   global.itemrewardchance = 50
1493
   }
1494
   
1495
if global.monstertype[myself] = 4 then
1496
   {
1497
   global.monstername[myself]="Froggit"
1498
   global.monstermaxhp[myself]=30
1499
   global.monsterhp[myself]=30
1500
   global.monsteratk[myself]=4
1501
   global.monsterdef[myself]=4
1502
   global.xpreward[myself] = 3
1503
   global.goldreward[myself] = 2
1504
   global.itemrewardid = 1
1505
   global.itemrewardchance = 50
1506
   }
1507
   
1508
   
1509
if global.monstertype[myself] = 5 then
1510
   {
1511
   global.monstername[myself]="Whimsun"
1512
   global.monstermaxhp[myself]=10
1513
   global.monsterhp[myself]=10
1514
   global.monsteratk[myself]=4
1515
   global.monsterdef[myself]=0
1516
   global.xpreward[myself] = 2
1517
   global.goldreward[myself] = 2
1518
   global.itemrewardid = 1
1519
   global.itemrewardchance = 50
1520
   }
1521
   
1522
if global.monstertype[myself] = 6 then
1523
   {
1524
   global.monstername[myself]="Moldsmal"
1525
   global.monstermaxhp[myself]=50
1526
   global.monsterhp[myself]=50
1527
   global.monsteratk[myself]=4
1528
   global.monsterdef[myself]=0
1529
   global.xpreward[myself] = 3
1530
   global.goldreward[myself] = 3
1531
   global.itemrewardid = 1
1532
   global.itemrewardchance = 50
1533
   }
1534
1535
if global.monstertype[myself] = 7 then
1536
   {
1537
   global.monstername[myself]="Migosp"
1538
   global.monstermaxhp[myself]=40
1539
   global.monsterhp[myself]=40
1540
   global.monsteratk[myself]=5
1541
   global.monsterdef[myself]=4
1542
   global.xpreward[myself] = 5
1543
   global.goldreward[myself] = 4
1544
   global.itemrewardid = 1
1545
   global.itemrewardchance = 50
1546
   }
1547
1548
   
1549
if global.monstertype[myself] = 8 then
1550
   {
1551
   global.monstername[myself]="Vegetoid"
1552
   global.monstermaxhp[myself]=72
1553
   global.monsterhp[myself]=72
1554
   global.monsteratk[myself]=5
1555
   global.monsterdef[myself]=0
1556
   global.xpreward[myself] = 6
1557
   global.goldreward[myself] = 1
1558
   global.itemrewardid = 1
1559
   global.itemrewardchance = 50
1560
   }   
1561
1562
if global.monstertype[myself] = 9 then
1563
   {
1564
   global.monstername[myself]="Loox"
1565
   global.monstermaxhp[myself]=50
1566
   global.monsterhp[myself]=50
1567
   global.monsteratk[myself]=5
1568
   global.monsterdef[myself]=4
1569
   global.xpreward[myself] = 7
1570
   global.goldreward[myself] = 5
1571
   global.itemrewardid = 1
1572
   global.itemrewardchance = 50
1573
   }
1574
   
1575
if global.monstertype[myself] = 10 then
1576
   {
1577
   global.monstername[myself]="Toriel"
1578
   global.monstermaxhp[myself]=440
1579
   global.monsterhp[myself]=440
1580
   global.monsteratk[myself]=6
1581
   global.monsterdef[myself]=2
1582
   if global.flag[202]>11 and global.flag[203]>11 then global.monsterdef[myself]=-9999
1583
   global.xpreward[myself] = 0
1584
   global.goldreward[myself] = 0
1585
   global.itemrewardid = 0
1586
   global.itemrewardchance = 0
1587
   }
1588
1589
   
1590
if global.monstertype[myself] = 11 then
1591
   {
1592
   global.monstername[myself]="Napstablook"
1593
   global.monstermaxhp[myself]=88
1594
   global.monsterhp[myself]=88
1595
   global.monsteratk[myself]=5
1596
   global.monsterdef[myself]=4
1597
   global.xpreward[myself] = -1
1598
   global.goldreward[myself] = 0
1599
   global.itemrewardid = 0
1600
   global.itemrewardchance = 0
1601
   }
1602
   
1603
if global.monstertype[myself] = 13 then //Doge B
1604
   {
1605
   global.monstername[myself]="Doge"
1606
   global.monstermaxhp[myself]=62
1607
   global.monsterhp[myself]=62
1608
   global.monsteratk[myself]=7
1609
   global.monsterdef[myself]=5
1610
   global.xpreward[myself] =30
1611
   global.goldreward[myself] =9
1612
   global.itemrewardid = 0
1613
   global.itemrewardchance = 0
1614
   }
1615
1616
#define scr_battlegroup
1617
//make some noise
1618
   global.monster[0] = 0
1619
global.monster[1] = 0
1620
global.monster[2] = 0
1621
global.monster[3] = 0
1622
1623
1624
if global.battlegroup = 1 then
1625
   {
1626
   global.monstertype[0] = 1
1627
   global.monstertype[1] = 1
1628
   global.monstertype[2] = 1
1629
   global.batmusic=caster_load("music/battle1.ogg")
1630
   caster_loop(global.batmusic,0.5,1)
1631
   global.msc=2
1632
   global.battlelv=1
1633
   global.actfirst=0
1634
   global.extraintro=0
1635
   global.monsterinstance[0] = instance_create(216,136,obj_testmonster)
1636
   global.monsterinstance[1] = instance_create(418,136,obj_testmonster)
1637
   global.monsterinstance[2] = instance_create(14,136,obj_testmonster)
1638
   }
1639
   
1640
if global.battlegroup = 2 then
1641
   {
1642
   global.monstertype[0] = 2
1643
   global.monstertype[1] = 0
1644
   global.monstertype[2] = 0
1645
   global.batmusic=caster_load("music/prebattle1.ogg")
1646
   caster_loop(global.batmusic,0.5,1)
1647
   global.msc=global.battlegroup+3000
1648
   global.battlelv=0
1649
   global.actfirst=0
1650
   global.extraintro=0
1651
   global.monsterinstance[0] = instance_create(216,136,obj_dummymonster)   
1652
   }
1653
   
1654
if global.battlegroup = 3 then
1655
   {
1656
   global.monstertype[0] = 3
1657
   global.monstertype[1] = 0
1658
   global.monstertype[2] = 0
1659
   global.batmusic=caster_load("music/prebattle1.ogg")
1660
   caster_loop(global.batmusic,0.5,1)
1661
   global.msc=global.battlegroup+3000
1662
   global.battlelv=0
1663
   global.actfirst=0
1664
   global.extraintro=0
1665
   global.monsterinstance[0] = instance_create(216,136,obj_fakefroggit)   
1666
   }
1667
   
1668
if global.battlegroup = 4 then
1669
   {
1670
   global.monstertype[0] = 4
1671
   global.monstertype[1] = 0
1672
   global.monstertype[2] = 0
1673
   global.batmusic=caster_load("music/battle1.ogg")
1674
   caster_loop(global.batmusic,0.5,1)
1675
   global.msc=global.battlegroup+3000
1676
   global.battlelv=0
1677
   global.actfirst=0
1678
   global.extraintro=0
1679
   global.monsterinstance[0] = instance_create(216,136,obj_froggit)   
1680
   }
1681
   
1682
if global.battlegroup = 5 then
1683
   {
1684
   global.monstertype[0] = 5
1685
   global.monstertype[1] = 0
1686
   global.monstertype[2] = 0
1687
   global.batmusic=caster_load("music/battle1.ogg")
1688
   caster_loop(global.batmusic,0.5,1)
1689
   global.msc=global.battlegroup+3000
1690
   global.battlelv=0
1691
   global.actfirst=0
1692
   global.extraintro=0
1693
   global.monsterinstance[0] = instance_create(214,16,obj_whimsun)   
1694
   }
1695
   
1696
if global.battlegroup = 6 then
1697
   {
1698
   global.monstertype[0] = 4
1699
   global.monstertype[1] = 5
1700
   global.monstertype[2] = 0
1701
   global.batmusic=caster_load("music/battle1.ogg")
1702
   caster_loop(global.batmusic,0.5,1)
1703
   global.msc=global.battlegroup+3000
1704
   global.battlelv=0
1705
   global.actfirst=0
1706
   global.extraintro=0
1707
   global.monsterinstance[0] = instance_create(216,136,obj_froggit) 
1708
   global.monsterinstance[1] = instance_create(317,16,obj_whimsun)   
1709
   }
1710
1711
if global.battlegroup = 7 then
1712
   {
1713
   global.monstertype[0] = 6
1714
   global.monstertype[1] = 0
1715
   global.monstertype[2] = 0
1716
   global.batmusic=caster_load("music/battle1.ogg")
1717
   caster_loop(global.batmusic,0.5,1)
1718
   global.msc=global.battlegroup+3000
1719
   global.battlelv=0
1720
   global.actfirst=0
1721
   global.extraintro=0
1722
   global.monsterinstance[0] = instance_create(216,156,obj_moldsmal)
1723
   }
1724
   
1725
if global.battlegroup = 8 then
1726
   {
1727
   global.monstertype[0] = 6
1728
   global.monstertype[1] = 6
1729
   global.monstertype[2] = 6
1730
   global.batmusic=caster_load("music/battle1.ogg")
1731
   caster_loop(global.batmusic,0.5,1)
1732
   global.msc=global.battlegroup+3000
1733
   global.battlelv=0
1734
   global.actfirst=0
1735
   global.extraintro=0
1736
   global.msc=0
1737
   global.msg[0]="* You tripped into a&  line of Moldsmals."
1738
 //  global.monsterinstance[0] = instance_create(115,136,obj_froggit)
1739
   global.monsterinstance[0] = instance_create(15,156,obj_moldsmal)
1740
   global.monsterinstance[1] = instance_create(217,156,obj_moldsmal)
1741
   global.monsterinstance[2] = instance_create(421,156,obj_moldsmal)
1742
   }
1743
 
1744
if global.battlegroup = 9 then
1745
   {
1746
   global.monstertype[0] = 4
1747
   global.monstertype[1] = 4
1748
   global.monstertype[2] = 0
1749
   global.batmusic=caster_load("music/battle1.ogg")
1750
   caster_loop(global.batmusic,0.5,1)
1751
   global.msc=0
1752
   global.battlelv=0
1753
   global.actfirst=0
1754
   global.extraintro=0
1755
    global.msg[0]="* A pair of Froggits hop&  towards you."
1756
   global.monsterinstance[0] = instance_create(116,136,obj_froggit)
1757
   global.monsterinstance[1] = instance_create(320,136,obj_froggit) 
1758
   }
1759
   
1760
if global.battlegroup = 10 then
1761
   {
1762
   global.monstertype[0] = 6
1763
   global.monstertype[1] = 6
1764
   global.monstertype[2] = 0
1765
   global.batmusic=caster_load("music/battle1.ogg")
1766
   caster_loop(global.batmusic,0.5,1)
1767
   global.msc=0
1768
   global.battlelv=0
1769
   global.actfirst=0
1770
   global.extraintro=0
1771
    global.msg[0]="* Moldsmal and Moldsmal&  block the way."
1772
   global.monsterinstance[0] = instance_create(116,156,obj_moldsmal)
1773
   global.monsterinstance[1] = instance_create(320,156,obj_moldsmal) 
1774
   }
1775
1776
if global.battlegroup = 11 then
1777
   {
1778
   global.monstertype[0] = 6
1779
   global.monstertype[1] = 7
1780
   global.monstertype[2] = 0
1781
   global.batmusic=caster_load("music/battle1.ogg")
1782
   caster_loop(global.batmusic,0.5,1)
1783
   global.msc=0
1784
   global.battlelv=0
1785
   global.actfirst=0
1786
   global.extraintro=0
1787
    global.msg[0]="* Migosp crawled up close!"
1788
   global.monsterinstance[0] = instance_create(116,156,obj_moldsmal)
1789
   global.monsterinstance[1] = instance_create(320,136,obj_migosp) 
1790
   }
1791
   
1792
if global.battlegroup = 12 then
1793
   {
1794
   global.monstertype[0] = 7
1795
   global.monstertype[1] = 8
1796
   global.monstertype[2] = 0
1797
   global.batmusic=caster_load("music/battle1.ogg")
1798
   caster_loop(global.batmusic,0.5,1)
1799
   global.msc=0
1800
   global.battlelv=0
1801
   global.actfirst=0
1802
   global.extraintro=0
1803
    global.msg[0]="* Vegetoid came out of the earth!"
1804
   global.monsterinstance[0] = instance_create(116,136,obj_migosp)
1805
   global.monsterinstance[1] = instance_create(320,136,obj_vegetoid) 
1806
   }
1807
   
1808
if global.battlegroup = 13 then
1809
   {
1810
   global.monstertype[0] = 9
1811
   global.monstertype[1] = 0
1812
   global.monstertype[2] = 0
1813
   global.batmusic=caster_load("music/battle1.ogg")
1814
   caster_loop(global.batmusic,0.5,1)
1815
   global.msc=0
1816
   global.battlelv=0
1817
   global.actfirst=0
1818
   global.extraintro=0
1819
    global.msg[0]="* Loox drew near!"
1820
   global.monsterinstance[0] = instance_create(218,124,obj_loox)
1821
   }
1822
   
1823
if global.battlegroup = 14 then
1824
   {
1825
   global.monstertype[0] = 9
1826
   global.monstertype[1] = 8
1827
   global.monstertype[2] = 0
1828
   global.batmusic=caster_load("music/battle1.ogg")
1829
   caster_loop(global.batmusic,0.5,1)
1830
   global.msc=0
1831
   global.battlelv=0
1832
   global.actfirst=0
1833
   global.extraintro=0
1834
    global.msg[0]="* Vegetoid and Loox attacked!"
1835
   global.monsterinstance[0] = instance_create(116,124,obj_loox)
1836
   global.monsterinstance[1] = instance_create(320,136,obj_vegetoid) 
1837
   }
1838
   
1839
if global.battlegroup = 15 then
1840
   {
1841
   global.monstertype[0] = 9
1842
   global.monstertype[1] = 8
1843
   global.monstertype[2] = 7
1844
   global.batmusic=caster_load("music/battle1.ogg")
1845
   caster_loop(global.batmusic,0.5,1)
1846
   global.msc=0
1847
   global.battlelv=0
1848
   global.actfirst=0
1849
   global.extraintro=0
1850
    global.msg[0]="* Loox and co. decided to&  pick on you!"
1851
   global.monsterinstance[0] = instance_create(14,124,obj_loox)
1852
   global.monsterinstance[1] = instance_create(218,136,obj_vegetoid)
1853
   global.monsterinstance[2] = instance_create(422,136,obj_migosp) 
1854
   }
1855
1856
if global.battlegroup = 16 then
1857
   {
1858
   global.monstertype[0] = 8
1859
   global.monstertype[1] = 8
1860
   global.monstertype[2] = 0
1861
   global.batmusic=caster_load("music/battle1.ogg")
1862
   caster_loop(global.batmusic,0.5,1)
1863
   global.msc=0
1864
   global.battlelv=0
1865
   global.actfirst=0
1866
   global.extraintro=0
1867
    global.msg[0]="* A pair of Vegetoids&  came out of the ground!"
1868
   global.monsterinstance[0] = instance_create(116,136,obj_vegetoid)
1869
   global.monsterinstance[1] = instance_create(320,136,obj_vegetoid)
1870
   }
1871
   
1872
if global.battlegroup = 17 then
1873
   {
1874
   global.monstertype[0] = 9
1875
   global.monstertype[1] = 9
1876
   global.monstertype[2] = 0
1877
   global.batmusic=caster_load("music/battle1.ogg")
1878
   caster_loop(global.batmusic,0.5,1)
1879
   global.msc=0
1880
   global.battlelv=0
1881
   global.actfirst=0
1882
   global.extraintro=0
1883
    global.msg[0]="* A pair of Loox&  decided to pick on you!"
1884
   global.monsterinstance[0] = instance_create(116,124,obj_loox)
1885
   global.monsterinstance[1] = instance_create(320,124,obj_loox)
1886
   }
1887
   
1888
if global.battlegroup = 18 then
1889
   {
1890
   global.monstertype[0] = 8
1891
   global.monstertype[1] = 0
1892
   global.monstertype[2] = 0
1893
   global.batmusic=caster_load("music/battle1.ogg")
1894
   caster_loop(global.batmusic,0.5,1)
1895
   global.msc=0
1896
   global.battlelv=0
1897
   global.actfirst=0
1898
   global.extraintro=0
1899
    global.msg[0]="* Vegetoid came out of the earth!"
1900
   global.monsterinstance[0] = instance_create(218,136,obj_vegetoid)
1901
   }
1902
1903
if global.battlegroup = 19 then
1904
   {
1905
   global.monstertype[0] = 0
1906
   global.monstertype[1] = 0
1907
   global.monstertype[2] = 0
1908
   global.batmusic=caster_load("music/battle1.ogg")
1909
   caster_loop(global.batmusic,0.3,0.5)
1910
   global.msc=0
1911
   global.battlelv=0
1912
   global.actfirst=0
1913
   global.extraintro=2
1914
    global.msg[2]="* But nobody came./%"
1915
   }
1916
1917
1918
1919
if global.battlegroup = 20 then
1920
   {
1921
   global.monstertype[0] = 11
1922
   global.monstertype[1] = 0
1923
   global.monstertype[2] = 0
1924
   global.batmusic=caster_load("music/ghostbattle.ogg")
1925
   caster_loop(global.batmusic,1,1)
1926
   global.msc=0
1927
   global.battlelv=0
1928
   global.actfirst=0
1929
   global.extraintro=0
1930
    global.msg[0]="* Here comes Napstablook."
1931
   global.monsterinstance[0] = instance_create(266,106,obj_napstablook)
1932
   }   
1933
1934
if global.battlegroup = 21 then
1935
   {
1936
   global.monstertype[0] = 9
1937
   global.monstertype[1] = 0
1938
   global.monstertype[2] = 0
1939
   global.batmusic=caster_load("music/battle1.ogg")
1940
   caster_loop(global.batmusic,0.5,1)
1941
   global.msc=0
1942
   global.battlelv=0
1943
   global.actfirst=0
1944
   global.extraintro=0
1945
    global.msg[0]="* Loox drew near!"
1946
   global.monsterinstance[0] = instance_create(218,124,obj_loox)
1947
   }
1948
   
1949
if global.battlegroup = 22 then
1950
   {
1951
   global.monstertype[0] = 10
1952
   global.monstertype[1] = 0
1953
   global.monstertype[2] = 0
1954
   global.batmusic=caster_load("music/boss1.ogg")
1955
   caster_loop(global.batmusic,1,1)
1956
   global.msc=0
1957
   global.battlelv=0
1958
   global.actfirst=0
1959
   global.extraintro=0
1960
   global.msg[0]="* Toriel blocks the way!"
1961
   global.monsterinstance[0] = instance_create(250,42,obj_torielboss)
1962
   }
1963
   
1964
   
1965
if global.battlegroup = 23 then //doge B
1966
   {
1967
   global.monstertype[0] = 13
1968
   global.monstertype[1] = 0
1969
   global.monstertype[2] = 0
1970
   global.batmusic=caster_load("music/battle1.ogg")
1971
   caster_loop(global.batmusic,0.5,1)
1972
   global.msc=0
1973
   global.battlelv=0
1974
   global.actfirst=0
1975
   global.extraintro=0
1976
   global.msg[0]="* Doge appears."
1977
   global.monsterinstance[0] = instance_create(216,38,obj_dogeB)
1978
   }   
1979
   
1980
global.turn = 0
1981
1982
#define SCR_TEXTTYPE
1983
if argument0 != 0 then global.typer = argument0
1984
if global.typer = 1 then script_execute(SCR_TEXTSETUP,fnt_main,c_white,x+20,y+20,x+(global.idealborder[1]-55),1,1,SND_TXT2,16,32) //main battle
1985
if global.typer = 2 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+190,43,2,SND_TXT1,9,20)
1986
if global.typer = 3 then script_execute(SCR_TEXTSETUP,fnt_curs,c_teal,x,y,x+100,39,3,SND_TXT1,10,10)
1987
if global.typer = 4 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,0,1,snd_txttor,8,18) //main toriel
1988
if global.typer = 5 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,0,1,SND_TXT1,8,18) //main overworld
1989
if global.typer = 6 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,0.5,1,snd_floweytalk1,9,20) //flowey in battle
1990
if global.typer = 7 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,2,2,snd_floweytalk2,9,20) //evilflowey in battle
1991
if global.typer = 8 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,0.5,1,snd_txttor,9,20) //toriel in battle
1992
if global.typer = 9 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,0,1,snd_floweytalk1,8,18) //flowey overworld
1993
if global.typer = 10 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,0,1,snd_nosound,8,18) //main overworld SILENT
1994
if global.typer = 11 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,0,2,SND_TXT2,9,18) //intro
1995
if global.typer = 12 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,1,3,snd_txttor2,10,20) //toriel-beaten in battle
1996
if global.typer = 13 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,2,4,snd_txttor2,11,20) //toriel-beaten in battle
1997
if global.typer = 14 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,3,5,snd_txttor2,14,20) //toriel-beaten in battle
1998
if global.typer = 15 then script_execute(SCR_TEXTSETUP,fnt_plain,c_black,x,y,x+200,0,10,snd_txttor2,18,20) //toriel-beaten in battle
1999
if global.typer = 16 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,view_xview[view_current]+290,1.2,2,snd_floweytalk2,8,18) //evilflowey overworld
2000
if global.typer = 17 then script_execute(SCR_TEXTSETUP,fnt_comicsans,c_white,x+20,y+20,view_xview[view_current]+290,0.8,1,snd_txtsans,8,18) //sas overworld
2001
if global.typer = 18 then script_execute(SCR_TEXTSETUP,fnt_papyrus,c_white,x+20,y+20,view_xview[view_current]+290,0,1,snd_txtpap,11,18) //pap overworld
2002
if global.typer = 19 then script_execute(SCR_TEXTSETUP,fnt_papyrus,c_white,x+20,y+20,view_xview[view_current]+290,0,1,snd_txtpap,15,18) //pap all capitals overworld
2003
if global.typer = 20 then script_execute(SCR_TEXTSETUP,fnt_plainbig,c_black,x,y,x+200,0,2,snd_floweytalk2,25,20) //huge evilflowey
2004
if global.typer = 30 then script_execute(SCR_TEXTSETUP,fnt_main,c_white,x+20,y+20,9999,0,2,snd_txtasg,20,36) //asgore gameover text
2005
if global.typer = 31 then script_execute(SCR_TEXTSETUP,fnt_maintext,c_white,x+20,y+20,9999,0,2,snd_txtasg,12,18)
2006
2007
#define scr_itemdesc
2008
//argument0 = whats the item
2009
switch(true)
2010
{
2011
case argument0=0: //monster candy
2012
        global.msg[0] = '* If you are reading this,&  I messed up somehow./%'
2013
        break;
2014
case argument0=1: //monster candy
2015
        global.msg[0] = '* "Monster Candy" - Heals 10 HP&* Has a distinct,^1 &  non-licorice flavor./%'
2016
        break;
2017
case argument0=2: // croquette roll
2018
        global.msg[0] = '* "Croquet Roll" - Heals 15 HP&* Fried dough traditionally&  served with a mallet./%'
2019
        break;
2020
case argument0=3: //butter knife
2021
        global.msg[0] = '* "Stick" - Weapon AT 0&* Its bark is worse than&  its bite./%'
2022
        break;
2023
case argument0=4: //bandage
2024
        global.msg[0] = '* "Bandage" - Heals 10 HP&* It has already been used& several times./%'
2025
        break;
2026
case argument0=5: //ancient toffee
2027
        global.msg[0] = '* "Rock Candy" - Heals 1 HP&* Here is a recipe to make&  this at home:/'
2028
        global.msg[1] = "* 1. Find a rock/%"
2029
        break;
2030
case argument0=6: //pumpkin rings
2031
        global.msg[0] = '* "Pumpkin Rings" - Heals 8 HP&* A small pumpkin cooked&  like onion rings./%'
2032
        break;
2033
case argument0=7: //Spider Donut
2034
        global.msg[0] = '* "Spider Donut" - Heals 12 HP&* A donut made with Spider&  Cider in the batter./%'
2035
        break;
2036
case argument0=8: //Stoic Onions
2037
        global.msg[0] = '* "Stoic Onion" - Heals 5 HP&'+"* Even eating it raw^1, the&  tears just won't come./%"
2038
        break;
2039
case argument0=9: //Ghost Fruit
2040
        global.msg[0] = '* "Ghost Fruit" - Heals 16 HP&'+"* If eaten^1, it will never&  pass to the other side./%"
2041
        break;
2042
case argument0=10: //Spider Cider
2043
        global.msg[0] = '* "Spider Cider" - Heals 22 HP&* Made with whole spiders^1,&  not just the juice./%'
2044
        break;
2045
case argument0=11: //Butterscotch Pie
2046
        global.msg[0] = '* "Butterscotch Pie" - All HP&* Butterscotch-cinnamon&  pie^1, one slice./%'
2047
        break;
2048
case argument0=12: //ribbon
2049
        global.msg[0] = '* "Faded Ribbon" - Armor DF 3&* Monsters will be reluctant&  to hit you./%'
2050
        break;
2051
case argument0=13: //ribbon
2052
        global.msg[0] = '* "Toy Knife" - Weapon AT 3&* Made of plastic.&* A rarity nowadays./%'
2053
        break;
2054
}
2055
2056
2057
#define scr_attack
2058
if global.weapon = 3 || global.weapon=13 then
2059
{
2060
instance_create(global.idealborder[0]+6, global.idealborder[2]+6, obj_target)
2061
}
2062
2063
#define scr_attackcalc
2064
defarg = global.monsterdef[global.mytarget] 
2065
global.pwr = global.wstrength + global.at
2066
damage = global.pwr - defarg
2067
2068
2069
#define SCR_BORDER
2070
xx = 0
2071
yy = 0
2072
if argument0 = 0 then
2073
{
2074
xx = round(random(global.idealborder[1] - global.idealborder[0])) + global.idealborder[0]
2075
yy = global.idealborder[2]
2076
}
2077
if argument0 = 1 then
2078
{
2079
xx = round(random(global.idealborder[1] - global.idealborder[0])) + global.idealborder[0]
2080
yy = global.idealborder[3] - argument1
2081
}
2082
if argument0 = 2 then
2083
{
2084
yy = round(random(global.idealborder[3] - global.idealborder[2])) + global.idealborder[2]
2085
xx = global.idealborder[0]
2086
}
2087
if argument0 = 3 then
2088
{
2089
yy = round(random(global.idealborder[3] - global.idealborder[2])) + global.idealborder[2]
2090
xx = global.idealborder[1] - argument1
2091
}
2092
2093
#define scr_gameoverb
2094
global.hp=0
2095
if global.battlegroup=22 then obj_torielboss.sprite_index=spr_torielboss_mouthcover
2096
sleep(500)
2097
sound_stop_all()
2098
caster_stop(all)
2099
caster_free(all)
2100
global.myxb = obj_heart.x
2101
global.myyb = obj_heart.y 
2102
room_goto(room_gameover)
2103
2104
#define scr_depth
2105
depth = 50000 - (y*10 + sprite_height*10)
2106
2107
#define scr_interact
2108
myinteract = 1
2109
2110
2111
#define scr_facechoice
2112
if global.facechoice=1
2113
{
2114
instance_create(writer.x-33,writer.y+25,obj_face_torieltalk)
2115
instance_create(0,0,obj_torbody)
2116
}
2117
if global.facechoice=2
2118
{
2119
instance_create(writer.x-36,writer.y+25,obj_face_floweytalk)
2120
}
2121
if global.facechoice=3
2122
{
2123
instance_create(writer.x-35,writer.y+25,obj_face_sans)
2124
}
2125
if global.facechoice=4
2126
{
2127
instance_create(writer.x-35,writer.y+25,obj_face_papyrus)
2128
}
2129
2130
#define scr_gotobattle
2131
2132
#define scr_npcsetup
2133
halt = 0
2134
myinteract = 0
2135
stopped=1
2136
movementtype=argument0
2137
facing=-1
2138
2139
//argument0 = movement type
2140
//2 = faces different directions, talks
2141
//1 = only animates in place
2142
if movementtype=2 then
2143
{
2144
facing=0
2145
}
2146
2147
#define scr_npcdir
2148
if myinteract=0 then
2149
{
2150
2151
if direction>=225 and direction < 315 then
2152
{
2153
facing = 0
2154
sprite_index=dsprite
2155
}
2156
if direction>= 315 or direction < 45 then 
2157
{
2158
facing = 1
2159
sprite_index=rsprite
2160
}
2161
if direction>=45 and direction < 135 then
2162
{
2163
facing = 2
2164
sprite_index=usprite
2165
}
2166
if direction>=135 and direction < 225 then
2167
{
2168
facing = 3
2169
sprite_index=lsprite
2170
}
2171
2172
}
2173
2174
if myinteract=1+argument0 then
2175
{
2176
if facing=0 then sprite_index=dtsprite
2177
if facing=1 then sprite_index=rtsprite
2178
if facing=2 then sprite_index=utsprite
2179
if facing=3 then sprite_index=ltsprite
2180
}
2181
2182
#define scr_storageshift
2183
//argument0=from which item are we shifting
2184
//argument1=what's the item ID we're shifting? if the ID is 0, the item has been used up
2185
//argument2=offset
2186
global.flag[argument2+10]=argument1
2187
for (i=argument0;i<10;i+=1)
2188
  {
2189
  global.flag[i+argument2]=global.flag[i+argument2+1]
2190
  }
2191
  
2192
script_execute(scr_itemnameb)
2193
script_execute(scr_storagename)
2194
2195
#define scr_itemget
2196
//argument0=id of item we are being given
2197
i=0
2198
loop=1
2199
noroom=0
2200
global.item[8]=999
2201
while (loop=1)
2202
   {
2203
     if global.item[i]=0 then
2204
        {
2205
        global.item[i]=argument0
2206
        break
2207
        }
2208
     if i=8 then
2209
        {
2210
        script_execute(scr_itemnospace)
2211
        break;
2212
        }
2213
        i+=1
2214
   }
2215
2216
script_execute(scr_itemnameb)
2217
script_execute(scr_itemname)
2218
2219
#define scr_itemnospace
2220
noroom=1
2221
2222
#define scr_itemname
2223
for (i=0;i<8;i+=1)
2224
{
2225
itemid=global.item[i]
2226
2227
2228
scr_itemnamelist()
2229
2230
2231
}
2232
2233
#define scr_itemnameb
2234
for (i=0;i<8;i+=1)
2235
{
2236
itemid=global.item[i]
2237
2238
2239
2240
2241
switch(true)
2242
{
2243
case itemid=1:
2244
        global.itemnameb[i]="MnstrCndy"
2245
        break;
2246
case itemid=2:
2247
        global.itemnameb[i]="CroqtRoll"
2248
        break;
2249
case itemid=3:
2250
      if global.seriousbattle=0 then global.itemnameb[i]="Stick    "
2251
      if global.seriousbattle=1 then global.itemnameb[i]="Stick    "
2252
        break;
2253
case itemid=4:
2254
        global.itemnameb[i]="Bandage  "
2255
        break;
2256
case itemid=5:
2257
        global.itemnameb[i]="RockCandy"
2258
        break;
2259
case itemid=6:
2260
        global.itemnameb[i]="PunkRings"
2261
        if global.seriousbattle=1 then global.itemnameb[i]="PmknRings"
2262
        break;
2263
case itemid=7:
2264
        global.itemnameb[i]="SpidrDont"
2265
        if global.seriousbattle=1 then global.itemnameb[i]="SpdrDonut"
2266
        break;
2267
case itemid=8:
2268
        global.itemnameb[i]="StocOnoin"
2269
        if global.seriousbattle=1 then global.itemnameb[i]="Onion    "
2270
        break;
2271
case itemid=9:
2272
        global.itemnameb[i]="GhostFrut"
2273
        if global.seriousbattle=1 then global.itemnameb[i]="GhstFruit"
2274
        break;
2275
case itemid=10:
2276
        global.itemnameb[i]="SpidrCidr"
2277
        if global.seriousbattle=1 then global.itemnameb[i]="SpdrCider"
2278
        break;
2279
case itemid=11:
2280
        global.itemnameb[i]="ButtsPie "
2281
        if global.seriousbattle=1 then global.itemnameb[i]="Pie      "
2282
        break;
2283
case itemid=12:
2284
        global.itemnameb[i]="Ribbon   "
2285
        break;
2286
case itemid=13:
2287
        global.itemnameb[i]="Toy Knife"
2288
        break;
2289
}
2290
2291
2292
2293
2294
}
2295
2296
#define scr_itemrewrite
2297
OBJ_WRITER.halt=3
2298
OBJ_INSTAWRITER.halt=3
2299
if global.bmenuno=3 then global.msc=9
2300
if global.bmenuno=3.5 then global.msc=10
2301
instance_create(global.idealborder[0],global.idealborder[2],OBJ_INSTAWRITER)
2302
2303
#define scr_levelup
2304
currentlevel=global.lv
2305
if global.xp >= 10 then global.lv=2
2306
if global.xp >= 30 then global.lv=3
2307
if global.xp >= 70 then global.lv=4
2308
if global.xp >= 120 then global.lv=5
2309
if global.xp >= 200 then global.lv=6
2310
if global.xp >= 300 then global.lv=7
2311
if global.xp >= 500 then global.lv=8
2312
if global.xp >= 800 then global.lv=9
2313
if global.xp >= 1200 then global.lv=10
2314
if global.xp >= 1700 then global.lv=11
2315
if global.xp >= 2500 then global.lv=12
2316
if global.xp >= 3500 then global.lv=13
2317
if global.xp >= 5000 then global.lv=14
2318
if global.xp >= 7000 then global.lv=15
2319
if global.xp >= 10000 then global.lv=16
2320
if global.xp >= 15000 then global.lv=17
2321
if global.xp >= 25000 then global.lv=18
2322
if global.xp >= 50000 then global.lv=19
2323
if global.xp >= 99999 then 
2324
   {
2325
   global.lv=20
2326
   global.xp=99999
2327
   }
2328
if global.lv!=currentlevel then
2329
  {
2330
  levelup=true
2331
  global.maxhp+=((global.lv-currentlevel)*4)
2332
  global.maxen+=((global.lv-currentlevel)*4)
2333
  global.at+=(global.lv-currentlevel)
2334
  global.df+=(global.lv-currentlevel)
2335
  }
2336
  else levelup=false
2337
2338
#define scr_weaponeq
2339
//argument0=which item are we equipping
2340
//argument1=what's the item ID we're shifting? if the ID is 0, the item has been used up
2341
global.item[argument0]=global.weapon
2342
global.weapon=argument1
2343
if global.weapon=3 then global.wstrength = 0
2344
if global.weapon=13 then global.wstrength = 3
2345
script_execute(scr_itemnameb)
2346
script_execute(scr_itemname)
2347
2348
#define scr_armoreq
2349
//argument0=which item are we equipping
2350
//argument1=what's the item ID we're shifting? if the ID is 0, the item has been used up
2351
global.item[argument0]=global.armor
2352
global.armor=argument1
2353
if global.armor=4 then global.adef = 0
2354
if global.armor=12 then global.adef = 3
2355
script_execute(scr_itemnameb)
2356
script_execute(scr_itemname)
2357
2358
#define scr_itemuseb
2359
//argument0 = where's the item
2360
//argument1 = whats the item
2361
switch(true)
2362
{
2363
case argument1=1: //monster candy
2364
        global.msg[0] = "* You ate the Monster Candy."
2365
        if global.seriousbattle=0
2366
          {
2367
        randomtext=round(random(15))
2368
        if randomtext<=2 then global.msg[0] += " &* Very un-licorice-like."
2369
        if randomtext=15 then global.msg[0] += " &* ... tastes like licorice."
2370
          }
2371
        script_execute(scr_recoitem,10)
2372
        instance_create(0,0,obj_foodsound)
2373
        script_execute(scr_itemshift,argument0,0)
2374
        break;
2375
case argument1=2: // croquette roll
2376
        global.msg[0] = "* You hit the Croquet Roll into&  your mouth."
2377
          if global.seriousbattle=1 then global.msg[0]="* You ate the Croquet Roll."
2378
          instance_create(0,0,obj_foodsound)
2379
        script_execute(scr_recoitem,15)
2380
        script_execute(scr_itemshift,argument0,0)
2381
        break;
2382
case argument1=3: //butter knife
2383
       // scr_weaponeq(argument0,argument1)
2384
       // sound_play(snd_item)
2385
        script_execute(scr_writetext,0,"* You threw the stick away^1.&* Then picked it back up./%",0,0)
2386
        break;
2387
case argument1=4: //bandage
2388
        global.msg[0] = "* You re-applied the bandage."
2389
        sound_play(snd_power)
2390
        if global.seriousbattle=0 then global.msg[0] += "&* Still kind of gooey."
2391
        script_execute(scr_recoitem,10)
2392
        script_execute(scr_itemshift,argument0,0)
2393
        break;
2394
case argument1=5: //rock candy
2395
        global.msg[0] = "* You ate the Rock Candy."
2396
        script_execute(scr_recoitem,1)
2397
        instance_create(0,0,obj_foodsound)
2398
        script_execute(scr_itemshift,argument0,0)
2399
        break;        
2400
        
2401
case argument1=6: // pumpkin rings
2402
        global.msg[0] = "* You ate the Pumpkin Rings."
2403
          instance_create(0,0,obj_foodsound)
2404
        script_execute(scr_recoitem,8)
2405
        script_execute(scr_itemshift,argument0,0)
2406
        break;
2407
2408
case argument1=7: // Spider Donut
2409
        global.msg[0] = "* You ate the Spider Donut."
2410
        if global.seriousbattle=0
2411
        if global.inbattle=1
2412
          {
2413
        randomtext=ceil(random(10))
2414
        if randomtext>9 then
2415
        global.msg[0]= "* Don't worry^1, Spider didn't."
2416
          }
2417
          instance_create(0,0,obj_foodsound)
2418
        script_execute(scr_recoitem,12)
2419
        script_execute(scr_itemshift,argument0,0)
2420
        break;
2421
2422
case argument1=8: // stoc on
2423
        global.msg[0] = "* You ate the Stoic Onion."
2424
          if global.seriousbattle=0
2425
          {
2426
        randomtext=round(random(10))
2427
        if randomtext>8 then
2428
        global.msg[0]+= "&* You didn't cry..."
2429
          }
2430
          instance_create(0,0,obj_foodsound)
2431
        script_execute(scr_recoitem,5)
2432
        script_execute(scr_itemshift,argument0,0)
2433
        break;
2434
case argument1=9: // ghstrfuit
2435
        global.msg[0] = "* You ate the Ghost Fruit."
2436
          foodsounder=instance_create(0,0,obj_foodsound)
2437
          if global.seriousbattle=0 with foodsounder soundtype=2
2438
        script_execute(scr_recoitem,16)
2439
        script_execute(scr_itemshift,argument0,0)
2440
        break;
2441
case argument1=10: // spider cider
2442
        global.msg[0] = "* You drank the Spider Cider."
2443
          instance_create(0,0,obj_foodsound)
2444
        script_execute(scr_recoitem,22)
2445
        script_execute(scr_itemshift,argument0,0)
2446
        break;
2447
case argument1=11: // Butterscotch pie
2448
        global.msg[0] = "* You ate the Butterscotch Pie."
2449
          instance_create(0,0,obj_foodsound)
2450
        script_execute(scr_recoitem,999)
2451
        script_execute(scr_itemshift,argument0,0)
2452
        break;
2453
case argument1=12: //ribbon
2454
        scr_armoreq(argument0,argument1)
2455
        sound_play(snd_item)
2456
        script_execute(scr_writetext,0,"* You equipped the ribbon./%",0,0)
2457
        break;
2458
case argument1=13: //soul knife
2459
        scr_weaponeq(argument0,argument1)
2460
        sound_play(snd_item)
2461
        script_execute(scr_writetext,0,"* You equipped Toy Knife./%",0,0)
2462
        break;
2463
2464
2465
case argument1=201: //Say Hello
2466
        if global.plot<19.9
2467
        {
2468
          if global.plot>18 and room=room_torhouse2
2469
              {
2470
               sound_play(snd_phone)
2471
               script_execute(scr_writetext,1507,"x",0,0)
2472
              }
2473
              else
2474
              {
2475
              sound_play(snd_phone)
2476
              script_execute(scr_writetext,1501,"x",0,0)
2477
              }
2478
        }
2479
        else
2480
         {
2481
          sound_play(snd_phone)
2482
          script_execute(scr_writetext,1506,"x",0,0)
2483
         }
2484
        break;
2485
case argument1=202: //Puzzle Help
2486
        if global.plot<19.9
2487
        {
2488
          if global.plot>18 and room=room_torhouse2
2489
              {
2490
               sound_play(snd_phone)
2491
               script_execute(scr_writetext,1507,"x",0,0)
2492
              }
2493
              else
2494
              {
2495
              sound_play(snd_phone)
2496
               script_execute(scr_writetext,1502,"x",0,0)
2497
               script_execute(scr_phoneshift,argument0,0)
2498
               }
2499
        }
2500
         else
2501
         {
2502
          sound_play(snd_phone)
2503
          script_execute(scr_writetext,1506,"x",0,0)
2504
         }
2505
        break;
2506
case argument1=203: //About Yourself
2507
    if global.plot<19.9
2508
        {
2509
          if global.plot>18 and room=room_torhouse2
2510
              {
2511
               sound_play(snd_phone)
2512
               script_execute(scr_writetext,1507,"x",0,0)
2513
              }
2514
              else
2515
              {
2516
              sound_play(snd_phone)
2517
               script_execute(scr_writetext,1503,"x",0,0)
2518
              script_execute(scr_phoneshift,argument0,0)
2519
              }
2520
        }
2521
         else
2522
         {
2523
          sound_play(snd_phone)
2524
          script_execute(scr_writetext,1506,"x",0,0)
2525
         }
2526
        break;
2527
case argument1=204: //Call her "mom"
2528
        if global.plot<19.9
2529
        {
2530
          if global.plot>18 and room=room_torhouse2
2531
              {
2532
               sound_play(snd_phone)
2533
               script_execute(scr_writetext,1507,"x",0,0)
2534
              }
2535
              else
2536
              {
2537
              sound_play(snd_phone)
2538
             script_execute(scr_writetext,1504,"x",0,0)
2539
              script_execute(scr_phoneshift,argument0,0)
2540
              }
2541
        }
2542
         else
2543
         {
2544
          sound_play(snd_phone)
2545
          script_execute(scr_writetext,1506,"x",0,0)
2546
         }
2547
        break;
2548
case argument1=205: //flirt
2549
        if global.plot<19.9
2550
        {
2551
          if global.plot>18 and room=room_torhouse2
2552
              {
2553
               sound_play(snd_phone)
2554
               script_execute(scr_writetext,1507,"x",0,0)
2555
              }
2556
              else
2557
              {
2558
              sound_play(snd_phone)
2559
             if global.flag[41]=1 then script_execute(scr_phoneshift,argument0,0)
2560
              script_execute(scr_writetext,1505,"x",0,0)
2561
              }
2562
        }
2563
         else
2564
         {
2565
          sound_play(snd_phone)
2566
          script_execute(scr_writetext,1506,"x",0,0)
2567
         }
2568
        break;
2569
}
2570
2571
2572
#define scr_recover
2573
global.hp+=argument0
2574
recovered=argument0
2575
if global.hp>global.maxhp then
2576
  {
2577
  global.hp=global.maxhp
2578
  maxedout=1
2579
  }
2580
  else maxedout=0
2581
2582
#define scr_recoitem
2583
script_execute(scr_recover,argument0)
2584
global.item[8] = recovered
2585
if maxedout=1 then global.item[8]=9999
2586
script_execute(scr_writetext,11,"x",0,0)
2587
2588
#define scr_runaway
2589
runvalue= (random(100) + global.lv*2 - global.battlelv*2 + 10*global.turn)
2590
if runvalue > 50 then
2591
   {
2592
   runaway=1
2593
   sound_play(snd_escaped)
2594
   obj_heart.hspeed=-3
2595
   obj_heart.sprite_index=spr_heartgtfo
2596
   obj_heart.image_speed=0.5
2597
   OBJ_WRITER.halt=3
2598
   global.msc=14
2599
   instance_create(global.idealborder[0],global.idealborder[2],OBJ_INSTAWRITER)
2600
   global.flag[11]=1
2601
   }
2602
2603
2604
#define scr_mercystandard
2605
mercy=(global.monsterhp[myself] - global.at - global.wstrength + global.monsterdef[myself] - mercymod)
2606
2607
#define scr_monsterdefeat
2608
if killed = 1 then
2609
{
2610
global.xpreward[3]+= global.xpreward[myself]
2611
global.goldreward[3]+= global.goldreward[myself]
2612
global.vaporspeed=0
2613
global.monstersprite = sprite_index
2614
ddd = instance_create(x,y,obj_vaporized)
2615
//ddd = instance_create(x,y,obj_vaporacquirer)
2616
ddd.image_speed = 0
2617
ddd.image_index = 1
2618
global.kills+=1
2619
global.areapop[global.area]-=1
2620
if global.areapop[global.area]<0 then global.areapop[global.area]=0
2621
global.flag[12]=1
2622
}
2623
if killed = 0 then
2624
{
2625
//global.xpreward[3]+=floor(global.xpreward[myself]*((global.monstermaxhp[myself]-global.monsterhp[myself])/global.monstermaxhp[myself]))
2626
global.goldreward[3]+=floor(global.goldreward[myself]*((global.monstermaxhp[myself]-global.monsterhp[myself])/global.monstermaxhp[myself]))
2627
global.monstersprite = sprite_index
2628
//global.vaporspeed=0
2629
//qqq = instance_create(x,y,obj_vaporizedspare)
2630
ddd = instance_create(x,y,obj_spared)
2631
ddd.image_speed = 0
2632
ddd.image_index = 1
2633
//qqq.image_speed = 0
2634
//qqq.image_index = 1
2635
global.flag[10]=1
2636
}
2637
2638
global.monster[myself] = 0
2639
2640
#define scr_scinit
2641
// screen base(view_wview and view_hview)
2642
screen_x = 0;
2643
screen_y = 0;
2644
screen_w = 320;
2645
screen_h = 240;
2646
screen_scale = 2;
2647
2648
// create a surface for the whole screen to be drawn on
2649
screen = surface_create(screen_w,screen_h);
2650
2651
// this will destroy the screen object if surfaces are not supported on the graphics card, reverting to the viewport method
2652
if screen = -1{instance_destroy();}
2653
2654
#define scr_begin
2655
// this draws the surface on the screen
2656
if (surface_exists(screen)) 
2657
{
2658
surface_reset_target();
2659
draw_clear(0);
2660
draw_set_blend_mode_ext(bm_one, bm_zero);
2661
draw_surface_stretched(screen,screen_x,screen_y,screen_w*screen_scale,screen_h*screen_scale);
2662
draw_set_blend_mode(bm_normal);
2663
screen_refresh();
2664
2665
}
2666
2667
#define scr_end
2668
// this sets surface 'screen' as the drawing target for everything in the game, so all drawing will be done on this surface and not on the game screen
2669
if !surface_exists(screen) screen = surface_create(screen_w,screen_h);
2670
surface_set_target(screen);
2671
2672
#define scr_saveprocess
2673
global.lastsavedkills=global.kills
2674
global.lastsavedtime=obj_time.time
2675
global.lastsavedlv=global.lv
2676
file="file"+string(global.filechoice)
2677
myfileid=file_text_open_write(file)
2678
file_text_write_string(myfileid,global.charname)
2679
file_text_writeln(myfileid)
2680
file_text_write_real(myfileid, (global.lv))
2681
file_text_writeln(myfileid)
2682
file_text_write_real(myfileid, (global.maxhp))
2683
file_text_writeln(myfileid)
2684
file_text_write_real(myfileid, (global.maxen))
2685
file_text_writeln(myfileid)
2686
file_text_write_real(myfileid, (global.at))
2687
file_text_writeln(myfileid)
2688
file_text_write_real(myfileid, (global.wstrength))
2689
file_text_writeln(myfileid)
2690
file_text_write_real(myfileid, (global.df))
2691
file_text_writeln(myfileid)
2692
file_text_write_real(myfileid, (global.adef))
2693
file_text_writeln(myfileid)
2694
file_text_write_real(myfileid, (global.sp))
2695
file_text_writeln(myfileid)
2696
file_text_write_real(myfileid, (global.xp))
2697
file_text_writeln(myfileid)
2698
file_text_write_real(myfileid, (global.gold))
2699
file_text_writeln(myfileid)
2700
file_text_write_real(myfileid, (global.kills))
2701
file_text_writeln(myfileid)
2702
2703
for (i=0; i<8; i+=1)
2704
{
2705
file_text_write_real(myfileid, (global.item[i]))
2706
file_text_writeln(myfileid)
2707
file_text_write_real(myfileid, (global.phone[i]))
2708
file_text_writeln(myfileid)
2709
}
2710
2711
file_text_write_real(myfileid, (global.weapon))
2712
file_text_writeln(myfileid)
2713
file_text_write_real(myfileid, (global.armor))
2714
file_text_writeln(myfileid)
2715
2716
for (i=0; i<512; i+=1)
2717
{
2718
file_text_write_real(myfileid, (global.flag[i]))
2719
file_text_writeln(myfileid)
2720
}
2721
file_text_write_real(myfileid, (global.plot))
2722
file_text_writeln(myfileid)
2723
2724
for (i=0; i<3; i+=1)
2725
{
2726
file_text_write_real(myfileid, (global.menuchoice[i]))
2727
file_text_writeln(myfileid)
2728
}
2729
2730
file_text_write_real(myfileid, (global.currentsong))
2731
file_text_writeln(myfileid)
2732
file_text_write_real(myfileid, (global.currentroom))
2733
file_text_writeln(myfileid)
2734
file_text_write_real(myfileid, (obj_time.time))
2735
2736
file_text_close(myfileid)
2737
2738
#define scr_load
2739
filechoicebk=global.filechoice
2740
room_set_persistent(global.currentroom,0)
2741
script_execute(SCR_GAMESTART)
2742
global.filechoice=filechoicebk
2743
//now load everything that isnt default
2744
2745
file="file"+string(global.filechoice)
2746
myfileid=file_text_open_read(file)
2747
global.charname=file_text_read_string(myfileid); file_text_readln(myfileid);
2748
global.lv=file_text_read_real(myfileid); file_text_readln(myfileid);
2749
global.maxhp=file_text_read_real(myfileid); file_text_readln(myfileid);
2750
global.maxen=file_text_read_real(myfileid); file_text_readln(myfileid);
2751
global.at=file_text_read_real(myfileid); file_text_readln(myfileid);
2752
global.wstrength=file_text_read_real(myfileid); file_text_readln(myfileid);
2753
global.df=file_text_read_real(myfileid); file_text_readln(myfileid);
2754
global.adef=file_text_read_real(myfileid); file_text_readln(myfileid);
2755
global.sp=file_text_read_real(myfileid); file_text_readln(myfileid);
2756
global.xp=file_text_read_real(myfileid); file_text_readln(myfileid);
2757
global.gold=file_text_read_real(myfileid); file_text_readln(myfileid);
2758
global.kills=file_text_read_real(myfileid); file_text_readln(myfileid);
2759
2760
for (i=0; i<8; i+=1)
2761
{
2762
global.item[i]=file_text_read_real(myfileid); file_text_readln(myfileid);
2763
global.phone[i]=file_text_read_real(myfileid); file_text_readln(myfileid);
2764
}
2765
2766
global.weapon=file_text_read_real(myfileid); file_text_readln(myfileid);
2767
global.armor=file_text_read_real(myfileid); file_text_readln(myfileid);
2768
2769
for (i=0; i<512; i+=1)
2770
{
2771
global.flag[i]=file_text_read_real(myfileid); file_text_readln(myfileid);
2772
}
2773
global.plot=file_text_read_real(myfileid); file_text_readln(myfileid);
2774
2775
for (i=0; i<3; i+=1)
2776
{
2777
global.menuchoice[i]=file_text_read_real(myfileid); file_text_readln(myfileid);
2778
}
2779
2780
global.currentsong=file_text_read_real(myfileid); file_text_readln(myfileid);
2781
global.currentroom=file_text_read_real(myfileid); file_text_readln(myfileid);
2782
obj_time.time=file_text_read_real(myfileid); file_text_readln(myfileid);
2783
2784
global.lastsavedkills=global.kills
2785
global.lastsavedtime=obj_time.time
2786
global.lastsavedlv=global.lv
2787
2788
file_text_close(myfileid)
2789
2790
global.hp=global.maxhp
2791
global.en=global.maxen
2792
2793
script_execute(scr_tempsave)
2794
2795
room_goto(global.currentroom)
2796
2797
2798
2799
#define scr_writetext
2800
//arg0 = msc
2801
//arg1 = msg
2802
//arg2 = face plate
2803
//arg3 = typer
2804
2805
global.facechoice=0
2806
2807
global.msc=argument0
2808
if argument1 != "x" then global.msg[0]=argument1
2809
if argument2 != 0 then global.facechoice=argument2
2810
2811
if global.inbattle=0 then
2812
   {
2813
   global.typer=5
2814
   if argument3!=0 then global.typer=argument3
2815
   instance_create(0,0,obj_dialoguer)
2816
   }
2817
   
2818
if global.inbattle=1 then
2819
   {
2820
   OBJ_WRITER.halt=3
2821
   global.typer=1
2822
   if argument3!=0 then global.typer=argument3
2823
   instance_create(global.idealborder[0],global.idealborder[2],OBJ_WRITER)
2824
   }
2825
2826
#define scr_npcdirspeed
2827
if myinteract=0 then
2828
{
2829
2830
if vspeed>0 and vspeed>abs(hspeed) then
2831
{
2832
facing = 0
2833
sprite_index=dsprite
2834
}
2835
if hspeed>0 and hspeed>abs(vspeed) then 
2836
{
2837
facing = 1
2838
sprite_index=rsprite
2839
}
2840
if vspeed<0 and abs(vspeed)>abs(hspeed) then
2841
{
2842
facing = 2
2843
sprite_index=usprite
2844
}
2845
if hspeed<0 and abs(hspeed)>abs(vspeed) then
2846
{
2847
facing = 3
2848
sprite_index=lsprite
2849
}
2850
2851
}
2852
2853
if myinteract=1 then
2854
{
2855
if facing=0 then sprite_index=dtsprite
2856
if facing=1 then sprite_index=rtsprite
2857
if facing=2 then sprite_index=utsprite
2858
if facing=3 then sprite_index=ltsprite
2859
}
2860
2861
#define scr_rotategen
2862
global.bulletvariable[0] = argument0 //number
2863
global.bulletvariable[1] = argument1 //radius
2864
global.bulletvariable[2] = argument2 //bullettype
2865
2866
gen=instance_create(argument3,argument4,obj_rotategen)
2867
2868
#define scr_edge
2869
//right border
2870
//left border
2871
2872
if x>global.idealborder[1]-argument0 then x-=argument0
2873
if x<global.idealborder[0]+argument1 then x+=argument1
2874
2875
#define scr_msgup
2876
global.msc+=1
2877
stringno=0
2878
stringpos=1 //which character of the string it starts on
2879
lineno=0 //default the line's vertical space
2880
writingx = round(writingx)
2881
writingy = round(writingy)
2882
myx = writingx
2883
myy = writingy
2884
2885
script_execute(SCR_TEXT,global.msc)
2886
2887
for (n=0; global.msg[n]!="%%%"; n+=1)
2888
{
2889
mystring[n]=global.msg[n]
2890
}
2891
2892
originalstring=mystring[0]
2893
2894
halt=0 //if 1, you must hit enter to continue
2895
alarm[0]=textspeed
2896
2897
#define scr_phonename
2898
for (i=0;i<8;i+=1)
2899
{
2900
global.phonename[i]=" "
2901
}
2902
2903
for (i=0;i<8;i+=1)
2904
{
2905
itemid=global.phone[i]
2906
2907
2908
2909
2910
switch(true)
2911
{
2912
//phone numbers
2913
case itemid=201: 
2914
        global.phonename[i]="Say Hello"
2915
        break;
2916
case itemid=202: 
2917
        global.phonename[i]="Puzzle Help"
2918
        break;
2919
case itemid=203: 
2920
        global.phonename[i]="About Yourself"
2921
        break;
2922
case itemid=204: 
2923
        global.phonename[i]='Call Her "Mom"'
2924
        break;
2925
case itemid=205: 
2926
        global.phonename[i]="Flirt"
2927
        break;
2928
}
2929
2930
2931
2932
2933
}
2934
2935
#define scr_phoneshift
2936
//argument0=from which item are we shifting
2937
//argument1=what's the item ID we're shifting? if the ID is 0, the item has been used up
2938
global.phone[8]=argument1
2939
for (i=argument0;i<8;i+=1)
2940
  {
2941
  global.phone[i]=global.phone[i+1]
2942
  }
2943
  
2944
script_execute(scr_phonename)
2945
2946
#define scr_phoneget
2947
//argument0=id of item we are being given
2948
i=0
2949
loop=1
2950
global.phone[8]=999
2951
while (loop=1)
2952
   {
2953
     if global.phone[i]=0 then
2954
        {
2955
        global.phone[i]=argument0
2956
        break
2957
        }
2958
     if i=8 then
2959
        {
2960
        script_execute(scr_itemnospace)
2961
        break;
2962
        }
2963
        i+=1
2964
   }
2965
2966
script_execute(scr_phonename)
2967
2968
#define scr_itemcheck
2969
//argument0 = what's the item
2970
haveit=0
2971
for (i=0; i<8; i+=1)
2972
  {
2973
  if global.item[i]=argument0 then haveit=1
2974
  }
2975
2976
#define scr_steps
2977
//argument0 = base steps
2978
//argument1 = randomized steps
2979
//argument2 = population
2980
//argument3 = population ID
2981
2982
global.flag[200]=argument3
2983
if argument2 - global.flag[argument3] > 0 then
2984
{
2985
populationfactor=argument2/(argument2-global.flag[argument3])
2986
if populationfactor>8 then populationfactor=8
2987
steps=(argument0+round(random(argument1)))*populationfactor
2988
}
2989
else
2990
  {  
2991
  steps=(argument0+argument1)*6
2992
  if alldead=0 then alldead=1
2993
  }
2994
2995
#define scr_cost
2996
//argument0=cost of item
2997
if global.gold >= argument0 then afford=1
2998
else afford=0
2999
3000
#define scr_tempload
3001
filechoicebk3=global.filechoice
3002
global.filechoice=9
3003
script_execute(scr_load)
3004
global.filechoice=filechoicebk3
3005
3006
3007
3008
#define scr_tempsave
3009
filechoicebk2=global.filechoice
3010
global.filechoice=9
3011
script_execute(scr_saveprocess)
3012
global.filechoice=filechoicebk2
3013
3014
3015
#define scr_save
3016
script_execute(scr_saveprocess)
3017
3018
filechoicebk2=global.filechoice
3019
global.filechoice=9
3020
script_execute(scr_saveprocess)
3021
global.filechoice=filechoicebk2
3022
iniwrite=ini_open("undertale.ini")
3023
ini_write_string("General","Name",global.charname)
3024
ini_write_real("General","Love",global.lv)
3025
ini_write_real("General","Time",obj_time.time)
3026
ini_write_real("General","Kills",global.kills)
3027
ini_write_real("General","Room",room)
3028
ini_close()
3029
3030
#define scr_onscreen
3031
//argument0=xborder
3032
//argument1=yborder
3033
onscreen=0
3034
if x>view_xview[view_current]-argument0 and x<view_xview[view_current]+view_wview[view_current]+argument0
3035
if y<view_hview[view_current]+view_yview[view_current]+argument1 and y>view_yview[view_current]-argument1 then onscreen=1
3036
3037
#define scr_binfowrite
3038
draw_set_color(c_red)
3039
draw_rectangle(275,400,275 + global.maxhp*1.2, 420, false)
3040
draw_set_color(c_yellow)
3041
draw_rectangle(275,400,275 + global.hp*1.2, 420, false)
3042
draw_set_color(c_white)
3043
draw_set_font(fnt_curs)
3044
hpwrite=string(global.hp)
3045
if global.hp<10 then hpwrite="0"+string(global.hp)
3046
draw_text(290+global.maxhp*1.2,400,hpwrite+ " / "+string(global.maxhp))
3047
draw_text(30,400,string(global.charname) +"   LV " + string(global.lv))
3048
3049
#define Attention, Hackerz
3050
//It's cool that you like my game this much.
3051
3052
//Yes, I know these are easy to decompile... You can edit Yume Nikki and OFF in RPG Maker as well. This isn't really any different.
3053
3054
//My only wish is that you don't spoil the game for anyone else.
3055
//Wait for everyone to discover the secrets in here by themselves.
3056
//Otherwise, there will be no replay value :(
3057
3058
//I'd also appreciate it if you held off on significant modifications before the full game is released.
3059
//I'll most likely be updating some things about the game that might make it interesting to play with.
3060
3061
//I'll be watching...
3062
3063
//Ha ha ha.
3064
3065
#define scr_namingscreen
3066
//selected=65
3067
//charname=""
3068
//naming=3
3069
//selected2=0
3070
//selected3=0
3071
//q=0
3072
3073
3074
draw_set_color(c_white)
3075
draw_set_font(fnt_maintext)
3076
3077
if naming=4 then
3078
   {
3079
   global.charname=charname
3080
   instance_create(0,0,obj_whitefader)
3081
   caster_free(menusong1)
3082
   caster_free(menusong2)
3083
   caster_free(menusong3)
3084
   caster_free(menusong4)
3085
   alerm=0
3086
   naming=5
3087
   cy=caster_load("music/cymbal.ogg")
3088
   caster_play(cy,0.8,0.95)
3089
   }
3090
   
3091
if naming=5 then
3092
{
3093
alerm+=1
3094
if q<120 then q+=1
3095
draw_text_transformed(140+random(r*2)-q/3,q/2+55+random(r*2),charname,1+q/50,1+q/50,random_ranger(-r*q/60,r*q/60))
3096
if alerm>179 then
3097
   {
3098
   instance_create(0,0,obj_persistentfader)
3099
   caster_free(cy)
3100
   room_goto_next()
3101
   }
3102
}
3103
3104
if naming=2
3105
  {
3106
  if keyboard_multicheck_pressed(0)=1
3107
   {
3108
   if selected2=1 and string_length(charname)>0 then naming=4
3109
   if selected2=0 then naming=1
3110
   keyboard_clear(vk_enter)
3111
   }
3112
   if naming=2
3113
   {
3114
   draw_set_color(c_white)
3115
   if q<120 then q+=1
3116
  draw_text_transformed(140+random(r*2)-q/3,q/2+55+random(r*2),charname,1+q/50,1+q/50,random_ranger(-r*q/60,r*q/60))
3117
  draw_text(90,30,"Is this name correct?")
3118
  draw_set_color(c_white)
3119
  if selected2=0 then draw_set_color(c_yellow) //Quit
3120
  draw_text(70,200,"No")
3121
  draw_set_color(c_white)
3122
  if selected2=1 then draw_set_color(c_yellow) //Done
3123
  draw_text(210,200,"Yes")
3124
  
3125
    if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_left)
3126
     {
3127
     if selected2=1 then selected2=0
3128
     else selected2=1
3129
     }
3130
     }
3131
  }
3132
3133
if naming=1 then
3134
{
3135
if selected<65 then selected=65
3136
i=0
3137
j=0
3138
m=0
3139
r=0.5
3140
q=0
3141
for (n=65; n<91; n+=1)
3142
  {
3143
   draw_set_color(c_white)
3144
   if n=selected then draw_set_color(c_yellow)
3145
  draw_text(60+j*32+random(r),75+m*14+random(r),chr(n))
3146
    j+=1
3147
    if j>6 then {m+=1; j=0}
3148
  }
3149
3150
i=0
3151
j=0
3152
m=0
3153
for (n=97; n<123; n+=1)
3154
  {
3155
   draw_set_color(c_white)
3156
   if n=selected then draw_set_color(c_yellow)
3157
  draw_text(60+j*32+random(r),135+m*14+random(r),chr(n))
3158
    j+=1
3159
    if j>6 then {m+=1; j=0}
3160
  }
3161
  
3162
draw_set_color(c_white)
3163
if selected=123 then draw_set_color(c_yellow) //Quit
3164
draw_text(60,200,"Quit")
3165
draw_set_color(c_white)
3166
if selected=124 then draw_set_color(c_yellow) //Backspace
3167
draw_text(120,200,"Backspace")
3168
draw_set_color(c_white)
3169
if selected=125 then draw_set_color(c_yellow) //Done
3170
draw_text(220,200,"Done")
3171
3172
if keyboard_check_pressed(vk_right)
3173
   {
3174
   if selected=90 then selected=97
3175
   else
3176
   if selected<125 then selected+=1
3177
   }
3178
   
3179
if keyboard_check_pressed(vk_left)
3180
   {
3181
   if selected=97 then selected=90
3182
   else
3183
   if selected>65 then selected-=1
3184
   }
3185
3186
if keyboard_check_pressed(vk_down)
3187
   {
3188
   if selected<=122
3189
     {
3190
     if selected>=86 and selected<=90 then selected+=4
3191
     if selected=84 or selected=85 then selected+=11
3192
     selected+=7
3193
     if selected>=123 then selected=124
3194
     }
3195
     else {
3196
         if (selected == 125) { selected = 70; }
3197
         else if (selected == 124) { selected = 68; }
3198
         else { selected = 65; }
3199
     }
3200
   }
3201
3202
if keyboard_check_pressed(vk_up)
3203
   {
3204
   if selected>71
3205
     {
3206
     if selected<=122
3207
        {
3208
        if selected>=97 and selected<=101 then selected-=4
3209
         if selected=102 or selected=103 then selected-=11
3210
         selected-=7
3211
         }
3212
         else selected=122
3213
     }
3214
     else {
3215
         if (selected > 69) { selected = 125; }
3216
         else if (selected > 67) { selected = 124; }
3217
         else selected = 123;
3218
     }
3219
   }
3220
3221
   
3222
if keyboard_multicheck_pressed(0)=1
3223
   {
3224
   if selected>122 then
3225
     {
3226
     if selected=123 then naming=3
3227
     if selected=124 then keyboard_key_press(vk_shift)
3228
     if selected=125 then
3229
     if string_length(charname)>0 then {naming=2; selected2=0}
3230
     keyboard_clear(vk_enter)
3231
     }
3232
     else 
3233
     {
3234
     if string_length(charname)=6 then charname=string_delete(charname,6,1)
3235
     charname+=chr(selected)
3236
     //if string_length(charname)=6 and selected<123 then selected=125
3237
     }
3238
   }
3239
   
3240
if keyboard_multicheck_pressed(1)=1
3241
   {
3242
   s=string_length(charname)
3243
   if s>0 then
3244
      {
3245
      charname=string_delete(charname,s,1)
3246
      }
3247
      keyboard_key_release(vk_shift)
3248
   }
3249
3250
draw_set_color(c_white)
3251
draw_text(140,55,charname)
3252
draw_text(90,30,"Name the fallen human.")
3253
3254
}
3255
3256
if naming=3 then
3257
{
3258
iniread=ini_open("undertale.ini")
3259
if ini_section_exists("General") then
3260
    {
3261
3262
    minutes=floor(time/1800)
3263
    seconds=round(((time/1800-minutes))*60)
3264
    if seconds=60 then seconds=0
3265
    if seconds<10 then seconds="0"+string(seconds)
3266
    script_execute(scr_roomname,roome)
3267
    draw_text(70,60,name)
3268
    draw_text(140,60,"LV "+string(love))
3269
    draw_text(210,60,string(minutes)+":"+string(seconds))
3270
    draw_text(70,80,roomname)
3271
    //draw_text(120,130,string(kills))
3272
    if selected3=0 then draw_set_color(c_yellow)
3273
    draw_text(85,110,"Continue")
3274
    draw_set_color(c_white)
3275
    if selected3=1 then draw_set_color(c_yellow)
3276
    draw_text(175,110,"Restart")
3277
    
3278
    if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_left) then
3279
        {
3280
        if selected3=0 then selected3=1
3281
        else selected3=0
3282
        keyboard_clear(vk_left)
3283
        keyboard_clear(vk_right)
3284
        }
3285
    if keyboard_multicheck_pressed(0)=1 then
3286
        {
3287
        if selected3=0 then
3288
            {
3289
            caster_free(menusong1)
3290
            caster_free(menusong2)
3291
            caster_free(menusong3)
3292
            caster_free(menusong4)
3293
            if file_exists("file0")=false then room_goto_next()
3294
            else 
3295
            {
3296
            script_execute(scr_load)
3297
            }
3298
           }
3299
        if selected3=1 then
3300
            {
3301
            naming=1
3302
            keyboard_clear(vk_enter)
3303
            }
3304
        }
3305
    }
3306
else
3307
    {
3308
    draw_text(70,60,"EMPTY")
3309
   // draw_text(140,60,"LV "+string(love))
3310
    draw_text(210,60,"0:00")
3311
    draw_set_color(c_yellow)
3312
    draw_text(85,90," --- Instruction --")
3313
    draw_text(85,110,"[Z] - Confirm")
3314
    draw_text(85,128,"[X] - Cancel")
3315
    draw_text(85,146,"[C] - Menu (In-game)")
3316
    draw_text(85,164,"[F4] - Fullscreen")
3317
    draw_text(85,182,"[Hold ESC] - Quit")
3318
    draw_text(85,200,"When HP=0, you lose.")
3319
    if keyboard_multicheck_pressed(0)=1 then
3320
       {
3321
       naming=1
3322
       keyboard_clear(vk_enter)
3323
       }
3324
    }
3325
}
3326
3327
3328
#define scr_roomname
3329
roomname="error"
3330
if argument0=0 then roomname="--"
3331
if argument0=16 then roomname="Ruins - Entrance"
3332
if argument0=25 then roomname="Ruins - Leaf Pile"
3333
if argument0=35 then roomname="Ruins - Mouse Hole"
3334
if argument0=51 then roomname="Ruins - Home"
3335
3336
#define keyboard_multicheck
3337
if argument0=0 or argument0=vk_enter
3338
if keyboard_check(vk_enter) or keyboard_check(ord('z')) return true
3339
if argument0=1 or argument0=vk_shift
3340
if keyboard_check(vk_shift) or keyboard_check(ord('x')) return true
3341
if argument0=2 or argument0=vk_control
3342
if keyboard_check(vk_control) or keyboard_check(ord('c')) return true
3343
// 0 = enter/z
3344
// 1 = shift/X
3345
// 2 = ctrl/C
3346
3347
#define keyboard_multicheck_pressed
3348
if argument0=0 or argument0=vk_enter
3349
if keyboard_check_pressed(vk_enter) or keyboard_check_pressed(ord('z')) return true
3350
if argument0=1 or argument0=vk_shift
3351
if keyboard_check_pressed(vk_shift) or keyboard_check_pressed(ord('x')) return true
3352
if argument0=2 or argument0=vk_control
3353
if keyboard_check_pressed(vk_control) or keyboard_check_pressed(ord('c')) return true
3354
// 0 = enter/z
3355
// 1 = shift/X
3356
// 2 = ctrl/C
3357
3358
#define scr_blconmatch
3359
if alarm[5] > 0 //makes all of the monsters extend their balloons as long as the longest one
3360
  {
3361
  if global.monster[0] = 1 if global.monsterinstance[0].alarm[5] > alarm[5] then alarm[5] = global.monsterinstance[0].alarm[5]
3362
  if global.monster[1] = 1 if global.monsterinstance[1].alarm[5] > alarm[5] then alarm[5] = global.monsterinstance[1].alarm[5]
3363
  if global.monster[2] = 1 then if global.monsterinstance[2].alarm[5] > alarm[5] then alarm[5] = global.monsterinstance[2].alarm[5]
3364
  }
3365
3366
#define random_ranger
3367
return random(abs(argument1-argument0))+min(argument1,argument0);
3368
3369
3370
#define draw_self_border
3371
l=0
3372
t=0
3373
w=sprite_width
3374
h=sprite_height
3375
3376
ll=global.idealborder[0]-x
3377
tt=global.idealborder[2]-y
3378
ww=(x+w)-global.idealborder[1]
3379
hh=(y+h)-global.idealborder[3]
3380
3381
if ll>0 then l+=ll
3382
if tt>0 then t+=tt
3383
if ww>0 then w-=ww
3384
if hh>0 then h-=hh
3385
3386
draw_sprite_part(sprite_index,image_index,l,t,w,h,x+l,y+t)
3387
//draw_text(0,0,tt)
3388
//draw_text(0,20,ll)
3389
//draw_text(0,40,ww)
3390
//draw_text(0,60,hh)
3391
3392
#define scr_storagename
3393
for (i=argument0;i<(argument0+11);i+=1)
3394
{
3395
global.itemname[i-argument0]=" "
3396
}
3397
3398
for (i=0;i<(11);i+=1)
3399
{
3400
itemid=global.flag[argument0+i]
3401
scr_itemnamelist()
3402
}
3403
3404
#define scr_itemnamelist
3405
3406
switch(true)
3407
{
3408
case itemid=0:
3409
        global.itemname[i]=" "
3410
        break;
3411
case itemid=1:
3412
        global.itemname[i]="Monster Candy"
3413
        break;
3414
case itemid=2:
3415
        global.itemname[i]="Croquet Roll"
3416
        break;
3417
case itemid=3:
3418
        global.itemname[i]="Stick"
3419
        break;
3420
case itemid=4:
3421
        global.itemname[i]="Bandage"
3422
        break;
3423
case itemid=5:
3424
        global.itemname[i]="Rock Candy"
3425
        break;
3426
case itemid=6:
3427
        global.itemname[i]="Pumpkin Rings"
3428
        break;
3429
case itemid=7:
3430
        global.itemname[i]="Spider Donut"
3431
        break;
3432
case itemid=8:
3433
        global.itemname[i]="Stoic Onion"
3434
        break;
3435
case itemid=9:
3436
        global.itemname[i]="Ghost Fruit"
3437
        break;
3438
case itemid=10:
3439
        global.itemname[i]="Spider Cider"
3440
        break;
3441
case itemid=11:
3442
        global.itemname[i]="Butterscotch Pie"
3443
        break;
3444
case itemid=12:
3445
        global.itemname[i]="Faded Ribbon"
3446
        break;
3447
case itemid=13:
3448
        global.itemname[i]="Toy Knife"
3449
        break;
3450
}
3451
3452
#define scr_storageget
3453
//argument0=id of item we are being given
3454
//argument1=offset
3455
i=0
3456
loop=1
3457
noroom=0
3458
global.flag[argument1+10]=999
3459
while (loop=1)
3460
   {
3461
     if global.flag[i+argument1]=0 then
3462
        {
3463
        global.flag[i+argument1]=argument0
3464
        break
3465
        }
3466
     if i=10 then
3467
        {
3468
        script_execute(scr_itemnospace)
3469
        break;
3470
        }
3471
        i+=1
3472
   }
3473
3474
script_execute(scr_itemnameb)
3475
script_execute(scr_storagename)
3476
3477
#define scr_itemshift
3478
//argument0=from which item are we shifting
3479
//argument1=what's the item ID we're shifting? if the ID is 0, the item has been used up
3480
global.item[8]=argument1
3481
for (i=argument0;i<8;i+=1)
3482
  {
3483
  global.item[i]=global.item[i+1]
3484
  }
3485
  
3486
script_execute(scr_itemnameb)
3487
script_execute(scr_itemname)
3488
3489
#define scr_getvapordata
3490
if sprite_index=spr_torielboss_kneelsmile2 then return "0000000000000000000000000001100000000000001100000000000000000000000000000000000000000000000000000011000000000000000110000000000000000000000000000000000000000000000000000011101111111111101110000000000000000000000000000000000000000000000000001100011111111111110001100000000000000000000000000000000000000000000000111111111111111111111111111000000000000000000000000000000000000000000001111011111101111101111110111100000000000000000000000000000000000000000001111011111111111111111110111100000000000000000000000000000000000000000011111011011101111101110110111110000000000000000000000000000000000000000011111001110001111100011100111110000000000000000000000000000000000000000011111001111111111111111100111110000000000000000000000000000000000000000011111100111110111011111001111110000000000000000000000000000000000000000001111100011111111111110001111100000000000000000000000000000000000011110001111110001101000101100011111100000000000000000000000000000000001111100010111110000011111110000011111010000000000000000000000000000000001111000010000000000000000000000000000010001000000000000000000000000000011111000010000001100000111000111100000010001110000000000000000000000000111111100000000000011100100101111000000010001111000000000000000000000000111111111111111101110001110000000000000101001111100000000000000000000001111111111111111110111111111000000000001001000111110000000000000000000001111111111111111111001111111001000000010001000111111000000000000000000001111111111111111111100111000011100000100001000111111100000000000000000000111110000000000001110000000000000001000001000111111110000000000000000000111100100000011110000000111000000010000110000111111110000000000000000000001001000000000001100000000000001000111001100011111111000000000000000000000001000000000000001000000000100011100100100011111111100000000000000000000010000000000000000000111100001111010000010001111111100000000000000000000010000000000000001100000001111110000000010001111111110000000000000000000010000000000000011110001111110000000000010001111111111000000000000000000100000000000000110000110000000000000000001001111111111000000000000000000100000000000001000000000000000000000000001001111111111100000000000000000100000000000000000000000000000000000000001001111111111100000000000000000100000000000000000000000000000000000000001001111111111110000000000000000100000000011110000000000000000000000000001001111111111110000000000000000010000000000000001100000000000000000000001001111111111110000000000000000001111111111111000000000000000000000000010010011111000111000000000000000111111111111111111101000000000000000000100001111111111001100000000000000110111011100000000000001111111111110000000111000111011011000000000000000000000000000000000000000000000000000000000000000000000000002"
3491
if sprite_index=spr_dummybattle then return "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111011110000000000000000000000000000000000111111111110111110000000000000000000000000000111111111111111011111110000000000000000000000011111111111111111101111111000000000000000000000111111111111111111101111111100000000000000000000111111111111111111110111110000000000000000000000011111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000111111110011111110000000000000000000000000000000111111100111111000000000000000000000000000000000111000000000000100000000000000000000000000000000111111111111111000000000000000000000000000000000100011101111000010000000000000000000000000000000111111110111111111100000000000000000000000000000111111111111111111111000000000000000000000000000111111111111111111111110000000000000000000000000011111111111111111111111000000000000000000000000000000111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000001111000000000000000000000000000000000000000000000111100000000000000000000000000000000000000111111111111111111100000000000000000000000000000000000000000000000000000000000002"
3492
if sprite_index=spr_migosphurt then return "0000000000000000000000000000000000000000000000000000000000000000011100000000000000000111000000000000000000000000001111111000000000000001101111000000000000000000000011111000010000000000001100001111000000000000000000000000000000100000000000100000001100000000000000000000000000000001011111110100000000000000000000000000000000000000011000111110001000000000000000000000000000000000000111111111111111111000000000000000000000000000000000111111111111111111110000000000000000000000000000000110000000111100000001100000000000000000000000000000111000000000000000000111000000000000000000000000111011111111111111111111111100000000000000000000001110011111000000000000000111110011100000000000000000110001111011101111111011110111100011000000000000000011000111111111111111111111111110001100000000000000001111000000000011111110000000000111110000000000000000000001111100100111110010011111100000000000000000000000000111111111111111111111111110000000000000000000000000001110000000000000000011110000000000000000000000000000010000000000000000000010000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000011000000000000000000000000000000000000011111100000001111110000000000000000000000000000001111111100000000011111111000000000000000000000000000000000000000000000000000000000000000000002"
3493
if sprite_index=spr_vegetoidhurt then return "00000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000011100010010100001110000000000000000000000000000000111110100101010100111110000000000000000000000000000011110010010101010001111000000000000000000000000001000000010101010110100000000100000000000000000000000000000000010110110110000000000000000000000000000000000000000000001011000000000000000000000000000000000001111111110000000000011111111000000000000000000000011111111111111111111111111111111100000000000000000011111111111111111111111000111111111000000000000000011111111100001111111110000000111111100000000000000001111111100000001111111000000011111110000000000000000111111110000000111111100111111111111000000000000000001111111111110011111110011111111111000000000000000000011111111111001111111111111111111100000000000000000001111111111111111111111111111111100000000000000000000011110001111110011001111110011110000000000000000000000111100011111111110011100111110000000000000000000000001111000011111111111100111110000000000000000000000000011111000111111111100111110000000000000000000000000000111110001111111000111110000000000000000000000000000001111110000000000111100000000000000000000000000000000001111100000001111100000000000000000000000000000000000011111111111111100000000000000000000000000000000000000011111111111000000000000000000000000000000000000000000011111100000000000000000000000000000000000000000000000000000000000000000000000000002"
3494
if sprite_index=spr_looxhurt then return "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000000000001100000000000000000000000111100000000000000000000011100000000000000000000000001111000000000000000000111110000000000000000000000000111110000000000000000011111000000111111111111111000011111000000000000000001111110011111111111111111111111111100000000000000000111111111111110000000000111111111110000000000000000000111111100000000000000000001111110000000000000000000111111000000000000000000000001111000000000000000000011111000000000000000000000000011110000000000000000011110000000000011111100000000001111100000000000000011111000000001110000001100000000011111000000000000001111100000001100000000001000000001111110000000000000111110000000110001001000100000000111111000000000000111111000000011000100100010000000011111110000000000111111110000000110000000010000000011111111100000000111111111100000001111111110000000011111111111000000111110000111000000000000000000000011000000111110000111100000000010000000000000000000010000000000111100011100000000000011000000000000001100000000000001110001110000000000000000111111111100000000000000000111000111000000000000000000000000000000000000000000011110011111110000000000000000000000000000000000000111111000011101000000000000101000100110000000000000010011100001010000000000000000111011000000001000000000011000000000000000000100000000000000000000100000000000000000000000000000010000000000000000001100000000000000000000000000000011110000000000000001111110000000000000000000000001111111100000000000001111111100000000000000000000000000000000000000000000000000000000000000002"
3495
if sprite_index=spr_froggit then return "00000000000011111110000000000000001111110000000000000000000011111111111000000000011111111111100000000000000001111000001111100000001111111111111100000000000000111000000000111110000111110000001111100000000000001110000000001111100011111000000001111000000000000011100000111111001111001111111000011110000000000000111111111111111111111111111111111111100000000001111111111111111111111111111111111111111000000001111111111111000000000110000000011111111111100000111111111000000111111000001111110000001111111100001111111111111111111111111111111111111111111111100000111111111111111111111111111111111111111111100000000001111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111000000000000000000000000011111111111000111111111111100000000000000000000000111111100010000110001111111100000000000000000000011111111111111111111111111111100000000000000000000111111111000000000001111111111000000000000000000001111110001110001110110011111110000000000000000000011111000100100001100100001111110000000000000000000111110001110000000111000011111110000000000000011111111100000001111000000000011111111100000000001111111110000000100001100000000011111111100000000000000000000000000000000000000000000000000000002"
3496
if sprite_index=spr_moldsmal then return "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000001010010100001100000000000000000000000000000000000111001001110000000000000000000000000000001000000001111000000011100000001100000000000000000111100000000000000000000000000011001000000000000001011100001100000000000000110000011010010000000000101000010011111100111011001110001000010101000000001010001011000001011001010110011111010000101100000010100010100000010100001010001010001101000010100000010100101001100010100001010001010000110101001010000001001101010000101001001010101010010010100000100000010001010000001010011001010100101001001010000110000010001010100001010000001010100010100001101000010000001010110100010010100010100000010100100101000110000000110100000010100100010100100010110000010111000000000000100000101100000010100100001010000001000000000000000010000101000000010100000001010000110000000000000000000000001000000010100000001000000000000000000000000000000000011111100011111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002"
3497
if sprite_index=spr_whimsunhurt then return "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000000000010100000000000000000000000000011100010000000000000010001000000000000000000000000000000000100000111111001000110000000000000000000000000000000010111111111111000011000000000000000000000000000000001000001100001110000000000000000000000000000000000011000011111000001100000000000000000000000000000000011000111111110000110000000000000000000000000000000011101111101111110111100000000000000000000000000000001111111100011111111110000000000000000000000000001000111111000000011111111000000000000000000000000011100111111101001001111111100000000000000000000001100010011111111111111111111110011000000000000000111001110011111001111110011111110011010000000000001110111100011110000011110000111111001110100000000000000000001110011111111111111001111100011111000000000000000000001111111111111111111110001110011010000000000000000000111111111111111111111110000000000000000000000000000000000100001000011000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000010000000000000000000000000000000000000000000010000001000000000000000000000000000000000000000001110000000111100000000000000000000000000000000000001100000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002"
3498
3499
#define murdererlv1
3500
if global.flag[202]>=monsterpopulation1 then return true
3501
else return false