Subversion Repositories nw_plus

Rev

Rev 30 | Rev 66 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30 Rev 52
1
/*
1
/*
2
--------------------------------------------------------------------------------
2
--------------------------------------------------------------------------------
3
Duke: Nuclear Winter
3
Duke: Nuclear Winter
4
By Joris Weimar
4
By Joris Weimar
5
© 1997 Simply Silly Software
5
© 1997 Simply Silly Software
6
--------------------------------------------------------------------------------
6
--------------------------------------------------------------------------------
7
Duke: Nuclear Winter Plus
7
Duke: Nuclear Winter Plus
8
By Hendricks266
8
By Hendricks266
9
--------------------------------------------------------------------------------
9
--------------------------------------------------------------------------------
10
*/
10
*/
11
11
12
definecheat 14 endepisode
12
definecheat 14 endepisode
13
definecheat 15 endlevel
13
definecheat 15 endlevel
14
definecheat 25 endvolume
14
definecheat 25 endvolume
15
15
16
include NWDefs.con
16
include NWDefs.con
17
include NWUser.con
17
include NWUser.con
18
18
19
setgamename Duke: Nuclear Winter
19
setgamename Duke: Nuclear Winter
20
20
21
gamevar picnum 0 2
21
gamevar picnum 0 2
22
gamevar temp 0 2
22
gamevar temp 0 2
23
gamevar tempb 0 2
23
gamevar tempb 0 2
24
gamevar x 0 2
24
gamevar x 0 2
25
gamevar y 0 2
25
gamevar y 0 2
26
gamevar z 0 2
26
gamevar z 0 2
27
27
28
gamevar owner 0 2
28
gamevar owner 0 2
29
gamevar temp2 0 2
29
gamevar temp2 0 2
30
gamevar temp3 0 2
30
gamevar temp3 0 2
31
gamevar temp4 0 2
31
gamevar temp4 0 2
32
gamevar ptemp 0 1
32
gamevar ptemp 0 1
33
gamevar holodukeid 0 1
33
gamevar holodukeid 0 1
34
gamevar musicchange 0 1
34
gamevar musicchange 0 1
35
gamevar skin DUKE 132097 // do not reset flag enabled
35
gamevar skin DUKE 132097 // do not reset flag enabled
36
36
37
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
37
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
38
38
39
state cutsceneambience
39
state cutsceneambience
40
  getactor[THISACTOR].lotag temp
40
  getactor[THISACTOR].lotag temp
41
41
42
  switch temp
42
  switch temp
43
43
44
    case WIND_AMBIENCE
44
    case WIND_AMBIENCE
45
    case WIND_REPEAT
45
    case WIND_REPEAT
46
     setactor[THISACTOR].lotag WIND2
46
     setactor[THISACTOR].lotag WIND2
47
    break
47
    break
48
48
49
    case FLY_BY
49
    case FLY_BY
50
     setactor[THISACTOR].lotag FLY_BY2
50
     setactor[THISACTOR].lotag FLY_BY2
51
    break
51
    break
52
52
53
  endswitch
53
  endswitch
54
ends
54
ends
55
55
56
onevent EVENT_LOADACTOR
56
onevent EVENT_LOADACTOR
57
  getactor[THISACTOR].picnum picnum
57
  getactor[THISACTOR].picnum picnum
58
  switch picnum
58
  switch picnum
59
59
60
   case SNOWYDOORSHOCK 
60
   case SNOWYDOORSHOCK 
61
     spritepal 30
61
     spritepal 30
62
     cactor DOORSHOCK
62
     cactor DOORSHOCK
63
   break
63
   break
64
64
65
   case 3765 case 3766 case 3767 case 3768 cactor WOODENHORSE2 break
65
   case 3765 case 3766 case 3767 case 3768 cactor WOODENHORSE2 break
66
66
67
  // case PIGCOP case PIGCOPSTAYPUT case PIGCOPDIVE sizeat 48 40 break
67
  // case PIGCOP case PIGCOPSTAYPUT case PIGCOPDIVE sizeat 48 40 break
68
   case SOBBOTWALK case SOBBOTFLY sizeat 42 36 break
68
   case SOBBOTWALK case SOBBOTFLY sizeat 42 36 break
69
   case ELFUZI case ELFUZISTAYPUT sizeat 32 27 break
69
   case ELFUZI case ELFUZISTAYPUT sizeat 32 27 break
70
   case ELFGUN case ELFGUNSTAYPUT sizeat 32 27 break
70
   case ELFGUN case ELFGUNSTAYPUT sizeat 32 27 break
71
   case SNOWMAN sizeat 42 36 break
71
   case SNOWMAN sizeat 42 36 break
72
72
73
   case 1915
73
   case 1915
74
    cactor COMMANDER // failsafe fix for NWL5 bug
74
    cactor COMMANDER // failsafe fix for NWL5 bug
75
   break
75
   break
76
76
77
   case MUSICANDSFX
77
   case MUSICANDSFX
78
     state cutsceneambience
78
     state cutsceneambience
79
   break
79
   break
80
80
81
   case JETPACK
81
   case JETPACK
82
     ifspritepal 21 setvar temp 1
82
     ifspritepal 21 setvar temp 1
83
     spritepal 0
83
     spritepal 0
84
   break
84
   break
85
85
86
/*
86
/*
87
   case SNOWFLAKE
87
   case SNOWFLAKE
88
     cactor SNOW
88
     cactor SNOW
89
     sizeat 8 8
89
     sizeat 8 8
90
   break
90
   break
91
*/
91
*/
92
92
93
   case XMASPRESENT
93
   case XMASPRESENT
94
   case XMASPRESENT2
94
   case XMASPRESENT2
95
     getactor[THISACTOR].hitag temp
95
     getactor[THISACTOR].hitag temp
96
     setactor[THISACTOR].hitag 0
96
     setactor[THISACTOR].hitag 0
97
   break
97
   break
98
98
99
  endswitch
99
  endswitch
100
endevent
100
endevent
101
101
-
 
102
onevent EVENT_SPAWN
-
 
103
  getactor[THISACTOR].owner owner
-
 
104
  getactor[THISACTOR].picnum picnum
-
 
105
endevent
-
 
106
102
onevent EVENT_EGS
107
onevent EVENT_EGS
103
 getactor[THISACTOR].picnum picnum
108
 getactor[THISACTOR].picnum picnum
104
 getactor[THISACTOR].owner owner
-
 
105
109
106
 ifactor APLAYER setactor[THISACTOR].mdflags 16
110
 ifactor APLAYER setactor[THISACTOR].mdflags 16
107
 ifactor DUKETORSO setactor[THISACTOR].mdflags 16
111
 ifactor DUKETORSO setactor[THISACTOR].mdflags 16
108
 ifactor DUKEGUN setactor[THISACTOR].mdflags 16
112
 ifactor DUKEGUN setactor[THISACTOR].mdflags 16
109
 ifactor DUKELEG setactor[THISACTOR].mdflags 16
113
 ifactor DUKELEG setactor[THISACTOR].mdflags 16
110
 ifactor DOORSHOCK setactor[THISACTOR].mdflags 16
114
 ifactor DOORSHOCK setactor[THISACTOR].mdflags 16
111
115
112
 ifactor SNOW
116
 ifactor SNOW
113
   {
117
   {
114
     sizeat 8 8
118
     sizeat 8 8
115
119
116
     setvar temp3 0
120
     setvar temp3 0
117
     randvar temp3 2047
121
     randvar temp3 2047
118
     setactor[THISACTOR].ang temp3
122
     setactor[THISACTOR].ang temp3
119
123
120
     setvar temp2 -2047
124
     setvar temp2 -2047
121
     randvar temp2 2047
125
     randvar temp2 2047
122
126
123
/*
127
/*
124
     setvar temp3 0
128
     setvar temp3 0
125
     ifrnd 128 addvar temp3 4
129
     ifrnd 128 addvar temp3 4
126
     ifrnd 128 addvar temp3 8
130
     ifrnd 128 addvar temp3 8
127
     setactor[THISACTOR].cstat temp3
131
     setactor[THISACTOR].cstat temp3
128
*/
132
*/
129
   }
133
   }
130
endevent
134
endevent
131
135
132
// -----------------------------------------------------------------------------
136
// -----------------------------------------------------------------------------
133
137
134
state standard_bjibs
138
state standard_bjibs
135
  guts JIBS2 1
139
  guts JIBS2 1
136
  guts JIBS3 2
140
  guts JIBS3 2
137
  guts JIBS4 3
141
  guts JIBS4 3
138
  guts JIBS5 2
142
  guts JIBS5 2
139
  guts JIBS6 3
143
  guts JIBS6 3
140
  ifrnd 6
144
  ifrnd 6
141
  {
145
  {
142
    guts JIBS1 1
146
    guts JIBS1 1
143
  }         // a badly drawn spine
147
  }         // a badly drawn spine
144
ends
148
ends
145
149
146
state nwbreakobject
150
state nwbreakobject
147
  ifaction 0
151
  ifaction 0
148
  {
152
  {
149
    action ANULLACTION
153
    action ANULLACTION
150
    cstator 257
154
    cstator 257
151
  }
155
  }
152
    ifhitweapon
156
    ifhitweapon
153
    {
157
    {
154
      ifdead
158
      ifdead
155
      {
159
      {
156
        ifactor WOODSLATS
160
        ifactor WOODSLATS
157
        {
161
        {
158
          sound GLASS_HEAVYBREAK
162
          sound GLASS_HEAVYBREAK
159
	  debris SCRAP3 5
163
	  debris SCRAP3 5
160
	  debris SCRAP4 3
164
	  debris SCRAP4 3
161
          killit
165
          killit
162
        }
166
        }
163
      else
167
      else
164
        ifactor RIBBON
168
        ifactor RIBBON
165
        {
169
        {
166
          sound GLASS_HEAVYBREAK
170
          sound GLASS_HEAVYBREAK
167
	  debris SCRAP3 5
171
	  debris SCRAP3 5
168
	  debris SCRAP4 3
172
	  debris SCRAP4 3
169
          killit
173
          killit
170
        }
174
        }
171
      else
175
      else
172
        ifactor MYBOX
176
        ifactor MYBOX
173
        {
177
        {
174
          sound GLASS_HEAVYBREAK
178
          sound GLASS_HEAVYBREAK
175
	  debris SCRAP3 5
179
	  debris SCRAP3 5
176
	  debris SCRAP4 3
180
	  debris SCRAP4 3
177
          killit
181
          killit
178
        }
182
        }
179
      else
183
      else
180
        ifactor SNOWGIB killit
184
        ifactor SNOWGIB killit
181
      else
185
      else
182
        ifactor DRUNKELF
186
        ifactor DRUNKELF
183
        {
187
        {
184
          sound PRED_DYING
188
          sound PRED_DYING
185
          guts JIBS6 2
189
          guts JIBS6 2
186
          guts JIBS6 3
190
          guts JIBS6 3
187
          guts JIBS6 4
191
          guts JIBS6 4
188
          killit
192
          killit
189
        }
193
        }
190
      else
194
      else
191
        ifactor CHOOCHOOSLUT
195
        ifactor CHOOCHOOSLUT
192
        {
196
        {
193
          sound GLASS_HEAVYBREAK
197
          sound GLASS_HEAVYBREAK
194
	  debris SCRAP3 5
198
	  debris SCRAP3 5
195
	  debris SCRAP4 3
199
	  debris SCRAP4 3
196
          killit
200
          killit
197
        }
201
        }
198
      else
202
      else
199
        ifactor HORSEPOWER
203
        ifactor HORSEPOWER
200
        {
204
        {
201
          sound GLASS_HEAVYBREAK
205
          sound GLASS_HEAVYBREAK
202
	  debris SCRAP3 5
206
	  debris SCRAP3 5
203
	  debris SCRAP4 3
207
	  debris SCRAP4 3
204
          killit
208
          killit
205
        }
209
        }
206
      else
210
      else
207
        ifactor CHANDELIER
211
        ifactor CHANDELIER
208
        {
212
        {
209
          sound GLASS_BREAKING
213
          sound GLASS_BREAKING
210
          debris SCRAP3 3
214
          debris SCRAP3 3
211
          debris SCRAP4 4
215
          debris SCRAP4 4
212
          lotsofglass 10
216
          lotsofglass 10
213
          killit
217
          killit
214
        }
218
        }
215
      else
219
      else
216
        ifactor TREEWITHSOMETHING
220
        ifactor TREEWITHSOMETHING
217
        {
221
        {
218
          sound GLASS_HEAVYBREAK
222
          sound GLASS_HEAVYBREAK
219
	  debris SCRAP3 5
223
	  debris SCRAP3 5
220
          ifrnd 96
224
          ifrnd 96
221
          {
225
          {
222
            ifrnd 64 spawn ATOMICHEALTH else spawn SHIELD
226
            ifrnd 64 spawn ATOMICHEALTH else spawn SHIELD
223
          }
227
          }
224
          else
228
          else
225
          {
229
          {
226
            ifrnd 128 spawn STEROIDS else spawn FECES
230
            ifrnd 128 spawn STEROIDS else spawn FECES
227
          }
231
          }
228
          killit
232
          killit
229
        }
233
        }
230
      else
234
      else
231
        ifactor SSPEAKER
235
        ifactor SSPEAKER
232
        {
236
        {
233
	  debris SCRAP4 3
237
	  debris SCRAP4 3
234
          killit
238
          killit
235
        }
239
        }
236
      }
240
      }
237
    }
241
    }
238
ends
242
ends
239
243
240
useractor notenemy WOODSLATS MEDIUMSTRENGTH state nwbreakobject enda
244
useractor notenemy WOODSLATS MEDIUMSTRENGTH state nwbreakobject enda
241
245
242
useractor notenemy RIBBON WEAK state nwbreakobject enda
246
useractor notenemy RIBBON WEAK state nwbreakobject enda
243
247
244
useractor notenemy SSPEAKER WEAK state nwbreakobject enda
248
useractor notenemy SSPEAKER WEAK state nwbreakobject enda
245
249
246
useractor notenemy MYBOX WEAK state nwbreakobject enda
250
useractor notenemy MYBOX WEAK state nwbreakobject enda
247
251
248
useractor notenemy DRUNKELF WEAK state nwbreakobject enda
252
useractor notenemy DRUNKELF WEAK state nwbreakobject enda
249
253
250
useractor notenemy CHOOCHOOSLUT WEAK state nwbreakobject enda
254
useractor notenemy CHOOCHOOSLUT WEAK state nwbreakobject enda
251
255
252
useractor notenemy HORSEPOWER WEAK state nwbreakobject enda
256
useractor notenemy HORSEPOWER WEAK state nwbreakobject enda
253
257
254
useractor notenemy SNOWGIB WEAK state nwbreakobject enda
258
useractor notenemy SNOWGIB WEAK state nwbreakobject enda
255
259
256
useractor notenemy CHANDELIER WEAK state nwbreakobject enda
260
useractor notenemy CHANDELIER WEAK state nwbreakobject enda
257
261
258
useractor notenemy TREEWITHSOMETHING TOUGH state nwbreakobject enda
262
useractor notenemy TREEWITHSOMETHING TOUGH state nwbreakobject enda
259
263
260
actor JETPACK
264
actor JETPACK
261
  fall
265
  fall
262
  ifmove RESPAWN_ACTOR_FLAG
266
  ifmove RESPAWN_ACTOR_FLAG
263
    state respawnit
267
    state respawnit
264
  else
268
  else
265
    ifp pshrunk nullop
269
    ifp pshrunk nullop
266
    else
270
    else
267
      ifp palive
271
      ifp palive
268
        ifpdistl RETRIEVEDISTANCE
272
        ifpdistl RETRIEVEDISTANCE
269
          ifcount 6
273
          ifcount 6
270
            ifpinventory GET_JETPACK JETPACK_AMOUNT
274
            ifpinventory GET_JETPACK JETPACK_AMOUNT
271
              ifcanseetarget
275
              ifcanseetarget
272
      {
276
      {
273
        ifvare temp 1
277
        ifvare temp 1
274
        {
278
        {
275
          addinventory GET_JETPACK JETPACK_NEAR_EMPTY
279
          addinventory GET_JETPACK JETPACK_NEAR_EMPTY
276
          quote 125
280
          quote 125
277
        }
281
        }
278
        else
282
        else
279
        {
283
        {
280
          addinventory GET_JETPACK JETPACK_AMOUNT
284
          addinventory GET_JETPACK JETPACK_AMOUNT
281
          quote 41
285
          quote 41
282
        }
286
        }
283
        ifspawnedby JETPACK
287
        ifspawnedby JETPACK
284
          state getcode
288
          state getcode
285
        else
289
        else
286
          state quikget
290
          state quikget
287
      }
291
      }
288
enda
292
enda
289
293
290
action FEMHDANCE1 205 1 1 1 16
294
action FEMHDANCE1 205 1 1 1 16
291
action FEMHDANCE3 205 1 1 1 26
295
action FEMHDANCE3 205 1 1 1 26
292
action FEMHDANCE2 206 2 1 1 10
296
action FEMHDANCE2 206 2 1 1 10
293
297
294
298
295
299
296
state nwbabecode
300
state nwbabecode
297
 getactor[THISACTOR].cstat temp
301
 getactor[THISACTOR].cstat temp
298
 ifvarand temp 1 nullop else addvar temp 1
302
 ifvarand temp 1 nullop else addvar temp 1
299
 ifactor HALFBITCH { ifvarand temp 128 nullop else addvar temp 128 }
303
 ifactor HALFBITCH { ifvarand temp 128 nullop else addvar temp 128 }
300
 ifvarand temp 256 nullop else addvar temp 256
304
 ifvarand temp 256 nullop else addvar temp 256
301
305
302
 getuserdef .lockout temp2
306
 getuserdef .lockout temp2
303
 ifvare temp2 1
307
 ifvare temp2 1
304
   {
308
   {
305
     ifvarand temp 32768 nullop else addvar temp 32768
309
     ifvarand temp 32768 nullop else addvar temp 32768
306
   }
310
   }
307
 else
311
 else
308
  // {
312
  // {
309
     ifvarand temp 32768 subvar temp 32768
313
     ifvarand temp 32768 subvar temp 32768
310
  // }
314
  // }
311
315
312
 setactor[THISACTOR].cstat temp
316
 setactor[THISACTOR].cstat temp
313
317
314
318
315
319
316
  ifactor HALFBITCH nullop else fall
320
  ifactor HALFBITCH nullop else fall
317
321
318
  ifaction FEMSHRUNK
322
  ifaction FEMSHRUNK
319
  {
323
  {
320
    ifcount SHRUNKDONECOUNT
324
    ifcount SHRUNKDONECOUNT
321
    {
325
    {
322
      action FEMANIMATE
326
      action FEMANIMATE
323
      cstat 257
327
      cstat 257
324
    }
328
    }
325
    else
329
    else
326
      ifcount SHRUNKCOUNT
330
      ifcount SHRUNKCOUNT
327
        sizeto 40 40
331
        sizeto 40 40
328
    else
332
    else
329
      state genericshrunkcode
333
      state genericshrunkcode
330
  }
334
  }
331
  else ifaction FEMGROW
335
  else ifaction FEMGROW
332
  {
336
  {
333
    ifcount 32
337
    ifcount 32
334
    {
338
    {
335
      respawnhitag
339
      respawnhitag
336
      guts JIBS4 20
340
      guts JIBS4 20
337
      guts JIBS6 20
341
      guts JIBS6 20
338
      spritepal 6
342
      spritepal 6
339
      soundonce LADY_SCREAM
343
      soundonce LADY_SCREAM
340
      ifactor SLUTASS debris SCRAP6 1
344
      ifactor SLUTASS debris SCRAP6 1
341
      sound SQUISH2
345
      sound SQUISH2
342
      killit
346
      killit
343
    }
347
    }
344
    else
348
    else
345
      sizeto MAXXSTRETCH MAXYSTRETCH
349
      sizeto MAXXSTRETCH MAXYSTRETCH
346
  }
350
  }
347
351
348
352
349
  else
353
  else
350
    ifaction FEMHDANCE1
354
    ifaction FEMHDANCE1
351
  {
355
  {
352
    ifactioncount 2
356
    ifactioncount 2
353
      action FEMHDANCE2
357
      action FEMHDANCE2
354
  }
358
  }
355
  else
359
  else
356
    ifaction FEMHDANCE2
360
    ifaction FEMHDANCE2
357
  {
361
  {
358
    ifactioncount 8
362
    ifactioncount 8
359
      action FEMHDANCE3
363
      action FEMHDANCE3
360
  }
364
  }
361
  else
365
  else
362
    ifaction FEMHDANCE3
366
    ifaction FEMHDANCE3
363
  {
367
  {
364
    ifactioncount 2
368
    ifactioncount 2
365
    action FEMANIMATE
369
    action FEMANIMATE
366
  }
370
  }
367
  else
371
  else
368
    ifaction FEMFROZEN1
372
    ifaction FEMFROZEN1
369
  {
373
  {
370
    ifcount THAWTIME
374
    ifcount THAWTIME
371
    {
375
    {
372
      action FEMANIMATE
376
      action FEMANIMATE
373
      getlastpal
377
      getlastpal
374
    }
378
    }
375
    else
379
    else
376
      ifcount FROZENDRIPTIME
380
      ifcount FROZENDRIPTIME
377
    {
381
    {
378
      ifactioncount 26
382
      ifactioncount 26
379
      {
383
      {
380
        spawn WATERDRIP
384
        spawn WATERDRIP
381
        resetactioncount
385
        resetactioncount
382
      }
386
      }
383
    }
387
    }
384
388
385
    ifhitweapon
389
    ifhitweapon
386
    {
390
    {
387
      ifwasweapon FREEZEBLAST
391
      ifwasweapon FREEZEBLAST
388
      {
392
      {
389
        strength 0
393
        strength 0
390
        break
394
        break
391
      }
395
      }
392
      lotsofglass 30
396
      lotsofglass 30
393
      sound GLASS_BREAKING
397
      sound GLASS_BREAKING
394
      respawnhitag
398
      respawnhitag
395
      ifrnd 84
399
      ifrnd 84
396
        spawn BLOODPOOL
400
        spawn BLOODPOOL
397
      killit
401
      killit
398
    }
402
    }
399
    else
403
    else
400
      ifp pfacing
404
      ifp pfacing
401
        ifpdistl FROZENQUICKKICKDIST
405
        ifpdistl FROZENQUICKKICKDIST
402
          pkick
406
          pkick
403
    break
407
    break
404
  }
408
  }
405
  else ifaction FEMFROZEN2
409
  else ifaction FEMFROZEN2
406
  {
410
  {
407
    ifcount THAWTIME
411
    ifcount THAWTIME
408
    {
412
    {
409
      action FEMANIMATE
413
      action FEMANIMATE
410
      getlastpal
414
      getlastpal
411
    }
415
    }
412
    else
416
    else
413
      ifcount FROZENDRIPTIME
417
      ifcount FROZENDRIPTIME
414
    {
418
    {
415
      ifactioncount 26
419
      ifactioncount 26
416
      {
420
      {
417
        spawn WATERDRIP
421
        spawn WATERDRIP
418
        resetactioncount
422
        resetactioncount
419
      }
423
      }
420
    }
424
    }
421
425
422
    ifhitweapon
426
    ifhitweapon
423
    {
427
    {
424
      ifwasweapon FREEZEBLAST
428
      ifwasweapon FREEZEBLAST
425
      {
429
      {
426
        strength 0
430
        strength 0
427
          break
431
          break
428
      }
432
      }
429
433
430
      lotsofglass 30
434
      lotsofglass 30
431
435
432
      sound GLASS_BREAKING
436
      sound GLASS_BREAKING
433
      ifrnd 84
437
      ifrnd 84
434
        spawn BLOODPOOL
438
        spawn BLOODPOOL
435
      respawnhitag
439
      respawnhitag
436
440
437
      ifrnd 128
441
      ifrnd 128
438
        sound DUKE_HIT_STRIPPER1
442
        sound DUKE_HIT_STRIPPER1
439
      else
443
      else
440
        sound DUKE_HIT_STRIPPER2
444
        sound DUKE_HIT_STRIPPER2
441
445
442
      killit
446
      killit
443
    }
447
    }
444
    else
448
    else
445
      ifp pfacing
449
      ifp pfacing
446
        ifpdistl FROZENQUICKKICKDIST
450
        ifpdistl FROZENQUICKKICKDIST
447
          pkick
451
          pkick
448
    break
452
    break
449
  }
453
  }
450
454
451
  ifhitweapon
455
  ifhitweapon
452
  {
456
  {
453
    ifdead
457
    ifdead
454
    {
458
    {
455
      ifwasweapon GROWSPARK
459
      ifwasweapon GROWSPARK
456
      {
460
      {
457
        cstat 0
461
        cstat 0
458
        move 0
462
        move 0
459
        sound ACTOR_GROWING
463
        sound ACTOR_GROWING
460
        action FEMGROW
464
        action FEMGROW
461
        break
465
        break
462
      }
466
      }
463
      else ifwasweapon FREEZEBLAST
467
      else ifwasweapon FREEZEBLAST
464
      {
468
      {
465
        ifaction FEMSHRUNK
469
        ifaction FEMSHRUNK
466
          break
470
          break
467
471
468
          action FEMFROZEN1
472
          action FEMFROZEN1
469
473
470
        move 0
474
        move 0
471
        spritepal 1
475
        spritepal 1
472
        strength 0
476
        strength 0
473
477
474
        sound SOMETHINGFROZE
478
        sound SOMETHINGFROZE
475
479
476
        break
480
        break
477
      }
481
      }
478
482
479
      ifrnd 128
483
      ifrnd 128
480
        sound DUKE_HIT_STRIPPER1
484
        sound DUKE_HIT_STRIPPER1
481
      else
485
      else
482
        sound DUKE_HIT_STRIPPER2
486
        sound DUKE_HIT_STRIPPER2
483
487
484
      respawnhitag
488
      respawnhitag
485
      state standard_bjibs
489
      state standard_bjibs
486
      state random_wall_jibs
490
      state random_wall_jibs
487
      spawn BLOODPOOL
491
      spawn BLOODPOOL
488
492
489
        ifactor HALFBITCH
493
        ifactor HALFBITCH
490
          money 3
494
          money 3
491
      else
495
      else
492
        ifactor SLUTASS
496
        ifactor SLUTASS
493
          money 3
497
          money 3
494
498
495
499
496
        spritepal 6
500
        spritepal 6
497
        soundonce LADY_SCREAM
501
        soundonce LADY_SCREAM
498
        ifactor NAKED1
502
        ifactor NAKED1
499
	  debris SCRAP3 18
503
	  debris SCRAP3 18
500
        else
504
        else
501
          ifactor PODFEM1
505
          ifactor PODFEM1
502
	    debris SCRAP3 18
506
	    debris SCRAP3 18
503
        killit
507
        killit
504
    }
508
    }
505
    else
509
    else
506
    {
510
    {
507
      ifwasweapon SHRINKSPARK
511
      ifwasweapon SHRINKSPARK
508
      {
512
      {
509
        sound ACTOR_SHRINKING
513
        sound ACTOR_SHRINKING
510
        move 0
514
        move 0
511
        action FEMSHRUNK
515
        action FEMSHRUNK
512
        cstat 0
516
        cstat 0
513
        break
517
        break
514
      }
518
      }
515
      else
519
      else
516
        ifwasweapon GROWSPARK
520
        ifwasweapon GROWSPARK
517
          sound EXPANDERHIT
521
          sound EXPANDERHIT
518
522
519
523
520
      sound SQUISH2
524
      sound SQUISH2
521
525
522
      guts JIBS6 1
526
      guts JIBS6 1
523
    }
527
    }
524
  }
528
  }
525
529
526
530
527
531
528
  ifp pfacing
532
  ifp pfacing
529
    ifpdistl 1280
533
    ifpdistl 1280
530
      ifhitspace
534
      ifhitspace
531
  {
535
  {
532
    tip
536
    tip
533
    ifrnd 128
537
    ifrnd 128
534
      soundonce DUKE_TIP1
538
      soundonce DUKE_TIP1
535
    else
539
    else
536
      soundonce DUKE_TIP2
540
      soundonce DUKE_TIP2
537
ifactor HALFBITCH
541
ifactor HALFBITCH
538
      action FEMHDANCE1
542
      action FEMHDANCE1
539
  }
543
  }
540
ends
544
ends
541
545
542
useractor notenemy HALFBITCH TOUGH
546
useractor notenemy HALFBITCH TOUGH
543
  state nwbabecode
547
  state nwbabecode
544
enda
548
enda
545
549
546
useractor notenemy SLUTASS TOUGH
550
useractor notenemy SLUTASS TOUGH
547
  state nwbabecode
551
  state nwbabecode
548
enda
552
enda
549
553
550
state nwl3surprise
554
state nwl3surprise
551
ifvare VOLUME 1
555
ifvare VOLUME 1
552
  {
556
  {
553
    ifvare LEVEL 2
557
    ifvare LEVEL 2
554
      {
558
      {
555
        getactor[THISACTOR].sectnum temp
559
        getactor[THISACTOR].sectnum temp
556
        switch temp
560
        switch temp
557
          case 220 case 221
561
          case 220 case 221
558
            ifvarn musicchange 1
562
            ifvarn musicchange 1
559
              {
563
              {
560
                starttrack 12 // doom
564
                starttrack 12 // doom
561
                setvar musicchange 1
565
                setvar musicchange 1
562
              }
566
              }
563
          break
567
          break
564
          case 563 case 564 case 565 case 566 case 567
568
          case 563 case 564 case 565 case 566 case 567
565
            ifvarn musicchange 2
569
            ifvarn musicchange 2
566
              {
570
              {
567
                starttrack 13 // mario
571
                starttrack 13 // mario
568
                setvar musicchange 2
572
                setvar musicchange 2
569
              }
573
              }
570
          break
574
          break
571
          case 192 case 193 case 194 case 195 case 196 case 197 case 198 case 237 case 238 case 239 case 240
575
          case 192 case 193 case 194 case 195 case 196 case 197 case 198 case 237 case 238 case 239 case 240
572
          case 166 case 167 case 172 case 173 case 174 case 176 case 179
576
          case 166 case 167 case 172 case 173 case 174 case 176 case 179
573
            ifvarn musicchange 0
577
            ifvarn musicchange 0
574
              {
578
              {
575
                starttrackvar LEVEL // level music
579
                starttrackvar LEVEL // level music
576
                setvar musicchange 0
580
                setvar musicchange 0
577
              }
581
              }
578
          break
582
          break
579
        endswitch
583
        endswitch
580
      }
584
      }
581
  }
585
  }
582
ends
586
ends
583
587
584
// Flying Frosty
588
// Flying Frosty
585
589
586
/*
590
/*
587
action ACOMMBREETH  0  3  5  1  40
591
action ACOMMBREETH  0  3  5  1  40
588
action ACOMMFROZEN  0  1  5
592
action ACOMMFROZEN  0  1  5
589
action ACOMMSPIN   -5  1  5  1  12
593
action ACOMMSPIN   -5  1  5  1  12
590
action ACOMMGET   0  3  5  1  30
594
action ACOMMGET   0  3  5  1  30
591
action ACOMMSHOOT  20  1  5   1 35
595
action ACOMMSHOOT  20  1  5   1 35
592
action ACOMMABOUTTOSHOOT 20 1 5 1 30
596
action ACOMMABOUTTOSHOOT 20 1 5 1 30
593
action ACOMMDYING  30  8  1  1  12
597
action ACOMMDYING  30  8  1  1  12
594
action ACOMMDEAD   38  1  1  1  1
598
action ACOMMDEAD   38  1  1  1  1
595
599
596
600
597
move COMMGETUPVELS 128 -64
601
move COMMGETUPVELS 128 -64
598
move COMMGETVELS 128 64
602
move COMMGETVELS 128 64
599
move COMMSLOW 64 24
603
move COMMSLOW 64 24
600
move COMMSTOPPED
604
move COMMSTOPPED
601
605
602
ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
606
ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
603
ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
607
ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
604
ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
608
ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
605
ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
609
ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
606
ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
610
ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
607
ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
611
ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
608
ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
612
ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
609
ai AICOMMGROW ACOMMGET COMMSTOPPED furthestdir
613
ai AICOMMGROW ACOMMGET COMMSTOPPED furthestdir
610
*/
614
*/
611
615
612
move COMMGETUPVELSNW 128 -64
616
move COMMGETUPVELSNW 128 -64
613
move COMMGETVELSNW 128 64
617
move COMMGETVELSNW 128 64
614
move COMMSLOWNW 64 24
618
move COMMSLOWNW 64 24
615
move COMMSTOPPEDNW
619
move COMMSTOPPEDNW
616
620
617
action ACOMMSPINNW   0  1  5  1  12
621
action ACOMMSPINNW   0  1  5  1  12
618
action ACOMMSHOOTNW  20  1  5 1  16 // this is custom to shorten the delay between firing freezeblasts
622
action ACOMMSHOOTNW  20  1  5 1  16 // this is custom to shorten the delay between firing freezeblasts
619
623
620
ai AICOMMSPINNW ACOMMSPINNW COMMGETVELSNW spin
624
ai AICOMMSPINNW ACOMMSPINNW COMMGETVELSNW spin
621
ai AICOMMSHOOTNW ACOMMSHOOTNW COMMSTOPPEDNW faceplayerslow
625
ai AICOMMSHOOTNW ACOMMSHOOTNW COMMSTOPPEDNW faceplayerslow
622
626
623
state checkcommhitstate
627
state checkcommhitstate
624
628
625
  ifhitweapon
629
  ifhitweapon
626
  {
630
  {
627
    debris SCRAP3 5
631
    debris SCRAP3 5
628
    ifdead
632
    ifdead
629
    {
633
    {
630
      ifwasweapon FREEZEBLAST
634
      ifwasweapon FREEZEBLAST
631
      {
635
      {
632
        break
636
        break
633
      }
637
      }
634
      else
638
      else
635
        ifwasweapon GROWSPARK
639
        ifwasweapon GROWSPARK
636
      {
640
      {
637
        sound ACTOR_GROWING
641
        sound ACTOR_GROWING
638
        ai AICOMMGROW
642
        ai AICOMMGROW
639
        break
643
        break
640
      }
644
      }
641
645
642
      addkills 1
646
      addkills 1
643
647
644
      ifwasweapon RADIUSEXPLOSION
648
      ifwasweapon RADIUSEXPLOSION
645
      {
649
      {
646
        debris SCRAP3 5
650
        debris SCRAP3 5
647
        sound SQUISH2
651
        sound SQUISH2
648
        killit
652
        killit
649
      }
653
      }
650
      else
654
      else
651
        ifwasweapon RPG
655
        ifwasweapon RPG
652
      {
656
      {
653
        sound SQUISH2
657
        sound SQUISH2
654
        debris SCRAP3 5
658
        debris SCRAP3 5
655
        state standard_jibs
659
        state standard_jibs
656
        killit
660
        killit
657
      }
661
      }
658
662
659
      debris SCRAP3 100
663
      debris SCRAP3 100
660
      sound COMM_DYING
664
      sound COMM_DYING
661
      ai AICOMMDYING
665
      ai AICOMMDYING
662
    }
666
    }
663
    else
667
    else
664
    {
668
    {
665
      soundonce COMM_PAIN
669
      soundonce COMM_PAIN
666
      ifwasweapon SHRINKSPARK
670
      ifwasweapon SHRINKSPARK
667
      {
671
      {
668
        sound ACTOR_SHRINKING
672
        sound ACTOR_SHRINKING
669
        ai AICOMMSHRUNK
673
        ai AICOMMSHRUNK
670
      }
674
      }
671
      else
675
      else
672
        ifwasweapon GROWSPARK
676
        ifwasweapon GROWSPARK
673
          sound EXPANDERHIT
677
          sound EXPANDERHIT
674
      else
678
      else
675
        ifrnd 24
679
        ifrnd 24
676
          ai AICOMMABOUTTOSHOOT
680
          ai AICOMMABOUTTOSHOOT
677
    }
681
    }
678
  }
682
  }
679
ends
683
ends
680
684
681
actor COMMANDERSTAYPUT COMMANDERSTRENGTH
685
actor COMMANDERSTAYPUT COMMANDERSTRENGTH
682
  cactor COMMANDER
686
  cactor COMMANDER
683
  ai AICOMMABOUTTOSHOOT
687
  ai AICOMMABOUTTOSHOOT
684
enda
688
enda
685
689
686
actor COMMANDER COMMANDERSTRENGTH
690
actor COMMANDER COMMANDERSTRENGTH
687
691
688
  state checksquished
692
  state checksquished
689
693
690
  ifaction ACOMMFROZEN
694
  ifaction ACOMMFROZEN
691
  {
695
  {
692
    fall
696
    fall
693
697
694
    ifcount THAWTIME
698
    ifcount THAWTIME
695
    {
699
    {
696
      getlastpal
700
      getlastpal
697
      ai AICOMMWAIT
701
      ai AICOMMWAIT
698
    }
702
    }
699
    else
703
    else
700
      ifcount FROZENDRIPTIME
704
      ifcount FROZENDRIPTIME
701
    {
705
    {
702
      ifactioncount 26
706
      ifactioncount 26
703
      {
707
      {
704
        spawn WATERDRIP
708
        spawn WATERDRIP
705
        resetactioncount
709
        resetactioncount
706
      }
710
      }
707
    }
711
    }
708
712
709
    ifhitweapon
713
    ifhitweapon
710
    {
714
    {
711
      ifwasweapon FREEZEBLAST
715
      ifwasweapon FREEZEBLAST
712
      {
716
      {
713
        strength 0
717
        strength 0
714
        break
718
        break
715
      }
719
      }
716
      addkills 1
720
      addkills 1
717
721
718
      ifrnd 84
722
      ifrnd 84
719
        spawn BLOODPOOL
723
        spawn BLOODPOOL
720
      lotsofglass 30
724
      lotsofglass 30
721
      sound GLASS_BREAKING
725
      sound GLASS_BREAKING
722
      killit
726
      killit
723
    }
727
    }
724
    ifp pfacing
728
    ifp pfacing
725
      ifpdistl FROZENQUICKKICKDIST
729
      ifpdistl FROZENQUICKKICKDIST
726
        pkick
730
        pkick
727
    break
731
    break
728
  }
732
  }
729
  ifai 0
733
  ifai 0
730
    ai AICOMMSHOOTNW
734
    ai AICOMMSHOOTNW
731
  else
735
  else
732
    ifai AICOMMWAIT
736
    ifai AICOMMWAIT
733
  {
737
  {
734
    ifcount 20
738
    ifcount 20
735
    {
739
    {
736
      ifcansee
740
      ifcansee
737
      {
741
      {
738
        ifcanshoottarget
742
        ifcanshoottarget
739
        {
743
        {
740
          ifrnd 96
744
          ifrnd 96
741
            ai AICOMMGET
745
            ai AICOMMGET
742
          else
746
          else
743
            ai AICOMMABOUTTOSHOOT
747
            ai AICOMMABOUTTOSHOOT
744
        }
748
        }
745
      }
749
      }
746
      else
750
      else
747
        ai AICOMMGET
751
        ai AICOMMGET
748
    }
752
    }
749
  }
753
  }
750
  else
754
  else
751
    ifai AICOMMABOUTTOSHOOT
755
    ifai AICOMMABOUTTOSHOOT
752
  {
756
  {
753
    ifactioncount 2
757
    ifactioncount 2
754
    {
758
    {
755
      ifcansee
759
      ifcansee
756
        ai AICOMMSHOOTNW
760
        ai AICOMMSHOOTNW
757
      else
761
      else
758
      {
762
      {
759
        ai AICOMMGET
763
        ai AICOMMGET
760
        break
764
        break
761
      }
765
      }
762
    }
766
    }
763
    ifrnd 32 soundonce COMM_ATTACK
767
    ifrnd 32 soundonce COMM_ATTACK
764
  }
768
  }
765
  else
769
  else
766
    ifai AICOMMSHOOTNW
770
    ifai AICOMMSHOOTNW
767
  {
771
  {
768
    ifcanshoottarget
772
    ifcanshoottarget
769
    {
773
    {
770
      ifcount 12
774
      ifcount 12
771
        ifrnd 16
775
        ifrnd 16
772
          ai AICOMMWAIT
776
          ai AICOMMWAIT
773
	
777
	
774
      ifactioncount 1
778
      ifactioncount 1
775
      {
779
      {
776
        shoot FREEZEBLAST
780
        shoot FREEZEBLAST
777
        resetactioncount
781
        resetactioncount
778
      }
782
      }
779
 
783
 
780
      getplayer[THISACTOR].i temp
784
      getplayer[THISACTOR].i temp
781
      getactor[temp].pal temp
785
      getactor[temp].pal temp
782
      ifvare temp 1 // if player is frozen
786
      ifvare temp 1 // if player is frozen
783
        ai AICOMMGET
787
        ai AICOMMGET
784
    }
788
    }
785
    else
789
    else
786
      ai AICOMMGET
790
      ai AICOMMGET
787
  }
791
  }
788
  else
792
  else
789
    ifai AICOMMSHRUNK
793
    ifai AICOMMSHRUNK
790
  {
794
  {
791
    ifcount SHRUNKDONECOUNT
795
    ifcount SHRUNKDONECOUNT
792
      ai AICOMMGET
796
      ai AICOMMGET
793
    else
797
    else
794
      ifcount SHRUNKCOUNT
798
      ifcount SHRUNKCOUNT
795
        sizeto 48 40
799
        sizeto 48 40
796
    else
800
    else
797
      state genericshrunkcode
801
      state genericshrunkcode
798
  }
802
  }
799
  else
803
  else
800
    ifai AICOMMGROW
804
    ifai AICOMMGROW
801
      state genericgrowcode
805
      state genericgrowcode
802
  else
806
  else
803
    ifai AICOMMGET
807
    ifai AICOMMGET
804
  {
808
  {
805
    ifnotmoving
809
    ifnotmoving
806
      ifrnd 4
810
      ifrnd 4
807
        operate
811
        operate
808
    ifpdistl 1024
812
    ifpdistl 1024
809
    {
813
    {
810
      ifp palive
814
      ifp palive
811
      {
815
      {
812
        sound COMM_SPIN
816
        sound COMM_SPIN
813
        ai AICOMMSPINNW
817
        ai AICOMMSPINNW
814
        break
818
        break
815
      }
819
      }
816
      
820
      
817
      getplayer[THISACTOR].i temp
821
      getplayer[THISACTOR].i temp
818
      getactor[temp].pal temp
822
      getactor[temp].pal temp
819
      ifvare temp 1 // if player is frozen
823
      ifvare temp 1 // if player is frozen
820
      {
824
      {
821
        sound COMM_SPIN
825
        sound COMM_SPIN
822
        ai AICOMMSPINNW
826
        ai AICOMMSPINNW
823
        break
827
        break
824
      }
828
      }
825
    }
829
    }
826
830
827
    ifcansee
831
    ifcansee
828
    {
832
    {
829
      ifp phigher
833
      ifp phigher
830
        move COMMGETUPVELS getv geth faceplayer
834
        move COMMGETUPVELS getv geth faceplayer
831
      else
835
      else
832
        move COMMGETVELS getv geth faceplayer
836
        move COMMGETVELS getv geth faceplayer
833
    }
837
    }
834
    ifactioncount 8
838
    ifactioncount 8
835
      ifrnd 2
839
      ifrnd 2
836
        ai AICOMMABOUTTOSHOOT
840
        ai AICOMMABOUTTOSHOOT
837
  }
841
  }
838
  else
842
  else
839
    ifai AICOMMSPINNW
843
    ifai AICOMMSPINNW
840
  {
844
  {
841
    soundonce COMM_SPIN
845
    soundonce COMM_SPIN
842
    ifcount 16
846
    ifcount 16
843
    {
847
    {
844
      ifpdistl 1280
848
      ifpdistl 1280
845
      {
849
      {
846
        setvar tempb CAPTSPINNINGPLAYER
850
        setvar tempb CAPTSPINNINGPLAYER
847
        mulvar tempb -1
851
        mulvar tempb -1
848
        // addphealth CAPTSPINNINGPLAYER
852
        // addphealth CAPTSPINNINGPLAYER
849
        getplayer[THISACTOR].i temp
853
        getplayer[THISACTOR].i temp
850
        setactor[temp].htextra tempb
854
        setactor[temp].htextra tempb
851
        setactor[temp].htpicnum KNEE
855
        setactor[temp].htpicnum KNEE
852
        setactor[temp].htowner THISACTOR
856
        setactor[temp].htowner THISACTOR
853
857
854
        globalsound DUKE_GRUNT
858
        globalsound DUKE_GRUNT
855
        palfrom 32 16
859
        palfrom 32 16
856
        resetcount
860
        resetcount
857
      }
861
      }
858
      else
862
      else
859
        ifpdistg 2300
863
        ifpdistg 2300
860
          ai AICOMMWAIT
864
          ai AICOMMWAIT
861
    }
865
    }
862
    ifactioncount 52
866
    ifactioncount 52
863
      ai AICOMMWAIT
867
      ai AICOMMWAIT
864
    ifnotmoving
868
    ifnotmoving
865
      ifrnd 32
869
      ifrnd 32
866
        operate
870
        operate
867
  }
871
  }
868
872
869
  ifai AICOMMDYING
873
  ifai AICOMMDYING
870
  {
874
  {
871
    fall
875
    fall
872
    strength 0
876
    strength 0
873
877
874
    ifhitweapon
878
    ifhitweapon
875
      ifwasweapon RADIUSEXPLOSION
879
      ifwasweapon RADIUSEXPLOSION
876
    {
880
    {
877
      sound SQUISH2
881
      sound SQUISH2
878
      spawn BLOODPOOL
882
      spawn BLOODPOOL
879
      state standard_jibs
883
      state standard_jibs
880
884
881
      killit
885
      killit
882
    }
886
    }
883
887
884
    ifaction ACOMMDYING
888
    ifaction ACOMMDYING
885
      ifactioncount 8
889
      ifactioncount 8
886
    {
890
    {
887
      iffloordistl 8
891
      iffloordistl 8
888
        sound THUD
892
        sound THUD
889
      cstat 0
893
      cstat 0
890
      action ACOMMDEAD
894
      action ACOMMDEAD
891
    }
895
    }
892
  }
896
  }
893
  else
897
  else
894
  {
898
  {
895
    ifrnd 2
899
    ifrnd 2
896
      soundonce COMM_ROAM
900
      soundonce COMM_ROAM
897
    state checkcommhitstate
901
    state checkcommhitstate
898
  }
902
  }
899
enda
903
enda
900
904
901
// Frosted Battle Mobile
905
// Frosted Battle Mobile
902
906
903
move TANKSTOPNW
907
move TANKSTOPNW
904
908
905
useractor enemy TANK TANKSTRENGTH
909
useractor enemy TANK TANKSTRENGTH
906
    fall
910
    fall
907
911
908
//  sizeat 45 45
912
//  sizeat 45 45
909
  ifaction 0
913
  ifaction 0
910
  {
914
  {
911
    action ATANKWAIT
915
    action ATANKWAIT
912
    cstat 257
916
    cstat 257
913
    clipdist 100
917
    clipdist 100
914
  }
918
  }
915
  else
919
  else
916
    ifaction ATANKSPIN
920
    ifaction ATANKSPIN
917
  {
921
  {
918
    soundonce TANK_ROAM
922
    soundonce TANK_ROAM
919
923
920
    ifactioncount 20
924
    ifactioncount 20
921
    {
925
    {
922
      ifrnd 16
926
      ifrnd 16
923
        ifcansee
927
        ifcansee
924
          ifcanshoottarget
928
          ifcanshoottarget
925
      {
929
      {
926
        move TANKSTOPNW geth
930
        move TANKSTOPNW geth
927
        action ATANKSHOOTING
931
        action ATANKSHOOTING
928
        stopsound TANK_ROAM
932
        stopsound TANK_ROAM
929
      }
933
      }
930
    }
934
    }
931
935
932
    ifrnd 16
936
    ifrnd 16
933
      move TANKFORWARD seekplayer
937
      move TANKFORWARD seekplayer
934
  }
938
  }
935
  else
939
  else
936
    ifaction ATANKSHOOTING
940
    ifaction ATANKSHOOTING
937
  {
941
  {
938
    ifactioncount 22
942
    ifactioncount 22
939
    {
943
    {
940
      ifpdistg 8192
944
      ifpdistg 8192
941
      {
945
      {
942
        sound BOS1_ATTACK2
946
        sound BOS1_ATTACK2
943
        shoot MORTER
947
        shoot MORTER
944
      }
948
      }
945
      resetcount
949
      resetcount
946
      move 0 action ATANKWAIT
950
      move 0 action ATANKWAIT
947
    }
951
    }
948
    else
952
    else
949
      ifactioncount 2
953
      ifactioncount 2
950
    {
954
    {
951
      ifcansee
955
      ifcansee
952
      {
956
      {
953
        ifpdistl 16384
957
        ifpdistl 16384
954
        {
958
        {
955
          ifrnd 128
959
          ifrnd 128
956
          {
960
          {
957
961
958
962
959
            sound PISTOL_FIRE
963
            sound PISTOL_FIRE
960
            shoot SHOTSPARK1
964
            shoot SHOTSPARK1
961
          }
965
          }
962
        }
966
        }
963
        else
967
        else
964
          ifrnd 128
968
          ifrnd 128
965
        {
969
        {
966
          sound PRED_ATTACK
970
          sound PRED_ATTACK
967
          shoot FIRELASER
971
          shoot FIRELASER
968
        }
972
        }
969
      }
973
      }
970
      else
974
      else
971
      {
975
      {
972
        move TANKFORWARD seekplayer
976
        move TANKFORWARD seekplayer
973
        action ATANKSPIN
977
        action ATANKSPIN
974
      }
978
      }
975
    }
979
    }
976
980
977
    ifrnd 16
981
    ifrnd 16
978
    {
982
    {
979
      stopsound TANK_ROAM
983
      stopsound TANK_ROAM
980
      move TANKSTOPNW faceplayerslow
984
      move TANKSTOPNW faceplayerslow
981
    }
985
    }
982
  }
986
  }
983
  else
987
  else
984
    ifaction ATANKWAIT
988
    ifaction ATANKWAIT
985
  {
989
  {
986
    ifactioncount 32
990
    ifactioncount 32
987
    {
991
    {
988
      move TANKFORWARD seekplayer
992
      move TANKFORWARD seekplayer
989
      action ATANKSPIN
993
      action ATANKSPIN
990
    }
994
    }
991
  }
995
  }
992
  else
996
  else
993
    ifaction ATANKDEAD
997
    ifaction ATANKDEAD
994
  {
998
  {
995
    addkills 1
999
    addkills 1
996
    hitradius 6144 TOUGH TOUGH TOUGH TOUGH
1000
    hitradius 6144 TOUGH TOUGH TOUGH TOUGH
997
    sound LASERTRIP_EXPLODE
1001
    sound LASERTRIP_EXPLODE
998
    debris SCRAP1 15
1002
    debris SCRAP1 15
999
    spawn EXPLOSION2
1003
    spawn EXPLOSION2
1000
    ifrnd 128 spawn SNOWMAN
1004
    ifrnd 128 spawn SNOWMAN
1001
    killit
1005
    killit
1002
  }
1006
  }
1003
1007
1004
  ifhitweapon
1008
  ifhitweapon
1005
  {
1009
  {
1006
    ifdead
1010
    ifdead
1007
      action ATANKDEAD
1011
      action ATANKDEAD
1008
    else
1012
    else
1009
    {
1013
    {
1010
      debris SCRAP1 1
1014
      debris SCRAP1 1
1011
      ifaction ATANKSHOOTING break
1015
      ifaction ATANKSHOOTING break
1012
1016
1013
      ifrnd 192
1017
      ifrnd 192
1014
      {
1018
      {
1015
        move TANKSTOPNW geth
1019
        move TANKSTOPNW geth
1016
        action ATANKSHOOTING
1020
        action ATANKSHOOTING
1017
        stopsound TANK_ROAM
1021
        stopsound TANK_ROAM
1018
      }
1022
      }
1019
    }
1023
    }
1020
  }
1024
  }
1021
1025
1022
enda
1026
enda
1023
1027
1024
1028
1025
include NWActor.con
1029
include NWActor.con
1026
include NWSnow.con
1030
include NWSnow.con
1027
1031
1028
// -----------------------------------------------------------------------------
1032
// -----------------------------------------------------------------------------
1029
1033
1030
onevent EVENT_GAME
1034
onevent EVENT_GAME
1031
  ifactor APLAYER
1035
  ifactor APLAYER
1032
  {
1036
  {
1033
    state nwl3surprise
1037
    state nwl3surprise
1034
    
1038
    
1035
    getplayer[THISACTOR].holoduke_on holodukeid
1039
    getplayer[THISACTOR].holoduke_on holodukeid
1036
    ifvarg holodukeid -1
1040
    ifvarg holodukeid -1
1037
      setactor[holodukeid].mdflags 16
1041
      setactor[holodukeid].mdflags 16
1038
    
1042
    
1039
   // addlogvar skin
1043
   // addlogvar skin
1040
  }
1044
  }
1041
  ifactor FRAMEEFFECT1
1045
  ifactor FRAMEEFFECT1
1042
    ifspawnedby APLAYER
1046
    ifspawnedby APLAYER
1043
      setactor[THISACTOR].mdflags 16
1047
      setactor[THISACTOR].mdflags 16
1044
1048
1045
/*
1049
/*
1046
  ifactor MONEY
1050
  ifactor MONEY
1047
    {
1051
    {
1048
      setactor[THISACTOR].mdflags 16
1052
      setactor[THISACTOR].mdflags 16
1049
      // getactor[THISACTOR].owner owner
1053
      // getactor[THISACTOR].owner owner
1050
      switch owner
1054
      switch owner
1051
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1055
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1052
        getactor[THISACTOR].x x
1056
        getactor[THISACTOR].x x
1053
        getactor[THISACTOR].y y
1057
        getactor[THISACTOR].y y
1054
        getactor[THISACTOR].z z
1058
        getactor[THISACTOR].z z
1055
1059
1056
        updatesectorz x y z temp
1060
        updatesectorz x y z temp
1057
        ifvarn temp -1 getflorzofslope temp x y temp2 else killit
1061
        ifvarn temp -1 getflorzofslope temp x y temp2 else killit
1058
1062
1059
        ifvarvare z temp2 killit
1063
        ifvarvare z temp2 killit
1060
      break
1064
      break
1061
      endswitch
1065
      endswitch
1062
    }
1066
    }
1063
*/
1067
*/
1064
endevent
1068
endevent
1065
1069
1066
onevent EVENT_ANIMATESPRITES
1070
onevent EVENT_ANIMATESPRITES
1067
1071
1068
 ifvare picnum DOORSHOCK
1072
 ifvare picnum DOORSHOCK
1069
   {
1073
   {
1070
     ifspritepal 30 settspr[THISACTOR].tsprpicnum 3656
1074
     ifspritepal 30 settspr[THISACTOR].tsprpicnum 3656
1071
     ifvare VOLUME 1 ifvare LEVEL 2 settspr[THISACTOR].tsprpicnum 3656
1075
     ifvare VOLUME 1 ifvare LEVEL 2 settspr[THISACTOR].tsprpicnum 3656
1072
     break
1076
     break
1073
   }
1077
   }
1074
 ifvare picnum SNOWFLAKE
1078
 ifvare picnum SNOWFLAKE
1075
   {
1079
   {
1076
     settspr[THISACTOR].tsprpicnum SNOW
1080
     settspr[THISACTOR].tsprpicnum SNOW
1077
     settspr[THISACTOR].tsprxrepeat 4
1081
     settspr[THISACTOR].tsprxrepeat 4
1078
     settspr[THISACTOR].tspryrepeat 4
1082
     settspr[THISACTOR].tspryrepeat 4
1079
     break
1083
     break
1080
   }
1084
   }
1081
/*
1085
/*
1082
 ifvare picnum MONEY
1086
 ifvare picnum MONEY
1083
   {
1087
   {
1084
      switch owner
1088
      switch owner
1085
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1089
      case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
1086
        settspr[THISACTOR].tsprpicnum SNOW
1090
        settspr[THISACTOR].tsprpicnum SNOW
1087
      break
1091
      break
1088
      endswitch
1092
      endswitch
1089
   }
1093
   }
1090
*/
1094
*/
1091
 
1095
 
1092
  switch picnum
1096
  switch picnum
1093
    case APLAYER
1097
    case APLAYER
1094
      ifvare skin SANTA
1098
      ifvare skin SANTA
1095
      {
1099
      {
1096
        gettspr[THISACTOR].tsprpicnum temp3
1100
        gettspr[THISACTOR].tsprpicnum temp3
1097
        ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1101
        ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1098
        settspr[THISACTOR].tsprpicnum temp3
1102
        settspr[THISACTOR].tsprpicnum temp3
1099
1103
1100
        ifvarg holodukeid -1
1104
        ifvarg holodukeid -1
1101
        {
1105
        {
1102
          gettspr[holodukeid].tsprpicnum temp3
1106
          gettspr[holodukeid].tsprpicnum temp3
1103
          ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1107
          ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1104
          settspr[holodukeid].tsprpicnum temp3
1108
          settspr[holodukeid].tsprpicnum temp3
1105
        }
1109
        }
1106
      }
1110
      }
1107
      break
1111
      break
1108
 
1112
 
1109
    case FRAMEEFFECT1
1113
    case FRAMEEFFECT1
1110
      ifvare skin SANTA
1114
      ifvare skin SANTA
1111
        ifspawnedby APLAYER
1115
        ifspawnedby APLAYER
1112
        {
1116
        {
1113
          gettspr[THISACTOR].tsprpicnum temp3
1117
          gettspr[THISACTOR].tsprpicnum temp3
1114
          ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1118
          ifvarg temp3 1399 ifvarl temp3 1544 addvar temp3 4096
1115
          settspr[THISACTOR].tsprpicnum temp3
1119
          settspr[THISACTOR].tsprpicnum temp3
1116
        }
1120
        }
1117
      break
1121
      break
1118
 
1122
 
1119
    case DUKETORSO
1123
    case DUKETORSO
1120
    case DUKEGUN
1124
    case DUKEGUN
1121
      getactor[owner].picnum temp2
1125
      getactor[owner].picnum temp2
1122
      ifvare temp2 SOBBOTWALK
1126
      ifvare temp2 SOBBOTWALK
1123
      {
1127
      {
1124
        gettspr[THISACTOR].tsprpicnum temp3
1128
        gettspr[THISACTOR].tsprpicnum temp3
1125
        addvar temp3 2456
1129
        addvar temp3 2456
1126
        settspr[THISACTOR].tsprpicnum temp3
1130
        settspr[THISACTOR].tsprpicnum temp3
1127
      }
1131
      }
1128
      ifvare temp2 SOBBOTFLY
1132
      ifvare temp2 SOBBOTFLY
1129
      {
1133
      {
1130
        gettspr[THISACTOR].tsprpicnum temp3
1134
        gettspr[THISACTOR].tsprpicnum temp3
1131
        addvar temp3 2456
1135
        addvar temp3 2456
1132
        settspr[THISACTOR].tsprpicnum temp3
1136
        settspr[THISACTOR].tsprpicnum temp3
1133
      }
1137
      }
1134
      ifvare temp2 APLAYER
1138
      ifvare temp2 APLAYER
1135
      {
1139
      {
1136
        ifvare skin SANTA
1140
        ifvare skin SANTA
1137
        {
1141
        {
1138
          gettspr[THISACTOR].tsprpicnum temp3
1142
          gettspr[THISACTOR].tsprpicnum temp3
1139
          addvar temp3 2456
1143
          addvar temp3 2456
1140
          settspr[THISACTOR].tsprpicnum temp3
1144
          settspr[THISACTOR].tsprpicnum temp3
1141
        }
1145
        }
1142
      }
1146
      }
1143
      break
1147
      break
1144
1148
1145
    case DUKELEG
1149
    case DUKELEG
1146
      getactor[owner].picnum temp2
1150
      getactor[owner].picnum temp2
1147
      ifvare temp2 SOBBOTWALK settspr[THISACTOR].tsprpal 30
1151
      ifvare temp2 SOBBOTWALK settspr[THISACTOR].tsprpal 30
1148
      ifvare temp2 SOBBOTFLY settspr[THISACTOR].tsprpal 30
1152
      ifvare temp2 SOBBOTFLY settspr[THISACTOR].tsprpal 30
1149
      ifvare temp2 APLAYER ifvare skin SANTA settspr[THISACTOR].tsprpal 30
1153
      ifvare temp2 APLAYER ifvare skin SANTA settspr[THISACTOR].tsprpal 30
1150
      break
1154
      break
1151
  endswitch
1155
  endswitch
1152
1156
1153
 ifvare picnum APLAYER // this fixes the bug with the misplaced TV screen tiles
1157
 ifvare picnum APLAYER // this fixes the bug with the misplaced TV screen tiles
1154
   {
1158
   {
1155
     gettspr[THISACTOR].tsprpicnum temp
1159
     gettspr[THISACTOR].tsprpicnum temp
1156
     switch temp
1160
     switch temp
1157
      case 1470 case 1471 case 1472 case 1473 case 1474
1161
      case 1470 case 1471 case 1472 case 1473 case 1474
1158
       subvar temp 5
1162
       subvar temp 5
1159
       settspr[THISACTOR].tsprpicnum temp
1163
       settspr[THISACTOR].tsprpicnum temp
1160
      break
1164
      break
1161
     endswitch
1165
     endswitch
1162
   }
1166
   }
1163
endevent
1167
endevent
1164
1168
1165
1169
1166
1170
1167
1171
1168
useractor notenemy NWEFFECTOR 0 
1172
useractor notenemy NWEFFECTOR 0 
1169
  cstat 32768
1173
  cstat 32768
1170
  // sizeat 1 1
1174
  // sizeat 1 1
1171
1175
1172
  ifspritepal 31 // phone ringing effect
1176
  ifspritepal 31 // phone ringing effect
1173
  {
1177
  {
1174
    /*
1178
    /*
1175
    getplayer[THISACTOR].cursectnum temp3
1179
    getplayer[THISACTOR].cursectnum temp3
1176
    switch temp3
1180
    switch temp3
1177
      case 60 case 61 case 62 case 63
1181
      case 60 case 61 case 62 case 63
1178
      case 86 case 87
1182
      case 86 case 87
1179
      case 299 case 300 case 301 case 302 case 303 case 304 case 305 case 306 case 307 case 308 case 309
1183
      case 299 case 300 case 301 case 302 case 303 case 304 case 305 case 306 case 307 case 308 case 309
1180
      case 310 case 311 case 312 case 313 case 314 case 315 case 316 case 317
1184
      case 310 case 311 case 312 case 313 case 314 case 315 case 316 case 317
1181
        soundonce PHONE_RING
1185
        soundonce PHONE_RING
1182
        break
1186
        break
1183
1187
1184
      default
1188
      default
1185
        stopsound PHONE_RING
1189
        stopsound PHONE_RING
1186
        break
1190
        break
1187
    endswitch
1191
    endswitch
1188
    */
1192
    */
1189
1193
1190
    ifpdistl 8192 // 4096
1194
    ifpdistl 8192 // 4096
1191
      soundonce PHONE_RING
1195
      soundonce PHONE_RING
1192
    ifpdistg 16384
1196
    ifpdistg 16384
1193
      stopsound PHONE_RING
1197
      stopsound PHONE_RING
1194
1198
1195
    ifpdistl RETRIEVEDISTANCE
1199
    ifpdistl RETRIEVEDISTANCE
1196
      ifp pfacing
1200
      ifp pfacing
1197
        ifhitspace
1201
        ifhitspace
1198
          ifvare temp2 0
1202
          ifvare temp2 0
1199
          {
1203
          {
1200
            setvar temp 0
1204
            setvar temp 0
1201
            setvar temp2 1
1205
            setvar temp2 1
1202
            setvar temp3 0
1206
            setvar temp3 0
1203
            setvar tempb 0
1207
            setvar tempb 0
1204
          }
1208
          }
1205
1209
1206
    ifvare temp2 1
1210
    ifvare temp2 1
1207
    {
1211
    {
1208
      addvar temp 1
1212
      addvar temp 1
1209
1213
1210
      stopsound PHONE_RING
1214
      stopsound PHONE_RING
1211
      ifvare temp 1
1215
      ifvare temp 1
1212
        sound PHONE_PICKUP
1216
        sound PHONE_PICKUP
1213
      else ifvare temp 30
1217
      else ifvare temp 30
1214
      {
1218
      {
1215
        setvar tempb 0
1219
        setvar tempb 0
1216
        randvar tempb 3
1220
        randvar tempb 3
1217
1221
1218
        switch tempb
1222
        switch tempb
1219
          case 0
1223
          case 0
1220
            sound LOWANG1
1224
            sound LOWANG1
1221
            setvar temp3 57
1225
            setvar temp3 57
1222
            break
1226
            break
1223
          case 1
1227
          case 1
1224
            sound LOWANG2
1228
            sound LOWANG2
1225
            setvar temp3 124
1229
            setvar temp3 124
1226
            break
1230
            break
1227
          case 2
1231
          case 2
1228
            sound LOWANG3
1232
            sound LOWANG3
1229
            setvar temp3 121
1233
            setvar temp3 121
1230
            break
1234
            break
1231
          case 3
1235
          case 3
1232
            sound LOWANG4
1236
            sound LOWANG4
1233
            setvar temp3 156
1237
            setvar temp3 156
1234
            break
1238
            break
1235
        endswitch
1239
        endswitch
1236
1240
1237
        addvar temp3 60
1241
        addvar temp3 60
1238
        setvar tempb 0
1242
        setvar tempb 0
1239
      }
1243
      }
1240
      else ifvarvare temp temp3
1244
      else ifvarvare temp temp3
1241
      {
1245
      {
1242
        sound PHONE_HANGUP
1246
        sound PHONE_HANGUP
1243
        setvarvar tempb temp3
1247
        setvarvar tempb temp3
1244
        addvar tempb 150
1248
        addvar tempb 150
1245
      }
1249
      }
1246
      else ifvarvare temp tempb
1250
      else ifvarvare temp tempb
1247
      {
1251
      {
1248
        setvar temp2 0
1252
        setvar temp2 0
1249
        setvar temp 0
1253
        setvar temp 0
1250
      }
1254
      }
1251
    }
1255
    }
1252
  }
1256
  }
1253
enda
1257
enda
1254
1258
1255
useractor notenemy 3831 0
1259
useractor notenemy 3831 0
1256
// cstat 32768
1260
// cstat 32768
1257
 sizeat 12 13
1261
 sizeat 12 13
1258
 getactor[THISACTOR].sectnum temp
1262
 getactor[THISACTOR].sectnum temp
1259
 getplayer[THISACTOR].cursectnum temp2
1263
 getplayer[THISACTOR].cursectnum temp2
1260
 ifvarvare temp temp2
1264
 ifvarvare temp temp2
1261
   {
1265
   {
1262
     setuserdef[THISACTOR].volume_number 1
1266
     setuserdef[THISACTOR].volume_number 1
1263
     endofgame 13
1267
     endofgame 13
1264
   }
1268
   }
1265
enda
1269
enda
1266
1270
1267
action WOODENHORSE2FRAME  0   1   5
1271
action WOODENHORSE2FRAME  0   1   5
1268
action WOODEN2FALLFRAME  -2738  1   5
1272
action WOODEN2FALLFRAME  -2738  1   5
1269
useractor notenemy WOODENHORSE2 WEAK WOODENHORSE2FRAME
1273
useractor notenemy WOODENHORSE2 WEAK WOODENHORSE2FRAME
1270
  fall
1274
  fall
1271
  ifhitweapon
1275
  ifhitweapon
1272
  {
1276
  {
1273
    ifdead
1277
    ifdead
1274
    {
1278
    {
1275
      debris SCRAP1 4
1279
      debris SCRAP1 4
1276
      debris SCRAP2 3
1280
      debris SCRAP2 3
1277
      killit
1281
      killit
1278
    }
1282
    }
1279
    else
1283
    else
1280
      action WOODEN2FALLFRAME
1284
      action WOODEN2FALLFRAME
1281
  }
1285
  }
1282
enda
1286
enda
1283
1287
1284
useractor notenemy NWSTEAM 0 
1288
useractor notenemy NWSTEAM 0 
1285
  ifpdistl 6144
1289
  ifpdistl 6144
1286
    soundonce STEAM_HISSING
1290
    soundonce STEAM_HISSING
1287
enda
1291
enda
1288
1292
1289
define title_x1 73
1293
define title_x1 73
1290
define title_x2 306
1294
define title_x2 306
1291
define title_y 194
1295
define title_y 194
1292
define title_zoom 32768
1296
define title_zoom 32768
1293
1297
1294
onevent EVENT_DISPLAYMENU
1298
onevent EVENT_DISPLAYMENU
1295
//  getplayer[THISACTOR].gm temp
1299
//  getplayer[THISACTOR].gm temp
1296
//  ifvarand temp 4 nullop else
1300
//  ifvarand temp 4 nullop else
1297
// {
1301
// {
1298
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1302
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1299
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1303
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1300
// }
1304
// }
1301
endevent
1305
endevent
1302
1306
1303
/*
1307
/*
1304
onevent EVENT_DISPLAYTITLE
1308
onevent EVENT_DISPLAYTITLE
1305
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1309
  rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
1306
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1310
  rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
1307
endevent
1311
endevent
1308
*/
1312
*/