Blindfold removal fix
[slashemextended.git] / src / rnd.c
blobc954772d9eb39c321e1699ea0e41fc3681b35363
1 /* SCCS Id: @(#)rnd.c 3.4 1996/02/07 */
2 /* NetHack may be freely redistributed. See license for details. */
4 #include "hack.h"
6 /* "Rand()"s definition is determined by [OS]conf.h */
7 #if defined(LINT) && defined(UNIX) /* rand() is long... */
8 extern int rand(void);
9 #define RND(x) (rand() % x)
10 #else /* LINT */
11 # if defined(UNIX) || defined(RANDOM)
12 #define RND(x) (int)(Rand() % (long)(x))
13 # else
14 /* Good luck: the bottom order bits are cyclic. */
15 #define RND(x) (int)((Rand()>>3) % (x))
16 # endif
17 #endif /* LINT */
19 #ifdef OVL0
21 static int reseed_period = 0;
22 static int reseed_count = 0;
24 /* We need a cryptographically secure RNG. This is mainly for junethack (err nope, that's a thing that does not exist,
25 * so we don't even need to care anymore), even though its rules already state that
26 * exploiting flaws in a weak random number generator is forbidden, but apparently most other variants made it secure,
27 * and one example of such a variant is dnethack which seems to have the easiest to implement method available.
28 * Therefore I ported the dnethack code. It really is mainly meant to ensure that you can't exploit mechanics to get
29 * specific RNG results during tournaments --Amy */
31 void
32 check_reseed()
34 reseed_count++;
35 if (reseed_count > reseed_period) {
36 FILE *fptr = NULL;
37 int rnd[2];
39 #ifdef PUBLIC_SERVER
40 fptr = fopen("/dev/urandom","r");
41 if (fptr) {
42 fread((void *)rnd, sizeof(int),2,fptr);
43 fclose(fptr);
44 srandom((int) (time((time_t *)0)) + rnd[0]);
45 reseed_period = (rnd[1] % 700) + 10;
47 #endif
48 reseed_count = 0;
52 /* edit by Amy - since DEBUG isn't defined by default, we're printing impossible messages and returning a default value
53 * because we don't want any of that segfaulting crap. Yes, RND(x) segfaults with a non-positive value for x.
54 * And tracking down segfaults is NO fun, let me tell you. The game just closes with no message. */
56 int
57 rn2(x) /* 0 <= rn2(x) < x */
58 register int x;
60 /*check_reseed();*/
61 #ifdef DEBUG
62 if (x <= 0) {
63 impossible("rn2(%d) attempted", x);
64 return(0);
66 x = RND(x);
67 return(x);
68 #else
69 if (x <= 0) {
70 impossible("rn2(%d) attempted - returning zero", x);
71 return(0);
73 return(RND(x));
74 #endif
77 /* instead of doing rnd(rnz(x)), let's do that via a single function that performs rnz first, then rnd on the result */
78 int
79 rndrnz(x)
80 register int x;
82 int y;
84 if (x <= 0) {
85 impossible("rndrnz(%d) attempted - returning zero", x);
86 return(0);
89 y = rnz(x);
90 y = rnd(y);
91 return (y);
94 int
95 rn3(x) /* like rn2, but the result is more likely to be a lower number --Amy */
96 register int x;
98 int y;
99 /*check_reseed();*/
100 if (x <= 0) {
101 impossible("rn3(%d) attempted - returning zero", x);
102 return(0);
104 y = RND(x);
105 if (!rn2(2) && (y > 1)) y /= 2;
106 if (y < 0) y = 0; /* fail safe */
107 return (y);
111 #endif /* OVL0 */
112 #ifdef OVLB
115 rnl(x) /* 0 <= rnl(x) < x; sometimes subtracting Luck */
116 register int x; /* good luck approaches 0, bad luck approaches (x-1) */
118 register int i;
119 /*check_reseed();*/
121 #ifdef DEBUG
122 if (x <= 0) {
123 impossible("rnl(%d) attempted", x);
124 return(0);
126 #endif
127 if (x <= 0) {
128 impossible("rnl(%d) attempted - returning zero", x);
129 return(0);
132 i = RND(x);
134 if (Luck && rn2(50 - Luck)) {
135 i -= (x <= 15 && Luck >= -5 ? Luck/3 : Luck);
136 if (i < 0) i = 0;
137 else if (i >= x) i = x-1;
140 if (LuckLoss || u.uprops[LUCK_LOSS].extrinsic || have_unluckystone() || autismweaponcheck(ART_PROFANED_GREATSCYTHE) ) change_luck(-1);
142 return i;
145 #endif /* OVLB */
146 #ifdef OVL0
149 rnd(x) /* 1 <= rnd(x) <= x */
150 register int x;
152 /*check_reseed();*/
153 #ifdef DEBUG
154 if (x <= 0) {
155 impossible("rnd(%d) attempted", x);
156 return(1);
158 x = RND(x)+1;
159 return(x);
160 #else
161 if (x <= 0) {
162 impossible("rnd(%d) attempted - returning 1", x);
163 return(1);
165 return(RND(x)+1);
166 #endif
170 rno(x) /* like rnd, but the result is more likely to be a lower number --Amy */
171 register int x;
173 int y;
174 /*check_reseed();*/
175 if (x <= 0) {
176 impossible("rno(%d) attempted - returning 1", x);
177 return(1);
179 y = RND(x)+1;
180 if (!rn2(2) && (y > 1)) y /= 2;
181 if (y < 1) y = 1; /* fail safe */
182 return (y);
185 #endif /* OVL0 */
186 #ifdef OVL1
189 d(n,x) /* n <= d(n,x) <= (n*x) */
190 register int n, x;
192 register int tmp = n;
193 /*check_reseed();*/
195 #ifdef DEBUG
196 if (x < 0 || n < 0 || (x == 0 && n != 0)) {
197 impossible("d(%d,%d) attempted", n, x);
198 return(1);
200 #endif
201 if (x < 0 || n < 0 || (x == 0 && n != 0)) {
202 impossible("d(%d,%d) attempted - returning 1", n, x);
203 return(1);
205 while(n--) tmp += RND(x);
206 return(tmp); /* Alea iacta est. -- J.C. */
209 #endif /* OVL1 */
210 #ifdef OVLB
213 rne(x)
214 register int x;
216 register int tmp, utmp;
218 utmp = /*(u.ulevel < 15) ? 5 : u.ulevel/3*/100;
219 tmp = 1;
220 while (tmp < utmp && !rn2(x))
221 tmp++;
223 if (isxrace) { /* x-race is the "rng-changing race", which affects rne and thus rnz too --Amy */
224 while (tmp < utmp && !rn2(x) && !rn2(2) )
225 tmp++;
228 if (youmonst.data && uarms && uarms->oartifact == ART_DNETHACKC_NOONISHNESS) {
229 while (tmp < utmp && !rn2(x) && !rn2(2) )
230 tmp++;
233 if (youmonst.data && uarmc && uarmc->oartifact == ART_CHANGED_RANDOM_NUMBERS) {
234 while (tmp < utmp && !rn2(x) && !rn2(2) )
235 tmp++;
238 if (youmonst.data && uarm && uarm->oartifact == ART_AMMY_S_RNG_CHANGER) {
239 while (tmp < utmp && !rn2(x) && !rn2(2) )
240 tmp++;
243 return tmp;
245 /* was:
246 * tmp = 1;
247 * while(!rn2(x)) tmp++;
248 * return(min(tmp,(u.ulevel < 15) ? 5 : u.ulevel/3));
249 * which is clearer but less efficient and stands a vanishingly
250 * small chance of overflowing tmp
255 rnz(i)
256 int i;
258 #ifdef LINT
259 int x = i;
260 int tmp = 1000;
261 #else
262 register long x = i;
263 register long tmp = 1000;
264 #endif
265 tmp += rn2(1000);
266 if (rn2(5)) {tmp *= rne(4); } /*adjustments by Amy*/
267 else { tmp *= rne(3); }
268 if (rn2(2)) { x *= tmp; x /= 1000; }
269 else { x *= 1000; x /= tmp; }
270 if (x < 1) x = 1;
271 return((int)x);
275 randattack()
278 switch (rnd(362)) {
280 case 1:
281 case 2:
282 case 3:
283 case 4:
284 case 5:
285 case 6:
286 case 7:
287 case 8:
288 case 9:
289 case 10:
290 case 11:
291 case 12:
292 case 13:
293 case 14:
294 case 15:
295 return AD_PHYS;
296 case 16:
297 case 17:
298 case 18:
299 return AD_MAGM;
300 case 19:
301 case 20:
302 case 21:
303 case 22:
304 case 23:
305 case 24:
306 case 25:
307 return AD_FIRE;
308 case 26:
309 case 27:
310 case 28:
311 case 29:
312 case 30:
313 case 31:
314 case 32:
315 return AD_COLD;
316 case 33:
317 case 34:
318 case 35:
319 case 36:
320 case 37:
321 return AD_SLEE;
322 case 38:
323 return AD_DISN;
324 case 39:
325 case 40:
326 case 41:
327 case 42:
328 case 43:
329 case 44:
330 case 45:
331 return AD_ELEC;
332 case 46:
333 case 47:
334 case 48:
335 case 49:
336 case 50:
337 case 51:
338 case 52:
339 return AD_DRST;
340 case 53:
341 case 54:
342 case 55:
343 case 56:
344 case 57:
345 case 58:
346 return AD_ACID;
347 case 59:
348 case 60:
349 case 61:
350 return AD_LITE;
351 case 62:
352 case 63:
353 case 64:
354 case 65:
355 case 66:
356 case 67:
357 case 68:
358 return AD_BLND;
359 case 69:
360 case 70:
361 case 71:
362 case 72:
363 case 73:
364 case 74:
365 return AD_STUN;
366 case 75:
367 return (rnd(5) ? AD_SLOW : AD_INER);
368 case 76:
369 case 77:
370 return AD_SLOW;
371 case 78:
372 case 79:
373 return AD_PLYS;
374 case 80:
375 return (rnd(7) ? AD_DRLI : AD_TIME);
376 case 81:
377 return AD_DRLI;
378 case 82:
379 case 83:
380 case 84:
381 case 85:
382 return AD_DREN;
383 case 86:
384 case 87:
385 case 88:
386 case 89:
387 case 90:
388 return AD_LEGS;
389 case 91:
390 return AD_STON;
391 case 92:
392 case 93:
393 case 94:
394 case 95:
395 case 96:
396 return AD_STCK;
397 case 97:
398 case 98:
399 case 99:
400 case 100:
401 case 101:
402 return AD_SGLD;
403 case 102:
404 case 103:
405 case 104:
406 case 105:
407 case 106:
408 return AD_SITM;
409 case 107:
410 case 108:
411 case 109:
412 case 110:
413 case 111:
414 return AD_SEDU;
415 case 112:
416 case 113:
417 case 114:
418 case 115:
419 case 116:
420 return AD_TLPT;
421 case 117:
422 case 118:
423 case 119:
424 return AD_RUST;
425 case 120:
426 case 121:
427 case 122:
428 case 123:
429 case 124:
430 case 125:
431 case 126:
432 return AD_CONF;
433 case 127:
434 return AD_DGST;
435 case 128:
436 case 129:
437 return AD_HEAL;
438 case 130:
439 case 131:
440 case 132:
441 return AD_WRAP;
442 case 133:
443 case 134:
444 case 135:
445 return AD_DRDX;
446 case 136:
447 case 137:
448 case 138:
449 return AD_DRCO;
450 case 139:
451 case 140:
452 return AD_DRIN;
453 case 141:
454 case 142:
455 return AD_DISE;
456 case 143:
457 case 144:
458 case 145:
459 return AD_DCAY;
460 case 146:
461 return AD_SSEX;
462 case 147:
463 case 148:
464 case 149:
465 case 150:
466 case 151:
467 return AD_HALU;
468 case 152:
469 return AD_DETH;
470 case 153:
471 return AD_PEST;
472 case 154:
473 return AD_FAMN;
474 case 155:
475 return AD_SLIM;
476 case 156:
477 case 157:
478 case 158:
479 case 159:
480 return AD_CALM;
481 case 160:
482 case 161:
483 return AD_ENCH;
484 case 162:
485 return AD_POLY;
486 case 163:
487 case 164:
488 case 165:
489 return AD_CORR;
490 case 166:
491 case 167:
492 case 168:
493 return AD_TCKL;
494 case 169:
495 case 170:
496 case 171:
497 case 172:
498 case 173:
499 return AD_NGRA;
500 case 174:
501 case 175:
502 case 176:
503 return AD_GLIB;
504 case 177:
505 case 178:
506 case 179:
507 case 180:
508 case 181:
509 return AD_DARK;
510 case 182:
511 return AD_WTHR;
512 case 183:
513 case 184:
514 return AD_LUCK;
515 case 185:
516 case 186:
517 case 187:
518 case 188:
519 case 189:
520 case 190:
521 case 191:
522 return AD_NUMB;
523 case 192:
524 case 193:
525 case 194:
526 case 195:
527 return AD_FRZE;
528 case 196:
529 case 197:
530 case 198:
531 case 199:
532 return AD_DISP;
533 case 200:
534 case 201:
535 case 202:
536 case 203:
537 case 204:
538 case 205:
539 return AD_BURN;
540 case 206:
541 case 207:
542 case 208:
543 case 209:
544 case 210:
545 case 211:
546 return AD_FEAR;
547 case 212:
548 return AD_NPRO;
549 case 213:
550 case 214:
551 return AD_POIS;
552 case 215:
553 case 216:
554 case 217:
555 case 218:
556 return AD_THIR;
557 case 219:
558 case 220:
559 case 221:
560 return AD_LAVA;
561 case 222:
562 case 223:
563 case 224:
564 case 225:
565 case 226:
566 case 227:
567 case 228:
568 return AD_FAKE;
569 case 229:
570 return (rn2(5) ? AD_WET : AD_LETH);
571 case 230:
572 return AD_CNCL;
573 case 231:
574 return AD_BANI;
575 case 232:
576 case 233:
577 case 234:
578 return AD_WISD;
579 case 235:
580 return AD_SHRD;
581 case 236:
582 return AD_SUCK;
583 case 237:
584 case 238:
585 case 239:
586 return AD_MALK;
587 case 240:
588 return (rn2(10) ? AD_DRIN : AD_UVUU);
589 case 241:
590 case 242:
591 return AD_ABDC;
592 case 243:
593 return AD_AXUS;
594 case 244:
595 case 245:
596 case 246:
597 case 247:
598 case 248:
599 case 249:
600 return AD_CHKH;
601 case 250:
602 case 251:
603 case 252:
604 case 253:
605 return AD_HODS;
606 case 254:
607 case 255:
608 return AD_CHRN;
609 case 256:
610 return (rn2(3) ? AD_WEEP : AD_NEXU);
611 case 257:
612 return AD_VAMP;
613 case 258:
614 case 259:
615 case 260:
616 case 261:
617 case 262:
618 return AD_WEBS;
619 case 263:
620 return AD_STTP;
621 case 264:
622 return AD_DEPR;
623 case 265:
624 return AD_WRAT;
625 case 266:
626 return AD_LAZY;
627 case 267:
628 case 268:
629 case 269:
630 return AD_DRCH;
631 case 270:
632 return AD_DFOO;
633 case 271:
634 return AD_GRAV;
635 case 272:
636 return AD_SOUN;
637 case 273:
638 return AD_MANA;
639 case 274:
640 return AD_PLAS;
641 case 275:
642 return AD_SKIL;
643 case 276:
644 return AD_SPC2;
645 case 277:
646 return AD_VENO;
647 case 278:
648 return AD_DREA;
649 case 279:
650 return (rn2(20) ? AD_BADE : AD_NAST);
651 case 280:
652 return AD_SLUD;
653 case 281:
654 return AD_ICUR;
655 case 282:
656 return AD_VULN;
657 case 283:
658 return AD_FUMB;
659 case 284:
660 case 285:
661 case 286:
662 case 287:
663 case 288:
664 return AD_DIMN;
665 case 289:
666 return AD_AMNE;
667 case 290:
668 return AD_ICEB;
669 case 291:
670 return AD_VAPO;
671 case 292:
672 return AD_EDGE;
673 case 293:
674 return AD_VOMT;
675 case 294:
676 return AD_LITT;
677 case 295:
678 return AD_FREN;
679 case 296:
680 return AD_NGEN;
681 case 297:
682 return AD_CHAO;
683 case 298:
684 return AD_INSA;
685 case 299:
686 return AD_TRAP;
687 case 300:
688 return AD_WGHT;
689 case 301:
690 return AD_NTHR;
691 case 302:
692 case 303:
693 case 304:
694 case 305:
695 return AD_CONT;
696 case 306:
697 case 307:
698 case 308:
699 case 309:
700 case 310:
701 return AD_ALIN;
702 case 311:
703 return AD_SIN;
704 case 312:
705 case 313:
706 case 314:
707 return AD_AGGR;
708 case 315:
709 return (rn2(100) ? AD_DEST : AD_RAGN);
710 case 316:
711 return AD_TREM;
712 case 317:
713 return AD_IDAM;
714 case 318:
715 return AD_ANTI;
716 case 319:
717 return AD_PAIN;
718 case 320:
719 case 321:
720 return AD_TECH;
721 case 322:
722 case 323:
723 case 324:
724 return AD_MEMO;
725 case 325:
726 return AD_TRAI;
727 case 326:
728 return AD_STAT;
729 case 327:
730 return AD_NACU;
731 case 328:
732 case 329:
733 case 330:
734 return AD_SANI;
735 case 331:
736 return AD_RBAD;
737 case 332:
738 case 333:
739 return AD_BLEE;
740 case 334:
741 return AD_SHAN;
742 case 335:
743 case 336:
744 case 337:
745 case 338:
746 case 339:
747 return AD_SCOR;
748 case 340:
749 return AD_TERR;
750 case 341:
751 return AD_FEMI;
752 case 342:
753 return AD_LEVI;
754 case 343:
755 return AD_MCRE;
756 case 344:
757 return AD_FLAM;
758 case 345:
759 return AD_DEBU;
760 case 346:
761 return AD_UNPR;
762 case 347:
763 case 348:
764 case 349:
765 case 350:
766 case 351:
767 return AD_NIVE;
768 case 352:
769 return AD_TDRA;
770 case 353:
771 return AD_BLAS;
772 case 354:
773 return AD_DROP;
774 case 355:
775 return AD_INVE;
776 case 356:
777 case 357:
778 return AD_WNCE;
779 case 358:
780 case 359:
781 case 360:
782 return AD_DEBT;
783 case 361:
784 return AD_SWAP;
785 case 362:
786 return AD_TPTO;
787 default:
788 return AD_PHYS;
795 randomdamageattack()
797 switch (rnd(27)) {
798 case 1:
799 return AD_ACID;
800 case 2:
801 return AD_DRLI;
802 case 3:
803 return AD_RUST;
804 case 4:
805 return AD_DCAY;
806 case 5:
807 return AD_CORR;
808 case 6:
809 return AD_WTHR;
810 case 7:
811 return AD_NPRO;
812 case 8:
813 return AD_POIS;
814 case 9:
815 return AD_LAVA;
816 case 10:
817 return AD_LETH;
818 case 11:
819 return AD_CNCL;
820 case 12:
821 return AD_SHRD;
822 case 13:
823 return AD_WET;
824 case 14:
825 return AD_UVUU;
826 case 15:
827 return AD_VAMP;
828 case 16:
829 return AD_VENO;
830 case 17:
831 return AD_NAST;
832 case 18:
833 return AD_SLUD;
834 case 19:
835 return AD_ICUR;
836 case 20:
837 return AD_SIN;
838 case 21:
839 return AD_CONT;
840 case 22:
841 return AD_DEST;
842 case 23:
843 return AD_IDAM;
844 case 24:
845 return AD_ANTI;
846 case 25:
847 return AD_NACU;
848 case 26:
849 return AD_FLAM;
850 case 27:
851 return AD_UNPR;
852 default:
853 return AD_PHYS;
858 randomthievingattack()
860 switch (rnd(30)) {
861 case 1:
862 return AD_SLOW;
863 case 2:
864 return AD_DREN;
865 case 3:
866 return AD_SGLD;
867 case 4:
868 return AD_SITM;
869 case 5:
870 return AD_SEDU;
871 case 6:
872 return AD_ENCH;
873 case 7:
874 return AD_LUCK;
875 case 8:
876 return AD_SUCK;
877 case 9:
878 return AD_MALK;
879 case 10:
880 return AD_STTP;
881 case 11:
882 return AD_TIME;
883 case 12:
884 return AD_PLAS;
885 case 13:
886 return AD_SKIL;
887 case 14:
888 return AD_VULN;
889 case 15:
890 return AD_AMNE;
891 case 16:
892 return AD_ICEB;
893 case 17:
894 return AD_LITT;
895 case 18:
896 return AD_NGEN;
897 case 19:
898 return AD_ALIN;
899 case 20:
900 return AD_TREM;
901 case 21:
902 return AD_TECH;
903 case 22:
904 return AD_MEMO;
905 case 23:
906 return AD_TRAI;
907 case 24:
908 return AD_STAT;
909 case 25:
910 return AD_MCRE;
911 case 26:
912 return AD_DEBU;
913 case 27:
914 return AD_NIVE;
915 case 28:
916 return AD_TDRA;
917 case 29:
918 return AD_DROP;
919 case 30:
920 return AD_DEBT;
921 default:
922 return AD_PHYS;
927 randomillusionattack()
929 switch (rnd(33)) {
930 case 1:
931 return AD_SPC2;
932 case 2:
933 return AD_STUN;
934 case 3:
935 return AD_DRIN;
936 case 4:
937 return AD_HALU;
938 case 5:
939 return AD_DARK;
940 case 6:
941 return AD_FEAR;
942 case 7:
943 return AD_FAKE;
944 case 8:
945 return AD_LETH;
946 case 9:
947 return AD_CNCL;
948 case 10:
949 return AD_BANI;
950 case 11:
951 return AD_WISD;
952 case 12:
953 return AD_HODS;
954 case 13:
955 return AD_CHRN;
956 case 14:
957 return AD_WEEP;
958 case 15:
959 return AD_STTP;
960 case 16:
961 return AD_DEPR;
962 case 17:
963 return AD_LAZY;
964 case 18:
965 return AD_INER;
966 case 19:
967 return AD_VULN;
968 case 20:
969 return AD_AMNE;
970 case 21:
971 return AD_INSA;
972 case 22:
973 return AD_TRAP;
974 case 23:
975 return AD_SANI;
976 case 24:
977 return AD_SHAN;
978 case 25:
979 return AD_TERR;
980 case 26:
981 return AD_FEMI;
982 case 27:
983 return AD_LEVI;
984 case 28:
985 return AD_MCRE;
986 case 29:
987 return AD_DEBU;
988 case 30:
989 return AD_UNPR;
990 case 31:
991 return AD_BLAS;
992 case 32:
993 return AD_WNCE;
994 case 33:
995 return AD_INVE;
996 default:
997 return AD_PHYS;
1002 randmonsound()
1004 switch (rnd(79)) {
1005 case 1:
1006 return MS_SILENT;
1007 case 2:
1008 return MS_BARK;
1009 case 3:
1010 return MS_MEW;
1011 case 4:
1012 return MS_ROAR;
1013 case 5:
1014 return MS_GROWL;
1015 case 6:
1016 return MS_SQEEK;
1017 case 7:
1018 return MS_SQAWK;
1019 case 8:
1020 return MS_HISS;
1021 case 9:
1022 return MS_BUZZ;
1023 case 10:
1024 return MS_GRUNT;
1025 case 11:
1026 return MS_NEIGH;
1027 case 12:
1028 return MS_WAIL;
1029 case 13:
1030 return MS_GURGLE;
1031 case 14:
1032 return MS_BURBLE;
1033 case 15:
1034 return MS_ANIMAL;
1035 case 16:
1036 return MS_SHRIEK;
1037 case 17:
1038 return MS_BONES;
1039 case 18:
1040 return MS_LAUGH;
1041 case 19:
1042 return MS_MUMBLE;
1043 case 20:
1044 return MS_IMITATE;
1045 case 21:
1046 return MS_ORC;
1047 case 22:
1048 return MS_HUMANOID;
1049 case 23:
1050 return MS_SOLDIER;
1051 case 24:
1052 return MS_DJINNI;
1053 case 25:
1054 return MS_NURSE;
1055 case 26:
1056 return MS_SEDUCE;
1057 case 27:
1058 return MS_VAMPIRE;
1059 case 28:
1060 return MS_CUSS;
1061 case 29:
1062 return MS_SPELL;
1063 case 30:
1064 return MS_WERE;
1065 case 31:
1066 return MS_BOAST;
1067 case 32:
1068 return MS_GYPSY;
1069 case 33:
1070 return MS_SHEEP;
1071 case 34:
1072 return MS_CHICKEN;
1073 case 35:
1074 return MS_COW;
1075 case 36:
1076 return MS_PARROT;
1077 case 37:
1078 return MS_WHORE;
1079 case 38:
1080 return MS_SUPERMAN;
1081 case 39:
1082 return MS_FART_QUIET;
1083 case 40:
1084 return MS_FART_NORMAL;
1085 case 41:
1086 return MS_FART_LOUD;
1087 case 42:
1088 return MS_SOUND;
1089 case 43:
1090 return MS_SHOE;
1091 case 44:
1092 return MS_STENCH;
1093 case 45:
1094 return MS_CONVERT;
1095 case 46:
1096 return MS_HCALIEN;
1097 case 47:
1098 return MS_DOUGLAS_ADAMS;
1099 case 48:
1100 return MS_PUPIL;
1101 case 49:
1102 return MS_TEACHER;
1103 case 50:
1104 return MS_PRINCIPAL;
1105 case 51:
1106 return MS_SMITH;
1107 case 52:
1108 return MS_BOSS;
1109 case 53:
1110 return MS_ARREST;
1111 case 54:
1112 return MS_CASINO;
1113 case 55:
1114 return MS_GIBBERISH;
1115 case 56:
1116 return MS_GLYPHS;
1117 case 57:
1118 return MS_SOCKS;
1119 case 58:
1120 return MS_PANTS;
1121 case 59:
1122 return MS_HANDY;
1123 case 60:
1124 return MS_CAR;
1125 case 61:
1126 return MS_JAPANESE;
1127 case 62:
1128 return MS_SOVIET;
1129 case 63:
1130 return MS_SNORE;
1131 case 64:
1132 return MS_PHOTO;
1133 case 65:
1134 return MS_REPAIR;
1135 case 66:
1136 return MS_DRUGS;
1137 case 67:
1138 return MS_COMBAT;
1139 case 68:
1140 return MS_MUTE;
1141 case 69:
1142 return MS_CORONA;
1143 case 70:
1144 return MS_TRUMPET;
1145 case 71:
1146 return MS_PAIN;
1147 case 72:
1148 return MS_BRAG;
1149 case 73:
1150 return MS_PRINCESSLEIA;
1151 case 74:
1152 return MS_SISSY;
1153 case 75:
1154 return MS_SING;
1155 case 76:
1156 return MS_ALLA;
1157 case 77:
1158 return MS_POKEDEX;
1159 case 78:
1160 return MS_BOT;
1161 case 79:
1162 return MS_APOC;
1163 case 80:
1164 return MS_LIEDER;
1165 case 81:
1166 return MS_GAARDIEN;
1167 case 82:
1168 return MS_MISSING;
1169 case 83:
1170 return MS_SELFHARM;
1171 case 84:
1172 return MS_CLOCK;
1173 case 85:
1174 return MS_OHGOD;
1175 case 86:
1176 return MS_WOLLOH;
1177 case 87:
1178 return MS_CODE;
1179 case 88:
1180 return MS_BARBER;
1181 case 89:
1182 return MS_AREOLA;
1183 case 90:
1184 return MS_STABILIZE;
1185 case 91:
1186 return MS_ESCAPE;
1187 case 92:
1188 return MS_FEARHARE;
1189 case 93:
1190 return MS_SPOILER;
1191 case 94:
1192 return MS_DEAD;
1193 case 95:
1194 return MS_TREESQUAD;
1195 case 96:
1196 return MS_METALMAFIA;
1197 case 97:
1198 return MS_DEEPSTATE;
1199 default:
1200 return MS_HUMANOID;
1205 randenchantment()
1208 if (!rn2(20)) {
1210 return randnastyenchantment();
1212 } else if (!rn2(15)) {
1214 return randfemienchantment();
1216 } else if (!rn2(10)) {
1218 switch (rnd(119)) {
1219 case 1: return HALLU_PARTY;
1220 case 2: return DRUNKEN_BOXING;
1221 case 3: return STUNNOPATHY;
1222 case 4: return NUMBOPATHY;
1223 case 5: return FREEZOPATHY;
1224 case 6: return STONED_CHILLER;
1225 case 7: return CORROSIVITY;
1226 case 8: return FEAR_FACTOR;
1227 case 9: return BURNOPATHY;
1228 case 10: return SICKOPATHY;
1229 case 11: return WONDERLEGS;
1230 case 12: return GLIB_COMBAT;
1231 case 13: return DIMMOPATHY;
1232 case 14: return RNGE_IRREGULARITY;
1233 case 15: return RNGE_INTERNET_ACCESS;
1234 case 16: return RNGE_ANTI_GOVERNMENT;
1235 case 17: return RNGE_GAS_FILTERING;
1236 case 18: return RNGE_VAMPIRIC_DRAIN;
1237 case 19: return RNGE_PSEUDO_IDENTIFICATION;
1238 case 20: return RNGE_GHOST_SUMMONING;
1239 case 21: return RNGE_PRAYER;
1240 case 22: return RNGE_ANTI_BEHEADING;
1241 case 23: return RNGE_POLAND;
1242 case 24: return RNGE_KICKING;
1243 case 25: return RNGE_TOESTOMPING;
1244 case 26: return RNGE_JUNGLE_ACTION;
1245 case 27: return RNGE_UNLIKABILITY;
1246 case 28: return RNGE_SPELL_DISRUPTION;
1247 case 29: return RNGE_BDSM;
1248 case 30: return RNGE_SLIPPING;
1249 case 31: return RNGE_MIRRORING;
1250 case 32: return RNGE_TRUE_SIGHT;
1251 case 33: return RNGE_LIQUID_DIET;
1252 case 34: return RNGE_ANGRY_GODS;
1253 case 35: return RNGE_RADIO_BROADCASTS;
1254 case 36: return RNGE_OCCASIONAL_DAMAGE;
1255 case 37: return RNGE_NOISE;
1256 case 38: return RNGE_VORTICES;
1257 case 39: return RNGE_EXPLOSIONS;
1258 case 40: return RNGE_FATAL_ATTRACTION;
1259 case 41: return RNGE_VOLTAGE;
1260 case 42: return RNGE_WEEPING;
1261 case 43: return RNGE_CASTLEVANIA;
1262 case 44: return RNGE_ENGLAND;
1263 case 45: return RNGE_FORGETTING;
1264 case 46: return RNGE_ANTIMAGIC_A;
1265 case 47: return RNGE_ANTIMAGIC_B;
1266 case 48: return RNGE_ANTIMAGIC_C;
1267 case 49: return RNGE_ANTIMAGIC_D;
1268 case 50: return RNGE_CHINA;
1269 case 51: return RNGE_LIGHT_ABSORPTION;
1270 case 52: return RNGE_CHILDBIRTH;
1271 case 53: return RNGE_RED_ATTUNEMENT;
1272 case 54: return RNGE_POLAR_OPPOSITES;
1273 case 55: return RNGE_SICKNESS;
1274 case 56: return RNGE_COQUETRY;
1275 case 57: return RNGE_IGNORANCE;
1276 case 58: return RNGE_VENGEANCE;
1277 case 59: return RNGE_HIGH_HEELING;
1278 case 60: return RNGE_GRAVITY;
1279 case 61: return RNGE_WISH_IMPROVEMENT;
1280 case 62: return RNGE_POCKET_MONSTERS;
1281 case 63: return RNGE_LEVUNTATION;
1282 case 64: return RNGE_PERMANENT_OCCUPATION;
1283 case 65: return RNGE_NURSERY;
1284 case 66: return RNGE_SLEXUALITY;
1285 case 67: return RNGE_ANGBAND;
1286 case 68: return RNGE_ANOREXIA;
1287 case 69: return RNGE_DNETHACK;
1288 case 70: return RNGE_UNNETHACK;
1289 case 71: return RNGE_NETHACK_FOURK;
1290 case 72: return RNGE_MARITAL_ARTS;
1291 case 73: return RNGE_TEAM_SPLAT;
1292 case 74: return RNGE_ABOMINATIONS;
1293 case 75: return RNGE_PUNISHMENT;
1294 case 76: return RNGE_BLOODLUST;
1295 case 77: return RNGE_IMMOBILITY;
1296 case 78: return RNGE_BOSS_ENCOUNTERS;
1297 case 79: return RNGE_IRONMAN_MODE;
1298 case 80: return RNGE_RIVERS;
1299 case 81: return RNGE_LOUDSPEAKERS;
1300 case 82: return RNGE_ARMOR_PRESERVATION;
1301 case 83: return RNGE_WEAKNESS;
1302 case 84: return RNGE_FRAILNESS;
1303 case 85: return RNGE_IRON_MAIDEN;
1304 case 86: return RNGE_DONORS;
1305 case 87: return RNGE_AIDS;
1306 case 88: return RNGE_TRAP_ALERT;
1307 case 89: return RNGE_EXTINCTION;
1308 case 90: return RNGE_DEFUSING;
1309 case 91: return RNGE_DENASTIFICATION;
1310 case 92: return RNGE_MULTISHOT;
1311 case 93: return RNGE_SKILL_REVEAL;
1312 case 94: return RNGE_TECH_INSIGHT;
1313 case 95: return RNGE_LISTENING;
1314 case 96: return RNGE_CANNIBALISM;
1315 case 97: return RNGE_POLYVISION;
1316 case 98: return RNGE_HEMOPHILIA;
1317 case 99: return RNGE_BLAST_SHIELDING;
1318 case 100: return RNGE_FUNNY_HALLU;
1319 case 101: return RNGE_POLYPILING;
1320 case 102: return RNGE_SAP_GENERATION;
1321 case 103: return RNGE_WEALTH;
1322 case 104: return RNGE_WHORING;
1323 case 105: return RNGE_BOSSING;
1324 case 106: return RNGE_STENCH;
1325 case 107: return RNGE_ECHOLOCATION;
1326 case 108: return RNGE_STACKMESSAGING;
1327 case 109: return RNGE_OVERVIEW_IMPROVEMENT;
1328 case 110: return RNGE_NASTY_REDUCTION;
1329 case 111: return RNGE_TECH_REUSE;
1330 case 112: return RNGE_CARRYING_BOOST;
1331 case 113: return RNGE_KILLER_FILLING;
1332 case 114: return RNGE_MULCHING_DISPLAY;
1333 case 115: return RNGE_STATCAP_INCREASE;
1334 case 116: return RNGE_ANTI_COVID;
1335 case 117: return RNGE_FLUIDATOR_REDUCTION;
1336 case 118: return RNGE_SCROUNGING;
1337 case 119: return RNGE_FARMING;
1339 default: return POISON_RES;
1342 } else {
1344 switch (rnd(163)) {
1346 case 1:
1347 case 2:
1348 case 3:
1349 case 4:
1350 case 5:
1351 return FIRE_RES;
1352 case 6:
1353 case 7:
1354 case 8:
1355 case 9:
1356 case 10:
1357 return COLD_RES;
1358 case 11:
1359 case 12:
1360 case 13:
1361 case 14:
1362 case 15:
1363 return SLEEP_RES;
1364 case 16:
1365 case 17:
1366 case 18:
1367 return DISINT_RES;
1368 case 19:
1369 case 20:
1370 case 21:
1371 case 22:
1372 case 23:
1373 return SHOCK_RES;
1374 case 24:
1375 case 25:
1376 case 26:
1377 case 27:
1378 case 28:
1379 return POISON_RES;
1380 case 29:
1381 case 30:
1382 case 31:
1383 return ACID_RES;
1384 case 32:
1385 return STONE_RES;
1386 case 33:
1387 case 34:
1388 case 35:
1389 return REGENERATION;
1390 case 36:
1391 case 37:
1392 case 38:
1393 return SEARCHING;
1394 case 39:
1395 case 40:
1396 case 41:
1397 return SEE_INVIS;
1398 case 42:
1399 case 43:
1400 case 44:
1401 return INVIS;
1402 case 45:
1403 case 46:
1404 case 47:
1405 case 48:
1406 case 49:
1407 return TELEPORT;
1408 case 50:
1409 case 51:
1410 case 52:
1411 return TELEPORT_CONTROL;
1412 case 53:
1413 case 54:
1414 case 55:
1415 return POLYMORPH;
1416 case 56:
1417 return POLYMORPH_CONTROL;
1418 case 57:
1419 case 58:
1420 case 59:
1421 return LEVITATION;
1422 case 60:
1423 case 61:
1424 case 62:
1425 return STEALTH;
1426 case 63:
1427 case 64:
1428 case 65:
1429 return AGGRAVATE_MONSTER;
1430 case 66:
1431 return CONFLICT;
1432 case 67:
1433 case 68:
1434 case 69:
1435 return WARNING;
1436 case 70:
1437 case 71:
1438 case 72:
1439 return TELEPAT;
1440 case 73:
1441 case 74:
1442 case 75:
1443 return FAST;
1444 case 76:
1445 return (rn2(50) ? HUNGER : PASSES_WALLS);
1446 case 77:
1447 case 78:
1448 return HUNGER;
1449 case 79:
1450 case 80:
1451 case 81:
1452 return REFLECTING;
1453 case 82:
1454 case 83:
1455 return ANTIMAGIC;
1456 case 84:
1457 case 85:
1458 return ENERGY_REGENERATION;
1459 case 86:
1460 case 87:
1461 case 88:
1462 return MAGICAL_BREATHING;
1463 case 89:
1464 return HALF_SPDAM;
1465 case 90:
1466 return HALF_PHDAM;
1467 case 91:
1468 return SICK_RES;
1469 case 92:
1470 case 93:
1471 return DRAIN_RES;
1472 case 94:
1473 return WARN_UNDEAD;
1474 case 95:
1475 case 96:
1476 case 97:
1477 return FREE_ACTION;
1478 case 98:
1479 case 99:
1480 return FLYING;
1481 case 100:
1482 case 101:
1483 return SLOW_DIGESTION;
1484 case 102:
1485 return INFRAVISION;
1486 case 103:
1487 case 104:
1488 case 105:
1489 return FEAR_RES;
1490 case 106:
1491 return DISPLACED;
1492 case 107:
1493 return SWIMMING;
1494 case 108:
1495 return FIXED_ABIL;
1496 case 109:
1497 return KEEN_MEMORY;
1498 case 110:
1499 return THE_FORCE;
1500 case 111:
1501 return FROZEN;
1502 case 112:
1503 return GLIB;
1504 case 113:
1505 return HALLUC;
1506 case 114:
1507 return BURNED;
1508 case 115:
1509 return WOUNDED_LEGS;
1510 case 116:
1511 return NUMBED;
1512 case 117:
1513 return TRAP_REVEALING;
1514 case 118:
1515 return BLINDED;
1516 case 119:
1517 return PREMDEATH;
1518 case 120:
1519 return CLAIRVOYANT;
1520 case 121:
1521 return SIGHT_BONUS;
1522 case 122:
1523 return VERSUS_CURSES;
1524 case 123:
1525 return STUN_RES;
1526 case 124:
1527 return CONF_RES;
1528 case 125:
1529 return EXTRA_WEAPON_PRACTICE;
1530 case 126:
1531 return DTBEEM_RES;
1532 case 127:
1533 return (rn2(20) ? POISON_RES : DOUBLE_ATTACK);
1534 case 128:
1535 return (rn2(100) ? TELEPORT : QUAD_ATTACK);
1536 case 129:
1537 return PSI_RES;
1538 case 130:
1539 return MANALEECH;
1540 case 131:
1541 return MAP_AMNESIA;
1542 case 132:
1543 return DIMMED;
1544 case 133:
1545 return PEACEVISION;
1546 case 134:
1547 return STUNNED;
1548 case 135:
1549 return CONFUSION;
1550 case 136:
1551 return FEARED;
1552 case 137:
1553 return CONT_RES;
1554 case 138:
1555 return DISCOUNT_ACTION;
1556 case 139:
1557 return FULL_NUTRIENT;
1558 case 140:
1559 return TECHNICALITY;
1560 case 141:
1561 return SCENT_VIEW;
1562 case 142:
1563 return DIMINISHED_BLEEDING;
1564 case 143:
1565 return CONTROL_MAGIC;
1566 case 144:
1567 return EXP_BOOST;
1568 case 145:
1569 return (rn2(1000) ? BLIND_RES : ASTRAL_VISION);
1570 case 146:
1571 return HALLUC_RES;
1572 case 147:
1573 case 148:
1574 return PAIN_SENSE;
1575 case 149:
1576 return INVERT_STATE;
1577 case 150:
1578 return WINCE_STATE;
1579 case 151:
1580 case 152:
1581 return DEFUSING;
1582 case 153:
1583 return BURDENED_STATE;
1584 case 154:
1585 return MAGIC_VACUUM;
1586 case 155:
1587 return RESISTANCE_PIERCING;
1588 case 156:
1589 return FUCK_OVER;
1590 case 157:
1591 case 158:
1592 case 159:
1593 case 160:
1594 return MYSTERY_RES;
1595 case 161:
1596 return MAGIC_FIND;
1597 case 162:
1598 case 163:
1599 return SPELLBOOST;
1601 default:
1602 return POISON_RES;
1606 } /* didn't pick any RNG enchantments, nasty effects etc. */
1611 randnastyenchantment()
1613 switch (rnd(287)) {
1615 case 1: return SPELLS_LOST;
1616 case 2: return CASTER_PROBLEM;
1617 case 3: return STATUS_FAILURE;
1618 case 4: return LUCK_LOSS;
1619 case 5: return YELLOW_SPELLS;
1620 case 6: return REPEATING_VULNERABILITY;
1621 case 7: return INVENTORY_LOST;
1622 case 8: return RESPAWN_BUG;
1623 case 9: return VERISIERTEFFECT;
1624 case 10: return LEVELBUG;
1625 case 11: return ALWAYS_EGOTYPES;
1626 case 12: return FAST_FORWARD;
1627 case 13: return UNIDENTIFY;
1628 case 14: return DISPLAY_LOST;
1629 case 15: return THIRST;
1630 case 16: return BLACK_NG_WALLS;
1631 case 17: return DSTW_BUG;
1632 case 18: return RANDOM_RUMORS;
1633 case 19: return ROT_THIRTEEN;
1634 case 20: return ALIGNMENT_FAILURE;
1635 case 21: return DEAFNESS;
1636 case 22: return MEMORY_LOST;
1637 case 23: return FARLOOK_BUG;
1638 case 24: return CAPTCHA;
1639 case 25: return RECURRING_AMNESIA;
1640 case 26: return SENSORY_DEPRIVATION;
1641 case 27: return BIGSCRIPT;
1642 case 28: return QUIZZES;
1643 case 29: return MAPBUG;
1644 case 30: return MUTENESS;
1645 case 31: return FOOD_IS_ROTTEN;
1646 case 32: return MENU_LOST;
1647 case 33: return FREE_HAND_LOST;
1648 case 34: return CONFUSION_PROBLEM;
1649 case 35: return DROP_BUG;
1650 case 36: return UNINFORMATION;
1651 case 37: return AUTOMATIC_TRAP_CREATION;
1652 case 38: return SHADES_OF_GREY;
1653 case 39: return BANKBUG;
1654 case 40: return TECHBUG;
1655 case 41: return CHAOS_TERRAIN;
1656 case 42: return AUTO_DESTRUCT;
1657 case 43: return SPEED_BUG;
1658 case 44: return FAINT_ACTIVE;
1659 case 45: return DIFFICULTY_INCREASED;
1660 case 46: return WEAKNESS_PROBLEM;
1661 case 47: return BISHOP_GRIDBUG;
1662 case 48: return STAIRSTRAP;
1663 case 49: return RECURRING_DISENCHANT;
1664 case 50: return ITEMCURSING;
1665 case 51: return FAST_METABOLISM;
1666 case 52: return INTRINSIC_LOSS;
1667 case 53: return BLOOD_LOSS;
1668 case 54: return NASTINESS_EFFECTS;
1669 case 55: return BAD_EFFECTS;
1670 case 56: return ENGRAVINGBUG;
1671 case 57: return SUPERSCROLLER_ACTIVE;
1672 case 58: return SKILL_DEACTIVATED;
1673 case 59: return STATS_LOWERED;
1674 case 60: return TRAINING_DEACTIVATED;
1675 case 61: return EXERCISE_DEACTIVATED;
1676 case 62: return NORETURN;
1677 case 63: return RMB_LOST;
1678 case 64: return TELEPORTING_ITEMS;
1679 case 65: return MAGIC_DEVICE_BUG;
1680 case 66: return BOOKBUG;
1681 case 67: return RANDOM_MESSAGES;
1682 case 68: return DESECRATION;
1683 case 69: return STARVATION_EFFECT;
1684 case 70: return NO_DROPS_EFFECT;
1685 case 71: return LOW_EFFECTS;
1686 case 72: return INVIS_TRAPS_EFFECT;
1687 case 73: return GHOST_WORLD;
1688 case 74: return DEHYDRATION;
1689 case 75: return HATE_TRAP_EFFECT;
1690 case 76: return TOTTER_EFFECT;
1691 case 77: return NONINTRINSIC_EFFECT;
1692 case 78: return DROPCURSES_EFFECT;
1693 case 79: return NAKEDNESS;
1694 case 80: return ANTILEVELING;
1695 case 81: return ITEM_STEALING_EFFECT;
1696 case 82: return REBELLION_EFFECT;
1697 case 83: return CRAP_EFFECT;
1698 case 84: return PROJECTILES_MISFIRE;
1699 case 85: return WALL_TRAP_EFFECT;
1700 case 86: return TURNLIMITATION;
1701 case 87: return WEAKSIGHT;
1702 case 88: return DISCONNECTED_STAIRS;
1703 case 89: return INTERFACE_SCREW;
1704 case 90: return BOSSFIGHT;
1705 case 91: return ENTIRE_LEVEL;
1706 case 92: return BONES_CHANGE;
1707 case 93: return AUTOCURSE_EQUIP;
1708 case 94: return HIGHLEVEL_STATUS;
1709 case 95: return SPELL_FORGETTING;
1710 case 96: return SOUND_EFFECT_BUG;
1711 case 97: return TIMERUN_BUG;
1712 case 98: return LOOTCUT_BUG;
1713 case 99: return MONSTER_SPEED_BUG;
1714 case 100: return SCALING_BUG;
1715 case 101: return ENMITY_BUG;
1716 case 102: return WHITE_SPELLS;
1717 case 103: return COMPLETE_GRAY_SPELLS;
1718 case 104: return QUASAR_BUG;
1719 case 105: return MOMMA_BUG;
1720 case 106: return HORROR_BUG;
1721 case 107: return ARTIFICER_BUG;
1722 case 108: return WEREFORM_BUG;
1723 case 109: return NON_PRAYER_BUG;
1724 case 110: return EVIL_PATCH_EFFECT;
1725 case 111: return HARD_MODE_EFFECT;
1726 case 112: return SECRET_ATTACK_BUG;
1727 case 113: return EATER_BUG;
1728 case 114: return COVETOUSNESS_BUG;
1729 case 115: return NOT_SEEN_BUG;
1730 case 116: return DARK_MODE_BUG;
1731 case 117: return ANTISEARCH_EFFECT;
1732 case 118: return HOMICIDE_EFFECT;
1733 case 119: return NASTY_NATION_BUG;
1734 case 120: return WAKEUP_CALL_BUG;
1735 case 121: return GRAYOUT_BUG;
1736 case 122: return GRAY_CENTER_BUG;
1737 case 123: return CHECKERBOARD_BUG;
1738 case 124: return CLOCKWISE_SPIN_BUG;
1739 case 125: return COUNTERCLOCKWISE_SPIN_BUG;
1740 case 126: return LAG_BUG;
1741 case 127: return BLESSCURSE_EFFECT;
1742 case 128: return DE_LIGHT_BUG;
1743 case 129: return DISCHARGE_BUG;
1744 case 130: return TRASHING_EFFECT;
1745 case 131: return FILTERING_BUG;
1746 case 132: return DEFORMATTING_BUG;
1747 case 133: return FLICKER_STRIP_BUG;
1748 case 134: return UNDRESSING_EFFECT;
1749 case 135: return HYPERBLUEWALL_BUG;
1750 case 136: return NOLITE_BUG;
1751 case 137: return PARANOIA_BUG;
1752 case 138: return FLEECESCRIPT_BUG;
1753 case 139: return INTERRUPT_EFFECT;
1754 case 140: return DUSTBIN_BUG;
1755 case 141: return MANA_BATTERY_BUG;
1756 case 142: return MONSTERFINGERS_EFFECT;
1757 case 143: return MISCAST_BUG;
1758 case 144: return MESSAGE_SUPPRESSION_BUG;
1759 case 145: return STUCK_ANNOUNCEMENT_BUG;
1760 case 146: return BLOODTHIRSTY_EFFECT;
1761 case 147: return MAXIMUM_DAMAGE_BUG;
1762 case 148: return LATENCY_BUG;
1763 case 149: return STARLIT_BUG;
1764 case 150: return KNOWLEDGE_BUG;
1765 case 151: return HIGHSCORE_BUG;
1766 case 152: return PINK_SPELLS;
1767 case 153: return GREEN_SPELLS;
1768 case 154: return EVC_EFFECT;
1769 case 155: return UNDERLAYER_BUG;
1770 case 156: return DAMAGE_METER_BUG;
1771 case 157: return ARBITRARY_WEIGHT_BUG;
1772 case 158: return FUCKED_INFO_BUG;
1773 case 159: return BLACK_SPELLS;
1774 case 160: return CYAN_SPELLS;
1775 case 161: return HEAP_EFFECT;
1776 case 162: return BLUE_SPELLS;
1777 case 163: return TRON_EFFECT;
1778 case 164: return RED_SPELLS;
1779 case 165: return TOO_HEAVY_EFFECT;
1780 case 166: return ELONGATION_BUG;
1781 case 167: return WRAPOVER_EFFECT;
1782 case 168: return DESTRUCTION_EFFECT;
1783 case 169: return MELEE_PREFIX_BUG;
1784 case 170: return AUTOMORE_BUG;
1785 case 171: return UNFAIR_ATTACK_BUG;
1786 case 172: return ORANGE_SPELLS;
1787 case 173: return VIOLET_SPELLS;
1788 case 174: return LONGING_EFFECT;
1789 case 175: return CURSED_PARTS;
1790 case 176: return QUAVERSAL;
1791 case 177: return APPEARANCE_SHUFFLING;
1792 case 178: return BROWN_SPELLS;
1793 case 179: return CHOICELESSNESS;
1794 case 180: return GOLDSPELLS;
1795 case 181: return DEPROVEMENT;
1796 case 182: return INITIALIZATION_FAIL;
1797 case 183: return GUSHLUSH;
1798 case 184: return SOILTYPE;
1799 case 185: return DANGEROUS_TERRAINS;
1800 case 186: return FALLOUT_EFFECT;
1801 case 187: return MOJIBAKE;
1802 case 188: return GRAVATION;
1803 case 189: return UNCALLED_EFFECT;
1804 case 190: return EXPLODING_DICE;
1805 case 191: return PERMACURSE_EFFECT;
1806 case 192: return SHROUDED_IDENTITY;
1807 case 193: return FEELER_GAUGES;
1808 case 194: return LONG_SCREWUP;
1809 case 195: return WING_YELLOW_GLYPHS;
1810 case 196: return LIFE_SAVING_BUG;
1811 case 197: return CURSEUSE_EFFECT;
1812 case 198: return CUT_NUTRITION;
1813 case 199: return SKILL_LOSS_EFFECT;
1814 case 200: return AUTOPILOT_EFFECT;
1815 case 201: return MYSTERIOUS_FORCE_EFFECT;
1816 case 202: return MONSTER_GLYPH_BUG;
1817 case 203: return CHANGING_DIRECTIVES;
1818 case 204: return CONTAINER_KABOOM;
1819 case 205: return STEAL_DEGRADING;
1820 case 206: return LEFT_INVENTORY;
1821 case 207: return FLUCTUATING_SPEED;
1822 case 208: return TARMU_STROKING_NORA;
1823 case 209: return FAILURE_EFFECTS;
1824 case 210: return BRIGHT_CYAN_SPELLS;
1825 case 211: return FREQUENTATION_SPAWNS;
1826 case 212: return PET_AI_SCREWED;
1827 case 213: return SATAN_EFFECT;
1828 case 214: return REMEMBERANCE_EFFECT;
1829 case 215: return POKELIE_EFFECT;
1830 case 216: return AUTOPICKUP_ALWAYS;
1831 case 217: return DYWYPI_PROBLEM;
1832 case 218: return SILVER_SPELLS;
1833 case 219: return METAL_SPELLS;
1834 case 220: return PLATINUM_SPELLS;
1835 case 221: return MANLER_EFFECT;
1836 case 222: return DOORNING_EFFECT;
1837 case 223: return NOWNSIBLE_EFFECT;
1838 case 224: return ELM_STREET_EFFECT;
1839 case 225: return MONNOISE_EFFECT;
1840 case 226: return RANG_CALL_EFFECT;
1841 case 227: return RECURRING_SPELL_LOSS;
1842 case 228: return ANTI_TRAINING_EFFECT;
1843 case 229: return TECHOUT_BUG;
1844 case 230: return STAT_DECAY;
1845 case 231: return MOVEMORKING;
1846 case 232: return BAD_PARTS;
1847 case 233: return COMPLETELY_BAD_PARTS;
1848 case 234: return EVIL_VARIANT_ACTIVE;
1849 case 235: return SANITY_TREBLE_EFFECT;
1850 case 236: return STAT_DECREASE_BUG;
1851 case 237: return SIMEOUT_BUG;
1852 case 238: return GIANT_EXPLORER;
1853 case 239: return YAWM_EFFECT;
1854 case 240: return TRAPWARPING;
1855 case 241: return ENTHU_EFFECT;
1856 case 242: return MIKRA_EFFECT;
1857 case 243: return GOTS_TOO_GOOD_EFFECT;
1858 case 244: return NO_FUN_WALLS;
1859 case 245: return CRADLE_CHAOS_EFFECT;
1860 case 246: return TEZ_EFFECT;
1861 case 247: return KILLER_ROOM_EFFECT;
1862 case 248: return REALLY_BAD_TRAP_EFFECT;
1863 case 249: return COVID_TRAP_EFFECT;
1864 case 250: return ARTIBLAST_EFFECT;
1865 case 251: return REPEATING_NASTYCURSE_EFFECT;
1866 case 252: return REAL_LIE_EFFECT;
1867 case 253: return ESCAPE_PAST_EFFECT;
1868 case 254: return PETHATE_EFFECT;
1869 case 255: return PET_LASHOUT_EFFECT;
1870 case 256: return PETSTARVE_EFFECT;
1871 case 257: return PETSCREW_EFFECT;
1872 case 258: return TECH_LOSS_EFFECT;
1873 case 259: return PROOFLOSS_EFFECT;
1874 case 260: return UN_INVIS_EFFECT;
1875 case 261: return DETECTATION_EFFECT;
1876 case 262: return OPTION_BUG_EFFECT;
1877 case 263: return MISCOLOR_EFFECT;
1878 case 264: return ONE_RAINBOW_EFFECT;
1879 case 265: return COLORSHIFT_EFFECT;
1880 case 266: return TOP_LINE_EFFECT;
1881 case 267: return CAPS_BUG_EFFECT;
1882 case 268: return UN_KNOWLEDGE_EFFECT;
1883 case 269: return DARKHANCE_EFFECT;
1884 case 270: return DSCHUEUEUET_EFFECT;
1885 case 271: return NOPESKILL_EFFECT;
1886 case 272: return FUCKFUCKFUCK_EFFECT;
1887 case 273: return EPVI_EFFECT;
1888 case 274: return AEFDE_EFFECT;
1889 case 275: return MEAN_BURDEN_EFFECT;
1890 case 276: return CARRCAP_EFFECT;
1891 case 277: return UMENG_EFFECT;
1892 case 278: return MULCH_BUG;
1893 case 279: return SPELL_COOLDOWN_BUG;
1894 case 280: return HAVE_A_PIN_BUG;
1895 case 281: return TURBODULL_BUG;
1896 case 282: return INACCURACY_BUG;
1897 case 283: return INVENTORY_SIZE_BUG;
1898 case 284: return COSTLY_FAILURE_BUG;
1899 case 285: return REDDAM_BUG;
1900 case 286: return REDINC_BUG;
1901 case 287: return MONSTER_MULTISHOT_EFFECT;
1904 /* appease compiler, we should never end up here */
1905 return AUTOMORE_BUG;
1910 randfemienchantment()
1912 switch (rnd(103)) {
1913 case 1: return FEMTRAP_FEMMY;
1914 case 2: return FEMTRAP_MADELEINE;
1915 case 3: return FEMTRAP_MARLENA;
1916 case 4: return FEMTRAP_ANASTASIA;
1917 case 5: return FEMTRAP_JESSICA;
1918 case 6: return FEMTRAP_SOLVEJG;
1919 case 7: return FEMTRAP_WENDY;
1920 case 8: return FEMTRAP_KATHARINA;
1921 case 9: return FEMTRAP_ELENA;
1922 case 10: return FEMTRAP_THAI;
1923 case 11: return FEMTRAP_ELIF;
1924 case 12: return FEMTRAP_NADJA;
1925 case 13: return FEMTRAP_SANDRA;
1926 case 14: return FEMTRAP_NATALJE;
1927 case 15: return FEMTRAP_JEANETTA;
1928 case 16: return FEMTRAP_YVONNE;
1929 case 17: return FEMTRAP_MAURAH;
1930 case 18: return FEMTRAP_MELTEM;
1931 case 19: return FEMTRAP_SARAH;
1932 case 20: return FEMTRAP_CLAUDIA;
1933 case 21: return FEMTRAP_LUDGERA;
1934 case 22: return FEMTRAP_KATI;
1935 case 23: return FEMTRAP_NELLY;
1936 case 24: return FEMTRAP_EVELINE;
1937 case 25: return FEMTRAP_KARIN;
1938 case 26: return FEMTRAP_JUEN;
1939 case 27: return FEMTRAP_KRISTINA;
1940 case 28: return FEMTRAP_LOU;
1941 case 29: return FEMTRAP_ALMUT;
1942 case 30: return FEMTRAP_JULIETTA;
1943 case 31: return FEMTRAP_ARABELLA;
1944 case 32: return FEMTRAP_KRISTIN;
1945 case 33: return FEMTRAP_ANNA;
1946 case 34: return FEMTRAP_RUEA;
1947 case 35: return FEMTRAP_DORA;
1948 case 36: return FEMTRAP_MARIKE;
1949 case 37: return FEMTRAP_JETTE;
1950 case 38: return FEMTRAP_INA;
1951 case 39: return FEMTRAP_SING;
1952 case 40: return FEMTRAP_VICTORIA;
1953 case 41: return FEMTRAP_MELISSA;
1954 case 42: return FEMTRAP_ANITA;
1955 case 43: return FEMTRAP_HENRIETTA;
1956 case 44: return FEMTRAP_VERENA;
1957 case 45: return FEMTRAP_ANNEMARIE;
1958 case 46: return FEMTRAP_JIL;
1959 case 47: return FEMTRAP_JANA;
1960 case 48: return FEMTRAP_KATRIN;
1961 case 49: return FEMTRAP_GUDRUN;
1962 case 50: return FEMTRAP_ELLA;
1963 case 51: return FEMTRAP_MANUELA;
1964 case 52: return FEMTRAP_JENNIFER;
1965 case 53: return FEMTRAP_PATRICIA;
1966 case 54: return FEMTRAP_ANTJE;
1967 case 55: return FEMTRAP_ANTJE_X;
1968 case 56: return FEMTRAP_KERSTIN;
1969 case 57: return FEMTRAP_LAURA;
1970 case 58: return FEMTRAP_LARISSA;
1971 case 59: return FEMTRAP_NORA;
1972 case 60: return FEMTRAP_NATALIA;
1973 case 61: return FEMTRAP_SUSANNE;
1974 case 62: return FEMTRAP_LISA;
1975 case 63: return FEMTRAP_BRIDGHITTE;
1976 case 64: return FEMTRAP_JULIA;
1977 case 65: return FEMTRAP_NICOLE;
1978 case 66: return FEMTRAP_RITA;
1979 case 67: return FEMTRAP_JANINA;
1980 case 68: return FEMTRAP_ROSA;
1981 case 69: return FEMTRAP_KSENIA;
1982 case 70: return FEMTRAP_LYDIA;
1983 case 71: return FEMTRAP_CONNY;
1984 case 72: return FEMTRAP_KATIA;
1985 case 73: return FEMTRAP_MARIYA;
1986 case 74: return FEMTRAP_ELISE;
1987 case 75: return FEMTRAP_RONJA;
1988 case 76: return FEMTRAP_ARIANE;
1989 case 77: return FEMTRAP_JOHANNA;
1990 case 78: return FEMTRAP_INGE;
1991 case 79: return FEMTRAP_RUTH;
1992 case 80: return FEMTRAP_MAGDALENA;
1993 case 81: return FEMTRAP_MARLEEN;
1994 case 82: return FEMTRAP_KLARA;
1995 case 83: return FEMTRAP_FRIEDERIKE;
1996 case 84: return FEMTRAP_NAOMI;
1997 case 85: return FEMTRAP_UTE;
1998 case 86: return FEMTRAP_JASIEEN;
1999 case 87: return FEMTRAP_YASAMAN;
2000 case 88: return FEMTRAP_MAY_BRITT;
2001 case 89: return FEMTRAP_NADINE;
2002 case 90: return FEMTRAP_LUISA;
2003 case 91: return FEMTRAP_IRINA;
2004 case 92: return FEMTRAP_LISELOTTE;
2005 case 93: return FEMTRAP_GRETA;
2006 case 94: return FEMTRAP_JANE;
2007 case 95: return FEMTRAP_SUE_LYN;
2008 case 96: return FEMTRAP_CHARLOTTE;
2009 case 97: return FEMTRAP_HANNAH;
2010 case 98: return FEMTRAP_LITTLE_MARIE;
2011 case 99: return FEMTRAP_TANJA;
2012 case 100: return FEMTRAP_SONJA;
2013 case 101: return FEMTRAP_RHEA;
2014 case 102: return FEMTRAP_LARA;
2015 case 103: return FEMTRAP_SABRINA;
2018 return FEMTRAP_ELISE; /* appease compiler */
2022 randomdisableproperty()
2024 switch (rnd(76)) {
2026 case 1:
2027 return FIRE_RES;
2028 case 2:
2029 return COLD_RES;
2030 case 3:
2031 return SLEEP_RES;
2032 case 4:
2033 return DISINT_RES;
2034 case 5:
2035 return SHOCK_RES;
2036 case 6:
2037 return POISON_RES;
2038 case 7:
2039 return DRAIN_RES;
2040 case 8:
2041 return SICK_RES;
2042 case 9:
2043 return ANTIMAGIC;
2044 case 10:
2045 return ACID_RES;
2046 case 11:
2047 return STONE_RES;
2048 case 12:
2049 return FEAR_RES;
2050 case 13:
2051 return SEE_INVIS;
2052 case 14:
2053 return TELEPAT;
2054 case 15:
2055 return WARNING;
2056 case 16:
2057 return SEARCHING;
2058 case 17:
2059 return CLAIRVOYANT;
2060 case 18:
2061 return INFRAVISION;
2062 case 19:
2063 return DETECT_MONSTERS;
2064 case 20:
2065 return INVIS;
2066 case 21:
2067 return DISPLACED;
2068 case 22:
2069 return STEALTH;
2070 case 23:
2071 return JUMPING;
2072 case 24:
2073 return TELEPORT_CONTROL;
2074 case 25:
2075 return FLYING;
2076 case 26:
2077 return MAGICAL_BREATHING;
2078 case 27:
2079 return PASSES_WALLS;
2080 case 28:
2081 return SLOW_DIGESTION;
2082 case 29:
2083 return HALF_SPDAM;
2084 case 30:
2085 return HALF_PHDAM;
2086 case 31:
2087 return REGENERATION;
2088 case 32:
2089 return ENERGY_REGENERATION;
2090 case 33:
2091 return POLYMORPH_CONTROL;
2092 case 34:
2093 return FAST;
2094 case 35:
2095 return REFLECTING;
2096 case 36:
2097 return FREE_ACTION;
2098 case 37:
2099 return HALLU_PARTY;
2100 case 38:
2101 return DRUNKEN_BOXING;
2102 case 39:
2103 return STUNNOPATHY;
2104 case 40:
2105 return NUMBOPATHY;
2106 case 41:
2107 return FREEZOPATHY;
2108 case 42:
2109 return STONED_CHILLER;
2110 case 43:
2111 return CORROSIVITY;
2112 case 44:
2113 return FEAR_FACTOR;
2114 case 45:
2115 return BURNOPATHY;
2116 case 46:
2117 return SICKOPATHY;
2118 case 47:
2119 return KEEN_MEMORY;
2120 case 48:
2121 return THE_FORCE;
2122 case 49:
2123 return SIGHT_BONUS;
2124 case 50:
2125 return VERSUS_CURSES;
2126 case 51:
2127 return STUN_RES;
2128 case 52:
2129 return CONF_RES;
2130 case 53:
2131 return DOUBLE_ATTACK;
2132 case 54:
2133 return QUAD_ATTACK;
2134 case 55:
2135 return PSI_RES;
2136 case 56:
2137 return WONDERLEGS;
2138 case 57:
2139 return GLIB_COMBAT;
2140 case 58:
2141 return MANALEECH;
2142 case 59:
2143 return DIMMOPATHY;
2144 case 60:
2145 return PEACEVISION;
2146 case 61:
2147 return CONT_RES;
2148 case 62:
2149 return DISCOUNT_ACTION;
2150 case 63:
2151 return FULL_NUTRIENT;
2152 case 64:
2153 return TECHNICALITY;
2154 case 65:
2155 return SCENT_VIEW;
2156 case 66:
2157 return DIMINISHED_BLEEDING;
2158 case 67:
2159 return CONTROL_MAGIC;
2160 case 68:
2161 return EXP_BOOST;
2162 case 69:
2163 return ASTRAL_VISION;
2164 case 70:
2165 return BLIND_RES;
2166 case 71:
2167 return HALLUC_RES;
2168 case 72:
2169 return DEFUSING;
2170 case 73:
2171 return RESISTANCE_PIERCING;
2172 case 74:
2173 return MYSTERY_RES;
2174 case 75:
2175 return MAGIC_FIND;
2176 case 76:
2177 return SPELLBOOST;
2178 default:
2179 return POISON_RES;
2184 randominsidetrap()
2186 if (!rn2(7)) return TRAP_PERCENTS;
2187 else if (!rn2(9)) return UNKNOWN_TRAP;
2188 else if (!rn2(20)) return SPACEWARS_TRAP;
2189 else if (!rn2(25)) {
2190 switch (rnd(5)) {
2191 case 1: return ARABELLA_TRAP;
2192 case 2: return ANASTASIA_TRAP;
2193 case 3: return HENRIETTA_TRAP;
2194 case 4: return KATRIN_TRAP;
2195 case 5: return JANA_TRAP;
2198 else if (!rn2(50)) return ARABELLA_SPEAKER;
2199 else if (!rn2(100)) return SUPERTHING_TRAP;
2200 else if (!rn2(200)) return INSTANASTY_TRAP;
2201 else if (!rn2(2000)) return AUTOMATIC_SWITCHER;
2202 else switch (rnd(287)) {
2203 case 1: return RMB_LOSS_TRAP;
2204 case 2: return UNINFORMATION_TRAP;
2205 case 3: return BIGSCRIPT_TRAP;
2206 case 4: return BAD_EFFECT_TRAP;
2207 case 5: return CAPTCHA_TRAP;
2208 case 6: return WEAKNESS_TRAP;
2209 case 7: return TRAINING_TRAP;
2210 case 8: return ALIGNMENT_TRAP;
2211 case 9: return DISPLAY_TRAP;
2212 case 10: return SPELL_LOSS_TRAP;
2213 case 11: return STEALER_TRAP;
2214 case 12: return REBELLION_TRAP;
2215 case 13: return EXERCISE_TRAP;
2216 case 14: return NUPESELL_TRAP;
2217 case 15: return CASTER_TRAP;
2218 case 16: return QUIZ_TRAP;
2219 case 17: return INTRINSIC_LOSS_TRAP;
2220 case 18: return NONINTRINSICAL_TRAP;
2221 case 19: return LOW_STATS_TRAP;
2222 case 20: return CRAP_TRAP;
2223 case 21: return YELLOW_SPELL_TRAP;
2224 case 22: return MISFIRE_TRAP;
2225 case 23: return SOUND_TRAP;
2226 case 24: return LOW_EFFECT_TRAP;
2227 case 25: return EGOTRAP;
2228 case 26: return LEVEL_TRAP;
2229 case 27: return WEAK_SIGHT_TRAP;
2230 case 28: return DEHYDRATION_TRAP;
2231 case 29: return RANDOM_MESSAGE_TRAP;
2232 case 30: return MULTIPLY_TRAP;
2233 case 31: return TRAP_OF_ROTTENNESS;
2234 case 32: return DSTW_TRAP;
2235 case 33: return STATUS_TRAP;
2236 case 34: return MENU_TRAP;
2237 case 35: return AUTO_DESTRUCT_TRAP;
2238 case 36: return DIFFICULTY_TRAP;
2239 case 37: return BANK_TRAP;
2240 case 38: return STAIRS_TRAP;
2241 case 39: return FREE_HAND_TRAP;
2242 case 40: return AUTO_VULN_TRAP;
2243 case 41: return STARVATION_TRAP;
2244 case 42: return HATE_TRAP;
2245 case 43: return UNSKILLED_TRAP;
2246 case 44: return MAGIC_DEVICE_TRAP;
2247 case 45: return DROPCURSE_TRAP;
2248 case 46: return ROT_THIRTEEN_TRAP;
2249 case 47: return TRAP_OF_NO_RETURN;
2250 case 48: return GHOST_WORLD_TRAP;
2251 case 49: return DROP_TRAP;
2252 case 50: return ENGRAVING_TRAP;
2253 case 51: return BLOOD_LOSS_TRAP;
2254 case 52: return BOOK_TRAP;
2255 case 53: return MEMORY_TRAP;
2256 case 54: return RESPAWN_TRAP;
2257 case 55: return MAP_TRAP;
2258 case 56: return METABOLIC_TRAP;
2259 case 57: return UNIDENTIFY_TRAP;
2260 case 58: return NTLL_TRAP;
2261 case 59: return INVENTORY_TRAP;
2262 case 60: return THIRST_TRAP;
2263 case 61: return VERISIERT;
2264 case 62: return DROPLESS_TRAP;
2265 case 63: return NAKEDNESS_TRAP;
2266 case 64: return FAINT_TRAP;
2267 case 65: return MUTENESS_TRAP;
2268 case 66: return TRAP_OF_WALLS;
2269 case 67: return CURSE_TRAP;
2270 case 68: return CHAOS_TRAP;
2271 case 69: return FARLOOK_TRAP;
2272 case 70: return SHADES_OF_GREY_TRAP;
2273 case 71: return TELE_ITEMS_TRAP;
2274 case 72: return TECH_TRAP;
2275 case 73: return FAST_FORWARD_TRAP;
2276 case 74: return LIMITATION_TRAP;
2277 case 75: return DESECRATION_TRAP;
2278 case 76: return BISHOP_TRAP;
2279 case 77: return SPEED_TRAP;
2280 case 78: return CONFUSION_TRAP;
2281 case 79: return INVISIBLE_TRAP;
2282 case 80: return LUCK_TRAP;
2283 case 81: return ONLY_TRAP;
2284 case 82: return DISENCHANT_TRAP;
2285 case 83: return BLACK_NG_WALL_TRAP;
2286 case 84: return ANTILEVEL_TRAP;
2287 case 85: return SUPERSCROLLER_TRAP;
2288 case 86: return TOTTER_TRAP;
2289 case 87: return NASTINESS_TRAP;
2290 case 88: return DISCONNECT_TRAP;
2291 case 89: return INTERFACE_SCREW_TRAP;
2292 case 90: return BOSSFIGHT_TRAP;
2293 case 91: return ENTIRE_LEVEL_TRAP;
2294 case 92: return BONES_TRAP;
2295 case 93: return AUTOCURSE_TRAP;
2296 case 94: return HIGHLEVEL_TRAP;
2297 case 95: return SPELL_FORGETTING_TRAP;
2298 case 96: return SOUND_EFFECT_TRAP;
2299 case 97: return TIMERUN_TRAP;
2301 case 98: return LOOTCUT_TRAP;
2302 case 99: return MONSTER_SPEED_TRAP;
2303 case 100: return SCALING_TRAP;
2304 case 101: return ENMITY_TRAP;
2305 case 102: return WHITE_SPELL_TRAP;
2306 case 103: return COMPLETE_GRAY_SPELL_TRAP;
2307 case 104: return QUASAR_TRAP;
2308 case 105: return MOMMA_TRAP;
2309 case 106: return HORROR_TRAP;
2310 case 107: return ARTIFICER_TRAP;
2311 case 108: return WEREFORM_TRAP;
2312 case 109: return NON_PRAYER_TRAP;
2313 case 110: return EVIL_PATCH_TRAP;
2314 case 111: return HARD_MODE_TRAP;
2315 case 112: return SECRET_ATTACK_TRAP;
2316 case 113: return EATER_TRAP;
2317 case 114: return COVETOUSNESS_TRAP;
2318 case 115: return NOT_SEEN_TRAP;
2319 case 116: return DARK_MODE_TRAP;
2320 case 117: return ANTISEARCH_TRAP;
2321 case 118: return HOMICIDE_TRAP;
2322 case 119: return NASTY_NATION_TRAP;
2323 case 120: return WAKEUP_CALL_TRAP;
2324 case 121: return GRAYOUT_TRAP;
2325 case 122: return GRAY_CENTER_TRAP;
2326 case 123: return CHECKERBOARD_TRAP;
2327 case 124: return CLOCKWISE_SPIN_TRAP;
2328 case 125: return COUNTERCLOCKWISE_SPIN_TRAP;
2329 case 126: return LAG_TRAP;
2330 case 127: return BLESSCURSE_TRAP;
2331 case 128: return DE_LIGHT_TRAP;
2332 case 129: return DISCHARGE_TRAP;
2333 case 130: return TRASHING_TRAP;
2334 case 131: return FILTERING_TRAP;
2335 case 132: return DEFORMATTING_TRAP;
2336 case 133: return FLICKER_STRIP_TRAP;
2337 case 134: return UNDRESSING_TRAP;
2338 case 135: return HYPERBLUEWALL_TRAP;
2339 case 136: return NOLITE_TRAP;
2340 case 137: return PARANOIA_TRAP;
2341 case 138: return FLEECESCRIPT_TRAP;
2342 case 139: return INTERRUPT_TRAP;
2343 case 140: return DUSTBIN_TRAP;
2344 case 141: return MANA_BATTERY_TRAP;
2345 case 142: return MONSTERFINGERS_TRAP;
2346 case 143: return MISCAST_TRAP;
2347 case 144: return MESSAGE_SUPPRESSION_TRAP;
2348 case 145: return STUCK_ANNOUNCEMENT_TRAP;
2349 case 146: return BLOODTHIRSTY_TRAP;
2350 case 147: return MAXIMUM_DAMAGE_TRAP;
2351 case 148: return LATENCY_TRAP;
2352 case 149: return STARLIT_TRAP;
2353 case 150: return KNOWLEDGE_TRAP;
2354 case 151: return HIGHSCORE_TRAP;
2355 case 152: return PINK_SPELL_TRAP;
2356 case 153: return GREEN_SPELL_TRAP;
2357 case 154: return EVC_TRAP;
2358 case 155: return UNDERLAYER_TRAP;
2359 case 156: return DAMAGE_METER_TRAP;
2360 case 157: return ARBITRARY_WEIGHT_TRAP;
2361 case 158: return FUCKED_INFO_TRAP;
2362 case 159: return BLACK_SPELL_TRAP;
2363 case 160: return CYAN_SPELL_TRAP;
2364 case 161: return HEAP_TRAP;
2365 case 162: return BLUE_SPELL_TRAP;
2366 case 163: return TRON_TRAP;
2367 case 164: return RED_SPELL_TRAP;
2368 case 165: return TOO_HEAVY_TRAP;
2369 case 166: return ELONGATION_TRAP;
2370 case 167: return WRAPOVER_TRAP;
2371 case 168: return DESTRUCTION_TRAP;
2372 case 169: return MELEE_PREFIX_TRAP;
2373 case 170: return AUTOMORE_TRAP;
2374 case 171: return UNFAIR_ATTACK_TRAP;
2375 case 172: return ORANGE_SPELL_TRAP;
2376 case 173: return VIOLET_SPELL_TRAP;
2377 case 174: return TRAP_OF_LONGING;
2378 case 175: return CURSED_PART_TRAP;
2379 case 176: return QUAVERSAL_TRAP;
2380 case 177: return APPEARANCE_SHUFFLING_TRAP;
2381 case 178: return BROWN_SPELL_TRAP;
2382 case 179: return CHOICELESS_TRAP;
2383 case 180: return GOLDSPELL_TRAP;
2384 case 181: return DEPROVEMENT_TRAP;
2385 case 182: return INITIALIZATION_TRAP;
2386 case 183: return GUSHLUSH_TRAP;
2387 case 184: return SOILTYPE_TRAP;
2388 case 185: return DANGEROUS_TERRAIN_TRAP;
2389 case 186: return FALLOUT_TRAP;
2390 case 187: return MOJIBAKE_TRAP;
2391 case 188: return GRAVATION_TRAP;
2392 case 189: return UNCALLED_TRAP;
2393 case 190: return EXPLODING_DICE_TRAP;
2394 case 191: return PERMACURSE_TRAP;
2395 case 192: return SHROUDED_IDENTITY_TRAP;
2396 case 193: return FEELER_GAUGES_TRAP;
2397 case 194: return LONG_SCREWUP_TRAP;
2398 case 195: return WING_YELLOW_CHANGER;
2399 case 196: return LIFE_SAVING_TRAP;
2400 case 197: return CURSEUSE_TRAP;
2401 case 198: return CUT_NUTRITION_TRAP;
2402 case 199: return SKILL_LOSS_TRAP;
2403 case 200: return AUTOPILOT_TRAP;
2404 case 201: return FORCE_TRAP;
2405 case 202: return MONSTER_GLYPH_TRAP;
2406 case 203: return CHANGING_DIRECTIVE_TRAP;
2407 case 204: return CONTAINER_KABOOM_TRAP;
2408 case 205: return STEAL_DEGRADE_TRAP;
2409 case 206: return LEFT_INVENTORY_TRAP;
2410 case 207: return FLUCTUATING_SPEED_TRAP;
2411 case 208: return TARMUSTROKINGNORA_TRAP;
2412 case 209: return FAILURE_TRAP;
2413 case 210: return BRIGHT_CYAN_SPELL_TRAP;
2414 case 211: return FREQUENTATION_SPAWN_TRAP;
2415 case 212: return PET_AI_TRAP;
2416 case 213: return SATAN_TRAP;
2417 case 214: return REMEMBERANCE_TRAP;
2418 case 215: return POKELIE_TRAP;
2419 case 216: return AUTOPICKUP_TRAP;
2420 case 217: return DYWYPI_TRAP;
2421 case 218: return SILVER_SPELL_TRAP;
2422 case 219: return METAL_SPELL_TRAP;
2423 case 220: return PLATINUM_SPELL_TRAP;
2424 case 221: return MANLER_TRAP;
2425 case 222: return DOORNING_TRAP;
2426 case 223: return NOWNSIBLE_TRAP;
2427 case 224: return ELM_STREET_TRAP;
2428 case 225: return MONNOISE_TRAP;
2429 case 226: return RANG_CALL_TRAP;
2430 case 227: return RECURRING_SPELL_LOSS_TRAP;
2431 case 228: return ANTITRAINING_TRAP;
2432 case 229: return TECHOUT_TRAP;
2433 case 230: return STAT_DECAY_TRAP;
2434 case 231: return MOVEMORK_TRAP;
2435 case 232: return BAD_PART_TRAP;
2436 case 233: return COMPLETELY_BAD_PART_TRAP;
2437 case 234: return EVIL_VARIANT_TRAP;
2438 case 235: return SANITY_TREBLE_TRAP;
2439 case 236: return STAT_DECREASE_TRAP;
2440 case 237: return SIMEOUT_TRAP;
2441 case 238: return GIANT_EXPLORER_TRAP;
2442 case 239: return TRAPWARP_TRAP;
2443 case 240: return YAWM_TRAP;
2444 case 241: return CRADLE_OF_CHAOS_TRAP;
2445 case 242: return TEZCATLIPOCA_TRAP;
2446 case 243: return ENTHUMESIS_TRAP;
2447 case 244: return MIKRAANESIS_TRAP;
2448 case 245: return GOTS_TOO_GOOD_TRAP;
2449 case 246: return KILLER_ROOM_TRAP;
2450 case 247: return NO_FUN_WALLS_TRAP;
2451 case 248: return REALLY_BAD_TRAP;
2452 case 249: return COVID_TRAP;
2453 case 250: return ARTIBLAST_TRAP;
2454 case 251: return REPEATING_NASTYCURSE_TRAP;
2455 case 252: return REAL_LIE_TRAP;
2456 case 253: return ESCAPE_PAST_TRAP;
2457 case 254: return PETHATE_TRAP;
2458 case 255: return PET_LASHOUT_TRAP;
2459 case 256: return PETSTARVE_TRAP;
2460 case 257: return PETSCREW_TRAP;
2461 case 258: return TECH_LOSS_TRAP;
2462 case 259: return PROOFLOSS_TRAP;
2463 case 260: return UN_INVIS_TRAP;
2464 case 261: return DETECTATION_TRAP;
2465 case 262: return OPTION_TRAP;
2466 case 263: return MISCOLOR_TRAP;
2467 case 264: return ONE_RAINBOW_TRAP;
2468 case 265: return COLORSHIFT_TRAP;
2469 case 266: return TOP_LINE_TRAP;
2470 case 267: return CAPS_TRAP;
2471 case 268: return UN_KNOWLEDGE_TRAP;
2472 case 269: return DARKHANCE_TRAP;
2473 case 270: return DSCHUEUEUET_TRAP;
2474 case 271: return NOPESKILL_TRAP;
2475 case 272: return FUCKFUCKFUCK_TRAP;
2476 case 273: return EPVI_TRAP;
2477 case 274: return AEFDE_TRAP;
2478 case 275: return MEAN_BURDEN_TRAP;
2479 case 276: return CARRCAP_TRAP;
2480 case 277: return UMENG_TRAP;
2481 case 278: return SPELL_COOLDOWN_TRAP;
2482 case 279: return TURBODULL_TRAP;
2483 case 280: return REDDAM_TRAP;
2484 case 281: return REDINC_TRAP;
2485 case 282: return MULCH_TRAP;
2486 case 283: return INACCURACY_TRAP;
2487 case 284: return MONSTER_MULTISHOT_TRAP;
2488 case 285: return DO_YOU_HAVE_A_PIN_TRAP;
2489 case 286: return COSTLY_FAILURE_TRAP;
2490 case 287: return INVENTORY_SIZE_TRAP;
2494 return TRAP_PERCENTS; /* fail safe, should never happen */
2499 randartmeleeweapon()
2501 int result;
2502 reroll:
2503 result = rnd_class(ORCISH_DAGGER,HAWAIIAN_SHIRT-1);
2504 if (objects[result].oc_skill >= P_BOW && objects[result].oc_skill <= P_CROSSBOW) goto reroll;
2505 if (objects[result].oc_skill >= -P_CROSSBOW && objects[result].oc_skill <= -P_BOW) goto reroll;
2506 if (objects[result].oc_skill >= -P_BOOMERANG && objects[result].oc_skill <= -P_DART) goto reroll;
2507 return result;
2511 randartlauncher()
2513 int result;
2514 reroll:
2515 result = rnd_class(ORCISH_DAGGER,HAWAIIAN_SHIRT-1);
2516 if (!(objects[result].oc_skill >= P_BOW && objects[result].oc_skill <= P_CROSSBOW) ) goto reroll;
2517 return result;
2521 randartmissile()
2523 int result;
2524 reroll:
2525 result = rnd_class(ORCISH_DAGGER,HAWAIIAN_SHIRT-1);
2526 if (!(objects[result].oc_skill >= -P_CROSSBOW && objects[result].oc_skill <= -P_BOW) && !(objects[result].oc_skill >= -P_BOOMERANG && objects[result].oc_skill <= -P_DART) ) goto reroll;
2527 return result;
2531 randartdragonscales()
2533 int result;
2534 result = rnd_class(GRAY_DRAGON_SCALES, YELLOW_DRAGON_SCALES);
2535 return result;
2539 randartdragonscalemail()
2541 int result;
2542 result = rnd_class(GRAY_DRAGON_SCALE_MAIL, YELLOW_DRAGON_SCALE_MAIL);
2543 return result;
2547 randartdragonscaleshield()
2549 int result;
2550 result = rnd_class(GRAY_DRAGON_SCALE_SHIELD, YELLOW_DRAGON_SCALE_SHIELD);
2551 return result;
2555 randartlightsaber()
2557 int result;
2558 result = rnd_class(GREEN_LIGHTSABER, MYSTERY_LIGHTSABER);
2559 return result;
2563 randartsaddle()
2565 int result;
2566 result = rnd_class(LEATHER_SADDLE, INKA_SADDLE);
2567 return result;
2571 randartleash()
2573 int result;
2574 result = rnd_class(LEATHER_LEASH, INKA_LEASH);
2575 return result;
2579 randartpolearm()
2581 int result;
2582 result = rnd_class(PARTISAN, BEC_DE_CORBIN);
2583 return result;
2587 randartlongsword()
2589 int result;
2590 result = rnd_class(LONG_SWORD, GREAT_HOUCHOU);
2591 return result;
2595 randartbroadsword()
2597 int result;
2598 result = rnd_class(PAPER_SWORD, MEATSWORD);
2599 return result;
2603 randartshortsword()
2605 int result;
2606 result = rnd_class(ORCISH_SHORT_SWORD, VIBROBLADE);
2607 return result;
2611 randartscimitar()
2613 int result;
2614 result = rnd_class(SCIMITAR, HIGH_ELVEN_WARSWORD);
2615 return result;
2619 randartorb()
2621 int result;
2622 result = rnd_class(EAGLE_BALL, CIGAR);
2623 return result;
2627 randartunihorn()
2629 int result;
2630 result = rnd_class(UNICORN_HORN, BUBBLEHORN);
2631 return result;
2635 randarttrident()
2637 int result;
2638 result = rnd_class(TRIDENT, MANCATCHER);
2639 return result;
2643 randartflail()
2645 int result;
2646 result = rnd_class(FLAIL, OBSID);
2647 return result;
2651 randartlance()
2653 int result;
2654 result = rnd_class(LANCE, SPEC_LANCE);
2655 return result;
2659 randartcrossbow()
2661 int result;
2662 result = rnd_class(CROSSBOW, HELO_CROSSBOW);
2663 return result;
2667 randarthammer()
2669 int result;
2670 result = rnd_class(WAR_HAMMER, PROSTITUTE_SHOE);
2671 return result;
2675 randartmorningstar()
2677 int result;
2678 result = rnd_class(MORNING_STAR, YESTERDAY_STAR);
2679 return result;
2683 randartclub()
2685 int result;
2686 result = rnd_class(CLUB, LOG);
2687 return result;
2691 randartaxe()
2693 int result;
2694 result = rnd_class(AXE, CHEMISTRY_SPACE_AXE);
2695 return result;
2699 randartboomerang()
2701 int result;
2702 result = rnd_class(BOOMERANG, DARK_BATARANG);
2703 return result;
2707 randartsling()
2709 int result;
2710 result = rnd_class(SLING, SNIPESLING);
2711 return result;
2715 randartspear()
2717 int result;
2718 result = rnd_class(ORCISH_SPEAR, CERAMIC_SPEAR);
2719 return result;
2723 randarttwohandedsword()
2725 int result;
2726 result = rnd_class(TWO_HANDED_SWORD, ETHER_SAW);
2727 return result;
2731 randartpickaxe()
2733 int result;
2734 result = rnd_class(PICK_AXE, MYSTERY_PICK);
2735 return result;
2739 randartmace()
2741 int result;
2742 result = rnd_class(SILVER_MACE, BACKHAND_MACE);
2743 return result;
2747 randartwhip()
2749 int result;
2750 result = rnd_class(BULLWHIP, SECRET_WHIP);
2751 return result;
2755 randartpaddle()
2757 int result;
2758 result = rnd_class(FLY_SWATTER, TELEPHONE);
2759 return result;
2763 randartrobe()
2765 int result;
2766 result = rnd_class(ROBE, ROBE_OF_WEAKNESS);
2767 return result;
2771 randartdagger()
2773 int result;
2774 result = rnd_class(ORCISH_DAGGER, GREAT_DAGGER);
2775 return result;
2779 randartquarterstaff()
2781 int result;
2782 result = rnd_class(QUARTERSTAFF, PLATINUM_FIRE_HOOK);
2783 return result;
2787 randartbow()
2789 int result;
2790 result = rnd_class(ORCISH_BOW, WILDHILD_BOW);
2791 return result;
2795 randartknife()
2797 int result;
2798 result = rnd_class(WORM_TOOTH, TOOTH_OF_AN_ALGOLIAN_SUNTIGER);
2799 return result;
2803 randartclaw()
2805 int result;
2806 result = rnd_class(QATAR, AMBUSH_QATAR);
2807 return result;
2811 randartshuriken()
2813 int result;
2814 result = rnd_class(SHURIKEN, CUBIC_STAR);
2815 return result;
2819 randartdart()
2821 int result;
2822 result = rnd_class(DART, RANDOM_DART);
2823 return result;
2827 randartjavelin()
2829 int result;
2830 result = rnd_class(JAVELIN, STACK_JAVELIN);
2831 return result;
2835 randartarrow()
2837 int result;
2838 result = rnd_class(ORCISH_ARROW, WONDER_ARROW);
2839 return result;
2843 randartsaber()
2845 int result;
2846 result = rnd_class(RAPIER, GOLDEN_SABER);
2847 return result;
2851 randartmattock()
2853 int result;
2854 result = rnd_class(DWARVISH_MATTOCK, ETERNIUM_MATTOCK);
2855 return result;
2859 randartgrinder()
2861 int result;
2862 result = rnd_class(GRINDER, CIRCULAR_SAW);
2863 return result;
2867 randartknuckles()
2869 int result;
2870 result = rnd_class(BRASS_KNUCKLES, ELITE_KNUCKLES);
2871 return result;
2875 randartcrossbowbolt()
2877 int result;
2878 result = rnd_class(CROSSBOW_BOLT, MATERIAL_BOLT);
2879 return result;
2883 randartsuit()
2885 int result;
2886 reroll:
2887 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2888 if (!(objects[result].oc_armcat == ARM_SUIT)) goto reroll;
2889 return result;
2893 randartshirt()
2895 int result;
2896 reroll:
2897 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2898 if (!(objects[result].oc_armcat == ARM_SHIRT)) goto reroll;
2899 return result;
2903 randartcloak()
2905 int result;
2906 reroll:
2907 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2908 if (!(objects[result].oc_armcat == ARM_CLOAK)) goto reroll;
2909 return result;
2913 randarthelm()
2915 int result;
2916 reroll:
2917 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2918 if (!(objects[result].oc_armcat == ARM_HELM)) goto reroll;
2919 return result;
2923 randartgloves()
2925 int result;
2926 reroll:
2927 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2928 if (!(objects[result].oc_armcat == ARM_GLOVES)) goto reroll;
2929 return result;
2933 randartshield()
2935 int result;
2936 reroll:
2937 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2938 if (!(objects[result].oc_armcat == ARM_SHIELD)) goto reroll;
2939 return result;
2943 randartboots()
2945 int result;
2946 reroll:
2947 result = rnd_class(HAWAIIAN_SHIRT,LEVITATION_BOOTS);
2948 if (!(objects[result].oc_armcat == ARM_BOOTS)) goto reroll;
2949 return result;
2953 randartring()
2955 int result;
2956 result = rnd_class(RIN_ADORNMENT,RIN_TELEPORT_CONTROL);
2957 return result;
2961 randartamulet()
2963 int result;
2964 result = rnd_class(AMULET_OF_CHANGE,AMULET_OF_VULNERABILITY);
2965 return result;
2969 randartimplant()
2971 int result;
2972 result = rnd_class(IMPLANT_OF_ABSORPTION,IMPLANT_OF_VIRTUE);
2973 return result;
2977 randartwand()
2979 int result;
2980 result = rnd_class(WAN_LIGHT,WAN_PSYBEAM);
2981 return result;
2985 randartspellbook()
2987 int result;
2988 result = rnd_class(SPE_FORCE_BOLT,SPE_PSYBEAM);
2989 return result;
2993 randartpotion()
2995 int result;
2996 result = rnd_class(POT_BOOZE,POT_PAN_GALACTIC_GARGLE_BLASTE);
2997 return result;
3001 randartscroll()
3003 int result;
3004 result = rnd_class(SCR_CREATE_MONSTER,SCR_GIRLINESS);
3005 return result;
3009 randartball()
3011 int result;
3012 result = rnd_class(HEAVY_IRON_BALL,LIQUID_BALL);
3013 return result;
3017 randartchain()
3019 int result;
3020 result = rnd_class(IRON_CHAIN,LIQUID_CHAIN);
3021 return result;
3025 randartgem()
3027 int result;
3028 result = rnd_class(DILITHIUM_CRYSTAL,ROCK);
3029 return result;
3033 randartvenom()
3035 int result;
3036 result = rnd_class(BLINDING_VENOM,SEGFAULT_VENOM);
3037 return result;
3041 randartbadgraystone()
3043 int result;
3044 result = rnd_class(RIGHT_MOUSE_BUTTON_STONE,NASTY_STONE);
3045 return result;
3049 randartfeminismjewel()
3051 int result;
3052 result = rnd_class(ELIF_S_JEWEL,DORA_S_JEWEL);
3053 return result;
3057 randartmeleeweaponX()
3059 int result;
3060 reroll:
3061 result = ORCISH_DAGGER + rn2(HAWAIIAN_SHIRT - ORCISH_DAGGER);
3062 if (objects[result].oc_skill >= P_BOW && objects[result].oc_skill <= P_CROSSBOW) goto reroll;
3063 if (objects[result].oc_skill >= -P_CROSSBOW && objects[result].oc_skill <= -P_BOW) goto reroll;
3064 if (objects[result].oc_skill >= -P_BOOMERANG && objects[result].oc_skill <= -P_DART) goto reroll;
3065 return result;
3069 randartlauncherX()
3071 int result;
3072 reroll:
3073 result = ORCISH_DAGGER + rn2(HAWAIIAN_SHIRT - ORCISH_DAGGER);
3074 if (!(objects[result].oc_skill >= P_BOW && objects[result].oc_skill <= P_CROSSBOW) ) goto reroll;
3075 return result;
3079 randartmissileX()
3081 int result;
3082 reroll:
3083 result = ORCISH_DAGGER + rn2(HAWAIIAN_SHIRT - ORCISH_DAGGER);
3084 if (!(objects[result].oc_skill >= -P_CROSSBOW && objects[result].oc_skill <= -P_BOW) && !(objects[result].oc_skill >= -P_BOOMERANG && objects[result].oc_skill <= -P_DART) ) goto reroll;
3085 return result;
3089 randartlightsaberX()
3091 int result;
3092 result = GREEN_LIGHTSABER + rn2((MYSTERY_LIGHTSABER + 1) - GREEN_LIGHTSABER);
3093 return result;
3097 randartsaddleX()
3099 int result;
3100 result = LEATHER_SADDLE + rn2((INKA_SADDLE + 1) - LEATHER_SADDLE);
3101 return result;
3105 randartleashX()
3107 int result;
3108 result = LEATHER_LEASH + rn2((INKA_LEASH + 1) - LEATHER_LEASH);
3109 return result;
3113 randartpolearmX()
3115 int result;
3116 result = PARTISAN + rn2((BEC_DE_CORBIN + 1) - PARTISAN);
3117 return result;
3121 randartlongswordX()
3123 int result;
3124 result = LONG_SWORD + rn2((GREAT_HOUCHOU + 1) - LONG_SWORD);
3125 return result;
3129 randartbroadswordX()
3131 int result;
3132 result = PAPER_SWORD + rn2((MEATSWORD + 1) - PAPER_SWORD);
3133 return result;
3137 randartshortswordX()
3139 int result;
3140 result = ORCISH_SHORT_SWORD + rn2((VIBROBLADE + 1) - ORCISH_SHORT_SWORD);
3141 return result;
3145 randartscimitarX()
3147 int result;
3148 result = SCIMITAR + rn2((HIGH_ELVEN_WARSWORD + 1) - SCIMITAR);
3149 return result;
3153 randartorbX()
3155 int result;
3156 result = EAGLE_BALL + rn2((CIGAR + 1) - EAGLE_BALL);
3157 return result;
3161 randartunihornX()
3163 int result;
3164 result = UNICORN_HORN + rn2((BUBBLEHORN + 1) - UNICORN_HORN);
3165 return result;
3169 randarttridentX()
3171 int result;
3172 result = TRIDENT + rn2((MANCATCHER + 1) - TRIDENT);
3173 return result;
3177 randartflailX()
3179 int result;
3180 result = FLAIL + rn2((OBSID + 1) - FLAIL);
3181 return result;
3185 randartlanceX()
3187 int result;
3188 result = LANCE + rn2((SPEC_LANCE + 1) - LANCE);
3189 return result;
3193 randartcrossbowX()
3195 int result;
3196 result = CROSSBOW + rn2((HELO_CROSSBOW + 1) - CROSSBOW);
3197 return result;
3201 randarthammerX()
3203 int result;
3204 result = WAR_HAMMER + rn2((PROSTITUTE_SHOE + 1) - WAR_HAMMER);
3205 return result;
3209 randartmorningstarX()
3211 int result;
3212 result = MORNING_STAR + rn2((YESTERDAY_STAR + 1) - MORNING_STAR);
3213 return result;
3217 randartclubX()
3219 int result;
3220 result = CLUB + rn2((LOG + 1) - CLUB);
3221 return result;
3225 randartaxeX()
3227 int result;
3228 result = AXE + rn2((CHEMISTRY_SPACE_AXE + 1) - AXE);
3229 return result;
3233 randartboomerangX()
3235 int result;
3236 result = BOOMERANG + rn2((DARK_BATARANG + 1) - BOOMERANG);
3237 return result;
3241 randartslingX()
3243 int result;
3244 result = SLING + rn2((SNIPESLING + 1) - SLING);
3245 return result;
3249 randartspearX()
3251 int result;
3252 result = ORCISH_SPEAR + rn2((CERAMIC_SPEAR + 1) - ORCISH_SPEAR);
3253 return result;
3257 randarttwohandedswordX()
3259 int result;
3260 result = TWO_HANDED_SWORD + rn2((ETHER_SAW + 1) - TWO_HANDED_SWORD);
3261 return result;
3265 randartpickaxeX()
3267 int result;
3268 result = PICK_AXE + rn2((MYSTERY_PICK + 1) - PICK_AXE);
3269 return result;
3273 randartmaceX()
3275 int result;
3276 result = SILVER_MACE + rn2((BACKHAND_MACE + 1) - SILVER_MACE);
3277 return result;
3281 randartwhipX()
3283 int result;
3284 result = BULLWHIP + rn2((SECRET_WHIP + 1) - BULLWHIP);
3285 return result;
3289 randartpaddleX()
3291 int result;
3292 result = FLY_SWATTER + rn2((TELEPHONE + 1) - FLY_SWATTER);
3293 return result;
3297 randartrobeX()
3299 int result;
3300 result = ROBE + rn2((ROBE_OF_WEAKNESS + 1) - ROBE);
3301 return result;
3305 randartdaggerX()
3307 int result;
3308 result = ORCISH_DAGGER + rn2((GREAT_DAGGER + 1) - ORCISH_DAGGER);
3309 return result;
3313 randartknifeX()
3315 int result;
3316 result = WORM_TOOTH + rn2((TOOTH_OF_AN_ALGOLIAN_SUNTIGER + 1) - WORM_TOOTH);
3317 return result;
3321 randartclawX()
3323 int result;
3324 result = QATAR + rn2((AMBUSH_QATAR + 1) - QATAR);
3325 return result;
3329 randartshurikenX()
3331 int result;
3332 result = SHURIKEN + rn2((CUBIC_STAR + 1) - SHURIKEN);
3333 return result;
3337 randartdartX()
3339 int result;
3340 result = DART + rn2((RANDOM_DART + 1) - DART);
3341 return result;
3345 randartjavelinX()
3347 int result;
3348 result = JAVELIN + rn2((STACK_JAVELIN + 1) - JAVELIN);
3349 return result;
3353 randartarrowX()
3355 int result;
3356 result = ORCISH_ARROW + rn2((WONDER_ARROW + 1) - ORCISH_ARROW);
3357 return result;
3361 randartsaberX()
3363 int result;
3364 result = RAPIER + rn2((GOLDEN_SABER + 1) - RAPIER);
3365 return result;
3369 randartmattockX()
3371 int result;
3372 result = DWARVISH_MATTOCK + rn2((ETERNIUM_MATTOCK + 1) - DWARVISH_MATTOCK);
3373 return result;
3377 randartgrinderX()
3379 int result;
3380 result = GRINDER + rn2((CIRCULAR_SAW + 1) - GRINDER);
3381 return result;
3385 randartknucklesX()
3387 int result;
3388 result = BRASS_KNUCKLES + rn2((ELITE_KNUCKLES + 1) - BRASS_KNUCKLES);
3389 return result;
3393 randartcrossbowboltX()
3395 int result;
3396 result = CROSSBOW_BOLT + rn2((MATERIAL_BOLT + 1) - CROSSBOW_BOLT);
3397 return result;
3401 randartquarterstaffX()
3403 int result;
3404 result = QUARTERSTAFF + rn2((PLATINUM_FIRE_HOOK + 1) - QUARTERSTAFF);
3405 return result;
3409 randartbowX()
3411 int result;
3412 result = ORCISH_BOW + rn2((WILDHILD_BOW + 1) - ORCISH_BOW);
3413 return result;
3417 randartsuitX()
3419 int result;
3420 reroll:
3421 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3422 if (!(objects[result].oc_armcat == ARM_SUIT)) goto reroll;
3423 return result;
3427 randartshirtX()
3429 int result;
3430 reroll:
3431 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3432 if (!(objects[result].oc_armcat == ARM_SHIRT)) goto reroll;
3433 return result;
3437 randartcloakX()
3439 int result;
3440 reroll:
3441 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3442 if (!(objects[result].oc_armcat == ARM_CLOAK)) goto reroll;
3443 return result;
3447 randarthelmX()
3449 int result;
3450 reroll:
3451 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3452 if (!(objects[result].oc_armcat == ARM_HELM)) goto reroll;
3453 return result;
3457 randartglovesX()
3459 int result;
3460 reroll:
3461 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3462 if (!(objects[result].oc_armcat == ARM_GLOVES)) goto reroll;
3463 return result;
3467 randartshieldX()
3469 int result;
3470 reroll:
3471 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3472 if (!(objects[result].oc_armcat == ARM_SHIELD)) goto reroll;
3473 return result;
3477 randartbootsX()
3479 int result;
3480 reroll:
3481 result = HAWAIIAN_SHIRT + rn2((LEVITATION_BOOTS + 1) - HAWAIIAN_SHIRT);
3482 if (!(objects[result].oc_armcat == ARM_BOOTS)) goto reroll;
3483 return result;
3487 randartringX()
3489 int result;
3490 result = RIN_ADORNMENT + rn2((RIN_TELEPORT_CONTROL + 1) - RIN_ADORNMENT);
3491 return result;
3495 randartamuletX()
3497 int result;
3498 result = AMULET_OF_CHANGE + rn2((AMULET_OF_VULNERABILITY + 1) - AMULET_OF_CHANGE);
3499 return result;
3503 randartimplantX()
3505 int result;
3506 result = IMPLANT_OF_ABSORPTION + rn2((IMPLANT_OF_VIRTUE + 1) - IMPLANT_OF_ABSORPTION);
3507 return result;
3511 randartwandX()
3513 int result;
3514 result = WAN_LIGHT + rn2((WAN_PSYBEAM + 1) - WAN_LIGHT);
3515 return result;
3519 randartspellbookX()
3521 int result;
3522 result = SPE_FORCE_BOLT + rn2((SPE_PSYBEAM + 1) - SPE_FORCE_BOLT);
3523 return result;
3527 randartpotionX()
3529 int result;
3530 result = POT_BOOZE + rn2((POT_PAN_GALACTIC_GARGLE_BLASTE + 1) - POT_BOOZE);
3531 return result;
3535 randartscrollX()
3537 int result;
3538 result = SCR_CREATE_MONSTER + rn2((SCR_GIRLINESS + 1) - SCR_CREATE_MONSTER);
3539 return result;
3543 randartballX()
3545 int result;
3546 result = HEAVY_IRON_BALL + rn2((LIQUID_BALL + 1) - HEAVY_IRON_BALL);
3547 return result;
3551 randartchainX()
3553 int result;
3554 result = IRON_CHAIN + rn2((LIQUID_CHAIN + 1) - IRON_CHAIN);
3555 return result;
3559 randartgemX()
3561 int result;
3562 result = DILITHIUM_CRYSTAL + rn2((ROCK + 1) - DILITHIUM_CRYSTAL);
3563 return result;
3567 randartvenomX()
3569 int result;
3570 result = BLINDING_VENOM + rn2((SEGFAULT_VENOM + 1) - BLINDING_VENOM);
3571 return result;
3575 randartiattacktype()
3577 int result;
3578 switch (rnd(8)) {
3579 default:
3580 case 1:
3581 result = AD_PHYS; break;
3582 case 2:
3583 result = AD_DRLI; break;
3584 case 3:
3585 result = AD_COLD; break;
3586 case 4:
3587 result = AD_FIRE; break;
3588 case 5:
3589 result = AD_ELEC; break;
3590 case 6:
3591 result = AD_STUN; break;
3592 case 7:
3593 result = AD_ACID; break;
3594 case 8:
3595 result = AD_MAGM; break;
3598 return result;
3601 void
3602 deacrandomintrinsic(amount)
3603 register int amount;
3606 switch (rnd(141)) {
3608 case 1:
3609 case 2:
3610 case 3:
3611 case 4:
3612 case 5:
3613 u.uprops[DEAC_FIRE_RES].intrinsic += amount;
3614 pline("You are prevented from having fire resistance!");
3615 break;
3616 case 6:
3617 case 7:
3618 case 8:
3619 case 9:
3620 case 10:
3621 u.uprops[DEAC_COLD_RES].intrinsic += amount;
3622 pline("You are prevented from having cold resistance!");
3623 break;
3624 case 11:
3625 case 12:
3626 case 13:
3627 case 14:
3628 case 15:
3629 u.uprops[DEAC_SLEEP_RES].intrinsic += amount;
3630 pline("You are prevented from having sleep resistance!");
3631 break;
3632 case 16:
3633 case 17:
3634 u.uprops[DEAC_DISINT_RES].intrinsic += amount;
3635 pline("You are prevented from having disintegration resistance!");
3636 break;
3637 case 18:
3638 case 19:
3639 case 20:
3640 case 21:
3641 case 22:
3642 u.uprops[DEAC_SHOCK_RES].intrinsic += amount;
3643 pline("You are prevented from having shock resistance!");
3644 break;
3645 case 23:
3646 case 24:
3647 case 25:
3648 case 26:
3649 case 27:
3650 u.uprops[DEAC_POISON_RES].intrinsic += amount;
3651 pline("You are prevented from having poison resistance!");
3652 break;
3653 case 28:
3654 case 29:
3655 case 30:
3656 u.uprops[DEAC_DRAIN_RES].intrinsic += amount;
3657 pline("You are prevented from having drain resistance!");
3658 break;
3659 case 31:
3660 case 32:
3661 u.uprops[DEAC_SICK_RES].intrinsic += amount;
3662 pline("You are prevented from having sickness resistance!");
3663 break;
3664 case 33:
3665 case 34:
3666 u.uprops[DEAC_ANTIMAGIC].intrinsic += amount;
3667 pline("You are prevented from having magic resistance!");
3668 break;
3669 case 35:
3670 case 36:
3671 case 37:
3672 case 38:
3673 u.uprops[DEAC_ACID_RES].intrinsic += amount;
3674 pline("You are prevented from having acid resistance!");
3675 break;
3676 case 39:
3677 case 40:
3678 u.uprops[DEAC_STONE_RES].intrinsic += amount;
3679 pline("You are prevented from having petrification resistance!");
3680 break;
3681 case 41:
3682 u.uprops[DEAC_FEAR_RES].intrinsic += amount;
3683 pline("You are prevented from having fear resistance!");
3684 break;
3685 case 42:
3686 case 43:
3687 case 44:
3688 u.uprops[DEAC_SEE_INVIS].intrinsic += amount;
3689 pline("You are prevented from having see invisible!");
3690 break;
3691 case 45:
3692 case 46:
3693 case 47:
3694 u.uprops[DEAC_TELEPAT].intrinsic += amount;
3695 pline("You are prevented from having telepathy!");
3696 break;
3697 case 48:
3698 case 49:
3699 case 50:
3700 u.uprops[DEAC_WARNING].intrinsic += amount;
3701 pline("You are prevented from having warning!");
3702 break;
3703 case 51:
3704 case 52:
3705 case 53:
3706 u.uprops[DEAC_SEARCHING].intrinsic += amount;
3707 pline("You are prevented from having automatic searching!");
3708 break;
3709 case 54:
3710 u.uprops[DEAC_CLAIRVOYANT].intrinsic += amount;
3711 pline("You are prevented from having clairvoyance!");
3712 break;
3713 case 55:
3714 case 56:
3715 case 57:
3716 case 58:
3717 case 59:
3718 u.uprops[DEAC_INFRAVISION].intrinsic += amount;
3719 pline("You are prevented from having infravision!");
3720 break;
3721 case 60:
3722 u.uprops[DEAC_DETECT_MONSTERS].intrinsic += amount;
3723 pline("You are prevented from having detect monsters!");
3724 break;
3725 case 61:
3726 case 62:
3727 case 63:
3728 u.uprops[DEAC_INVIS].intrinsic += amount;
3729 pline("You are prevented from having invisibility!");
3730 break;
3731 case 64:
3732 u.uprops[DEAC_DISPLACED].intrinsic += amount;
3733 pline("You are prevented from having displacement!");
3734 break;
3735 case 65:
3736 case 66:
3737 case 67:
3738 u.uprops[DEAC_STEALTH].intrinsic += amount;
3739 pline("You are prevented from having stealth!");
3740 break;
3741 case 68:
3742 u.uprops[DEAC_JUMPING].intrinsic += amount;
3743 pline("You are prevented from having jumping!");
3744 break;
3745 case 69:
3746 case 70:
3747 case 71:
3748 u.uprops[DEAC_TELEPORT_CONTROL].intrinsic += amount;
3749 pline("You are prevented from having teleport control!");
3750 break;
3751 case 72:
3752 u.uprops[DEAC_FLYING].intrinsic += amount;
3753 pline("You are prevented from having flying!");
3754 break;
3755 case 73:
3756 u.uprops[DEAC_MAGICAL_BREATHING].intrinsic += amount;
3757 pline("You are prevented from having magical breathing!");
3758 break;
3759 case 74:
3760 u.uprops[DEAC_PASSES_WALLS].intrinsic += amount;
3761 pline("You are prevented from having phasing!");
3762 break;
3763 case 75:
3764 case 76:
3765 u.uprops[DEAC_SLOW_DIGESTION].intrinsic += amount;
3766 pline("You are prevented from having slow digestion!");
3767 break;
3768 case 77:
3769 u.uprops[DEAC_HALF_SPDAM].intrinsic += amount;
3770 pline("You are prevented from having half spell damage!");
3771 break;
3772 case 78:
3773 u.uprops[DEAC_HALF_PHDAM].intrinsic += amount;
3774 pline("You are prevented from having half physical damage!");
3775 break;
3776 case 79:
3777 case 80:
3778 case 81:
3779 case 82:
3780 case 83:
3781 u.uprops[DEAC_REGENERATION].intrinsic += amount;
3782 pline("You are prevented from having regeneration!");
3783 break;
3784 case 84:
3785 case 85:
3786 u.uprops[DEAC_ENERGY_REGENERATION].intrinsic += amount;
3787 pline("You are prevented from having mana regeneration!");
3788 break;
3789 case 86:
3790 case 87:
3791 case 88:
3792 u.uprops[DEAC_POLYMORPH_CONTROL].intrinsic += amount;
3793 pline("You are prevented from having polymorph control!");
3794 break;
3795 case 89:
3796 case 90:
3797 case 91:
3798 case 92:
3799 case 93:
3800 u.uprops[DEAC_FAST].intrinsic += amount;
3801 pline("You are prevented from having speed!");
3802 break;
3803 case 94:
3804 case 95:
3805 case 96:
3806 u.uprops[DEAC_REFLECTING].intrinsic += amount;
3807 pline("You are prevented from having reflection!");
3808 break;
3809 case 97:
3810 case 98:
3811 case 99:
3812 u.uprops[DEAC_FREE_ACTION].intrinsic += amount;
3813 pline("You are prevented from having free action!");
3814 break;
3815 case 100:
3816 u.uprops[DEAC_HALLU_PARTY].intrinsic += amount;
3817 pline("You are prevented from hallu partying!");
3818 break;
3819 case 101:
3820 u.uprops[DEAC_DRUNKEN_BOXING].intrinsic += amount;
3821 pline("You are prevented from drunken boxing!");
3822 break;
3823 case 102:
3824 u.uprops[DEAC_STUNNOPATHY].intrinsic += amount;
3825 pline("You are prevented from having stunnopathy!");
3826 break;
3827 case 103:
3828 u.uprops[DEAC_NUMBOPATHY].intrinsic += amount;
3829 pline("You are prevented from having numbopathy!");
3830 break;
3831 case 104:
3832 u.uprops[DEAC_FREEZOPATHY].intrinsic += amount;
3833 pline("You are prevented from having freezopathy!");
3834 break;
3835 case 105:
3836 u.uprops[DEAC_STONED_CHILLER].intrinsic += amount;
3837 pline("You are prevented from being a stoned chiller!");
3838 break;
3839 case 106:
3840 u.uprops[DEAC_CORROSIVITY].intrinsic += amount;
3841 pline("You are prevented from having corrosivity!");
3842 break;
3843 case 107:
3844 u.uprops[DEAC_FEAR_FACTOR].intrinsic += amount;
3845 pline("You are prevented from having an increased fear factor!");
3846 break;
3847 case 108:
3848 u.uprops[DEAC_BURNOPATHY].intrinsic += amount;
3849 pline("You are prevented from having burnopathy!");
3850 break;
3851 case 109:
3852 u.uprops[DEAC_SICKOPATHY].intrinsic += amount;
3853 pline("You are prevented from having sickopathy!");
3854 break;
3855 case 110:
3856 u.uprops[DEAC_KEEN_MEMORY].intrinsic += amount;
3857 pline("You are prevented from having keen memory!");
3858 break;
3859 case 111:
3860 u.uprops[DEAC_THE_FORCE].intrinsic += amount;
3861 pline("You are prevented from using the force like a real jedi!");
3862 break;
3863 case 112:
3864 u.uprops[DEAC_SIGHT_BONUS].intrinsic += amount;
3865 pline("You are prevented from having extra sight!");
3866 break;
3867 case 113:
3868 u.uprops[DEAC_VERSUS_CURSES].intrinsic += amount;
3869 pline("You are prevented from having curse resistance!");
3870 break;
3871 case 114:
3872 u.uprops[DEAC_STUN_RES].intrinsic += amount;
3873 pline("You are prevented from having stun resistance!");
3874 break;
3875 case 115:
3876 u.uprops[DEAC_CONF_RES].intrinsic += amount;
3877 pline("You are prevented from having confusion resistance!");
3878 break;
3879 case 116:
3880 u.uprops[DEAC_DOUBLE_ATTACK].intrinsic += amount;
3881 pline("You are prevented from having double attacks!");
3882 break;
3883 case 117:
3884 u.uprops[DEAC_QUAD_ATTACK].intrinsic += amount;
3885 pline("You are prevented from having quad attacks!");
3886 break;
3887 case 118:
3888 u.uprops[DEAC_PSI_RES].intrinsic += amount;
3889 pline("You are prevented from having psi resistance!");
3890 break;
3891 case 119:
3892 u.uprops[DEAC_WONDERLEGS].intrinsic += amount;
3893 pline("You are prevented from having wonderlegs!");
3894 break;
3895 case 120:
3896 u.uprops[DEAC_GLIB_COMBAT].intrinsic += amount;
3897 pline("You are prevented from having glib combat!");
3898 break;
3899 case 121:
3900 u.uprops[DEAC_MANALEECH].intrinsic += amount;
3901 pline("You are prevented from having manaleech!");
3902 break;
3903 case 122:
3904 u.uprops[DEAC_DIMMOPATHY].intrinsic += amount;
3905 pline("You are prevented from having dimmopathy!");
3906 break;
3907 case 123:
3908 u.uprops[DEAC_PEACEVISION].intrinsic += amount;
3909 pline("You are prevented from having peacevision!");
3910 break;
3911 case 124:
3912 u.uprops[DEAC_CONT_RES].intrinsic += amount;
3913 pline("You are prevented from having contamination resistance!");
3914 break;
3915 case 125:
3916 u.uprops[DEAC_DISCOUNT_ACTION].intrinsic += amount;
3917 pline("You are prevented from having discount action!");
3918 break;
3919 case 126:
3920 u.uprops[DEAC_FULL_NUTRIENT].intrinsic += amount;
3921 pline("You are prevented from having full nutrients!");
3922 break;
3923 case 127:
3924 u.uprops[DEAC_TECHNICALITY].intrinsic += amount;
3925 pline("You are prevented from having technicality!");
3926 break;
3927 case 128:
3928 u.uprops[DEAC_SCENT_VIEW].intrinsic += amount;
3929 pline("You are prevented from having scent view!");
3930 break;
3931 case 129:
3932 u.uprops[DEAC_DIMINISHED_BLEEDING].intrinsic += amount;
3933 pline("You are prevented from having diminished bleeding!");
3934 break;
3935 case 130:
3936 u.uprops[DEAC_CONTROL_MAGIC].intrinsic += amount;
3937 pline("You are prevented from having control magic!");
3938 break;
3939 case 131:
3940 u.uprops[DEAC_EXP_BOOST].intrinsic += amount;
3941 pline("You are prevented from having EXP boost!");
3942 break;
3943 case 132:
3944 u.uprops[DEAC_ASTRAL_VISION].intrinsic += amount;
3945 pline("You are prevented from having astral vision!");
3946 break;
3947 case 133:
3948 u.uprops[DEAC_BLIND_RES].intrinsic += amount;
3949 pline("You are prevented from having blindness resistance!");
3950 break;
3951 case 134:
3952 u.uprops[DEAC_HALLUC_RES].intrinsic += amount;
3953 pline("You are prevented from having hallucination resistance!");
3954 break;
3955 case 135:
3956 u.uprops[DEAC_PAIN_SENSE].intrinsic += amount;
3957 pline("You are prevented from having pain sense!");
3958 break;
3959 case 136:
3960 u.uprops[DEAC_DEFUSING].intrinsic += amount;
3961 pline("You are prevented from having the defusing power!");
3962 break;
3963 case 137:
3964 u.uprops[DEAC_RESISTANCE_PIERCING].intrinsic += amount;
3965 pline("You are prevented from having resistance piercing!");
3966 break;
3967 case 138:
3968 case 139:
3969 u.uprops[DEAC_MYSTERY_RES].intrinsic += amount;
3970 pline("You are prevented from having mystery resistance!");
3971 break;
3972 case 140:
3973 u.uprops[DEAC_MAGIC_FIND].intrinsic += amount;
3974 pline("You are prevented from having magic find!");
3975 break;
3976 case 141:
3977 u.uprops[DEAC_SPELLBOOST].intrinsic += amount;
3978 pline("You are prevented from having spellboost!");
3979 break;
3985 goodimplanteffect(obj)
3986 struct obj *obj;
3988 switch (obj->shirtmessage % 62) { /* remember to not randomize them!!! each number has to map to exactly one property --Amy */
3990 case 0:
3991 return DTBEEM_RES;
3992 case 1:
3993 return FIRE_RES;
3994 case 2:
3995 return COLD_RES;
3996 case 3:
3997 return SLEEP_RES;
3998 case 4:
3999 return DISINT_RES;
4000 case 5:
4001 return SHOCK_RES;
4002 case 6:
4003 return POISON_RES;
4004 case 7:
4005 return ACID_RES;
4006 case 8:
4007 return STONE_RES;
4008 case 9:
4009 return REGENERATION;
4010 case 10:
4011 return SEARCHING;
4012 case 11:
4013 return SEE_INVIS;
4014 case 12:
4015 return INVIS;
4016 case 13:
4017 return TELEPORT_CONTROL;
4018 case 14:
4019 return POLYMORPH_CONTROL;
4020 case 15:
4021 return STEALTH;
4022 case 16:
4023 return WARNING;
4024 case 17:
4025 return TELEPAT;
4026 case 18:
4027 return FAST;
4028 case 19:
4029 return PASSES_WALLS;
4030 case 20:
4031 return REFLECTING;
4032 case 21:
4033 return ANTIMAGIC;
4034 case 22:
4035 return ENERGY_REGENERATION;
4036 case 23:
4037 return MAGICAL_BREATHING;
4038 case 24:
4039 return HALF_SPDAM;
4040 case 25:
4041 return HALF_PHDAM;
4042 case 26:
4043 return SICK_RES;
4044 case 27:
4045 return DRAIN_RES;
4046 case 28:
4047 return FREE_ACTION;
4048 case 29:
4049 return FLYING;
4050 case 30:
4051 return SLOW_DIGESTION;
4052 case 31:
4053 return INFRAVISION;
4054 case 32:
4055 return FEAR_RES;
4056 case 33:
4057 return DISPLACED;
4058 case 34:
4059 return SWIMMING;
4060 case 35:
4061 return KEEN_MEMORY;
4062 case 36:
4063 return THE_FORCE;
4064 case 37:
4065 return TRAP_REVEALING;
4066 case 38:
4067 return CLAIRVOYANT;
4068 case 39:
4069 return SIGHT_BONUS;
4070 case 40:
4071 return VERSUS_CURSES;
4072 case 41:
4073 return STUN_RES;
4074 case 42:
4075 return CONF_RES;
4076 case 43:
4077 return EXTRA_WEAPON_PRACTICE;
4078 case 44:
4079 return PSI_RES;
4080 case 45:
4081 return MANALEECH;
4082 case 46:
4083 return PEACEVISION;
4084 case 47:
4085 return CONT_RES;
4086 case 48:
4087 return DISCOUNT_ACTION;
4088 case 49:
4089 return FULL_NUTRIENT;
4090 case 50:
4091 return TECHNICALITY;
4092 case 51:
4093 return SCENT_VIEW;
4094 case 52:
4095 return DIMINISHED_BLEEDING;
4096 case 53:
4097 return CONTROL_MAGIC;
4098 case 54:
4099 return EXP_BOOST;
4100 case 55:
4101 return BLIND_RES;
4102 case 56:
4103 return HALLUC_RES;
4104 case 57:
4105 return DEFUSING;
4106 case 58:
4107 return RESISTANCE_PIERCING;
4108 case 59:
4109 return MYSTERY_RES;
4110 case 60:
4111 return MAGIC_FIND;
4112 case 61:
4113 return SPELLBOOST;
4114 default:
4115 return POISON_RES;
4121 void
4122 getnastytrapintrinsic()
4124 switch (rnd(285)) {
4126 case 1:
4127 SpeedBug |= FROMOUTSIDE; break;
4128 case 2:
4129 MenuBug |= FROMOUTSIDE; break;
4130 case 3:
4131 RMBLoss |= FROMOUTSIDE; break;
4132 case 4:
4133 DisplayLoss |= FROMOUTSIDE; break;
4134 case 5:
4135 SpellLoss |= FROMOUTSIDE; break;
4136 case 6:
4137 YellowSpells |= FROMOUTSIDE; break;
4138 case 7:
4139 AutoDestruct |= FROMOUTSIDE; break;
4140 case 8:
4141 MemoryLoss |= FROMOUTSIDE; break;
4142 case 9:
4143 InventoryLoss |= FROMOUTSIDE; break;
4144 case 10:
4145 BlackNgWalls |= FROMOUTSIDE; break;
4146 case 11:
4147 Superscroller |= FROMOUTSIDE; break;
4148 case 12:
4149 FreeHandLoss |= FROMOUTSIDE; break;
4150 case 13:
4151 Unidentify |= FROMOUTSIDE; break;
4152 case 14:
4153 Thirst |= FROMOUTSIDE; break;
4154 case 15:
4155 LuckLoss |= FROMOUTSIDE; break;
4156 case 16:
4157 ShadesOfGrey |= FROMOUTSIDE; break;
4158 case 17:
4159 FaintActive |= FROMOUTSIDE; break;
4160 case 18:
4161 Itemcursing |= FROMOUTSIDE; break;
4162 case 19:
4163 DifficultyIncreased |= FROMOUTSIDE; break;
4164 case 20:
4165 Deafness |= FROMOUTSIDE; break;
4166 case 21:
4167 CasterProblem |= FROMOUTSIDE; break;
4168 case 22:
4169 WeaknessProblem |= FROMOUTSIDE; break;
4170 case 23:
4171 RotThirteen |= FROMOUTSIDE; break;
4172 case 24:
4173 BishopGridbug |= FROMOUTSIDE; break;
4174 case 25:
4175 ConfusionProblem |= FROMOUTSIDE; break;
4176 case 26:
4177 NoDropProblem |= FROMOUTSIDE; break;
4178 case 27:
4179 DSTWProblem |= FROMOUTSIDE; break;
4180 case 28:
4181 StatusTrapProblem |= FROMOUTSIDE; break;
4182 case 29:
4183 AlignmentProblem |= FROMOUTSIDE; break;
4184 case 30:
4185 StairsProblem |= FROMOUTSIDE; break;
4186 case 31:
4187 UninformationProblem |= FROMOUTSIDE; break;
4188 case 32:
4189 IntrinsicLossProblem |= FROMOUTSIDE; break;
4190 case 33:
4191 BloodLossProblem |= FROMOUTSIDE; break;
4192 case 34:
4193 BadEffectProblem |= FROMOUTSIDE; break;
4194 case 35:
4195 TrapCreationProblem |= FROMOUTSIDE; break;
4196 case 36:
4197 AutomaticVulnerabilitiy |= FROMOUTSIDE; break;
4198 case 37:
4199 TeleportingItems |= FROMOUTSIDE; break;
4200 case 38:
4201 NastinessProblem |= FROMOUTSIDE; break;
4202 case 39:
4203 RecurringAmnesia |= FROMOUTSIDE; break;
4204 case 40:
4205 BigscriptEffect |= FROMOUTSIDE; break;
4206 case 41:
4207 BankTrapEffect |= FROMOUTSIDE; break;
4208 case 42:
4209 MapTrapEffect |= FROMOUTSIDE; break;
4210 case 43:
4211 TechTrapEffect |= FROMOUTSIDE; break;
4212 case 44:
4213 RecurringDisenchant |= FROMOUTSIDE; break;
4214 case 45:
4215 verisiertEffect |= FROMOUTSIDE; break;
4216 case 46:
4217 ChaosTerrain |= FROMOUTSIDE; break;
4218 case 47:
4219 Muteness |= FROMOUTSIDE; break;
4220 case 48:
4221 EngravingDoesntWork |= FROMOUTSIDE; break;
4222 case 49:
4223 MagicDeviceEffect |= FROMOUTSIDE; break;
4224 case 50:
4225 BookTrapEffect |= FROMOUTSIDE; break;
4226 case 51:
4227 LevelTrapEffect |= FROMOUTSIDE; break;
4228 case 52:
4229 QuizTrapEffect |= FROMOUTSIDE; break;
4230 case 53:
4231 CaptchaProblem |= FROMOUTSIDE; break;
4232 case 54:
4233 FarlookProblem |= FROMOUTSIDE; break;
4234 case 55:
4235 RespawnProblem |= FROMOUTSIDE; break;
4236 case 56:
4237 FastMetabolismEffect |= FROMOUTSIDE; break;
4238 case 57:
4239 NoReturnEffect |= FROMOUTSIDE; break;
4240 case 58:
4241 AlwaysEgotypeMonsters |= FROMOUTSIDE; break;
4242 case 59:
4243 TimeGoesByFaster |= FROMOUTSIDE; break;
4244 case 60:
4245 FoodIsAlwaysRotten |= FROMOUTSIDE; break;
4246 case 61:
4247 AllSkillsUnskilled |= FROMOUTSIDE; break;
4248 case 62:
4249 AllStatsAreLower |= FROMOUTSIDE; break;
4250 case 63:
4251 PlayerCannotTrainSkills |= FROMOUTSIDE; break;
4252 case 64:
4253 PlayerCannotExerciseStats |= FROMOUTSIDE; break;
4254 case 65:
4255 TurnLimitation |= FROMOUTSIDE; break;
4256 case 66:
4257 WeakSight |= FROMOUTSIDE; break;
4258 case 67:
4259 RandomMessages |= FROMOUTSIDE; break;
4260 case 68:
4261 Desecration |= FROMOUTSIDE; break;
4262 case 69:
4263 StarvationEffect |= FROMOUTSIDE; break;
4264 case 70:
4265 NoDropsEffect |= FROMOUTSIDE; break;
4266 case 71:
4267 LowEffects |= FROMOUTSIDE; break;
4268 case 72:
4269 InvisibleTrapsEffect |= FROMOUTSIDE; break;
4270 case 73:
4271 GhostWorld |= FROMOUTSIDE; break;
4272 case 74:
4273 Dehydration |= FROMOUTSIDE; break;
4274 case 75:
4275 HateTrapEffect |= FROMOUTSIDE; break;
4276 case 76:
4277 TotterTrapEffect |= FROMOUTSIDE; break;
4278 case 77:
4279 Nonintrinsics |= FROMOUTSIDE; break;
4280 case 78:
4281 Dropcurses |= FROMOUTSIDE; break;
4282 case 79:
4283 Nakedness |= FROMOUTSIDE; break;
4284 case 80:
4285 Antileveling |= FROMOUTSIDE; break;
4286 case 81:
4287 ItemStealingEffect |= FROMOUTSIDE; break;
4288 case 82:
4289 Rebellions |= FROMOUTSIDE; break;
4290 case 83:
4291 CrapEffect |= FROMOUTSIDE; break;
4292 case 84:
4293 ProjectilesMisfire |= FROMOUTSIDE; break;
4294 case 85:
4295 WallTrapping |= FROMOUTSIDE; break;
4296 case 86:
4297 DisconnectedStairs |= FROMOUTSIDE; break;
4298 case 87:
4299 InterfaceScrewed |= FROMOUTSIDE; break;
4300 case 88:
4301 Bossfights |= FROMOUTSIDE; break;
4302 case 89:
4303 EntireLevelMode |= FROMOUTSIDE; break;
4304 case 90:
4305 BonesLevelChange |= FROMOUTSIDE; break;
4306 case 91:
4307 AutocursingEquipment |= FROMOUTSIDE; break;
4308 case 92:
4309 HighlevelStatus |= FROMOUTSIDE; break;
4310 case 93:
4311 SpellForgetting |= FROMOUTSIDE; break;
4312 case 94:
4313 SoundEffectBug |= FROMOUTSIDE; break;
4314 case 95:
4315 TimerunBug |= FROMOUTSIDE; break;
4316 case 96:
4317 LootcutBug |= FROMOUTSIDE; break;
4318 case 97:
4319 MonsterSpeedBug |= FROMOUTSIDE; break;
4320 case 98:
4321 ScalingBug |= FROMOUTSIDE; break;
4322 case 99:
4323 EnmityBug |= FROMOUTSIDE; break;
4324 case 100:
4325 WhiteSpells |= FROMOUTSIDE; break;
4326 case 101:
4327 CompleteGraySpells |= FROMOUTSIDE; break;
4328 case 102:
4329 QuasarVision |= FROMOUTSIDE; break;
4330 case 103:
4331 MommaBugEffect |= FROMOUTSIDE; break;
4332 case 104:
4333 HorrorBugEffect |= FROMOUTSIDE; break;
4334 case 105:
4335 ArtificerBug |= FROMOUTSIDE; break;
4336 case 106:
4337 WereformBug |= FROMOUTSIDE; break;
4338 case 107:
4339 NonprayerBug |= FROMOUTSIDE; break;
4340 case 108:
4341 EvilPatchEffect |= FROMOUTSIDE; break;
4342 case 109:
4343 HardModeEffect |= FROMOUTSIDE; break;
4344 case 110:
4345 SecretAttackBug |= FROMOUTSIDE; break;
4346 case 111:
4347 EaterBugEffect |= FROMOUTSIDE; break;
4348 case 112:
4349 CovetousnessBug |= FROMOUTSIDE; break;
4350 case 113:
4351 NotSeenBug |= FROMOUTSIDE; break;
4352 case 114:
4353 DarkModeBug |= FROMOUTSIDE; break;
4354 case 115:
4355 AntisearchEffect |= FROMOUTSIDE; break;
4356 case 116:
4357 HomicideEffect |= FROMOUTSIDE; break;
4358 case 117:
4359 NastynationBug |= FROMOUTSIDE; break;
4360 case 118:
4361 WakeupCallBug |= FROMOUTSIDE; break;
4362 case 119:
4363 GrayoutBug |= FROMOUTSIDE; break;
4364 case 120:
4365 GrayCenterBug |= FROMOUTSIDE; break;
4366 case 121:
4367 CheckerboardBug |= FROMOUTSIDE; break;
4368 case 122:
4369 ClockwiseSpinBug |= FROMOUTSIDE; break;
4370 case 123:
4371 CounterclockwiseSpin |= FROMOUTSIDE; break;
4372 case 124:
4373 LagBugEffect |= FROMOUTSIDE; break;
4374 case 125:
4375 BlesscurseEffect |= FROMOUTSIDE; break;
4376 case 126:
4377 DeLightBug |= FROMOUTSIDE; break;
4378 case 127:
4379 DischargeBug |= FROMOUTSIDE; break;
4380 case 128:
4381 TrashingBugEffect |= FROMOUTSIDE; break;
4382 case 129:
4383 FilteringBug |= FROMOUTSIDE; break;
4384 case 130:
4385 DeformattingBug |= FROMOUTSIDE; break;
4386 case 131:
4387 FlickerStripBug |= FROMOUTSIDE; break;
4388 case 132:
4389 UndressingEffect |= FROMOUTSIDE; break;
4390 case 133:
4391 Hyperbluewalls |= FROMOUTSIDE; break;
4392 case 134:
4393 NoliteBug |= FROMOUTSIDE; break;
4394 case 135:
4395 ParanoiaBugEffect |= FROMOUTSIDE; break;
4396 case 136:
4397 FleecescriptBug |= FROMOUTSIDE; break;
4398 case 137:
4399 InterruptEffect |= FROMOUTSIDE; break;
4400 case 138:
4401 DustbinBug |= FROMOUTSIDE; break;
4402 case 139:
4403 ManaBatteryBug |= FROMOUTSIDE; break;
4404 case 140:
4405 Monsterfingers |= FROMOUTSIDE; break;
4406 case 141:
4407 MiscastBug |= FROMOUTSIDE; break;
4408 case 142:
4409 MessageSuppression |= FROMOUTSIDE; break;
4410 case 143:
4411 StuckAnnouncement |= FROMOUTSIDE; break;
4412 case 144:
4413 BloodthirstyEffect |= FROMOUTSIDE; break;
4414 case 145:
4415 MaximumDamageBug |= FROMOUTSIDE; break;
4416 case 146:
4417 LatencyBugEffect |= FROMOUTSIDE; break;
4418 case 147:
4419 StarlitBug |= FROMOUTSIDE; break;
4420 case 148:
4421 KnowledgeBug |= FROMOUTSIDE; break;
4422 case 149:
4423 HighscoreBug |= FROMOUTSIDE; break;
4424 case 150:
4425 PinkSpells |= FROMOUTSIDE; break;
4426 case 151:
4427 GreenSpells |= FROMOUTSIDE; break;
4428 case 152:
4429 EvencoreEffect |= FROMOUTSIDE; break;
4430 case 153:
4431 UnderlayerBug |= FROMOUTSIDE; break;
4432 case 154:
4433 DamageMeterBug |= FROMOUTSIDE; break;
4434 case 155:
4435 ArbitraryWeightBug |= FROMOUTSIDE; break;
4436 case 156:
4437 FuckedInfoBug |= FROMOUTSIDE; break;
4438 case 157:
4439 BlackSpells |= FROMOUTSIDE; break;
4440 case 158:
4441 CyanSpells |= FROMOUTSIDE; break;
4442 case 159:
4443 HeapEffectBug |= FROMOUTSIDE; break;
4444 case 160:
4445 BlueSpells |= FROMOUTSIDE; break;
4446 case 161:
4447 TronEffect |= FROMOUTSIDE; break;
4448 case 162:
4449 RedSpells |= FROMOUTSIDE; break;
4450 case 163:
4451 TooHeavyEffect |= FROMOUTSIDE; break;
4452 case 164:
4453 ElongationBug |= FROMOUTSIDE; break;
4454 case 165:
4455 WrapoverEffect |= FROMOUTSIDE; break;
4456 case 166:
4457 DestructionEffect |= FROMOUTSIDE; break;
4458 case 167:
4459 MeleePrefixBug |= FROMOUTSIDE; break;
4460 case 168:
4461 AutomoreBug |= FROMOUTSIDE; break;
4462 case 169:
4463 UnfairAttackBug |= FROMOUTSIDE; break;
4464 case 170:
4465 OrangeSpells |= FROMOUTSIDE; break;
4466 case 171:
4467 VioletSpells |= FROMOUTSIDE; break;
4468 case 172:
4469 LongingEffect |= FROMOUTSIDE; break;
4470 case 173:
4471 CursedParts |= FROMOUTSIDE; break;
4472 case 174:
4473 Quaversal |= FROMOUTSIDE; break;
4474 case 175:
4475 AppearanceShuffling |= FROMOUTSIDE; break;
4476 case 176:
4477 BrownSpells |= FROMOUTSIDE; break;
4478 case 177:
4479 Choicelessness |= FROMOUTSIDE; break;
4480 case 178:
4481 Goldspells |= FROMOUTSIDE; break;
4482 case 179:
4483 Deprovement |= FROMOUTSIDE; break;
4484 case 180:
4485 InitializationFail |= FROMOUTSIDE; break;
4486 case 181:
4487 GushlushEffect |= FROMOUTSIDE; break;
4488 case 182:
4489 SoiltypeEffect |= FROMOUTSIDE; break;
4490 case 183:
4491 DangerousTerrains |= FROMOUTSIDE; break;
4492 case 184:
4493 FalloutEffect |= FROMOUTSIDE; break;
4494 case 185:
4495 MojibakeEffect |= FROMOUTSIDE; break;
4496 case 186:
4497 GravationEffect |= FROMOUTSIDE; break;
4498 case 187:
4499 UncalledEffect |= FROMOUTSIDE; break;
4500 case 188:
4501 ExplodingDiceEffect |= FROMOUTSIDE; break;
4502 case 189:
4503 PermacurseEffect |= FROMOUTSIDE; break;
4504 case 190:
4505 ShroudedIdentity |= FROMOUTSIDE; break;
4506 case 191:
4507 FeelerGauges |= FROMOUTSIDE; break;
4508 case 192:
4509 LongScrewup |= FROMOUTSIDE; break;
4510 case 193:
4511 WingYellowChange |= FROMOUTSIDE; break;
4512 case 194:
4513 LifeSavingBug |= FROMOUTSIDE; break;
4514 case 195:
4515 CurseuseEffect |= FROMOUTSIDE; break;
4516 case 196:
4517 CutNutritionEffect |= FROMOUTSIDE; break;
4518 case 197:
4519 SkillLossEffect |= FROMOUTSIDE; break;
4520 case 198:
4521 AutopilotEffect |= FROMOUTSIDE; break;
4522 case 199:
4523 MysteriousForceActive |= FROMOUTSIDE; break;
4524 case 200:
4525 MonsterGlyphChange |= FROMOUTSIDE; break;
4526 case 201:
4527 ChangingDirectives |= FROMOUTSIDE; break;
4528 case 202:
4529 ContainerKaboom |= FROMOUTSIDE; break;
4530 case 203:
4531 StealDegrading |= FROMOUTSIDE; break;
4532 case 204:
4533 LeftInventoryBug |= FROMOUTSIDE; break;
4534 case 205:
4535 FluctuatingSpeed |= FROMOUTSIDE; break;
4536 case 206:
4537 TarmuStrokingNora |= FROMOUTSIDE; break;
4538 case 207:
4539 FailureEffects |= FROMOUTSIDE; break;
4540 case 208:
4541 BrightCyanSpells |= FROMOUTSIDE; break;
4542 case 209:
4543 FrequentationSpawns |= FROMOUTSIDE; break;
4544 case 210:
4545 PetAIScrewed |= FROMOUTSIDE; break;
4546 case 211:
4547 SatanEffect |= FROMOUTSIDE; break;
4548 case 212:
4549 RememberanceEffect |= FROMOUTSIDE; break;
4550 case 213:
4551 PokelieEffect |= FROMOUTSIDE; break;
4552 case 214:
4553 AlwaysAutopickup |= FROMOUTSIDE; break;
4554 case 215:
4555 DywypiProblem |= FROMOUTSIDE; break;
4556 case 216:
4557 SilverSpells |= FROMOUTSIDE; break;
4558 case 217:
4559 MetalSpells |= FROMOUTSIDE; break;
4560 case 218:
4561 PlatinumSpells |= FROMOUTSIDE; break;
4562 case 219:
4563 ManlerEffect |= FROMOUTSIDE; break;
4564 case 220:
4565 DoorningEffect |= FROMOUTSIDE; break;
4566 case 221:
4567 NownsibleEffect |= FROMOUTSIDE; break;
4568 case 222:
4569 ElmStreetEffect |= FROMOUTSIDE; break;
4570 case 223:
4571 MonnoiseEffect |= FROMOUTSIDE; break;
4572 case 224:
4573 RangCallEffect |= FROMOUTSIDE; break;
4574 case 225:
4575 RecurringSpellLoss |= FROMOUTSIDE; break;
4576 case 226:
4577 AntitrainingEffect |= FROMOUTSIDE; break;
4578 case 227:
4579 TechoutBug |= FROMOUTSIDE; break;
4580 case 228:
4581 StatDecay |= FROMOUTSIDE; break;
4582 case 229:
4583 Movemork |= FROMOUTSIDE; break;
4584 case 230:
4585 BadPartBug |= FROMOUTSIDE; break;
4586 case 231:
4587 CompletelyBadPartBug |= FROMOUTSIDE; break;
4588 case 232:
4589 EvilVariantActive |= FROMOUTSIDE; break;
4590 case 233:
4591 SanityTrebleEffect |= FROMOUTSIDE; break;
4592 case 234:
4593 StatDecreaseBug |= FROMOUTSIDE; break;
4594 case 235:
4595 SimeoutBug |= FROMOUTSIDE; break;
4596 case 236:
4597 GiantExplorerBug |= FROMOUTSIDE; break;
4598 case 237:
4599 YawmBug |= FROMOUTSIDE; break;
4600 case 238:
4601 TrapwarpingBug |= FROMOUTSIDE; break;
4602 case 239:
4603 EnthuEffect |= FROMOUTSIDE; break;
4604 case 240:
4605 MikraEffect |= FROMOUTSIDE; break;
4606 case 241:
4607 GotsTooGoodEffect |= FROMOUTSIDE; break;
4608 case 242:
4609 NoFunWallsEffect |= FROMOUTSIDE; break;
4610 case 243:
4611 CradleChaosEffect |= FROMOUTSIDE; break;
4612 case 244:
4613 TezEffect |= FROMOUTSIDE; break;
4614 case 245:
4615 KillerRoomEffect |= FROMOUTSIDE; break;
4616 case 246:
4617 ReallyBadTrapEffect |= FROMOUTSIDE; break;
4618 case 247:
4619 CovidTrapEffect |= FROMOUTSIDE; break;
4620 case 248:
4621 ArtiblastEffect |= FROMOUTSIDE; break;
4622 case 249:
4623 RepeatingNastycurseEffect |= FROMOUTSIDE; break;
4624 case 250:
4625 RealLieEffect |= FROMOUTSIDE; break;
4626 case 251:
4627 EscapePastEffect |= FROMOUTSIDE; break;
4628 case 252:
4629 PethateEffect |= FROMOUTSIDE; break;
4630 case 253:
4631 PetLashoutEffect |= FROMOUTSIDE; break;
4632 case 254:
4633 PetstarveEffect |= FROMOUTSIDE; break;
4634 case 255:
4635 PetscrewEffect |= FROMOUTSIDE; break;
4636 case 256:
4637 TechLossEffect |= FROMOUTSIDE; break;
4638 case 257:
4639 ProoflossEffect |= FROMOUTSIDE; break;
4640 case 258:
4641 UnInvisEffect |= FROMOUTSIDE; break;
4642 case 259:
4643 DetectationEffect |= FROMOUTSIDE; break;
4644 case 260:
4645 OptionBugEffect |= FROMOUTSIDE; break;
4646 case 261:
4647 MiscolorEffect |= FROMOUTSIDE; break;
4648 case 262:
4649 OneRainbowEffect |= FROMOUTSIDE; break;
4650 case 263:
4651 ColorshiftEffect |= FROMOUTSIDE; break;
4652 case 264:
4653 TopLineEffect |= FROMOUTSIDE; break;
4654 case 265:
4655 CapsBugEffect |= FROMOUTSIDE; break;
4656 case 266:
4657 UnKnowledgeEffect |= FROMOUTSIDE; break;
4658 case 267:
4659 DarkhanceEffect |= FROMOUTSIDE; break;
4660 case 268:
4661 DschueueuetEffect |= FROMOUTSIDE; break;
4662 case 269:
4663 NopeskillEffect |= FROMOUTSIDE; break;
4664 case 270:
4665 FuckfuckfuckEffect |= FROMOUTSIDE; break;
4666 case 271:
4667 EpviEffect |= FROMOUTSIDE; break;
4668 case 272:
4669 AefdeEffect |= FROMOUTSIDE; break;
4670 case 273:
4671 MeanBurdenEffect |= FROMOUTSIDE; break;
4672 case 274:
4673 CarrcapEffect |= FROMOUTSIDE; break;
4674 case 275:
4675 UmengEffect |= FROMOUTSIDE; break;
4676 case 276:
4677 MulchBug |= FROMOUTSIDE; break;
4678 case 277:
4679 SpellCooldownBug |= FROMOUTSIDE; break;
4680 case 278:
4681 HaveAPinBug |= FROMOUTSIDE; break;
4682 case 279:
4683 TurbodullBug |= FROMOUTSIDE; break;
4684 case 280:
4685 InaccuracyBug |= FROMOUTSIDE; break;
4686 case 281:
4687 InventorySizeBug |= FROMOUTSIDE; break;
4688 case 282:
4689 CostlyFailureBug |= FROMOUTSIDE; break;
4690 case 283:
4691 ReddamBug |= FROMOUTSIDE; break;
4692 case 284:
4693 RedincBug |= FROMOUTSIDE; break;
4694 case 285:
4695 MonsterMultishotBug |= FROMOUTSIDE; break;
4702 void
4703 randomfeminismtrap(duration)
4704 int duration;
4706 if (FemtrapActiveRosa) {
4707 duration *= 5;
4708 if (SuperFemtrapRosa) duration *= 2;
4711 switch (rnd(103)) {
4712 case 1:
4713 if (!FemtrapActiveRuth) pline("You can already imagine the farting noises you're gonna hear.");
4714 FemaleTrapSarah += duration;
4715 break;
4716 case 2:
4717 if (!FemtrapActiveRuth) pline("Suddenly you feel a little confused, and also feel like stroking the sexy butt cheeks of a woman in wooden sandals.");
4718 FemaleTrapClaudia += duration;
4719 break;
4720 case 3:
4721 if (!FemtrapActiveRuth) pline("You'll certainly like to listen to the disgusting toilet noises.");
4722 FemaleTrapLudgera += duration;
4723 break;
4724 case 4:
4725 if (!FemtrapActiveRuth) pline("You feel like being kicked by sexy girls and cleaning their shoes.");
4726 FemaleTrapKati += duration;
4727 break;
4728 case 5:
4729 if (!FemtrapActiveRuth) pline("All the girls want to use their sexy butt cheeks as weapons now!");
4730 FemaleTrapMeltem += duration;
4731 break;
4732 case 6:
4733 if (!FemtrapActiveRuth) pline("Now, the dungeon will be more feminine for a while!");
4734 FemaleTrapFemmy += duration;
4735 break;
4736 case 7:
4737 if (!FemtrapActiveRuth) pline("Your shins can expect to get kicked repeatedly by all the girls and women now!");
4738 FemaleTrapMadeleine += duration;
4739 break;
4740 case 8:
4741 if (!FemtrapActiveRuth) pline("Green is the new favorite color, it seems!");
4742 FemaleTrapMarlena += duration;
4743 break;
4744 case 9:
4745 if (!FemtrapActiveRuth) pline("Suddenly, you feel that you're going to step into a heap of shit.");
4746 FemaleTrapAnastasia += duration;
4747 break;
4748 case 10:
4749 if (!FemtrapActiveRuth) pline("Your butt cheeks suddenly feel very tender, and in fact, a similar thing is happening to your entire body!");
4750 FemaleTrapJessica += duration;
4751 break;
4752 case 11:
4753 if (!FemtrapActiveRuth) pline("You suddenly have a very grating, aggravating voice, and you start to emit a beguiling odor! In fact, you're super sexy and sweet now!");
4754 FemaleTrapSolvejg += duration;
4755 break;
4756 case 12:
4757 if (!FemtrapActiveRuth) pline("All the female denizens of the dungeon will show you their true power, and it will happen very soon!");
4758 FemaleTrapWendy += duration;
4759 break;
4760 case 13:
4761 if (!FemtrapActiveRuth) pline("You feel that the girls and women are getting ready to use their sexy butts as weapons.");
4762 FemaleTrapKatharina += duration;
4763 break;
4764 case 14:
4765 if (!FemtrapActiveRuth) pline("You long for beautiful sexy women with tender butt cheeks and lovely high heels.");
4766 FemaleTrapElena += duration;
4767 break;
4768 case 15:
4769 if (!FemtrapActiveRuth) pline("You feel that you'll want to use the toilet more often. Also, somehow your physique seems weaker now...");
4770 FemaleTrapThai += duration;
4771 break;
4772 case 16:
4773 if (!FemtrapActiveRuth) pline("A ghostly girl (named Elif) starts following you around, and apparently she wants to play with you!");
4774 FemaleTrapElif += duration;
4775 break;
4776 case 17:
4777 if (!FemtrapActiveRuth) pline("You feel that you angered the womanhood. If you now hit a woman, you will be hit with retribution!");
4778 FemaleTrapNadja += duration;
4779 break;
4780 case 18:
4781 if (!FemtrapActiveRuth) pline("You just know that your legs are going to be ripped open by very sharp-edged combat boot heels.");
4782 FemaleTrapSandra += duration;
4783 break;
4784 case 19:
4785 if (!FemtrapActiveRuth) pline("You gotta dance! You've suddenly become super sexy and attractive, and neither sleep nor paralysis can stop you in your tracks. And you can kick your enemies to stomp their toes flat. But if you ever stand still for too long, a bunch of bloodthirsty female painted toenails is going to hurt your beautiful skin, so make sure you keep moving!");
4786 FemaleTrapNatalje += duration;
4787 break;
4788 case 20:
4789 if (!FemtrapActiveRuth) pline("Lots of shreds of skin will be scraped off your shins, and the girls will enjoy it.");
4790 FemaleTrapJeanetta += duration;
4791 break;
4792 case 21:
4793 if (!FemtrapActiveRuth) pline("You feel that people are building toilets for you to use.");
4794 FemaleTrapYvonne += duration;
4795 break;
4796 case 22:
4797 if (!FemtrapActiveRuth) pline("Your sexy butt signals that it wants to produce beautiful farting noises!");
4798 FemaleTrapMaurah += duration;
4799 break;
4800 case 23:
4801 if (!FemtrapActiveRuth) pline("You fear that the women are going to crush you with a hug.");
4802 FemaleTrapNelly += duration;
4803 break;
4804 case 24:
4805 if (!FemtrapActiveRuth) pline("It seems that the women are running faster.");
4806 FemaleTrapEveline += duration;
4807 break;
4808 case 25:
4809 if (!FemtrapActiveRuth) pline("All the women want to knee you in the delicate nuts now!");
4810 FemaleTrapKarin += duration;
4811 break;
4812 case 26:
4813 if (!FemtrapActiveRuth) pline("Oh no, your shins are almost broken!");
4814 FemaleTrapJuen += duration;
4815 break;
4816 case 27:
4817 if (!FemtrapActiveRuth) pline("Urgh, you can already smell the stench of stinking cigarettes!");
4818 FemaleTrapKristina += duration;
4819 break;
4820 case 28:
4821 if (!FemtrapActiveRuth) pline("These damn people want to use your precious clothing to brush off their dirty shoes!");
4822 FemaleTrapLou += duration;
4823 break;
4824 case 29:
4825 if (!FemtrapActiveRuth) pline("The girls feel like kicking your hands bloodily with their sneakers!");
4826 FemaleTrapAlmut += duration;
4827 break;
4828 case 30:
4829 if (!FemtrapActiveRuth) pline("Now you'll be subjected to Julietta's torture, and she'll subject you to random punishments from time to time.");
4830 FemaleTrapJulietta += duration;
4831 break;
4832 case 31:
4833 if (!FemtrapActiveRuth) pline("Oh no, the master of nasty traps is laying out her snares to get you!");
4834 FemaleTrapArabella += duration;
4835 break;
4836 case 32:
4837 if (!FemtrapActiveRuth) pline("You feel that there are women around who really like various high heels.");
4838 FemaleTrapKristin += duration;
4839 break;
4840 case 33:
4841 if (!FemtrapActiveRuth) pline("Oh, it seems that the hussies are on the loose!");
4842 FemaleTrapAnna += duration;
4843 break;
4844 case 34:
4845 if (!FemtrapActiveRuth) pline("You get the feeling that some women are trying to convert you.");
4846 FemaleTrapRuea += duration;
4847 break;
4848 case 35:
4849 if (!FemtrapActiveRuth) pline("Ack! There's birds on the loose, and they want to eat your shoes!");
4850 FemaleTrapDora += duration;
4851 break;
4852 case 36:
4853 if (!FemtrapActiveRuth) pline("You want to endlessly listen to squeaking farting noises.");
4854 FemaleTrapMarike += duration;
4855 break;
4856 case 37:
4857 if (!FemtrapActiveRuth) pline("The power of feminism compels you.");
4858 FemaleTrapJette += duration;
4859 break;
4860 case 38:
4861 if (!FemtrapActiveRuth) pline("Oh my god, you are now afflicted with the life-threatening disease known as anorexia!");
4862 FemaleTrapIna += duration;
4863 break;
4864 case 39:
4865 if (!FemtrapActiveRuth) pline("A heinously evil woman plans to force you to clean the shit from all kinds of female shoes...");
4866 FemaleTrapSing += duration;
4867 break;
4868 case 40:
4869 if (!FemtrapActiveRuth) pline("There's some karate women who want to demonstrate their combat capabilities to you.");
4870 FemaleTrapVictoria += duration;
4871 break;
4872 case 41:
4873 if (!FemtrapActiveRuth) pline("You suddenly feel that the women in this dungeon are quite attractive...");
4874 FemaleTrapMelissa += duration;
4875 break;
4876 case 42:
4877 if (!FemtrapActiveRuth) pline("The women want to slit your legs with razor-sharp high heels! Be afraid of them!");
4878 FemaleTrapAnita += duration;
4879 break;
4880 case 43:
4881 if (!FemtrapActiveRuth) pline("You feel that someone is going to open the zippers of your boots, making you fumble into a heap of dog shit.");
4882 FemaleTrapHenrietta += duration;
4883 break;
4884 case 44:
4885 if (!FemtrapActiveRuth) pline("Oh no, some annoying blonde girl starts to follow you around. Sigh. Why can't you get a clever companion instead?!");
4886 FemaleTrapVerena += duration;
4887 break;
4888 case 45:
4889 if (!FemtrapActiveRuth) pline("It seems that the women are doing athletic exercises.");
4890 FemaleTrapAnnemarie += duration;
4891 break;
4892 case 46:
4893 if (!FemtrapActiveRuth) pline("The girls are planning to attack you with their sweaty socks!");
4894 FemaleTrapJil += duration;
4895 break;
4896 case 47:
4897 if (!FemtrapActiveRuth) pline("Someone's hiding underneath a grave wall, but some of the grave walls have teleporters or cursed calleds underneath, so be careful!");
4898 FemaleTrapJana += duration;
4899 break;
4900 case 48:
4901 if (!FemtrapActiveRuth) pline("Some girls are planning to use their sticky chewing gum as a trap to prevent you from getting away!");
4902 FemaleTrapKatrin += duration;
4903 break;
4904 case 49:
4905 if (!FemtrapActiveRuth) pline("A stringy feminist named Gudrun is challenging you...");
4906 FemaleTrapGudrun += duration;
4907 break;
4908 case 50:
4909 if (!FemtrapActiveRuth) pline("A fearless feminist named Ella is challenging you...");
4910 FemaleTrapElla += duration;
4911 break;
4912 case 51:
4913 if (!FemtrapActiveRuth) pline("Some unfair woman wants to crush you with her block-heeled combat boots!");
4914 FemaleTrapManuela += duration;
4915 break;
4916 case 52:
4917 if (!FemtrapActiveRuth) pline("The girls are going to fart you in the face without emitting any kind of sound.");
4918 FemaleTrapJennifer += duration;
4919 break;
4920 case 53:
4921 if (!FemtrapActiveRuth) pline("You feel like a beautifully thick girl, capable of splitting enemies' skulls with blunt weapons!");
4922 FemaleTrapPatricia += duration;
4923 break;
4924 case 54:
4925 if (!FemtrapActiveRuth) pline("You feel like walking the dyke with your extra thick block heels.");
4926 FemaleTrapAntje += duration;
4927 break;
4928 case 55:
4929 if (!FemtrapActiveRuth) pline("Something tells you that you'd like to visit the public toilet.");
4930 FemaleTrapAntjeX += duration;
4931 break;
4932 case 56:
4933 if (!FemtrapActiveRuth) pline("Those farmer girls plan to use block-heeled lady boots, wooden sandals and scentful sneakers on you!");
4934 FemaleTrapKerstin += duration;
4935 break;
4936 case 57:
4937 if (!FemtrapActiveRuth) pline("Every woman is going to attack you with their clothing.");
4938 FemaleTrapLaura += duration;
4939 break;
4940 case 58:
4941 if (!FemtrapActiveRuth) pline("You are commanded to seek out heaps of dog shit and step into it with your high heels. Something tells you that there are bad consequences if you don't obey this instruction.");
4942 FemaleTrapLarissa += duration;
4943 break;
4944 case 59:
4945 if (!FemtrapActiveRuth) pline("You feel that eating is a sin and should be avoided at all costs, even though that may end up killing you.");
4946 FemaleTrapNora += duration;
4947 break;
4948 case 60:
4949 if (!FemtrapActiveRuth) {
4950 if (flags.female) pline("Ack! You suddenly have to deal with the effects of your menstruational period!");
4951 else pline("Some russian girl decided that you're a very naughty boy, and will continuously bash your head with her high-heeled sandals.");
4953 FemaleTrapNatalia += duration;
4954 break;
4955 case 61:
4956 if (!FemtrapActiveRuth) pline("You might have to fight some particularly powerful woman!");
4957 FemaleTrapSusanne += duration;
4958 break;
4959 case 62:
4960 if (!FemtrapActiveRuth) pline("You're interested in seeing what kind of underwear the girls are wearing.");
4961 FemaleTrapLisa += duration;
4962 break;
4963 case 63:
4964 if (!FemtrapActiveRuth) pline("Watch out, walking over the bridge has a large chance of you stepping into a heap of dog shit unexpectedly!");
4965 FemaleTrapBridghitte += duration;
4966 break;
4967 case 64:
4968 if (!FemtrapActiveRuth) pline("Since it's unfair that you can simply hit women whenever you want to, you can no longer freely do so.");
4969 FemaleTrapJulia += duration;
4970 break;
4971 case 65:
4972 if (!FemtrapActiveRuth) pline("The women are apparently surrounded by a dark aura! Is it some kind of black light, maybe?");
4973 FemaleTrapNicole += duration;
4974 break;
4975 case 66:
4976 if (!FemtrapActiveRuth) pline("Hahahahaha, now the women can just trigger feminism traps at will and when they do, the trap effect in question will be activated for YOU! Hahaha!");
4977 FemaleTrapRita += duration;
4978 break;
4979 case 67:
4980 if (!FemtrapActiveRuth) pline("Those women are gonna hang their worn pants in front of your %s, forcing you to smell them!", body_part(NOSE));
4981 FemaleTrapJanina += duration;
4982 break;
4983 case 68:
4984 if (!FemtrapActiveRuth) pline("You'll have to struggle with feminism for a long time...");
4985 FemaleTrapRosa += (duration * 5);
4986 break;
4987 case 69:
4988 if (!FemtrapActiveRuth) pline("The incredibly cute female platform sandals are looking forward to kicking you in the shins like a little girl.");
4989 FemaleTrapKsenia += duration;
4990 break;
4991 case 70:
4992 if (!FemtrapActiveRuth) pline("You feel that you're gonna fight ladies who wear highly elegant cone-heeled pumps.");
4993 FemaleTrapLydia += duration;
4994 break;
4995 case 71:
4996 if (!FemtrapActiveRuth) pline("Uh-oh, you're not sure that you can escape from the thick women...");
4997 FemaleTrapConny += duration;
4998 break;
4999 case 72:
5000 if (!FemtrapActiveRuth) pline("Some little girl really wants to take a crap while you are nearby.");
5001 FemaleTrapKatia += duration;
5002 break;
5003 case 73:
5004 if (!FemtrapActiveRuth) pline("You feel that some stinking girl is waiting until you're defenseless so that she can fart you into the face without you fighting back!");
5005 FemaleTrapMariya += duration;
5006 break;
5007 case 74:
5008 if (!FemtrapActiveRuth) pline("The females are everywhere, it seems!");
5009 FemaleTrapElise += duration;
5010 break;
5011 case 75:
5012 if (!FemtrapActiveRuth) pline("Somehow, the women have learned to heal their wounds quickly.");
5013 FemaleTrapRonja += duration;
5014 break;
5015 case 76:
5016 if (!FemtrapActiveRuth) pline("You'll have to fight the girls from the Bang Gang as well as Anna's hussies, just like in the old times.");
5017 FemaleTrapAriane += duration;
5018 break;
5019 case 77:
5020 if (!FemtrapActiveRuth) pline("Admit it, you fetishize female footwear, especially if they're block-heeled combat boots with long zippers and fleecy colors.");
5021 FemaleTrapJohanna += duration;
5022 break;
5023 case 78:
5024 if (!FemtrapActiveRuth) pline("All the elegant ladies will produce very tender farting noises that you just cannot resist.");
5025 FemaleTrapInge += duration;
5026 break;
5027 case 79:
5028 /* no message
5029 * "The dark girl has pulled the switch, and now feminism traps will work like nasty traps. Except that this message can never be displayed, because the trap in question works like a nasty trap itself." */
5030 FemaleTrapRuth += duration;
5031 break;
5032 case 80:
5033 if (!FemtrapActiveRuth) pline("Oh, apparently you have to fight some particularly burly women. That's gonna be difficult.");
5034 FemaleTrapMagdalena += duration;
5035 break;
5036 case 81:
5037 if (!FemtrapActiveRuth) pline("It seems the women are strengthening their defenses.");
5038 FemaleTrapMarleen += duration;
5039 break;
5040 case 82:
5041 if (!FemtrapActiveRuth) pline("You become sensitive to the sound of high heels.");
5042 FemaleTrapKlara += duration;
5043 break;
5044 case 83:
5045 if (!FemtrapActiveRuth) pline("Yay, a pretty girl with a long blond bundle starts following you around! She's certainly very nice and will have a lot of fun with you!");
5046 FemaleTrapFriederike += duration;
5047 break;
5048 case 84:
5049 if (!FemtrapActiveRuth) pline("You have to wear your stiletto heels like a model, and if you fall, you have to smile anyway! That's the obligation of a model...");
5050 FemaleTrapNaomi += duration;
5051 break;
5052 case 85:
5053 if (!FemtrapActiveRuth) pline("Uh-oh, the patriarch is coming to take your pretty high heels away. Make sure he doesn't catch you!");
5054 FemaleTrapUte += duration;
5055 break;
5056 case 86:
5057 if (!FemtrapActiveRuth) pline("The sexy ladies are gonna challenge you again and again and again.");
5058 FemaleTrapJasieen += duration;
5059 break;
5060 case 87:
5061 if (!FemtrapActiveRuth) pline("It seems that monsters may spotaneously turn into sexy women, as if there weren't enough of them running around the dungeon anyway.");
5062 FemaleTrapYasaman += duration;
5063 break;
5064 case 88:
5065 if (!FemtrapActiveRuth) pline("Those little girls want to tease you by trying to steal things from your backpack for fun! You certainly know that this 'fun' will happen at your expense...");
5066 FemaleTrapMayBritt += duration;
5067 break;
5068 case 89:
5069 if (!FemtrapActiveRuth) pline("Some dark feminists are coming to the dungeon.");
5070 FemaleTrapNadine += duration;
5071 break;
5072 case 90:
5073 if (!FemtrapActiveRuth) pline("The girl shoes are starting to cheat in an attempt to kick you!");
5074 FemaleTrapLuisa += duration;
5075 break;
5076 case 91:
5077 if (!FemtrapActiveRuth) pline("You'll have to fight a whole lot of women's shoes.");
5078 FemaleTrapIrina += duration;
5079 break;
5080 case 92:
5081 if (!FemtrapActiveRuth) pline("The little girl wants to kick you in the shins and then retreat rapidly so that you can't attack her back!");
5082 FemaleTrapLiselotte += duration;
5083 break;
5084 case 93:
5085 if (!FemtrapActiveRuth) pline("The Hussies are waiting for you on certain dungeon levels, because they have been hired by the Bang Gang bosses.");
5086 FemaleTrapGreta += duration;
5087 break;
5088 case 94:
5089 if (!FemtrapActiveRuth) pline("Don't underestimate the women just because they have a small stature.");
5090 FemaleTrapJane += duration;
5091 break;
5092 case 95:
5093 if (!FemtrapActiveRuth) pline("The Asian girls want to fart you in the face, and if you allow it, they'll be nice to you, but treat them badly and they'll slit your skin with very sharp female fingernails!");
5094 FemaleTrapSueLyn += duration;
5095 break;
5096 case 96:
5097 if (!FemtrapActiveRuth) pline("Watch out, the Bang Gang is considering you a target. They're coming for you, and they have some tricks and traps ready.");
5098 FemaleTrapCharlotte += duration;
5099 break;
5100 case 97:
5101 if (!FemtrapActiveRuth) pline("Careful, the girls may steal your stuff and vanish before your eyes!");
5102 FemaleTrapHannah += duration;
5103 break;
5104 case 98:
5105 if (!FemtrapActiveRuth) pline("Oh no! Apparently the girls and women have prepared a really nasty counterattack to make your life miserable!");
5106 FemaleTrapLittleMarie += duration;
5107 break;
5108 case 99:
5109 if (!FemtrapActiveRuth) pline("The girls learned takewondo, and will knock the crap out of you with their female sneakers.");
5110 FemaleTrapTanja += duration;
5111 break;
5112 case 100:
5113 if (!FemtrapActiveRuth) pline("Seems that the girls will call for help if you attack them.");
5114 FemaleTrapSonja += duration;
5115 break;
5116 case 101:
5117 if (!FemtrapActiveRuth) pline("Ugh, the girls and women are really going to beguile you with the horrible odor of their perfume!");
5118 FemaleTrapRhea += duration;
5119 break;
5120 case 102:
5121 if (!FemtrapActiveRuth) pline("You look forward to being attacked by treaded block heel boots while you're bound to a stick.");
5122 FemaleTrapLara += duration;
5123 break;
5124 case 103:
5125 if (!FemtrapActiveRuth) pline("Wear Sabrina's platform boots! Now! You just know that if you don't, some angry women will try to kill you.");
5126 FemaleTrapSabrina += duration;
5127 break;
5131 void
5132 randomnastytrapeffect(duration, blackngvar)
5133 int duration, blackngvar;
5135 if (YouAreScrewedEternally) duration *= 20;
5136 if (LongScrewupXtra) duration *= 10;
5138 switch (rnd(285)) {
5140 case 1: RMBLoss += rnz(duration); break;
5141 case 2: NoDropProblem += rnz(duration); break;
5142 case 3: DSTWProblem += rnz(duration); break;
5143 case 4: StatusTrapProblem += rnz(duration);
5144 if (HConfusion) set_itimeout(&HeavyConfusion, HConfusion);
5145 if (HStun) set_itimeout(&HeavyStunned, HStun);
5146 if (HNumbed) set_itimeout(&HeavyNumbed, HNumbed);
5147 if (HFeared) set_itimeout(&HeavyFeared, HFeared);
5148 if (HFrozen) set_itimeout(&HeavyFrozen, HFrozen);
5149 if (HBurned) set_itimeout(&HeavyBurned, HBurned);
5150 if (HDimmed) set_itimeout(&HeavyDimmed, HDimmed);
5151 if (Blinded) set_itimeout(&HeavyBlind, Blinded);
5152 if (HHallucination) set_itimeout(&HeavyHallu, HHallucination);
5153 break;
5154 case 5: Superscroller += rnz(duration * (Role_if(PM_GRADUATE) ? 2 : Role_if(PM_GEEK) ? 5 : 10));
5155 (void) makemon(&mons[PM_SCROLLER_MASTER], 0, 0, NO_MINVENT);
5156 break;
5157 case 6: MenuBug += rnz(duration); break;
5158 case 7: FreeHandLoss += rnz(duration); break;
5159 case 8: Unidentify += rnz(duration); break;
5160 case 9: Thirst += rnz(duration); break;
5161 case 10: LuckLoss += rnz(duration); break;
5162 case 11: ShadesOfGrey += rnz(duration); break;
5163 case 12: FaintActive += rnz(duration); break;
5164 case 13: Itemcursing += rnz(duration); break;
5165 case 14: DifficultyIncreased += rnz(duration); break;
5166 case 15: Deafness += rnz(duration); flags.soundok = 0; break;
5167 case 16: CasterProblem += rnz(duration); break;
5168 case 17: WeaknessProblem += rnz(duration); break;
5169 case 18: RotThirteen += rnz(duration); break;
5170 case 19: BishopGridbug += rnz(duration); break;
5171 case 20: UninformationProblem += rnz(duration); break;
5172 case 21: StairsProblem += rnz(duration); break;
5173 case 22: AlignmentProblem += rnz(duration); break;
5174 case 23: ConfusionProblem += rnz(duration); break;
5175 case 24: SpeedBug += rnz(duration); break;
5176 case 25: DisplayLoss += rnz(duration); break;
5177 case 26: SpellLoss += rnz(duration); break;
5178 case 27: YellowSpells += rnz(duration); break;
5179 case 28: AutoDestruct += rnz(duration); break;
5180 case 29: MemoryLoss += rnz(duration); break;
5181 case 30: InventoryLoss += rnz(duration); break;
5182 case 31: {
5184 if (BlackNgWalls) break;
5186 BlackNgWalls = blackngvar;
5187 if (BlackNgWalls < 100) BlackNgWalls = 100;
5188 (void) makemon(&mons[PM_BLACKY], 0, 0, NO_MM_FLAGS);
5189 break;
5191 case 32: IntrinsicLossProblem += rnz(duration); break;
5192 case 33: BloodLossProblem += rnz(duration); break;
5193 case 34: BadEffectProblem += rnz(duration); break;
5194 case 35: TrapCreationProblem += rnz(duration); break;
5195 case 36: AutomaticVulnerabilitiy += rnz(duration); break;
5196 case 37: TeleportingItems += rnz(duration); break;
5197 case 38: NastinessProblem += rnz(duration); break;
5198 case 39: CaptchaProblem += rnz(duration); break;
5199 case 40: FarlookProblem += rnz(duration); break;
5200 case 41: RespawnProblem += rnz(duration); break;
5202 case 42: RecurringAmnesia += rnz(duration); break;
5203 case 43: BigscriptEffect += rnz(duration); break;
5204 case 44: {
5205 BankTrapEffect += rnz(duration);
5206 if (u.bankcashlimit == 0) u.bankcashlimit = rnz(1000 * (monster_difficulty() + 1 + (long)mvitals[PM_ARABELLA_THE_MONEY_THIEF].born));
5207 u.bankcashamount += u.ugold;
5208 u.ugold = 0;
5210 break;
5212 case 45: MapTrapEffect += rnz(duration); break;
5213 case 46: TechTrapEffect += rnz(duration); break;
5214 case 47: RecurringDisenchant += rnz(duration); break;
5215 case 48: verisiertEffect += rnz(duration); break;
5216 case 49: ChaosTerrain += rnz(duration); break;
5217 case 50: Muteness += rnz(duration); break;
5218 case 51: EngravingDoesntWork += rnz(duration); break;
5219 case 52: MagicDeviceEffect += rnz(duration); break;
5220 case 53: BookTrapEffect += rnz(duration); break;
5221 case 54: LevelTrapEffect += rnz(duration); break;
5222 case 55: QuizTrapEffect += rnz(duration); break;
5223 case 56: FastMetabolismEffect += rnz(duration); break;
5224 case 57: NoReturnEffect += rnz(duration); break;
5225 case 58: AlwaysEgotypeMonsters += rnz(duration); break;
5226 case 59: TimeGoesByFaster += rnz(duration); break;
5227 case 60: FoodIsAlwaysRotten += rnz(duration); break;
5228 case 61: AllSkillsUnskilled += rnz(duration); break;
5229 case 62: AllStatsAreLower += rnz(duration); break;
5230 case 63: PlayerCannotTrainSkills += rnz(duration); break;
5231 case 64: PlayerCannotExerciseStats += rnz(duration); break;
5232 case 65: TurnLimitation += rnz(duration); break;
5233 case 66: WeakSight += rnz(duration); break;
5234 case 67: RandomMessages += rnz(duration); break;
5236 case 68: Desecration += rnz(duration); break;
5237 case 69: StarvationEffect += rnz(duration); break;
5238 case 70: NoDropsEffect += rnz(duration); break;
5239 case 71: LowEffects += rnz(duration); break;
5240 case 72: InvisibleTrapsEffect += rnz(duration); break;
5241 case 73: GhostWorld += rnz(duration); break;
5242 case 74: Dehydration += rnz(duration); break;
5243 case 75: HateTrapEffect += rnz(duration); break;
5244 case 76: TotterTrapEffect += rnz(duration); break;
5245 case 77: Nonintrinsics += rnz(duration); break;
5246 case 78: Dropcurses += rnz(duration); break;
5247 case 79: Nakedness += rnz(duration); break;
5248 case 80: Antileveling += rnz(duration); break;
5249 case 81: ItemStealingEffect += rnz(duration); break;
5250 case 82: Rebellions += rnz(duration); break;
5251 case 83: CrapEffect += rnz(duration); break;
5252 case 84: ProjectilesMisfire += rnz(duration); break;
5253 case 85: WallTrapping += rnz(duration); break;
5254 case 86: DisconnectedStairs += rnz(duration); break;
5255 case 87: InterfaceScrewed += rnz(duration); break;
5256 case 88: Bossfights += rnz(duration); break;
5257 case 89: EntireLevelMode += rnz(duration); break;
5258 case 90: BonesLevelChange += rnz(duration); break;
5259 case 91: AutocursingEquipment += rnz(duration); break;
5260 case 92: HighlevelStatus += rnz(duration); break;
5261 case 93: SpellForgetting += rnz(duration); break;
5262 case 94: SoundEffectBug += rnz(duration); break;
5263 case 95: TimerunBug += rnz(duration); break;
5264 case 96: LootcutBug += rnz(duration); break;
5265 case 97: MonsterSpeedBug += rnz(duration); break;
5266 case 98: ScalingBug += rnz(duration); break;
5267 case 99: EnmityBug += rnz(duration); break;
5268 case 100: WhiteSpells += rnz(duration); break;
5269 case 101: CompleteGraySpells += rnz(duration); break;
5270 case 102: QuasarVision += rnz(duration); break;
5271 case 103: MommaBugEffect += rnz(duration); break;
5272 case 104: HorrorBugEffect += rnz(duration); break;
5273 case 105: ArtificerBug += rnz(duration); break;
5274 case 106: WereformBug += rnz(duration); break;
5275 case 107: NonprayerBug += rnz(duration); break;
5276 case 108: EvilPatchEffect += rnz(duration); break;
5277 case 109: HardModeEffect += rnz(duration); break;
5278 case 110: SecretAttackBug += rnz(duration); break;
5279 case 111: EaterBugEffect += rnz(duration); break;
5280 case 112: CovetousnessBug += rnz(duration); break;
5281 case 113: NotSeenBug += rnz(duration); break;
5282 case 114: DarkModeBug += rnz(duration); break;
5283 case 115: AntisearchEffect += rnz(duration); break;
5284 case 116: HomicideEffect += rnz(duration); break;
5285 case 117: NastynationBug += rnz(duration); break;
5286 case 118: WakeupCallBug += rnz(duration); break;
5287 case 119: GrayoutBug += rnz(duration); break;
5288 case 120: GrayCenterBug += rnz(duration); break;
5289 case 121: CheckerboardBug += rnz(duration); break;
5290 case 122: ClockwiseSpinBug += rnz(duration); break;
5291 case 123: CounterclockwiseSpin += rnz(duration); break;
5292 case 124: LagBugEffect += rnz(duration); break;
5293 case 125: BlesscurseEffect += rnz(duration); break;
5294 case 126: DeLightBug += rnz(duration); break;
5295 case 127: DischargeBug += rnz(duration); break;
5296 case 128: TrashingBugEffect += rnz(duration); break;
5297 case 129: FilteringBug += rnz(duration); break;
5298 case 130: DeformattingBug += rnz(duration); break;
5299 case 131: FlickerStripBug += rnz(duration); break;
5300 case 132: UndressingEffect += rnz(duration); break;
5301 case 133: Hyperbluewalls += rnz(duration); break;
5302 case 134: NoliteBug += rnz(duration); break;
5303 case 135: ParanoiaBugEffect += rnz(duration); break;
5304 case 136: FleecescriptBug += rnz(duration); break;
5305 case 137: InterruptEffect += rnz(duration); break;
5306 case 138: DustbinBug += rnz(duration); break;
5307 case 139: ManaBatteryBug += rnz(duration); break;
5308 case 140: Monsterfingers += rnz(duration); break;
5309 case 141: MiscastBug += rnz(duration); break;
5310 case 142: MessageSuppression += rnz(duration); break;
5311 case 143: StuckAnnouncement += rnz(duration); break;
5312 case 144: BloodthirstyEffect += rnz(duration); break;
5313 case 145: MaximumDamageBug += rnz(duration); break;
5314 case 146: LatencyBugEffect += rnz(duration); break;
5315 case 147: StarlitBug += rnz(duration); break;
5316 case 148: KnowledgeBug += rnz(duration); break;
5317 case 149: HighscoreBug += rnz(duration); break;
5318 case 150: PinkSpells += rnz(duration); break;
5319 case 151: GreenSpells += rnz(duration); break;
5320 case 152: EvencoreEffect += rnz(duration); break;
5321 case 153: UnderlayerBug += rnz(duration); break;
5322 case 154: DamageMeterBug += rnz(duration); break;
5323 case 155: ArbitraryWeightBug += rnz(duration); break;
5324 case 156: FuckedInfoBug += rnz(duration); break;
5325 case 157: BlackSpells += rnz(duration); break;
5326 case 158: CyanSpells += rnz(duration); break;
5327 case 159: HeapEffectBug += rnz(duration); break;
5328 case 160: BlueSpells += rnz(duration); break;
5329 case 161: TronEffect += rnz(duration); break;
5330 case 162: RedSpells += rnz(duration); break;
5331 case 163: TooHeavyEffect += rnz(duration); break;
5332 case 164: ElongationBug += rnz(duration); break;
5333 case 165: WrapoverEffect += rnz(duration); break;
5334 case 166: DestructionEffect += rnz(duration); break;
5335 case 167: MeleePrefixBug += rnz(duration); break;
5336 case 168: AutomoreBug += rnz(duration); break;
5337 case 169: UnfairAttackBug += rnz(duration); break;
5338 case 170: OrangeSpells += rnz(duration); break;
5339 case 171: VioletSpells += rnz(duration); break;
5340 case 172: LongingEffect += rnz(duration); break;
5341 case 173: CursedParts += rnz(duration); break;
5342 case 174: Quaversal += rnz(duration); break;
5343 case 175: AppearanceShuffling += rnz(duration); break;
5344 case 176: BrownSpells += rnz(duration); break;
5345 case 177: Choicelessness += rnz(duration); break;
5346 case 178: Goldspells += rnz(duration); break;
5347 case 179: Deprovement += rnz(duration); break;
5348 case 180: InitializationFail += rnz(duration); break;
5349 case 181: GushlushEffect += rnz(duration); break;
5350 case 182: SoiltypeEffect += rnz(duration); break;
5351 case 183: DangerousTerrains += rnz(duration); break;
5352 case 184: FalloutEffect += rnz(duration); break;
5353 case 185: MojibakeEffect += rnz(duration); break;
5354 case 186: GravationEffect += rnz(duration); break;
5355 case 187: UncalledEffect += rnz(duration); break;
5356 case 188: ExplodingDiceEffect += rnz(duration); break;
5357 case 189: PermacurseEffect += rnz(duration); break;
5358 case 190: ShroudedIdentity += rnz(duration); break;
5359 case 191: FeelerGauges += rnz(duration); break;
5360 case 192: LongScrewup += rnz(duration * 20); break;
5361 case 193: WingYellowChange += rnz(duration); break;
5362 case 194: LifeSavingBug += rnz(duration); break;
5363 case 195: CurseuseEffect += rnz(duration); break;
5364 case 196: CutNutritionEffect += rnz(duration); break;
5365 case 197: SkillLossEffect += rnz(duration); break;
5366 case 198: AutopilotEffect += rnz(duration); break;
5367 case 199: MysteriousForceActive += rnz(duration); break;
5368 case 200: MonsterGlyphChange += rnz(duration); break;
5369 case 201: ChangingDirectives += rnz(duration); break;
5370 case 202: ContainerKaboom += rnz(duration); break;
5371 case 203: StealDegrading += rnz(duration); break;
5372 case 204: LeftInventoryBug += rnz(duration); break;
5373 case 205: FluctuatingSpeed += rnz(duration); break;
5374 case 206: TarmuStrokingNora += rnz(duration); break;
5375 case 207: FailureEffects += rnz(duration); break;
5376 case 208: BrightCyanSpells += rnz(duration); break;
5377 case 209: FrequentationSpawns += rnz(duration); break;
5378 case 210: PetAIScrewed += rnz(duration); break;
5379 case 211: SatanEffect += rnz(duration); break;
5380 case 212: RememberanceEffect += rnz(duration); break;
5381 case 213: PokelieEffect += rnz(duration); break;
5382 case 214: AlwaysAutopickup += rnz(duration); break;
5383 case 215: DywypiProblem += rnz(duration); break;
5384 case 216: SilverSpells += rnz(duration); break;
5385 case 217: MetalSpells += rnz(duration); break;
5386 case 218: PlatinumSpells += rnz(duration); break;
5387 case 219: ManlerEffect += rnz(duration); break;
5388 case 220: DoorningEffect += rnz(duration); break;
5389 case 221: NownsibleEffect += rnz(duration); break;
5390 case 222: ElmStreetEffect += rnz(duration); break;
5391 case 223: MonnoiseEffect += rnz(duration); break;
5392 case 224: RangCallEffect += rnz(duration); break;
5393 case 225: RecurringSpellLoss += rnz(duration); break;
5394 case 226: AntitrainingEffect += rnz(duration); break;
5395 case 227: TechoutBug += rnz(duration); break;
5396 case 228: StatDecay += rnz(duration); break;
5397 case 229: Movemork += rnz(duration); break;
5398 case 230: BadPartBug += rnz(duration); break;
5399 case 231: CompletelyBadPartBug += rnz(duration); break;
5400 case 232: EvilVariantActive += rnz(duration); break;
5401 case 233: SanityTrebleEffect += rnz(duration); break;
5402 case 234: StatDecreaseBug += rnz(duration); break;
5403 case 235: SimeoutBug += rnz(duration); break;
5404 case 236: GiantExplorerBug += rnz(duration); break;
5405 case 237: YawmBug += rnz(duration); break;
5406 case 238: TrapwarpingBug += rnz(duration); break;
5407 case 239: EnthuEffect += rnz(duration); break;
5408 case 240: MikraEffect += rnz(duration); break;
5409 case 241: GotsTooGoodEffect += rnz(duration); break;
5410 case 242: NoFunWallsEffect += rnz(duration); break;
5411 case 243: CradleChaosEffect += rnz(duration); break;
5412 case 244: TezEffect += rnz(duration); break;
5413 case 245: KillerRoomEffect += rnz(duration); break;
5414 case 246: ReallyBadTrapEffect += rnz(duration); break;
5415 case 247: CovidTrapEffect += rnz(duration); break;
5416 case 248: ArtiblastEffect += rnz(duration); break;
5417 case 249: RepeatingNastycurseEffect += rnz(duration); break;
5418 case 250: RealLieEffect += rnz(duration); break;
5419 case 251: EscapePastEffect += rnz(duration); break;
5420 case 252: PethateEffect += rnz(duration); break;
5421 case 253: PetLashoutEffect += rnz(duration); break;
5422 case 254: PetstarveEffect += rnz(duration); break;
5423 case 255: PetscrewEffect += rnz(duration); break;
5424 case 256: TechLossEffect += rnz(duration); break;
5425 case 257: ProoflossEffect += rnz(duration); break;
5426 case 258: UnInvisEffect += rnz(duration); break;
5427 case 259: DetectationEffect += rnz(duration); break;
5428 case 260: OptionBugEffect += rnz(duration); break;
5429 case 261: MiscolorEffect += rnz(duration); break;
5430 case 262: OneRainbowEffect += rnz(duration); break;
5431 case 263: ColorshiftEffect += rnz(duration); break;
5432 case 264: TopLineEffect += rnz(duration); break;
5433 case 265: CapsBugEffect += rnz(duration); break;
5434 case 266: UnKnowledgeEffect += rnz(duration); break;
5435 case 267: DarkhanceEffect += rnz(duration); break;
5436 case 268: DschueueuetEffect += rnz(duration); break;
5437 case 269: NopeskillEffect += rnz(duration); break;
5438 case 270: FuckfuckfuckEffect += rnz(duration); break;
5439 case 271: EpviEffect += rnz(duration); break;
5440 case 272: AefdeEffect += rnz(duration); break;
5441 case 273: MeanBurdenEffect += rnz(duration); break;
5442 case 274: CarrcapEffect += rnz(duration); break;
5443 case 275: UmengEffect += rnz(duration); break;
5444 case 276: MulchBug += rnz(duration); break;
5445 case 277: SpellCooldownBug += rnz(duration); break;
5446 case 278: HaveAPinBug += rnz(duration); break;
5447 case 279: TurbodullBug += rnz(duration); break;
5448 case 280: InaccuracyBug += rnz(duration); break;
5449 case 281: InventorySizeBug += rnz(duration); break;
5450 case 282: CostlyFailureBug += rnz(duration); break;
5451 case 283: ReddamBug += rnz(duration); break;
5452 case 284: RedincBug += rnz(duration); break;
5453 case 285: MonsterMultishotBug += rnz(duration); break;
5459 void
5460 specificnastytrapeffect(efftype, nastyduration, blackngvar)
5461 int efftype, nastyduration, blackngvar;
5463 switch (efftype) {
5465 case 1: RMBLoss += rnz(nastyduration); break;
5466 case 2: NoDropProblem += rnz(nastyduration); break;
5467 case 3: DSTWProblem += rnz(nastyduration); break;
5468 case 4: StatusTrapProblem += rnz(nastyduration);
5469 if (HConfusion) set_itimeout(&HeavyConfusion, HConfusion);
5470 if (HStun) set_itimeout(&HeavyStunned, HStun);
5471 if (HNumbed) set_itimeout(&HeavyNumbed, HNumbed);
5472 if (HFeared) set_itimeout(&HeavyFeared, HFeared);
5473 if (HFrozen) set_itimeout(&HeavyFrozen, HFrozen);
5474 if (HBurned) set_itimeout(&HeavyBurned, HBurned);
5475 if (HDimmed) set_itimeout(&HeavyDimmed, HDimmed);
5476 if (Blinded) set_itimeout(&HeavyBlind, Blinded);
5477 if (HHallucination) set_itimeout(&HeavyHallu, HHallucination);
5478 break;
5479 case 5: Superscroller += rnz(nastyduration * (Role_if(PM_GRADUATE) ? 2 : Role_if(PM_GEEK) ? 5 : 10) );
5480 (void) makemon(&mons[PM_SCROLLER_MASTER], 0, 0, NO_MINVENT);
5481 break;
5482 case 6: MenuBug += rnz(nastyduration); break;
5483 case 7: FreeHandLoss += rnz(nastyduration); break;
5484 case 8: Unidentify += rnz(nastyduration); break;
5485 case 9: Thirst += rnz(nastyduration); break;
5486 case 10: LuckLoss += rnz(nastyduration); break;
5487 case 11: ShadesOfGrey += rnz(nastyduration); break;
5488 case 12: FaintActive += rnz(nastyduration); break;
5489 case 13: Itemcursing += rnz(nastyduration); break;
5490 case 14: DifficultyIncreased += rnz(nastyduration); break;
5491 case 15: Deafness += rnz(nastyduration); flags.soundok = 0; break;
5492 case 16: CasterProblem += rnz(nastyduration); break;
5493 case 17: WeaknessProblem += rnz(nastyduration); break;
5494 case 18: RotThirteen += rnz(nastyduration); break;
5495 case 19: BishopGridbug += rnz(nastyduration); break;
5496 case 20: UninformationProblem += rnz(nastyduration); break;
5497 case 21: StairsProblem += rnz(nastyduration); break;
5498 case 22: AlignmentProblem += rnz(nastyduration); break;
5499 case 23: ConfusionProblem += rnz(nastyduration); break;
5500 case 24: SpeedBug += rnz(nastyduration); break;
5501 case 25: DisplayLoss += rnz(nastyduration); break;
5502 case 26: SpellLoss += rnz(nastyduration); break;
5503 case 27: YellowSpells += rnz(nastyduration); break;
5504 case 28: AutoDestruct += rnz(nastyduration); break;
5505 case 29: MemoryLoss += rnz(nastyduration); break;
5506 case 30: InventoryLoss += rnz(nastyduration); break;
5507 case 31: {
5509 if (BlackNgWalls) break;
5511 BlackNgWalls = blackngvar;
5512 if (BlackNgWalls < 100) BlackNgWalls = 100;
5513 (void) makemon(&mons[PM_BLACKY], 0, 0, NO_MM_FLAGS);
5514 break;
5516 case 32: IntrinsicLossProblem += rnz(nastyduration); break;
5517 case 33: BloodLossProblem += rnz(nastyduration); break;
5518 case 34: BadEffectProblem += rnz(nastyduration); break;
5519 case 35: TrapCreationProblem += rnz(nastyduration); break;
5520 case 36: AutomaticVulnerabilitiy += rnz(nastyduration); break;
5521 case 37: TeleportingItems += rnz(nastyduration); break;
5522 case 38: NastinessProblem += rnz(nastyduration); break;
5523 case 39: CaptchaProblem += rnz(nastyduration); break;
5524 case 40: FarlookProblem += rnz(nastyduration); break;
5525 case 41: RespawnProblem += rnz(nastyduration); break;
5526 case 42: RecurringAmnesia += rnz(nastyduration); break;
5527 case 43: BigscriptEffect += rnz(nastyduration); break;
5528 case 44: {
5529 BankTrapEffect += rnz(nastyduration);
5530 if (u.bankcashlimit == 0) u.bankcashlimit = rnz(1000 * (monster_difficulty() + 1 + (long)mvitals[PM_ARABELLA_THE_MONEY_THIEF].born));
5531 u.bankcashamount += u.ugold;
5532 u.ugold = 0;
5534 break;
5536 case 45: MapTrapEffect += rnz(nastyduration); break;
5537 case 46: TechTrapEffect += rnz(nastyduration); break;
5538 case 47: RecurringDisenchant += rnz(nastyduration); break;
5539 case 48: verisiertEffect += rnz(nastyduration); break;
5540 case 49: ChaosTerrain += rnz(nastyduration); break;
5541 case 50: Muteness += rnz(nastyduration); break;
5542 case 51: EngravingDoesntWork += rnz(nastyduration); break;
5543 case 52: MagicDeviceEffect += rnz(nastyduration); break;
5544 case 53: BookTrapEffect += rnz(nastyduration); break;
5545 case 54: LevelTrapEffect += rnz(nastyduration); break;
5546 case 55: QuizTrapEffect += rnz(nastyduration); break;
5547 case 56: FastMetabolismEffect += rnz(nastyduration); break;
5548 case 57: NoReturnEffect += rnz(nastyduration); break;
5549 case 58: AlwaysEgotypeMonsters += rnz(nastyduration); break;
5550 case 59: TimeGoesByFaster += rnz(nastyduration); break;
5551 case 60: FoodIsAlwaysRotten += rnz(nastyduration); break;
5552 case 61: AllSkillsUnskilled += rnz(nastyduration); break;
5553 case 62: AllStatsAreLower += rnz(nastyduration); break;
5554 case 63: PlayerCannotTrainSkills += rnz(nastyduration); break;
5555 case 64: PlayerCannotExerciseStats += rnz(nastyduration); break;
5556 case 65: TurnLimitation += rnz(nastyduration); break;
5557 case 66: WeakSight += rnz(nastyduration); break;
5558 case 67: RandomMessages += rnz(nastyduration); break;
5560 case 68: Desecration += rnz(nastyduration); break;
5561 case 69: StarvationEffect += rnz(nastyduration); break;
5562 case 70: NoDropsEffect += rnz(nastyduration); break;
5563 case 71: LowEffects += rnz(nastyduration); break;
5564 case 72: InvisibleTrapsEffect += rnz(nastyduration); break;
5565 case 73: GhostWorld += rnz(nastyduration); break;
5566 case 74: Dehydration += rnz(nastyduration); break;
5567 case 75: HateTrapEffect += rnz(nastyduration); break;
5568 case 76: TotterTrapEffect += rnz(nastyduration); break;
5569 case 77: Nonintrinsics += rnz(nastyduration); break;
5570 case 78: Dropcurses += rnz(nastyduration); break;
5571 case 79: Nakedness += rnz(nastyduration); break;
5572 case 80: Antileveling += rnz(nastyduration); break;
5573 case 81: ItemStealingEffect += rnz(nastyduration); break;
5574 case 82: Rebellions += rnz(nastyduration); break;
5575 case 83: CrapEffect += rnz(nastyduration); break;
5576 case 84: ProjectilesMisfire += rnz(nastyduration); break;
5577 case 85: WallTrapping += rnz(nastyduration); break;
5578 case 86: DisconnectedStairs += rnz(nastyduration); break;
5579 case 87: InterfaceScrewed += rnz(nastyduration); break;
5580 case 88: Bossfights += rnz(nastyduration); break;
5581 case 89: EntireLevelMode += rnz(nastyduration); break;
5582 case 90: BonesLevelChange += rnz(nastyduration); break;
5583 case 91: AutocursingEquipment += rnz(nastyduration); break;
5584 case 92: HighlevelStatus += rnz(nastyduration); break;
5585 case 93: SpellForgetting += rnz(nastyduration); break;
5586 case 94: SoundEffectBug += rnz(nastyduration); break;
5587 case 95: TimerunBug += rnz(nastyduration); break;
5588 case 96: LootcutBug += rnz(nastyduration); break;
5589 case 97: MonsterSpeedBug += rnz(nastyduration); break;
5590 case 98: ScalingBug += rnz(nastyduration); break;
5591 case 99: EnmityBug += rnz(nastyduration); break;
5592 case 100: WhiteSpells += rnz(nastyduration); break;
5593 case 101: CompleteGraySpells += rnz(nastyduration); break;
5594 case 102: QuasarVision += rnz(nastyduration); break;
5595 case 103: MommaBugEffect += rnz(nastyduration); break;
5596 case 104: HorrorBugEffect += rnz(nastyduration); break;
5597 case 105: ArtificerBug += rnz(nastyduration); break;
5598 case 106: WereformBug += rnz(nastyduration); break;
5599 case 107: NonprayerBug += rnz(nastyduration); break;
5600 case 108: EvilPatchEffect += rnz(nastyduration); break;
5601 case 109: HardModeEffect += rnz(nastyduration); break;
5602 case 110: SecretAttackBug += rnz(nastyduration); break;
5603 case 111: EaterBugEffect += rnz(nastyduration); break;
5604 case 112: CovetousnessBug += rnz(nastyduration); break;
5605 case 113: NotSeenBug += rnz(nastyduration); break;
5606 case 114: DarkModeBug += rnz(nastyduration); break;
5607 case 115: AntisearchEffect += rnz(nastyduration); break;
5608 case 116: HomicideEffect += rnz(nastyduration); break;
5609 case 117: NastynationBug += rnz(nastyduration); break;
5610 case 118: WakeupCallBug += rnz(nastyduration); break;
5611 case 119: GrayoutBug += rnz(nastyduration); break;
5612 case 120: GrayCenterBug += rnz(nastyduration); break;
5613 case 121: CheckerboardBug += rnz(nastyduration); break;
5614 case 122: ClockwiseSpinBug += rnz(nastyduration); break;
5615 case 123: CounterclockwiseSpin += rnz(nastyduration); break;
5616 case 124: LagBugEffect += rnz(nastyduration); break;
5617 case 125: BlesscurseEffect += rnz(nastyduration); break;
5618 case 126: DeLightBug += rnz(nastyduration); break;
5619 case 127: DischargeBug += rnz(nastyduration); break;
5620 case 128: TrashingBugEffect += rnz(nastyduration); break;
5621 case 129: FilteringBug += rnz(nastyduration); break;
5622 case 130: DeformattingBug += rnz(nastyduration); break;
5623 case 131: FlickerStripBug += rnz(nastyduration); break;
5624 case 132: UndressingEffect += rnz(nastyduration); break;
5625 case 133: Hyperbluewalls += rnz(nastyduration); break;
5626 case 134: NoliteBug += rnz(nastyduration); break;
5627 case 135: ParanoiaBugEffect += rnz(nastyduration); break;
5628 case 136: FleecescriptBug += rnz(nastyduration); break;
5629 case 137: InterruptEffect += rnz(nastyduration); break;
5630 case 138: DustbinBug += rnz(nastyduration); break;
5631 case 139: ManaBatteryBug += rnz(nastyduration); break;
5632 case 140: Monsterfingers += rnz(nastyduration); break;
5633 case 141: MiscastBug += rnz(nastyduration); break;
5634 case 142: MessageSuppression += rnz(nastyduration); break;
5635 case 143: StuckAnnouncement += rnz(nastyduration); break;
5636 case 144: BloodthirstyEffect += rnz(nastyduration); break;
5637 case 145: MaximumDamageBug += rnz(nastyduration); break;
5638 case 146: LatencyBugEffect += rnz(nastyduration); break;
5639 case 147: StarlitBug += rnz(nastyduration); break;
5640 case 148: KnowledgeBug += rnz(nastyduration); break;
5641 case 149: HighscoreBug += rnz(nastyduration); break;
5642 case 150: PinkSpells += rnz(nastyduration); break;
5643 case 151: GreenSpells += rnz(nastyduration); break;
5644 case 152: EvencoreEffect += rnz(nastyduration); break;
5645 case 153: UnderlayerBug += rnz(nastyduration); break;
5646 case 154: DamageMeterBug += rnz(nastyduration); break;
5647 case 155: ArbitraryWeightBug += rnz(nastyduration); break;
5648 case 156: FuckedInfoBug += rnz(nastyduration); break;
5649 case 157: BlackSpells += rnz(nastyduration); break;
5650 case 158: CyanSpells += rnz(nastyduration); break;
5651 case 159: HeapEffectBug += rnz(nastyduration); break;
5652 case 160: BlueSpells += rnz(nastyduration); break;
5653 case 161: TronEffect += rnz(nastyduration); break;
5654 case 162: RedSpells += rnz(nastyduration); break;
5655 case 163: TooHeavyEffect += rnz(nastyduration); break;
5656 case 164: ElongationBug += rnz(nastyduration); break;
5657 case 165: WrapoverEffect += rnz(nastyduration); break;
5658 case 166: DestructionEffect += rnz(nastyduration); break;
5659 case 167: MeleePrefixBug += rnz(nastyduration); break;
5660 case 168: AutomoreBug += rnz(nastyduration); break;
5661 case 169: UnfairAttackBug += rnz(nastyduration); break;
5662 case 170: OrangeSpells += rnz(nastyduration); break;
5663 case 171: VioletSpells += rnz(nastyduration); break;
5664 case 172: LongingEffect += rnz(nastyduration); break;
5665 case 173: CursedParts += rnz(nastyduration); break;
5666 case 174: Quaversal += rnz(nastyduration); break;
5667 case 175: AppearanceShuffling += rnz(nastyduration); break;
5668 case 176: BrownSpells += rnz(nastyduration); break;
5669 case 177: Choicelessness += rnz(nastyduration); break;
5670 case 178: Goldspells += rnz(nastyduration); break;
5671 case 179: Deprovement += rnz(nastyduration); break;
5672 case 180: InitializationFail += rnz(nastyduration); break;
5673 case 181: GushlushEffect += rnz(nastyduration); break;
5674 case 182: SoiltypeEffect += rnz(nastyduration); break;
5675 case 183: DangerousTerrains += rnz(nastyduration); break;
5676 case 184: FalloutEffect += rnz(nastyduration); break;
5677 case 185: MojibakeEffect += rnz(nastyduration); break;
5678 case 186: GravationEffect += rnz(nastyduration); break;
5679 case 187: UncalledEffect += rnz(nastyduration); break;
5680 case 188: ExplodingDiceEffect += rnz(nastyduration); break;
5681 case 189: PermacurseEffect += rnz(nastyduration); break;
5682 case 190: ShroudedIdentity += rnz(nastyduration); break;
5683 case 191: FeelerGauges += rnz(nastyduration); break;
5684 case 192: LongScrewup += rnz(nastyduration * 20); break;
5685 case 193: WingYellowChange += rnz(nastyduration); break;
5686 case 194: LifeSavingBug += rnz(nastyduration); break;
5687 case 195: CurseuseEffect += rnz(nastyduration); break;
5688 case 196: CutNutritionEffect += rnz(nastyduration); break;
5689 case 197: SkillLossEffect += rnz(nastyduration); break;
5690 case 198: AutopilotEffect += rnz(nastyduration); break;
5691 case 199: MysteriousForceActive += rnz(nastyduration); break;
5692 case 200: MonsterGlyphChange += rnz(nastyduration); break;
5693 case 201: ChangingDirectives += rnz(nastyduration); break;
5694 case 202: ContainerKaboom += rnz(nastyduration); break;
5695 case 203: StealDegrading += rnz(nastyduration); break;
5696 case 204: LeftInventoryBug += rnz(nastyduration); break;
5697 case 205: FluctuatingSpeed += rnz(nastyduration); break;
5698 case 206: TarmuStrokingNora += rnz(nastyduration); break;
5699 case 207: FailureEffects += rnz(nastyduration); break;
5700 case 208: BrightCyanSpells += rnz(nastyduration); break;
5701 case 209: FrequentationSpawns += rnz(nastyduration); break;
5702 case 210: PetAIScrewed += rnz(nastyduration); break;
5703 case 211: SatanEffect += rnz(nastyduration); break;
5704 case 212: RememberanceEffect += rnz(nastyduration); break;
5705 case 213: PokelieEffect += rnz(nastyduration); break;
5706 case 214: AlwaysAutopickup += rnz(nastyduration); break;
5707 case 215: DywypiProblem += rnz(nastyduration); break;
5708 case 216: SilverSpells += rnz(nastyduration); break;
5709 case 217: MetalSpells += rnz(nastyduration); break;
5710 case 218: PlatinumSpells += rnz(nastyduration); break;
5711 case 219: ManlerEffect += rnz(nastyduration); break;
5712 case 220: DoorningEffect += rnz(nastyduration); break;
5713 case 221: NownsibleEffect += rnz(nastyduration); break;
5714 case 222: ElmStreetEffect += rnz(nastyduration); break;
5715 case 223: MonnoiseEffect += rnz(nastyduration); break;
5716 case 224: RangCallEffect += rnz(nastyduration); break;
5717 case 225: RecurringSpellLoss += rnz(nastyduration); break;
5718 case 226: AntitrainingEffect += rnz(nastyduration); break;
5719 case 227: TechoutBug += rnz(nastyduration); break;
5720 case 228: StatDecay += rnz(nastyduration); break;
5721 case 229: Movemork += rnz(nastyduration); break;
5722 case 230: BadPartBug += rnz(nastyduration); break;
5723 case 231: CompletelyBadPartBug += rnz(nastyduration); break;
5724 case 232: EvilVariantActive += rnz(nastyduration); break;
5725 case 233: SanityTrebleEffect += rnz(nastyduration); break;
5726 case 234: StatDecreaseBug += rnz(nastyduration); break;
5727 case 235: SimeoutBug += rnz(nastyduration); break;
5728 case 236: GiantExplorerBug += rnz(nastyduration); break;
5729 case 237: YawmBug += rnz(nastyduration); break;
5730 case 238: TrapwarpingBug += rnz(nastyduration); break;
5731 case 239: EnthuEffect += rnz(nastyduration); break;
5732 case 240: MikraEffect += rnz(nastyduration); break;
5733 case 241: GotsTooGoodEffect += rnz(nastyduration); break;
5734 case 242: NoFunWallsEffect += rnz(nastyduration); break;
5735 case 243: CradleChaosEffect += rnz(nastyduration); break;
5736 case 244: TezEffect += rnz(nastyduration); break;
5737 case 245: KillerRoomEffect += rnz(nastyduration); break;
5738 case 246: ReallyBadTrapEffect += rnz(nastyduration); break;
5739 case 247: CovidTrapEffect += rnz(nastyduration); break;
5740 case 248: ArtiblastEffect += rnz(nastyduration); break;
5741 case 249: RepeatingNastycurseEffect += rnz(nastyduration); break;
5742 case 250: RealLieEffect += rnz(nastyduration); break;
5743 case 251: EscapePastEffect += rnz(nastyduration); break;
5744 case 252: PethateEffect += rnz(nastyduration); break;
5745 case 253: PetLashoutEffect += rnz(nastyduration); break;
5746 case 254: PetstarveEffect += rnz(nastyduration); break;
5747 case 255: PetscrewEffect += rnz(nastyduration); break;
5748 case 256: TechLossEffect += rnz(nastyduration); break;
5749 case 257: ProoflossEffect += rnz(nastyduration); break;
5750 case 258: UnInvisEffect += rnz(nastyduration); break;
5751 case 259: DetectationEffect += rnz(nastyduration); break;
5752 case 260: OptionBugEffect += rnz(nastyduration); break;
5753 case 261: MiscolorEffect += rnz(nastyduration); break;
5754 case 262: OneRainbowEffect += rnz(nastyduration); break;
5755 case 263: ColorshiftEffect += rnz(nastyduration); break;
5756 case 264: TopLineEffect += rnz(nastyduration); break;
5757 case 265: CapsBugEffect += rnz(nastyduration); break;
5758 case 266: UnKnowledgeEffect += rnz(nastyduration); break;
5759 case 267: DarkhanceEffect += rnz(nastyduration); break;
5760 case 268: DschueueuetEffect += rnz(nastyduration); break;
5761 case 269: NopeskillEffect += rnz(nastyduration); break;
5762 case 270: FuckfuckfuckEffect += rnz(nastyduration); break;
5763 case 271: EpviEffect += rnz(nastyduration); break;
5764 case 272: AefdeEffect += rnz(nastyduration); break;
5765 case 273: MeanBurdenEffect += rnz(nastyduration); break;
5766 case 274: CarrcapEffect += rnz(nastyduration); break;
5767 case 275: UmengEffect += rnz(nastyduration); break;
5768 case 276: MulchBug += rnz(nastyduration); break;
5769 case 277: SpellCooldownBug += rnz(nastyduration); break;
5770 case 278: HaveAPinBug += rnz(nastyduration); break;
5771 case 279: TurbodullBug += rnz(nastyduration); break;
5772 case 280: InaccuracyBug += rnz(nastyduration); break;
5773 case 281: InventorySizeBug += rnz(nastyduration); break;
5774 case 282: CostlyFailureBug += rnz(nastyduration); break;
5775 case 283: ReddamBug += rnz(nastyduration); break;
5776 case 284: RedincBug += rnz(nastyduration); break;
5777 case 285: MonsterMultishotBug += rnz(nastyduration); break;
5779 default:
5780 impossible("efftype %d called in specificnastytrapeffect()", efftype);
5781 break;
5788 randomgoodskill()
5790 int result;
5792 skillreroll:
5793 result = rnd(P_NUM_SKILLS - 1);
5795 if (result >= P_SHII_CHO && result <= P_WEDI && rn2(10)) goto skillreroll;
5796 if (result >= P_STILETTO_HEELS && result <= P_WEDGE_HEELS && rn2(4)) goto skillreroll;
5798 return result;
5802 randomgoodcombatskill()
5804 int result;
5806 combatreroll:
5807 result = P_BARE_HANDED_COMBAT + rn2(( P_RIDING - P_BARE_HANDED_COMBAT) + 1);
5808 if (result >= P_SHII_CHO && result <= P_WEDI && rn2(10)) goto combatreroll;
5809 if (result >= P_STILETTO_HEELS && result <= P_WEDGE_HEELS && rn2(4)) goto combatreroll;
5811 return result;
5815 randomgoodmclass(withtroves)
5816 boolean withtroves;
5818 int monclassresult = rnd(S_WORM_TAIL);
5819 while (monclassresult == 35 || (!withtroves && monclassresult == S_TROVE)) monclassresult = rnd(S_WORM_TAIL);
5820 return monclassresult;
5824 randomfeminismtraptype() /* keyword "marlena" */
5826 switch (rnd(103)) {
5827 case 1: return FEMMY_TRAP;
5828 case 2: return MADELEINE_TRAP;
5829 case 3: return MARLENA_TRAP;
5830 case 4: return ANASTASIA_TRAP;
5831 case 5: return JESSICA_TRAP;
5832 case 6: return SOLVEJG_TRAP;
5833 case 7: return WENDY_TRAP;
5834 case 8: return KATHARINA_TRAP;
5835 case 9: return ELENA_TRAP;
5836 case 10: return THAI_TRAP;
5837 case 11: return ELIF_TRAP;
5838 case 12: return NADJA_TRAP;
5839 case 13: return SANDRA_TRAP;
5840 case 14: return NATALJE_TRAP;
5841 case 15: return JEANETTA_TRAP;
5842 case 16: return YVONNE_TRAP;
5843 case 17: return MAURAH_TRAP;
5844 case 18: return MELTEM_TRAP;
5845 case 19: return SARAH_TRAP;
5846 case 20: return CLAUDIA_TRAP;
5847 case 21: return LUDGERA_TRAP;
5848 case 22: return KATI_TRAP;
5849 case 23: return NELLY_TRAP;
5850 case 24: return EVELINE_TRAP;
5851 case 25: return KARIN_TRAP;
5852 case 26: return JUEN_TRAP;
5853 case 27: return KRISTINA_TRAP;
5854 case 28: return LOU_TRAP;
5855 case 29: return ALMUT_TRAP;
5856 case 30: return JULIETTA_TRAP;
5857 case 31: return ARABELLA_TRAP;
5858 case 32: return KRISTIN_TRAP;
5859 case 33: return ANNA_TRAP;
5860 case 34: return RUEA_TRAP;
5861 case 35: return DORA_TRAP;
5862 case 36: return MARIKE_TRAP;
5863 case 37: return JETTE_TRAP;
5864 case 38: return INA_TRAP;
5865 case 39: return SING_TRAP;
5866 case 40: return VICTORIA_TRAP;
5867 case 41: return MELISSA_TRAP;
5868 case 42: return ANITA_TRAP;
5869 case 43: return HENRIETTA_TRAP;
5870 case 44: return VERENA_TRAP;
5871 case 45: return ANNEMARIE_TRAP;
5872 case 46: return JIL_TRAP;
5873 case 47: return JANA_TRAP;
5874 case 48: return KATRIN_TRAP;
5875 case 49: return GUDRUN_TRAP;
5876 case 50: return ELLA_TRAP;
5877 case 51: return MANUELA_TRAP;
5878 case 52: return JENNIFER_TRAP;
5879 case 53: return PATRICIA_TRAP;
5880 case 54: return ANTJE_TRAP;
5881 case 55: return ANTJE_TRAP_X;
5882 case 56: return KERSTIN_TRAP;
5883 case 57: return LAURA_TRAP;
5884 case 58: return LARISSA_TRAP;
5885 case 59: return NORA_TRAP;
5886 case 60: return NATALIA_TRAP;
5887 case 61: return SUSANNE_TRAP;
5888 case 62: return LISA_TRAP;
5889 case 63: return BRIDGHITTE_TRAP;
5890 case 64: return JULIA_TRAP;
5891 case 65: return NICOLE_TRAP;
5892 case 66: return RITA_TRAP;
5893 case 67: return JANINA_TRAP;
5894 case 68: return ROSA_TRAP;
5895 case 69: return KSENIA_TRAP;
5896 case 70: return LYDIA_TRAP;
5897 case 71: return CONNY_TRAP;
5898 case 72: return KATIA_TRAP;
5899 case 73: return MARIYA_TRAP;
5900 case 74: return ELISE_TRAP;
5901 case 75: return RONJA_TRAP;
5902 case 76: return ARIANE_TRAP;
5903 case 77: return JOHANNA_TRAP;
5904 case 78: return INGE_TRAP;
5905 case 79: return RUTH_TRAP;
5906 case 80: return MAGDALENA_TRAP;
5907 case 81: return MARLEEN_TRAP;
5908 case 82: return KLARA_TRAP;
5909 case 83: return FRIEDERIKE_TRAP;
5910 case 84: return NAOMI_TRAP;
5911 case 85: return UTE_TRAP;
5912 case 86: return JASIEEN_TRAP;
5913 case 87: return YASAMAN_TRAP;
5914 case 88: return MAY_BRITT_TRAP;
5915 case 89: return NADINE_TRAP;
5916 case 90: return LUISA_TRAP;
5917 case 91: return IRINA_TRAP;
5918 case 92: return LISELOTTE_TRAP;
5919 case 93: return GRETA_TRAP;
5920 case 94: return JANE_TRAP;
5921 case 95: return SUE_LYN_TRAP;
5922 case 96: return CHARLOTTE_TRAP;
5923 case 97: return HANNAH_TRAP;
5924 case 98: return LITTLE_MARIE_TRAP;
5925 case 99: return TANJA_TRAP;
5926 case 100: return SONJA_TRAP;
5927 case 101: return RHEA_TRAP;
5928 case 102: return LARA_TRAP;
5929 case 103: return SABRINA_TRAP;
5931 return INGE_TRAP; /* fail safe */
5935 #endif /* OVLB */
5937 /*rnd.c*/