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 >
Wrap
Internet Message Format
|
1993-06-06
|
33KB
Path: uunet!mcsun!chsun!pega!dr_who
From: dr_who@pegasus.ch (Sysop of PEGASUS)
Newsgroups: vmsnet.sources.games
Subject: SPCEMP.C Part 03/06
Message-ID: <1993Jun7.093129.124@pegasus.ch>
Date: 7 Jun 93 09:31:29 +0200
Organization: Pegasus BBS, Switzerland
Lines: 1111
Xref: uunet vmsnet.sources.games:736
----> START OF PART 3 <----
/********************************************************************/
buyitem(long n)
{
unsigned long price;
unsigned long amount;
unsigned long maxval;
unsigned long ellig;
char ostring[80];
char astring[80];
switch(n) {
case 1: printf("Soldier troop\n");
price=price_soldiers;
break;
case 2: printf("Pilot\n");
price=price_pilots;
break;
case 3: printf("Intelligence agent\n");
price=price_agents;
break;
case 4: printf("X-Wing Fighter craft\n");
price=price_fighters;
break;
case 5: printf("Y-Wing Fighter craft\n");
price=price_ywings;
break;
case 6: printf("Heavy cruiser\n");
price=price_cruisers;
break;
case 7: printf("Imperial Starfighter\n");
price=price_starfighters;
break;
case 8: printf("Death Star\n");
price=price_deathstars;
break;
case 10: printf("Carrier\n");
price=price_carriers;
break;
case 11: printf("MK IV freighter\n");
price=price_freighters;
break;
case 12: printf("Defense station\n");
price=price_defense;
break;
case 13: printf("Missile Defense Station\n");
price=price_missiledefense;
break;
case 15: printf("Generic planet\n");
price=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep));
if ((player[pn].credits/price)>50)
price=player[pn].credits/50;
break;
case 16: printf("Governing planet\n");
price=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep));
price=price+(price/2);
break;
}
if(price>player[pn].credits) {
printf("\nYou don't have enough credits to buy even one!\n");
return;
}
do
{
printf("\n");
maxval=(player[pn].credits/price);
if(n==1) {
ellig = (((((unsigned long)player[pn].population) * 1000000)/5) - (player[pn].soldiers*100));
printf("\nThere are currently %ld eligible men in your population, so you\n",ellig);
ellig = ellig / 100;
printf("may draft up to %ld troops.\n",ellig);
if(ellig<maxval) maxval=ellig;
}
printf("Buy how many? Max %ld. [0] ",maxval);
gets(ostring);
if(ostring[0]==0) return;
sscanf(ostring,"%ld",&amount);
if(strlen(ostring)<1)
amount=0;
if(amount<0)
printf("Use the sellmenu if you have anything to give..");
if((amount*price)>player[pn].credits)
{
sprintf(ostring,"Sorry, the most you can afford is %ld.",(player[pn].credits/price));
printf(ostring);
}
}
while((amount<0)||((amount*price)>player[pn].credits));
if ((amount>ellig) && (n==1))
printf("Sorry, there aren't that many elligible men.\n");
player[pn].credits=player[pn].credits-(price*amount);
switch(n) {
case 1: player[pn].soldiers=player[pn].soldiers+amount;
break;
case 2: player[pn].pilots=player[pn].pilots+amount;
break;
case 3: player[pn].agents=player[pn].agents+amount;
break;
case 4: player[pn].fighters=player[pn].fighters+amount;
break;
case 5: player[pn].ywings=player[pn].ywings+amount;
break;
case 6: player[pn].cruisers=player[pn].cruisers+amount;
break;
case 7: player[pn].starfighters=player[pn].starfighters+amount;
break;
case 8: player[pn].deathstars=player[pn].deathstars+amount;
break;
case 10: player[pn].carriers=player[pn].carriers+amount;
break;
case 11: player[pn].freighters=player[pn].freighters+amount;
break;
case 12: player[pn].defense=player[pn].defense+amount;
break;
case 13: player[pn].missiledefense=player[pn].missiledefense+amount;
break;
case 15: giveplanets(amount);
break;
case 16: player[pn].governp=player[pn].governp+amount;
break;
}
}
/********************************************************************/
giveplanets(unsigned long amount)
{
char ostring[80];
char astring[80];
unsigned long amt;
long p_i;
p_i = (int)amount;
if(p_i>100) p_i = 100;
if(p_i<0) p_i = 100;
pop_increase = pop_increase + p_i;
while(amount!=0)
{
do
{
printf("\nYou can take %ld more planets.",amount);
printf("\n[A]gricultural, [O]re mining, [D]efense, [T]rade or touris[M] ? ");
gets(ostring);
ostring[0]=toupper(ostring[0]);
}
while((ostring[0]!='A')&&(ostring[0]!='O')&&(ostring[0]!='D')&&(ostring[0]!='T')&&(ostring[0]!='M'));
do
{
printf("\nHow many of these planets do you want? ");
gets(astring);
sscanf(astring,"%ld",&amt);
if(amt>amount)
printf("You can only get %ld more!\n",amount);
}
while(amt>amount);
amount=amount-amt;
switch(ostring[0])
{
case 'A': player[pn].foodp=player[pn].foodp+amt; break;
case 'O': player[pn].orep=player[pn].orep+amt; break;
case 'D': player[pn].defensep=player[pn].defensep+amt; break;
case 'T': player[pn].tradep=player[pn].tradep+amt; break;
case 'M': player[pn].tourismp=player[pn].tourismp+amt; break;
}
} /* amount!=0 */
}
/********************************************************************/
missile_stage()
{
char ostring[80],xstring[80];
long chance;
long z;
long spysend;
long cov_type=0;
long cmod,cmod2;
long pvalue=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep+player[pn].tradep+player[pn].tourismp));
long price2=pvalue*3+300000;
long price3=pvalue*18+4000000;
long price4=pvalue*20+5000000;
long price5=pvalue*20+6000000;
long price6=pvalue*25+5000000;
long price7=pvalue*5+500000;
long price8=pvalue*6+600000;
if(player[pn].agents<1)
return;
if(sol_work==1)
{
printf("\nYour agency refuses to work since you didn't pay the\n");
printf("enough.\n");
return;
}
do
{
cls();
printf("\n\nMission types: (what does it ?) COST:\n");
printf("----------------------------------------------------------------------\n");
printf("1. Missile : Anti-Matter Warhead [ %-9ld cr ]\n",price2);
printf("2. Missiles: Thermo-Nuclear Warheads [ %-9ld cr ]\n",price3);
printf("3. Missiles: Chemical Warheads [ %-9ld cr ]\n",price4);
printf("4. Missiles: Conventional Warheads [ %-9ld cr ]\n",price5);
printf("5. Missiles: Anti-Matter Warheads [ %-9ld cr ]\n\n",price6);
printf("8. Military traitor [ %-9ld cr ]\n",price7);
printf("9. Goverment traitor [ %-9ld cr ]\n",price8);
printf("----------------------------------------------------------------------\n");
printf("\n[Availble Money: %ld cr.] Choice: ",player[pn].credits);
gets(ostring);
sscanf(ostring,"%d",&cov_type);
switch(cov_type)
{
case 1: if (player[pn].credits<(price2))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price2);
put_datas(pn);
if (player[epn].governp>0)
{
player[epn].governp=player[epn].governp-1;
printf("You were successful\n");
printf("Enemy lost 1 Government Planet !\n\n");
news(102,"");
player_msg(102,"");
put_datas(epn);
}
else
{
printf("Your Enemy did not even have one !\n");
printf("And you lost %ld Cr.\n",price2);
printf("Next time I would send a spy first !\n");
}
}
else
printf("Action aborted !\n");
}
break;
case 2: if (player[pn].credits<(price3))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price3);
missile_pic();
printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
sleep(1);
if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
chance=9000;
else
chance=player[epn].missiledefense+(4*player[epn].defensep);
if(rnd(10000)>chance)
{
printf("\nYour missiles are throu the defense shield ...\n");
sleep(1);
printf("\nImpact .... bouuummmm ...\n\n");
rocket_use=FALSE;
player[pn].score_modifier=player[pn].score_modifier+1000;
player[pn].morale++;
put_datas(pn);
player[epn].harmony=player[epn].harmony-15;
if (player[epn].harmony>-5)
player[epn].harmony=player[epn].harmony-5;
if (player[epn].population>6)
player[epn].population=player[epn].population-(player[epn].population/3);
if (player[epn].cruisers>0)
player[epn].pilots=player[epn].pilots/3;
player[epn].score_modifier=player[epn].score_modifier-5000;
player[epn].morale--;
player[epn].health=player[epn].health-3;
player[epn].health_radioactivity= -1;
printf("You were successful !!!!\n\n");
printf("Enemy lost: 30 %% of his citizen,\n");
printf(" and 30 %% of his civil pilots\n");
printf("ENEMY GETS SEVERE HEALTH PROBLEMS WITHIN HIS POPULATION\n");
news(103,"");
player_msg(103,"");
put_datas(epn);
}
else
{
printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
news(153,"");
player_msg(153,"");
}
}
else
printf("Action aborted !\n");
}
break;
case 3: if (player[pn].credits<(price4))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price4);
missile_pic();
printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
sleep(1);
if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
chance=9000;
else
chance=player[epn].missiledefense+(4*player[epn].defensep);
if(rnd(10000)>chance)
{
printf("\nYour missiles are throu the defense shield ...\n");
sleep(1);
printf("\nImpact .... bouuummmm ...\n\n");
rocket_use=FALSE;
player[pn].score_modifier=player[pn].score_modifier+1000;
player[pn].morale++;
put_datas(pn);
player[epn].foodp=0;
player[epn].food=0;
player[epn].harmony=player[epn].harmony-5;
player[epn].score_modifier=player[epn].score_modifier-5000;
player[epn].morale--;
printf("You were successful !!!!\n\n");
printf("Enemy lost all foodproctuction units and food in stock,\n\n");
news(104,"");
player_msg(104,"");
put_datas(epn);
}
else
{
printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
news(154,"");
player_msg(154,"");
}
}
else
printf("Action aborted !\n");
}
break;
case 4: if (player[pn].credits<(price5))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price5);
missile_pic();
printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
sleep(1);
if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
chance=9000;
else
chance=player[epn].missiledefense+(4*player[epn].defensep);
if(rnd(10000)>chance)
{
printf("\nYour missiles are throu the defense shield ...\n");
sleep(1);
printf("\nImpact .... bouuummmm ...\n\n");
rocket_use=FALSE;
player[pn].score_modifier=player[pn].score_modifier+1000;
player[pn].morale++;
put_datas(pn);
if (player[epn].soldiers>0)
player[epn].soldiers=player[epn].soldiers/2;
if (player[epn].fighters>0)
player[epn].fighters=player[epn].fighters/2;
if (player[epn].cruisers>0)
player[epn].cruisers=player[epn].cruisers/2;
if (player[epn].ywings>0)
player[epn].ywings=player[epn].ywings/2;
if (player[epn].carriers>0)
player[epn].carriers=player[epn].carriers/2;
if (player[epn].missiledefense>0)
player[epn].missiledefense=player[epn].missiledefense/2;
if (player[epn].starfighters>0)
player[epn].starfighters=player[epn].starfighters/2;
if (player[epn].deathstars>0)
player[epn].deathstars=player[epn].deathstars/2;
player[epn].score_modifier=player[epn].score_modifier-5000;
player[epn].morale--;
printf("You were successful !!!!\n\n");
printf("Enemy lost [%-6ld] Soldiers,\n",player[epn].soldiers);
printf(" [%-6ld] X-wing Fighters,\n",player[epn].fighters);
printf(" [%-6ld] Y-wing Fighters,\n",player[epn].ywings);
printf(" [%-6ld] Heavy Cruisers,\n",player[epn].cruisers);
printf(" [%-6ld] Imperial Starfighters,\n",player[epn].starfighters);
printf(" [%-6ld] Carriers,\n",player[epn].carriers);
printf(" [%-6ld] MissileDefense-Stations,\n",player[epn].missiledefense);
printf(" [%-6ld] Death Stars !\n\n",player[epn].deathstars);
news(105,"");
player_msg(105,"");
put_datas(epn);
}
else
{
printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
news(155,"");
player_msg(155,"");
}
}
else
printf("Action aborted !\n");
}
break;
case 5: if (player[pn].credits<(price6))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price6);
missile_pic();
printf("\nYour missiles are heading to %s's planets ...\n",player[epn].player);
sleep(1);
if((player[epn].missiledefense+(40*player[epn].defensep))>9000)
chance=9000;
else
chance=player[epn].missiledefense+(4*player[epn].defensep);
if(rnd(10000)>chance)
{
printf("\nYour missiles are throu the defense shield ...\n");
sleep(1);
printf("\nImpact .... bouuummmm ...\n\n");
rocket_use=FALSE;
player[pn].score_modifier=player[pn].score_modifier+1000;
player[pn].morale++;
put_datas(pn);
if (player[epn].governp>0)
player[epn].governp=player[epn].governp/2;
player[epn].score_modifier=player[epn].score_modifier-5000;
player[epn].harmony=player[epn].harmony-5;
player[epn].morale--;
printf("You were successful !!!!\n\n");
printf("Enemy lost [%-6ld] Governing planets.\n\n",player[epn].governp/2);
news(106,"");
player_msg(106,"");
put_datas(epn);
}
else
{
printf("\nYour missiles were demolished by the enemies defense system ...\n\n");
news(156,"");
player_msg(156,"");
}
}
else
printf("Action aborted !\n");
}
break;
case 8: if (player[pn].credits<(price7))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-(price7);
put_datas(pn);
player[epn].morale=player[epn].morale-2;
printf("You were successful\n");
printf("Enemy lost 2 Moral Points !\n\n");
news(108,"");
player_msg(108,"");
put_datas(epn);
}
else
printf("Action aborted !\n");
}
break;
case 9: if (player[pn].credits<(price8))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()==TRUE)
{
rocket_use=FALSE;
player[pn].credits=player[pn].credits-price8;
put_datas(pn);
player[epn].harmony=player[epn].harmony-2;
printf("You were successful\n");
printf("Enemy lost 2 Harmony Points !\n\n");
news(109,"");
player_msg(109,"");
put_datas(epn);
}
else
printf("Action aborted !\n");
}
break;
default:
break;
}
}
while((cov_type<0)||(cov_type>6));
}
/********************************************************************/
missile_pic()
{
if (player[pn].terminal>0)
{
printf(" .\n");
printf(" . .\n");
printf(" . . /\\\n");
printf(" / \\ .\n");
printf(" | S |\n");
printf(" . | P | .\n");
printf(" . | A |\n");
printf(" | C | .\n");
printf(" | E | .\n");
printf(" . |----|\n");
printf(" | | . .\n");
printf(" . | R |\n");
printf(" | O |\n");
printf(" /| C |\\\n");
printf(" | | K | |\n");
printf(" | | E | | .\n");
printf(" . | | T | | .\n");
printf(" |_| __ |_|\n");
printf("_____________________ /_/__/\\__\\_\\ _____________________\n");
press_return();
}
}
/********************************************************************/
spying_stage()
{
char ostring[80],xstring[80];
char string[40];
long chance;
long z;
long cov_type=0;
long cmod,cmod2;
long pvalue=20000+(500*(player[pn].orep+player[pn].foodp+player[pn].defensep+player[pn].tradep+player[pn].tourismp));
unsigned long offense=0;
unsigned long defense=0;
unsigned long chances=0;
long spysend;
long y_send=0;
long s_send=0;
long pos_result=0;
long stolen=0;
long price2=pvalue*3;
long price5=player[pn].ywings*100;
long price6=player[pn].freighters*100+5000;
long price7=pvalue*4;
long price8=20000;
if(player[pn].agents<1)
return;
if(sol_work==1)
{
printf("\nYour agency refuses to work since you didn't pay them\n");
printf("enough.\n");
return;
}
do
{
cls();
printf("\n\nMission types: COST:\n");
printf("----------------------------------------------------------------------\n");
printf("1. Covert Mission: Spy on Military and/or Government[ THAT'S FREE ]\n");
printf("2. Covert Mission: Spy on the Army strength [ %9ld cr ]\n\n",price2);
if(player[pn].tech_level>4)
printf("5. Pirating: Steal enemy's Y-Wing starfighters [ %9ld cr ]\n",price5);
printf("6. Pirating: Steal enemy's Mk-Freighters [ %9ld cr ]\n\n",price6);
/* printf("7. Pirating: Attack enemy's TradePlanets [ %9ld cr ]\n",price7);
*/
printf("8. Show own Army strength (offense and defense) [ %9ld cr ]\n",price8);
printf("9. Secret Public Poll under your people [ THAT'S FREE ]\n");
printf("----------------------------------------------------------------------\n");
printf("\n[Availble Money: %ld cr.] Choice: ",player[pn].credits);
gets(ostring);
sscanf(ostring,"%d",&cov_type);
switch(cov_type)
{
case 1: covert_stage();
break;
case 2: if (player[pn].credits<(price2))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()!=FALSE)
{
player[pn].credits=player[pn].credits-price2;
put_datas(pn);
rocket_use=FALSE;
do {
printf("Send how many agents? (max of %ld) ",player[pn].agents);
gets(ostring);
sscanf(ostring,"%ld",&spysend);
} while(spysend>player[pn].agents);
if(spysend==0) spysend=player[pn].agents;
if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
{
printf("\n Mission accomplished ... \n\n");
chances=get_missiledefense(epn);
printf("\nMissile defense is at : %d%% (90 %% maximum)\n",chances);
printf("That means that you have a chance of %d%% to hit your enemy with a missile.\n\n",100-chances);
offense = get_offense(epn);
defense = get_defense(epn);
printf("Your enemys army offensive strength : %d points\n",offense);
printf("Your enemys army defensive strength : %d points\n\n",defense);
printf("By the way, your enemy is a(n) %s.\n\n\n",race[player[epn].race].name);
}
else
{
printf("\n\nYou were caught! The %ld spies you sent were executed!\n",spysend);
printf("Next time try to send more spies, than your enemy has.\n");
player[pn].agents=player[pn].agents-spysend;
put_datas(pn);
news((5),"");
player_msg((5),"");
}
press_return();
}
}
break;
case 5: if ((player[pn].credits<price5)||(player[pn].tech_level<=4))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()!=FALSE)
{
player[pn].credits=player[pn].credits-price5;
put_datas(pn);
rocket_use=FALSE;
do {
printf("Send how many agents? (max of %ld) ",player[pn].agents);
gets(ostring);
sscanf(ostring,"%ld",&spysend);
} while(spysend>player[pn].agents);
do {
printf("Send how many soldiers ? (max of %ld) ",player[pn].soldiers);
gets(ostring);
sscanf(ostring,"%ld",&s_send);
} while(s_send>player[pn].soldiers);
do {
printf("Send how many Y Wing Starfighters ? (max of %ld) ",player[pn].ywings);
gets(ostring);
sscanf(ostring,"%ld",&y_send);
} while(y_send>player[pn].ywings);
/** 1 ship won if sent 2 pilots and 1 ywing **/
pos_result=y_send;
if(pos_result>s_send/2) pos_result=s_send/2;
if(spysend==0) spysend=player[pn].agents;
if(s_send==0) s_send=player[pn].soldiers;
if(y_send==0) y_send=player[pn].ywings;
if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
{
printf("\n\n Mission accomplished ... \n\n");
if(player[epn].ywings==0)
{
stolen=0;
printf("The enemy had NO Y-Wing Fighters.\n",player[epn].ywings);
}
if(((player[epn].ywings/10)<pos_result)&&(player[epn].ywings>0))
{
stolen=player[epn].ywings/10;
printf("The enemy had only %ld Y-Wing Fighters.\n",player[epn].ywings);
}
if((player[epn].ywings>pos_result)&&(player[epn].ywings>0))
{
stolen=pos_result;
stolen=stolen/10;
}
if(stolen>0)
{
printf("You steal %ld Y-Wing Fighters...\n\n",stolen);
printf("They cost you %ld credits each. (Mission cost/ships stolen)\n\n",price5/stolen);
if((price5/(stolen+1)>price_ywings)&&(stolen>0))
{
printf("Hmmm ... wasn't so good ... a new one costs only %ld credits.\n",price_ywings);
printf("But anyway, furthermore your enemy has now less !!!\n\n");
}
player[pn].ywings=player[pn].ywings+stolen;
player[epn].morale=player[epn].morale+1;
player[pn].score_modifier=player[pn].score_modifier+80;
put_datas(pn);
player[epn].ywings=player[epn].ywings-stolen;
player[epn].harmony=player[epn].harmony-1;
player[epn].score_modifier=player[epn].score_modifier-50;
put_datas(epn);
sprintf(string,"%ld",stolen);
news(45,string);
player_msg(45,string);
}
}
else
{
printf("\n\nYou were caught bye %s ! \n\n",player[epn].player);
printf("The %ld spies and %ld soldiers you sent were executed!\n",spysend,s_send);
printf("Your enemy took the %ld Y-Wing Starfighters sent by you ... \n\n",y_send);
printf("Next time try to send more spies, than your enemy has.\n");
player[pn].agents=player[pn].agents-spysend;
player[pn].ywings=player[pn].ywings-y_send;
player[pn].soldiers=player[pn].soldiers-s_send;
player[pn].morale=player[pn].morale-1;
player[pn].harmony=player[pn].harmony-1;
player[pn].score_modifier=player[pn].score_modifier-50;
put_datas(pn);
player[epn].morale=player[epn].morale+1;
player[epn].ywings=player[epn].ywings+y_send;
player[epn].score_modifier=player[epn].score_modifier+80;
put_datas(epn);
news(40,"");
player_msg(40,"");
}
press_return();
}
}
break;
case 6: if (player[pn].credits<(price6))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
if(getplayer()!=FALSE)
{
player[pn].credits=player[pn].credits-price6;
put_datas(pn);
rocket_use=FALSE;
do {
printf("Send how many agents? (max of %ld) ",player[pn].agents);
gets(ostring);
sscanf(ostring,"%ld",&spysend);
} while(spysend>player[pn].agents);
do {
printf("Send how many soldiers ? (max of %ld) ",player[pn].soldiers);
gets(ostring);
sscanf(ostring,"%ld",&s_send);
} while(s_send>player[pn].soldiers);
do {
printf("Send how many Y Wing Starfighters ? (max of %ld) ",player[pn].ywings);
gets(ostring);
sscanf(ostring,"%ld",&y_send);
} while(y_send>player[pn].ywings);
/** 1 ship won if sent 2 pilots and 1 ywing **/
pos_result=y_send;
if(pos_result>s_send/2) pos_result=s_send/2;
if(spysend==0) spysend=player[pn].agents;
if(s_send==0) s_send=player[pn].soldiers;
if(y_send==0) y_send=player[pn].ywings;
if(spysend*race[player[pn].race].perception>player[epn].agents*race[player[epn].race].perception)
{
printf("\n\n Mission accomplished ... \n\n");
if(player[epn].freighters==0)
{
stolen=0;
printf("The enemy had NO Freighters.\n",player[epn].freighters);
}
if((player[epn].freighters<pos_result)&&(player[epn].freighters>0))
{
stolen=player[epn].freighters;
printf("The enemy had only %ld Freighters.\n",player[epn].freighters);
}
if((player[epn].freighters>pos_result)&&(player[epn].freighters>0))
stolen=pos_result;
if(stolen>0)
{
printf("You steal %ld Freighters...\n\n",stolen);
printf("They cost you %ld credits each. (Mission cost/ships stolen)\n\n",price5/stolen);
if((price5/stolen>price_freighters)&&(stolen>0))
{
printf("Hmmm ... wasn't so good ... a new one costs only %ld credits.\n",price_freighters);
printf("But anyway, furthermore your enemy has now less !!!\n\n");
}
player[pn].freighters=player[pn].freighters+stolen;
player[pn].score_modifier=player[pn].score_modifier+80;
put_datas(pn);
player[epn].freighters=player[epn].freighters-stolen;
player[epn].harmony=player[epn].harmony-1;
player[epn].score_modifier=player[epn].score_modifier-50;
put_datas(epn);
sprintf(string,"%ld",stolen);
news(46,string);
player_msg(46,string);
}
}
else
{
printf("\n\nYou were caught bye %s ! \n\n",player[epn].player);
printf("The %ld spies and %ld soldiers you sent were executed!\n",spysend,s_send);
printf("Your enemy took the %ld Y-Wing Starfighters sent by you ... \n\n",y_send);
printf("Next time try to send more spies, than your enemy has.\n");
player[pn].agents=player[pn].agents-spysend;
player[pn].ywings=player[pn].ywings-y_send;
player[pn].soldiers=player[pn].soldiers-s_send;
player[pn].morale=player[pn].morale-1;
player[pn].harmony=player[pn].harmony-1;
player[pn].score_modifier=player[pn].score_modifier-50;
put_datas(pn);
player[epn].morale=player[epn].morale+1;
player[epn].ywings=player[epn].ywings+y_send;
player[epn].score_modifier=player[epn].score_modifier+80;
put_datas(epn);
news(41,"");
player_msg(41,"");
}
press_return();
}
}
break;
case 7: printf("\nNOT YET INCLUDED ...\n\n");
break;
case 8: if (player[pn].credits<(price8))
{
printf("Not enough money\n");
cov_type=255;
}
else
{
player[pn].credits=player[pn].credits-price8;
put_datas(pn);
printf("\n\n Getting Information : \n");
printf("-----------------------\n");
chances=get_missiledefense(pn);
printf("\nMissile defense is at : %d%% (90 %% maximum)\n",chances);
printf("That means the enemy has a chance of %d%% to hit you with a missile.\n\n",100-chances);
offense = get_offense(pn);
defense = get_defense(pn);
printf("Your army offensive strength : %d points\n",offense);
printf("Your army defensive strength : %d points\n\n\n",defense);
press_return();
}
break;
case 9: printf("\n\nPublic Poll:\n");
printf("------------\n");
printf("Public harmony : %s (%-2d)\n",harmony_level(2,player[pn].harmony),player[pn].harmony);
printf("Soldiers morale : %s (%-2d)\n",harmony_level(1,player[pn].morale),player[pn].morale);
printf("Technologie Level : %s (%-2d)\n",harmony_level(4,player[pn].tech_level),player[pn].tech_level);
printf("Populations health : %s (%-2d)\n\n",harmony_level(3,player[pn].health),player[pn].health);
press_return();
break;
default:
break;
}
} while((cov_type<0)||(cov_type>9));
}
/********************************************************************/
covert_stage()
{
char ostring[80],xstring[80];
long chance;
long z;
long spysend;
long cov_type;
long cmod,cmod2;
if(player[pn].agents<1)
return;
printf("\nConduct covert activities? [y/N] ");
gets(ostring);
ostring[0]=toupper(ostring[0]);
if(ostring[0]!='Y')
return;
if(sol_work==1)
{
printf("\nYour covert agency refuses to work since you didn't pay the\n");
printf("enough.\n");
return;
}
if(getplayer()!=FALSE)
{
rocket_use=FALSE;
chance=50;
if(player[epn].agents>player[pn].agents)
{
cmod2 = (( (player[pn].agents+1)/(player[epn].agents+1) )*100.0);
chance = chance - cmod2;
}
else
{
cmod2 = (( (player[epn].agents+1)/(player[pn].agents+1) )*100.0);
chance = chance + cmod2;
}
if(chance<20) chance=20;
if(chance>80) chance=80;
do
{
printf("\n\nMission types: \n");
printf("1. Spy on military\n");
printf("2. Spy on government\n");
printf("3. Spy on military & government\n\n");
printf("Choice: ");
gets(ostring);
sscanf(ostring,"%d",&cov_type);
}
while((cov_type>3)||(cov_type<1));
switch(cov_type)
{
case 1: cmod = -5;
break;
case 2: cmod = 0;
break;
case 3: cmod = -40;
break;
}
chance = chance + cmod;
printf("\nYou have a base %d%% chance of success with %s.\n",chance,player[epn].player);
printf("For every additional agent you send, your chance increases 1% to a maximum\n");
printf("of 90%.\n\n");
agget:
do
{
printf("Send how many agents? (max of %ld) ",player[pn].agents);
gets(ostring);
sscanf(ostring,"%d",&spysend);
}
while(spysend>player[pn].agents);
if(spysend<1)
{
covert_stage();
return;
}
chance = chance + spysend;
if(chance>90)
chance=90;
if( (rnd(100)) < chance )
{
printf("\n\nMission accomplished!\n");
spy_show(cov_type);
player[pn].score_modifier = player[pn].score_modifier + 10;
}
else
{
printf("\n\nYou were caught! All the spies you sent were executed!\n");
player[pn].agents = player[pn].agents - spysend;
player[pn].harmony = player[pn].harmony - 1;
news((5),"");
player_msg((5),"");
player[pn].score_modifier = player[pn].score_modifier - 5;
}
}
}
/********************************************************************/
spy_show(long type)
{
char ostring[80];
char s[100];
printf("\n%s:\n",player[epn].player);
if(type==1)
{
printf("[Troops=%ld] [Fighters=%ld]\n",player[epn].soldiers,player[epn].fighters);
printf("[Def. Stations=%ld] [Heavy Cruisers=%ld]\n",player[epn].defense,player[epn].cruisers);
printf("[Carriers=%ld]",player[epn].carriers);
printf("\nTheir army exhibits %s morale.\n\n",harmony_level(1,player[epn].morale));
}
if(type==2)
{
printf("Treasury: %ld Credits/%ld on a bank account\n",player[epn].credits,player[epn].acredits);
printf("Population: %d Million (%s)\n",player[epn].population,harmony_level(2,player[epn].harmony));
printf("Food: %ld Kilotons\n",player[epn].food);
printf("Agents: %ld\n",player[epn].agents);
printf("[Agricultural=%ld] [Mining=%ld] [Trade=%ld] [Tourism=%ld]\n",player[epn].foodp,player[epn].orep,player[epn].tradep,player[epn].tourismp);
printf("[Defense=%ld] [Governing=%ld]\n",player[epn].defensep,player[epn].governp);
}
if(type==3)
show_stats(epn);
printf("\n");
}
/********************************************************************/
ask_battle()
{
char ostring[80]="N";
if((player[pn].protection>0)&&(player[pn].soldiers>0))
{
printf("\nDo you wish to do battle today (doing so voids your protection)? [y/N] ");
gets(ostring);
}
if((player[pn].protection==0)&&(player[pn].soldiers>0))
{
printf("\nDo you wish to do battle today? [Y/n] ");
gets(ostring);
}
ostring[0]=toupper(ostring[0]);
if(player[pn].protection>0)
{
if(ostring[0]!='Y')
printf("\n");
else
{
printf("\n");
battle_stage();
}
}
else
if(ostring[0]!='N')
battle_stage();
}
----> END OF PART 3 <----
--
Internet: Dr_who@pegasus.ch __
Phone : ++41-71-71 70 42 ///
FAX : ++41-71-71 27 87 __ /// "I'M THE DOCTORE BECAUSE
\\\/// IT'S FUN FUN FUN ! "
BBS Phone: ++41-71-71 55 77 \XX/ - TOM BAKER
X.25 : +228 4752 1 2574