Subversion Repositories nw_plus

Rev

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

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