home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / vmsspace / part03 < prev    next >
Internet Message Format  |  1993-06-06  |  33KB

  1. Path: uunet!mcsun!chsun!pega!dr_who
  2. From: dr_who@pegasus.ch (Sysop of PEGASUS)
  3. Newsgroups: vmsnet.sources.games
  4. Subject: SPCEMP.C   Part 03/06
  5. Message-ID: <1993Jun7.093129.124@pegasus.ch>
  6. Date: 7 Jun 93 09:31:29 +0200
  7. Organization: Pegasus BBS, Switzerland
  8. Lines: 1111
  9. Xref: uunet vmsnet.sources.games:736
  10.  
  11. ----> START OF PART 3 <----
  12.  
  13. /********************************************************************/
  14. buyitem(long n)
  15. {
  16. unsigned long price;
  17. unsigned long amount;
  18. unsigned long maxval;
  19. unsigned long ellig;
  20. char ostring[80];
  21. char astring[80];
  22.  
  23.     switch(n) {
  24.         case 1: printf("Soldier troop\n");
  25.             price=price_soldiers;
  26.             break;
  27.         case 2: printf("Pilot\n");
  28.             price=price_pilots;
  29.             break;
  30.         case 3: printf("Intelligence agent\n");
  31.             price=price_agents;
  32.             break;
  33.         case 4: printf("X-Wing Fighter craft\n");
  34.             price=price_fighters;
  35.             break;
  36.         case 5: printf("Y-Wing Fighter craft\n");
  37.             price=price_ywings;
  38.             break;
  39.         case 6: printf("Heavy cruiser\n");
  40.             price=price_cruisers;
  41.             break;
  42.         case 7: printf("Imperial Starfighter\n");
  43.             price=price_starfighters;
  44.             break;
  45.         case 8: printf("Death Star\n");
  46.             price=price_deathstars;
  47.             break;
  48.         case 10: printf("Carrier\n");
  49.             price=price_carriers;
  50.             break;
  51.         case 11: printf("MK IV freighter\n");
  52.             price=price_freighters;
  53.             break;
  54.         case 12: printf("Defense station\n");
  55.             price=price_defense;
  56.             break;
  57.         case 13: printf("Missile Defense Station\n");
  58.             price=price_missiledefense;
  59.             break;
  60.         case 15: printf("Generic planet\n");
  61.             price=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep));
  62.             if ((player[pn].credits/price)>50)
  63.                 price=player[pn].credits/50;
  64.             break;
  65.         case 16: printf("Governing planet\n");
  66.             price=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep));
  67.             price=price+(price/2);
  68.             break;
  69.     }
  70.  
  71.     if(price>player[pn].credits) {
  72.         printf("\nYou don't have enough credits to buy even one!\n");
  73.         return;
  74.     }
  75.  
  76.         do
  77.          {
  78.       printf("\n");
  79.       maxval=(player[pn].credits/price);
  80.       if(n==1) {
  81.         ellig = (((((unsigned long)player[pn].population) * 1000000)/5) - (player[pn].soldiers*100));
  82.         printf("\nThere are currently %ld eligible men in your population, so you\n",ellig);
  83.         ellig = ellig / 100;
  84.         printf("may draft up to %ld troops.\n",ellig);
  85.         if(ellig<maxval) maxval=ellig;
  86.       }
  87.       printf("Buy how many? Max %ld. [0] ",maxval);
  88.       gets(ostring);
  89.       if(ostring[0]==0) return;
  90.       sscanf(ostring,"%ld",&amount);
  91.       if(strlen(ostring)<1) 
  92.             amount=0;
  93.       if(amount<0) 
  94.         printf("Use the sellmenu if you have anything to give..");
  95.       if((amount*price)>player[pn].credits) 
  96.             {
  97.         sprintf(ostring,"Sorry, the most you can afford is %ld.",(player[pn].credits/price));
  98.         printf(ostring);
  99.         }
  100.      }
  101.     while((amount<0)||((amount*price)>player[pn].credits));
  102.     if ((amount>ellig) && (n==1)) 
  103.       printf("Sorry, there aren't that many elligible men.\n");
  104.     player[pn].credits=player[pn].credits-(price*amount);
  105.  
  106.     switch(n) {
  107.         case 1: player[pn].soldiers=player[pn].soldiers+amount;
  108.             break;
  109.         case 2: player[pn].pilots=player[pn].pilots+amount;
  110.             break;
  111.         case 3: player[pn].agents=player[pn].agents+amount;
  112.             break;
  113.         case 4: player[pn].fighters=player[pn].fighters+amount;
  114.             break;
  115.         case 5: player[pn].ywings=player[pn].ywings+amount;
  116.             break;
  117.         case 6: player[pn].cruisers=player[pn].cruisers+amount;
  118.             break;
  119.         case 7: player[pn].starfighters=player[pn].starfighters+amount;
  120.             break;
  121.         case 8: player[pn].deathstars=player[pn].deathstars+amount;
  122.             break;
  123.         case 10: player[pn].carriers=player[pn].carriers+amount;
  124.             break;
  125.         case 11: player[pn].freighters=player[pn].freighters+amount;
  126.             break;
  127.         case 12: player[pn].defense=player[pn].defense+amount;
  128.             break;
  129.         case 13: player[pn].missiledefense=player[pn].missiledefense+amount;
  130.             break;
  131.         case 15: giveplanets(amount);
  132.             break;
  133.         case 16: player[pn].governp=player[pn].governp+amount;
  134.             break;
  135.     }
  136. }
  137.  
  138.  
  139. /********************************************************************/
  140. giveplanets(unsigned long amount)
  141. {
  142. char ostring[80];
  143. char astring[80];
  144. unsigned long amt;
  145. long p_i;
  146.  
  147.     p_i = (int)amount;
  148.     if(p_i>100) p_i = 100;
  149.     if(p_i<0) p_i = 100;
  150.     pop_increase = pop_increase + p_i;
  151.  
  152.     while(amount!=0) 
  153.         {
  154.         do
  155.          {
  156.           printf("\nYou can take %ld more planets.",amount);
  157.           printf("\n[A]gricultural, [O]re mining, [D]efense, [T]rade or touris[M] ? ");
  158.           gets(ostring);
  159.           ostring[0]=toupper(ostring[0]);
  160.          }
  161.         while((ostring[0]!='A')&&(ostring[0]!='O')&&(ostring[0]!='D')&&(ostring[0]!='T')&&(ostring[0]!='M'));
  162.         do
  163.          {
  164.         printf("\nHow many of these planets do you want? ");
  165.         gets(astring);
  166.         sscanf(astring,"%ld",&amt);
  167.         if(amt>amount) 
  168.             printf("You can only get %ld more!\n",amount);
  169.          }
  170.                 while(amt>amount);
  171.         amount=amount-amt;
  172.         switch(ostring[0]) 
  173.         {
  174.             case 'A': player[pn].foodp=player[pn].foodp+amt; break;
  175.             case 'O': player[pn].orep=player[pn].orep+amt; break;
  176.             case 'D': player[pn].defensep=player[pn].defensep+amt; break;
  177.             case 'T': player[pn].tradep=player[pn].tradep+amt; break;
  178.             case 'M': player[pn].tourismp=player[pn].tourismp+amt; break;
  179.         }
  180.     } /* amount!=0 */
  181. }
  182.  
  183. /********************************************************************/
  184. missile_stage()
  185. {
  186. char ostring[80],xstring[80];
  187. long chance;
  188. long z;
  189. long spysend;
  190. long cov_type=0;
  191. long cmod,cmod2;
  192. long pvalue=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep+player[pn].tradep+player[pn].tourismp));
  193.  
  194. long price2=pvalue*3+300000;
  195. long price3=pvalue*18+4000000;
  196. long price4=pvalue*20+5000000;
  197. long price5=pvalue*20+6000000;
  198. long price6=pvalue*25+5000000;
  199. long price7=pvalue*5+500000;
  200. long price8=pvalue*6+600000;
  201.  
  202.  
  203.  
  204. if(player[pn].agents<1) 
  205.   return;
  206.  
  207.  
  208. if(sol_work==1) 
  209.     {
  210.     printf("\nYour agency refuses to work since you didn't pay the\n");
  211.     printf("enough.\n");
  212.     return;
  213.     }
  214.  
  215.     do
  216.      {
  217.       cls();
  218.       printf("\n\nMission types:             (what does it ?)             COST:\n");
  219.       printf("----------------------------------------------------------------------\n");
  220.       printf("1. Missile : Anti-Matter Warhead                    [  %-9ld cr ]\n",price2);
  221.       printf("2. Missiles: Thermo-Nuclear Warheads                [  %-9ld cr ]\n",price3);
  222.       printf("3. Missiles: Chemical Warheads                      [  %-9ld cr ]\n",price4);
  223.       printf("4. Missiles: Conventional Warheads                  [  %-9ld cr ]\n",price5);
  224.       printf("5. Missiles: Anti-Matter Warheads                   [  %-9ld cr ]\n\n",price6);
  225.  
  226.       printf("8. Military traitor                                 [  %-9ld cr ]\n",price7);
  227.       printf("9. Goverment traitor                                [  %-9ld cr ]\n",price8);
  228.       printf("----------------------------------------------------------------------\n");
  229.       printf("\n[Availble Money: %ld cr.] Choice: ",player[pn].credits);
  230.       gets(ostring);
  231.       sscanf(ostring,"%d",&cov_type);
  232.  
  233.       switch(cov_type) 
  234.       {
  235.         case 1: if (player[pn].credits<(price2))
  236.                 {
  237.                 printf("Not enough money\n");
  238.                 cov_type=255;
  239.                 }
  240.              else
  241.               {
  242.               if(getplayer()==TRUE)
  243.                 {
  244.                 rocket_use=FALSE;
  245.                 player[pn].credits=player[pn].credits-(price2);
  246.                 put_datas(pn);
  247.                 if (player[epn].governp>0)
  248.                 {
  249.                     player[epn].governp=player[epn].governp-1;
  250.                     printf("You were successful\n");
  251.                     printf("Enemy lost 1 Government Planet !\n\n");
  252.                     news(102,"");
  253.                     player_msg(102,"");
  254.                     put_datas(epn);
  255.                 }
  256.                 else
  257.                 {
  258.                     printf("Your Enemy did not even have one !\n");
  259.                     printf("And you lost %ld Cr.\n",price2);
  260.                     printf("Next time I would send a spy first !\n");
  261.                 }
  262.                 }
  263.               else
  264.                 printf("Action aborted !\n"); 
  265.              }
  266.             break;
  267.         case 2: if (player[pn].credits<(price3))
  268.                 {
  269.                 printf("Not enough money\n");
  270.                 cov_type=255;
  271.                 }
  272.             else
  273.             {
  274.             if(getplayer()==TRUE)
  275.                 {
  276.                 rocket_use=FALSE;
  277.                 player[pn].credits=player[pn].credits-(price3);
  278.                 missile_pic();
  279.                 printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
  280.                 sleep(1);
  281.                 if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
  282.                     chance=9000;
  283.                 else
  284.                     chance=player[epn].missiledefense+(4*player[epn].defensep);
  285.                 if(rnd(10000)>chance)
  286.                     {
  287.                     printf("\nYour missiles are throu the defense shield ...\n");
  288.                     sleep(1);
  289.                     printf("\nImpact .... bouuummmm ...\n\n");
  290.                     rocket_use=FALSE;
  291.                     player[pn].score_modifier=player[pn].score_modifier+1000;
  292.                     player[pn].morale++;
  293.                     put_datas(pn);
  294.                     
  295.                     player[epn].harmony=player[epn].harmony-15;
  296.                     if (player[epn].harmony>-5)
  297.                         player[epn].harmony=player[epn].harmony-5;
  298.                     if (player[epn].population>6)
  299.                         player[epn].population=player[epn].population-(player[epn].population/3);
  300.                     if (player[epn].cruisers>0)
  301.                         player[epn].pilots=player[epn].pilots/3;
  302.                     player[epn].score_modifier=player[epn].score_modifier-5000;
  303.                     player[epn].morale--;
  304.                     player[epn].health=player[epn].health-3;
  305.                     player[epn].health_radioactivity= -1;
  306.                     printf("You were successful !!!!\n\n");
  307.                     printf("Enemy lost:     30 %% of his citizen,\n");
  308.                     printf("            and 30 %% of his civil pilots\n");
  309.                     printf("ENEMY GETS SEVERE HEALTH PROBLEMS WITHIN HIS POPULATION\n");
  310.                     news(103,"");
  311.                     player_msg(103,"");
  312.                     put_datas(epn);
  313.                     }
  314.                 else
  315.                     {
  316.                     printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
  317.                     news(153,"");
  318.                     player_msg(153,"");
  319.                     }
  320.                   }
  321.             else
  322.                 printf("Action aborted !\n"); 
  323.               }
  324.             break;
  325.         case 3: if (player[pn].credits<(price4))
  326.                 {
  327.                 printf("Not enough money\n");
  328.                 cov_type=255;
  329.                 }
  330.             else
  331.             {
  332.             if(getplayer()==TRUE)
  333.                 {
  334.                 rocket_use=FALSE;
  335.                 player[pn].credits=player[pn].credits-(price4);
  336.                 missile_pic();
  337.                 printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
  338.                 sleep(1);
  339.                 if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
  340.                     chance=9000;
  341.                 else
  342.                     chance=player[epn].missiledefense+(4*player[epn].defensep);
  343.                 if(rnd(10000)>chance)
  344.                     {
  345.                     printf("\nYour missiles are throu the defense shield ...\n");
  346.                     sleep(1);
  347.                     printf("\nImpact .... bouuummmm ...\n\n");
  348.                     rocket_use=FALSE;
  349.                     player[pn].score_modifier=player[pn].score_modifier+1000;
  350.                     player[pn].morale++;
  351.                     put_datas(pn);
  352.  
  353.                     player[epn].foodp=0;
  354.                     player[epn].food=0;
  355.                     player[epn].harmony=player[epn].harmony-5;
  356.  
  357.                     player[epn].score_modifier=player[epn].score_modifier-5000;
  358.                     player[epn].morale--;
  359.                     printf("You were successful !!!!\n\n");
  360.                     printf("Enemy lost all foodproctuction units and food in stock,\n\n");
  361.                     news(104,"");
  362.                     player_msg(104,"");
  363.                     put_datas(epn);
  364.                     }
  365.                 else
  366.                     {
  367.                     printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
  368.                     news(154,"");
  369.                     player_msg(154,"");
  370.                     }
  371.                   }
  372.             else
  373.                 printf("Action aborted !\n"); 
  374.               }
  375.             break;
  376.         case 4: if (player[pn].credits<(price5))
  377.                 {
  378.                 printf("Not enough money\n");
  379.                 cov_type=255;
  380.                 }
  381.             else
  382.             {
  383.             if(getplayer()==TRUE)
  384.                 {
  385.                 rocket_use=FALSE;
  386.                 player[pn].credits=player[pn].credits-(price5);
  387.                 missile_pic();
  388.                 printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
  389.                 sleep(1);
  390.                 if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
  391.                     chance=9000;
  392.                 else
  393.                     chance=player[epn].missiledefense+(4*player[epn].defensep);
  394.                 if(rnd(10000)>chance)
  395.                     {
  396.                     printf("\nYour missiles are throu the defense shield ...\n");
  397.                     sleep(1);
  398.                     printf("\nImpact .... bouuummmm ...\n\n");
  399.                     rocket_use=FALSE;
  400.                     player[pn].score_modifier=player[pn].score_modifier+1000;
  401.                     player[pn].morale++;
  402.                     put_datas(pn);
  403.                     if (player[epn].soldiers>0)
  404.                         player[epn].soldiers=player[epn].soldiers/2;
  405.                     if (player[epn].fighters>0)
  406.                         player[epn].fighters=player[epn].fighters/2;
  407.                     if (player[epn].cruisers>0)
  408.                         player[epn].cruisers=player[epn].cruisers/2;
  409.                     if (player[epn].ywings>0)
  410.                         player[epn].ywings=player[epn].ywings/2;
  411.                     if (player[epn].carriers>0)
  412.                         player[epn].carriers=player[epn].carriers/2;
  413.                     if (player[epn].missiledefense>0)
  414.                         player[epn].missiledefense=player[epn].missiledefense/2;
  415.                     if (player[epn].starfighters>0)
  416.                         player[epn].starfighters=player[epn].starfighters/2;
  417.                     if (player[epn].deathstars>0)
  418.                         player[epn].deathstars=player[epn].deathstars/2;
  419.                     player[epn].score_modifier=player[epn].score_modifier-5000;
  420.                     player[epn].morale--;
  421.                     printf("You were successful !!!!\n\n");
  422.                     printf("Enemy lost [%-6ld] Soldiers,\n",player[epn].soldiers);
  423.                     printf("           [%-6ld] X-wing Fighters,\n",player[epn].fighters);
  424.                     printf("           [%-6ld] Y-wing Fighters,\n",player[epn].ywings);
  425.                     printf("           [%-6ld] Heavy Cruisers,\n",player[epn].cruisers);
  426.                     printf("           [%-6ld] Imperial Starfighters,\n",player[epn].starfighters);
  427.                     printf("           [%-6ld] Carriers,\n",player[epn].carriers);
  428.                     printf("           [%-6ld] MissileDefense-Stations,\n",player[epn].missiledefense);
  429.                     printf("           [%-6ld] Death Stars !\n\n",player[epn].deathstars);
  430.                     news(105,"");
  431.                     player_msg(105,"");
  432.                     put_datas(epn);
  433.                     }
  434.                 else
  435.                     {
  436.                     printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
  437.                     news(155,"");
  438.                     player_msg(155,"");
  439.                     }
  440.                   }
  441.             else
  442.                 printf("Action aborted !\n"); 
  443.               }
  444.             break;
  445.         case 5: if (player[pn].credits<(price6))
  446.                 {
  447.                 printf("Not enough money\n");
  448.                 cov_type=255;
  449.                 }
  450.             else
  451.             {
  452.             if(getplayer()==TRUE)
  453.                 {
  454.                 rocket_use=FALSE;
  455.                 player[pn].credits=player[pn].credits-(price6);
  456.                 missile_pic();
  457.                 printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
  458.                 sleep(1);
  459.                 if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
  460.                     chance=9000;
  461.                 else
  462.                     chance=player[epn].missiledefense+(4*player[epn].defensep);
  463.                 if(rnd(10000)>chance)
  464.                     {
  465.                     printf("\nYour missiles are throu the defense shield ...\n");
  466.                     sleep(1);
  467.                     printf("\nImpact .... bouuummmm ...\n\n");
  468.                     rocket_use=FALSE;
  469.                     player[pn].score_modifier=player[pn].score_modifier+1000;
  470.                     player[pn].morale++;
  471.                     put_datas(pn);
  472.                     if (player[epn].governp>0)
  473.                         player[epn].governp=player[epn].governp/2;
  474.                     player[epn].score_modifier=player[epn].score_modifier-5000;
  475.                     player[epn].harmony=player[epn].harmony-5;
  476.                     player[epn].morale--;
  477.                     printf("You were successful !!!!\n\n");
  478.                     printf("Enemy lost [%-6ld] Governing planets.\n\n",player[epn].governp/2);
  479.                     news(106,"");
  480.                     player_msg(106,"");
  481.                     put_datas(epn);
  482.                     }
  483.                 else
  484.                     {
  485.                     printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
  486.                     news(156,"");
  487.                     player_msg(156,"");
  488.                     }
  489.                   }
  490.             else
  491.                 printf("Action aborted !\n"); 
  492.               }
  493.             break;
  494.         case 8: if (player[pn].credits<(price7))
  495.                 {
  496.                 printf("Not enough money\n");
  497.                 cov_type=255;
  498.                 }
  499.              else
  500.               {
  501.               if(getplayer()==TRUE)
  502.                 {
  503.                 rocket_use=FALSE;
  504.                 player[pn].credits=player[pn].credits-(price7);
  505.                 put_datas(pn);
  506.                 player[epn].morale=player[epn].morale-2;
  507.                 printf("You were successful\n");
  508.                 printf("Enemy lost 2 Moral Points !\n\n");
  509.                 news(108,"");
  510.                 player_msg(108,"");
  511.                 put_datas(epn);
  512.                 }
  513.             else
  514.                 printf("Action aborted !\n"); 
  515.               }
  516.             break;
  517.         case 9: if (player[pn].credits<(price8))
  518.                 {
  519.                 printf("Not enough money\n");
  520.                 cov_type=255;
  521.                 }
  522.              else
  523.               {
  524.               if(getplayer()==TRUE)
  525.                 {
  526.                 rocket_use=FALSE;
  527.                 player[pn].credits=player[pn].credits-price8;
  528.                 put_datas(pn);
  529.                 player[epn].harmony=player[epn].harmony-2;
  530.                 printf("You were successful\n");
  531.                 printf("Enemy lost 2 Harmony Points !\n\n");
  532.                 news(109,"");
  533.                 player_msg(109,"");
  534.                 put_datas(epn);
  535.                 }
  536.             else
  537.                 printf("Action aborted !\n"); 
  538.               }
  539.             break;
  540.  
  541.         default: 
  542.             break;
  543.       }
  544.      }
  545.     while((cov_type<0)||(cov_type>6));
  546.  
  547.  
  548. }
  549.  
  550. /********************************************************************/
  551. missile_pic()
  552. {
  553. if (player[pn].terminal>0)
  554.     {
  555.     printf("    .\n");
  556.     printf("             .                                          .\n");
  557.     printf("    .   .                  /\\\n");
  558.     printf("                          /  \\                    .\n");
  559.     printf("                         | S  |\n");
  560.     printf("        .                |  P |            .\n");
  561.     printf("                .        | A  |\n");
  562.     printf("                         |  C |         .\n");
  563.     printf("                         | E  |                        .\n");
  564.     printf(" .                       |----|\n");
  565.     printf("                         |    |      .            .\n");
  566.     printf("            .            | R  |\n");
  567.     printf("                         |  O |\n");
  568.     printf("                        /| C  |\\\n");
  569.     printf("                       | |  K | |\n");
  570.     printf("                       | | E  | |          .\n");
  571.     printf("         .             | |  T | |              .\n");
  572.     printf("                       |_| __ |_|\n");
  573.     printf("_____________________ /_/__/\\__\\_\\ _____________________\n");
  574.     press_return();
  575.     }
  576. }
  577.  
  578. /********************************************************************/
  579. spying_stage()
  580. {
  581. char ostring[80],xstring[80];
  582. char string[40];
  583. long chance;
  584. long z;
  585. long cov_type=0;
  586. long cmod,cmod2;
  587. long pvalue=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep+player[pn].tradep+player[pn].tourismp));
  588. unsigned long offense=0;
  589. unsigned long defense=0;
  590. unsigned long chances=0;
  591.  
  592. long spysend;
  593. long y_send=0;
  594. long s_send=0;
  595. long pos_result=0;
  596. long stolen=0;
  597.  
  598. long price2=pvalue*3;
  599. long price5=player[pn].ywings*100;
  600. long price6=player[pn].freighters*100+5000;
  601. long price7=pvalue*4;
  602. long price8=20000;
  603.  
  604.  
  605. if(player[pn].agents<1) 
  606.   return;
  607.  
  608.  
  609. if(sol_work==1) 
  610.     {
  611.     printf("\nYour agency refuses to work since you didn't pay them\n");
  612.     printf("enough.\n");
  613.     return;
  614.     }
  615.  
  616.     do
  617.      {
  618.       cls();
  619.       printf("\n\nMission types:                                          COST:\n");
  620.       printf("----------------------------------------------------------------------\n");
  621.       printf("1. Covert Mission: Spy on Military and/or Government[  THAT'S FREE ]\n");
  622.       printf("2. Covert Mission: Spy on the Army strength         [ %9ld cr ]\n\n",price2);
  623.       if(player[pn].tech_level>4)
  624.           printf("5. Pirating: Steal enemy's Y-Wing starfighters      [ %9ld cr ]\n",price5);
  625.       printf("6. Pirating: Steal enemy's Mk-Freighters            [ %9ld cr ]\n\n",price6);
  626. /*      printf("7. Pirating: Attack enemy's TradePlanets            [ %9ld cr ]\n",price7);
  627. */
  628.       printf("8. Show own Army strength (offense and defense)     [ %9ld cr ]\n",price8);
  629.       printf("9. Secret Public Poll under your people             [  THAT'S FREE ]\n");
  630.       printf("----------------------------------------------------------------------\n");
  631.       printf("\n[Availble Money: %ld cr.] Choice: ",player[pn].credits);
  632.       gets(ostring);
  633.       sscanf(ostring,"%d",&cov_type);
  634.  
  635.       switch(cov_type) 
  636.       {
  637.         case 1: covert_stage();
  638.             break;
  639.         case 2: if (player[pn].credits<(price2))
  640.                 {
  641.                 printf("Not enough money\n");
  642.                 cov_type=255;
  643.                 }
  644.              else
  645.               {
  646.               if(getplayer()!=FALSE) 
  647.                 {
  648.                 player[pn].credits=player[pn].credits-price2;
  649.                 put_datas(pn);
  650.                 rocket_use=FALSE;
  651.  
  652.                 do {
  653.                   printf("Send how many agents? (max of %ld) ",player[pn].agents);
  654.                   gets(ostring);
  655.                   sscanf(ostring,"%ld",&spysend);
  656.                    } while(spysend>player[pn].agents);
  657.                 
  658.                 if(spysend==0) spysend=player[pn].agents;
  659.                 if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
  660.                     {
  661.                     printf("\n Mission accomplished ... \n\n");
  662.                     chances=get_missiledefense(epn);
  663.                     printf("\nMissile defense is at   : %d%% (90 %% maximum)\n",chances);
  664.                     printf("That means that you have a chance of %d%% to hit your enemy with a missile.\n\n",100-chances);
  665.  
  666.                     offense = get_offense(epn);
  667.                     defense = get_defense(epn);
  668.  
  669.                     printf("Your enemys army offensive strength : %d points\n",offense);
  670.                     printf("Your enemys army defensive strength : %d points\n\n",defense);
  671.                     printf("By the way, your enemy is a(n) %s.\n\n\n",race[player[epn].race].name);
  672.                     }
  673.                 else
  674.                     {
  675.                     printf("\n\nYou were caught!  The %ld spies you sent were executed!\n",spysend);
  676.                     printf("Next time try to send more spies, than your enemy has.\n");
  677.                     player[pn].agents=player[pn].agents-spysend;
  678.                     put_datas(pn);
  679.  
  680.                     news((5),"");
  681.                     player_msg((5),"");
  682.  
  683.                     }
  684.                 press_return();
  685.                 }
  686.               }
  687.             break;
  688.         case 5: if ((player[pn].credits<price5)||(player[pn].tech_level<=4))
  689.                 {
  690.                 printf("Not enough money\n");
  691.                 cov_type=255;
  692.                 }
  693.              else
  694.               {
  695.               if(getplayer()!=FALSE) 
  696.                 {
  697.                 player[pn].credits=player[pn].credits-price5;
  698.                 put_datas(pn);
  699.                 rocket_use=FALSE;
  700.  
  701.                 do {
  702.                   printf("Send how many agents? (max of %ld) ",player[pn].agents);
  703.                   gets(ostring);
  704.                   sscanf(ostring,"%ld",&spysend);
  705.                    } while(spysend>player[pn].agents);
  706.                 do {
  707.                   printf("Send how many soldiers ? (max of %ld) ",player[pn].soldiers);
  708.                   gets(ostring);
  709.                   sscanf(ostring,"%ld",&s_send);
  710.                    } while(s_send>player[pn].soldiers);
  711.                 do {
  712.                   printf("Send how many Y Wing Starfighters ? (max of %ld) ",player[pn].ywings);
  713.                   gets(ostring);
  714.                   sscanf(ostring,"%ld",&y_send);
  715.                    } while(y_send>player[pn].ywings);
  716.  
  717.                 /** 1 ship won if sent 2 pilots and 1 ywing **/
  718.  
  719.                 pos_result=y_send;
  720.                 if(pos_result>s_send/2) pos_result=s_send/2;
  721.  
  722.                 if(spysend==0) spysend=player[pn].agents;
  723.                 if(s_send==0) s_send=player[pn].soldiers;
  724.                 if(y_send==0) y_send=player[pn].ywings;
  725.  
  726.                 if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
  727.                     {
  728.                     printf("\n\n Mission accomplished ... \n\n");
  729.                     if(player[epn].ywings==0)
  730.                         {
  731.                         stolen=0;
  732.                         printf("The enemy had NO Y-Wing Fighters.\n",player[epn].ywings);
  733.                         }
  734.                     if(((player[epn].ywings/10)<pos_result)&&(player[epn].ywings>0))
  735.                         {
  736.                         stolen=player[epn].ywings/10;
  737.                         printf("The enemy had only %ld Y-Wing Fighters.\n",player[epn].ywings);
  738.                         }
  739.                     if((player[epn].ywings>pos_result)&&(player[epn].ywings>0))
  740.                         {
  741.                         stolen=pos_result;
  742.                         stolen=stolen/10;
  743.                         }
  744.                     if(stolen>0)
  745.                         {
  746.                         printf("You steal %ld Y-Wing Fighters...\n\n",stolen);
  747.                         printf("They cost you %ld credits each. (Mission cost/ships stolen)\n\n",price5/stolen);
  748.                         if((price5/(stolen+1)>price_ywings)&&(stolen>0))
  749.                             {
  750.                             printf("Hmmm ... wasn't so good ... a new one costs only %ld credits.\n",price_ywings);
  751.                             printf("But anyway, furthermore your enemy has now less !!!\n\n");
  752.                             }
  753.                         player[pn].ywings=player[pn].ywings+stolen;
  754.                         player[epn].morale=player[epn].morale+1;
  755.                         player[pn].score_modifier=player[pn].score_modifier+80;
  756.                         put_datas(pn);
  757.  
  758.                         player[epn].ywings=player[epn].ywings-stolen;
  759.                         player[epn].harmony=player[epn].harmony-1;
  760.                         player[epn].score_modifier=player[epn].score_modifier-50;
  761.                         put_datas(epn);
  762.  
  763.                         sprintf(string,"%ld",stolen);
  764.                         news(45,string);
  765.                         player_msg(45,string);
  766.  
  767.                         }
  768.                     }
  769.                 else
  770.                     {
  771.                     printf("\n\nYou were caught bye %s ! \n\n",player[epn].player);
  772.                     printf("The %ld spies and %ld soldiers you sent were executed!\n",spysend,s_send);
  773.                     printf("Your enemy took the %ld Y-Wing Starfighters sent by you ... \n\n",y_send);
  774.                     printf("Next time try to send more spies, than your enemy has.\n");
  775.                     player[pn].agents=player[pn].agents-spysend;
  776.                     player[pn].ywings=player[pn].ywings-y_send;
  777.                     player[pn].soldiers=player[pn].soldiers-s_send;
  778.                     player[pn].morale=player[pn].morale-1;
  779.                     player[pn].harmony=player[pn].harmony-1;
  780.                     player[pn].score_modifier=player[pn].score_modifier-50;
  781.                     put_datas(pn);
  782.  
  783.                     player[epn].morale=player[epn].morale+1;
  784.                     player[epn].ywings=player[epn].ywings+y_send;
  785.                     player[epn].score_modifier=player[epn].score_modifier+80;
  786.                     put_datas(epn);
  787.  
  788.                     news(40,"");
  789.                     player_msg(40,"");
  790.  
  791.                     }
  792.                 press_return();
  793.                 }
  794.               }
  795.             break;
  796.         case 6: if (player[pn].credits<(price6))
  797.                 {
  798.                 printf("Not enough money\n");
  799.                 cov_type=255;
  800.                 }
  801.              else
  802.               {
  803.               if(getplayer()!=FALSE) 
  804.                 {
  805.                 player[pn].credits=player[pn].credits-price6;
  806.                 put_datas(pn);
  807.                 rocket_use=FALSE;
  808.  
  809.                 do {
  810.                   printf("Send how many agents? (max of %ld) ",player[pn].agents);
  811.                   gets(ostring);
  812.                   sscanf(ostring,"%ld",&spysend);
  813.                    } while(spysend>player[pn].agents);
  814.                 do {
  815.                   printf("Send how many soldiers ? (max of %ld) ",player[pn].soldiers);
  816.                   gets(ostring);
  817.                   sscanf(ostring,"%ld",&s_send);
  818.                    } while(s_send>player[pn].soldiers);
  819.                 do {
  820.                   printf("Send how many Y Wing Starfighters ? (max of %ld) ",player[pn].ywings);
  821.                   gets(ostring);
  822.                   sscanf(ostring,"%ld",&y_send);
  823.                    } while(y_send>player[pn].ywings);
  824.  
  825.                 /** 1 ship won if sent 2 pilots and 1 ywing **/
  826.  
  827.                 pos_result=y_send;
  828.                 if(pos_result>s_send/2) pos_result=s_send/2;
  829.  
  830.                 if(spysend==0) spysend=player[pn].agents;
  831.                 if(s_send==0) s_send=player[pn].soldiers;
  832.                 if(y_send==0) y_send=player[pn].ywings;
  833.  
  834.                 if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
  835.                     {
  836.                     printf("\n\n Mission accomplished ... \n\n");
  837.                     if(player[epn].freighters==0)
  838.                         {
  839.                         stolen=0;
  840.                         printf("The enemy had NO Freighters.\n",player[epn].freighters);
  841.                         }
  842.                     if((player[epn].freighters<pos_result)&&(player[epn].freighters>0))
  843.                         {
  844.                         stolen=player[epn].freighters;
  845.                         printf("The enemy had only %ld Freighters.\n",player[epn].freighters);
  846.                         }
  847.                     if((player[epn].freighters>pos_result)&&(player[epn].freighters>0))
  848.                         stolen=pos_result;
  849.                     if(stolen>0)
  850.                         {
  851.                         printf("You steal %ld Freighters...\n\n",stolen);
  852.                         printf("They cost you %ld credits each. (Mission cost/ships stolen)\n\n",price5/stolen);
  853.                         if((price5/stolen>price_freighters)&&(stolen>0))
  854.                             {
  855.                             printf("Hmmm ... wasn't so good ... a new one costs only %ld credits.\n",price_freighters);
  856.                             printf("But anyway, furthermore your enemy has now less !!!\n\n");
  857.                             }
  858.                         player[pn].freighters=player[pn].freighters+stolen;
  859.                         player[pn].score_modifier=player[pn].score_modifier+80;
  860.                         put_datas(pn);
  861.  
  862.                         player[epn].freighters=player[epn].freighters-stolen;
  863.                         player[epn].harmony=player[epn].harmony-1;
  864.                         player[epn].score_modifier=player[epn].score_modifier-50;
  865.                         put_datas(epn);
  866.  
  867.                         sprintf(string,"%ld",stolen);
  868.                         news(46,string);
  869.                         player_msg(46,string);
  870.  
  871.                         }
  872.                     }
  873.  
  874.                 else
  875.                     {
  876.                     printf("\n\nYou were caught bye %s ! \n\n",player[epn].player);
  877.                     printf("The %ld spies and %ld soldiers you sent were executed!\n",spysend,s_send);
  878.                     printf("Your enemy took the %ld Y-Wing Starfighters sent by you ... \n\n",y_send);
  879.                     printf("Next time try to send more spies, than your enemy has.\n");
  880.                     player[pn].agents=player[pn].agents-spysend;
  881.                     player[pn].ywings=player[pn].ywings-y_send;
  882.                     player[pn].soldiers=player[pn].soldiers-s_send;
  883.                     player[pn].morale=player[pn].morale-1;
  884.                     player[pn].harmony=player[pn].harmony-1;
  885.                     player[pn].score_modifier=player[pn].score_modifier-50;
  886.                     put_datas(pn);
  887.  
  888.                     player[epn].morale=player[epn].morale+1;
  889.                     player[epn].ywings=player[epn].ywings+y_send;
  890.                     player[epn].score_modifier=player[epn].score_modifier+80;
  891.                     put_datas(epn);
  892.  
  893.                     news(41,"");
  894.                     player_msg(41,"");
  895.  
  896.                     }
  897.                 press_return();
  898.                 }
  899.               }
  900.             break;
  901.         case 7: printf("\nNOT YET INCLUDED ...\n\n");
  902.             break;
  903.         case 8: if (player[pn].credits<(price8))
  904.                 {
  905.                 printf("Not enough money\n");
  906.                 cov_type=255;
  907.                 }
  908.              else
  909.               {
  910.               player[pn].credits=player[pn].credits-price8;
  911.               put_datas(pn);
  912.               printf("\n\n Getting Information : \n");
  913.               printf("-----------------------\n");
  914.  
  915.               chances=get_missiledefense(pn);
  916.               printf("\nMissile defense is at   : %d%% (90 %% maximum)\n",chances);
  917.               printf("That means the enemy has a chance of %d%% to hit you with a missile.\n\n",100-chances);
  918.  
  919.               offense = get_offense(pn);
  920.               defense = get_defense(pn);
  921.  
  922.               printf("Your army offensive strength : %d points\n",offense);
  923.               printf("Your army defensive strength : %d points\n\n\n",defense);
  924.               press_return();
  925.               }
  926.             break;
  927.         case 9: printf("\n\nPublic Poll:\n");
  928.             printf("------------\n");
  929.             printf("Public harmony       : %s (%-2d)\n",harmony_level(2,player[pn].harmony),player[pn].harmony);
  930.             printf("Soldiers morale      : %s (%-2d)\n",harmony_level(1,player[pn].morale),player[pn].morale);
  931.             printf("Technologie Level    : %s (%-2d)\n",harmony_level(4,player[pn].tech_level),player[pn].tech_level);
  932.             printf("Populations health   : %s (%-2d)\n\n",harmony_level(3,player[pn].health),player[pn].health);
  933.             press_return();
  934.             break;
  935.         default: 
  936.             break;
  937.       }
  938.      } while((cov_type<0)||(cov_type>9));
  939. }
  940.  
  941. /********************************************************************/
  942. covert_stage()
  943. {
  944. char ostring[80],xstring[80];
  945. long chance;
  946. long z;
  947. long spysend;
  948. long cov_type;
  949. long cmod,cmod2;
  950.  
  951. if(player[pn].agents<1) 
  952.   return;
  953.  
  954. printf("\nConduct covert activities? [y/N] ");
  955. gets(ostring);
  956. ostring[0]=toupper(ostring[0]);
  957. if(ostring[0]!='Y') 
  958.     return;
  959.  
  960. if(sol_work==1) 
  961.     {
  962.     printf("\nYour covert agency refuses to work since you didn't pay the\n");
  963.     printf("enough.\n");
  964.     return;
  965.     }
  966. if(getplayer()!=FALSE) 
  967.     {
  968.     rocket_use=FALSE;
  969.     chance=50;
  970.     if(player[epn].agents>player[pn].agents) 
  971.         {
  972.         cmod2 = (( (player[pn].agents+1)/(player[epn].agents+1)  )*100.0);
  973.         chance = chance - cmod2;
  974.         } 
  975.     else 
  976.         {
  977.         cmod2 = (( (player[epn].agents+1)/(player[pn].agents+1)  )*100.0);
  978.         chance = chance + cmod2;
  979.         }
  980.     if(chance<20) chance=20;
  981.     if(chance>80) chance=80;
  982.  
  983.     do
  984.      { 
  985.       printf("\n\nMission types: \n");
  986.       printf("1. Spy on military\n");
  987.       printf("2. Spy on government\n");
  988.       printf("3. Spy on military & government\n\n");
  989.       printf("Choice: ");
  990.       gets(ostring);
  991.       sscanf(ostring,"%d",&cov_type);
  992.          }
  993.     while((cov_type>3)||(cov_type<1));
  994.  
  995.     switch(cov_type) 
  996.     {
  997.         case 1: cmod = -5; 
  998.             break;
  999.         case 2: cmod = 0; 
  1000.             break;
  1001.         case 3: cmod = -40; 
  1002.             break;
  1003.     }
  1004.  
  1005.     chance = chance + cmod;
  1006.  
  1007.     printf("\nYou have a base %d%% chance of success with %s.\n",chance,player[epn].player);
  1008.     printf("For every additional agent you send, your chance increases 1% to a maximum\n");
  1009.     printf("of 90%.\n\n");
  1010.     agget: 
  1011.     do
  1012.      {
  1013.       printf("Send how many agents? (max of %ld) ",player[pn].agents);
  1014.       gets(ostring);
  1015.       sscanf(ostring,"%d",&spysend);
  1016.      }
  1017.     while(spysend>player[pn].agents);
  1018.     if(spysend<1)
  1019.         {
  1020.         covert_stage(); 
  1021.         return;
  1022.         }
  1023.     chance = chance + spysend;
  1024.     if(chance>90) 
  1025.         chance=90;
  1026.  
  1027.     if( (rnd(100)) < chance ) 
  1028.         {
  1029.         printf("\n\nMission accomplished!\n");
  1030.         spy_show(cov_type);
  1031.         player[pn].score_modifier = player[pn].score_modifier + 10;
  1032.         } 
  1033.     else 
  1034.         {
  1035.         printf("\n\nYou were caught!  All the spies you sent were executed!\n");
  1036.         player[pn].agents = player[pn].agents - spysend;
  1037.         player[pn].harmony = player[pn].harmony - 1;
  1038.         news((5),"");
  1039.         player_msg((5),"");
  1040.         player[pn].score_modifier = player[pn].score_modifier - 5;
  1041.         }
  1042.  
  1043.     }
  1044.  
  1045. }
  1046.  
  1047.  
  1048. /********************************************************************/
  1049. spy_show(long type)
  1050. {
  1051. char ostring[80];
  1052. char s[100];
  1053.  
  1054. printf("\n%s:\n",player[epn].player);
  1055.  
  1056. if(type==1) 
  1057.     {
  1058.     printf("[Troops=%ld] [Fighters=%ld]\n",player[epn].soldiers,player[epn].fighters);
  1059.     printf("[Def. Stations=%ld] [Heavy Cruisers=%ld]\n",player[epn].defense,player[epn].cruisers);
  1060.     printf("[Carriers=%ld]",player[epn].carriers);
  1061.     printf("\nTheir army exhibits %s morale.\n\n",harmony_level(1,player[epn].morale));
  1062.     }
  1063.  
  1064. if(type==2) 
  1065.     {
  1066.     printf("Treasury:     %ld Credits/%ld on a bank account\n",player[epn].credits,player[epn].acredits);
  1067.     printf("Population:   %d Million (%s)\n",player[epn].population,harmony_level(2,player[epn].harmony));
  1068.     printf("Food:         %ld Kilotons\n",player[epn].food);
  1069.     printf("Agents:       %ld\n",player[epn].agents);
  1070.     printf("[Agricultural=%ld] [Mining=%ld] [Trade=%ld] [Tourism=%ld]\n",player[epn].foodp,player[epn].orep,player[epn].tradep,player[epn].tourismp);
  1071.     printf("[Defense=%ld] [Governing=%ld]\n",player[epn].defensep,player[epn].governp);
  1072.     }
  1073. if(type==3) 
  1074.     show_stats(epn);
  1075.  
  1076. printf("\n");
  1077.  
  1078. }
  1079.  
  1080. /********************************************************************/
  1081. ask_battle()
  1082. {
  1083. char ostring[80]="N";
  1084.  
  1085. if((player[pn].protection>0)&&(player[pn].soldiers>0))
  1086.     {
  1087.     printf("\nDo you wish to do battle today (doing so voids your protection)? [y/N] ");
  1088.     gets(ostring);
  1089.     }
  1090. if((player[pn].protection==0)&&(player[pn].soldiers>0))
  1091.     {
  1092.     printf("\nDo you wish to do battle today? [Y/n] ");
  1093.     gets(ostring);
  1094.     }
  1095.  
  1096. ostring[0]=toupper(ostring[0]);
  1097.  
  1098. if(player[pn].protection>0) 
  1099.     {
  1100.     if(ostring[0]!='Y') 
  1101.         printf("\n");
  1102.     else 
  1103.         {
  1104.         printf("\n");
  1105.         battle_stage();
  1106.         }
  1107.     } 
  1108. else 
  1109.     if(ostring[0]!='N') 
  1110.         battle_stage();
  1111.  
  1112. }
  1113.  
  1114. ----> END OF PART 3 <----
  1115. -- 
  1116.       Internet: Dr_who@pegasus.ch         __
  1117.       Phone   : ++41-71-71 70 42         ///
  1118.       FAX     : ++41-71-71 27 87    __  ///    "I'M THE DOCTORE BECAUSE 
  1119.                                     \\\///      IT'S FUN FUN FUN ! "
  1120.      BBS Phone: ++41-71-71 55 77     \XX/       - TOM BAKER 
  1121.       X.25    : +228 4752 1 2574        
  1122.