/* does end of month actions */ void passmonth(char &clearformess,char canseethings) { short oldlaw[LAWNUM]; memmove(oldlaw,law,sizeof(short)*LAWNUM); int l, v, p; //TIME ADVANCE day=1; month++; if(month==13) { month=1; year++; } switch(endgamestate) { case ENDGAME_NONE: if(publicmood(-1)>60) { endgamestate=ENDGAME_CCS_APPEARANCE; attitude[VIEW_CONSERVATIVECRIMESQUAD]=0; } break; case ENDGAME_CCS_APPEARANCE: if(publicmood(-1)>80) endgamestate=ENDGAME_CCS_ATTACKS; break; case ENDGAME_CCS_ATTACKS: if(publicmood(-1)>90) endgamestate=ENDGAME_CCS_SIEGES; break; case ENDGAME_CCS_SIEGES: case ENDGAME_CCS_DEFEATED: //if(publicmood(-1)>85&&presparty!=LIBERAL_PARTY) // endgamestate=ENDGAME_MARTIALLAW; break; } //CLEAR RENT EXEMPTIONS for(l=0;l<len(location);l++) location[l]->newrental=0; //YOUR PAPER AND PUBLIC OPINION AND STUFF vector<int> nploc; for(l=0;l<len(location);l++) { if((location[l]->compound_walls & COMPOUND_PRINTINGPRESS)&& !location[l]->siege.siege&& location[l]->renting!=RENTING_CCS) nploc.push_back(l); } // Check for game over endcheck(END_DEAD); dispersalcheck(clearformess); int guardianpower=0; if(len(nploc)&&!disbanding) { //DO SPECIAL EDITIONS int loottypeindex=choosespecialedition(clearformess); if(loottypeindex!=-1) { guardianpower+=10*len(nploc); printnews(loottypeindex,len(nploc)); if(loottype[loottypeindex]->get_idname()=="LOOT_INTHQDISK"|| //For special edition xml file? -XML loottype[loottypeindex]->get_idname()=="LOOT_SECRETDOCUMENTS") { for(int l=0;l<len(nploc);l++) criminalizepool(LAWFLAG_TREASON,-1,nploc[l]); } } } int libpower[VIEWNUM]={0}; //STORIES STALE EVEN IF NOT PRINTED for(v=0;v<VIEWNUM;v++)public_interest[v]/=2; int conspower=200-attitude[VIEW_AMRADIO]-attitude[VIEW_CABLENEWS]; //HAVING SLEEPERS for(int pl=len(pool)-1;pl>0;pl--) if(pool[pl]->alive&&(pool[pl]->flag & CREATUREFLAG_SLEEPER)) sleepereffect(*pool[pl],clearformess,canseethings,libpower); //Manage graffiti for(int l=0;l<len(location);l++) // Check each location { for(int c=len(location[l]->changes)-1;c>=0;c--) // Each change to the map { if(location[l]->changes[c].flag==SITEBLOCK_GRAFFITI|| location[l]->changes[c].flag==SITEBLOCK_GRAFFITI_CCS|| location[l]->changes[c].flag==SITEBLOCK_GRAFFITI_OTHER) // Find changes that refer specifically to graffiti { int power=0,align=0; if(location[l]->changes[c].flag==SITEBLOCK_GRAFFITI) align=1; if(location[l]->changes[c].flag==SITEBLOCK_GRAFFITI_CCS) align=-1; //Purge graffiti from more secure sites (or from non-secure //sites about once every five years), but these will //influence people more for the current month if(securityable(location[l]->type)) { location[l]->changes.erase(location[l]->changes.begin()+c); power=5; } else { if(location[l]->renting==RENTING_CCS) location[l]->changes[c].flag=SITEBLOCK_GRAFFITI_CCS; // Convert to CCS tags else if(location[l]->renting==RENTING_PERMANENT) location[l]->changes[c].flag=SITEBLOCK_GRAFFITI; // Convert to LCS tags else { power=1; if(!LCSrandom(10)) location[l]->changes[c].flag=SITEBLOCK_GRAFFITI_OTHER; // Convert to other tags if(!LCSrandom(10)&&endgamestate<ENDGAME_CCS_DEFEATED&&endgamestate>0) location[l]->changes[c].flag=SITEBLOCK_GRAFFITI_CCS; // Convert to CCS tags if(!LCSrandom(30)) location[l]->changes.erase(location[l]->changes.begin()+c); // Clean up } } if(align==1) { background_liberal_influence[VIEW_LIBERALCRIMESQUAD]+=power; background_liberal_influence[VIEW_CONSERVATIVECRIMESQUAD]+=power; } else if(align==-1) { background_liberal_influence[VIEW_LIBERALCRIMESQUAD]-=power; background_liberal_influence[VIEW_CONSERVATIVECRIMESQUAD]-=power; } } } } int mediabalance=0; int issuebalance[VIEWNUM-5]; //int stimulus=0; //double cost=0; //double tax=0; //PUBLIC OPINION NATURAL MOVES for(v=0;v<VIEWNUM;v++) { // Liberal essays add their power to the effect of sleepers libpower[v]+=background_liberal_influence[v]; background_liberal_influence[v]=static_cast<short>(background_liberal_influence[v]*0.66); if(v==VIEW_LIBERALCRIMESQUADPOS) continue; if(v==VIEW_LIBERALCRIMESQUAD) continue; //if(v==VIEW_POLITICALVIOLENCE) //{ // change_public_opinion(VIEW_POLITICALVIOLENCE,-1,0); // continue; //} if(v==VIEW_CONSERVATIVECRIMESQUAD) continue; if(v!=VIEW_AMRADIO&&v!=VIEW_CABLENEWS) { issuebalance[v] = libpower[v] - conspower; mediabalance += issuebalance[v]; // Heavy randomization -- balance of power just biases the roll int roll = issuebalance[v] + LCSrandom(400)-200; // If +/-50 to either side, that side wins the tug-of-war if(roll < -50) change_public_opinion(v,-1,0); else if(roll > 50) change_public_opinion(v,1,0); else // Else random movement change_public_opinion(v,LCSrandom(2)*2-1,0); } // AM Radio and Cable News popularity slowly shift to reflect public // opinion over time -- if left unchecked, their subtle influence // on society will become a self-perpetuating Conservative nightmare! else if(v==VIEW_AMRADIO||v==VIEW_CABLENEWS) { if(publicmood(-1)<attitude[v])change_public_opinion(v,-1); else change_public_opinion(v,1); } } // Temporary Stalinizing Code (TODO: Implement the Stalinist Comrade Squad for changing public opinion, then remove this) if(stalinmode) for(int v=0;v<VIEWNUM-3;v++) { if(stalinview(v,false)) { if((attitude[v]+=3)>100) attitude[v]=100; } else { if(--attitude[v]<0) attitude[v]=0; } } // End Temporary Stalinizing Code (TODO: Implement the Stalinist Comrade Squad for changing public opinion, then remove this) // Seduction monthly experience stipends for those liberals // who have been getting it on with their love slaves/masters // in the background for(int s=0;s<len(pool);s++) { pool[s]->train(SKILL_SEDUCTION,loveslaves(*pool[s])*5); if(pool[s]->flag & CREATUREFLAG_LOVESLAVE) pool[s]->train(SKILL_SEDUCTION,5); } /******************************************************* * INTELLIGENCE REPORT * * ONLY IF SHOWMECHANICS OR SHOWWAIT IS DEFINED * * EYES ONLY - LCS PROPERTY - TOP SECRET * *******************************************************/ #if defined(SHOWMECHANICS) || defined(SHOWWAIT) if(canseethings) { music.play(MUSIC_ELECTIONS); erase(); set_color(COLOR_WHITE,COLOR_BLACK,1); mvaddstr(0,23,"LCS MONTHLY INTELLIGENCE REPORT"); mvaddstr(2,27,"CURRENT POLITICAL TRENDS"); int numviews=(endgamestate>=ENDGAME_CCS_DEFEATED||newscherrybusted<2)?VIEWNUM-1:VIEWNUM; for(int v=-1-stalinmode,y=4,x=0,pip;v<numviews;v++) { if((y-4)*2>=numviews+1+stalinmode) y=4,x=40; for(pip=2;pip>=-2;pip--) { set_alignment_color(pip,true); if(pip==2) mvaddchar(y,x+22,'\x11'); addstr("ÄÄÄ"); if(pip==-2) addchar('\x10'); } if(v>=0) pip=14-(attitude[v]*14)/100; else pip=14-(publicmood(v)*14)/100; set_alignment_color((14-pip)/3-2,true); mvaddstr(y,x,getview(v,false)); mvaddchar(y++,x+23+pip,'O'); } set_color(COLOR_GREEN,COLOR_BLACK,1); mvaddstr(23,0,"Elite Liberal "); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr("- "); set_color(COLOR_CYAN,COLOR_BLACK,1); addstr("Liberal "); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr("- "); set_color(COLOR_YELLOW,COLOR_BLACK,1); addstr("moderate "); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr("- "); set_color(COLOR_MAGENTA,COLOR_BLACK,1); addstr("Conservative "); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr("- "); set_color(COLOR_RED,COLOR_BLACK,1); addstr("Arch-Conservative"); set_color(COLOR_WHITE,COLOR_BLACK,0); mvaddstr(24,0,"Press any key to reflect on these poll numbers."); clearformess=1; getkey(); } #endif /******************************************************* * * * END INTELLIGENCE REPORT * * * *******************************************************/ //ELECTIONS if(month==11){elections(clearformess,canseethings);clearformess=1;} //SUPREME COURT if(month==6){supremecourt(clearformess,canseethings);clearformess=1;} //CONGRESS congress(clearformess,canseethings);clearformess=1; //DID YOU WIN? if(wincheck()) { liberalagenda(1); savehighscore(END_WON); reset(savefile_name); viewhighscores(); end_game(); } //CONTROL LONG DISBANDS if(disbanding&&year-disbandtime>=50) { music.play(MUSIC_DEFEAT); set_color(COLOR_WHITE,COLOR_BLACK,1); erase(); move(12,10); addstr("The Liberal Crime Squad is now just a memory.", gamelog); gamelog.newline(); getkey(); set_color(COLOR_WHITE,COLOR_BLACK,0); erase(); move(12,12); addstr("The last LCS members have all been hunted down.", gamelog); gamelog.newline(); getkey(); set_color(COLOR_BLACK,COLOR_BLACK,1); erase(); move(12,14); addstr("They will never see the utopia they dreamed of...", gamelog); gamelog.newline(); gamelog.nextMessage(); getkey(); savehighscore(END_DISBANDLOSS); reset(savefile_name); viewhighscores(); end_game(); } //UPDATE THE WORLD IN CASE THE LAWS HAVE CHANGED updateworld_laws(law,oldlaw); //THE SYSTEM! for(p=len(pool)-1;p>=0;p--) { if(disbanding) break; if(!pool[p]->alive) continue; if(pool[p]->flag & CREATUREFLAG_SLEEPER) continue; if(pool[p]->location==-1) continue; if(location[pool[p]->location]->type==SITE_GOVERNMENT_POLICESTATION) { if(clearformess) erase(); else makedelimiter(); if(pool[p]->flag & CREATUREFLAG_MISSING) { set_color(COLOR_MAGENTA,COLOR_BLACK,1); move(8,1); addstr("Cops re-polluted ", gamelog); addstr(pool[p]->name, gamelog); addstr("'s mind with Conservatism!", gamelog); gamelog.nextMessage(); getkey(); removesquadinfo(*pool[p]); delete_and_remove(pool,p); continue; } else if(pool[p]->flag & CREATUREFLAG_ILLEGALALIEN && law[LAW_IMMIGRATION]!=2) { set_color(COLOR_MAGENTA,COLOR_BLACK,1); move(8,1); addstr(pool[p]->name, gamelog); addstr(" has been shipped out to the INS to face ", gamelog); if(law[LAW_IMMIGRATION]==-2 && law[LAW_DEATHPENALTY]==-2) addstr("execution.", gamelog); else addstr("deportation.", gamelog); gamelog.newline(); getkey(); removesquadinfo(*pool[p]); delete_and_remove(pool,p); continue; } else { //TRY TO GET RACKETEERING CHARGE int copstrength=100; if(law[LAW_POLICEBEHAVIOR]==-2) copstrength=200; if(law[LAW_POLICEBEHAVIOR]==-1) copstrength=150; if(law[LAW_POLICEBEHAVIOR]==1) copstrength=75; if(law[LAW_POLICEBEHAVIOR]==2) copstrength=50; copstrength=(copstrength*pool[p]->heat)/4; if(copstrength>200)copstrength=200; //Confession check if(LCSrandom(copstrength)>pool[p]->juice + pool[p]->get_attribute(ATTRIBUTE_HEART,true)*5 - pool[p]->get_attribute(ATTRIBUTE_WISDOM,true)*5 + pool[p]->get_skill(SKILL_PSYCHOLOGY)*5 /*+ pool[p]->get_skill(SKILL_SURVIVAL)*5*/ && pool[p]->hireid!=-1) { int nullify=0; int p2=getpoolcreature(pool[p]->hireid); if(pool[p2]->alive && (pool[p2]->location==-1 || location[pool[p2]->location]->type!=SITE_GOVERNMENT_PRISON)) { //Charge the boss with racketeering! criminalize(*pool[p2],LAWFLAG_RACKETEERING); //Rack up testimonies against the boss in court! pool[p2]->confessions++; } if(!nullify) { //Issue a raid on this guy's base! if(pool[p]->base>=0)location[pool[p]->base]->heat+=300; set_color(COLOR_WHITE,COLOR_BLACK,1); move(8,1); addstr(pool[p]->name, gamelog); addstr(" has broken under the pressure and ratted you out!", gamelog); gamelog.newline(); getkey(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(9,1); addstr("The traitor will testify in court, and safehouses may be compromised.", gamelog); gamelog.nextMessage(); getkey(); removesquadinfo(*pool[p]); delete_and_remove(pool,p); continue; //no trial for this person; skip to next person } //else continue to trial } set_color(COLOR_WHITE,COLOR_BLACK,1); move(8,1); addstr(pool[p]->name, gamelog); addstr(" is moved to the courthouse for trial.", gamelog); gamelog.nextMessage(); getkey(); pool[p]->location=find_courthouse(*pool[p]); Armor prisoner(*armortype[getarmortype("ARMOR_PRISONER")]); pool[p]->give_armor(prisoner,NULL); } } else if(location[pool[p]->location]->type==SITE_GOVERNMENT_COURTHOUSE) { trial(*pool[p]); clearformess=1; } else if(location[pool[p]->location]->type==SITE_GOVERNMENT_PRISON) if(prison(*pool[p])) clearformess=1; } //NUKE EXECUTION VICTIMS for(p=len(pool)-1;p>=0;p--) { if(pool[p]->location==-1) continue; if(location[pool[p]->location]->type==SITE_GOVERNMENT_PRISON&&!pool[p]->alive) { removesquadinfo(*pool[p]); pool[p]->die(); pool[p]->location=-1; } } //MUST DO AN END OF GAME CHECK HERE BECAUSE OF EXECUTIONS endcheck(END_EXECUTED); //DISPERSAL CHECK dispersalcheck(clearformess); //FUND REPORTS if(canseethings)fundreport(clearformess); ledger.resetMonthlyAmounts(); if(clearformess) erase(); //HEAL CLINIC PEOPLE for(p=0;p<len(pool);p++) { if(disbanding) break; if(!(pool[p]->alive)) continue; if(pool[p]->clinic>0) { pool[p]->clinic--; for(int w=0;w<BODYPARTNUM;w++) { if((pool[p]->wound[w]&WOUND_NASTYOFF)||(pool[p]->wound[w]&WOUND_CLEANOFF)) pool[p]->wound[w]=(char)WOUND_CLEANOFF; else pool[p]->wound[w]=0; } int healthdamage = 0; if(pool[p]->special[SPECIALWOUND_RIGHTLUNG]!=1) { pool[p]->special[SPECIALWOUND_RIGHTLUNG]=1; if(LCSrandom(2)) healthdamage++; } if(pool[p]->special[SPECIALWOUND_LEFTLUNG]!=1) { pool[p]->special[SPECIALWOUND_LEFTLUNG]=1; if(LCSrandom(2)) healthdamage++; } if(pool[p]->special[SPECIALWOUND_HEART]!=1) { pool[p]->special[SPECIALWOUND_HEART]=1; if(LCSrandom(3)) healthdamage++; } pool[p]->special[SPECIALWOUND_LIVER]=1; pool[p]->special[SPECIALWOUND_STOMACH]=1; pool[p]->special[SPECIALWOUND_RIGHTKIDNEY]=1; pool[p]->special[SPECIALWOUND_LEFTKIDNEY]=1; pool[p]->special[SPECIALWOUND_SPLEEN]=1; pool[p]->special[SPECIALWOUND_RIBS]=RIBNUM; if(!pool[p]->special[SPECIALWOUND_NECK]) pool[p]->special[SPECIALWOUND_NECK]=2; if(!pool[p]->special[SPECIALWOUND_UPPERSPINE]) pool[p]->special[SPECIALWOUND_UPPERSPINE]=2; if(!pool[p]->special[SPECIALWOUND_LOWERSPINE]) pool[p]->special[SPECIALWOUND_LOWERSPINE]=2; // Inflict permanent health damage pool[p]->set_attribute(ATTRIBUTE_HEALTH,pool[p]->get_attribute(ATTRIBUTE_HEALTH,0)-healthdamage); if(pool[p]->get_attribute(ATTRIBUTE_HEALTH,0)<=0) pool[p]->set_attribute(ATTRIBUTE_HEALTH,1); if(pool[p]->blood<=20&&pool[p]->clinic<=2)pool[p]->blood=50; if(pool[p]->blood<=50&&pool[p]->clinic<=1)pool[p]->blood=75; // If at clinic and in critical condition, transfer to university hospital if(pool[p]->clinic > 2 && pool[p]->location > -1 && location[pool[p]->location]->type==SITE_HOSPITAL_CLINIC) { int hospital=find_hospital(*pool[p]); if(hospital!=-1) { pool[p]->location=hospital; set_color(COLOR_WHITE,COLOR_BLACK,1); move(8,1); addstr(pool[p]->name, gamelog); addstr(" has been transferred to ", gamelog); addstr(location[hospital]->name, gamelog); addstr(".", gamelog); gamelog.nextMessage(); getkey(); } } // End treatment if(pool[p]->clinic==0) { pool[p]->blood=100; if(clearformess) erase(); else makedelimiter(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(8,1); addstr(pool[p]->name, gamelog); addstr(" has left ", gamelog); addstr(location[pool[p]->location]->name, gamelog); addstr(".", gamelog); gamelog.nextMessage(); int hs=find_homeless_shelter(*pool[p]); if(hs==-1) hs=0; //TODO: Error unable to find location if(location[pool[p]->base]->siege.siege|| location[pool[p]->base]->renting==RENTING_NOCONTROL) pool[p]->base=hs; pool[p]->location=pool[p]->base; getkey(); } } } }
/* run a tv broadcast */ char news_broadcast(void) { sitealarm=1; int p; int enemy=0; for(int e=0; e<ENCMAX; e++) { if(encounter[e].exists&&encounter[e].alive) { if(encounter[e].align==-1)enemy++; } } if(enemy>0) { clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("The Conservatives in the room hurry the Squad, so ", gamelog); move(17,1); addstr("the broadcast never happens.", gamelog); gamelog.newline(); refresh(); getch(); return 0; } criminalizeparty(LAWFLAG_DISTURBANCE); clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("The Squad steps in front of the cameras and ", gamelog); move(17,1); int viewhit=LCSrandom(VIEWNUM); switch(viewhit) { case VIEW_GAY: addstr("discusses homosexual rights.", gamelog); break; case VIEW_DEATHPENALTY: addstr("examines the death penalty.", gamelog); break; case VIEW_TAXES: addstr("discusses the tax code.", gamelog); break; case VIEW_NUCLEARPOWER: addstr("runs down nuclear power.", gamelog); break; case VIEW_ANIMALRESEARCH: addstr("discusses the horrors of animal research.", gamelog); break; case VIEW_POLICEBEHAVIOR: addstr("goes over cases of police brutality.", gamelog); break; case VIEW_TORTURE: addstr("discusses prisoner abuse and torture.", gamelog); break; case VIEW_PRISONS: addstr("discusses the prison system's flaws.", gamelog); break; case VIEW_INTELLIGENCE: addstr("debates privacy law.", gamelog); break; case VIEW_FREESPEECH: addstr("talks about free speech.", gamelog); break; case VIEW_GENETICS: addstr("discusses the implications of genetic research.", gamelog); break; case VIEW_JUSTICES: addstr("talks about the record of a Conservative judge.", gamelog); break; case VIEW_GUNCONTROL: addstr("talks about gun control.", gamelog); break; case VIEW_SWEATSHOPS: addstr("brings details about sweatshops to light.", gamelog); break; case VIEW_POLLUTION: addstr("does a show on industrial pollution.", gamelog); break; case VIEW_CORPORATECULTURE: addstr("jokes about corporate culture.", gamelog); break; case VIEW_CEOSALARY: addstr("gives examples of CEO excesses.", gamelog); break; case VIEW_WOMEN: addstr("discusses abortion.", gamelog); break;// "Performs an abortion live on the air." // Get [LAWFLAG_SPEECH], [LAWFLAG_MURDER], [LAWFLAG_DISTURBANCE] -- LK case VIEW_CIVILRIGHTS: addstr("debates affirmative action.", gamelog); break; case VIEW_DRUGS: addstr("has a frank talk about drugs.", gamelog); break; case VIEW_IMMIGRATION: addstr("examines the issue of immigration.", gamelog); break; case VIEW_MILITARY: addstr("talks about militarism in modern culture.", gamelog); break; case VIEW_AMRADIO: addstr("discusses other AM radio shows.", gamelog); break; case VIEW_CABLENEWS: addstr("talks about Cable News.", gamelog); break; case VIEW_LIBERALCRIMESQUAD: addstr("lets people know about the Liberal Crime Squad.", gamelog); break; default: case VIEW_LIBERALCRIMESQUADPOS: addstr("extols the virtues of the Liberal Crime Squad.", gamelog); break; case VIEW_CONSERVATIVECRIMESQUAD: addstr("demonizes the Conservative Crime Squad.", gamelog); break; } gamelog.newline(); refresh(); getch(); int segmentpower=0; int usegmentpower; int partysize=0; for(p=0; p<6; p++) { if(activesquad->squad[p]!=NULL) { if(!activesquad->squad[p]->alive)continue; segmentpower+=activesquad->squad[p]->get_attribute(ATTRIBUTE_INTELLIGENCE,true); segmentpower+=activesquad->squad[p]->get_attribute(ATTRIBUTE_HEART,true); segmentpower+=activesquad->squad[p]->get_attribute(ATTRIBUTE_CHARISMA,true); segmentpower+=activesquad->squad[p]->get_skill(SKILL_MUSIC); segmentpower+=activesquad->squad[p]->get_skill(SKILL_RELIGION); segmentpower+=activesquad->squad[p]->get_skill(SKILL_SCIENCE); segmentpower+=activesquad->squad[p]->get_skill(SKILL_BUSINESS); segmentpower+=activesquad->squad[p]->get_skill(SKILL_PERSUASION); activesquad->squad[p]->train(SKILL_PERSUASION,50); partysize++; } } // LCS colors enhance the broadcast significantly if(activesquad->stance==SQUADSTANCE_BATTLECOLORS) segmentpower = (segmentpower * 3) / 2; int segmentbonus=segmentpower/4; if(partysize>1)segmentpower/=partysize; segmentpower+=segmentbonus; clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); if(segmentpower<25)addstr("The Squad looks completely insane.", gamelog); else if(segmentpower<35)addstr("The show really sucks.", gamelog); else if(segmentpower<45)addstr("It is a very boring hour.", gamelog); else if(segmentpower<55)addstr("It is mediocre TV.", gamelog); else if(segmentpower<70)addstr("The show was all right.", gamelog); else if(segmentpower<85)addstr("The Squad put on a good show.", gamelog); else if(segmentpower<100)addstr("It was thought-provoking, even humorous.", gamelog); else addstr("It was the best hour of Cable TV EVER.", gamelog); gamelog.newline(); refresh(); getch(); //CHECK PUBLIC OPINION change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,(segmentpower-50)/10); if(viewhit!=VIEW_LIBERALCRIMESQUAD)change_public_opinion(viewhit,(segmentpower-50)/5,1); else change_public_opinion(viewhit,segmentpower/10); //PRISONER PARTS for(p=0; p<6; p++) { if(activesquad->squad[p]!=NULL) { if(activesquad->squad[p]->prisoner!=NULL && activesquad->squad[p]->prisoner->alive) { if(activesquad->squad[p]->prisoner->type==CREATURE_NEWSANCHOR) { viewhit=LCSrandom(VIEWNUM); clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("The hostage ", gamelog); addstr(activesquad->squad[p]->prisoner->name, gamelog); addstr(" is forced on to ", gamelog); move(17,1); switch(viewhit) { case VIEW_GAY: addstr("discuss homosexual rights.", gamelog); break; case VIEW_DEATHPENALTY: addstr("examine the death penalty.", gamelog); break; case VIEW_TAXES: addstr("discuss the tax code.", gamelog); break; case VIEW_NUCLEARPOWER: addstr("run down nuclear power.", gamelog); break; case VIEW_ANIMALRESEARCH: addstr("discuss the horrors of animal research.", gamelog); break; case VIEW_POLICEBEHAVIOR: addstr("go over cases of police brutality.", gamelog); break; case VIEW_TORTURE: addstr("discuss prisoner abuse and torture.", gamelog); break; case VIEW_PRISONS: addstr("discusses the prison system's flaws.", gamelog); break; case VIEW_INTELLIGENCE: addstr("debate privacy law.", gamelog); break; case VIEW_FREESPEECH: addstr("talk about free speech.", gamelog); break; case VIEW_GENETICS: addstr("discuss the implications of genetic research.", gamelog); break; case VIEW_JUSTICES: addstr("talk about the record of a Conservative judge.", gamelog); break; case VIEW_GUNCONTROL: addstr("talk about gun control.", gamelog); break; case VIEW_SWEATSHOPS: addstr("bring details about sweatshops to light.", gamelog); break; case VIEW_POLLUTION: addstr("do a show on industrial pollution.", gamelog); break; case VIEW_CORPORATECULTURE: addstr("joke about corporate culture.", gamelog); break; case VIEW_CEOSALARY: addstr("give examples of CEO excesses.", gamelog); break; case VIEW_WOMEN: addstr("discuss abortion.", gamelog); break;// "Performs an abortion live on the air." // Get [LAWFLAG_SPEECH], [LAWFLAG_MURDER], [LAWFLAG_DISTURBANCE] -- LK case VIEW_CIVILRIGHTS: addstr("debate affirmative action.", gamelog); break; case VIEW_DRUGS: addstr("have a frank talk about drugs.", gamelog); break; case VIEW_IMMIGRATION: addstr("examine the issue of immigration.", gamelog); break; case VIEW_MILITARY: addstr("talk about militarism in modern culture.", gamelog); break; case VIEW_AMRADIO: addstr("discuss other AM radio shows.", gamelog); break; case VIEW_CABLENEWS: addstr("talk about Cable News.", gamelog); break; case VIEW_LIBERALCRIMESQUAD: addstr("let people know about the Liberal Crime Squad.", gamelog); break; default: case VIEW_LIBERALCRIMESQUADPOS: addstr("extol the virtues of the Liberal Crime Squad.", gamelog); break; case VIEW_CONSERVATIVECRIMESQUAD: addstr("demonize the Conservative Crime Squad.", gamelog); break; } gamelog.newline(); usegmentpower=10; //FAME BONUS usegmentpower+=activesquad->squad[p]->prisoner->get_attribute(ATTRIBUTE_INTELLIGENCE,true); usegmentpower+=activesquad->squad[p]->prisoner->get_attribute(ATTRIBUTE_HEART,true); usegmentpower+=activesquad->squad[p]->prisoner->get_attribute(ATTRIBUTE_CHARISMA,true); usegmentpower+=activesquad->squad[p]->prisoner->get_skill(SKILL_PERSUASION); if(viewhit!=VIEW_LIBERALCRIMESQUAD)change_public_opinion(viewhit,(usegmentpower-10)/2); else change_public_opinion(viewhit,usegmentpower/2,1); segmentpower+=usegmentpower; refresh(); getch(); } else { clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr(activesquad->squad[p]->prisoner->name, gamelog); addstr(", the hostage, is kept off-air.", gamelog); gamelog.newline(); refresh(); getch(); } } } } if(sitealienate>=1&&segmentpower>=40) { sitealienate=0; clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("Moderates at the station appreciated the show.", gamelog); gamelog.newline(); move(17,1); addstr("They no longer feel alienated.", gamelog); gamelog.newline(); refresh(); getch(); } //POST - SECURITY BLITZ IF IT SUCKED if(segmentpower<85 && segmentpower>=25) { clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("Security is waiting for the Squad ", gamelog); move(17,1); addstr("after the show!", gamelog); gamelog.newline(); refresh(); getch(); int numleft=LCSrandom(8)+2; for(int e=0; e<ENCMAX; e++) { if(!encounter[e].exists) { makecreature(encounter[e],CREATURE_SECURITYGUARD); numleft--; } if(numleft==0)break; } } else { clearmessagearea(); set_color(COLOR_WHITE,COLOR_BLACK,1); move(16,1); addstr("The show was so ", gamelog); if(segmentpower<50) addstr("hilarious", gamelog); else addstr("entertaining", gamelog); addstr(" that security watched it ", gamelog); move(17,1); addstr("at their desks. The Squad might yet escape.", gamelog); gamelog.newline(); refresh(); getch(); } return 1; }
/********************************* ** ** SLEEPERS INFLUENCING ** PUBLIC OPINION ** **********************************/ void sleeper_influence(Creature &cr,char &clearformess,char canseethings,int (&libpower)[VIEWNUM]) { int power=(cr.get_attribute(ATTRIBUTE_CHARISMA,true)+ cr.get_attribute(ATTRIBUTE_HEART,true)+ cr.get_attribute(ATTRIBUTE_INTELLIGENCE,true)+ cr.get_skill(SKILL_PERSUASION)); // Profession specific skills switch(cr.type) { case CREATURE_CRITIC_ART: power+=cr.get_skill(SKILL_WRITING); case CREATURE_PAINTER: case CREATURE_SCULPTOR: power+=cr.get_skill(SKILL_ART); break; case CREATURE_CRITIC_MUSIC: power+=cr.get_skill(SKILL_WRITING); case CREATURE_MUSICIAN: power+=cr.get_skill(SKILL_MUSIC); break; case CREATURE_AUTHOR: case CREATURE_JOURNALIST: power+=cr.get_skill(SKILL_WRITING); break; case CREATURE_JUDGE_CONSERVATIVE: power+=cr.get_skill(SKILL_WRITING); case CREATURE_LAWYER: power+=cr.get_skill(SKILL_LAW); break; case CREATURE_SCIENTIST_LABTECH: case CREATURE_SCIENTIST_EMINENT: power+=cr.get_skill(SKILL_SCIENCE); break; case CREATURE_CORPORATE_CEO: case CREATURE_CORPORATE_MANAGER: power+=cr.get_skill(SKILL_BUSINESS); break; case CREATURE_PRIEST: case CREATURE_NUN: power+=cr.get_skill(SKILL_RELIGION); break; case CREATURE_EDUCATOR: power+=cr.get_skill(SKILL_PSYCHOLOGY); break; } // Adjust power for super sleepers switch(cr.type) { case CREATURE_CORPORATE_CEO: case CREATURE_POLITICIAN: case CREATURE_SCIENTIST_EMINENT: power*=20; break; case CREATURE_DEATHSQUAD: case CREATURE_EDUCATOR: case CREATURE_MILITARYOFFICER: power*=6; break; case CREATURE_ACTOR: case CREATURE_GANGUNIT: case CREATURE_MILITARYPOLICE: case CREATURE_SEAL: power*=4; break; default: power*=2; break; } power=static_cast<int>(power*cr.infiltration); switch(cr.type) { /* Radio Personalities and News Anchors subvert Conservative news stations by reducing their audience and twisting views on the issues. As their respective media establishments become marginalized, so does their influence. */ case CREATURE_RADIOPERSONALITY: change_public_opinion(VIEW_AMRADIO,1); for(int i=0;i<VIEWNUM-3;i++) { libpower[i]+=power*(100-attitude[VIEW_AMRADIO])/100; } break; case CREATURE_NEWSANCHOR: change_public_opinion(VIEW_CABLENEWS,1); for(int i=0;i<VIEWNUM-3;i++) { libpower[i]+=power*(100-attitude[VIEW_CABLENEWS])/100; } break; /* Cultural leaders block - influences cultural issues */ case CREATURE_PRIEST: case CREATURE_PAINTER: case CREATURE_SCULPTOR: case CREATURE_AUTHOR: case CREATURE_JOURNALIST: case CREATURE_PSYCHOLOGIST: case CREATURE_MUSICIAN: case CREATURE_CRITIC_ART: case CREATURE_CRITIC_MUSIC: case CREATURE_ACTOR: libpower[VIEW_WOMEN]+=power; libpower[VIEW_CIVILRIGHTS]+=power; libpower[VIEW_GAY]+=power; libpower[VIEW_FREESPEECH]+=power; libpower[VIEW_DRUGS]+=power; libpower[VIEW_IMMIGRATION]+=power; break; /* Legal block - influences an array of social issues */ case CREATURE_JUDGE_CONSERVATIVE: libpower[VIEW_JUSTICES]+=power; libpower[VIEW_FREESPEECH]+=power; libpower[VIEW_INTELLIGENCE]+=power; case CREATURE_LAWYER: libpower[VIEW_POLICEBEHAVIOR]+=power; libpower[VIEW_DEATHPENALTY]+=power; libpower[VIEW_GUNCONTROL]+=power; libpower[VIEW_DRUGS]+=power; break; /* Scientists block */ case CREATURE_SCIENTIST_EMINENT: libpower[VIEW_POLLUTION]+=power; case CREATURE_SCIENTIST_LABTECH: libpower[VIEW_NUCLEARPOWER]+=power; libpower[VIEW_ANIMALRESEARCH]+=power; libpower[VIEW_GENETICS]+=power; break; /* Corporate block */ case CREATURE_CORPORATE_CEO: libpower[VIEW_CEOSALARY]+=power; case CREATURE_CORPORATE_MANAGER: libpower[VIEW_WOMEN]+=power; libpower[VIEW_TAXES]+=power; libpower[VIEW_CORPORATECULTURE]+=power; libpower[VIEW_SWEATSHOPS]+=power; libpower[VIEW_POLLUTION]+=power; libpower[VIEW_CIVILRIGHTS]+=power; break; /* Law enforcement block */ case CREATURE_DEATHSQUAD: libpower[VIEW_PRISONS]+=power; libpower[VIEW_DEATHPENALTY]+=power; case CREATURE_SWAT: case CREATURE_COP: case CREATURE_GANGUNIT: libpower[VIEW_POLICEBEHAVIOR]+=power; libpower[VIEW_DRUGS]+=power; libpower[VIEW_TORTURE]+=power; libpower[VIEW_GUNCONTROL]+=power; libpower[VIEW_PRISONS]+=power; break; /* Prison block */ case CREATURE_EDUCATOR: case CREATURE_PRISONGUARD: case CREATURE_PRISONER: libpower[VIEW_POLICEBEHAVIOR]+=power; libpower[VIEW_DEATHPENALTY]+=power; libpower[VIEW_DRUGS]+=power; libpower[VIEW_TORTURE]+=power; libpower[VIEW_PRISONS]+=power; break; /* Intelligence block */ case CREATURE_SECRET_SERVICE: libpower[VIEW_INTELLIGENCE]+=power; break; case CREATURE_AGENT: libpower[VIEW_INTELLIGENCE]+=power; libpower[VIEW_TORTURE]+=power; libpower[VIEW_PRISONS]+=power; libpower[VIEW_FREESPEECH]+=power; break; /* Military block */ case CREATURE_MERC: libpower[VIEW_GUNCONTROL]+=power; break; case CREATURE_SOLDIER: case CREATURE_VETERAN: case CREATURE_MILITARYPOLICE: case CREATURE_MILITARYOFFICER: case CREATURE_SEAL: libpower[VIEW_MILITARY]+=power; libpower[VIEW_TORTURE]+=power; libpower[VIEW_GAY]+=power; libpower[VIEW_WOMEN]+=power; break; /* Sweatshop workers */ case CREATURE_WORKER_SWEATSHOP: libpower[VIEW_IMMIGRATION]+=power; libpower[VIEW_SWEATSHOPS]+=power; break; /* No influence at all block - for people were liberal anyway, or have no way of doing any good */ case CREATURE_WORKER_FACTORY_CHILD: case CREATURE_GENETIC: case CREATURE_GUARDDOG: case CREATURE_BUM: case CREATURE_CRACKHEAD: case CREATURE_TANK: case CREATURE_HIPPIE: // too liberal to be a proper sleeper case CREATURE_WORKER_FACTORY_UNION: // same case CREATURE_JUDGE_LIBERAL: // more again case CREATURE_MUTANT: return; /* Miscellaneous block -- includes everyone else */ case CREATURE_POLITICIAN: { int a=LCSrandom(VIEWNUM-5); int b=LCSrandom(VIEWNUM-5); while(b==a)b=LCSrandom(VIEWNUM-5); int c=LCSrandom(VIEWNUM-5); while(c==a||c==b)c=LCSrandom(VIEWNUM-5); libpower[a]+=power; libpower[b]+=power; libpower[c]+=power; } break; case CREATURE_FIREFIGHTER: if(law[LAW_FREESPEECH]==-2) { libpower[VIEW_FREESPEECH]+=power; break; } default: // Affect a random issue pickrandom(libpower)+=power; } }
void displaystoryheader(newsstoryst& ns, bool liberalguardian, int& y, int header) { switch(ns.type) { case NEWSSTORY_CCS_NOBACKERS: displaycenterednewsfont("FBI HUNTS CCS",5); y=13; break; case NEWSSTORY_CCS_DEFEATED: displaycenterednewsfont("RAIDS END CCS",5); y=13; break; case NEWSSTORY_NUDITYARREST: case NEWSSTORY_CARTHEFT: case NEWSSTORY_WANTEDARREST: case NEWSSTORY_DRUGARREST: case NEWSSTORY_GRAFFITIARREST: case NEWSSTORY_BURIALARREST: displaycenterednewsfont("POLICE KILLED",5); y=13; break; case NEWSSTORY_SQUAD_ESCAPED: case NEWSSTORY_SQUAD_FLEDATTACK: displaycenterednewsfont("LCS ESCAPES",5); displaycenterednewsfont("POLICE SIEGE",13); break; case NEWSSTORY_SQUAD_DEFENDED: case NEWSSTORY_SQUAD_BROKESIEGE: displaycenterednewsfont("LCS FIGHTS",5); displaycenterednewsfont("OFF COPS",13); break; case NEWSSTORY_SQUAD_KILLED_SIEGEATTACK: case NEWSSTORY_SQUAD_KILLED_SIEGEESCAPE: if(!liberalguardian) { displaycenterednewsfont("LCS SIEGE",5); displaycenterednewsfont("TRAGIC END",13); } else { displaycenterednewsfont("POLICE KILL",5); displaycenterednewsfont("LCS MARTYRS",13); } break; case NEWSSTORY_CCS_SITE: case NEWSSTORY_CCS_KILLED_SITE: if(newscherrybusted<2) { displaycenterednewsfont("CONSERVATIVE",5); displaycenterednewsfont("CRIME SQUAD",13); } else { if(ns.positive) displaycenterednewsfont("CCS STRIKES",5);//AGAIN? else displaycenterednewsfont("CCS RAMPAGE",5); y=13; } break; default: if(ns.positive) { if(newscherrybusted||liberalguardian) { if(!liberalguardian) { if(ns.priority>250) { y=13; displaycenterednewsfont("UNSTOPPABLE",5); } else { y=13; displaycenterednewsfont("LCS STRIKES",5); } } else { y=13; if(ns.priority>150) { change_public_opinion(header,5,1); // Bonus for big story switch(header) { case VIEW_TAXES: case VIEW_SWEATSHOPS: case VIEW_CEOSALARY: displaycenterednewsfont("CLASS WAR",5); break; case VIEW_NUCLEARPOWER: displaycenterednewsfont("MELTDOWN RISK",5); break; case VIEW_POLICEBEHAVIOR: displaycenterednewsfont("LCS VS COPS",5); break; case VIEW_DEATHPENALTY: displaycenterednewsfont("PRISON WAR",5); break; case VIEW_INTELLIGENCE: displaycenterednewsfont("LCS VS CIA",5); break; case VIEW_ANIMALRESEARCH: case VIEW_GENETICS: displaycenterednewsfont("EVIL RESEARCH",5); break; case VIEW_FREESPEECH: case VIEW_GAY: case VIEW_JUSTICES: displaycenterednewsfont("NO JUSTICE",5); break; case VIEW_POLLUTION: displaycenterednewsfont("POLLUTER HIT",5); break; case VIEW_CORPORATECULTURE: displaycenterednewsfont("LCS HITS CORP",5); break; case VIEW_AMRADIO: displaycenterednewsfont("LCS HITS AM",5); break; case VIEW_CABLENEWS: displaycenterednewsfont("LCS HITS TV",5); break; default: displaycenterednewsfont("HEROIC STRIKE",5); } } else { displaycenterednewsfont("LCS STRIKES",5); } } } else { displaycenterednewsfont("LIBERAL CRIME",5); displaycenterednewsfont("SQUAD STRIKES",13); } } else { if(newscherrybusted||liberalguardian) { if(!liberalguardian) displaycenterednewsfont("LCS RAMPAGE",5); else displaycenterednewsfont("LCS SORRY",5); y=13; } else { displaycenterednewsfont("LIBERAL CRIME",5); displaycenterednewsfont("SQUAD RAMPAGE",13); } } break; } }
/* monthly - guardian - prints liberal guardian special editions */ void printnews(short li,short newspaper) { music.play(MUSIC_NEWSPAPER); if(law[LAW_FREESPEECH]==-2)offended_firemen=1; erase(); set_color(COLOR_WHITE,COLOR_BLACK,1); if(loottype[li]->get_idname()=="LOOT_CEOPHOTOS") // Tmp -XML { move(6,1); addstr("The Liberal Guardian runs a story featuring photos of a major CEO ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(10)) { case 0: addstr("engaging in lewd behavior with animals.", gamelog); change_public_opinion(VIEW_ANIMALRESEARCH,15); break; case 1:addstr("digging up graves and sleeping with the dead.", gamelog);break; case 2: addstr("participating in a murder.", gamelog); change_public_opinion(VIEW_POLICEBEHAVIOR,15); change_public_opinion(VIEW_JUSTICES,10); break; case 3:addstr("engaging in heavy bondage. A cucumber was involved in some way.", gamelog);break; case 4:addstr("tongue-kissing an infamous dictator.", gamelog);break; case 5: addstr("making out with an FDA official overseeing the CEO's products.", gamelog); change_public_opinion(VIEW_GENETICS,10); change_public_opinion(VIEW_POLLUTION,10); break; case 6:addstr("castrating himself.", gamelog);break; case 7:addstr("waving a Nazi flag at a supremacist rally.", gamelog);break; case 8: addstr("torturing an employee with a hot iron.", gamelog); change_public_opinion(VIEW_SWEATSHOPS,10); break; case 9:addstr("playing with feces and urine.", gamelog);break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Corporations a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_CEOSALARY,50); change_public_opinion(VIEW_CORPORATECULTURE,50); offended_corps=1; } else if(loottype[li]->get_idname()=="LOOT_CEOLOVELETTERS") { move(6,1); addstr("The Liberal Guardian runs a story featuring love letters from a major CEO ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(8)) { case 0: addstr("addressed to his pet dog. Yikes.", gamelog); change_public_opinion(VIEW_ANIMALRESEARCH,15); break; case 1: addstr("to the judge that acquit him in a corruption trial.", gamelog); change_public_opinion(VIEW_JUSTICES,15); break; case 2: addstr("to an illicit gay lover.", gamelog); change_public_opinion(VIEW_GAY,15); break; case 3:addstr("to himself. They're very steamy.", gamelog);break; case 4: addstr("implying that he has enslaved his houseservants.", gamelog); change_public_opinion(VIEW_SWEATSHOPS,10); break; case 5: addstr("to the FDA official overseeing the CEO's products.", gamelog); change_public_opinion(VIEW_GENETICS,10); change_public_opinion(VIEW_POLLUTION,10); break; case 6:addstr("that seem to touch on every fetish known to man.", gamelog);break; case 7:addstr("promising someone company profits in exchange for sexual favors.", gamelog);break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Corporations a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_CEOSALARY,50); change_public_opinion(VIEW_CORPORATECULTURE,50); offended_corps=1; } else if(loottype[li]->get_idname()=="LOOT_CEOTAXPAPERS") { move(6,1); addstr("The Liberal Guardian runs a story featuring a major CEO's tax papers ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(1)) { default: addstr("showing that he has engaged in consistent tax evasion.", gamelog); change_public_opinion(VIEW_TAXES,25); break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Corporations a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_CEOSALARY,50); change_public_opinion(VIEW_CORPORATECULTURE,50); offended_corps=1; } else if(loottype[li]->get_idname()=="LOOT_CORPFILES") { move(6,1); addstr("The Liberal Guardian runs a story featuring Corporate files ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,newspaper*10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,newspaper*10); switch(LCSrandom(5)) { case 0: addstr("describing a genetic monster created in a lab.", gamelog); change_public_opinion(VIEW_GENETICS,50); break; case 1: addstr("with a list of gay employees entitled \"H**o-workers\".", gamelog); change_public_opinion(VIEW_GAY,50); break; case 2: addstr("containing a memo: \"Terminate the pregnancy, I terminate you.\"", gamelog); change_public_opinion(VIEW_WOMEN,50); break; case 3: addstr("cheerfully describing foreign corporate sweatshops.", gamelog); change_public_opinion(VIEW_SWEATSHOPS,50); break; case 4: addstr("describing an intricate tax scheme.", gamelog); change_public_opinion(VIEW_TAXES,50); break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Corporations a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_CEOSALARY,50); change_public_opinion(VIEW_CORPORATECULTURE,50); offended_corps=1; } else if(loottype[li]->get_idname()=="LOOT_CCS_BACKERLIST") { move(5,1); addstr("The Liberal Guardian runs more than one thousand pages of documents about ", gamelog); gamelog.newline(); move(6,1); addstr("the CCS organization, also revealing in extreme detail the names and ", gamelog); gamelog.newline(); move(7,1); addstr("responsibilities of Conservative Crime Squad sympathizers and supporters", gamelog); gamelog.newline(); move(8,1); addstr("in the state and federal governments. Sections precisely document the", gamelog); gamelog.newline(); move(9,1); addstr("extensive planning to create an extra-judicial death squad that would be", gamelog); gamelog.newline(); move(10,1); addstr("above prosecution, and could hunt down law-abiding Liberals and act", gamelog); gamelog.newline(); move(11,1); addstr("as a foil when no other enemies were present to direct public energy", gamelog); gamelog.newline(); move(12,1); addstr("against.", gamelog); move(14,1); addstr("The scandal reaches into the heart of the Conservative leadership in the", gamelog); gamelog.newline(); move(15,1); addstr("country, and the full ramifications of this revelation may not be felt", gamelog); gamelog.newline(); move(16,1); addstr("for months. One thing is clear, however, from the immediate public reaction", gamelog); gamelog.newline(); move(17,1); addstr("toward the revelations, and the speed with which even AM Radio and Cable", gamelog); gamelog.newline(); move(18,1); addstr("News denounce the CCS.", gamelog); gamelog.newline(); move(20,1); addstr("This is the beginning of the end for the Conservative Crime Squad.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_INTELLIGENCE,50); change_public_opinion(VIEW_CONSERVATIVECRIMESQUAD,100); ccsexposure = CCSEXPOSURE_EXPOSED; } else if(loottype[li]->get_idname()=="LOOT_INTHQDISK" || loottype[li]->get_idname()=="LOOT_SECRETDOCUMENTS") { move(6,1); addstr("The Liberal Guardian runs a story featuring CIA and other intelligence files ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(6)) { case 0:addstr("documenting the overthrow of a government.", gamelog);break; case 1: addstr("documenting the planned assassination of a Liberal federal judge.", gamelog); change_public_opinion(VIEW_JUSTICES,50); break; case 2:addstr("containing private information on innocent citizens.", gamelog);break; case 3: addstr("documenting \"harmful speech\" made by innocent citizens.", gamelog); change_public_opinion(VIEW_FREESPEECH,50); break; case 4: addstr("used to keep tabs on gay citizens.", gamelog); change_public_opinion(VIEW_GAY,50); break; case 5: addstr("documenting the infiltration of a pro-choice group.", gamelog); change_public_opinion(VIEW_WOMEN,50); break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Government a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_INTELLIGENCE,50); offended_cia=1; } else if(loottype[li]->get_idname()=="LOOT_POLICERECORDS") { move(6,1); addstr("The Liberal Guardian runs a story featuring police records ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(6)) { case 0: addstr("documenting human rights abuses by the force.", gamelog); change_public_opinion(VIEW_TORTURE,15); break; case 1: addstr("documenting a police torture case.", gamelog); change_public_opinion(VIEW_TORTURE,50); break; case 2: addstr("documenting a systematic invasion of privacy by the force.", gamelog); change_public_opinion(VIEW_INTELLIGENCE,15); break; case 3: addstr("documenting a forced confession.", gamelog); break; case 4: addstr("documenting widespread corruption in the force.", gamelog); break; case 5: addstr("documenting gladiatorial matches held between prisoners by guards.", gamelog); change_public_opinion(VIEW_DEATHPENALTY,50); change_public_opinion(VIEW_PRISONS,20); break; } move(9,1); gamelog.newline(); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_POLICEBEHAVIOR,50); } else if(loottype[li]->get_idname()=="LOOT_JUDGEFILES") { move(6,1); addstr("The Liberal Guardian runs a story with evidence of a Conservative judge ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(2)) { case 0:addstr("taking bribes to acquit murderers.", gamelog);break; case 1:addstr("promising Conservative rulings in exchange for appointments.", gamelog);break; } gamelog.newline(); move(8,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_JUSTICES,50); } else if(loottype[li]->get_idname()=="LOOT_RESEARCHFILES") { move(6,1); addstr("The Liberal Guardian runs a story featuring research papers ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(4)) { case 0:addstr("documenting horrific animal rights abuses.", gamelog); change_public_opinion(VIEW_ANIMALRESEARCH,50);break; case 1:addstr("studying the effects of torture on cats.", gamelog); change_public_opinion(VIEW_ANIMALRESEARCH,50);break; case 2:addstr("covering up the accidental creation of a genetic monster.", gamelog); change_public_opinion(VIEW_GENETICS,50);break; case 3:addstr("showing human test subjects dying under genetic research.", gamelog); change_public_opinion(VIEW_GENETICS,50);break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.nextMessage(); } else if(loottype[li]->get_idname()=="LOOT_PRISONFILES") { move(6,1); addstr("The Liberal Guardian runs a story featuring prison documents ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); change_public_opinion(VIEW_PRISONS,50); switch(LCSrandom(4)) { case 0:addstr("documenting human rights abuses by prison guards.", gamelog);break; case 1: addstr("documenting a prison torture case.", gamelog); change_public_opinion(VIEW_TORTURE,50); break; case 2:addstr("documenting widespread corruption among prison employees.", gamelog);break; case 3: addstr("documenting gladiatorial matches held between prisoners by guards.", gamelog); } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_DEATHPENALTY,50); } else if(loottype[li]->get_idname()=="LOOT_CABLENEWSFILES") { move(6,1); addstr("The Liberal Guardian runs a story featuring cable news memos ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(4)) { case 0:addstr("calling their news 'the vanguard of Conservative thought'.", gamelog);break; case 1:addstr("mandating negative coverage of Liberal politicians.", gamelog);break; case 2:addstr("planning to drum up a false scandal about a Liberal figure.", gamelog);break; case 3:addstr("instructing a female anchor to 'get sexier or get a new job'.", gamelog); break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Conservative masses a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_CABLENEWS,50); offended_cablenews=1; } else if(loottype[li]->get_idname()=="LOOT_AMRADIOFILES") { move(6,1); addstr("The Liberal Guardian runs a story featuring AM radio plans ", gamelog); move(7,1); change_public_opinion(VIEW_LIBERALCRIMESQUAD,10); change_public_opinion(VIEW_LIBERALCRIMESQUADPOS,10); switch(LCSrandom(3)) { case 0:addstr("calling listeners 'sheep to be told what to think'.", gamelog);break; case 1:addstr("saying 'it's okay to lie, they don't need the truth'.", gamelog);break; case 2:addstr("planning to drum up a false scandal about a Liberal figure.", gamelog);break; } gamelog.newline(); move(9,1); addstr("The major networks and publications take it up and run it for weeks.", gamelog); gamelog.newline(); move(10,1); addstr("This is bound to get the Conservative masses a little riled up.", gamelog); gamelog.nextMessage(); change_public_opinion(VIEW_AMRADIO,50); offended_amradio=1; } getkey(); }