home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / ARSRC21.ZIP / AR256H3.CPP < prev    next >
C/C++ Source or Header  |  1995-05-26  |  22KB  |  803 lines

  1. // CREATE
  2. // function to create mon[play][number], id whatsort, at x,y square
  3. // this function is declared in arena.cpp
  4.  
  5.  
  6. monster create(char play,char number,unsigned char whatsort,char status,char x,char y)
  7.     {
  8.     char *str;
  9.     int i,r,given;
  10.  
  11.     mon[play][number].whatside=play;
  12.     mon[play][number].id=whatsort;
  13.  
  14.     mon[play][number].x=x;
  15.     mon[play][number].y=y;
  16.     sq[x][y].whatside=play;
  17.     sq[x][y].whatmonster=number;
  18.     if (whatsort==0xff)
  19.         {
  20.         str="Wizard";
  21.         strcpy (mon[play][number].name, str);
  22.         str="stabs";
  23.         strcpy (mon[play][number].atmes, str);
  24.         str="but ineffectively.";
  25.         strcpy (mon[play][number].defmes, str);
  26.         str="to death!";
  27.         strcpy (mon[play][number].diemes, str);
  28.         str="throws a spell at";
  29.         strcpy (mon[play][number].shotmes, str);
  30.         mon[play][number].graphic=pgraph[play];
  31.         mon[play][number].mmoves=2;
  32.         mon[play][number].mshots=0;
  33.         mon[play][number].fire=0;
  34.         mon[play][number].range=6;
  35.         mon[play][number].attack=1+random(2);
  36.         mon[play][number].defend=1+random(2);
  37.         mon[play][number].spellnum=25;
  38.         mon[play][number].status=1;
  39.         if(alignment[play]<0)
  40.         mon[play][number].alignment=-1;  //give new wiz same alignment as his owner
  41.         if(alignment[play]>0)
  42.         mon[play][number].alignment=1;
  43.         if(alignment[play]==0)
  44.         mon[play][number].alignment=0;
  45.         mon[play][number].spells[0]=99;given=1;
  46.  
  47.         while(given<mon[curpla][curmon].spellnum)
  48.             {
  49.             r=random(59);
  50.             if(random(8)+1>spellprob[r])
  51.                 {
  52.                 mon[play][number].spells[given]=r;
  53.                 ++given;
  54.                 }
  55.             }
  56.         for (i=0;i<3;++i)     //change 3 spells to call spells
  57.             {
  58.             r=random(mon[curpla][curmon].spellnum-1)+1;
  59.             mon[play][number].spells[r]=random(26)+31;
  60.             }
  61.  
  62.  
  63.         }
  64.  
  65.     if (whatsort==1)//beholder
  66.         {
  67.         str="Beholder";
  68.         strcpy (mon[play][number].name, str);
  69.         str="gazes toward";
  70.         strcpy (mon[play][number].atmes, str);
  71.         str="who shrugs.";
  72.         strcpy (mon[play][number].defmes, str);
  73.         str="and destroys!";
  74.         strcpy (mon[play][number].diemes, str);
  75.         str="glares at";
  76.         strcpy (mon[play][number].shotmes, str);
  77.         mon[play][number].graphic=3;
  78.         mon[play][number].mmoves=1;
  79.         mon[play][number].mshots=1;
  80.         mon[play][number].fire=2;
  81.         mon[play][number].range=6;
  82.         mon[play][number].attack=3;
  83.         mon[play][number].defend=4;
  84.         mon[play][number].spellnum=0;
  85.         mon[play][number].status=1;
  86.         mon[play][number].fly=1;
  87.         mon[play][number].alignment=-1;
  88.         mon[play][number].immunities=2;
  89.         }
  90.  
  91.     if (whatsort==2)//warrior
  92.         {
  93.         str="Loyal Retainer";
  94.         strcpy (mon[play][number].name, str);
  95.         str="slices at";
  96.         strcpy (mon[play][number].atmes, str);
  97.         str="but misses!";
  98.         strcpy (mon[play][number].defmes, str);
  99.         str="with great skill.";
  100.         strcpy (mon[play][number].diemes, str);
  101.         mon[play][number].graphic=4;
  102.         mon[play][number].mmoves=2;
  103.         mon[play][number].mshots=0;
  104.         mon[play][number].fire=0;
  105.         mon[play][number].range=6;
  106.         mon[play][number].attack=2;
  107.         mon[play][number].defend=4;
  108.         mon[play][number].spellnum=0;
  109.         mon[play][number].status=1;
  110.         mon[play][number].fly=0;
  111.         mon[play][number].alignment=1;
  112.         }
  113.  
  114.     if (whatsort==3)//skeleton
  115.         {
  116.         str="Skeleton";
  117.         strcpy (mon[play][number].name, str);
  118.         str="gleefully chops at";
  119.         strcpy (mon[play][number].atmes, str);
  120.         str="but misses!";
  121.         strcpy (mon[play][number].defmes, str);
  122.         str="and cackles nastily.";
  123.         strcpy (mon[play][number].diemes, str);
  124.         mon[play][number].graphic=5;
  125.         mon[play][number].mmoves=1;
  126.         mon[play][number].mshots=0;
  127.         mon[play][number].fire=0;
  128.         mon[play][number].range=6;
  129.         mon[play][number].attack=2;
  130.         mon[play][number].defend=2;
  131.         mon[play][number].spellnum=0;
  132.         mon[play][number].status=3;//undead is 3
  133.         mon[play][number].fly=0;
  134.         mon[play][number].id+=0x80;//appear in recho as undead
  135.         mon[play][number].alignment=-1;
  136.         mon[play][number].immunities=2;
  137.         }
  138.  
  139.     if (whatsort==4)//bat
  140.         {
  141.         str="Little bat";
  142.         strcpy (mon[play][number].name, str);
  143.         str="feebly claws";
  144.         strcpy (mon[play][number].atmes, str);
  145.         str="to no effect.";
  146.         strcpy (mon[play][number].defmes, str);
  147.         str="and swats it.";
  148.         strcpy (mon[play][number].diemes, str);
  149.         mon[play][number].graphic=2;
  150.         mon[play][number].mmoves=4;
  151.         mon[play][number].mshots=0;
  152.         mon[play][number].fire=0;
  153.         mon[play][number].range=6;
  154.         mon[play][number].attack=1;
  155.         mon[play][number].defend=1;
  156.         mon[play][number].spellnum=0;
  157.         mon[play][number].status=1;
  158.         mon[play][number].fly=1;
  159.         mon[play][number].alignment=-1;
  160.         }
  161.  
  162.     if (whatsort==5)//archer
  163.         {
  164.         str="Archer";
  165.         strcpy (mon[play][number].name, str);
  166.         str="cuts at";
  167.         strcpy (mon[play][number].atmes, str);
  168.         str="but misses!";
  169.         strcpy (mon[play][number].defmes, str);
  170.         str="and hits!";
  171.         strcpy (mon[play][number].diemes, str);
  172.         str="fires arrows at";
  173.         strcpy (mon[play][number].shotmes, str);
  174.         mon[play][number].graphic=24;
  175.         mon[play][number].mmoves=2;
  176.         mon[play][number].mshots=2;
  177.         mon[play][number].fire=1;
  178.         mon[play][number].range=8;
  179.         mon[play][number].attack=1;
  180.         mon[play][number].defend=1;
  181.         mon[play][number].spellnum=0;
  182.         mon[play][number].status=1;
  183.         mon[play][number].fly=0;
  184.         mon[play][number].alignment=1;
  185.         }
  186.  
  187.     if (whatsort==6)//goblin
  188.         {
  189.         str="Goblin";
  190.         strcpy (mon[play][number].name, str);
  191.         str="jabs at";
  192.         strcpy (mon[play][number].atmes, str);
  193.         str="uselessly.";
  194.         strcpy (mon[play][number].defmes, str);
  195.         str="viciously!";
  196.         strcpy (mon[play][number].diemes, str);
  197.         mon[play][number].graphic=7;
  198.         mon[play][number].mmoves=2;
  199.         mon[play][number].mshots=0;
  200.         mon[play][number].fire=1;
  201.         mon[play][number].range=6;
  202.         mon[play][number].attack=3;
  203.         mon[play][number].defend=1;
  204.         mon[play][number].spellnum=0;
  205.         mon[play][number].status=1;
  206.         mon[play][number].fly=0;
  207.         mon[play][number].alignment=-1;
  208.         }
  209.  
  210.     if (whatsort==7)//red dragon
  211.         {
  212.         str="Red Dragon";
  213.         strcpy (mon[play][number].name, str);
  214.         str="slashes";
  215.         strcpy (mon[play][number].atmes, str);
  216.         str="but is baffled.";
  217.         strcpy (mon[play][number].defmes, str);
  218.         str="to ribbons!";
  219.         strcpy (mon[play][number].diemes, str);
  220.         str="breathes flame at";
  221.         strcpy (mon[play][number].shotmes, str);
  222.         mon[play][number].graphic=8;
  223.         mon[play][number].mmoves=3;
  224.         mon[play][number].mshots=1;
  225.         mon[play][number].fire=3;
  226.         mon[play][number].range=4;
  227.         mon[play][number].attack=7;
  228.         mon[play][number].defend=7;
  229.         mon[play][number].spellnum=0;
  230.         mon[play][number].status=1;
  231.         mon[play][number].fly=1;
  232.         mon[play][number].alignment=-1;
  233.         }
  234.  
  235.  if (whatsort==8)//spectre
  236.         {
  237.         str="Spectre";
  238.         strcpy (mon[play][number].name, str);
  239.         str="touches";
  240.         strcpy (mon[play][number].atmes, str);
  241.         str="who is unharmed.";
  242.         strcpy (mon[play][number].defmes, str);
  243.         str="and laughs darkly.";
  244.         strcpy (mon[play][number].diemes, str);
  245.  
  246.         mon[play][number].graphic=9;
  247.         mon[play][number].mmoves=2;
  248.         mon[play][number].mshots=0;
  249.         mon[play][number].fire=0;
  250.         mon[play][number].range=6;
  251.         mon[play][number].attack=3;
  252.         mon[play][number].defend=3;
  253.         mon[play][number].spellnum=0;
  254.         mon[play][number].status=3;
  255.         mon[play][number].fly=0;
  256.         mon[play][number].id+=0x80;//appear in recho as undead
  257.         mon[play][number].alignment=-1;
  258.         }
  259.  
  260.  
  261.  if (whatsort==9)//lich
  262.         {
  263.         str="Lich";
  264.         strcpy (mon[play][number].name, str);
  265.         str="directs hate at";
  266.         strcpy (mon[play][number].atmes, str);
  267.         str="who doesn't care!";
  268.         strcpy (mon[play][number].defmes, str);
  269.         str="who dissolves!";
  270.         strcpy (mon[play][number].diemes, str);
  271.         str="hurls pure evil at";
  272.         strcpy (mon[play][number].shotmes, str);
  273.         mon[play][number].graphic=10;
  274.         mon[play][number].mmoves=2;
  275.         mon[play][number].mshots=1;
  276.         mon[play][number].fire=2;
  277.         mon[play][number].range=2;
  278.         mon[play][number].attack=5;
  279.         mon[play][number].defend=5;
  280.         mon[play][number].spellnum=2;
  281.         mon[play][number].status=3;
  282.         mon[play][number].fly=0;
  283.  
  284.         mon[play][number].spells[0]=0;
  285.         mon[play][number].spells[1]=random(5)+1;
  286.         mon[play][number].id+=0x80;//appear in recho as undead
  287.         mon[play][number].alignment=-1;
  288.         }
  289.  
  290.  if (whatsort==10)//ghost
  291.         {
  292.         str="Ghost";
  293.         strcpy (mon[play][number].name, str);
  294.         str="says 'boo' to";
  295.         strcpy (mon[play][number].atmes, str);
  296.         str="who giggles.";
  297.         strcpy (mon[play][number].defmes, str);
  298.         str="who dies of fear.";
  299.         strcpy (mon[play][number].diemes, str);
  300.  
  301.         mon[play][number].graphic=25;
  302.         mon[play][number].mmoves=3;
  303.         mon[play][number].mshots=0;
  304.         mon[play][number].fire=1;
  305.         mon[play][number].range=6;
  306.         mon[play][number].attack=3;
  307.         mon[play][number].defend=1;
  308.         mon[play][number].spellnum=0;
  309.         mon[play][number].status=3;
  310.         mon[play][number].fly=1;
  311.         mon[play][number].id+=0x80;//appear in recho as undead
  312.         mon[play][number].alignment=-1;
  313.         }
  314.  
  315.  if (whatsort==11)//gold dragon
  316.         {
  317.         str="Gold Dragon";
  318.         strcpy (mon[play][number].name, str);
  319.         str="mightily crushes";
  320.         strcpy (mon[play][number].atmes, str);
  321.         str="but, oddly, fails!";
  322.         strcpy (mon[play][number].defmes, str);
  323.         str="to a singed pulp";
  324.         strcpy (mon[play][number].diemes, str);
  325.         str="shoots flames at";
  326.         strcpy (mon[play][number].shotmes, str);
  327.         mon[play][number].graphic=11;
  328.         mon[play][number].mmoves=3;
  329.         mon[play][number].mshots=1;if(!random(3))mon[play][number].mshots++;
  330.         mon[play][number].fire=3;
  331.         mon[play][number].range=5;
  332.         mon[play][number].attack=7;
  333.         mon[play][number].defend=9;
  334.         mon[play][number].spellnum=3;
  335.         mon[play][number].status=1;
  336.         mon[play][number].fly=1;
  337.         mon[play][number].alignment=1;
  338.  
  339.         mon[play][number].spells[0]=0;
  340.         mon[play][number].spells[1]=random(28)+1;
  341.         mon[play][number].spells[2]=random(28)+1;
  342.         }
  343.  
  344.     if (whatsort==12)//nema
  345.         {
  346.         str="A nema";
  347.         strcpy (mon[play][number].name, str);
  348.         str="pats";
  349.         strcpy (mon[play][number].atmes, str);
  350.         str="who smiles.";
  351.         strcpy (mon[play][number].defmes, str);
  352.         str="with her ickle claws.";
  353.         strcpy (mon[play][number].diemes, str);
  354.  
  355.         mon[play][number].graphic=12;
  356.         mon[play][number].mmoves=1;
  357.         mon[play][number].mshots=0;
  358.         mon[play][number].fire=2;
  359.         mon[play][number].range=5;
  360.         mon[play][number].attack=0;
  361.         mon[play][number].defend=1;
  362.         mon[play][number].spellnum=2;
  363.         mon[play][number].status=1;
  364.         mon[play][number].fly=0;
  365.         mon[play][number].alignment=1;
  366.  
  367.         mon[play][number].spells[0]=0;
  368.         mon[play][number].spells[1]=98;
  369.         }
  370.  
  371.     if (whatsort==13)//lion
  372.         {
  373.         str="Lion";
  374.         strcpy (mon[play][number].name, str);
  375.         str="claws";
  376.         strcpy (mon[play][number].atmes, str);
  377.         str="futilely.";
  378.         strcpy (mon[play][number].defmes, str);
  379.         str="to red ribbons.";
  380.         strcpy (mon[play][number].diemes, str);
  381.  
  382.         mon[play][number].graphic=13;
  383.         mon[play][number].mmoves=4;
  384.         mon[play][number].mshots=0;
  385.         mon[play][number].fire=2;
  386.         mon[play][number].range=5;
  387.         mon[play][number].attack=4;
  388.         mon[play][number].defend=4;
  389.         mon[play][number].spellnum=0;
  390.         mon[play][number].status=1;
  391.         mon[play][number].fly=0;
  392.         mon[play][number].alignment=1;
  393.  
  394.  
  395.         }
  396.  
  397.     if (whatsort==14)//gnome
  398.         {
  399.         str="Brownie";
  400.         strcpy (mon[play][number].name, str);
  401.         str="swipes at";
  402.         strcpy (mon[play][number].atmes, str);
  403.         str="pointlessly.";
  404.         strcpy (mon[play][number].defmes, str);
  405.         str="and hits.";
  406.         strcpy (mon[play][number].diemes, str);
  407.  
  408.         mon[play][number].graphic=14;
  409.         mon[play][number].mmoves=2;
  410.         mon[play][number].mshots=0;
  411.         mon[play][number].fire=2;
  412.         mon[play][number].range=5;
  413.         mon[play][number].attack=1;
  414.         mon[play][number].defend=1;
  415.         mon[play][number].spellnum=0;
  416.         mon[play][number].status=1;
  417.         mon[play][number].fly=0;
  418.         mon[play][number].alignment=1;
  419.  
  420.  
  421.         }
  422.  
  423.     if (whatsort==15)//chaun
  424.         {
  425.         str="Leprechaun";
  426.         strcpy (mon[play][number].name, str);
  427.         str="shillelaghs";
  428.         strcpy (mon[play][number].atmes, str);
  429.         str="but misses.";
  430.         strcpy (mon[play][number].defmes, str);
  431.         str="on the head.";
  432.         strcpy (mon[play][number].diemes, str);
  433.  
  434.         mon[play][number].graphic=14;
  435.         mon[play][number].mmoves=2;
  436.         mon[play][number].mshots=0;
  437.         mon[play][number].fire=2;
  438.         mon[play][number].range=5;
  439.         mon[play][number].attack=1;
  440.         mon[play][number].defend=1;
  441.         mon[play][number].spellnum=3;
  442.         mon[play][number].status=1;
  443.         mon[play][number].fly=0;
  444.         mon[play][number].alignment=1;
  445.  
  446.         mon[play][number].spells[0]=0;
  447.         mon[play][number].spells[1]=random(28)+1;
  448.  
  449.         mon[play][number].spells[2]=random(28)+1;
  450.         }
  451.  
  452.     if (whatsort==16)//dog
  453.         {
  454.         str="Big dog";
  455.         strcpy (mon[play][number].name, str);
  456.         str="snaps at";
  457.         strcpy (mon[play][number].atmes, str);
  458.         str="to no effect.";
  459.         strcpy (mon[play][number].defmes, str);
  460.         str="and kills!";
  461.         strcpy (mon[play][number].diemes, str);
  462.  
  463.         mon[play][number].graphic=15;
  464.         mon[play][number].mmoves=3;
  465.         mon[play][number].mshots=0;
  466.         mon[play][number].fire=2;
  467.         mon[play][number].range=5;
  468.         mon[play][number].attack=2;
  469.         mon[play][number].defend=2;
  470.         mon[play][number].spellnum=0;
  471.         mon[play][number].status=1;
  472.         mon[play][number].fly=0;
  473.         mon[play][number].alignment=1;
  474.  
  475.  
  476.         }
  477.  
  478.     if (whatsort==17)//wolf
  479.         {
  480.         str="Grey Wolf";
  481.         strcpy (mon[play][number].name, str);
  482.         str="leaps at";
  483.         strcpy (mon[play][number].atmes, str);
  484.         str="but is foiled.";
  485.         strcpy (mon[play][number].defmes, str);
  486.         str="and takes a bite!";
  487.         strcpy (mon[play][number].diemes, str);
  488.  
  489.         mon[play][number].graphic=15;
  490.         mon[play][number].mmoves=4;
  491.         mon[play][number].mshots=0;
  492.         mon[play][number].fire=2;
  493.         mon[play][number].range=5;
  494.         mon[play][number].attack=3;
  495.         mon[play][number].defend=3;
  496.         mon[play][number].spellnum=0;
  497.         mon[play][number].status=1;
  498.         mon[play][number].fly=0;
  499.         mon[play][number].alignment=-1;
  500.  
  501.  
  502.         }
  503.  
  504.     if (whatsort==18)//griffy
  505.         {
  506.         str="Gryphon";
  507.         strcpy (mon[play][number].name, str);
  508.         str="tears into";
  509.         strcpy (mon[play][number].atmes, str);
  510.         str="who survives.";
  511.         strcpy (mon[play][number].defmes, str);
  512.         str="who abandons hope.";
  513.         strcpy (mon[play][number].diemes, str);
  514.  
  515.         mon[play][number].graphic=16;
  516.         mon[play][number].mmoves=4;
  517.         mon[play][number].mshots=0;
  518.         mon[play][number].fire=2;
  519.         mon[play][number].range=5;
  520.         mon[play][number].attack=7;
  521.         mon[play][number].defend=5;
  522.         mon[play][number].spellnum=0;
  523.         mon[play][number].status=1;
  524.         mon[play][number].fly=1;
  525.         mon[play][number].alignment=1;
  526.  
  527.  
  528.         }
  529.  
  530.     if (whatsort==19)//manty
  531.         {
  532.         str="Manticore";
  533.         strcpy (mon[play][number].name, str);
  534.         str="bites at";
  535.         strcpy (mon[play][number].atmes, str);
  536.         str="who escapes.";
  537.         strcpy (mon[play][number].defmes, str);
  538.         str="who dies.";
  539.         strcpy (mon[play][number].diemes, str);
  540.         str="throws spikes at";
  541.         strcpy(mon[play][number].shotmes,str);
  542.         mon[play][number].graphic=17;
  543.         mon[play][number].mmoves=3;
  544.         mon[play][number].mshots=1;
  545.         mon[play][number].fire=1;
  546.         mon[play][number].range=5;
  547.         mon[play][number].attack=3;
  548.         mon[play][number].defend=2;
  549.         mon[play][number].spellnum=0;
  550.         mon[play][number].status=1;
  551.         mon[play][number].fly=0;
  552.         mon[play][number].alignment=-1;
  553.  
  554.  
  555.         }
  556.  
  557.     if (whatsort==20)//centy
  558.         {
  559.         str="Centaur";
  560.         strcpy (mon[play][number].name, str);
  561.         str="tramples over";
  562.         strcpy (mon[play][number].atmes, str);
  563.         str="who gets back up.";
  564.         strcpy (mon[play][number].defmes, str);
  565.         str="who is crushed.";
  566.         strcpy (mon[play][number].diemes, str);
  567.         str="fires arrows at";
  568.         strcpy(mon[play][number].shotmes,str);
  569.         mon[play][number].graphic=18;
  570.         mon[play][number].mmoves=4;
  571.         mon[play][number].mshots=1;
  572.         mon[play][number].fire=1;
  573.         mon[play][number].range=6;
  574.         mon[play][number].attack=3;
  575.         mon[play][number].defend=3;
  576.         mon[play][number].spellnum=0;
  577.         mon[play][number].status=1;
  578.         mon[play][number].fly=0;
  579.         mon[play][number].alignment=1;
  580.  
  581.  
  582.         }
  583.  
  584.     if (whatsort==21)//eagie
  585.         {
  586.         str="Bald Eagle";
  587.         strcpy (mon[play][number].name, str);
  588.         str="swoops on";
  589.         strcpy (mon[play][number].atmes, str);
  590.         str="inexpertly.";
  591.         strcpy (mon[play][number].defmes, str);
  592.         str="with deadly force.";
  593.         strcpy (mon[play][number].diemes, str);
  594.  
  595.         mon[play][number].graphic=19;
  596.         mon[play][number].mmoves=5;
  597.         mon[play][number].mshots=0;
  598.         mon[play][number].fire=0;
  599.         mon[play][number].range=5;
  600.         mon[play][number].attack=5;
  601.         mon[play][number].defend=2;
  602.         mon[play][number].spellnum=0;
  603.         mon[play][number].status=1;
  604.         mon[play][number].fly=1;
  605.         mon[play][number].alignment=1;
  606.  
  607.  
  608.         }
  609.  
  610.     if (whatsort==22)//giant
  611.         {
  612.         str="Mighty Giant";
  613.         strcpy (mon[play][number].name, str);
  614.         str="stomps on";
  615.         strcpy (mon[play][number].atmes, str);
  616.         str="who laughs.";
  617.         strcpy (mon[play][number].defmes, str);
  618.         str="who goes flat!";
  619.         strcpy (mon[play][number].diemes, str);
  620.  
  621.         mon[play][number].graphic=20;
  622.         mon[play][number].mmoves=2;
  623.         mon[play][number].mshots=0;
  624.         mon[play][number].fire=2;
  625.         mon[play][number].range=5;
  626.         mon[play][number].attack=6;
  627.         mon[play][number].defend=4;
  628.         mon[play][number].spellnum=0;
  629.         mon[play][number].status=1;
  630.         mon[play][number].fly=0;
  631.         mon[play][number].alignment=1;
  632.  
  633.  
  634.         }
  635.     if (whatsort==23)//sally
  636.         {
  637.         str="Salamander";
  638.         strcpy (mon[play][number].name, str);
  639.         str="ignites";
  640.         strcpy (mon[play][number].atmes, str);
  641.         str="who escapes";
  642.         strcpy (mon[play][number].defmes, str);
  643.         str="who burns to death.";
  644.         strcpy (mon[play][number].diemes, str);
  645.  
  646.         mon[play][number].graphic=21;
  647.         mon[play][number].mmoves=2;
  648.         mon[play][number].mshots=0;
  649.         mon[play][number].fire=1;
  650.         mon[play][number].range=4;
  651.         mon[play][number].attack=3;
  652.         mon[play][number].defend=3;
  653.         mon[play][number].spellnum=4;
  654.         mon[play][number].status=1;
  655.         mon[play][number].fly=0;
  656.         mon[play][number].alignment=1;
  657.         mon[play][number].immunities=3; //fire resistant.
  658.  
  659.         mon[play][number].spells[0]=0;
  660.         mon[play][number].spells[1]=1;
  661.         mon[play][number].spells[3]=1;
  662.         mon[play][number].spells[2]=1;
  663.         }
  664.     if (whatsort==24)//mutie
  665.         {
  666.         str="Unknown Beast";
  667.         strcpy (mon[play][number].name, str);
  668.         str="grobbles to";
  669.         strcpy (mon[play][number].atmes, str);
  670.         str="feeningly.";
  671.         strcpy (mon[play][number].defmes, str);
  672.         str="with fripping!";
  673.         strcpy (mon[play][number].diemes, str);
  674.  
  675.         mon[play][number].graphic=22;
  676.         mon[play][number].mmoves=random(5);
  677.         if(!random(4))mon[play][number].mshots=1;
  678.         mon[play][number].fire=2;
  679.         mon[play][number].range=5;
  680.         mon[play][number].attack=random(7);
  681.         mon[play][number].defend=random(7);
  682.         mon[play][number].spellnum=0;
  683.         mon[play][number].status=random(3)+1;
  684.         if(random(4))mon[play][number].fly=1;
  685.         mon[play][number].alignment=0;
  686.  
  687.         }
  688.  
  689.  
  690.     if (whatsort==25)//zombie
  691.         {
  692.         str="Zombie";
  693.         strcpy (mon[play][number].name, str);
  694.         str="claws";
  695.         strcpy (mon[play][number].atmes, str);
  696.         str="who resists.";
  697.         strcpy (mon[play][number].defmes, str);
  698.         str="to death.";
  699.         strcpy (mon[play][number].diemes, str);
  700.  
  701.         mon[play][number].graphic=4;
  702.         mon[play][number].mmoves=1;
  703.         mon[play][number].mshots=0;
  704.         mon[play][number].fire=2;
  705.         mon[play][number].range=5;
  706.         mon[play][number].attack=1;
  707.         mon[play][number].defend=1;
  708.         mon[play][number].spellnum=0;
  709.         mon[play][number].status=3;
  710.         mon[play][number].fly=0;
  711.         mon[play][number].id+=0x80;//appear in recho as undead
  712.         mon[play][number].alignment=-1;
  713.         mon[play][number].immunities=2;
  714.  
  715.  
  716.         }
  717.  
  718.      if (whatsort==26)//hydra
  719.         {
  720.         str="Hydra";
  721.         strcpy (mon[play][number].name, str);
  722.         str="surrounds";
  723.         strcpy (mon[play][number].atmes, str);
  724.         str="but can't win.";
  725.         strcpy (mon[play][number].defmes, str);
  726.         str="with poison.";
  727.         strcpy (mon[play][number].diemes, str);
  728.  
  729.         mon[play][number].graphic=6;
  730.         mon[play][number].mmoves=1;
  731.         mon[play][number].mshots=0;
  732.         mon[play][number].fire=2;
  733.         mon[play][number].range=5;
  734.         mon[play][number].attack=3;
  735.         mon[play][number].defend=8;
  736.         mon[play][number].spellnum=0;
  737.         mon[play][number].status=1;
  738.         mon[play][number].fly=0;
  739.         mon[play][number].alignment=-1;
  740.  
  741.  
  742.         }
  743.     // UD monsters
  744.     if((UD_MONSTERS)&&(number))//wizzes never UD
  745.     {
  746.         mon[play][number].mmoves=mondata[whatsort].mmoves;
  747.         mon[play][number].mshots=mondata[whatsort].mshots;
  748.         mon[play][number].fire=mondata[whatsort].fire;
  749.         mon[play][number].range=mondata[whatsort].range;
  750.         mon[play][number].attack=mondata[whatsort].attack;
  751.         mon[play][number].defend=mondata[whatsort].defend;
  752.         //mon[play][number].spellnum=mondata[whatsort].spellnum;
  753.         //mon[play][number].status=mondata[whatsort].status;
  754.         mon[play][number].fly=mondata[whatsort].fly;
  755.         //mon[play][number].alignment=mondata[whatsort].alignment;
  756.         mon[play][number].immunities=mondata[whatsort].immunities;
  757.  
  758.         //if(mondata[whatsort].spellnum)
  759.         //    {
  760.             mon[play][number].spellnum=mondata[whatsort].spellnum;
  761.             mon[play][number].spellnum++;//to make room for null first spell
  762.             if(mon[play][number].spellnum>128)
  763.                 {
  764.                 mon[play][number].spellnum-=128;//to remove only-firing-spells flag
  765.                 for(i=1;i<mon[play][number].spellnum;++i)
  766.                     {
  767.                     mon[play][number].spells[i]=random(3)+1;
  768.                     }
  769.                 }
  770.             else
  771.                 {
  772.                 for(i=1;i<mon[play][number].spellnum;++i)
  773.                     {
  774.                     mon[play][number].spells[i]=random(30)+1;
  775.                     }
  776.                 }
  777.         //    }
  778.         if(mondata[whatsort].status==3)   //if undead, make it undead
  779.             {                               //and change the id for
  780.             mon[play][number].status=3;     //recce purposes.  This
  781.             mon[play][number].id=whatsort+128;
  782.             }                               //doesnt seem to work very
  783.         else                              //well...
  784.             {
  785.             mon[play][number].status=1;
  786.             }
  787.  
  788.     }
  789.  
  790.  
  791.  
  792.     if ((status==2)&&(cheetR!=curpla))mon[play][number].status=2;
  793.  
  794.  
  795.  
  796.     //change player's alignment according to what he summoned.
  797.     alignment[play]+=(mon[play][number].power()*mon[play][number].alignment);
  798.     if (alignment[play]>299 )alignment[play]=299;
  799.     if (alignment[play]<-299)alignment[play]=-299;
  800.     return mon[play][number];
  801.  
  802.     }
  803.