Subversion Repositories nw_plus

Rev

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

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