Viewpoint | Pro Law | Anti Law | General Description |
---|---|---|---|
Gay Rights | The subject of equal rights for gay, lesbian, bisexual, and transgendered individuals. | ||
Death Penalty | The subject of whether the death penalty is appropriate, and to what extent it is used. | ||
Taxes | The subject of taxes, and who should be paying them. | ||
Nuclear Power | The subject of nuclear power and whether it is considered safe and used commonly. | ||
Animal Research | |||
Police Behavior | |||
Torture | |||
Intelligence | |||
Free Speech | |||
Genetics | |||
Liberal Justices | |||
Gun Control | |||
Sweatshops | |||
Pollution | |||
Corporate Culture | |||
CEO Salary | |||
Women | |||
Abortion | |||
Civil Rights | |||
Drugs | |||
Immigration | |||
Military | |||
AM Radio | How popular are AM radio channels when it comes to obtaining information on the issues? | ||
Cable News | How popular are cable news channels when it comes to obtaining information on the issues? | ||
Political Violence | What degree of political violence is considered 'justified' to enact political change? | ||
Liberators - Awareness | What percentage of the population is aware of the Liberators as a political movement. | ||
Liberators - Respect | What percentage of those aware of the Liberators consider them a positive movement. | ||
Liberators - Legitimacy | How legally empowered the Liberators are to enact change. 100% means they are completely above the law. | ||
Guardians - Awareness | What percentage of the population is aware of the Guardians as a political movement. | ||
Guardians - Respect | What percentage of those aware of the Liberators consider them a positive movement. | ||
Guardians - Legitimacy | How legally empowered the Guardians are to maintain control. 100% means they are completely above the law. |
Public awareness of the LCS increases by 20; respect for them increases (segment - 25)/2 to a max of segment + 50; opinion on five random topics changes by (segmentpower -25)/2. In short, a bad interview can hurt, but a good interview can do wonders. ===== Seiges: Giving Up ===== Giving up a location is essentially surrendering to whatever mercies exist amongst the beseiging forces, if any. This may or may not be wise. Here's what happens. First, your group loses control of the location. Second, all items and equipment are taken, including carried gear, and all vehicles are confiscated. Third, if the seige is by police or firemen:60: Interviewer gets a Pulitzer; major impact on America.
- If any illegal aliens are amongst the pool, everyone is charged with hiring illegal aliens.
- If any kidnap victims are amongst the pool, everyone is charged with kidnapping (and if the victim was a radio personality, AM Radio is offended, and if the victim was a News Anchor, Cable News is offended.)
- If the siege was by firemen, then if a printing press is on the compound, everyone is charged with unacceptable speech.
- Anyone marked as criminal is arrested and taken to the police station unless they are also marked missing and conservative.
- Anyone marked as kidnap victims that is not arrested is rehabilitated and freed (and thus removed from the game).
- If you have over $10000 and are beseiged by law enforcement, law enforcement confiscates $1000 + LCSRandom [ LCSRandom[current funds - 10000] + 1 ] in funds.
- If the siegers are firemen, the printing press is destroyed.
- If the siegers are police, the compound is dismantled entirely.
- If there is a business front, materials relating to it are seized.
- If the siege is by firemen, this ends the firemen-offended flag.
- Anyone tending to a kidnap victim that was freed is no longer tending to them.
- Anyone arrested goes to the police station; anyone else goes to the homeless shelter.
- [If we make it so that equipped gear is removed, seeing as there's no code in the original for armor, we should probably dress people in normal clothes, and run a law check for whether what they were carrying was illegal - any excuse to lock 'em up.]
- Anyone left in the base is executed.
- If the CCS was conducting the siege, they now own the territory.
- The resulting news story discusses the massacre.
- [Destroy random equipment on site as well?]
- You have to be there. (Duh.)
- You have to be alive. (Also duh.)
- You have to not be a conservative. (Prisoners tend to get fed scraps.) [May revise this - better treatment may mean better cooperation.]
- You have to not be a sleeper. Sleeper agents eat on the Conservatives' dime, not yours.
- Otherwise, you're eating at the revolution's expense.
DIFFICULTY_AUTOMATIC = 1, DIFFICULTY_VERYEASY = 3, DIFFICULTY_EASY = 5, DIFFICULTY_AVERAGE = 7, DIFFICULTY_CHALLENGING = 9, DIFFICULTY_HARD = 11, DIFFICULTY_FORMIDABLE = 13, DIFFICULTY_HEROIC = 15, DIFFICULTY_SUPERHEROIC = 17, DIFFICULTY_IMPOSSIBLE = 19==== Creature Flags ==== #define CREATUREFLAG_WHEELCHAIR BIT1 #define CREATUREFLAG_JUSTESCAPED BIT2 #define CREATUREFLAG_MISSING BIT3 #define CREATUREFLAG_KIDNAPPED BIT4 #define CREATUREFLAG_SLEEPER BIT5 #define CREATUREFLAG_ILLEGALALIEN BIT6 #define CREATUREFLAG_LOVESLAVE BIT7 #define CREATUREFLAG_BRAINWASHED BIT8 #define CREATUREFLAG_CONVERTED BIT9 ==== Name Length ==== #define CREATURE_NAMELEN 40 ==== Maximum Subordinates ==== #define MAXSUBORDINATES 30 ==== Gender Types ==== #define GENDER_NEUTRAL 0 #define GENDER_MALE 1 #define GENDER_FEMALE 2 #define GENDER_WHITEMALEPATRIARCH 3 ==== Attributes ==== ATTRIBUTE_STRENGTH,
ATTRIBUTE_INTELLIGENCE, ATTRIBUTE_WISDOM, ATTRIBUTE_AGILITY, ATTRIBUTE_HEALTH, ATTRIBUTE_CHARISMA, ATTRIBUTE_HEART, ATTNUM==== Skills ====
SKILL_HANDTOHAND, SKILL_KNIFE, SKILL_SWORD, SKILL_CLUB, SKILL_AXE, SKILL_THROWING, SKILL_PISTOL, SKILL_RIFLE, SKILL_SMG, SKILL_SHOTGUN, SKILL_PERSUASION, SKILL_PSYCHOLOGY, SKILL_LAW, SKILL_SECURITY, SKILL_DISGUISE, SKILL_COMPUTERS, SKILL_TAILORING, SKILL_DRIVING, SKILL_WRITING, SKILL_MUSIC, SKILL_ART, SKILL_RELIGION, SKILL_SCIENCE, SKILL_BUSINESS, SKILL_STEALTH, SKILL_TEACHING, SKILL_STREETSENSE, SKILL_SEDUCTION, SKILL_FIRSTAID, SKILL_DODGE, SKILL_HEAVYWEAPONS, SKILLNUM==== Creature Types ====
CREATURE_BOUNCER, CREATURE_SECURITYGUARD, CREATURE_SCIENTIST_LABTECH, CREATURE_SCIENTIST_EMINENT, CREATURE_CORPORATE_MANAGER, CREATURE_CORPORATE_CEO, CREATURE_WORKER_SERVANT, CREATURE_WORKER_JANITOR, CREATURE_WORKER_SWEATSHOP, CREATURE_WORKER_FACTORY_NONUNION, CREATURE_WORKER_FACTORY_CHILD, CREATURE_WORKER_SECRETARY, CREATURE_WORKER_FACTORY_UNION, CREATURE_LANDLORD, CREATURE_TEENAGER, CREATURE_COP, CREATURE_SWAT, CREATURE_DEATHSQUAD, CREATURE_FIREFIGHTER, CREATURE_EDUCATOR, CREATURE_GANGUNIT, CREATURE_JUDGE_LIBERAL, CREATURE_JUDGE_CONSERVATIVE, CREATURE_AGENT, CREATURE_RADIOPERSONALITY, CREATURE_NEWSANCHOR, CREATURE_GENETIC, CREATURE_GUARDDOG, CREATURE_PRISONER, CREATURE_JUROR, CREATURE_LAWYER, CREATURE_SEWERWORKER, CREATURE_COLLEGESTUDENT, CREATURE_MUSICIAN, CREATURE_MATHEMATICIAN, CREATURE_TEACHER, CREATURE_HSDROPOUT, CREATURE_BUM, CREATURE_GANGMEMBER, CREATURE_CRACKHEAD, CREATURE_PRIEST, CREATURE_ENGINEER, CREATURE_FASTFOODWORKER, CREATURE_TELEMARKETER, CREATURE_OFFICEWORKER, CREATURE_FOOTBALLCOACH, CREATURE_PROSTITUTE, CREATURE_MAILMAN, CREATURE_GARBAGEMAN, CREATURE_PLUMBER, CREATURE_CHEF, CREATURE_CONSTRUCTIONWORKER, CREATURE_AMATEURMAGICIAN, CREATURE_TANK, CREATURE_MERC, CREATURE_HICK, CREATURE_SOLDIER, CREATURE_VETERAN, CREATURE_HARDENED_VETERAN, CREATURE_PRISONGUARD, CREATURE_HIPPIE, CREATURE_CRITIC_ART, CREATURE_CRITIC_MUSIC, CREATURE_SOCIALITE, CREATURE_PROGRAMMER, CREATURE_RETIREE, CREATURE_PAINTER, CREATURE_SCULPTOR, CREATURE_AUTHOR, CREATURE_JOURNALIST, CREATURE_DANCER, CREATURE_PHOTOGRAPHER, CREATURE_CAMERAMAN, CREATURE_HAIRSTYLIST, CREATURE_FASHIONDESIGNER, CREATURE_CLERK, CREATURE_THIEF, CREATURE_ACTOR, CREATURE_YOGAINSTRUCTOR, CREATURE_MARTIALARTIST, CREATURE_ATHLETE, CREATURE_BIKER, CREATURE_TRUCKER, CREATURE_TAXIDRIVER, CREATURE_NUN, CREATURE_MUTANT, CREATURE_DOCTOR, CREATURE_NURSE, CREATURE_CCS_VIGILANTE, CREATURE_CCS_ARCHCONSERVATIVE, CREATURE_POLITICALACTIVIST, CREATURE_CCS_MOLOTOV, CREATURE_CCS_SNIPER, CREATURE_PSYCHOLOGIST, CREATURENUM==== Body Parts ====
BODYPART_HEAD, BODYPART_BODY, BODYPART_ARM_RIGHT, BODYPART_ARM_LEFT, BODYPART_LEG_RIGHT, BODYPART_LEG_LEFT, BODYPARTNUM==== Special Injuries ====
SPECIALWOUND_TEETH, SPECIALWOUND_RIGHTEYE, SPECIALWOUND_LEFTEYE, SPECIALWOUND_NOSE, SPECIALWOUND_TONGUE, SPECIALWOUND_RIGHTLUNG, SPECIALWOUND_LEFTLUNG, SPECIALWOUND_HEART, SPECIALWOUND_LIVER, SPECIALWOUND_STOMACH, SPECIALWOUND_RIGHTKIDNEY, SPECIALWOUND_LEFTKIDNEY, SPECIALWOUND_SPLEEN, SPECIALWOUND_RIBS, SPECIALWOUND_NECK, SPECIALWOUND_UPPERSPINE, SPECIALWOUND_LOWERSPINE, SPECIALWOUNDNUM==== Injury Definitions ==== #define RIBNUM 10 #define TOOTHNUM 32 #define WOUND_SHOT BIT1 #define WOUND_CUT BIT2 #define WOUND_BRUISED BIT3 #define WOUND_BURNED BIT4 #define WOUND_BLEEDING BIT5 #define WOUND_TORN BIT6 #define WOUND_NASTYOFF BIT7 #define WOUND_CLEANOFF BIT8 ==== Age Estimation System ====
void add_age(Creature& person) { // Who knows how old the purple gorilla/tank/flaming bunny/dog is? if(person.animalgloss!=ANIMALGLOSS_NONE) { addstr(" (?)"); return; } // For humans, estimate their age and gender addstr(" ("); // Almost precise estimates of child and teen ages if(person.age<20) { char num[5]; // Inaccuracy in estimating age should be the same every // time a character is queried. I'm using the day of the // month the character was born on to determine this. itoa(person.age+person.birthday_day%3-1,num,10); addstr(num); addstr("?"); } // More rough estimates of everyone else else { if(person.age<30) addstr("20s"); else if(person.age<40) addstr("30s"); else if(person.age<50) addstr("40s"); else if(person.age<60) addstr("50s"); else if(person.age<70) addstr("60s"); else if(person.age<80) addstr("70s"); else if(person.age<90) addstr("80s"); else addstr("Very Old"); } // Assess their gender Liberally if(person.gender_liberal == GENDER_MALE) addstr(", Male"); else if(person.gender_liberal == GENDER_FEMALE) addstr(", Female"); else addstr(", Unknown"); // Note if there's some conflict with Conservative society's perceptions if(person.gender_liberal != person.gender_conservative) addstr("?"); addstr(")"); }==== Naming System ====
/* rolls up a proper name for a creature */ void Creature::namecreature() { if(!dontname) { generate_name(name, gender_liberal); strcpy(propername,name); } } /* fills a string with a proper name */ void generate_name(char *str, char gender) { strcpy(str,""); char first[80]; firstname(first, gender); strcat(str,first); strcat(str," "); char last[80]; lastname(last); strcat(str,last); } /* gets a random first name */ void firstname(char *str, char gender) { strcpy(str,""); int roll, nametable; // If we don't care if the name is male or female, pick one randomly // This ensures gender balance in the names chosen if(gender == GENDER_NEUTRAL) gender = LCSrandom(2) + 1; // For white male Arch-Conservative politicians if(gender == GENDER_WHITEMALEPATRIARCH) { roll = LCSrandom(50); nametable = GENDER_WHITEMALEPATRIARCH; } // Assign a name from the available names for each gender if(gender == GENDER_MALE) { // Roll on the number of gender-specific names, // plus the number of gender-neutral names roll = LCSrandom(347 + 34); // Decide whether to use a gender-specific name // or a gender-neutral name if(roll >= 34) { roll -= 34; nametable = GENDER_MALE; } else nametable = GENDER_NEUTRAL; } else if(gender == GENDER_FEMALE) { // (Same here, just use the number of female names instead) roll = LCSrandom(346 + 34); if(roll >= 34) { roll -= 34; nametable = GENDER_FEMALE; } else nametable = GENDER_NEUTRAL; } if(nametable == GENDER_MALE) //{{{ Male { switch(roll) { //{{{ Male name table case 0:strcat(str,"Aaron");break; case 1:strcat(str,"Abraham");break; case 2:strcat(str,"Adam");break; case 3:strcat(str,"Adolph");break; case 4:strcat(str,"Adrian");break; case 5:strcat(str,"Al");break; case 6:strcat(str,"Alan");break; case 7:strcat(str,"Albert");break; case 8:strcat(str,"Alec");break; case 9:strcat(str,"Alejandro");break; case 10:strcat(str,"Alexander");break; case 11:strcat(str,"Alf");break; case 12:strcat(str,"Alfie");break; case 13:strcat(str,"Alfred");break; case 14:strcat(str,"Ali");break; case 15:strcat(str,"Allan");break; case 16:strcat(str,"Allen");break; case 17:strcat(str,"Andrew");break; case 18:strcat(str,"Andy");break; case 19:strcat(str,"Anthony");break; case 20:strcat(str,"Antonio");break; case 21:strcat(str,"Archie");break; case 22:strcat(str,"Arnold");break; case 23:strcat(str,"Art");break; case 24:strcat(str,"Arthur");break; case 25:strcat(str,"Avi");break; case 26:strcat(str,"Axel");break; case 27:strcat(str,"Barack");break; case 28:strcat(str,"Barney");break; case 29:strcat(str,"Barry");break; case 30:strcat(str,"Bartholomew");break; case 31:strcat(str,"Beau");break; case 32:strcat(str,"Ben");break; case 33:strcat(str,"Benjamin");break; case 34:strcat(str,"Bernard");break; case 35:strcat(str,"Bert");break; case 36:strcat(str,"Bill");break; case 37:strcat(str,"Billy Bob");break; case 38:strcat(str,"Blaire");break; case 39:strcat(str,"Blake");break; case 40:strcat(str,"Bob");break; case 41:strcat(str,"Bobby");break; case 42:strcat(str,"Boris");break; case 43:strcat(str,"Brad");break; case 44:strcat(str,"Bradley");break; case 45:strcat(str,"Brandon");break; case 46:strcat(str,"Brendon");break; case 47:strcat(str,"Brett");break; case 48:strcat(str,"Brian");break; case 49:strcat(str,"Bruce");break; case 50:strcat(str,"Bryan");break; case 51:strcat(str,"Calvin");break; case 52:strcat(str,"Carl");break; case 53:strcat(str,"Carlos");break; case 54:strcat(str,"Cesar");break; case 55:strcat(str,"Chad");break; case 56:strcat(str,"Charles");break; case 57:strcat(str,"Charlie");break; case 58:strcat(str,"Chester");break; case 59:strcat(str,"Chuck");break; case 60:strcat(str,"Chris");break; case 61:strcat(str,"Christian");break; case 62:strcat(str,"Christopher");break; case 63:strcat(str,"Claude");break; case 64:strcat(str,"Cliff");break; case 65:strcat(str,"Clifford");break; case 66:strcat(str,"Clyde");break; case 67:strcat(str,"Cody");break; case 68:strcat(str,"Colin");break; case 69:strcat(str,"Colton");break; case 70:strcat(str,"Conrad");break; case 71:strcat(str,"Cory");break; case 72:strcat(str,"Craig");break; case 73:strcat(str,"Dale");break; case 74:strcat(str,"Damon");break; case 75:strcat(str,"Dan");break; case 76:strcat(str,"Danforth");break; case 77:strcat(str,"Daniel");break; case 78:strcat(str,"Danny");break; case 79:strcat(str,"Dag");break; case 80:strcat(str,"Dave");break; case 81:strcat(str,"David");break; case 82:strcat(str,"Deepak");break; case 83:strcat(str,"Dennis");break; case 84:strcat(str,"Derak");break; case 85:strcat(str,"Derek");break; case 86:strcat(str,"Derrick");break; case 87:strcat(str,"Dexter");break; case 88:strcat(str,"Dick");break; case 89:strcat(str,"Diego");break; case 90:strcat(str,"Diwakar");break; case 91:strcat(str,"Dominic");break; case 92:strcat(str,"Donald");break; case 93:strcat(str,"Donovan");break; case 94:strcat(str,"Doug");break; case 95:strcat(str,"Douglas");break; case 96:strcat(str,"Dustin");break; case 97:strcat(str,"Dwayne");break; case 98:strcat(str,"Dwight");break; case 99:strcat(str,"Eathan");break; case 100:strcat(str,"Ed");break; case 101:strcat(str,"Eddie");break; case 102:strcat(str,"Edgar");break; case 103:strcat(str,"Eduardo");break; case 104:strcat(str,"Edward");break; case 105:strcat(str,"Edwin");break; case 106:strcat(str,"Eli");break; case 107:strcat(str,"Eliah");break; case 108:strcat(str,"Elliot");break; case 109:strcat(str,"Enrique");break; case 110:strcat(str,"Enzo");break; case 111:strcat(str,"Eric");break; case 112:strcat(str,"Erik");break; case 113:strcat(str,"Ernest");break; case 114:strcat(str,"Ernie");break; case 115:strcat(str,"Eugene");break; case 116:strcat(str,"Evan");break; case 117:strcat(str,"Fabio");break; case 118:strcat(str,"Lyle");break; case 119:strcat(str,"Felix");break; case 120:strcat(str,"Fernando");break; case 121:strcat(str,"Floyd");break; case 122:strcat(str,"Francesco");break; case 123:strcat(str,"Francis");break; case 124:strcat(str,"Frank");break; case 125:strcat(str,"Franklin");break; case 126:strcat(str,"Fred");break; case 127:strcat(str,"Frederick");break; case 128:strcat(str,"Gabriel");break; case 129:strcat(str,"Garett");break; case 130:strcat(str,"Garreth");break; case 131:strcat(str,"Gary");break; case 132:strcat(str,"George");break; case 133:strcat(str,"Gerald");break; case 134:strcat(str,"Glen");break; case 135:strcat(str,"Graham");break; case 136:strcat(str,"Greg");break; case 137:strcat(str,"Gregory");break; case 138:strcat(str,"Gus");break; case 139:strcat(str,"Guy");break; case 140:strcat(str,"Hank");break; case 141:strcat(str,"Hans");break; case 142:strcat(str,"Harold");break; case 143:strcat(str,"Harry");break; case 144:strcat(str,"Harvey");break; case 145:strcat(str,"Henry");break; case 146:strcat(str,"Herbert");break; case 147:strcat(str,"Homer");break; case 148:strcat(str,"Howard");break; case 149:strcat(str,"Howie");break; case 150:strcat(str,"Hugh");break; case 151:strcat(str,"Hugo");break; case 152:strcat(str,"Ian");break; case 153:strcat(str,"Isaac");break; case 154:strcat(str,"Issac");break; case 155:strcat(str,"Ivan");break; case 156:strcat(str,"Jack");break; case 157:strcat(str,"Jacob");break; case 158:strcat(str,"Jake");break; case 159:strcat(str,"Jamel");break; case 160:strcat(str,"James");break; case 161:strcat(str,"Jared");break; case 162:strcat(str,"Jason");break; case 163:strcat(str,"Javier");break; case 164:strcat(str,"Jay");break; case 165:strcat(str,"Jean");break; case 166:strcat(str,"Jeff");break; case 167:strcat(str,"Jeffrey");break; case 168:strcat(str,"Jeremy");break; case 169:strcat(str,"Jeroen");break; case 170:strcat(str,"Jerome");break; case 171:strcat(str,"Jerry");break; case 172:strcat(str,"Jesse");break; case 173:strcat(str,"Jesus");break; case 174:strcat(str,"Jim");break; case 175:strcat(str,"Jimmy");break; case 176:strcat(str,"Jinyuan");break; case 177:strcat(str,"Joe");break; case 178:strcat(str,"Joel");break; case 179:strcat(str,"Joey");break; case 180:strcat(str,"John");break; case 181:strcat(str,"Johnny");break; case 182:strcat(str,"Jon");break; case 183:strcat(str,"Jonathan");break; case 184:strcat(str,"Jordan");break; case 185:strcat(str,"Jorge");break; case 186:strcat(str,"Jose");break; case 187:strcat(str,"Joseph");break; case 188:strcat(str,"Josh");break; case 189:strcat(str,"Joshua");break; case 190:strcat(str,"Jowar");break; case 191:strcat(str,"Juan");break; case 192:strcat(str,"Julian");break; case 193:strcat(str,"Justin");break; case 194:strcat(str,"Kaelen");break; case 195:strcat(str,"Karl");break; case 196:strcat(str,"Keith");break; case 197:strcat(str,"Ken");break; case 198:strcat(str,"Kenji");break; case 199:strcat(str,"Kennedy");break; case 200:strcat(str,"Kenneth");break; case 201:strcat(str,"Kevin");break; case 202:strcat(str,"Kirk");break; case 203:strcat(str,"Konstantine");break; case 204:strcat(str,"Kurt");break; case 205:strcat(str,"Kweisi");break; case 206:strcat(str,"Kyle");break; case 207:strcat(str,"Lance");break; case 208:strcat(str,"Larry");break; case 209:strcat(str,"Lawrence");break; case 210:strcat(str,"Lenny");break; case 211:strcat(str,"Leo");break; case 212:strcat(str,"Leonard");break; case 213:strcat(str,"Leroy");break; case 214:strcat(str,"Lex");break; case 215:strcat(str,"Liam");break; case 216:strcat(str,"Lionel");break; case 217:strcat(str,"Louis");break; case 218:strcat(str,"Lucas");break; case 219:strcat(str,"Luis");break; case 220:strcat(str,"Luke");break; case 221:strcat(str,"Malcolm");break; case 222:strcat(str,"Manny");break; case 223:strcat(str,"Manuel");break; case 224:strcat(str,"Marcus");break; case 225:strcat(str,"Marvin");break; case 226:strcat(str,"Mark");break; case 227:strcat(str,"Mario");break; case 228:strcat(str,"Martin");break; case 229:strcat(str,"Marty");break; case 230:strcat(str,"Mason");break; case 231:strcat(str,"Matt");break; case 232:strcat(str,"Matthew");break; case 233:strcat(str,"Maurice");break; case 234:strcat(str,"Max");break; case 235:strcat(str,"Mel");break; case 236:strcat(str,"Michael");break; case 237:strcat(str,"Mickey");break; case 238:strcat(str,"Miguel");break; case 239:strcat(str,"Mike");break; case 240:strcat(str,"Miles");break; case 241:strcat(str,"Mitchell");break; case 242:strcat(str,"Moe");break; case 243:strcat(str,"Mumtaz");break; case 244:strcat(str,"Murray");break; case 245:strcat(str,"Mustafa");break; case 246:strcat(str,"Nathan");break; case 247:strcat(str,"Ned");break; case 248:strcat(str,"Neal");break; case 249:strcat(str,"Neil");break; case 250:strcat(str,"Nelson");break; case 251:strcat(str,"Nicholas");break; case 252:strcat(str,"Nick");break; case 253:strcat(str,"Noah");break; case 254:strcat(str,"Norm");break; case 255:strcat(str,"Norman");break; case 256:strcat(str,"Oliver");break; case 257:strcat(str,"Otto");break; case 258:strcat(str,"Owen");break; case 259:strcat(str,"Pablo");break; case 260:strcat(str,"Patrick");break; case 261:strcat(str,"Paul");break; case 262:strcat(str,"Pedro");break; case 263:strcat(str,"Pete");break; case 264:strcat(str,"Peter");break; case 265:strcat(str,"Phil");break; case 266:strcat(str,"Phillip");break; case 267:strcat(str,"Preston");break; case 268:strcat(str,"Rafael");break; case 269:strcat(str,"Ralf");break; case 270:strcat(str,"Ralph");break; case 271:strcat(str,"Randy");break; case 272:strcat(str,"Rane");break; case 273:strcat(str,"Ransom");break; case 274:strcat(str,"Raphael");break; case 275:strcat(str,"Raul");break; case 276:strcat(str,"Ray");break; case 277:strcat(str,"Raymond");break; case 278:strcat(str,"Reginald");break; case 279:strcat(str,"Ricardo");break; case 280:strcat(str,"Richard");break; case 281:strcat(str,"Rick");break; case 282:strcat(str,"Robert");break; case 283:strcat(str,"Rod");break; case 284:strcat(str,"Rodney");break; case 285:strcat(str,"Roger");break; case 286:strcat(str,"Ron");break; case 287:strcat(str,"Ronald");break; case 288:strcat(str,"Rory");break; case 289:strcat(str,"Roy");break; case 290:strcat(str,"Rubin");break; case 291:strcat(str,"Rudy");break; case 292:strcat(str,"Rupert");break; case 293:strcat(str,"Russ");break; case 294:strcat(str,"Russell");break; case 295:strcat(str,"Ryan");break; case 296:strcat(str,"Samuel");break; case 297:strcat(str,"Scott");break; case 298:strcat(str,"Sean");break; case 299:strcat(str,"Sebastian");break; case 300:strcat(str,"Serge");break; case 301:strcat(str,"Sergio");break; case 302:strcat(str,"Seth");break; case 303:strcat(str,"Shane");break; case 304:strcat(str,"Shaun");break; case 305:strcat(str,"Shawn");break; case 306:strcat(str,"Sid");break; case 307:strcat(str,"Simon");break; case 308:strcat(str,"Sonny");break; case 309:strcat(str,"Stan");break; case 310:strcat(str,"Stanley");break; case 311:strcat(str,"Stephen");break; case 312:strcat(str,"Steve");break; case 313:strcat(str,"Steven");break; case 314:strcat(str,"Stewart");break; case 315:strcat(str,"Stu");break; case 316:strcat(str,"Stuart");break; case 317:strcat(str,"Ted");break; case 318:strcat(str,"Tetsuo");break; case 319:strcat(str,"Theodore");break; case 320:strcat(str,"Thomas");break; case 321:strcat(str,"Thor");break; case 322:strcat(str,"Tim");break; case 323:strcat(str,"Timothy");break; case 324:strcat(str,"Toby");break; case 325:strcat(str,"Tom");break; case 326:strcat(str,"Tony");break; case 327:strcat(str,"Toshiro");break; case 328:strcat(str,"Travis");break; case 329:strcat(str,"Trevor");break; case 330:strcat(str,"Tyler");break; case 331:strcat(str,"Tyrone");break; case 332:strcat(str,"Victor");break; case 333:strcat(str,"Vincent");break; case 334:strcat(str,"Wade");break; case 335:strcat(str,"Wally");break; case 336:strcat(str,"Walter");break; case 337:strcat(str,"Wayne");break; case 338:strcat(str,"William");break; case 339:strcat(str,"Willy");break; case 340:strcat(str,"Winston");break; case 341:strcat(str,"Wolf");break; case 342:strcat(str,"Woody");break; case 343:strcat(str,"Xavier");break; case 344:strcat(str,"Zachary");break; case 345:strcat(str,"Zeke");break; case 346:strcat(str,"Quentin");break; //}}} default:strcat(str,"Defaulto");break; } } //}}} else if(nametable == GENDER_FEMALE) //{{{ Female { switch(roll) { // {{{Female name table case 0:strcat(str,"Abigail");break; case 1:strcat(str,"Ada");break; case 2:strcat(str,"Adriana");break; case 3:strcat(str,"Adrianna");break; case 4:strcat(str,"Adrienne");break; case 5:strcat(str,"Agatha");break; case 6:strcat(str,"Aiko");break; case 7:strcat(str,"Aileen");break; case 8:strcat(str,"Alene");break; case 9:strcat(str,"Alexandra");break; case 10:strcat(str,"Alice");break; case 11:strcat(str,"Alison");break; case 12:strcat(str,"Allison");break; case 13:strcat(str,"Alora");break; case 14:strcat(str,"Alyson");break; case 15:strcat(str,"Amanda");break; case 16:strcat(str,"Amber");break; case 17:strcat(str,"Amelia");break; case 18:strcat(str,"Amy");break; case 19:strcat(str,"Andrea");break; case 20:strcat(str,"Angela");break; case 21:strcat(str,"Angelica");break; case 22:strcat(str,"Anita");break; case 23:strcat(str,"Ann");break; case 24:strcat(str,"Anna");break; case 25:strcat(str,"Anne");break; case 26:strcat(str,"Annie");break; case 27:strcat(str,"April");break; case 28:strcat(str,"Autumn");break; case 29:strcat(str,"Barbara");break; case 30:strcat(str,"Bea");break; case 31:strcat(str,"Beatrice");break; case 32:strcat(str,"Bebe");break; case 33:strcat(str,"Becky");break; case 34:strcat(str,"Belle");break; case 35:strcat(str,"Beth");break; case 36:strcat(str,"Beth Ann");break; case 37:strcat(str,"Bethany");break; case 38:strcat(str,"Betty");break; case 39:strcat(str,"Bianca Maria");break; case 40:strcat(str,"Blanche");break; case 41:strcat(str,"Bobbie");break; case 42:strcat(str,"Bonita");break; case 43:strcat(str,"Bonnie");break; case 44:strcat(str,"Brenda");break; case 45:strcat(str,"Brittany");break; case 46:strcat(str,"Brooke");break; case 47:strcat(str,"Brooklyn");break; case 48:strcat(str,"Camilia");break; case 49:strcat(str,"Carla");break; case 50:strcat(str,"Carmen");break; case 51:strcat(str,"Carol");break; case 52:strcat(str,"Caroline");break; case 53:strcat(str,"Cassandra");break; case 54:strcat(str,"Catherine");break; case 55:strcat(str,"Cecilia");break; case 56:strcat(str,"Celine");break; case 57:strcat(str,"Charlotte");break; case 58:strcat(str,"Chelsea");break; case 59:strcat(str,"Cheryl");break; case 60:strcat(str,"Chloe");break; case 61:strcat(str,"Christine");break; case 62:strcat(str,"Cindi");break; case 63:strcat(str,"Cindy");break; case 64:strcat(str,"Clara");break; case 65:strcat(str,"Clarity");break; case 66:strcat(str,"Claudette");break; case 67:strcat(str,"Claudia");break; case 68:strcat(str,"Colette");break; case 69:strcat(str,"Colleen");break; case 70:strcat(str,"Consuela");break; case 71:strcat(str,"Courtney");break; case 72:strcat(str,"Crystal");break; case 73:strcat(str,"Cybill");break; case 74:strcat(str,"Dakota");break; case 75:strcat(str,"Dana");break; case 76:strcat(str,"Daniela");break; case 77:strcat(str,"Danielle");break; case 78:strcat(str,"Daphne");break; case 79:strcat(str,"Dawn");break; case 80:strcat(str,"Debbie");break; case 81:strcat(str,"Denise");break; case 82:strcat(str,"Desiree");break; case 83:strcat(str,"Diane");break; case 84:strcat(str,"Dimitra");break; case 85:strcat(str,"Donna");break; case 86:strcat(str,"Dora");break; case 87:strcat(str,"Doreen");break; case 88:strcat(str,"Edna");break; case 89:strcat(str,"Elaine");break; case 90:strcat(str,"Elinor");break; case 91:strcat(str,"Elizabeth");break; case 92:strcat(str,"Ellen");break; case 93:strcat(str,"Elsie");break; case 94:strcat(str,"Emily");break; case 95:strcat(str,"Emma");break; case 96:strcat(str,"Erica");break; case 97:strcat(str,"Erika");break; case 98:strcat(str,"Esmerelda");break; case 99:strcat(str,"Eve");break; case 100:strcat(str,"Faith");break; case 101:strcat(str,"Fatima");break; case 102:strcat(str,"Felicia");break; case 103:strcat(str,"Felicity");break; case 104:strcat(str,"Fiona");break; case 105:strcat(str,"Florence");break; case 106:strcat(str,"Florida");break; case 107:strcat(str,"Fran");break; case 108:strcat(str,"Francine");break; case 109:strcat(str,"Gabrielle");break; case 110:strcat(str,"Georgia");break; case 111:strcat(str,"Gina");break; case 112:strcat(str,"Giovanna");break; case 113:strcat(str,"Gloria");break; case 114:strcat(str,"Grace");break; case 115:strcat(str,"Gwen");break; case 116:strcat(str,"Gwendolyn");break; case 117:strcat(str,"Hailey");break; case 118:strcat(str,"Haley");break; case 119:strcat(str,"Hannah");break; case 120:strcat(str,"Harmony");break; case 121:strcat(str,"Hayley");break; case 122:strcat(str,"Hazel");break; case 123:strcat(str,"Heather");break; case 124:strcat(str,"Helen");break; case 125:strcat(str,"Helga");break; case 126:strcat(str,"Holly");break; case 127:strcat(str,"Honor");break; case 128:strcat(str,"Ida");break; case 129:strcat(str,"Ingrid");break; case 130:strcat(str,"Irene");break; case 131:strcat(str,"Iris");break; case 132:strcat(str,"Isabel");break; case 133:strcat(str,"Isabella");break; case 134:strcat(str,"Isabelle");break; case 135:strcat(str,"Ivy");break; case 136:strcat(str,"Jaclyn");break; case 137:strcat(str,"Jade");break; case 138:strcat(str,"Jane");break; case 139:strcat(str,"Janet");break; case 140:strcat(str,"Janette");break; case 141:strcat(str,"January");break; case 142:strcat(str,"Jaqueline");break; case 143:strcat(str,"Jasmin");break; case 144:strcat(str,"Jasmine");break; case 145:strcat(str,"Jennifer");break; case 146:strcat(str,"Jenny");break; case 147:strcat(str,"Jessica");break; case 148:strcat(str,"Jill");break; case 149:strcat(str,"Jillian");break; case 150:strcat(str,"Joan");break; case 151:strcat(str,"Joann");break; case 152:strcat(str,"Josephine");break; case 153:strcat(str,"Judy");break; case 154:strcat(str,"Juliana");break; case 155:strcat(str,"Julia");break; case 156:strcat(str,"Julie");break; case 157:strcat(str,"Juliette");break; case 158:strcat(str,"June");break; case 159:strcat(str,"Kaitlyn");break; case 160:strcat(str,"Kaley");break; case 161:strcat(str,"Karen");break; case 162:strcat(str,"Karla");break; case 163:strcat(str,"Kate");break; case 164:strcat(str,"Katelin");break; case 165:strcat(str,"Katherine");break; case 166:strcat(str,"Kathleen");break; case 167:strcat(str,"Kathy");break; case 168:strcat(str,"Katie");break; case 169:strcat(str,"Kay");break; case 170:strcat(str,"Kayla");break; case 171:strcat(str,"Kaylee");break; case 172:strcat(str,"Keely");break; case 173:strcat(str,"Kiki");break; case 174:strcat(str,"Kristal");break; case 175:strcat(str,"Kristie");break; case 176:strcat(str,"Kristin");break; case 177:strcat(str,"Krystal");break; case 178:strcat(str,"Lacey");break; case 179:strcat(str,"Lara");break; case 180:strcat(str,"Larissa");break; case 181:strcat(str,"Latoya");break; case 182:strcat(str,"Laura");break; case 183:strcat(str,"Lauren");break; case 184:strcat(str,"Lavender");break; case 185:strcat(str,"Leah");break; case 186:strcat(str,"Leila");break; case 187:strcat(str,"Leyna");break; case 188:strcat(str,"Liliana");break; case 189:strcat(str,"Lilly");break; case 190:strcat(str,"Lily");break; case 191:strcat(str,"Lina");break; case 192:strcat(str,"Linda");break; case 193:strcat(str,"Lindsay");break; case 194:strcat(str,"Lindsey");break; case 195:strcat(str,"Lisa");break; case 196:strcat(str,"Liz");break; case 197:strcat(str,"Lizabeth");break; case 198:strcat(str,"Lizzie");break; case 199:strcat(str,"Lois");break; case 200:strcat(str,"Loretta");break; case 201:strcat(str,"Louane");break; case 202:strcat(str,"Louanne");break; case 203:strcat(str,"Louise");break; case 204:strcat(str,"Lucia");break; case 205:strcat(str,"Lynn");break; case 206:strcat(str,"Lynnette");break; case 207:strcat(str,"Madison");break; case 208:strcat(str,"Madonna");break; case 209:strcat(str,"Manuela");break; case 210:strcat(str,"Margaret");break; case 211:strcat(str,"Marge");break; case 212:strcat(str,"Maria");break; case 213:strcat(str,"Mariana");break; case 214:strcat(str,"Marianne");break; case 215:strcat(str,"Marie");break; case 216:strcat(str,"Marion");break; case 217:strcat(str,"Marlene");break; case 218:strcat(str,"Martha");break; case 219:strcat(str,"Martina");break; case 220:strcat(str,"Mary");break; case 221:strcat(str,"Mary Ann");break; case 222:strcat(str,"Matilda");break; case 223:strcat(str,"Maureen");break; case 224:strcat(str,"Mayumi");break; case 225:strcat(str,"Megan");break; case 226:strcat(str,"Meghan");break; case 227:strcat(str,"Melanie");break; case 228:strcat(str,"Melissa");break; case 229:strcat(str,"Mercedes");break; case 230:strcat(str,"Merissa");break; case 231:strcat(str,"Mia");break; case 232:strcat(str,"Michelle");break; case 233:strcat(str,"Minal");break; case 234:strcat(str,"Mindy");break; case 235:strcat(str,"Miranda");break; case 236:strcat(str,"Molly");break; case 237:strcat(str,"Monica");break; case 238:strcat(str,"Nadia");break; case 239:strcat(str,"Nancy");break; case 240:strcat(str,"Natalie");break; case 241:strcat(str,"Natasha");break; case 242:strcat(str,"Nellie");break; case 243:strcat(str,"Nicole");break; case 244:strcat(str,"Nicolette");break; case 245:strcat(str,"Nina");break; case 246:strcat(str,"Norma");break; case 247:strcat(str,"October");break; case 248:strcat(str,"Olivia");break; case 249:strcat(str,"Pam");break; case 250:strcat(str,"Patricia");break; case 251:strcat(str,"Patty");break; case 252:strcat(str,"Paula");break; case 253:strcat(str,"Paulette");break; case 254:strcat(str,"Peggy");break; case 255:strcat(str,"Petunia");break; case 256:strcat(str,"Phoebe");break; case 257:strcat(str,"Priscilla");break; case 258:strcat(str,"Rachael");break; case 259:strcat(str,"Racheal");break; case 260:strcat(str,"Rachel");break; case 261:strcat(str,"Rachelle");break; case 262:strcat(str,"Rania");break; case 263:strcat(str,"Raphaela");break; case 264:strcat(str,"Raquel");break; case 265:strcat(str,"Rebecca");break; case 266:strcat(str,"Renee");break; case 267:strcat(str,"Rita");break; case 268:strcat(str,"Rosalie");break; case 269:strcat(str,"Rosalinda");break; case 270:strcat(str,"Rosanna");break; case 271:strcat(str,"Roberta");break; case 272:strcat(str,"Rose");break; case 273:strcat(str,"Rosemary");break; case 274:strcat(str,"Roxanne");break; case 275:strcat(str,"Roz");break; case 276:strcat(str,"Ruth");break; case 277:strcat(str,"Ruthanne");break; case 278:strcat(str,"Sabrina");break; case 279:strcat(str,"Sally");break; case 280:strcat(str,"Samantha");break; case 281:strcat(str,"Sandra");break; case 282:strcat(str,"Sara");break; case 283:strcat(str,"Sarah");break; case 284:strcat(str,"Satya");break; case 285:strcat(str,"Selma");break; case 286:strcat(str,"Shaniqua");break; case 287:strcat(str,"Shanna");break; case 288:strcat(str,"Shannon");break; case 289:strcat(str,"Sharon");break; case 290:strcat(str,"Sherry");break; case 291:strcat(str,"Shirley");break; case 292:strcat(str,"Shyann");break; case 293:strcat(str,"Silvia");break; case 294:strcat(str,"Sonia");break; case 295:strcat(str,"Sophia");break; case 296:strcat(str,"Sophie");break; case 297:strcat(str,"Stacie");break; case 298:strcat(str,"Stacy");break; case 299:strcat(str,"Stephanie");break; case 300:strcat(str,"Summer");break; case 301:strcat(str,"Sue");break; case 302:strcat(str,"Susan");break; case 303:strcat(str,"Susanna");break; case 304:strcat(str,"Suzanne");break; case 305:strcat(str,"Suzie");break; case 306:strcat(str,"Tabatha");break; case 307:strcat(str,"Tabitha");break; case 308:strcat(str,"Tamara");break; case 309:strcat(str,"Tammy");break; case 310:strcat(str,"Tara");break; case 311:strcat(str,"Tawanda");break; case 312:strcat(str,"Teresa");break; case 313:strcat(str,"Terri");break; case 314:strcat(str,"Tetiana");break; case 315:strcat(str,"Theresa");break; case 316:strcat(str,"Tiffanie");break; case 317:strcat(str,"Tiffany");break; case 318:strcat(str,"Tina");break; case 319:strcat(str,"Toni");break; case 320:strcat(str,"Tracy");break; case 321:strcat(str,"Tricia");break; case 322:strcat(str,"Trudy");break; case 323:strcat(str,"Tyra");break; case 324:strcat(str,"Valentina");break; case 325:strcat(str,"Valeria");break; case 326:strcat(str,"Valerie");break; case 327:strcat(str,"Vanessa");break; case 328:strcat(str,"Verena");break; case 329:strcat(str,"Veronica");break; case 330:strcat(str,"Virginia");break; case 331:strcat(str,"Vicki");break; case 332:strcat(str,"Vicky");break; case 333:strcat(str,"Victoria");break; case 334:strcat(str,"Violet");break; case 335:strcat(str,"Vithara");break; case 336:strcat(str,"Vonnita");break; case 337:strcat(str,"Wanda");break; case 338:strcat(str,"Wendy");break; case 339:strcat(str,"Willow");break; case 340:strcat(str,"Wilma");break; case 341:strcat(str,"Xenia");break; case 342:strcat(str,"Yoko");break; case 343:strcat(str,"Yuri");break; case 344:strcat(str,"Yvonne");break; case 345:strcat(str,"Zoe");break; //}}} default:strcat(str,"Defaulta");break; } } //}}} //{{{ Neutral else if(nametable == GENDER_NEUTRAL) { switch(roll) { //{{{ Gender-neutral name table case 0:strcat(str,"Akira");break; case 1:strcat(str,"Alex");break; case 2:strcat(str,"Alexis");break; case 3:strcat(str,"Angel");break; case 4:strcat(str,"Ariel");break; case 5:strcat(str,"Ashley");break; case 6:strcat(str,"Billy");break; case 7:strcat(str,"Frankie");break; case 8:strcat(str,"Hillary");break; case 9:strcat(str,"Kelly");break; case 10:strcat(str,"Jackie");break; case 11:strcat(str,"Jamie");break; case 12:strcat(str,"Jo");break; case 13:strcat(str,"Jun");break; case 14:strcat(str,"Kelsey");break; case 15:strcat(str,"Kelsie");break; case 16:strcat(str,"Kim");break; case 17:strcat(str,"Lesley");break; case 18:strcat(str,"Leslie");break; case 19:strcat(str,"Morgan");break; case 20:strcat(str,"Nicky");break; case 21:strcat(str,"Noel");break; case 22:strcat(str,"Page");break; case 23:strcat(str,"Paige");break; case 24:strcat(str,"Pat");break; case 25:strcat(str,"Raven");break; case 26:strcat(str,"Riley");break; case 27:strcat(str,"Robin");break; case 28:strcat(str,"Sam");break; case 29:strcat(str,"Sandy");break; case 30:strcat(str,"Sidney");break; case 31:strcat(str,"Taylor");break; case 32:strcat(str,"Terry");break; case 33:strcat(str,"Yanping");break; //}}} default:strcat(str,"Default");break; } } //}}} else if(nametable == GENDER_WHITEMALEPATRIARCH) //{{{ White Male Patriarchs { switch(roll) { //{{{ White Male Patriarch case 0:strcat(str,"Roger");break; case 1:strcat(str,"James");break; case 2:strcat(str,"John");break; case 3:strcat(str,"Bob");break; case 4:strcat(str,"Mike");break; case 5:strcat(str,"Bill");break; case 6:strcat(str,"Dave");break; case 7:strcat(str,"Rick");break; case 8:strcat(str,"Colin");break; case 9:strcat(str,"Joe");break; case 10:strcat(str,"Tom");break; case 11:strcat(str,"Chris");break; case 12:strcat(str,"Dan");break; case 13:strcat(str,"Paul");break; case 14:strcat(str,"Mark");break; case 15:strcat(str,"Donald");break; case 16:strcat(str,"Jim");break; case 17:strcat(str,"Ken");break; case 18:strcat(str,"Steve");break; case 19:strcat(str,"Edward");break; case 20:strcat(str,"Brian");break; case 21:strcat(str,"Ron");break; case 22:strcat(str,"Tony");break; case 23:strcat(str,"Kevin");break; case 24:strcat(str,"Jason");break; case 25:strcat(str,"Matt");break; case 26:strcat(str,"Gary");break; case 27:strcat(str,"Tim");break; case 28:strcat(str,"Alan");break; case 29:strcat(str,"Larry");break; case 30:strcat(str,"Jeff");break; case 31:strcat(str,"Frank");break; case 32:strcat(str,"Scott");break; case 33:strcat(str,"Eric");break; case 34:strcat(str,"Steve");break; case 35:strcat(str,"Andy");break; case 36:strcat(str,"Ray");break; case 37:strcat(str,"Greg");break; case 38:strcat(str,"Josh");break; case 39:strcat(str,"Jerry");break; case 40:strcat(str,"Dennis");break; case 41:strcat(str,"Walter");break; case 42:strcat(str,"Jesse");break; case 43:strcat(str,"Peter");break; case 44:strcat(str,"Harry");break; case 45:strcat(str,"Doug");break; case 46:strcat(str,"Henry");break; case 47:strcat(str,"Carl");break; case 48:strcat(str,"Arthur");break; case 49:strcat(str,"Ryan");break;//}}} } } //}}} /* else if(nametable == GENDER_MALE_IMMIGRANT) // {{{ Illegal Immigrants { switch(roll) { case 0:strcat(str,"Alejandro");break; case 1:strcat(str,"Antonio");break; case 2:strcat(str,"Beltran");break; case 3:strcat(str,"Carlos");break; case 4:strcat(str,"Diego");break; case 5:strcat(str,"Eduardo");break; case 6:strcat(str,"Enrique");break; case 7:strcat(str,"Fernando");break; case 8:strcat(str,"Jacobo");break; case 9:strcat(str,"Javier");break; case 10:strcat(str,"Jorge");break; case 11:strcat(str,"Juan");break; case 12:strcat(str,"Luis");break; case 13:strcat(str,"Matteo");break; case 14:strcat(str,"Pablo");break; case 15:strcat(str,"Pedro");break; case 16:strcat(str,"Raul");break; case 17:strcat(str,"Ricardo");break; } } // }}} else if(nametable == GENDER_FEMALE_IMMIGRANT) // {{{ Illegal Immigrants, Female { switch(roll) { case 0:strcat(str,"Daniela");break; case 1:strcat(str,"Denielle");break; case 2:strcat(str,"Esmerelda");break; case 3:strcat(str,"Gabrielle");break; case 4:strcat(str,"Isabel");break; case 5:strcat(str,"Isabella");break; case 6:strcat(str,"Isabelle");break; case 7:strcat(str,"Maria");break; case 8:strcat(str,"Natalia");break; case 9:strcat(str,"Roberta");break; } } // }}} */ } /* gets a random last name */ void lastname(char *str) //{{{ Last Name { strcpy(str,""); switch(LCSrandom(830)) { //{{{ Last name table case 0:strcat(str,"Abbey");break; case 1:strcat(str,"Abbott");break; case 2:strcat(str,"Abbzug");break; case 3:strcat(str,"Adamson");break; case 4:strcat(str,"Adkins");break; case 5:strcat(str,"Africa");break; case 6:strcat(str,"Aguilera");break; case 7:strcat(str,"Alanson");break; case 8:strcat(str,"Alcott");break; case 9:strcat(str,"Alda");break; case 10:strcat(str,"Alexander");break; case 11:strcat(str,"Allanshaw");break; case 12:strcat(str,"Allen");break; case 13:strcat(str,"Alley");break; case 14:strcat(str,"Ames");break; case 15:strcat(str,"Anderson");break; case 16:strcat(str,"Andress");break; case 17:strcat(str,"Antle");break; case 18:strcat(str,"Appleton");break; case 19:strcat(str,"Armstead");break; case 20:strcat(str,"Armstrong");break; case 21:strcat(str,"Arnaz");break; case 22:strcat(str,"Artfield");break; case 23:strcat(str,"Ashmore");break; case 24:strcat(str,"Ayers");break; case 25:strcat(str,"Aykroyd");break; case 26:strcat(str,"Bacall");break; case 27:strcat(str,"Bailey");break; case 28:strcat(str,"Baird");break; case 29:strcat(str,"Baker");break; case 30:strcat(str,"Baldwin");break; case 31:strcat(str,"Balgos");break; case 32:strcat(str,"Barr");break; case 33:strcat(str,"Baranyi");break; case 34:strcat(str,"Barrow");break; case 35:strcat(str,"Barwick");break; case 36:strcat(str,"Bates");break; case 37:strcat(str,"Baxter");break; case 38:strcat(str,"Beaumont");break; case 39:strcat(str,"Bendix");break; case 40:strcat(str,"Bennett");break; case 41:strcat(str,"Bezos");break; case 42:strcat(str,"Birkin");break; case 43:strcat(str,"Black");break; case 44:strcat(str,"Blackenship");break; case 45:strcat(str,"Blanchard");break; case 46:strcat(str,"Blitzer");break; case 47:strcat(str,"Blum");break; case 48:strcat(str,"Bogart");break; case 49:strcat(str,"Boggs");break; case 50:strcat(str,"Bolger");break; case 51:strcat(str,"Booker");break; case 52:strcat(str,"Bosanquet");break; case 53:strcat(str,"Boyd");break; case 54:strcat(str,"Bradbury");break; case 55:strcat(str,"Bradley");break; case 56:strcat(str,"Bradshaw");break; case 57:strcat(str,"Brandis");break; case 58:strcat(str,"Bremer");break; case 59:strcat(str,"Brewster");break; case 60:strcat(str,"Brightman");break; case 61:strcat(str,"Briscoe");break; case 62:strcat(str,"Brooks");break; case 63:strcat(str,"Brown");break; case 64:strcat(str,"Brownlee");break; case 65:strcat(str,"Bryant");break; case 66:strcat(str,"Buchanan");break; case 67:strcat(str,"Buckley");break; case 68:strcat(str,"Buckman");break; case 69:strcat(str,"Buckner");break; case 70:strcat(str,"Bugbee");break; case 71:strcat(str,"Bump");break; case 72:strcat(str,"Bundy");break; case 73:strcat(str,"Bunton");break; case 74:strcat(str,"Burghoff");break; case 75:strcat(str,"Burton");break; case 76:strcat(str,"Bush");break; case 77:strcat(str,"Butcher");break; case 78:strcat(str,"Butler");break; case 79:strcat(str,"Butt");break; case 80:strcat(str,"Butterman");break; case 81:strcat(str,"Buttman");break; case 82:strcat(str,"Byrd");break; case 83:strcat(str,"Callahan");break; case 84:strcat(str,"Campbell");break; case 85:strcat(str,"Carberry");break; case 86:strcat(str,"Carey");break; case 87:strcat(str,"Carpenter");break; case 88:strcat(str,"Carr");break; case 89:strcat(str,"Carson");break; case 90:strcat(str,"Cartwright");break; case 91:strcat(str,"Cavallero");break; case 92:strcat(str,"Cavill");break; case 93:strcat(str,"Chaffee");break; case 94:strcat(str,"Chamberlain");break; case 95:strcat(str,"Chambers");break; case 96:strcat(str,"Chandler");break; case 97:strcat(str,"Channing");break; case 98:strcat(str,"Cheney");break; case 99:strcat(str,"Cheng");break; case 100:strcat(str,"Childress");break; case 101:strcat(str,"Childs");break; case 102:strcat(str,"Chilton");break; case 103:strcat(str,"Cho");break; case 104:strcat(str,"Chubb");break; case 105:strcat(str,"Churchill");break; case 106:strcat(str,"Clavin");break; case 107:strcat(str,"Clay");break; case 108:strcat(str,"Clinton");break; case 109:strcat(str,"Cobb");break; case 110:strcat(str,"Coffey");break; case 111:strcat(str,"Cohen");break; case 112:strcat(str,"Colcord");break; case 113:strcat(str,"Cole");break; case 114:strcat(str,"Coleman");break; case 115:strcat(str,"Collins");break; case 116:strcat(str,"Colombe");break; case 117:strcat(str,"Colt");break; case 118:strcat(str,"Conner");break; case 119:strcat(str,"Cook");break; case 120:strcat(str,"Cooper");break; case 121:strcat(str,"Coopersmith");break; case 122:strcat(str,"Copeland");break; case 123:strcat(str,"Coppola");break; case 124:strcat(str,"Cordero");break; case 125:strcat(str,"Cosgrove");break; case 126:strcat(str,"Cottrell");break; case 127:strcat(str,"Court");break; case 128:strcat(str,"Cox");break; case 129:strcat(str,"Craft");break; case 130:strcat(str,"Crane");break; case 131:strcat(str,"Critchley");break; case 132:strcat(str,"Crockett");break; case 133:strcat(str,"Croft");break; case 134:strcat(str,"Cromwell");break; case 135:strcat(str,"Cross");break; case 136:strcat(str,"Crowe");break; case 137:strcat(str,"Crowson");break; case 138:strcat(str,"de la Cruz");break; case 139:strcat(str,"Cunningham");break; case 140:strcat(str,"Curnew");break; case 141:strcat(str,"Cutlass");break; case 142:strcat(str,"Cutler");break; case 143:strcat(str,"Dahmer");break; case 144:strcat(str,"Danes");break; case 145:strcat(str,"Danson");break; case 146:strcat(str,"Dante");break; case 147:strcat(str,"Darby");break; case 148:strcat(str,"Darnand");break; case 149:strcat(str,"Dash");break; case 150:strcat(str,"Daveson");break; case 151:strcat(str,"Davidson");break; case 152:strcat(str,"Davis");break; case 153:strcat(str,"Day");break; case 154:strcat(str,"Decker");break; case 155:strcat(str,"Deere");break; case 156:strcat(str,"Delaney");break; case 157:strcat(str,"Delgado");break; case 158:strcat(str,"DeLorean");break; case 159:strcat(str,"Dench");break; case 160:strcat(str,"Dent");break; case 161:strcat(str,"Dentz");break; case 162:strcat(str,"Diaz");break; case 163:strcat(str,"Diehl");break; case 164:strcat(str,"DiMeo");break; case 165:strcat(str,"Dole");break; case 166:strcat(str,"Dorgan");break; case 167:strcat(str,"Dorsey");break; case 168:strcat(str,"Doucette");break; case 169:strcat(str,"Downey");break; case 170:strcat(str,"Downing");break; case 171:strcat(str,"Doyle");break; case 172:strcat(str,"Drake");break; case 173:strcat(str,"Duell");break; case 174:strcat(str,"Duffield");break; case 175:strcat(str,"Duke");break; case 176:strcat(str,"Dunham");break; case 177:strcat(str,"Dunlap");break; case 178:strcat(str,"Duval");break; case 179:strcat(str,"Earle");break; case 180:strcat(str,"English");break; case 181:strcat(str,"Escobar");break; case 182:strcat(str,"Ericson");break; case 183:strcat(str,"Eubanks");break; case 184:strcat(str,"Evans");break; case 185:strcat(str,"al Fadil");break; case 186:strcat(str,"Fairbanks");break; case 187:strcat(str,"Fairchild");break; case 188:strcat(str,"Falco");break; case 189:strcat(str,"Farnsworth");break; case 190:strcat(str,"Farr");break; case 191:strcat(str,"Faulkner");break; case 192:strcat(str,"Fenoglio");break; case 193:strcat(str,"Fiddlebottom");break; case 194:strcat(str,"Fields");break; case 195:strcat(str,"Filler");break; case 196:strcat(str,"Fimple");break; case 197:strcat(str,"Fingleton");break; case 198:strcat(str,"Finn");break; case 199:strcat(str,"Fisher");break; case 200:strcat(str,"Fitzgerald");break; case 201:strcat(str,"Fitzpatrick");break; case 202:strcat(str,"Flanders");break; case 203:strcat(str,"Fletcher");break; case 204:strcat(str,"Florez");break; case 205:strcat(str,"Fortmuller");break; case 206:strcat(str,"Ford");break; case 207:strcat(str,"Foster");break; case 208:strcat(str,"Fox");break; case 209:strcat(str,"France");break; case 210:strcat(str,"Franklin");break; case 211:strcat(str,"Frost");break; case 212:strcat(str,"Friend");break; case 213:strcat(str,"Fudge");break; case 214:strcat(str,"Fulsom");break; case 215:strcat(str,"Furley");break; case 216:strcat(str,"Fushimi");break; case 217:strcat(str,"Gacy");break; case 218:strcat(str,"Galindo");break; case 219:strcat(str,"Garcia");break; case 220:strcat(str,"Garnier");break; case 221:strcat(str,"Gates");break; case 222:strcat(str,"Gatien");break; case 223:strcat(str,"Gelbart");break; case 224:strcat(str,"Getty");break; case 225:strcat(str,"Gilbert");break; case 226:strcat(str,"Gillmouth");break; case 227:strcat(str,"Gilpin");break; case 228:strcat(str,"Godwin");break; case 229:strcat(str,"Gleaves");break; case 230:strcat(str,"Goldberg");break; case 231:strcat(str,"Goldstein");break; case 232:strcat(str,"Goode");break; case 233:strcat(str,"Goodyear");break; case 234:strcat(str,"Gore");break; case 235:strcat(str,"Govorov");break; case 236:strcat(str,"Grammer");break; case 237:strcat(str,"Grant");break; case 238:strcat(str,"Gray");break; case 239:strcat(str,"Green");break; case 240:strcat(str,"Greenberg");break; case 241:strcat(str,"Gregg");break; case 242:strcat(str,"Grover");break; case 243:strcat(str,"Gu");break; case 244:strcat(str,"Guy");break; case 245:strcat(str,"Hall");break; case 246:strcat(str,"Hamilton");break; case 247:strcat(str,"Hammond");break; case 248:strcat(str,"Hann");break; case 249:strcat(str,"Hannemann");break; case 250:strcat(str,"Hapsburg");break; case 251:strcat(str,"Harper");break; case 252:strcat(str,"Harris");break; case 253:strcat(str,"Hatcher");break; case 254:strcat(str,"Hawking");break; case 255:strcat(str,"Haymer");break; case 256:strcat(str,"Headley");break; case 257:strcat(str,"Heath");break; case 258:strcat(str,"Heller");break; case 259:strcat(str,"Hellmann");break; case 260:strcat(str,"Helton");break; case 261:strcat(str,"Hemingway");break; case 262:strcat(str,"Henderson");break; case 263:strcat(str,"Hendren");break; case 264:strcat(str,"Hendrix");break; case 265:strcat(str,"Hepburn");break; case 266:strcat(str,"Hepditch");break; case 267:strcat(str,"Hewson");break; case 268:strcat(str,"Heyduke");break; case 269:strcat(str,"Hiaasen");break; case 270:strcat(str,"Hill");break; case 271:strcat(str,"Hilliard");break; case 272:strcat(str,"Himelstein");break; case 273:strcat(str,"Hoddinott");break; case 274:strcat(str,"Hoffmann");break; case 275:strcat(str,"Hogan");break; case 276:strcat(str,"Holder");break; case 277:strcat(str,"Hooker");break; case 278:strcat(str,"Hoover");break; case 279:strcat(str,"Hope");break; case 280:strcat(str,"Hopkins");break; case 281:strcat(str,"Hopper");break; case 282:strcat(str,"Hornberger");break; case 283:strcat(str,"Houghton");break; case 284:strcat(str,"Houseman");break; case 285:strcat(str,"Howard");break; case 286:strcat(str,"Howe");break; case 287:strcat(str,"Hudson");break; case 288:strcat(str,"Hughes");break; case 289:strcat(str,"Hunnicutt");break; case 290:strcat(str,"Hutchison");break; case 291:strcat(str,"Ibarra");break; case 292:strcat(str,"Incledon");break; case 293:strcat(str,"Inking");break; case 294:strcat(str,"Irvin");break; case 295:strcat(str,"Irving");break; case 296:strcat(str,"Issacson");break; case 297:strcat(str,"Ivanson");break; case 298:strcat(str,"Ives");break; case 299:strcat(str,"Jackson");break; case 300:strcat(str,"Jameson");break; case 301:strcat(str,"Jefferson");break; case 302:strcat(str,"Jenkins");break; case 303:strcat(str,"Jimison");break; case 304:strcat(str,"Johnson");break; case 305:strcat(str,"Jones");break; case 306:strcat(str,"Jordan");break; case 307:strcat(str,"Judge");break; case 308:strcat(str,"Justice");break; case 309:strcat(str,"Kaltenbrunner");break; case 310:strcat(str,"Keaton");break; case 311:strcat(str,"Keats");break; case 312:strcat(str,"Keene");break; case 313:strcat(str,"Keitel");break; case 314:strcat(str,"Kent");break; case 315:strcat(str,"Kershaw");break; case 316:strcat(str,"Kesten");break; case 317:strcat(str,"Kilbourne");break; case 318:strcat(str,"Kindale");break; case 319:strcat(str,"King");break; case 320:strcat(str,"Kinslow");break; case 321:strcat(str,"Kitchen");break; case 322:strcat(str,"Kokernot");break; case 323:strcat(str,"Koprowski");break; case 324:strcat(str,"Krasow");break; case 325:strcat(str,"Krieger");break; case 326:strcat(str,"Krishna");break; case 327:strcat(str,"Kunstler");break; case 328:strcat(str,"Kurosawa");break; case 329:strcat(str,"Langley");break; case 330:strcat(str,"LaSaga");break; case 331:strcat(str,"Lauder");break; case 332:strcat(str,"Lee");break; case 333:strcat(str,"Leeves");break; case 334:strcat(str,"Lewis");break; case 335:strcat(str,"Leyden");break; case 336:strcat(str,"Li");break; case 337:strcat(str,"Lincoln");break; case 338:strcat(str,"Linville");break; case 339:strcat(str,"Lipman");break; case 340:strcat(str,"Little");break; case 341:strcat(str,"Loeb");break; case 342:strcat(str,"Logan");break; case 343:strcat(str,"Logsdon");break; case 344:strcat(str,"Lombard");break; case 345:strcat(str,"London");break; case 346:strcat(str,"Lopez");break; case 347:strcat(str,"Lovecraft");break; case 348:strcat(str,"Lowcourt");break; case 349:strcat(str,"Lowe");break; case 350:strcat(str,"Lowerly");break; case 351:strcat(str,"Lucas");break; case 352:strcat(str,"Luna");break; case 353:strcat(str,"Lushington");break; case 354:strcat(str,"Luzinski");break; case 355:strcat(str,"Lyles");break; case 356:strcat(str,"Lynam");break; case 357:strcat(str,"Lynch");break; case 358:strcat(str,"Van Lynden");break; case 359:strcat(str,"Lyons");break; case 360:strcat(str,"MacGyver");break; case 361:strcat(str,"MacKinley");break; case 362:strcat(str,"MacKinnon");break; case 363:strcat(str,"MacLeod");break; case 364:strcat(str,"MacNeil");break; case 365:strcat(str,"Macy");break; case 366:strcat(str,"Mahoney");break; case 367:strcat(str,"Malone");break; case 368:strcat(str,"Mann");break; case 369:strcat(str,"Manning");break; case 370:strcat(str,"Mansfield");break; case 371:strcat(str,"March");break; case 372:strcat(str,"Marsden");break; case 373:strcat(str,"Marsh");break; case 374:strcat(str,"Marshall");break; case 375:strcat(str,"Matheson");break; case 376:strcat(str,"Mathewson");break; case 377:strcat(str,"Maxwell");break; case 378:strcat(str,"McAdams");break; case 379:strcat(str,"McAllister");break; case 380:strcat(str,"McArthur");break; case 381:strcat(str,"McBroom");break; case 382:strcat(str,"McCain");break; case 383:strcat(str,"McCarthy");break; case 384:strcat(str,"McCorkell");break; case 385:strcat(str,"McDonald");break; case 386:strcat(str,"McFadden");break; case 387:strcat(str,"McFatridge");break; case 388:strcat(str,"McFaul");break; case 389:strcat(str,"McGee");break; case 390:strcat(str,"McGovern");break; case 391:strcat(str,"McGrath");break; case 392:strcat(str,"McGraw");break; case 393:strcat(str,"McGuinness");break; case 394:strcat(str,"McIntosh");break; case 395:strcat(str,"McIntyre");break; case 396:strcat(str,"McKenzie");break; case 397:strcat(str,"McLaughlin");break; case 398:strcat(str,"McLeod");break; case 399:strcat(str,"McMurray");break; case 400:strcat(str,"McNabb");break; case 401:strcat(str,"McPhail");break; case 402:strcat(str,"McPherson");break; case 403:strcat(str,"McQueen");break; case 404:strcat(str,"McVeigh");break; case 405:strcat(str,"Meek");break; case 406:strcat(str,"Meffert");break; case 407:strcat(str,"Melendez");break; case 408:strcat(str,"Metzger");break; case 409:strcat(str,"Mifune");break; case 410:strcat(str,"Milburn");break; case 411:strcat(str,"Miller");break; case 412:strcat(str,"Mitchell");break; case 413:strcat(str,"Miyamoto");break; case 414:strcat(str,"Monroe");break; case 415:strcat(str,"Montag");break; case 416:strcat(str,"Montalvo");break; case 417:strcat(str,"Montana");break; case 418:strcat(str,"Moon");break; case 419:strcat(str,"Morris");break; case 420:strcat(str,"Morrow");break; case 421:strcat(str,"Morton");break; case 422:strcat(str,"Mosley");break; case 423:strcat(str,"Muhammed");break; case 424:strcat(str,"Murphy");break; case 425:strcat(str,"Murray");break; case 426:strcat(str,"Murrell");break; case 427:strcat(str,"Muscat");break; case 428:strcat(str,"Muskhelishvili");break; case 429:strcat(str,"Mussa");break; case 430:strcat(str,"Myatt");break; case 431:strcat(str,"Myers");break; case 432:strcat(str,"Nagel");break; case 433:strcat(str,"Nagelberg");break; case 434:strcat(str,"Nakagawa");break; case 435:strcat(str,"Nakahara");break; case 436:strcat(str,"Nallet");break; case 437:strcat(str,"Nance");break; case 438:strcat(str,"Nash");break; case 439:strcat(str,"Nathanson");break; case 440:strcat(str,"Necker");break; case 441:strcat(str,"Nelson");break; case 442:strcat(str,"Ness");break; case 443:strcat(str,"Nettles");break; case 444:strcat(str,"Neuwirth");break; case 445:strcat(str,"Nevinson");break; case 446:strcat(str,"Newberry");break; case 447:strcat(str,"Newhook");break; case 448:strcat(str,"Newman");break; case 449:strcat(str,"Ng");break; case 450:strcat(str,"Nicolle");break; case 451:strcat(str,"Nickson");break; case 452:strcat(str,"Nielson");break; case 453:strcat(str,"Nixon");break; case 454:strcat(str,"North");break; case 455:strcat(str,"Oakley");break; case 456:strcat(str,"Obama");break; case 457:strcat(str,"Obeid");break; case 458:strcat(str,"Oberlander");break; case 459:strcat(str,"Ochs");break; case 460:strcat(str,"Ogden");break; case 461:strcat(str,"Olde");break; case 462:strcat(str,"Olds");break; case 463:strcat(str,"Oldsmar");break; case 464:strcat(str,"Ollerenshaw");break; case 465:strcat(str,"Orlando");break; case 466:strcat(str,"Ortiz");break; case 467:strcat(str,"Paoletti");break; case 468:strcat(str,"Palm");break; case 469:strcat(str,"Palmer");break; case 470:strcat(str,"Parker");break; case 471:strcat(str,"Parking");break; case 472:strcat(str,"Parr");break; case 473:strcat(str,"Patterson");break; case 474:strcat(str,"Pearson");break; case 475:strcat(str,"Peck");break; case 476:strcat(str,"Pegg");break; case 477:strcat(str,"Pelton");break; case 478:strcat(str,"Pendergrass");break; case 479:strcat(str,"Pendleton");break; case 480:strcat(str,"Perez");break; case 481:strcat(str,"Pert");break; case 482:strcat(str,"Peterson");break; case 483:strcat(str,"Petermann");break; case 484:strcat(str,"Pickett");break; case 485:strcat(str,"Pierce");break; case 486:strcat(str,"Piercey");break; case 487:strcat(str,"Pommerencke");break; case 488:strcat(str,"Pomper");break; case 489:strcat(str,"Porcaro");break; case 490:strcat(str,"Porter");break; case 491:strcat(str,"Postman");break; case 492:strcat(str,"Potter");break; case 493:strcat(str,"Pound");break; case 494:strcat(str,"Powers");break; case 495:strcat(str,"Presley");break; case 496:strcat(str,"Probst");break; case 497:strcat(str,"Proudfoot");break; case 498:strcat(str,"Pryor");break; case 499:strcat(str,"Puente");break; case 500:strcat(str,"Purcell");break; case 501:strcat(str,"Queen");break; case 502:strcat(str,"Quennell");break; case 503:strcat(str,"Quick");break; case 504:strcat(str,"Quilico");break; case 505:strcat(str,"Quilliam");break; case 506:strcat(str,"Quilty");break; case 507:strcat(str,"Quincey");break; case 508:strcat(str,"Quinlivan");break; case 509:strcat(str,"Quinn");break; case 510:strcat(str,"Quirk");break; case 511:strcat(str,"Rabban");break; case 512:strcat(str,"Rackard");break; case 513:strcat(str,"Radman");break; case 514:strcat(str,"Rainey");break; case 515:strcat(str,"Ramirez");break; case 516:strcat(str,"Rand");break; case 517:strcat(str,"Randell");break; case 518:strcat(str,"Ransom");break; case 519:strcat(str,"Rappaport");break; case 520:strcat(str,"Raskin");break; case 521:strcat(str,"Rastrelli");break; case 522:strcat(str,"Rather");break; case 523:strcat(str,"Ratzenberger");break; case 524:strcat(str,"Ravenhill");break; case 525:strcat(str,"Rawls");break; case 526:strcat(str,"Read");break; case 527:strcat(str,"Reading");break; case 528:strcat(str,"Reagan");break; case 529:strcat(str,"Reasoner");break; case 530:strcat(str,"Van Rechteren");break; case 531:strcat(str,"Redford");break; case 532:strcat(str,"Redman");break; case 533:strcat(str,"Redwine");break; case 534:strcat(str,"Reed");break; case 535:strcat(str,"Reekers");break; case 536:strcat(str,"Rendell");break; case 537:strcat(str,"Rexford");break; case 538:strcat(str,"Reynolds");break; case 539:strcat(str,"Ricci");break; case 540:strcat(str,"Richardson");break; case 541:strcat(str,"Richter");break; case 542:strcat(str,"Rideout");break; case 543:strcat(str,"Riffle");break; case 544:strcat(str,"Robinson");break; case 545:strcat(str,"Rodham");break; case 546:strcat(str,"Rojo");break; case 547:strcat(str,"Roland");break; case 548:strcat(str,"Roosevelt");break; case 549:strcat(str,"Rose");break; case 550:strcat(str,"Rosenberg");break; case 551:strcat(str,"Ross");break; case 552:strcat(str,"Rota");break; case 553:strcat(str,"Rothstein");break; case 554:strcat(str,"Roy");break; case 555:strcat(str,"Roylance");break; case 556:strcat(str,"Rudkin");break; case 557:strcat(str,"Rush");break; case 558:strcat(str,"Rushworth");break; case 559:strcat(str,"la Russa");break; case 560:strcat(str,"Russell");break; case 561:strcat(str,"Rutherford");break; case 562:strcat(str,"Ryman");break; case 563:strcat(str,"Sabella");break; case 564:strcat(str,"Saddler");break; case 565:strcat(str,"Sadler");break; case 566:strcat(str,"Sansome");break; case 567:strcat(str,"Santiago");break; case 568:strcat(str,"Santos");break; case 569:strcat(str,"Savedra");break; case 570:strcat(str,"Sawyer");break; case 571:strcat(str,"Saxton");break; case 572:strcat(str,"Scales");break; case 573:strcat(str,"Scardino");break; case 574:strcat(str,"Schmitt");break; case 575:strcat(str,"Schumacher");break; case 576:strcat(str,"Schuster");break; case 577:strcat(str,"Scott");break; case 578:strcat(str,"Scully");break; case 579:strcat(str,"Scurfield");break; case 580:strcat(str,"Sealock");break; case 581:strcat(str,"Seay");break; case 582:strcat(str,"Sellers");break; case 583:strcat(str,"Semin");break; case 584:strcat(str,"Serling");break; case 585:strcat(str,"Sewall");break; case 586:strcat(str,"Sexton");break; case 587:strcat(str,"Shackleton");break; case 588:strcat(str,"Shagwell");break; case 589:strcat(str,"al Shamie");break; case 590:strcat(str,"Shanahan");break; case 591:strcat(str,"Sharpe");break; case 592:strcat(str,"Shaw");break; case 593:strcat(str,"Shedd");break; case 594:strcat(str,"Shelby");break; case 595:strcat(str,"Shelton");break; case 596:strcat(str,"Shengde");break; case 597:strcat(str,"Shepard");break; case 598:strcat(str,"Shepardson");break; case 599:strcat(str,"Sheppard");break; case 600:strcat(str,"Sherman");break; case 601:strcat(str,"Shew");break; case 602:strcat(str,"Shields");break; case 603:strcat(str,"Shiller");break; case 604:strcat(str,"Shimazu");break; case 605:strcat(str,"Shipman");break; case 606:strcat(str,"Shipp");break; case 607:strcat(str,"Sho");break; case 608:strcat(str,"Short");break; case 609:strcat(str,"Shrapnal");break; case 610:strcat(str,"Shrum");break; case 611:strcat(str,"Shumway");break; case 612:strcat(str,"Shurin");break; case 613:strcat(str,"Shuttleworth");break; case 614:strcat(str,"Sidebottom");break; case 615:strcat(str,"Siegel");break; case 616:strcat(str,"Siever");break; case 617:strcat(str,"da Silva");break; case 618:strcat(str,"Silverman");break; case 619:strcat(str,"Silverstein");break; case 620:strcat(str,"Simmons");break; case 621:strcat(str,"Simms");break; case 622:strcat(str,"Simon");break; case 623:strcat(str,"Simpson");break; case 624:strcat(str,"Skidmore");break; case 625:strcat(str,"Skinner");break; case 626:strcat(str,"Skirrow");break; case 627:strcat(str,"Skutnik");break; case 628:strcat(str,"Skye");break; case 629:strcat(str,"Skyler");break; case 630:strcat(str,"Slaten");break; case 631:strcat(str,"Smalley");break; case 632:strcat(str,"Smallwood");break; case 633:strcat(str,"Smart");break; case 634:strcat(str,"Smith");break; case 635:strcat(str,"Smithers");break; case 636:strcat(str,"Smyth");break; case 637:strcat(str,"Snead");break; case 638:strcat(str,"Snook");break; case 639:strcat(str,"Snow");break; case 640:strcat(str,"Snyder");break; case 641:strcat(str,"Sommer");break; case 642:strcat(str,"Somner");break; case 643:strcat(str,"Soren");break; case 644:strcat(str,"Spasov");break; case 645:strcat(str,"Spears");break; case 646:strcat(str,"Spencer");break; case 647:strcat(str,"Stark");break; case 648:strcat(str,"Starkweather");break; case 649:strcat(str,"Stelling");break; case 650:strcat(str,"Stephenson");break; case 651:strcat(str,"Sterling");break; case 652:strcat(str,"Sternin");break; case 653:strcat(str,"Stevenson");break; case 654:strcat(str,"Stockton");break; case 655:strcat(str,"Stone");break; case 656:strcat(str,"Storm");break; case 657:strcat(str,"Storms");break; case 658:strcat(str,"Stiver");break; case 659:strcat(str,"Strain");break; case 660:strcat(str,"Straley");break; case 661:strcat(str,"Straub");break; case 662:strcat(str,"Strauss");break; case 663:strcat(str,"Stripe");break; case 664:strcat(str,"Strossen");break; case 665:strcat(str,"Suave");break; case 666:strcat(str,"Suiter");break; case 667:strcat(str,"Sulaiman");break; case 668:strcat(str,"Sullivan");break; case 669:strcat(str,"Surnow");break; case 670:strcat(str,"Susman");break; case 671:strcat(str,"Swain");break; case 672:strcat(str,"Swaine");break; case 673:strcat(str,"Swanson");break; case 674:strcat(str,"Sweeney");break; case 675:strcat(str,"Swift");break; case 676:strcat(str,"Swit");break; case 677:strcat(str,"Symington");break; case 678:strcat(str,"Symonds");break; case 679:strcat(str,"Tabb");break; case 680:strcat(str,"Tailboys");break; case 681:strcat(str,"Takayoshi");break; case 682:strcat(str,"Talbert");break; case 683:strcat(str,"Talbot");break; case 684:strcat(str,"Talbott");break; case 685:strcat(str,"Talty");break; case 686:strcat(str,"Tanner");break; case 687:strcat(str,"Tatters");break; case 688:strcat(str,"Taubman");break; case 689:strcat(str,"Taylor");break; case 690:strcat(str,"Tayo");break; case 691:strcat(str,"Teige");break; case 692:strcat(str,"Tell");break; case 693:strcat(str,"Templeton");break; case 694:strcat(str,"Tennent");break; case 695:strcat(str,"Tenney");break; case 696:strcat(str,"Tenpenny");break; case 697:strcat(str,"Terrill");break; case 698:strcat(str,"Testore");break; case 699:strcat(str,"Tetley");break; case 700:strcat(str,"Thalberg");break; case 701:strcat(str,"Thatcher");break; case 702:strcat(str,"Thomaz");break; case 703:strcat(str,"Thompson");break; case 704:strcat(str,"Thomson");break; case 705:strcat(str,"Thorne");break; case 706:strcat(str,"Threepwood");break; case 707:strcat(str,"Thurgood");break; case 708:strcat(str,"Thurlow");break; case 709:strcat(str,"Tickell");break; case 710:strcat(str,"Tillett");break; case 711:strcat(str,"Tillinghast");break; case 712:strcat(str,"Tillson");break; case 713:strcat(str,"Tillsley");break; case 714:strcat(str,"Timmonds");break; case 715:strcat(str,"Tippett");break; case 716:strcat(str,"Tisdall");break; case 717:strcat(str,"Tishman");break; case 718:strcat(str,"Titcomb");break; case 719:strcat(str,"Tobin");break; case 720:strcat(str,"Todd");break; case 721:strcat(str,"Todhunter");break; case 722:strcat(str,"Toft");break; case 723:strcat(str,"Tolbert");break; case 724:strcat(str,"Tolkien");break; case 725:strcat(str,"Tolson");break; case 726:strcat(str,"Tonelli");break; case 727:strcat(str,"Toogood");break; case 728:strcat(str,"Tooke");break; case 729:strcat(str,"Toole");break; case 730:strcat(str,"Toth");break; case 731:strcat(str,"Towne");break; case 732:strcat(str,"Townsend");break; case 733:strcat(str,"Trafford");break; case 734:strcat(str,"Trebek");break; case 735:strcat(str,"Truman");break; case 736:strcat(str,"Tubbs");break; case 737:strcat(str,"Tubman");break; case 738:strcat(str,"Tucker");break; case 739:strcat(str,"Turner");break; case 740:strcat(str,"Tyler");break; case 741:strcat(str,"Tymchyshyn");break; case 742:strcat(str,"Ulmer");break; case 743:strcat(str,"Underhill");break; case 744:strcat(str,"Underdown");break; case 745:strcat(str,"Underwood");break; case 746:strcat(str,"Updike");break; case 747:strcat(str,"Upton");break; case 748:strcat(str,"Usher");break; case 749:strcat(str,"Ussher");break; case 750:strcat(str,"Valdez");break; case 751:strcat(str,"Vallance");break; case 752:strcat(str,"Vance");break; case 753:strcat(str,"Vasilevsky");break; case 754:strcat(str,"Venus");break; case 755:strcat(str,"Villa");break; case 756:strcat(str,"Villanueva");break; case 757:strcat(str,"Viscuso");break; case 758:strcat(str,"Voland");break; case 759:strcat(str,"Vulcar");break; case 760:strcat(str,"Wade");break; case 761:strcat(str,"Wadsworth");break; case 762:strcat(str,"Walden");break; case 763:strcat(str,"Walker");break; case 764:strcat(str,"Wallace");break; case 765:strcat(str,"Walsh");break; case 766:strcat(str,"Walton");break; case 767:strcat(str,"Walwyn");break; case 768:strcat(str,"Wang");break; case 769:strcat(str,"Ward");break; case 770:strcat(str,"Warman");break; case 771:strcat(str,"Warner");break; case 772:strcat(str,"Warr");break; case 773:strcat(str,"Washington");break; case 774:strcat(str,"Weathers");break; case 775:strcat(str,"Webber");break; case 776:strcat(str,"Webster");break; case 777:strcat(str,"Weeks");break; case 778:strcat(str,"Weller");break; case 779:strcat(str,"Wendt");break; case 780:strcat(str,"West");break; case 781:strcat(str,"Westlake");break; case 782:strcat(str,"Weston");break; case 783:strcat(str,"Weygand");break; case 784:strcat(str,"White");break; case 785:strcat(str,"Whitehead");break; case 786:strcat(str,"Whitley");break; case 787:strcat(str,"Wickes");break; case 788:strcat(str,"Wilcox");break; case 789:strcat(str,"Willett");break; case 790:strcat(str,"Williams");break; case 791:strcat(str,"Williamson");break; case 792:strcat(str,"Willman");break; case 793:strcat(str,"Wilson");break; case 794:strcat(str,"Winchester");break; case 795:strcat(str,"Winkelman");break; case 796:strcat(str,"Winslow");break; case 797:strcat(str,"Winter");break; case 798:strcat(str,"Wiseman");break; case 799:strcat(str,"Wolfe");break; case 800:strcat(str,"Wong");break; case 801:strcat(str,"Wood");break; case 802:strcat(str,"Woodrow");break; case 803:strcat(str,"Wright");break; case 804:strcat(str,"Wuornos");break; case 805:strcat(str,"Stassen");break; case 806:strcat(str,"Xue");break; case 807:strcat(str,"Yamaguchi");break; case 808:strcat(str,"Yates");break; case 809:strcat(str,"Yee");break; case 810:strcat(str,"Yerkovich");break; case 811:strcat(str,"Yim");break; case 812:strcat(str,"Young");break; case 813:strcat(str,"Youngblood");break; case 814:strcat(str,"Yue");break; case 815:strcat(str,"Zachary");break; case 816:strcat(str,"Zadora");break; case 817:strcat(str,"Zakharov");break; case 818:strcat(str,"Zale");break; case 819:strcat(str,"Zedner");break; case 820:strcat(str,"Zhang");break; case 821:strcat(str,"Zicree");break; case 822:strcat(str,"Zimmermann");break; case 823:strcat(str,"Zito");break; case 824:strcat(str,"Zlotoff");break; case 825:strcat(str,"Zondervan");break; case 826:strcat(str,"Zucker");break; case 827:strcat(str,"Zumbach");break; case 828:strcat(str,"Starr");break; case 829:strcat(str,"Falstaff");break; default:strcat(str,"Errorman");break; } }===== Age Macros ===== These determine basic age categories for characters. #define AGE_DOGYEARS 2+LCSrandom(5) /* for the animals */ #define AGE_CHILD 7+LCSrandom(4) /* child laborer */ #define AGE_TEENAGER 14+LCSrandom(4) /* HS dropout, teenager, some fast food workers */ #define AGE_YOUNGADULT 18+LCSrandom(18) /* young lads and ladies */ #define AGE_MATURE 20+LCSrandom(40) /* most folks */ #define AGE_GRADUATE 26+LCSrandom(34) /* most folks, with 6-8 years college */ #define AGE_MIDDLEAGED 35+LCSrandom(25) /* for the more experienced types */ #define AGE_SENIOR 65+LCSrandom(30) /* ah, social security */ ===== Civilian Weapon Assignment =====
/* Weapon assignment macros */ #define GIVE_WEAPON_CIVILIAN \ if(law[LAW_GUNCONTROL]==-1 && !LCSrandom(30)) { \ Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); \ cr.give_weapon(w,NULL); \ Clip c=Clip(*cliptype[getcliptype("CLIP_38")],4); \ cr.take_clips(c,4); \ cr.reload(false); \ } else if(law[LAW_GUNCONTROL]==-2) { \ if(!LCSrandom(10)) { \ Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); \ cr.give_weapon(w,NULL); \ Clip c=Clip(*cliptype[getcliptype("CLIP_9")],4);\ cr.take_clips(c,4); \ cr.reload(false); \ } else if(!LCSrandom(9)) { \ Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_45")]); \ cr.give_weapon(w,NULL); \ Clip c=Clip(*cliptype[getcliptype("CLIP_45")],4); \ cr.take_clips(c,4); \ cr.reload(false); \ } \ }===== Gender Macros =====
/* Gender macros */ #define GIVE_GENDER_MALE \ if(law[LAW_WOMEN]==-2 || \ (law[LAW_WOMEN]==-1 && LCSrandom(25)) || \ (law[LAW_WOMEN]==0 && LCSrandom(10)) || \ (law[LAW_WOMEN]==1 && LCSrandom(4))) { \ cr.gender_conservative=cr.gender_liberal=GENDER_MALE; \ } #define GIVE_GENDER_FEMALE \ if(law[LAW_WOMEN]==-2 || \ (law[LAW_WOMEN]==-1 && LCSrandom(25)) || \ (law[LAW_WOMEN]==0 && LCSrandom(10)) || \ (law[LAW_WOMEN]==1 && LCSrandom(4))) { \ cr.gender_conservative=cr.gender_liberal=GENDER_FEMALE; \ }===== Creature Sheet Creation =====
/* rolls up a creature's stats and equipment */ void makecreature(Creature &cr,short type) //Lots of temporary solution in this function. -XML { Weapon* weapon = NULL; Armor* armor = NULL; Clip* clips = NULL; int a = 0; cr.creatureinit(); cr.exists=1; cr.squadid=-1; cr.type=type; cr.infiltration=0; getrecruitcreature(cr.name,type); { Armor a=Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(a,NULL); } cr.money=LCSrandom(21)+20; { int mood=publicmood(-1); conservatise(cr); if(LCSrandom(100)<mood)cr.align++; if(LCSrandom(100)<mood)cr.align++; } //cr.align=LCSrandom(3)-1; cr.worklocation=cursite; verifyworklocation(cr); int attcap[ATTNUM]; for(a=0;a<ATTNUM;a++) { attcap[a]=10; cr.set_attribute(a,1); } int attnum=40; switch(type) { case CREATURE_BOUNCER: GIVE_GENDER_MALE; if(mode==GAMEMODE_SITE && location[cursite]->highsecurity) { strcpy(cr.name,"Enforcer"); cr.set_skill(SKILL_CLUB,LCSrandom(3)+3); } if(law[LAW_GUNCONTROL]==-2) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(law[LAW_GUNCONTROL]==-1) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_44")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_44")],4); cr.take_clips(c,4); cr.reload(false); } else if(law[LAW_GUNCONTROL]==0) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_NIGHTSTICK")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(3)+1); if(disguisesite(sitetype)) { cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); } else cr.align=0; cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_STRENGTH,4); break; case CREATURE_SECURITYGUARD: GIVE_GENDER_MALE; if(law[LAW_GUNCONTROL]==-2) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(law[LAW_GUNCONTROL]!=2) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_NIGHTSTICK")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_SECURITYUNIFORM")]); cr.give_armor(*armor,NULL); cr.set_skill(SKILL_PISTOL,LCSrandom(3)+1); cr.align=-1; cr.infiltration=0.1f*LCSrandom(3); cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_STRENGTH,2); break; case CREATURE_SCIENTIST_LABTECH: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; if(!cr.is_armed() && !LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SYRINGE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_LABCOAT")]); cr.give_armor(*armor,NULL); cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_INTELLIGENCE,5); cr.set_skill(SKILL_COMPUTERS,LCSrandom(2)+1); cr.set_skill(SKILL_SCIENCE,LCSrandom(4)+3); break; case CREATURE_JUDGE_CONSERVATIVE: GIVE_GENDER_MALE; strcpy(cr.name,"Hangin' Judge"); if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_44")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_44")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_GAVEL")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_BLACKROBE")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(41)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=100+LCSrandom(50); cr.age=AGE_MIDDLEAGED; cr.set_skill(SKILL_LAW,LCSrandom(6)+5); cr.set_skill(SKILL_WRITING,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,5); cr.set_attribute(ATTRIBUTE_WISDOM,10); attcap[ATTRIBUTE_HEART]=1; break; case CREATURE_JUDGE_LIBERAL: strcpy(cr.name,"Liberal Judge"); if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_GAVEL")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_BLACKROBE")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(41)+20; cr.align=1; cr.age=AGE_MIDDLEAGED; cr.set_skill(SKILL_LAW,LCSrandom(6)+5); cr.set_skill(SKILL_WRITING,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,5); cr.set_attribute(ATTRIBUTE_HEART,10); break; case CREATURE_SCIENTIST_EMINENT: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; if(!cr.is_armed() && !LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SYRINGE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_LABCOAT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(41)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=100+LCSrandom(50); cr.age=AGE_MIDDLEAGED; cr.set_skill(SKILL_WRITING,LCSrandom(3)+1); cr.set_skill(SKILL_SCIENCE,LCSrandom(6)+6); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,10); cr.set_attribute(ATTRIBUTE_WISDOM,6); break; case CREATURE_CORPORATE_MANAGER: GIVE_WEAPON_CIVILIAN; armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(41)+40; cr.align=-1; cr.infiltration=0.1f*LCSrandom(6); cr.age=AGE_MATURE; GIVE_GENDER_MALE; cr.set_skill(SKILL_BUSINESS,LCSrandom(4)+3); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,4); cr.set_attribute(ATTRIBUTE_CHARISMA,5); cr.set_attribute(ATTRIBUTE_WISDOM,5); break; case CREATURE_CORPORATE_CEO: GIVE_GENDER_MALE; //if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_DESERT_EAGLE")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_50AE")],4); cr.take_clips(c,4); cr.reload(false); } armor=new Armor(*armortype[getarmortype("ARMOR_EXPENSIVESUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(1001)+1000; cr.align=-1; cr.infiltration=1.0f; cr.juice=1000; cr.age=AGE_MIDDLEAGED; generate_name(cr.propername, GENDER_WHITEMALEPATRIARCH); strcpy(cr.name,"CEO "); strcat(cr.name,cr.propername); cr.dontname = true; cr.set_skill(SKILL_BUSINESS,LCSrandom(6)+10); cr.set_skill(SKILL_DODGE,LCSrandom(6)+10); cr.set_skill(SKILL_PISTOL,LCSrandom(6)+10); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,7); cr.set_attribute(ATTRIBUTE_CHARISMA,7); cr.set_attribute(ATTRIBUTE_WISDOM,12); break; case CREATURE_WORKER_SERVANT: cr.money=0; cr.align=1; armor=new Armor(*armortype[getarmortype("ARMOR_SERVANTUNIFORM")]); cr.give_armor(*armor,NULL); cr.age=AGE_MATURE; break; case CREATURE_WORKER_JANITOR: GIVE_WEAPON_CIVILIAN; cr.age=AGE_MATURE; break; case CREATURE_WORKER_SWEATSHOP: cr.strip(NULL); cr.align=1; cr.age=AGE_MATURE; cr.juice=-20; cr.flag|=CREATUREFLAG_ILLEGALALIEN; cr.set_skill(SKILL_TAILORING,LCSrandom(5)+1); break; case CREATURE_WORKER_FACTORY_NONUNION: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Nonunion Worker"); weapon=new Weapon(*weapontype[getweapontype("WEAPON_CHAIN")]); cr.give_weapon(*weapon,NULL); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); if(cr.align==1) cr.align=LCSrandom(2)-1; cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_STRENGTH,5); break; case CREATURE_WORKER_SECRETARY: GIVE_WEAPON_CIVILIAN; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_WRITING,LCSrandom(2)+1); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,2); break; case CREATURE_LANDLORD: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Landlord"); cr.money=LCSrandom(121)+120; cr.align=0; cr.age=AGE_MATURE; cr.set_skill(SKILL_BUSINESS,LCSrandom(4)+3); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,4); cr.set_attribute(ATTRIBUTE_WISDOM,4); break; case CREATURE_TEENAGER: //cr.align=LCSrandom(3)-1; cr.age=AGE_TEENAGER; break; case CREATURE_LAWYER: if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],1); cr.take_clips(c,1); cr.reload(false); } strcpy(cr.name,"Lawyer"); armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(51)+50; //cr.align=LCSrandom(3)-1; cr.age=AGE_GRADUATE; cr.set_skill(SKILL_LAW,LCSrandom(4)+4); cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,6); cr.set_attribute(ATTRIBUTE_CHARISMA,4); break; case CREATURE_DOCTOR: GIVE_GENDER_MALE; if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],1); cr.take_clips(c,1); cr.reload(false); } strcpy(cr.name,"Doctor"); armor=new Armor(*armortype[getarmortype("ARMOR_LABCOAT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(21)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_GRADUATE; cr.set_skill(SKILL_FIRSTAID,LCSrandom(4)+4); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,6); break; case CREATURE_PSYCHOLOGIST: GIVE_GENDER_MALE; if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],1); cr.take_clips(c,1); cr.reload(false); } strcpy(cr.name,"Psychologist"); if(cr.gender_liberal==GENDER_MALE||LCSrandom(2)) { Armor a=Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(a,NULL); } else { Armor a=Armor(*armortype[getarmortype("ARMOR_CHEAPDRESS")]); cr.give_armor(a,NULL); } cr.money=LCSrandom(21)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_GRADUATE; cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(4)+4); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,6); cr.set_attribute(ATTRIBUTE_HEART,6); break; case CREATURE_NURSE: GIVE_GENDER_FEMALE; if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],1); cr.take_clips(c,1); cr.reload(false); } strcpy(cr.name,"Nurse"); armor=new Armor(*armortype[getarmortype("ARMOR_LABCOAT")]); cr.give_armor(*armor,NULL); //cr.align=LCSrandom(3)-1; cr.age=AGE_GRADUATE; cr.set_skill(SKILL_FIRSTAID,LCSrandom(4)+1); break; case CREATURE_WORKER_FACTORY_UNION: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Union Worker"); weapon=new Weapon(*weapontype[getweapontype("WEAPON_CHAIN")]); cr.give_weapon(*weapon,NULL); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.align=1; cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_STRENGTH,5); break; case CREATURE_TANK: strcpy(cr.name,"M1 Abrams Tank"); cr.animalgloss=ANIMALGLOSS_TANK; cr.strip(NULL); cr.specialattack=ATTACK_CANNON; cr.align=-1; cr.set_skill(SKILL_HANDTOHAND,20); cr.age=AGE_TEENAGER; // wut? break; case CREATURE_MERC: GIVE_GENDER_MALE; strcpy(cr.name,"Mercenary"); if(law[LAW_GUNCONTROL]==-2) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(c,7); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIRIFLE_AR15")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(c,7); cr.reload(false); } armor=new Armor(*armortype[getarmortype("ARMOR_CIVILLIANARMOR")]); cr.give_armor(*armor,NULL); cr.money=0; cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.juice=LCSrandom(50); cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+1); cr.set_skill(SKILL_SECURITY,LCSrandom(3)); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(3)); cr.set_skill(SKILL_PISTOL,LCSrandom(3)); cr.set_skill(SKILL_DRIVING,LCSrandom(2)); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(2)); break; case CREATURE_HICK: switch(LCSrandom(5)) { case 0:strcpy(cr.name,"Country Boy");break; case 1:strcpy(cr.name,"Hick");break; case 2:strcpy(cr.name,"Redneck");break; case 3:strcpy(cr.name,"Rube");break; case 4:strcpy(cr.name,"Yokel");break; } if((law[LAW_GUNCONTROL]==-2 && !LCSrandom(2)) || !LCSrandom(10)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_TORCH")]); cr.give_weapon(w,NULL); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_PITCHFORK")]); cr.give_weapon(w,NULL); } if(!LCSrandom(2)) { Armor a=Armor(*armortype[getarmortype("ARMOR_OVERALLS")]); cr.give_armor(a,NULL); } else { Armor a=Armor(*armortype[getarmortype("ARMOR_WIFEBEATER")]); cr.give_armor(a,NULL); } cr.gender_conservative=cr.gender_liberal=GENDER_MALE; cr.money=LCSrandom(6)+6; cr.align=-1; cr.age=AGE_MATURE; break; case CREATURE_SOLDIER: GIVE_GENDER_MALE; strcpy(cr.name,"Soldier"); weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_ARMYARMOR")]); cr.give_armor(*armor,NULL); cr.money=0; cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.juice=LCSrandom(100); cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(3)+1); cr.set_skill(SKILL_PISTOL,LCSrandom(3)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(3)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,5); cr.set_attribute(ATTRIBUTE_AGILITY,5); cr.set_attribute(ATTRIBUTE_HEALTH,5); cr.set_attribute(ATTRIBUTE_WISDOM,5); break; case CREATURE_VETERAN: GIVE_GENDER_MALE; strcpy(cr.name,"Army Veteran"); cr.money=LCSrandom(21)+20; cr.infiltration=0.1f*LCSrandom(4); cr.juice=LCSrandom(100); cr.age=AGE_MIDDLEAGED; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(3)+1); cr.set_skill(SKILL_PISTOL,LCSrandom(3)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(3)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,5); cr.set_attribute(ATTRIBUTE_AGILITY,5); cr.set_attribute(ATTRIBUTE_HEALTH,5); break; case CREATURE_HARDENED_VETERAN: GIVE_GENDER_MALE; strcpy(cr.name,"Hardened Veteran"); weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_ARMYARMOR")]); cr.give_armor(*armor,NULL); cr.money=0; cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.juice=LCSrandom(100); cr.age=AGE_MIDDLEAGED; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+4); cr.set_skill(SKILL_SECURITY,LCSrandom(3)); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(3)+2); cr.set_skill(SKILL_PISTOL,LCSrandom(3)+2); cr.set_skill(SKILL_DRIVING,LCSrandom(3)+2); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,7); cr.set_attribute(ATTRIBUTE_AGILITY,7); cr.set_attribute(ATTRIBUTE_HEALTH,7); break; case CREATURE_COP: if(law[LAW_POLICEBEHAVIOR]==2 && cr.align==ALIGN_LIBERAL && !LCSrandom(3)) // Peace Officer { GIVE_GENDER_MALE; cr.align=ALIGN_MODERATE; strcpy(cr.name,"Police Negotiator"); Armor a=Armor(*armortype[getarmortype("ARMOR_POLICEARMOR")]); cr.give_armor(a,NULL); cr.money=LCSrandom(21)+20; cr.juice=10+LCSrandom(50); cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+1); cr.set_skill(SKILL_PISTOL,LCSrandom(3)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_HEART,4); } else { GIVE_GENDER_MALE; if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_9")],6); cr.take_clips(c,6); cr.reload(false); } else if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_NIGHTSTICK")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_POLICEARMOR")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.3f + 0.1f*LCSrandom(4); cr.juice=10+LCSrandom(50); cr.age=AGE_MATURE; cr.set_skill(SKILL_PISTOL,LCSrandom(4)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(3)+1); cr.set_skill(SKILL_CLUB,LCSrandom(2)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_WISDOM,4); } break; case CREATURE_SWAT: GIVE_GENDER_MALE; if(LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],6); cr.take_clips(c,6); cr.reload(false); } else if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_CARBINE_M4")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_ASSAULT")],4); cr.take_clips(c,4); cr.reload(false); } armor=new Armor(*armortype[getarmortype("ARMOR_SWATARMOR")]); cr.give_armor(*armor,NULL); cr.align=-1; cr.infiltration=0.3f + 0.1f*LCSrandom(4); cr.juice=40+LCSrandom(50); cr.age=AGE_MATURE; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+1); cr.set_skill(SKILL_PISTOL,LCSrandom(4)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(4)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(4)+1); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_WISDOM,4); break; case CREATURE_DEATHSQUAD: GIVE_GENDER_MALE; weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_DEATHSQUADUNIFORM")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=90+LCSrandom(50); cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+2); cr.set_skill(SKILL_PISTOL,LCSrandom(2)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(2)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(4)+2); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_WISDOM,6); break; case CREATURE_FIREFIGHTER: GIVE_GENDER_MALE; if(law[LAW_FREESPEECH]==-2) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_FLAMETHROWER")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_GASOLINE")],4); cr.take_clips(c,4); cr.reload(false); cr.set_skill(SKILL_HEAVYWEAPONS,LCSrandom(3)+2); strcpy(cr.name,"Fireman"); cr.align=-1; } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_AXE")]); cr.give_weapon(w,NULL); cr.set_skill(SKILL_AXE,LCSrandom(3)+2); strcpy(cr.name,"Firefighter"); } if(sitealarm) { // Respond to emergencies in bunker gear Armor a=Armor(*armortype[getarmortype("ARMOR_BUNKERGEAR")]); cr.give_armor(a,NULL); } else { // Other situations have various clothes switch(LCSrandom(3)) { case 0: armor=new Armor(*armortype[getarmortype("ARMOR_OVERALLS")]); cr.give_armor(*armor,NULL); break; case 1: armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); break; case 2: armor=new Armor(*armortype[getarmortype("ARMOR_BUNKERGEAR")]); cr.give_armor(*armor,NULL); } } cr.infiltration=0.1f*LCSrandom(4); cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_STRENGTH,3); break; case CREATURE_CCS_MOLOTOV: { GIVE_GENDER_MALE; armor=new Armor(*armortype[getarmortype("ARMOR_TRENCHCOAT")]); cr.give_armor(*armor,NULL); weapon=new Weapon(*weapontype[getweapontype("WEAPON_MOLOTOV")],5); while (!weapon->empty()) cr.give_weapon(*weapon,NULL); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=90+LCSrandom(120); cr.age=AGE_MATURE; if(mode==GAMEMODE_SITE/* && sitealarm>0*/) { nameCCSMember(cr); } cr.set_skill(SKILL_HANDTOHAND,LCSrandom(4)+2); cr.set_skill(SKILL_THROWING,LCSrandom(4)+2); cr.set_skill(SKILL_DRIVING,LCSrandom(4)+2); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)); cr.set_skill(SKILL_BUSINESS,LCSrandom(3)); cr.set_skill(SKILL_RELIGION,LCSrandom(3)+1); for(a=0;a<ATTNUM;a++) { cr.set_attribute(a,1); attcap[a]=20; } attcap[ATTRIBUTE_HEART]=4; cr.set_attribute(ATTRIBUTE_STRENGTH,6); cr.set_attribute(ATTRIBUTE_AGILITY,6); cr.set_attribute(ATTRIBUTE_HEALTH,6); cr.set_attribute(ATTRIBUTE_WISDOM,8); break; } case CREATURE_CCS_SNIPER: { GIVE_GENDER_MALE; armor=new Armor(*armortype[getarmortype("ARMOR_TRENCHCOAT")]); cr.give_armor(*armor,NULL); Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIRIFLE_AR15")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(c,7); cr.reload(false); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=90+LCSrandom(120); cr.age=AGE_MATURE; if(mode==GAMEMODE_SITE/* && sitealarm>0*/) { nameCCSMember(cr); } cr.set_skill(SKILL_HANDTOHAND,LCSrandom(4)+2); cr.set_skill(SKILL_RIFLE,LCSrandom(4)+6); cr.set_skill(SKILL_DRIVING,LCSrandom(4)+2); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)); cr.set_skill(SKILL_BUSINESS,LCSrandom(3)); cr.set_skill(SKILL_RELIGION,LCSrandom(3)+1); for(a=0;a<ATTNUM;a++) { cr.set_attribute(a,1); attcap[a]=20; } attcap[ATTRIBUTE_HEART]=4; cr.set_attribute(ATTRIBUTE_STRENGTH,6); cr.set_attribute(ATTRIBUTE_AGILITY,6); cr.set_attribute(ATTRIBUTE_HEALTH,6); cr.set_attribute(ATTRIBUTE_WISDOM,8); break; } case CREATURE_CCS_VIGILANTE: { GIVE_GENDER_MALE; armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); switch(LCSrandom(5)+endgamestate) { case 0: case 1: break; case 2: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_9")],7); cr.take_clips(*clips,7); cr.reload(false); break; case 3: weapon=new Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_44")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_44")],7); cr.take_clips(*clips,7); cr.reload(false); break; case 4: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],7); cr.take_clips(*clips,7); cr.reload(false); break; case 5: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SEMIRIFLE_AR15")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_CIVILLIANARMOR")]); cr.give_armor(*armor,NULL); break; case 6: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SEMIRIFLE_AR15")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_ARMYARMOR")]); cr.give_armor(*armor,NULL); break; case 7: weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],7); cr.take_clips(*clips,7); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_ARMYARMOR")]); cr.give_armor(*armor,NULL); break; } if(mode==GAMEMODE_SITE/* && sitealarm>0*/) { nameCCSMember(cr); } cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.5f + 0.1f*LCSrandom(4); cr.juice=90+LCSrandom(120); cr.age=AGE_MATURE; cr.set_skill(SKILL_RIFLE,LCSrandom(4)+3); cr.set_skill(SKILL_PISTOL,LCSrandom(4)+3); cr.set_skill(SKILL_SHOTGUN,LCSrandom(4)+3); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(4)+2); cr.set_skill(SKILL_DRIVING,LCSrandom(4)+2); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(3)); cr.set_skill(SKILL_BUSINESS,LCSrandom(3)); cr.set_skill(SKILL_RELIGION,LCSrandom(3)+1); for(a=0;a<ATTNUM;a++) { cr.set_attribute(a,1); attcap[a]=20; } attcap[ATTRIBUTE_HEART]=4; cr.set_attribute(ATTRIBUTE_STRENGTH,4); cr.set_attribute(ATTRIBUTE_AGILITY,4); cr.set_attribute(ATTRIBUTE_HEALTH,4); cr.set_attribute(ATTRIBUTE_WISDOM,8); break; } case CREATURE_CCS_ARCHCONSERVATIVE: GIVE_GENDER_MALE; weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],9); cr.take_clips(*clips,9); cr.reload(false); armor=new Armor(*armortype[getarmortype("ARMOR_HEAVYARMOR")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(51)+150; cr.align=-1; cr.infiltration=0.9f + 0.01f*LCSrandom(11); cr.juice=500+LCSrandom(250); cr.age=AGE_MIDDLEAGED; if(mode==GAMEMODE_SITE/* && sitealarm>0*/) { nameCCSMember(cr); } cr.set_skill(SKILL_RIFLE,LCSrandom(4)+6); cr.set_skill(SKILL_PISTOL,LCSrandom(4)+6); cr.set_skill(SKILL_SHOTGUN,LCSrandom(4)+6); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(4)+4); cr.set_skill(SKILL_DRIVING,LCSrandom(4)+4); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(6)); cr.set_skill(SKILL_BUSINESS,LCSrandom(6)); cr.set_skill(SKILL_RELIGION,LCSrandom(6)+2); for(a=0;a<ATTNUM;a++) { cr.set_attribute(a,1); attcap[a]=25; } attcap[ATTRIBUTE_HEART]=1; cr.set_attribute(ATTRIBUTE_STRENGTH,4); cr.set_attribute(ATTRIBUTE_AGILITY,4); cr.set_attribute(ATTRIBUTE_HEALTH,4); cr.set_attribute(ATTRIBUTE_WISDOM,10); break; case CREATURE_GANGUNIT: GIVE_GENDER_MALE; if(!LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_9")],4); cr.take_clips(c,4); cr.reload(false); } armor=new Armor(*armortype[getarmortype("ARMOR_POLICEARMOR")]); cr.give_armor(*armor,NULL); cr.align=-1; cr.infiltration=0.3f + 0.1f*LCSrandom(4); cr.juice=40+LCSrandom(50); cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_RIFLE,LCSrandom(3)+1); cr.set_skill(SKILL_PISTOL,LCSrandom(4)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(3)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(4)+2); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_WISDOM,5); break; case CREATURE_PRISONGUARD: GIVE_GENDER_MALE; strcpy(cr.name,"Prison Guard"); if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_NIGHTSTICK")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_PRISONGUARD")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.age=AGE_MATURE; cr.set_skill(SKILL_PISTOL,LCSrandom(2)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(3)+1); cr.set_skill(SKILL_CLUB,LCSrandom(3)+2); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); break; case CREATURE_EDUCATOR: strcpy(cr.name,"Educator"); if(law[LAW_GUNCONTROL]==-2 && !LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(3)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_9")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SYRINGE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_LABCOAT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(21)+20; cr.align=-1; cr.infiltration=0.1f*LCSrandom(4); cr.age=AGE_MATURE; cr.set_skill(SKILL_RIFLE,LCSrandom(3)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(3)+1); cr.set_skill(SKILL_CLUB,LCSrandom(2)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(2)+1); cr.set_skill(SKILL_DRIVING,LCSrandom(2)); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(4)+3); cr.set_attribute(ATTRIBUTE_STRENGTH,3); cr.set_attribute(ATTRIBUTE_AGILITY,3); cr.set_attribute(ATTRIBUTE_HEALTH,3); cr.set_attribute(ATTRIBUTE_WISDOM,4); break; case CREATURE_AGENT: GIVE_GENDER_MALE; strcpy(cr.name,"Agent"); switch(LCSrandom(7)) { case 0: weapon=new Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_44")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_44")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 1: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_9")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 2: weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_M16")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 3: weapon=new Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_AK47")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 4: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 5: weapon=new Weapon(*weapontype[getweapontype("WEAPON_CARBINE_M4")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_ASSAULT")],4); cr.take_clips(*clips,4); cr.reload(false); break; case 6: weapon=new Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(*weapon,NULL); clips=new Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(*clips,4); cr.reload(false); break; } armor=new Armor(*armortype[getarmortype("ARMOR_BLACKSUIT")]); cr.give_armor(*armor,NULL); cr.align=-1; cr.infiltration=0.5f*LCSrandom(4); cr.juice=200+LCSrandom(150); cr.age=AGE_MATURE; cr.set_skill(SKILL_PISTOL,LCSrandom(8)+2); cr.set_skill(SKILL_RIFLE,LCSrandom(8)+2); cr.set_skill(SKILL_SHOTGUN,LCSrandom(8)+2); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(8)+2); cr.set_skill(SKILL_CLUB,LCSrandom(8)+2); cr.set_skill(SKILL_DRIVING,LCSrandom(6)+4); cr.set_skill(SKILL_PSYCHOLOGY,LCSrandom(6)+4); cr.set_skill(SKILL_DODGE,LCSrandom(4)+4); cr.set_attribute(ATTRIBUTE_STRENGTH,5); cr.set_attribute(ATTRIBUTE_AGILITY,7); cr.set_attribute(ATTRIBUTE_HEALTH,5); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,4); cr.set_attribute(ATTRIBUTE_WISDOM,5); break; case CREATURE_RADIOPERSONALITY: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Radio Personality"); armor=new Armor(*armortype[getarmortype("ARMOR_EXPENSIVESUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(51)+50; cr.align=-1; cr.infiltration=0.6f + 0.1f*LCSrandom(4); cr.juice=100+LCSrandom(50); cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(8)+1); cr.set_attribute(ATTRIBUTE_CHARISMA,10); cr.set_attribute(ATTRIBUTE_WISDOM,8); break; case CREATURE_NEWSANCHOR: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"News Anchor"); armor=new Armor(*armortype[getarmortype("ARMOR_EXPENSIVESUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(51)+50; cr.set_attribute(ATTRIBUTE_CHARISMA,10); cr.set_attribute(ATTRIBUTE_WISDOM,8); cr.align=-1; cr.infiltration=0.6f + 0.1f*LCSrandom(4); cr.juice=100+LCSrandom(50); cr.age=AGE_MATURE; break; case CREATURE_GENETIC: if(location[cursite]->type==SITE_CORPORATE_HOUSE) strcpy(cr.name,"Pet "); else strcpy(cr.name,""); switch(LCSrandom(11)) { case 0:strcat(cr.name,"Genetic Monster");break; case 1: { strcat(cr.name,"Flaming Rabbit"); cr.specialattack=ATTACK_FLAME; break; } case 2:strcat(cr.name,"Genetic Nightmare");break; case 3:strcat(cr.name,"Mad Cow");break; case 4: { strcat(cr.name,"Giant Mosquito"); cr.specialattack=ATTACK_SUCK; break; } case 5:strcat(cr.name,"Six-legged Pig");break; case 6:strcat(cr.name,"Purple Gorilla");break; case 7:strcat(cr.name,"Warped Bear");break; case 8:strcat(cr.name,"Writhing Mass");break; case 9:strcat(cr.name,"Something Bad");break; case 10:strcat(cr.name,"Pink Elephant");break; } cr.animalgloss=ANIMALGLOSS_ANIMAL; cr.strip(NULL); cr.align=-1; if(location[cursite]->type==SITE_CORPORATE_HOUSE) attcap[ATTRIBUTE_CHARISMA]=10; else attcap[ATTRIBUTE_CHARISMA]=2; attcap[ATTRIBUTE_INTELLIGENCE]=1; attcap[ATTRIBUTE_HEART]=6; attcap[ATTRIBUTE_WISDOM]=6; attcap[ATTRIBUTE_STRENGTH]=20; attcap[ATTRIBUTE_AGILITY]=20; cr.age=AGE_DOGYEARS; break; case CREATURE_GUARDDOG: strcpy(cr.name,"Guard Dog"); cr.animalgloss=ANIMALGLOSS_ANIMAL; cr.strip(NULL); cr.align=-1; attcap[ATTRIBUTE_INTELLIGENCE]=1; attcap[ATTRIBUTE_HEART]=6; attcap[ATTRIBUTE_WISDOM]=6; cr.set_attribute(ATTRIBUTE_STRENGTH,7); attcap[ATTRIBUTE_STRENGTH]=12; cr.set_attribute(ATTRIBUTE_AGILITY,9); attcap[ATTRIBUTE_AGILITY]=15; cr.age=AGE_DOGYEARS; break; case CREATURE_PRISONER: GIVE_GENDER_MALE; strcpy(cr.name,"Prisoner"); if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHANK")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_PRISONER")]); cr.give_armor(*armor,NULL); cr.money=0; cr.juice=-5; if(cr.align==-1) cr.align=LCSrandom(2); // Prisoners should not be "prisoners" after recruiting them -- they should // be some brand of criminal if(!LCSrandom(10)) { // Thief cr.set_skill(SKILL_SECURITY,LCSrandom(5)+3); cr.set_skill(SKILL_DISGUISE,LCSrandom(5)+3); cr.set_skill(SKILL_STEALTH,LCSrandom(5)+3); //cr.set_skill(SKILL_THEFT,LCSrandom(5)+3); cr.type=CREATURE_THIEF; cr.age=AGE_MATURE; } else { switch(LCSrandom(5)) { case 0: // Gang member cr.set_skill(SKILL_PISTOL,LCSrandom(2)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(2)+1); cr.set_skill(SKILL_RIFLE,LCSrandom(2)+1); cr.type=CREATURE_GANGMEMBER; cr.age=AGE_YOUNGADULT; break; case 1: // Prostitute cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_skill(SKILL_SEDUCTION,LCSrandom(4)+2); cr.type=CREATURE_PROSTITUTE; cr.age=AGE_YOUNGADULT; break; case 2: // Crack head attcap[ATTRIBUTE_INTELLIGENCE]=1; attcap[ATTRIBUTE_HEALTH]=1+LCSrandom(5); attnum-=10; cr.type=CREATURE_CRACKHEAD; cr.age=AGE_YOUNGADULT; break; case 3: // Teenager cr.age=AGE_TEENAGER; cr.type=CREATURE_TEENAGER; break; case 4: // HS Dropout cr.age=AGE_TEENAGER; cr.type=CREATURE_HSDROPOUT; break; } } break; case CREATURE_JUROR: strcpy(cr.name,"Angry Juror"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=0; cr.align=-1; cr.age=AGE_MATURE; break; case CREATURE_WORKER_FACTORY_CHILD: strcpy(cr.name,"Child Worker"); weapon=new Weapon(*weapontype[getweapontype("WEAPON_CHAIN")]); cr.give_weapon(*weapon,NULL); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=0; cr.align=1; cr.age=AGE_CHILD; cr.set_attribute(ATTRIBUTE_HEART,8); break; case CREATURE_SEWERWORKER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Sewer Worker"); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_COLLEGESTUDENT: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"College Student"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=18+LCSrandom(6); // no macro cr.set_skill(SKILL_COMPUTERS,LCSrandom(2)); cr.set_skill(SKILL_WRITING,LCSrandom(2)+1); cr.set_skill(SKILL_SCIENCE,LCSrandom(3)); cr.set_skill(SKILL_ART,LCSrandom(3)); cr.set_skill(SKILL_MUSIC,LCSrandom(3)); break; case CREATURE_MUSICIAN: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Musician"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(11); cr.age=AGE_MATURE; cr.set_skill(SKILL_MUSIC,LCSrandom(4)+2); cr.set_skill(SKILL_SEDUCTION,LCSrandom(2)); //cr.align=LCSrandom(3)-1; break; case CREATURE_MATHEMATICIAN: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Mathematician"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_COMPUTERS,LCSrandom(3)); cr.set_skill(SKILL_SCIENCE,LCSrandom(3)+1); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,7); break; case CREATURE_TEACHER: GIVE_GENDER_FEMALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Teacher"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.set_skill(SKILL_TEACHING,LCSrandom(4)+3); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_HSDROPOUT: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Highschool Dropout"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_TEENAGER; break; case CREATURE_BUM: strcpy(cr.name,"Transient"); GIVE_WEAPON_CIVILIAN; if(!cr.is_armed() && !LCSrandom(5)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_KNIFE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; if(cr.align==-1) cr.align=LCSrandom(2); cr.age=AGE_MATURE; break; case CREATURE_MUTANT: strcpy(cr.name,"Mutant"); GIVE_WEAPON_CIVILIAN; if(!cr.is_armed() && !LCSrandom(5)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_KNIFE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; cr.align=1; //cr.set_skill(SKILL_SURVIVAL,LCSrandom(3)+1); for(a=0;a<ATTNUM;a++) { attcap[a]=50; } cr.age=AGE_MATURE; break; case CREATURE_GANGMEMBER: GIVE_GENDER_MALE; strcpy(cr.name,"Gang Member"); if(!LCSrandom(20) || (law[LAW_GUNCONTROL]==-2 && !LCSrandom(5))) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_AUTORIFLE_AK47")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_ASSAULT")],3); cr.take_clips(c,3); cr.reload(false); } else if(!LCSrandom(16) || (law[LAW_GUNCONTROL]==-2 && !LCSrandom(5))) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SMG_MP5")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_SMG")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(15)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_45")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_45")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(10)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SHOTGUN_PUMP")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_BUCKSHOT")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(4)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_SEMIPISTOL_9MM")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_9")],4); cr.take_clips(c,4); cr.reload(false); } else if(!LCSrandom(2)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_REVOLVER_38")]); cr.give_weapon(w,NULL); Clip c=Clip(*cliptype[getcliptype("CLIP_38")],4); cr.take_clips(c,4); cr.reload(false); } else { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_KNIFE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; cr.juice=-5; // We'll make the crack house a bit dicey if(location[cursite]->type == SITE_BUSINESS_CRACKHOUSE) cr.align=-1; cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_PISTOL,LCSrandom(2)+1); cr.set_skill(SKILL_SHOTGUN,LCSrandom(2)+1); cr.set_skill(SKILL_RIFLE,LCSrandom(2)+1); if(!LCSrandom(2)) { switch(LCSrandom(3)) { case 0://cr.crimes_committed[LAWFLAG_BROWNIES]++; cr.crimes_suspected[LAWFLAG_BROWNIES]++;break; case 1://cr.crimes_committed[LAWFLAG_ASSAULT]++; cr.crimes_suspected[LAWFLAG_ASSAULT]++;break; case 2://cr.crimes_committed[LAWFLAG_MURDER]++; cr.crimes_suspected[LAWFLAG_MURDER]++;break; } } break; case CREATURE_CRACKHEAD: strcpy(cr.name,"Crack Head"); GIVE_WEAPON_CIVILIAN; if(!LCSrandom(5)) { Weapon w=Weapon(*weapontype[getweapontype("WEAPON_KNIFE")]); cr.give_weapon(w,NULL); } armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; cr.juice=-20; if(cr.align==-1) cr.align=LCSrandom(2); cr.age=AGE_YOUNGADULT; attcap[ATTRIBUTE_INTELLIGENCE]=1; attcap[ATTRIBUTE_HEALTH]=1+LCSrandom(5); attnum-=10; break; case CREATURE_PRIEST: GIVE_GENDER_MALE; strcpy(cr.name,"Priest"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_RELIGION,LCSrandom(5)+3); break; case CREATURE_ENGINEER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Engineer"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_COMPUTERS,LCSrandom(2)+1); cr.set_skill(SKILL_SCIENCE,LCSrandom(3)+1); break; case CREATURE_FASTFOODWORKER: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Fast Food Worker"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); //cr.set_skill(SKILL_COOKING,LCSrandom(3)); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; if(LCSrandom(2)) cr.age=AGE_TEENAGER; else cr.age=AGE_YOUNGADULT; break; case CREATURE_TELEMARKETER: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Telemarketer"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_PERSUASION,LCSrandom(3)+1); break; case CREATURE_OFFICEWORKER: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Office Worker"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.set_skill(SKILL_BUSINESS,LCSrandom(3)); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_FOOTBALLCOACH: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Football Coach"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.set_skill(SKILL_TEACHING,LCSrandom(3)+2); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MIDDLEAGED; if(LCSrandom(2)) { cr.set_attribute(ATTRIBUTE_HEALTH,5); cr.set_attribute(ATTRIBUTE_AGILITY,5); cr.set_attribute(ATTRIBUTE_STRENGTH,5); } cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); break; case CREATURE_PROSTITUTE: GIVE_WEAPON_CIVILIAN; if(LCSrandom(7)) cr.gender_conservative=cr.gender_liberal=GENDER_FEMALE; else if(!LCSrandom(3)) cr.gender_liberal=GENDER_FEMALE; strcpy(cr.name,"Prostitute"); if(LCSrandom(2)) { Armor a=Armor(*armortype[getarmortype("ARMOR_CHEAPDRESS")]); cr.give_armor(a,NULL); } else { Armor a=Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(a,NULL); } cr.money=LCSrandom(31)+20; cr.juice=-5; if(cr.align==-1) cr.align=LCSrandom(2); cr.age=AGE_YOUNGADULT; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_skill(SKILL_SEDUCTION,LCSrandom(4)+2); //cr.crimes_committed[LAWFLAG_PROSTITUTION]++; if(!LCSrandom(3)) { cr.crimes_suspected[LAWFLAG_PROSTITUTION]++; } break; case CREATURE_MAILMAN: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Mail Carrier"); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_GARBAGEMAN: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Garbage Collector"); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); break; case CREATURE_PLUMBER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Plumber"); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_CHEF: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Chef"); //cr.set_skill(SKILL_COOKING,LCSrandom(5)+3); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; break; case CREATURE_CONSTRUCTIONWORKER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Construction Worker"); armor=new Armor(*armortype[getarmortype("ARMOR_WORKCLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_attribute(ATTRIBUTE_STRENGTH,7); cr.set_attribute(ATTRIBUTE_HEALTH,7); cr.set_skill(SKILL_DRIVING,LCSrandom(2)+1); break; case CREATURE_AMATEURMAGICIAN: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Amateur Magician"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; //cr.set_skill(SKILL_THEFT,LCSrandom(3)+2); break; case CREATURE_HIPPIE: strcpy(cr.name,"Hippie"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; cr.align=1; cr.set_attribute(ATTRIBUTE_HEART,6); attcap[ATTRIBUTE_HEART]=15; attcap[ATTRIBUTE_WISDOM]=1; attnum-=5; //cr.set_skill(SKILL_COOKING,LCSrandom(2)); cr.set_skill(SKILL_MUSIC,LCSrandom(2)); cr.set_skill(SKILL_ART,LCSrandom(2)); cr.set_skill(SKILL_TAILORING,LCSrandom(2)); if(!LCSrandom(10)) { //cr.crimes_committed[LAWFLAG_BROWNIES]++; cr.crimes_suspected[LAWFLAG_BROWNIES]++; } break; case CREATURE_AUTHOR: GIVE_WEAPON_CIVILIAN; armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(131)+100; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)); cr.set_skill(SKILL_WRITING,LCSrandom(4)+4); break; case CREATURE_JOURNALIST: GIVE_WEAPON_CIVILIAN; armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(131)+100; //cr.align=LCSrandom(3)-1; cr.juice=LCSrandom(25); cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_skill(SKILL_WRITING,LCSrandom(4)+2); break; case CREATURE_CRITIC_ART: GIVE_WEAPON_CIVILIAN; armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(131)+100; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_skill(SKILL_WRITING,LCSrandom(4)+2); cr.set_skill(SKILL_ART,LCSrandom(4)+1); break; case CREATURE_CRITIC_MUSIC: GIVE_WEAPON_CIVILIAN; armor=new Armor(*armortype[getarmortype("ARMOR_CHEAPSUIT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(131)+100; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(4)+2); cr.set_skill(SKILL_WRITING,LCSrandom(4)+2); cr.set_skill(SKILL_MUSIC,LCSrandom(4)+1); break; case CREATURE_SOCIALITE: GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Socialite"); if(LCSrandom(2)) { Armor a=Armor(*armortype[getarmortype("ARMOR_EXPENSIVEDRESS")]); cr.give_armor(a,NULL); } else { Armor a=Armor(*armortype[getarmortype("ARMOR_EXPENSIVESUIT")]); cr.give_armor(a,NULL); } cr.money=LCSrandom(131)+100; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_PERSUASION,LCSrandom(3)+1); cr.set_skill(SKILL_ART,LCSrandom(3)); cr.set_skill(SKILL_MUSIC,LCSrandom(3)); break; case CREATURE_BIKER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Biker"); armor=new Armor(*armortype[getarmortype("ARMOR_TRENCHCOAT")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; cr.align=-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_DRIVING,LCSrandom(3)+3); break; case CREATURE_TRUCKER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Truck Driver"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_DRIVING,LCSrandom(3)+3); break; case CREATURE_TAXIDRIVER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Taxi Driver"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_DRIVING,LCSrandom(3)+3); break; case CREATURE_PROGRAMMER: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; strcpy(cr.name,"Programmer"); armor=new Armor(*armortype[getarmortype("ARMOR_CLOTHES")]); cr.give_armor(*armor,NULL); cr.money=LCSrandom(31)+20; //cr.align=LCSrandom(3)-1; cr.age=AGE_MATURE; cr.set_skill(SKILL_COMPUTERS,LCSrandom(5)+4); cr.set_attribute(ATTRIBUTE_INTELLIGENCE,3); break; case CREATURE_NUN: cr.gender_conservative=cr.gender_liberal=GENDER_FEMALE; cr.set_skill(SKILL_RELIGION,LCSrandom(3)+5); cr.age=AGE_MATURE; break; case CREATURE_RETIREE: GIVE_WEAPON_CIVILIAN; cr.age=AGE_SENIOR; break; case CREATURE_PAINTER: GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_ART,LCSrandom(4)+3); cr.age=AGE_MATURE; break; case CREATURE_SCULPTOR: GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_ART,LCSrandom(4)+3); cr.age=AGE_MATURE; break; case CREATURE_DANCER: cr.set_attribute(ATTRIBUTE_AGILITY,10); cr.set_attribute(ATTRIBUTE_STRENGTH,4); cr.set_attribute(ATTRIBUTE_HEALTH,10); cr.set_skill(SKILL_ART,LCSrandom(2)+1); cr.set_skill(SKILL_MUSIC,LCSrandom(2)+1); cr.age=AGE_YOUNGADULT; break; case CREATURE_PHOTOGRAPHER: GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_ART,LCSrandom(2)+2); cr.age=AGE_MATURE; break; case CREATURE_CAMERAMAN: GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_ART,LCSrandom(2)+1); cr.age=AGE_MATURE; break; case CREATURE_HAIRSTYLIST: GIVE_GENDER_FEMALE; GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_ART,LCSrandom(2)+1); cr.age=AGE_MATURE; break; case CREATURE_FASHIONDESIGNER: GIVE_GENDER_FEMALE; GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_TAILORING,LCSrandom(3)+8); cr.set_skill(SKILL_ART,LCSrandom(3)+2); cr.age=AGE_MATURE; break; case CREATURE_CLERK: GIVE_WEAPON_CIVILIAN; cr.age=AGE_MATURE; break; case CREATURE_THIEF: GIVE_WEAPON_CIVILIAN; switch(LCSrandom(5)) { case 0:getrecruitcreature(cr.name,CREATURE_SOCIALITE);break; case 1:getrecruitcreature(cr.name,CREATURE_CLERK);break; case 2:getrecruitcreature(cr.name,CREATURE_OFFICEWORKER);break; case 3:getrecruitcreature(cr.name,CREATURE_CRITIC_ART);break; case 4:getrecruitcreature(cr.name,CREATURE_CRITIC_MUSIC);break; } cr.set_skill(SKILL_SECURITY,LCSrandom(5)+3); cr.set_skill(SKILL_DISGUISE,LCSrandom(5)+3); cr.set_skill(SKILL_STEALTH,LCSrandom(5)+3); //cr.set_skill(SKILL_THEFT,LCSrandom(5)+3); cr.age=AGE_MATURE; { Armor to_give = Armor(*armortype[getarmortype("ARMOR_BLACKCLOTHES")]); cr.give_armor(to_give,NULL); } //cr.crimes_committed[LAWFLAG_BREAKING]++; //cr.crimes_committed[LAWFLAG_THEFT]++; if(!LCSrandom(10)) { switch(LCSrandom(2)) { case 0:cr.crimes_suspected[LAWFLAG_BREAKING]++; case 1:cr.crimes_suspected[LAWFLAG_THEFT]++; } } break; case CREATURE_ACTOR: GIVE_WEAPON_CIVILIAN; cr.set_skill(SKILL_PERSUASION,LCSrandom(5)); cr.set_skill(SKILL_SEDUCTION,LCSrandom(5)); cr.set_skill(SKILL_DISGUISE,LCSrandom(5)+3); cr.set_attribute(ATTRIBUTE_WISDOM,9); cr.set_attribute(ATTRIBUTE_CHARISMA,5); cr.age=AGE_MATURE; break; case CREATURE_YOGAINSTRUCTOR: GIVE_GENDER_FEMALE; cr.set_skill(SKILL_TEACHING,LCSrandom(4)+2); cr.set_attribute(ATTRIBUTE_AGILITY,10); cr.set_attribute(ATTRIBUTE_STRENGTH,4); cr.set_attribute(ATTRIBUTE_HEALTH,10); cr.age=AGE_MATURE; break; case CREATURE_MARTIALARTIST: GIVE_GENDER_MALE; cr.set_skill(SKILL_TEACHING,LCSrandom(3)+1); cr.set_skill(SKILL_HANDTOHAND,LCSrandom(4)+4); cr.set_attribute(ATTRIBUTE_AGILITY,8); cr.set_attribute(ATTRIBUTE_STRENGTH,6); cr.set_attribute(ATTRIBUTE_HEALTH,6); cr.age=AGE_MATURE; break; case CREATURE_ATHLETE: GIVE_GENDER_MALE; GIVE_WEAPON_CIVILIAN; cr.set_attribute(ATTRIBUTE_AGILITY,8); cr.set_attribute(ATTRIBUTE_STRENGTH,8); cr.set_attribute(ATTRIBUTE_HEALTH,8); cr.age=AGE_YOUNGADULT; break; } delete weapon; delete armor; delete clips; if(cr.type==CREATURE_MUTANT)attnum=LCSrandom(60)+7; for(int a=0;a<ATTNUM;a++) { attnum-=min(4,cr.get_attribute(a,false)); } while(attnum>0) { int a=LCSrandom(ATTNUM); if(a==ATTRIBUTE_WISDOM && cr.align==1 && LCSrandom(4)) a=ATTRIBUTE_HEART; if(a==ATTRIBUTE_HEART && cr.align==-1 && LCSrandom(4)) a=ATTRIBUTE_WISDOM; if(cr.get_attribute(a,false)<attcap[a]) { cr.adjust_attribute(a,+1); attnum--; } } if(cr.align==1) { cr.infiltration = 0.15f+(LCSrandom(10)-5)*0.01f; } else if(cr.align==0) { cr.infiltration = 0.25f+(LCSrandom(10)-5)*0.01f; } else { cr.infiltration += 0.35f * (1-cr.infiltration)+(LCSrandom(10)-5)*0.01f; } if(cr.infiltration < 0) cr.infiltration = 0; if(cr.infiltration > 1) cr.infiltration = 1; int randomskills=LCSrandom(4)+4; if(cr.age>20) { randomskills+=static_cast<int>(randomskills*((cr.age-20.0)/20.0)); } else { randomskills-=(20-cr.age)/2; } /*for(int s=0;s<SKILLNUM;s++) { randomskills-=cr.get_skill(s); }*/ //RANDOM STARTING SKILLS while(randomskills>0) { int randomskill = LCSrandom(SKILLNUM); // 95% chance of not allowing some skills for anybody... if(LCSrandom(20)) { if(randomskill == SKILL_HEAVYWEAPONS)continue; if(randomskill == SKILL_SMG)continue; if(randomskill == SKILL_SWORD)continue; if(randomskill == SKILL_RIFLE)continue; if(randomskill == SKILL_AXE)continue; if(randomskill == SKILL_CLUB)continue; if(randomskill == SKILL_PSYCHOLOGY)continue; } // 90% chance of not allowing some skills, other than // for conservatives if(LCSrandom(10) && cr.align!=ALIGN_CONSERVATIVE) { if(randomskill == SKILL_SHOTGUN)continue; if(randomskill == SKILL_PISTOL)continue; } if(cr.skill_cap(randomskill,true)>cr.get_skill(randomskill)) { cr.set_skill(randomskill,cr.get_skill(randomskill)+1); randomskills--; } while(1) { if(randomskills&&LCSrandom(2) && cr.skill_cap(randomskill,true)>cr.get_skill(randomskill) && cr.get_skill(randomskill) < 4) { cr.set_skill(randomskill,cr.get_skill(randomskill)+1); randomskills--; } else break; } } //ALIENATION if(sitealienate>=1&&cr.align==0)conservatise(cr); if(sitealienate==2&&cr.align==1)conservatise(cr); }===== Hospitalization Time Estimates =====
/* common - determines how long a creature's injuries will take to heal */ int clinictime(Creature &g) { int time=0; for(int w=0;w<BODYPARTNUM;w++) { if(((g.wound[w] & WOUND_NASTYOFF))&& (g.blood < 100)) { time++; } } if(g.blood<=10)time++; if(g.blood<=50)time++; if(g.blood<100)time++; if(!g.special[SPECIALWOUND_RIGHTLUNG])time++; if(!g.special[SPECIALWOUND_LEFTLUNG])time++; if(!g.special[SPECIALWOUND_HEART])time+=2; if(!g.special[SPECIALWOUND_LIVER])time++; if(!g.special[SPECIALWOUND_STOMACH])time++; if(!g.special[SPECIALWOUND_RIGHTKIDNEY])time++; if(!g.special[SPECIALWOUND_LEFTKIDNEY])time++; if(!g.special[SPECIALWOUND_SPLEEN])time++; if(g.special[SPECIALWOUND_RIBS]<RIBNUM)time++; if(!g.special[SPECIALWOUND_NECK])time++; if(!g.special[SPECIALWOUND_UPPERSPINE])time++; if(!g.special[SPECIALWOUND_LOWERSPINE])time++; return time; }===== Criminalization ===== /* common - applies a crime to everyone in the active party */ void criminalizeparty(short crime) {
if(activesquad==NULL)return; for(int p=0;p<6;p++) { if(activesquad->squad[p]!=NULL) { if(!activesquad->squad[p]->alive)continue;
criminalize(*(activesquad->squad[p]),crime); } }} /* common - applies a crime to everyone in a location, or the entire LCS */ void criminalizepool(short crime,long exclude,short loc) {
for(int p=0;p<pool.size();p++) { if(p==exclude)continue; if(loc!=-1&&pool[p]->location!=loc)continue;
criminalize(*pool[p], crime); }} /* common - applies a crime to a person */ void criminalize(Creature &cr,short crime) {
if(mode==GAMEMODE_SITE) { if(location[cursite]->siege.siege) { // Do not criminalize the LCS for self-defense against // extrajudicial raids if(location[cursite]->siege.siegetype!=SIEGE_POLICE) return; } else if(location[cursite]->renting==RENTING_CCS) { // Do not criminalize the LCS for crimes against the CCS return; } } cr.crimes_suspected[crime]++; cr.heat+=lawflagheat(crime);} ===== Juicing Up ===== /* common - gives juice to everyone in the active party */ void juiceparty(long juice, long cap) {
if(activesquad!=NULL) { for(int p=0;p<6;p++) { if(activesquad->squad[p]!=NULL) { if(activesquad->squad[p]->alive) { addjuice(*activesquad->squad[p],juice, cap); } } } }} /* common - gives juice to a given creature */ void addjuice(Creature &cr,long juice,long cap) {
// Ignore zero changes if(juice==0) return;
// Check against cap if((juice>0 && cr.juice>=cap) || (juice<0 && cr.juice<=cap)) { return; } // Apply juice gain cr.juice+=juice; // Pyramid scheme of juice trickling up the chain if(cr.hireid!=-1) { for(int i=0;i<pool.size();i++) { if(pool[i]->id==cr.hireid) { addjuice(*pool[i],juice/5,cr.juice); break; } } }
// Bounds check if(cr.juice>1000)cr.juice=1000; if(cr.juice<-50)cr.juice=-50;} ===== Public Opinion Changes ===== /* common - shifts public opinion on an issue */ void change_public_opinion(int v,int power,char affect,char cap) {
// First note this in the liberal influence -- mostly for the // sake of the nice visual intelligence report entry if(v<VIEWNUM-5) { background_liberal_influence[v]+=power*10; }
if(v==VIEW_LIBERALCRIMESQUAD)affect=0; if(v==VIEW_LIBERALCRIMESQUADPOS)affect=0;
if(v==VIEW_LIBERALCRIMESQUADPOS) { int mood = publicmood(-1); if(cap>mood+40)cap=mood+40; }
int effpower=power;
// Affect is whether the LCS is publically known to be behind // the circumstances creating the public opinion change if(affect==1) { // Aff is the % of people who know/care about the LCS int aff=attitude[VIEW_LIBERALCRIMESQUAD]; // Rawpower is the amount of the action proportional // to the people who, not having heard of the LCS, // do not allow the LCS' reputation to affect their // opinions int rawpower=(int)((float)power * (float)(100-aff)/100.0f); // Affected power is the remainder of the action besides // rawpower, the amount of the people who know of the LCS // and have it alter their opinion int affectedpower=power-rawpower;
if(affectedpower>0) { // Dist is a combination of the relative popularity of the LCS // to the issue and the absolute popularity of the LCS. Very // popular LCS on a very unpopular issue is very influential. // Very unpopular LCS on a very popular issue has the ability // to actually have a reverse effect. int dist=attitude[VIEW_LIBERALCRIMESQUADPOS]-attitude[v] + attitude[VIEW_LIBERALCRIMESQUADPOS]-50;
// Affected power is then scaled by dist -- if the LCS is // equally popular as the issue, it's equally powerful as // the rawpower. For every 10% up or down past there, it's // 10% more or less powerful. affectedpower=(int)(((float)affectedpower*(100.0+(float)dist))/100.0f); }
// Effpower is then the sum of the rawpower (people who don't know // about the LCS) and the affectedpower (people who do know // about the LCS and had their judgment swayed by their opinion // of it). effpower=rawpower+affectedpower; } else if(affect==-1) { // Simplifed algorithm for affect by CCS respect effpower=power*(100-attitude[VIEW_CONSERVATIVECRIMESQUAD])/100; }
if(v==VIEW_LIBERALCRIMESQUAD) { //Only half the country will ever hear about the LCS at one time, //and people will only grudgingly lose fear of it if(effpower<-5)effpower=5; if(effpower>50)effpower=50; } else if(v==VIEW_LIBERALCRIMESQUADPOS) { //Only 50% of the country can be swayed at once in their views //of the LCS negatively, 5% positively if(effpower<-50)effpower=-50; if(effpower>5)effpower=5; } //Scale the magnitude of the effect based on how much //people are paying attention to the issue effpower=(int)(effpower*(1+(float)public_interest[v]/50));
//Then affect public interest if(public_interest[v]<cap || (v==VIEW_LIBERALCRIMESQUADPOS && public_interest[v]<100)) public_interest[v]+=abs(effpower);
if(effpower>0) { //Some things will never persuade the last x% of the population. //If there's a cap on how many people will be impressed, this //is where that's handled. if(attitude[v]+effpower>cap) { if(attitude[v]>cap)effpower=0; else effpower = cap - attitude[v]; } }
//Finally, apply the effect. attitude[v]+=effpower; if(attitude[v]<0)attitude[v]=0; if(attitude[v]>100)attitude[v]=100;} ===== Subordinate Counts ===== Determines the number of subordinates a creature may command int maxsubordinates(const Creature& cr) { brainwashed recruits can't recruit normally
if(cr.flag & CREATUREFLAG_BRAINWASHED)return 0;
int recruitcap = 0; //Cap based on juice if(cr.juice >= 500) recruitcap += 6; else if(cr.juice >= 200) recruitcap += 5; else if(cr.juice >= 100) recruitcap += 3; else if(cr.juice >= 50) recruitcap += 1; //Cap for founder if(cr.hireid == -1 && cr.align == 1) recruitcap += 6; return recruitcap;} Determines the number of subordinates a creature may recruit, based on their max and the number they already command int subordinatesleft(const Creature& cr) {
int recruitcap = maxsubordinates(cr); for(int p=0; p<pool.size(); p++) { // ignore seduced and brainwashed characters if(pool[p]->hireid == cr.id && pool[p]->alive && !(pool[p]->flag&(CREATUREFLAG_LOVESLAVE|CREATUREFLAG_BRAINWASHED))) recruitcap--; } if(recruitcap > 0) return recruitcap; else return 0;} Determines the number of love slaves a creature has int loveslaves(const Creature& cr) { int loveslaves=0; for(int p=0; p<pool.size(); p++) { If subordinate and a love slave
if(pool[p]->hireid == cr.id && pool[p]->alive && pool[p]->flag & CREATUREFLAG_LOVESLAVE) loveslaves++; } return loveslaves;} Determines the number of love slaves a creature may recruit, based on max minus number they already command int loveslavesleft(const Creature& cr) {
// Get maximum lovers int loveslavecap = cr.get_skill(SKILL_SEDUCTION)/2+1;
// -1 if they're a love slave (their boss is a lover) if(cr.flag & CREATUREFLAG_LOVESLAVE)loveslavecap--;
// Subtract number of love slaves they have loveslavecap -= loveslaves(cr);
// If they can have more, return that number if(loveslavecap > 0) return loveslavecap; // If they're at 0 or less, return 0 else return 0;} Determines the number of recruitment meetings a creature has scheduled int scheduledmeetings(const Creature& cr) { int meetings=0; for(int p=recruit.size()-1;p>=0;p–) { If meeting is with this creature
if(recruit[p]->recruiter_id == cr.id) meetings++; } return meetings;} Determines the number of dates a creature has scheduled int scheduleddates(const Creature& cr) { int dates=0; for(int p=date.size()-1;p>=0;p–) { Does this creature have a list of dates scheduled?
if(date[p]->mac_id == cr.id) { dates = date[p]->date.size(); break; } } return dates;} ===== Alignment Color ===== Sets the text color to the thematic color for the given alignment extended_range forces colors to be set on a 5 point scale instead of just basic liberal-moderate-conservative void set_alignment_color(signed char alignment, bool extended_range) { switch(alignment) { case ALIGN_ARCHCONSERVATIVE: set_color(COLOR_RED,COLOR_BLACK,1); break; case ALIGN_CONSERVATIVE: if(extended_range) set_color(COLOR_MAGENTA,COLOR_BLACK,1); else set_color(COLOR_RED,COLOR_BLACK,1); break; case ALIGN_MODERATE: set_color(COLOR_YELLOW,COLOR_BLACK,1); break; case ALIGN_LIBERAL: if(extended_range) set_color(COLOR_BLUE,COLOR_BLACK,1); else set_color(COLOR_GREEN,COLOR_BLACK,1); break; case ALIGN_ELITELIBERAL: set_color(COLOR_GREEN,COLOR_BLACK,1); break; } } ===== Activity Color ===== Sets the text color per activity type void set_activity_color(long activity_type) {
switch(activity_type) { // Liberal actvism case ACTIVITY_SLEEPER_LIBERAL: case ACTIVITY_TROUBLE: case ACTIVITY_GRAFFITI: case ACTIVITY_DOS_ATTACKS: case ACTIVITY_HACKING: case ACTIVITY_WRITE_LETTERS: case ACTIVITY_WRITE_GUARDIAN: set_color(COLOR_GREEN,COLOR_BLACK,1); break;
// Less exciting liberal activities case ACTIVITY_SLEEPER_SPY: case ACTIVITY_COMMUNITYSERVICE: case ACTIVITY_POLLS: set_color(COLOR_BLUE,COLOR_BLACK,1); break;
// Stealing things case ACTIVITY_SLEEPER_STEAL: case ACTIVITY_WHEELCHAIR: case ACTIVITY_STEALCARS: set_color(COLOR_CYAN,COLOR_BLACK,0); break;
// Illegal fundraising case ACTIVITY_SLEEPER_EMBEZZLE: case ACTIVITY_SELL_DRUGS: case ACTIVITY_PROSTITUTION: case ACTIVITY_CCFRAUD: case ACTIVITY_DOS_RACKET: set_color(COLOR_RED,COLOR_BLACK,1); break;
// Legal fundraising case ACTIVITY_DONATIONS: case ACTIVITY_SELL_TSHIRTS: case ACTIVITY_SELL_ART: case ACTIVITY_SELL_MUSIC: set_color(COLOR_CYAN,COLOR_BLACK,1); break;
// Clothing/garment stuff case ACTIVITY_REPAIR_ARMOR: case ACTIVITY_MAKE_ARMOR: set_color(COLOR_CYAN,COLOR_BLACK,0); break;
// Teaching case ACTIVITY_TEACH_POLITICS: case ACTIVITY_TEACH_FIGHTING: case ACTIVITY_TEACH_COVERT: //and studying case ACTIVITY_STUDY_DEBATING: case ACTIVITY_STUDY_MARTIAL_ARTS: case ACTIVITY_STUDY_DRIVING: case ACTIVITY_STUDY_PSYCHOLOGY: case ACTIVITY_STUDY_FIRST_AID: case ACTIVITY_STUDY_LAW: case ACTIVITY_STUDY_DISGUISE: case ACTIVITY_STUDY_SCIENCE: case ACTIVITY_STUDY_BUSINESS: //case ACTIVITY_STUDY_COOKING: case ACTIVITY_STUDY_GYMNASTICS: case ACTIVITY_STUDY_ART: case ACTIVITY_STUDY_MUSIC: case ACTIVITY_STUDY_TEACHING: case ACTIVITY_STUDY_WRITING: set_color(COLOR_MAGENTA,COLOR_BLACK,1); break;
// Interrogating case ACTIVITY_HOSTAGETENDING: set_color(COLOR_YELLOW,COLOR_BLACK,1); break;
// Dealing with your injuries case ACTIVITY_CLINIC: set_color(COLOR_RED,COLOR_BLACK,0); break;
// Doing something Conservative case ACTIVITY_SLEEPER_CONSERVATIVE: set_color(COLOR_RED,COLOR_BLACK,1); break;
// Dealing with the dead case ACTIVITY_BURY: set_color(COLOR_BLACK,COLOR_BLACK,1); break;
// Nothing terribly important case ACTIVITY_HEAL: // Identical to none in practice case ACTIVITY_NONE: case ACTIVITY_VISIT: // Shouldn't show on activate screens at all set_color(COLOR_WHITE,COLOR_BLACK,0); break; }} ===== Character Sheet ==== /* character info at top of screen */ void printcreatureinfo(Creature *cr, unsigned char knowledge) {
char num[20],str[200];
makedelimiter(1,0);
set_color(COLOR_WHITE,COLOR_BLACK,0); move(1,2); addstr(cr->name); addstr(", "); gettitle(str,*cr); addstr(str);
if(cr->prisoner!=NULL) { addstr(", holding "); switch(cr->prisoner->type) { case CREATURE_CORPORATE_CEO:addstr("a squirming CEO");break; case CREATURE_RADIOPERSONALITY:addstr("a crying Radio Personality");break; case CREATURE_NEWSANCHOR:addstr("smarmy News Anchor");break; case CREATURE_SCIENTIST_EMINENT:addstr("a frightened Eminent Scientist");break; case CREATURE_JUDGE_CONSERVATIVE:addstr("an angry Hangin' Judge");break; default: addstr(cr->prisoner->name); break; } }
move(2,0);addstr("Hrt: "); if(knowledge>0) { itoa(cr->get_attribute(ATTRIBUTE_HEART,true),num,10); addstr(num); } else addstr("?"); move(3,0);addstr("Int: "); if(knowledge>0) { itoa(cr->get_attribute(ATTRIBUTE_INTELLIGENCE,true),num,10); addstr(num); } else addstr("?"); move(4,0);addstr("Wis: "); if(knowledge>0) { itoa(cr->get_attribute(ATTRIBUTE_WISDOM,true),num,10); addstr(num); } else addstr("?"); move(5,0);addstr("Hlth: "); if(knowledge>1) { itoa(cr->get_attribute(ATTRIBUTE_HEALTH,true),num,10); addstr(num); } else addstr("?"); move(2,11);addstr("Agi: "); if(knowledge>1) { itoa(cr->get_attribute(ATTRIBUTE_AGILITY,true),num,10); addstr(num); } else addstr("?"); move(3,11);addstr("Str: "); if(knowledge>1) { itoa(cr->get_attribute(ATTRIBUTE_STRENGTH,true),num,10); addstr(num); } else addstr("?"); move(4,11);addstr("Char: "); if(knowledge>0) { itoa(cr->get_attribute(ATTRIBUTE_CHARISMA,true),num,10); addstr(num); } else addstr("?"); move(5,11); addstr("Trans: "); long v=-1; if(showcarprefs==1)v=id_getcar(cr->pref_carid); else v=id_getcar(cr->carid); if(v!=-1&&showcarprefs!=-1) { strcpy(str,vehicle[v]->shortname().c_str()); char d; if(showcarprefs==1)d=cr->pref_is_driver; else d=cr->is_driver; if(d)strcat(str,"-D"); } else { int legok=2; if((cr->wound[BODYPART_LEG_RIGHT] & WOUND_NASTYOFF)|| (cr->wound[BODYPART_LEG_RIGHT] & WOUND_CLEANOFF))legok--; if((cr->wound[BODYPART_LEG_LEFT] & WOUND_NASTYOFF)|| (cr->wound[BODYPART_LEG_LEFT] & WOUND_CLEANOFF))legok--; if(cr->flag & CREATUREFLAG_WHEELCHAIR)strcpy(str,"Wheelchair"); else if(legok>=1)strcpy(str,"On Foot"); else strcpy(str,"On \"Foot\""); } addstr(str); move(6,0); if(mode!=GAMEMODE_SITE)set_color(COLOR_WHITE,COLOR_BLACK,0); else switch(weaponcheck(*cr)) { case -1: case 0:set_color(COLOR_GREEN,COLOR_BLACK,1);break; case 1:set_color(COLOR_YELLOW,COLOR_BLACK,1);break; case 2:set_color(COLOR_RED,COLOR_BLACK,1);break; } addstr("Weapon: "); addstr(cr->get_weapon_string(1).c_str());
if(mode!=GAMEMODE_SITE)set_color(COLOR_WHITE,COLOR_BLACK,0); else { switch(hasdisguise(*cr)) { case 1:set_color(COLOR_GREEN,COLOR_BLACK,1);break; case 2:set_color(COLOR_YELLOW,COLOR_BLACK,1);break; default:set_color(COLOR_RED,COLOR_BLACK,1);break; } } move(7,0); addstr("Clothes: "); addstr(cr->get_armor_string(false).c_str());
set_color(COLOR_WHITE,COLOR_BLACK,0);
char used[SKILLNUM]; memset(used,0,sizeof(char)*SKILLNUM);
int snum=5; char printed=1;
while(snum>0&&printed) { printed=0;
int max=0; long maxs=-1; for(int s=0;s<SKILLNUM;s++) { if(cr->get_skill(s)>max && !used[s]) { max=cr->get_skill(s); maxs=s; } }
if(maxs!=-1) { used[maxs]=1; printed=1;
if(cr->get_skill_ip(maxs)>=100+(10*cr->get_skill(maxs))&& cr->get_skill(maxs)<cr->skill_cap(maxs,true))set_color(COLOR_WHITE,COLOR_BLACK,1); else set_color(COLOR_WHITE,COLOR_BLACK,0);
move(3+5-snum,31); if(knowledge>5-snum) strcpy(str,Skill::get_name(maxs).c_str()); else strcpy(str,"???????"); strcat(str,": "); if(knowledge>7-snum) itoa(cr->get_skill(maxs),num,10); else strcpy(num,"?"); strcat(str,num); addstr(str);
if(snum==5&&printed) { set_color(COLOR_WHITE,COLOR_BLACK,0); move(2,31); addstr("Top Skills:"); } }
snum--; }
int woundsum=0; for(int w=0;w<BODYPARTNUM;w++) { if(cr->wound[w]!=0)woundsum++; }
printhealthstat(*cr,1,49,FALSE);
if(woundsum>0) { for(int w=0;w<BODYPARTNUM;w++) { if(cr->wound[w] & WOUND_BLEEDING)set_color(COLOR_RED,COLOR_BLACK,1); else set_color(COLOR_WHITE,COLOR_BLACK,0);
move(2+w,49); switch(w) { case BODYPART_HEAD:addstr("Head:");break; case BODYPART_BODY:addstr("Body:");break; case BODYPART_ARM_RIGHT:addstr("Right Arm:");break; case BODYPART_ARM_LEFT:addstr("Left Arm:");break; case BODYPART_LEG_RIGHT:addstr("Right Leg:");break; case BODYPART_LEG_LEFT:addstr("Left Leg:");break; }
move(2+w,61); if(cr->wound[w] & WOUND_NASTYOFF)addstr("Ripped off"); else if(cr->wound[w] & WOUND_CLEANOFF)addstr("Clean sever"); else { int sum=0;
if(cr->wound[w] & WOUND_SHOT)sum++; if(cr->wound[w] & WOUND_CUT)sum++; if(cr->wound[w] & WOUND_BRUISED)sum++; if(cr->wound[w] & WOUND_BURNED)sum++; if(cr->wound[w] & WOUND_TORN)sum++;
if(sum==0) { set_color(COLOR_GREEN,COLOR_BLACK,1); if(cr->animalgloss==ANIMALGLOSS_ANIMAL) addstr("Animal"); else addstr("Liberal"); }
if(cr->wound[w] & WOUND_SHOT){addstr("Sht");sum--;if(sum>0)addstr(",");} if(cr->wound[w] & WOUND_BRUISED){addstr("Brs");sum--;if(sum>0)addstr(",");} if(cr->wound[w] & WOUND_CUT){addstr("Cut");sum--;if(sum>0)addstr(",");} if(cr->wound[w] & WOUND_TORN){addstr("Trn");sum--;if(sum>0)addstr(",");} if(cr->wound[w] & WOUND_BURNED){addstr("Brn");sum--;if(sum>0)addstr(",");} } } set_color(COLOR_WHITE,COLOR_BLACK,0); }} /* full character sheet (with surrounding interface) */ void fullstatus(int p) {
if(activesquad==NULL)return;
const int pagenum=3; int page=0;
do { erase();
set_color(COLOR_GREEN,COLOR_BLACK,1); move(0,0); addstr("Profile of a Liberal");
if(page==0) printliberalstats(*activesquad->squad[p]); else if(page==1) printliberalskills(*activesquad->squad[p]); else if (page == 2) printliberalcrimes(*activesquad->squad[p]);
move(23,0); addstr("N - Change Code Name G - Fix Gender Label"); if(activesquad->squad[1]!=NULL) { addstr(" LEFT/RIGHT - Other Liberals"); } move(24,0); addstr("Press any other key to continue the Struggle"); addstr(" UP/DOWN - More Info");
refresh(); int c=getch(); translategetch(c);
if(activesquad->squad[1]!=NULL&&((c==KEY_LEFT)||(c==KEY_RIGHT))) { int sx=1; if((c==KEY_LEFT))sx=-1; do { p=(p+6+sx)%6; }while(activesquad->squad[p]==NULL); continue; }
if(c==KEY_DOWN) { page++; page%=pagenum; continue; }
if(c==KEY_UP) { page--; if(page<0)page=pagenum-1; page%=pagenum; continue; }
if(c=='n') { move(23,0); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr("What is the new code name? "); move(24,0); addstr(" ");
keypad(stdscr,FALSE); raw_output(FALSE); echo(); curs_set(1); move(24,0); enter_name(activesquad->squad[p]->name,CREATURE_NAMELEN);
curs_set(0); noecho(); raw_output(TRUE); keypad(stdscr,TRUE); continue; } else if(c=='g') { activesquad->squad[p]->gender_liberal++; if(activesquad->squad[p]->gender_liberal > 2) activesquad->squad[p]->gender_liberal = 0; continue; } break; }while(1);} /* Full screen character sheet, skills only edition */ void printliberalskills(Creature &cr) {
set_color(COLOR_WHITE,COLOR_BLACK,0); char str[200]; char num[5];
// Add name move(2,0); if(strcmp(cr.propername,cr.name)!=0) { addstr("Code name: "); } else { addstr("Name: "); } set_color(COLOR_WHITE,COLOR_BLACK,1); addstr(cr.name); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr(", "); gettitle(str,cr); addstr(str); addstr(" ("); getrecruitcreature(str,cr.type); addstr(str); addstr(")");
// Add all skills for(int s=0;s<SKILLNUM;s++) { if(s%3==0 && s<9) { set_color(COLOR_WHITE,COLOR_BLACK,0); move(4,27*(s/3)); addstr("SKILL"); move(4,15+27*(s/3)); addstr("NOW MAX"); }
// Maxed skills are green if(cr.skill_cap(s,true)!=0 && cr.get_skill(s)>=cr.skill_cap(s,true))set_color(COLOR_CYAN,COLOR_BLACK,1); // About to level up skills are white else if(cr.get_skill_ip(s)>=100+(10*cr.get_skill(s))&& cr.get_skill(s)<cr.skill_cap(s,true))set_color(COLOR_WHITE,COLOR_BLACK,1); // <1 skills are dark gray else if(cr.get_skill(s)<1)set_color(COLOR_BLACK,COLOR_BLACK,1); // >=1 skills are light gray else set_color(COLOR_WHITE,COLOR_BLACK,0);
move(5+s/3,27*(s%3)); strcpy(str,Skill::get_name(s).c_str()); strcat(str,": "); addstr(str); move(5+s/3,14+27*(s%3)); sprintf(num,"%2d.",cr.get_skill(s)); addstr(num); if(cr.get_skill_ip(s)<100+(10*cr.get_skill(s))) { if ((cr.get_skill_ip(s)*100)/(100+(10*cr.get_skill(s)))!=0) { itoa((cr.get_skill_ip(s)*100)/(100+(10*cr.get_skill(s))),num,10); if ((cr.get_skill_ip(s)*100)/(100+(10*cr.get_skill(s)))<10) { addstr("0"); } addstr(num); } else addstr("00"); } else { addstr("99+"); }
if(cr.skill_cap(s,true)==0 || cr.get_skill(s)<cr.skill_cap(s,true)) set_color(COLOR_BLACK,COLOR_BLACK,1); move(5+s/3,20+27*(s%3)); sprintf(str,"%2d.00",cr.skill_cap(s,true)); addstr(str); } set_color(COLOR_WHITE,COLOR_BLACK,0);} /* full screen character sheet */ void printliberalstats(Creature &cr) {
set_color(COLOR_WHITE,COLOR_BLACK,0);
char num[20],str[200];
// Add name move(2,0); addstr("Name: "); set_color(COLOR_WHITE,COLOR_BLACK,1); addstr(cr.name); set_color(COLOR_WHITE,COLOR_BLACK,0); if(strcmp(cr.propername,cr.name)!=0) { //The names do not match, print real name as well addstr(" ("); addstr(cr.propername); addstr(")"); } addstr(", "); gettitle(str,cr); addstr(str); addstr(" ("); getrecruitcreature(str,cr.type); addstr(str); addstr(")"); move(3,0);
// Add birthdate addstr("Born "); switch(cr.birthday_month) { case 1:addstr("January");break; case 2:addstr("February");break; case 3:addstr("March");break; case 4:addstr("April");break; case 5:addstr("May");break; case 6:addstr("June");break; case 7:addstr("July");break; case 8:addstr("August");break; case 9:addstr("September");break; case 10:addstr("October");break; case 11:addstr("November");break; case 12:addstr("December");break; } addstr(" "); itoa(cr.birthday_day,num,10); addstr(num); addstr(", "); if(cr.birthday_month < month || (cr.birthday_month == month && cr.birthday_day <= day)) { itoa(year-cr.age,num,10); } else { itoa(year-1-cr.age,num,10); } addstr(num); // Add age addstr(" (Age "); itoa(cr.age,num,10); addstr(num); addstr(", "); // Add Liberal gender if(cr.gender_liberal == GENDER_FEMALE) addstr("Female"); else if(cr.gender_liberal == GENDER_MALE) addstr("Male"); else addstr("Androgynous"); // Note if there's some conflict with Conservative society's perceptions //if(cr.gender_liberal != cr.gender_conservative) // addstr("*"); addstr(")");
move(3,46); statebrokenlaws(cr); set_color(COLOR_WHITE,COLOR_BLACK,0);
// Add juice move(10,16); addstr("Juice: "); itoa(cr.juice,num,10); addstr(num); if(cr.juice<1000) { move(11,16);addstr("Next: "); if(cr.juice<0)addstr("0"); else if(cr.juice<10)addstr("10"); else if(cr.juice<50)addstr("50"); else if(cr.juice<100)addstr("100"); else if(cr.juice<200)addstr("200"); else if(cr.juice<500)addstr("500"); else addstr("1000"); } // Add attributes move(5,0);addstr("Heart: "); itoa(cr.get_attribute(ATTRIBUTE_HEART,true),num,10); addstr(num); move(6,0);addstr("Intelligence: "); itoa(cr.get_attribute(ATTRIBUTE_INTELLIGENCE,true),num,10); addstr(num); move(7,0);addstr("Wisdom: "); itoa(cr.get_attribute(ATTRIBUTE_WISDOM,true),num,10); addstr(num); move(8,0);addstr("Health: "); itoa(cr.get_attribute(ATTRIBUTE_HEALTH,true),num,10); addstr(num); move(9,0);addstr("Agility: "); itoa(cr.get_attribute(ATTRIBUTE_AGILITY,true),num,10); addstr(num); move(10,0);addstr("Strength: "); itoa(cr.get_attribute(ATTRIBUTE_STRENGTH,true),num,10); addstr(num); move(11,0);addstr("Charisma: "); itoa(cr.get_attribute(ATTRIBUTE_CHARISMA,true),num,10); addstr(num);
// Add highest skills char used[SKILLNUM]; memset(used,0,sizeof(char)*SKILLNUM);
int skills_max=16; char printed=1;
move(5,28); addstr("SKILL"); move(5,43); addstr("NOW MAX"); for(int skills_shown=0;skills_shown<skills_max&&printed;skills_shown++) { printed=0;
int max=0; long maxs=-1; for(int s=0;s<SKILLNUM;s++) { if((cr.get_skill(s)*10000+cr.get_skill_ip(s))>max && !used[s]) { max=(cr.get_skill(s)*10000+cr.get_skill_ip(s)); maxs=s; } }
if(maxs!=-1) { used[maxs]=1; printed=1;
// Maxed skills are green if(cr.skill_cap(maxs,true)!=0 && cr.get_skill(maxs)>=cr.skill_cap(maxs,true))set_color(COLOR_CYAN,COLOR_BLACK,1); // About to level up skills are white else if(cr.get_skill_ip(maxs)>=100+(10*cr.get_skill(maxs))&& cr.get_skill(maxs)<cr.skill_cap(maxs,true))set_color(COLOR_WHITE,COLOR_BLACK,1); // <1 skills are dark gray else if(cr.get_skill(maxs)<1)set_color(COLOR_BLACK,COLOR_BLACK,1); // >=1 skills are light gray else set_color(COLOR_WHITE,COLOR_BLACK,0);
move(6+skills_shown,28); strcpy(str,Skill::get_name(maxs).c_str()); strcat(str,": "); addstr(str); move(6+skills_shown,42); sprintf(num,"%2d.",cr.get_skill(maxs)); addstr(num); if(cr.get_skill_ip(maxs)<100+(10*cr.get_skill(maxs))) { if ((cr.get_skill_ip(maxs)*100)/(100+(10*cr.get_skill(maxs)))!=0) { itoa((cr.get_skill_ip(maxs)*100)/(100+(10*cr.get_skill(maxs))),num,10); if ((cr.get_skill_ip(maxs)*100)/(100+(10*cr.get_skill(maxs)))<10) { addstr("0"); } addstr(num); } else addstr("00"); } else { addstr("99+"); }
if(cr.skill_cap(maxs,true)==0 || cr.get_skill(maxs)<cr.skill_cap(maxs,true)) set_color(COLOR_BLACK,COLOR_BLACK,1); move(6+skills_shown,48); sprintf(str,"%2d.00",cr.skill_cap(maxs,true)); addstr(str); } }
set_color(COLOR_WHITE,COLOR_BLACK,0);
// Add weapon move(13,0); addstr("Weapon: "); addstr(cr.get_weapon_string(0).c_str());
// Add clothing move(14,0); addstr("Clothes: "); addstr(cr.get_armor_string(true).c_str());
// Add vehicle move(15,0); addstr("Car: "); long v=-1; if(showcarprefs==1)v=id_getcar(cr.pref_carid); else v=id_getcar(cr.carid); if(v!=-1&&showcarprefs!=-1) { strcpy(str,vehicle[v]->shortname().c_str()); char d; if(showcarprefs==1)d=cr.pref_is_driver; else d=cr.is_driver; if(d)strcat(str,"-D"); } else { int legok=2; if((cr.wound[BODYPART_LEG_RIGHT] & WOUND_NASTYOFF)|| (cr.wound[BODYPART_LEG_RIGHT] & WOUND_CLEANOFF))legok--; if((cr.wound[BODYPART_LEG_LEFT] & WOUND_NASTYOFF)|| (cr.wound[BODYPART_LEG_LEFT] & WOUND_CLEANOFF))legok--; if(cr.flag & CREATUREFLAG_WHEELCHAIR)strcpy(str,"Wheelchair"); else if(legok>=1)strcpy(str,"On Foot"); else strcpy(str,"On \"Foot\""); } addstr(str);
// Add recruit stats if(cr.flag!=CREATUREFLAG_BRAINWASHED) { move(18,0); itoa(maxsubordinates(cr)-subordinatesleft(cr),num,10); addstr(num); addstr(" Recruits / "); itoa(maxsubordinates(cr),num,10); addstr(num); addstr(" Max"); } else { move(18,0); addstr("Enlightened "); addstr("Can't Recruit"); } // Any meetings with potential recruits scheduled? int recruiting = scheduledmeetings(cr); if(recruiting) { move(18,55); itoa(recruiting,num,10); addstr("Scheduled Meetings: "); addstr(num); } // Add seduction stats move(19,0); int lovers = loveslaves(cr); if(cr.flag & CREATUREFLAG_LOVESLAVE) lovers++; if(lovers) { itoa(lovers,num,10); addstr(num); addstr(" Romantic Interest"); if(lovers>1)addstr("s"); } // Any dates with potential love interests scheduled? int wooing = scheduleddates(cr); if(wooing) { move(19,55); itoa(wooing,num,10); addstr("Scheduled Dates: "); addstr(num); }
// Add wound status for(int w=0;w<BODYPARTNUM;w++) { if(cr.wound[w] & WOUND_BLEEDING)set_color(COLOR_RED,COLOR_BLACK,1); else set_color(COLOR_WHITE,COLOR_BLACK,0);
move(5+w,55); switch(w) { case BODYPART_HEAD:addstr("Head:");break; case BODYPART_BODY:addstr("Body:");break; case BODYPART_ARM_RIGHT:addstr("Right Arm:");break; case BODYPART_ARM_LEFT:addstr("Left Arm:");break; case BODYPART_LEG_RIGHT:addstr("Right Leg:");break; case BODYPART_LEG_LEFT:addstr("Left Leg:");break; }
move(5+w,66); if(cr.wound[w] & WOUND_NASTYOFF)addstr("Ripped off"); else if(cr.wound[w] & WOUND_CLEANOFF)addstr("Severed"); else { int sum=0;
if(cr.wound[w] & WOUND_SHOT)sum++; if(cr.wound[w] & WOUND_CUT)sum++; if(cr.wound[w] & WOUND_BRUISED)sum++; if(cr.wound[w] & WOUND_BURNED)sum++; if(cr.wound[w] & WOUND_TORN)sum++;
if(sum==0) { set_color(COLOR_GREEN,COLOR_BLACK,1); if(cr.animalgloss==ANIMALGLOSS_ANIMAL) addstr("Animal"); else addstr("Liberal"); }
if(cr.wound[w] & WOUND_SHOT){addstr("Shot");sum--;if(sum>0)addstr(",");} if(cr.wound[w] & WOUND_BRUISED){addstr("Bruised");sum--;if(sum>0)addstr(",");} if(cr.wound[w] & WOUND_CUT){addstr("Cut");sum--;if(sum>0)addstr(",");} if(cr.wound[w] & WOUND_TORN){addstr("Torn");sum--;if(sum>0)addstr(",");} if(cr.wound[w] & WOUND_BURNED){addstr("Burned");sum--;if(sum>0)addstr(",");} } } set_color(COLOR_WHITE,COLOR_BLACK,0);
//SPECIAL WOUNDS set_color(COLOR_RED,COLOR_BLACK,0);
int y=12; int x=55; if(cr.special[SPECIALWOUND_HEART]!=1) { move(y++,x); addstr("Heart Punctured"); } if(cr.special[SPECIALWOUND_RIGHTLUNG]!=1) { move(y++,x); addstr("R. Lung Collapsed"); } if(cr.special[SPECIALWOUND_LEFTLUNG]!=1) { move(y++,x); addstr("L. Lung Collapsed"); } if(cr.special[SPECIALWOUND_NECK]!=1) { move(y++,x); addstr("Broken Neck"); } if(cr.special[SPECIALWOUND_UPPERSPINE]!=1) { move(y++,x); addstr("Broken Up Spine"); } if(cr.special[SPECIALWOUND_LOWERSPINE]!=1) { move(y++,x); addstr("Broken Lw Spine"); } if(cr.special[SPECIALWOUND_RIGHTEYE]!=1) { move(y++,x); addstr("No Right Eye"); } if(cr.special[SPECIALWOUND_LEFTEYE]!=1) { move(y++,x); addstr("No Left Eye"); } if(cr.special[SPECIALWOUND_NOSE]!=1) { move(y++,x); addstr("No Nose"); } if(cr.special[SPECIALWOUND_TONGUE]!=1) { move(y++,x); addstr("No Tongue"); } if(cr.special[SPECIALWOUND_TEETH]!=TOOTHNUM) { move(y++,x); if(cr.special[SPECIALWOUND_TEETH]==0)addstr("No Teeth"); else if(cr.special[SPECIALWOUND_TEETH]==TOOTHNUM-1)addstr("Missing a Tooth"); else if(cr.special[SPECIALWOUND_TEETH]<TOOTHNUM)addstr("Missing Teeth"); } if(cr.special[SPECIALWOUND_LIVER]!=1) { move(y++,x); addstr("Liver Damaged"); } if(cr.special[SPECIALWOUND_RIGHTKIDNEY]!=1) { move(y++,x); addstr("R. Kidney Damaged"); } if(cr.special[SPECIALWOUND_LEFTKIDNEY]!=1) { move(y++,x); addstr("L. Kidney Damaged"); } if(cr.special[SPECIALWOUND_STOMACH]!=1) { move(y++,x); addstr("Stomach Injured"); } if(cr.special[SPECIALWOUND_SPLEEN]!=1) { move(y++,x); addstr("Busted Spleen"); } if(cr.special[SPECIALWOUND_RIBS]!=RIBNUM) { move(y++,x); if(cr.special[SPECIALWOUND_RIBS]==0)addstr("All Ribs Broken"); else if(cr.special[SPECIALWOUND_RIBS]==RIBNUM-1)addstr("Broken Rib"); else if(cr.special[SPECIALWOUND_RIBS]<RIBNUM)addstr("Broken Ribs"); }
set_color(COLOR_WHITE,COLOR_BLACK,0);} /* Full screen character sheet, crime sheet */ void printliberalcrimes(Creature &cr) {
set_color(COLOR_WHITE,COLOR_BLACK,0); char str[200]; char num[5];
// Add name move(2,0); if(strcmp(cr.propername,cr.name)!=0) { addstr("Code name: "); } else { addstr("Name: "); } set_color(COLOR_WHITE,COLOR_BLACK,1); addstr(cr.name); set_color(COLOR_WHITE,COLOR_BLACK,0); addstr(", "); gettitle(str,cr); addstr(str); addstr(" ("); getrecruitcreature(str,cr.type); addstr(str); addstr(")");
// Add all crimes for(int i = 0;i < LAWFLAGNUM; i++) { if(i%2==0 && i<4) { set_color(COLOR_WHITE,COLOR_BLACK,0); move(4,40*(i/2)); addstr("CRIME"); move(4,30+40*(i/2)); addstr("NUM"); }
// Commited crimes are yellow if(cr.crimes_suspected[i] > 0) { set_color(COLOR_YELLOW,COLOR_BLACK,1); } else { set_color(COLOR_BLACK,COLOR_BLACK,1); }
move(5+i/2,40*(i%2)); getlawflag(str,i); strcat(str,": "); addstr(str); move(5+i/2,30+40*(i%2)); sprintf(num,"%2d",cr.crimes_suspected[i]); addstr(num); }
set_color(COLOR_WHITE,COLOR_BLACK,0);} ===== Health Status =====
/* prints a character's health description (One Leg, Liberal, NearDETH...) */ void printhealthstat(Creature &g,int y,int x,char smll) { short woundsum=0; char bleeding=0; for(int w=0;w<BODYPARTNUM;w++) { if(g.wound[w]!=0)woundsum++; if(g.wound[w] & WOUND_BLEEDING)bleeding=1; } int armok=2; int legok=2; if((g.wound[BODYPART_ARM_RIGHT] & WOUND_NASTYOFF)|| (g.wound[BODYPART_ARM_RIGHT] & WOUND_CLEANOFF))armok--; if((g.wound[BODYPART_ARM_LEFT] & WOUND_NASTYOFF)|| (g.wound[BODYPART_ARM_LEFT] & WOUND_CLEANOFF))armok--; if((g.wound[BODYPART_LEG_RIGHT] & WOUND_NASTYOFF)|| (g.wound[BODYPART_LEG_RIGHT] & WOUND_CLEANOFF))legok--; if((g.wound[BODYPART_LEG_LEFT] & WOUND_NASTYOFF)|| (g.wound[BODYPART_LEG_LEFT] & WOUND_CLEANOFF))legok--; move(y,x); if(bleeding)set_color(COLOR_RED,COLOR_BLACK,1); else set_color(COLOR_WHITE,COLOR_BLACK,1); if(!g.alive) { set_color(COLOR_BLACK,COLOR_BLACK,1); addstr("Deceased"); } else if(g.blood<=20) { if(smll)addstr("NearDETH"); else addstr("Near Death"); } else if(g.blood<=50) { if(smll)addstr("BadWound"); else addstr("Badly Wounded"); } else if(g.blood<=75) { addstr("Wounded"); } else if(g.blood<100) { if(smll)addstr("LtWound"); else addstr("Lightly Wounded"); } else if(g.special[SPECIALWOUND_NECK]==2) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("NckBroke"); else addstr("Neck Broken"); } else if(g.special[SPECIALWOUND_UPPERSPINE]==2) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("Quadpleg"); else addstr("Quadraplegic"); } else if(g.special[SPECIALWOUND_LOWERSPINE]==2) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("Parapleg"); else addstr("Paraplegic"); } else if(g.special[SPECIALWOUND_RIGHTEYE]==0&& g.special[SPECIALWOUND_LEFTEYE]==0&& g.special[SPECIALWOUND_NOSE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("FaceGone"); else addstr("Face Gone"); } else if(legok==0&&armok==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("No Limbs"); } else if((legok==1&&armok==0)||(armok==1&&legok==0)) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("One Limb"); } else if(legok==2&&armok==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("No Arms"); } else if(legok==0&&armok==2) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("No Legs"); } else if(legok==1&&armok==1) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("1Arm1Leg"); else addstr("One Arm, One Leg"); } else if(armok==1) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("One Arm"); } else if(legok==1) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("One Leg"); } else if(g.special[SPECIALWOUND_RIGHTEYE]==0&& g.special[SPECIALWOUND_LEFTEYE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("Blind"); } else if((g.special[SPECIALWOUND_RIGHTEYE]==0|| g.special[SPECIALWOUND_LEFTEYE]==0)&& g.special[SPECIALWOUND_NOSE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("FaceMutl"); else addstr("Face Mutilated"); } else if(g.special[SPECIALWOUND_NOSE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("NoseGone"); else addstr("Missing Nose"); } else if(g.special[SPECIALWOUND_RIGHTEYE]==0|| g.special[SPECIALWOUND_LEFTEYE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("One Eye"); else addstr("Missing Eye"); } else if(g.special[SPECIALWOUND_TONGUE]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("NoTongue"); else addstr("No Tongue"); } else if(g.special[SPECIALWOUND_TEETH]==0) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); addstr("No Teeth"); } else if(g.special[SPECIALWOUND_TEETH]<TOOTHNUM) { if(!bleeding)set_color(COLOR_GREEN,COLOR_BLACK,0); if(smll)addstr("MisTeeth"); else addstr("Missing Teeth"); } else { if(g.align==-1) { set_color(COLOR_RED,COLOR_BLACK,1); if(smll)addstr("Consrvtv"); else addstr("Conservative"); } else if(g.align==0) { set_color(COLOR_WHITE,COLOR_BLACK,1); addstr("Moderate"); } else { set_color(COLOR_GREEN,COLOR_BLACK,1); if(g.animalgloss==ANIMALGLOSS_ANIMAL) addstr("Animal"); else addstr("Liberal"); } } }===== Names =====
void getactivity(char *str,activityst &act) { strcpy(str,""); switch(act.type) { case ACTIVITY_HOSTAGETENDING: { strcat(str,"Tending to "); int pl=getpoolcreature(act.arg); if(pl!=-1) { strcat(str,pool[pl]->name); } break; } case ACTIVITY_REPAIR_ARMOR: strcat(str,"Repairing Clothing"); break; case ACTIVITY_WHEELCHAIR: strcat(str,"Procuring a Wheelchair"); break; case ACTIVITY_STEALCARS: strcat(str,"Stealing a Car"); break; case ACTIVITY_POLLS: strcat(str,"Gathering Opinion Info"); break; case ACTIVITY_MAKE_ARMOR: { strcat(str,"Making "); strcat(str,armortype[act.arg]->get_shortname().c_str()); break; } case ACTIVITY_TROUBLE: strcat(str,"Causing Trouble"); break; case ACTIVITY_PROSTITUTION: strcat(str,"Prostituting"); break; case ACTIVITY_COMMUNITYSERVICE: strcat(str,"Volunteering"); break; case ACTIVITY_GRAFFITI: strcat(str,"Making Graffiti"); break; case ACTIVITY_CCFRAUD: strcat(str,"Credit Card Fraud"); break; case ACTIVITY_DOS_RACKET: strcat(str,"Extorting Websites"); break; case ACTIVITY_DOS_ATTACKS: strcat(str,"Attacking Websites"); break; case ACTIVITY_HACKING: strcat(str,"Hacking Networks"); break; case ACTIVITY_SELL_TSHIRTS: strcat(str,"Selling T-Shirts"); break; case ACTIVITY_SELL_ART: strcat(str,"Selling Art"); break; case ACTIVITY_TEACH_POLITICS: strcat(str,"Teaching Politics"); break; case ACTIVITY_TEACH_FIGHTING: strcat(str,"Teaching Fighting"); break; case ACTIVITY_TEACH_COVERT: strcat(str,"Teaching Covert Ops"); break; case ACTIVITY_SELL_MUSIC: strcat(str,"Selling Music"); break; case ACTIVITY_BURY: strcat(str,"Disposing of Bodies"); break; case ACTIVITY_DONATIONS: strcat(str,"Soliciting Donations"); break; case ACTIVITY_SELL_DRUGS: strcat(str,"Selling Brownies"); break; case ACTIVITY_VISIT: { strcat(str,"Going to "); if (location[act.arg]->front_business==-1) strcat(str,location[act.arg]->shortname); else strcat(str,location[act.arg]->front_shortname); break; } case ACTIVITY_HEAL: strcat(str,"Tending to Injuries"); break; case ACTIVITY_NONE: strcat(str,"Laying Low"); break; case ACTIVITY_WRITE_LETTERS: strcat(str,"Writing letters"); break; case ACTIVITY_WRITE_GUARDIAN: strcat(str,"Writing news"); break; case ACTIVITY_CLINIC: strcat(str,"Going to Free CLINIC"); break; case ACTIVITY_STUDY_DEBATING: case ACTIVITY_STUDY_MARTIAL_ARTS: case ACTIVITY_STUDY_DRIVING: case ACTIVITY_STUDY_PSYCHOLOGY: case ACTIVITY_STUDY_FIRST_AID: case ACTIVITY_STUDY_LAW: case ACTIVITY_STUDY_DISGUISE: case ACTIVITY_STUDY_SCIENCE: case ACTIVITY_STUDY_BUSINESS: //case ACTIVITY_STUDY_COOKING: case ACTIVITY_STUDY_GYMNASTICS: case ACTIVITY_STUDY_ART: case ACTIVITY_STUDY_MUSIC: case ACTIVITY_STUDY_TEACHING: case ACTIVITY_STUDY_WRITING: strcat(str,"Attending Classes"); break; case ACTIVITY_SLEEPER_LIBERAL: strcat(str,"Promoting Liberalism"); break; case ACTIVITY_SLEEPER_CONSERVATIVE: strcat(str,"Spouting Conservatism"); break; case ACTIVITY_SLEEPER_SPY: strcat(str,"Snooping Around"); break; case ACTIVITY_SLEEPER_RECRUIT: strcat(str,"Recruiting Sleepers"); break; case ACTIVITY_SLEEPER_JOINLCS: strcat(str,"Quitting Job"); break; case ACTIVITY_SLEEPER_SCANDAL: strcat(str,"Creating a Scandal"); break; case ACTIVITY_SLEEPER_EMBEZZLE: strcat(str,"Embezzling Funds"); break; case ACTIVITY_SLEEPER_STEAL: strcat(str,"Stealing Equipment"); break; default: strcat(str,"Reporting Bugs to the Dev Team"); break; } } void gettitle(char *str,Creature &cr) { if(cr.align==-1) { if(cr.juice<=-50) { if(law[LAW_FREESPEECH]==-2)strcpy(str,"[Darn] Worthless"); else strcpy(str,"Damn Worthless"); } else if(cr.juice<=-10)strcpy(str,"Conservative Dregs"); else if(cr.juice<0)strcpy(str,"Conservative Punk"); else if(cr.juice<10)strcpy(str,"Mindless Conservative"); else if(cr.juice<50)strcpy(str,"Wrong-Thinker"); else if(cr.juice<100) { if(law[LAW_FREESPEECH]==-2)strcpy(str,"Stubborn as [Heck]"); else strcpy(str,"Stubborn as Hell"); } else if(cr.juice<200) { if(law[LAW_FREESPEECH]==-2)strcpy(str,"Heartless [Jerk]"); else strcpy(str,"Heartless Bastard"); } else if(cr.juice<500)strcpy(str,"Insane Vigilante"); else if(cr.juice<1000)strcpy(str,"Arch-Conservative"); else strcpy(str,"Evil Incarnate"); } else if(cr.align==0) { if(cr.juice<=-50) { if(law[LAW_FREESPEECH]==-2)strcpy(str,"[Darn] Worthless"); else strcpy(str,"Damn Worthless"); } else if(cr.juice<=-10)strcpy(str,"Society's Dregs"); else if(cr.juice<0)strcpy(str,"Non-Liberal Punk"); else if(cr.juice<10)strcpy(str,"Non-Liberal"); else if(cr.juice<50)strcpy(str,"Hard Working"); else if(cr.juice<100)strcpy(str,"Respected"); else if(cr.juice<200)strcpy(str,"Upstanding Citizen"); else if(cr.juice<500)strcpy(str,"Great Person"); else if(cr.juice<1000) strcpy(str,"Peacemaker"); else strcpy(str,"Peace Prize Winner"); } else { if(cr.juice<=-50) { if(law[LAW_FREESPEECH]==-2)strcpy(str,"[Darn] Worthless"); else strcpy(str,"Damn Worthless"); } else if(cr.juice<=-10)strcpy(str,"Society's Dregs"); else if(cr.juice<0)strcpy(str,"Punk"); else if(cr.juice<10)strcpy(str,"Civilian"); else if(cr.juice<50)strcpy(str,"Activist"); else if(cr.juice<100)strcpy(str,"Socialist Threat"); else if(cr.juice<200)strcpy(str,"Revolutionary"); else if(cr.juice<500)strcpy(str,"Urban Commando"); else if(cr.juice<1000)strcpy(str,"Liberal Guardian"); else strcpy(str,"Elite Liberal"); } } void getview(char *str,short view) { strcpy(str,""); switch(view) { case VIEW_GAY:strcat(str,"LGBT Rights");break; case VIEW_DEATHPENALTY:strcat(str,"The Death Penalty");break; case VIEW_TAXES:strcat(str,"Taxes");break; case VIEW_NUCLEARPOWER:strcat(str,"Nuclear Power");break; case VIEW_ANIMALRESEARCH:strcat(str,"Animal Cruelty");break; case VIEW_POLICEBEHAVIOR:strcat(str,"The Police");break; case VIEW_TORTURE:strcat(str,"Torture");break; case VIEW_INTELLIGENCE:strcat(str,"Privacy");break; case VIEW_FREESPEECH:strcat(str,"Free Speech");break; case VIEW_GENETICS:strcat(str,"Genetics");break; case VIEW_JUSTICES:strcat(str,"The Judiciary");break; case VIEW_GUNCONTROL:strcat(str,"Gun Control");break; case VIEW_SWEATSHOPS:strcat(str,"Labor");break; case VIEW_POLLUTION:strcat(str,"Pollution");break; case VIEW_CORPORATECULTURE:strcat(str,"Corporate Culture");break; case VIEW_CEOSALARY:strcat(str,"CEO Compensation");break; case VIEW_WOMEN:strcat(str,"Gender Equality");break; case VIEW_CIVILRIGHTS:strcat(str,"Racial Equality");break; case VIEW_DRUGS:strcat(str,"Drugs");break; case VIEW_IMMIGRATION:strcat(str,"Immigration");break; case VIEW_MILITARY:strcat(str,"The Military");break; case VIEW_AMRADIO:strcat(str,"AM Radio");break; case VIEW_CABLENEWS:strcat(str,"Cable News");break; //case VIEW_POLITICALVIOLENCE:strcat(str,"The Need For Action");break; case VIEW_LIBERALCRIMESQUAD:strcat(str,"Who We Are");break; case VIEW_LIBERALCRIMESQUADPOS:strcat(str,"Why We Rock");break; case VIEW_CONSERVATIVECRIMESQUAD:strcat(str,"The CCS Criminals");break; } } void cityname(char *story) { switch(LCSrandom(42)) { case 0:strcpy(story,"San Francisco, CA");break; case 1:strcpy(story,"Boston, MA");break; case 2:strcpy(story,"Los Angeles, CA");break; case 3:strcpy(story,"Detroit, MI");break; case 4:strcpy(story,"Cleveland, OH");break; case 5:strcpy(story,"Cincinnati, OH");break; case 6:strcpy(story,"New York, NY");break; case 7:strcpy(story,"Chicago, IL");break; case 8:strcpy(story,"Trenton, NJ");break; case 9:strcpy(story,"Denver, CO");break; case 10:strcpy(story,"Phoenix, AZ");break; case 11:strcpy(story,"Little Rock, AR");break; case 12:strcpy(story,"Houston, TX");break; case 13:strcpy(story,"Dallas, TX");break; case 14:strcpy(story,"Hartford, CT");break; case 15:strcpy(story,"Miami, FL");break; case 16:strcpy(story,"Baton Rouge, LA");break; case 17:strcpy(story,"Seattle, WA");break; case 18:strcpy(story,"Salt Lake City, UT");break; case 19:strcpy(story,"Philadelphia, PA");break; case 20:strcpy(story,"San Antonio, TX");break; case 21:strcpy(story,"Columbus, OH");break; case 22:strcpy(story,"Atlanta, GA");break; case 23:strcpy(story,"Buffalo, NY");break; case 24:strcpy(story,"Orlando, FL");break; case 25:strcpy(story,"Syracuse, NY");break; case 26:strcpy(story,"Baltimore, MD");break; case 27:strcpy(story,"Washington D.C.");break; case 28:strcpy(story,"Memphis, TN");break; case 29:strcpy(story,"Brooklyn, NY");break; case 30:strcpy(story,"New Orleans, LA");break; case 31:strcpy(story,"Albany, NY");break; case 32:strcpy(story,"Jackson, MS");break; case 33:strcpy(story,"Waco, TX");break; case 34:strcpy(story,"Oklahoma, OK");break; case 35:strcpy(story,"Austin, TX");break; case 36:strcpy(story,"Nashville, TN");break; case 37:strcpy(story,"Philadelphia, PA");break; case 38:strcpy(story,"Tampa, FL");break; case 39:strcpy(story,"San Diego, CA");break; case 40:strcpy(story,"El Paso, TX");break; case 41:strcpy(story,"Baton Rouge, LA");break; default:strcpy(story,"ERROR, AR");break; } } /* Allow the player to enter a name with an optional default */ void enter_name(char *name, int len, char* defname) { keypad(stdscr,FALSE); raw_output(FALSE); echo(); curs_set(1); getnstr(name,len-1);//-1 because 'len' is normally the full space available and we need one for a terminator. curs_set(0); noecho(); raw_output(TRUE); keypad(stdscr,TRUE); if((defname!=NULL) && (strncmp(name,"",len-1)==0)) { strncpy(name,defname,len-1); } name[len-1]='\0'; } #include <externs.h> /** ACTIVITY_VISIT, TODO ACTIVITY_HOSTAGETENDING, TODO ACTIVITY_DOS_RACKET, TODO ACTIVITY_MAKE_ARMOR, TODO ACTIVITY_STEALCARS, TODO ACTIVITY_WHEELCHAIR, TODO ACTIVITY_BURY, TODO ACTIVITY_WRITE_BLOG, TODO ACTIVITY_TEACH_GENERALED, TODO ACTIVITY_TEACH_POLITICS, TODO ACTIVITY_TEACH_SURVIVAL, TODO ACTIVITY_TEACH_FIGHTING, TODO ACTIVITY_TEACH_COVERT, TODO ACTIVITY_CLINIC, TODO ACTIVITY_HEAL, TODO ACTIVITY_SLEEPER_LIBERAL, TODO ACTIVITY_SLEEPER_CONSERVATIVE, TODO ACTIVITY_SLEEPER_SPY, TODO ACTIVITY_SLEEPER_RECRUIT, TODO ACTIVITY_SLEEPER_SCANDAL, TODO ACTIVITY_SLEEPER_EMBEZZLE, TODO ACTIVITY_SLEEPER_STEAL, TODO ACTIVITY_SLEEPER_JOINLCS, TODO */ // {{{ Various voids // Help pages are drawn here. // NOTE: This will probably need updating if there are any fundamental code // changes that will change gameplay. void help(const char* string) { erase(); } // Generates help page on activities. // Just supply Activity type. void HelpActivities(int activityType) { // I have actually created a screen editor to help me create the code // for the help. It can probably be used all over the place for formatting // large pieces of text. // // Could you possibly put this in ../../dev/ ? -- LK if(activityType == ACTIVITY_NONE) { return; } erase(); set_color(COLOR_WHITE,COLOR_BLACK,0); move(0,0); addstr("Liberal help on:"); switch(activityType) { // }}} // {{{ Liberal activism // {{{ ACTIVITY_COMMUNITYSERVICE case ACTIVITY_COMMUNITYSERVICE: addstr("===Community Service==="); addstr(" Has a minor effect on public opinion, increases Juice and has the chance of reducing the activists Heat."); break; // }}} // {{{ ACTIVITY_TROUBLE case ACTIVITY_TROUBLE: move(2,0); addstr("===Liberal Disobedience==="); addstr(" Liberal Disobedience is an illegal activity and a form of Liberal Activism which has a positive effect on Public Opinion. It has very short prison"); addstr(" sentences if you get convicted. It also increases juice. Persuasion, Charisma, Agility, Heart, Strength, Intelligence will increase "); addstr(" the effect you have on Public Opinion."); move(11,0); addstr(" There is a chance that someone will phone the police. Agility, intelligence, disguise and street sense will shake them off the scent. There is also a"); move(13,0); addstr(" chance that an angry mob will beat the crap out of you."); break; // }}} // {{{ ACTIVITY_GRAFFITI case ACTIVITY_GRAFFITI: move(2,0); addstr("===Graffiti=="); move(4,0); addstr(" Spraying political graffiti is a misdemeanor, carrying with it relatively short jail sentences. This has a positive effect on public opinion. If you "); move(6,0); addstr(" do not have a can of spray paint, your character will spend a day purchasing one."); move(9,0); addstr(" A high art skill and heart will enhance the effect this has on public opinion."); break; // }}} // {{{ ACTIVITY_POLLS case ACTIVITY_POLLS: move(2,0); addstr("===Search Opinion Polls==="); addstr(" Search Opinion Polls is a legal activity that lets you see what people think about various Issues. Unlike other activities listed as Liberal Activism, "); addstr(" Search Opinion Polls does not have any effect on Public Opinion; it just shows you what Public Opinion is without changing it."); addstr(" Skill in computers and intelligence will give better results."); break; // }}} // {{{ ACTIVITY_DOS_ATTACKS case ACTIVITY_DOS_ATTACKS: move(2,0); addstr("===Harassing Websites==="); addstr(" Harassing Websites is an illegal activity and a form of Liberal Activism. It is a weaker version of Hacking, resulting in much shorter prison sentences, "); addstr(" and is much less likely to provoke a raid by the Police or other law enforcement. Harassing websites only requires a Computers skill of 1."); addstr(" Utilizes only the Computers skill."); break; // }}} // {{{ ACTIVITY_HACKING case ACTIVITY_HACKING: move(2,0); addstr("===Hacking==="); addstr(" Hacking is a highly illegal form of Liberal Activism, which has a good effect on public opinion. With it, comes very long prison sentences."); addstr(" Generally you need a lot of the Computer skill and Intelligence before you can make a successful hacking attempt. You will need a minimum computer skill "); addstr(" of 6 to have an effect. The effect of having more hackers will compound the chance of successfully penetrating a network."); addstr(" If you are successful there is a chance depending on Computer skill and Intelligence of evading being criminalized. If you are criminalized, heat on "); addstr(" the activist increases. Additionally if you have made a successful hack it will increase juice."); addstr(" Occasionally instead of effecting public opinion your hacker may find files that can be published in a special edition of the Liberal Guardian."); break; // }}} // {{{ ACTIVITY_WRITE_LETTERS case ACTIVITY_WRITE_LETTERS: move(2,0); addstr("===Write to Newspapers==="); move(4,0); addstr(" Write to Newspapers is a legal activity and form of Liberal Activism that boosts the Writing skill and is more effective at influencing Public Opinion"); move(6,0); addstr(" the higher the Writing skill is. A main reason for writing to newspapers is developing enough writing skill to effectively Write for the Liberal Guardian,"); move(8,0); addstr(" which has a much bigger influence than Write to Newspapers and is still completely legal."); move(11,0); addstr(" Unlike writing for the Liberal Guardian, writing to other newspapers does not require you to own your own newspaper that you set up by deciding to Invest in"); move(13,0); addstr(" a location and spending lots of money on the one-time fee for starting up your"); move(14,0); addstr(" own newspaper, plus you can do it from anywhere, and it boosts your Writing"); move(15,0); addstr(" skill much faster than writing for the Liberal Guardian."); move(17,0); addstr(" To have the option to write for the Liberal Guardian, you need to own your own "); move(18,0); addstr(" newspaper that you set up by deciding to Invest in a location, by pressing 'Z' "); move(19,0); addstr(" on the main screen untill you have an option to invest and spending $3,000 on "); move(20,0); addstr(" a Printing Press. Additionally a character must be physically located at that "); move(21,0); addstr(" safehouse."); break; // }}} // {{{ ACTIVITY_WRITE_GUARDIAN case ACTIVITY_WRITE_GUARDIAN: move(2,0); addstr("===Write for the Liberal Guardian ==="); move(4,0); addstr(" Writing for the Liberal Guardian is a legal (or illegal depending on the "); move(5,0); addstr(" free speech laws) activity and a form of Liberal Activism that boosts the"); move(6,0); addstr(" Writing skill very slowly and is more effective at influencing Public "); move(7,0); addstr(" Opinion the higher the Writing skill is. Writing for the Liberal Guardian "); move(8,0); addstr(" has three times the impact on Public Opinion that Write to Newspapers has."); move(10,0); addstr("Items that prompt a special edition"); move(11,0); addstr("> Police Records - Found in the Police Station."); move(12,0); addstr("> Secret Corporate Files - Found in the Corporate Headquarters, or"); move(13,0); addstr(" obtained through Hacking."); move(14,0); addstr("> CEO Photos - Found in the CEO Residence."); move(15,0); addstr("> Intel. HQ Data Disk - Found in the Intelligence HQ."); move(16,0); addstr("> Cable News Memos - obtained through Hacking."); move(17,0); addstr("> Research Papers - obtained through Hacking."); move(18,0); addstr("> Judge Corruption Evidence - obtained through Hacking."); move(19,0); addstr("> AM Radio Memos - obtained through Hacking."); move(20,0); addstr(" All of the above items can be delivered to the LCS from sleepers in the "); move(21,0); addstr(" appropriate location or from hackers."); break; // }}} // }}} // {{{ Legal fund raising // {{{ ACTIVITY_DONATIONS case ACTIVITY_DONATIONS: addstr("===Soliciting Donations==="); addstr(" Income depends on persuasion. "); addstr(" This activity generates very little income when the country is very "); addstr(" Liberal, as people will have little reason to turn to the LCS. "); addstr(" This activity trains persuasion."); break; // }}} // {{{ ACTIVITY_SELL_TSHIRTS case ACTIVITY_SELL_TSHIRTS: move(2,0); addstr("===Sell Shirts==="); addstr(" The cost of shirt supplies is $4/day. Income depends on tailoring and "); addstr(" business skills. Income is lower if the country is very conservative."); addstr(" This activity trains tailoring and business."); break; // }}} // {{{ ACTIVITY_SELL_ART case ACTIVITY_SELL_ART: move(2,0); addstr("===Sell Portrait Sketches==="); move(4,0); addstr(" The cost of art supplies is $1/day. Income depends on art skill. "); addstr(" This activity trains art. Income is lower if the country is very conservative."); // }}} // {{{ ACTIVITY_SELL_MUSIC case ACTIVITY_SELL_MUSIC: move(2,0); addstr("===Play Street Music==="); addstr(" There is no overhead for this activity. Income depends on music skill. "); addstr(" An equipped guitar will increase income substantially and speed skill gains."); addstr(" Income is lower if the country is very conservative."); addstr(" This activity trains music."); break; // }}} // }}} // {{{ Illegal fund raising // {{{ ACTIVITY_SELL_DRUGS case ACTIVITY_SELL_DRUGS: move(2,0); addstr("===Selling Brownies==="); addstr(" Selling brownies on the street is an illegal way to make money. Money earned is "); addstr(" based upon the activists persuasion, street sense and business skill."); addstr(" It raises persuasion, street sense, and business. Street sense is used "); addstr(" to avoid being caught. If caught and tried, the severity of the crime can vary "); addstr(" greatly based upon circumstances. "); addstr(" The more illegal drugs are in the country, the more money you will make. However, "); addstr(" the consequences of being convicted will increase as well. "); break; // }}} // {{{ ACTIVITY_PROSTITUTION case ACTIVITY_PROSTITUTION: move(2,0); addstr("===Prostitution==="); move(4,0); addstr(" Prostitution is an activity which raises money illegally. The amount of money"); addstr(" made is based on seduction. The Seduction skill is trained and it also"); addstr(" decreases your Juice every time you do it. Prostitution is quite lucrative "); addstr(" with seduction that is over 10."); addstr(" Street sense will help you evade being criminalized and caught."); break; // }}} // {{{ ACTIVITY_CCFRAUD case ACTIVITY_CCFRAUD: move(2,0); addstr("===Credit Card Fraud==="); addstr(" To steal credit card numbers you need to have someone who has a computer "); addstr(" skill of at least 2. The more computer skill your hacker has the more money "); addstr(" you will make. This activity trains computer skill."); break; // }}} // {{{ ACTIVITY_REPAIR_ARMOR case ACTIVITY_REPAIR_ARMOR: move(2,0); addstr("===Repair Clothing==="); move(4,0); addstr(" Repairing clothing will repair damaged armour and remove blood stains if there "); addstr(" are any. "); addstr(" The chance of repairing the clothing is dependant on the quality of "); addstr(" the clothing and the tailoring skill of the activist."); break; // }}} // }}} // {{{ default default: addstr("===THE GREAT UNKNOWN==="); move(2,1); addstr("There is no help on this topic yet, as the help system is quite new."); move(3,1); addstr("However, if you want to help us, you could write one, and send it to us!"); break; // }}} } set_color(COLOR_WHITE,COLOR_BLACK,0); move(23,0); addstr(" Press any key - Return to previous screen"); getch(); } //#include "includes.h" #include "externs.h" /* pick a descriptor acronym */ void sexdesc(char *str) { strcpy(str,""); switch(LCSrandom(4)) { // Descriptors case 0:strcat(str,"DTE");break; case 1:strcat(str,"ND");break; case 2:strcat(str,"NS");break; case 3:strcat(str,"VGL");break; default:strcat(str,"FOO");break; } } /* what kind of person? */ void sexwho(char *str) { strcpy(str,""); switch(LCSrandom(35)) { // Who case 0:strcat(str,"BB");break; case 1:strcat(str,"BBC");break; case 2:strcat(str,"BF");break; case 3:strcat(str,"BHM");break; case 4:strcat(str,"BiF");break; case 5:strcat(str,"BiM");break; case 6:strcat(str,"BBW");break; case 7:strcat(str,"BMW");break; // lol big mexican woman case 8:strcat(str,"CD");break; case 9:strcat(str,"DWF");break; case 10:strcat(str,"DWM");break; case 11:strcat(str,"FTM");break; case 12:strcat(str,"GAM");break; case 13:strcat(str,"GBM");break; case 14:strcat(str,"GF");break; case 15:strcat(str,"GG");break; case 16:strcat(str,"GHM");break; case 17:strcat(str,"GWC");break; case 18:strcat(str,"GWF");break; case 19:strcat(str,"GWM");break; case 20:strcat(str,"MBC");break; case 21:strcat(str,"MBiC");break; case 22:strcat(str,"MHC");break; case 23:strcat(str,"MTF");break; case 24:strcat(str,"MWC");break; case 25:strcat(str,"SBF");break; case 26:strcat(str,"SBM");break; case 27:strcat(str,"SBiF");break; case 28:strcat(str,"SBiM");break; case 29:strcat(str,"SSBBW");break; case 30:strcat(str,"SWF");break; case 31:strcat(str,"SWM");break; case 32:strcat(str,"TG");break; case 33:strcat(str,"TS");break; case 34:strcat(str,"TV");break; default:strcat(str,"BAR");break; } } /* seeking acronym */ void sexseek(char *str) { strcpy(str,""); switch(LCSrandom(2)) { // ISO case 0:strcat(str,"ISO");break; case 1:strcat(str,"LF");break; default:strcat(str,"BAZ");break; } } /* what type of sex? */ void sextype(char *str) { strcpy(str,""); switch(LCSrandom(14)) { // TYPE case 0:strcat(str,"225");break; case 1:strcat(str,"ATM");break; case 2:strcat(str,"BDSM");break; case 3:strcat(str,"CBT");break; case 4:strcat(str,"BJ");break; case 5:strcat(str,"DP");break; case 6:strcat(str,"D/s");break; case 7:strcat(str,"GB");break; case 8:strcat(str,"HJ");break; case 9:strcat(str,"OTK");break; case 10:strcat(str,"PNP");break; case 11:strcat(str,"TT");break; case 12:strcat(str,"SWS");break; case 13:strcat(str,"W/S");break; default:strcat(str,"LOL");break; } } /* generate a vanity plate for the squad. */ /*void vanity(char *str) { strcpy(str,""); switch(LCSrandom(20)) { case 0:strcat(str,"ABORTN");break; case 1:strcat(str,"LCS-"LCSrandom(50)+1);break; case 2:strcat(str,"");break; case 3:strcat(str,"");break; case 4:strcat(str,"");break; case 5:strcat(str,"");break; case 6:strcat(str,"");break; case 7:strcat(str,"");break; case 8:strcat(str,"");break; case 9:strcat(str,"");break; case 10:strcat(str,"");break; case 11:strcat(str,"");break; case 12:strcat(str,"");break; case 13:strcat(str,"");break; case 14:strcat(str,"");break; case 15:strcat(str,"");break; case 16:strcat(str,"");break; case 17:strcat(str,"");break; case 18:strcat(str,"");break; case 19:strcat(str,"");break; } } */ /* return a letter, number, or one of either. */ void chooseLetterOrNumber(char *str, int type) { strcpy(str,""); if(type == 1) // Choose a letter. { char randChar = 'a' + LCSrandom(26); addstr((char *)randChar); } else if(type == 2) // Choose a number. { char randNum = LCSrandom(10); addstr((char *)randNum); } else if(type == 3) {// Choose one of either. if(LCSrandom(36) > 25) { char randNum = LCSrandom(10); addstr((char *)randNum); } else { char randChar = 'a' + LCSrandom(26); addstr((char *)randChar); } } else { addstr("-ERR-"); } } /* generate a non-vanity plate for the squad. */ void plate(char *str) { strcpy(str,""); switch(LCSrandom(8)) // Actual license plate formats. { case 0: // 123 ABC // CT,WA chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); strcat(str," "); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); break; case 1: // 12A B34 // CT,MA chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 1); strcat(str," "); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 2: // 123 4567 // NH chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); strcat(str," "); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 3: // ABC 1234 // PA, NY, MI, MD chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); strcat(str," "); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 4: // 12A34 // School Buses. chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 5: // A 12345 // Trucks, etc. chooseLetterOrNumber(str, 1); strcat(str," "); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 6: // 1AB 234 // CT, MA chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); strcat(str," "); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; case 7: // ABC 123 // VT, MD chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); chooseLetterOrNumber(str, 1); strcat(str," "); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); chooseLetterOrNumber(str, 2); break; } } /* pick a random state */ void makestate(char *str) { strcpy(str,""); switch(LCSrandom(50)) { case 0:addstr("Alabama");break; case 1:addstr("Alaska");break; case 2:addstr("Arkansas");break; case 3:addstr("Arizona");break; case 4:addstr("California");break; case 5:addstr("Colorado");break; case 6:addstr("Connecticut");break; case 7:addstr("Delaware");break; case 8:addstr("Florida");break; case 9:addstr("Georgia");break; case 10:addstr("Hawaii");break; case 11:addstr("Idaho");break; case 12:addstr("Illinois");break; case 13:addstr("Indiana");break; case 14:addstr("Iowa");break; case 15:addstr("Kansas");break; case 16:addstr("Kentucky");break; case 17:addstr("Louisiana");break; case 18:addstr("Maine");break; case 19:addstr("Maryland");break; case 20:addstr("Massachusetts");break; case 21:addstr("Michigan");break; case 22:addstr("Minnesota");break; case 23:addstr("Mississippi");break; case 24:addstr("Missouri");break; case 25:addstr("Montana");break; case 26:addstr("Nebraska");break; case 27:addstr("Nevada");break; case 28:addstr("New Hampshire");break; case 29:addstr("New Jersey");break; case 30:addstr("New Mexico");break; case 31:addstr("New York");break; case 32:addstr("North Carolina");break; case 33:addstr("North Dakota");break; case 34:addstr("Ohio");break; case 35:addstr("Oklahoma");break; case 36:addstr("Oregon");break; case 37:addstr("Pennsylvania");break; case 38:addstr("Rhode Island");break; case 39:addstr("South Carolina");break; case 40:addstr("South Dakota");break; case 41:addstr("Tennessee");break; case 42:addstr("Texas");break; case 43:addstr("Utah");break; case 44:addstr("Vermont");break; case 45:addstr("Virginia");break; case 46:addstr("Washington");break; case 47:addstr("West Virginia");break; case 48:addstr("Wisconsin");break; case 49:addstr("Wyoming");break; default:strcat(str,"Hohoq");break; // The Areas of My Expertise -- John Hodgman } } /* endgame - converts an integer into a roman numeral for amendments */ void romannumeral(int amendnum) { while(amendnum>=1000) { amendnum-=1000; addch('M'); } if(amendnum>=900) { amendnum-=900; addch('C'); addch('M'); } if(amendnum>=500) { amendnum-=500; addch('D'); } if(amendnum>=400) { amendnum-=400; addch('C'); addch('D'); } while(amendnum>=100) { amendnum-=100; addch('C'); } if(amendnum>=90) { amendnum-=90; addch('X'); addch('C'); } if(amendnum>=50) { amendnum-=50; addch('L'); } if(amendnum>=40) { amendnum-=40; addch('X'); addch('L'); } while(amendnum>=10) { amendnum-=10; addch('X'); } if(amendnum>=9) { amendnum-=9; addch('I'); addch('X'); } if(amendnum>=5) { amendnum-=5; addch('V'); } if(amendnum>=4) { amendnum-=4; addch('I'); addch('V'); } while(amendnum>=1) { amendnum-=1; addch('I'); } }===== Need to Know Basis ===== You can assign individual sleepers a specific Drop Point and/or Safehouse to contact, as well as their Recruiter. This means that if the chain of communication is broken, they can still contact the LCS - however, it also means that if they are compromised, the locations they're aware of can also be compromised or targeted. Drop Points: If a Drop Point is compromised, the police will remove anything currently in the Drop Point, and conduct stakeouts for a period of time to see who makes use of it, possibly arresting other members or sleepers in the process. The secrecy of the drop point is permanently compromised (-1% secrecy), and you should abandon it as soon as you figure this out. Safehouses: If a Safehouse is compromised, the police will raid the safehouse as soon as they obtain warrants, attempting to arrest anyone on the premises. The secrecy of the safehouse is permanently compromised (-1% secrecy), and you should probably abandon it as soon as you figure it out. Sleepers: If a sleeper's position is compromised but they manage to escape arrest or are simply forced out of their job, they will go to their assigned Safehouse and wait for future orders, or to the Homeless Shelter if they have no assigned safehouse. ===== Loyalty of the Liberals ===== Maintaining loyalty amongst your revolutionaries is of vital importance - after all, disgruntled rebels may wander off, form splinter groups, or even turn state's evidence against you! As a rule, the better the liberal quality of life and the more confident they are in their cause, the better a liberal's loyalty. Forcing your rebels to live at the homeless shelter, keeping them locked up in jail, and failing to protect or support them can take a nasty toll on loyalty. On the other hand, saving them when they're in a bind can be very inspirational. ===== Government Structure ===== ==== House of Representatives ==== The House of Representatives is a body of people appointed on a population basis and is designed to represent the interests of the people. Each state in the U.S.A. receives a certain number of representatives proportional to its population; California and New York are the most populous states and have the most representatives. All 435 members of the House of Representatives are up for re-election every two years, so the House of Representatives tends to directly represent the current slant of the population from Liberal to Conservative. It is considered the “lower house” of the Congress. ==== Senate ==== The Senate is an elected body designed to represent the interests of the economy and the States themselves; Senators. Each state receives equal representation in the Senate, with two Senators per state. (The District of Columbia is not considered a state and is not represented in the Senate.) Because Senators are elected to six year terms, with one-third of the senate up for re-election every two years, the Senate is generally less responsive to the latest shifts in opinion among the population as a whole. The Senate is considered the “upper house” of the Congress. ==== Supreme Court ==== The Supreme Court is a body of judges who serve until they die, resign, retire, or are forced to resign by scandal. New justices of the Supreme Court are appointed by the President with the approval of the Senate, but existing justices cannot be removed from the Supreme Court except at their own discretion or by impeachment. The Supreme Court interprets the supreme law of the United States, the Constitution and its amendments. It has the power to review and overturn laws if the court determines that they violate the Constitution. The Supreme Court also serves as the highest court of appeals in both criminal and civil cases. ==== President and Cabinet ==== The Executive branch of government is made up of the President and Vice President, and the Cabinet and other offices under the President. The President is both the head of state and the head of government, with the responsibility to enforce laws passed by the House and Senate and to serve as the commander-in-chief of the armed forces. The President signs or vetos all laws passed by the Senate and House. The Vice President serves to advise the President and can break ties in the Senate, but is otherwise mostly powerless. The President and Vice President are elected together by popular vote every four years. The President is limited to a maximum of two terms. The Cabinet is composed of a number of advisors and civilian officers appointed by the President and confirmed or rejected by the Senate. The Secretary of State is the highest ranked member of the Cabinet, and is responsible for advising and executing the President's foreign policy. If both the President and Vice President were to die, the Secretary of State would be be next in line to be President. The Attorney General is the head of the Department of Justice, and serves as the chief law enforcement officer and the President's top legal advisor. In cases of exceptional importance, the Attorney General will personally represent the Government as its lawyer before the Supreme Court. ====== How Laws are Changed ====== ===== Propositions of Congress ===== The House and Senate must both pass legislation before it can become law, and then it must be signed by the President. If the President vetos the law, it can be forced into law only if 2/3 of the Senate votes to overturn the veto, and is otherwise defeated. ===== Propositions before Voters ===== In Liberal Crime Squad, some laws are put before the public instead of the House and Senate. If voters approve the passage of a law, it cannot be vetoed by the President. ===== Decisions of the Supreme Court ===== The Supreme Court cannot make laws, but it can overturn laws and alter its legal interpretation of the Constitution. These legal decisions by the court have significant power to alter the face of the law. ===== Amendments to the Constitution ===== The Constitution of the United States is the supreme law of the land, with power over other laws, treaties, and even the structure of government itself. It is very difficult to pass an amendment to the Constitution, but once an amendment is passed, it is equally difficult to repeal it. Amendments to the Constitution may be proposed by either a 2/3 majority of both the House and the Senate or by a special Constitutional Convention called by the legislatures of 34 of the 50 States. Once an amendment has been proposed, it must be independently ratified by 38 of the 50 States in order for it to take effect. If the required number of States ratify the amendment, it takes effect for the entire country, even for States that have not ratified the Amendment. If the required number of States do not ratify the amendment, it does not take effect anywhere. In Liberal Crime Squad, you may lose the game by allowing an Arch-Conservative Amendment to be passed, thereby allowing Conservatives to permanently remake the country in their image. ===== Miscellaneous notes ===== - Public interest influences the course of elections, especially Presidential elections, as issues with high interest tend to be important issues for voters. Senators and Representatives take a generally broader swath of issues, so it's possible to see the President elected as a Liberal and see the Conservatives make major strides in Congress, just based on the combination of issues and public interest. - The LCS will never be liked by a higher proportion of people than generally advocate Liberal policies. As a result, if you seek higher LCS approval, you must first change the opinions of the populace on the political issues of the day. - When the country's political system is mostly liberal, the Liberal Party is renamed The Progressive Elite Social Liberal Party. When the country's political system is mostly conservative, the Conservative Party is renamed The $$ U.S.A. Flag Eagle $$ Conservative Party. ===== Arrest and Detainment ===== If your Liberals are arrested by the police, they will be taken the police station and placed in the police lock-up. At the end of the month, they will transferred to the courthouse lock-up for trial. During either of these two months, a properly timed raid on the location your Liberal is being held at can free your Liberals from the clutches of the justice system. On the site, must find find the lock-up and have sufficient security skill to free them. If you do not break your Liberals out, the case will proceed to trial. ===== Sweatshop Workers ===== Remember that arrested Sweatshop Workers will be treated differently than other Liberals in most circumstances; when the “Immigration” agenda is rated C, M, or L, after they have been processed by the police, they will be sent to Immigration Services (as opposed to being sent to the courthouse) and then immediately afterwards back to their home country. This effectively removes them from the game. If Immigration is rated as a C+ issue, at the same time Death Penalty is rated C+, then these Liberals will be immediately executed when arrested. If Immigration is rated L+, they will not be deported and will be treated as any other squad member. Trial Sleepers You can improve your chances of getting away with your Liberal crimes by placing strategic sleepers in the Justice system before ever getting to this stage. Sleeper Lawyer Having a sleeper lawyer allows you to ask them to work your defense for a mere $100. While sleeper lawyers begin somewhat weaker than the ace liberal attorney, they are stronger than court-appointed attorneys, and much cheaper. Additionally, the more you use your sleeper, the more experienced they will become. Sleeper Judge You don't get to pick your judge, but if you have a sleeper judge, you might get lucky. It takes 4 sleeper judges to guarantee your case will be heard by a sleeper. Having the judge over your case be a sleeper is a significant advantage. A sleeper judge will have the jury nicely predisposed toward acquittal, will cripple the prosecution's case by sustaining objections against their key evidence and witnesses, and if the jury still votes to convict, a sleeper judge will always be relatively lenient in sentencing. Charges Before the trial begins proper, you will be read off a list of the charges against your Liberal, so that you can determine how good your chances are and what the stakes are. Mass murder will be significantly harder to defend than disturbing the peace, so select your defense appropriately. Additionally at this time, you will be notified if any former Liberal Crime Squad members have agreed to testify against your Liberal. These key witnesses can strengthen the prosecution significantly, and signify that you are facing an unusually difficult case. Jury Selection At the start of the trial the jury will be selected. The political leanings of the nation will affect the leanings of the jury. If you are fortunate, it will be Liberal. If you are unfortunate, it will be Conservative. The more favorable the jury is to your political alignment, the more they will want to believe your defense. Prosecution The strength of the prosecution is determined primarily by the number and type of charges against your Liberal. The more “scary” the charges, the more the Prosecution can exploit them. With the same amount of evidence, they can better get a conviction of terrorism than prostitution. Confessions from former LCS members will also enhance the prosecution. Be careful if you have a lot of charges against you, as not only will they make for a better case, but the government will tend to hire a better prosecutor to argue it. Defense You will have the opportunity to select your defense after the charges are listed. While the defense does not present its arguments until after the jury selection and prosecution, you must choose your strategy now. Court-appointed attorney The court-appointed attorney is a public servant happy to help you plan your defense. This is not the best way to beat the system, but if you don't have any better options, this is the way to go. Defend yourself You may choose to have your Liberal decline to be represented by an attorney and choose to defend herself in court. This is an abysmally bad decision if your Liberal has no knowledge of the law and is unpersuasive, but a skilled Liberal can pull this off gracefully. Plead guilty If you are facing overwhelming odds and a hostile judge, a confession and guilty plea will not prevent a trip to prison, but it may soften the judge enough to get a more lenient sentence. Pay $5000 to hire an ace Liberal attorney The ace Liberal attorney is the best of the best, able to guarantee an impressive showing and even a jury stacked in your favor. The only catch is the cost and that pesky risk of attracting the ace attorney's evil arch-rival prosecutor from hell. Pay $100 to hire a sleeper attorney A bit of nominal expense will allow you to tap one of your own sleepers to mount the defense. Your sleeper will perform based on his or her law and persuasion skills, and has the potential to gain or lose juice based on the outcome of the trial. Verdict Acquittal If the defense is strong enough, your Liberal may be acquitted on all charges and allowed to go free. Congratulations! You now have a clean slate to promptly dirty up with more crimes. Hung jury Rather than acquittal, there is a small chance that the jury will not be able to come to an agreement. If this occurs, the prosecution may decide to try again next month, in which case your Liberal will be held at the courthouse for another month, and the trial repeated. If you're lucky, the government will decline to have the case retried, and you will get to go free as if acquitted. Conviction If you don't manage to persuade the jury of your Liberal's innocence, or decide to plead guilty, your Liberal will be convicted and sentenced. Sentencing Sentencing depends on the number and severity of the crimes, and the current laws of the country. If sentenced to time in prison, your Liberal will be transferred to the Prison at the edge of town. If you want to get a clean slate with that Liberal, you'll have to wait until they are released. Otherwise you can raid the prison to try to free them. Life sentence If your Liberal is sentenced to one or more Life terms in prison, you must free them with a prison raid or they will never be released. Death sentence Depending on how much Conservatism is clouding the country, and how severe the crimes, your Liberal may be sentenced to execution. If this happens, you will have three months to break them out of prison before they are killed. Lenience It is possible for the judge to decide to be lenient in sentencing. A lenient judge will reduce the amount of jail time, number of consecutive life sentences, or even a death sentence to life. Sleeper judges are always lenient. Post-Trial The prison is where Liberals who have been convicted and sentenced are sent. Aside from breaking your own people out of jail, you can also recruit prison guards and prisoners here. If you were lucky enough to be acquitted, your Liberal will instead end up at the homeless shelter, free and ready for new orders.
===== Law References ===== ==== Women's Rights ==== In an Arch-Conservative society, women are subordinate to their fathers and husbands and while employed restricted to menial jobs. In an Elite Liberal society, gender equality is universally respected.
Level | Description |
---|---|
C++ | Women have been stripped of the right to vote. |
C+ | Women are regularly treated as second-class citizens. |
C | Non-discrimination laws do not apply to gender. |
M | Women are nominally equal under law. |
L | Women have substantial recourse against discrimination. |
L+ | Gender equality is universally respected. |
Level | Description |
---|---|
C++ | Segregation has been reintroduced. |
C+ | Racial discrimination is prohibited in name only. |
C | Civil rights laws are inconsistently enforced. |
M | Pervasive racial inequality exists. |
L | Affirmative action is in place to counteract discrimination. |
L+ | Racial equality is guaranteed and vigorously enforced. |
Level | Description |
---|---|
C++ | Recreational drug use is punishable by death, and its discussion is a felony. |
C+ | Violent criminals are released to make room for drug offenders. |
C | Prisons are filled with the targets of a war on drugs. |
M | Recreational drugs are prohibited unless medically prescribed. |
L | Marijuana is regulated and taxed. |
L+ | Recreational drugs are regulated and taxed. |
Level | Description |
---|---|
C++ | Border guards shoot suspected foreigners on sight. |
C+ | Immigration is illegal, and noncitizens are deported at gunpoint. |
C | The military has been deployed to the borders to slow immigration. |
M | Great expense is taken to slow immigration, without success. |
L | The government works to accommodate potential immigrants. |
L+ | Immigration is unregulated. |
Level | Description |
---|---|
C++ | The world derisively refers to the country as “Jesusland”. |
C+ | Encouraging religious faith is a major goal of public policy. |
C | Public schools include organized prayer and study of creation beliefs. |
M | Religious charities and private schools may compete for public funding. |
L | Government is prohibited from supporting religious organizations. |
L+ | Purely faith-based viewpoints are irrelevant to public policy. |
Level | Description |
---|---|
C++ | Political positions are regularly bought and sold by corporate and political entities. |
C+ | Virtually no ethics restrictions exist on political officeholders. |
C | Elections are mostly unregulated, but basic ethics restrictions are in place. |
M | Moderate campaign finance reform is implemented. |
L | Election financing is transparent and well-regulated. |
L+ | Election expenses are publicly funded, and voting is by ranked list. |
Level | Description |
---|---|
C++ | The massive military is a tool of political oppression. |
C+ | Ballooning military boondoggles are utterly out of control. |
C | Massive investment is put into the military. |
M | Military spending is growing each year. |
L | Military strength is not a major priority. |
L+ | The military has been weakened significantly. |
Level | Description |
---|
Level | Description |
---|---|
C++ | There are no taxes, yet most people have no money. |
C+ | The tax code is a nightmare designed to maintain class structure. |
C | A flat tax is in effect. |
M | Taxes are moderate, and the code has loop-holes. |
L | Taxes are very high and steeply graded. |
L+ | Rich people are virtually unheard of, due to taxation. |
Poll | X% were against cutting taxes |
Level | Description |
---|
Level | Description |
---|---|
C++ | All forms of experimentation on lower-class individuals are encouraged. |
C+ | Animals are things of inferior existence. |
C | Animal research is lightly regulated. |
M | Animal research is moderately regulated. |
L | Animal research is stiffly regulated. |
L+ | Animals are people too. |
Poll | X% deplored animal research |
Level | Description |
---|
Level | Description |
---|---|
C++ | Files on each citizen are easily accessible to corporations. |
C+ | Any corporation requesting private information is granted access. |
C | Privacy laws are weak. |
M | Privacy laws are moderate. |
L | Privacy laws are strong. |
L+ | Individual privacy is sacred. |
Poll | X% thought the intelligence community invades privacy |
Level | Description |
---|---|
C++ | Poor criminals receive mandatory death sentences. |
C+ | People can be put to death for minor offenses. |
C | The death penalty is actively enforced in many states. |
M | The death penalty is in effect but under scrutiny. |
L | The death penalty is not permitted in many circumstances. |
L+ | The death penalty is considered barbaric and never practiced. |
Poll | X% opposed the death penalty |
Level | Description |
---|---|
C++ | Nuclear power plants are ubiquitous. |
C+ | Nuclear power is proliferating with no controls. |
C | Nuclear power is a preferred energy source. |
M | Nuclear power is often an energy source. |
L | Nuclear power is intensely regulated and seldom used. |
L+ | Nuclear power is illegal. |
Poll | X% were terrified of nuclear power |
Level | Description |
---|
Level | Description |
---|---|
C++ | The lower classes are regularly farmed out to corporations like beasts. |
C+ | There is no weekend and children are forced to work. |
C | Working conditions are miserable and the minimum wage is low. |
M | Workers still require some benefits. |
L | Workers are fairly compensated and have benefits. |
L+ | There are universal workers' rights and high minimum wages. |
Level | Description |
---|---|
C++ | Homosexuals are executed regularly. |
C+ | Homosexuals are routinely persecuted with no recourse. |
C | Homosexuals are not tolerated. |
M | Homosexuals are grudgingly tolerated but have few equal rights. |
L | Homosexuals have many rights shared by heterosexuals. |
L+ | Homosexuals have equal rights. |
Poll | X% were in favor of equal rights for homosexuals. |
Level | Description |
---|---|
C++ | Corporations define the laws within their jurisdictions. |
C+ | Corporations essentially run the country in a feudal system. |
C | Corporate culture is corrupt and there is a great disparity in wages. |
M | Corporations are moderately regulated, although wages are still unfair. |
L | Corporations are stiffly regulated, and executives are fairly compensated. |
L+ | Corporations are subject to intense regulation, and there is a maximum wage law. |
Level | Description |
---|---|
C++ | Unacceptable speech is a capital crime. |
C+ | Armored squads are tasked with suppressing unacceptable speech. |
C | Some individuals are harassed because of their speech. |
M | Free speech is tolerated. |
L | Free speech is encouraged. |
L+ | Free speech is universally supported. |
Level | Description |
---|---|
C++ | Images or words describing flag burning are considered a crime on par with treason. |
C+ | Burning the flag is a crime on par with murder. |
C | Burning the flag is a felony. |
M | Flag-burning is a misdemeanor. |
L | Flag-burning is legal but stigmatized. |
L+ | Flag-burning is legal. |
Level | Description |
---|---|
C++ | Gangs of young children carrying AK-47s roam the streets. |
C+ | Machine guns can be bought and sold freely. |
C | Military weapons are banned, but similar-looking guns are available. |
M | A comprehensive ban on military-style weapons is in effect. |
L | Most guns cannot be sold to anyone outside of law enforcement. |
L+ | It is illegal to buy, sell, or carry a gun in public. |
Level | Description |
---|---|
C++ | Professional medical treatment is reserved for corporate executives only, and use of pharmaceuticals by non-corporate entities is considered illegal drug use. |
C+ | Professional medical treatment is unavailable for the lower classes, and prohibitively expensive for most others. |
C | Quality of medical treatment scales sharply with wealth level. |
M | Medical treatment requires significant wealth or health insurance, but is reasonably high-quality. |
L | Free clinics are available to treat the poor at no cost. |
L+ | Health care is government-funded and universally available for all citizens at no cost. |
Level | Description |
---|---|
C++ | Education is expensive and only accessible to the wealthy. |
C+ | Quality education is provided only to those who can afford tuition fees, and the average citizen is poorly educated. |
C | The public education system is routinely underfunded and educational quality suffers as a result. |
M | Public education is well funded and scholarships exist for those interested in higher learning. |
L | The average citizen is well-educated and college education is easily achievable. |
L+ | Education is easily accessible even at college levels, and the average citizen is highly intelligent. |
Level | Description |
---|---|
C++ | Copyright infringement is considered a major criminal act equivalent to murder, and is regularly prosecuted by the government on behalf of corporations. |
C+ | Copyright infringement is considered a minor criminal act equivalent to larceny, and is regularly prosecuted by the government on behalf of corporations. |
C | Corporations license ideas and concepts into perpetuity and routinely file civil lawsuits against individuals. |
M | Corporations regularly restrict use of ideas and concepts through copyrights and patents. |
L | Newly created works are temporarily exclusive to the patent maker before falling into public domain. |
L+ | Creative works are considered a free commodity that can be shared and distributed without penalty. |
Level | Description |
---|---|
C++ | Cameras are routinely hidden throughout public areas, and people's movements are meticulously tracked and analyzed. |
C+ | Cameras are hidden throughout public areas, including in 'private' areas such as public restrooms and changing areas. |
C | Cameras are routinely mounted in public areas to record and monitor people's activities without their knowledge. |
M | Cameras are typically mounted in visible public areas such as on traffic lights or street corners, ostensibly for public safety only. |
L | Cameras are generally only mounted in areas where there is a specific need, such as in high-traffic areas to report on traffic flow. |
L+ | The government does not maintain cameras in public places. |
Level | Description |
---|---|
C++ | The only sites people can visit on the Internet are those that glorify the current government or corporate regime. |
C+ | Government and corporate interests dictate what can and cannot be viewed on the Internet. |
C | Network carriers routinely block or limit traffic to unapproved applications, services, equipment, and sites. |
M | Network carriers may restrict traffic under certain circumstances, but require a court order to legally do so. |
L | Network carriers are required to treat all customers as equals when it comes to traffic delivery. |
L+ | Network carriers act as mere conveyors of information and are not allowed to monitor or limit the flow of information in any way. |
View | Description |
---|---|
X% were critical of the police | |
X% wanted stronger measures to prevent torture | |
X% believed in unfettered free speech | |
X% abhorred genetically altered food products | |
X% were for the appointment of Liberal justices | |
X% would boycott companies that used sweatshops | |
X% thought industry should lower pollution | |
X% were disgusted by corporate malfeasance | |
X% believed that CEO salaries are too great | |
X% favored doing more for gender equality | |
X% felt more work was needed for racial equality | |
X% are concerned about gun violence | |
X% supported legalizing marijuana | |
X% condemned unnecessary immigration regulations [if L or higher] OR … wanted amnesty for illegal immigrants | |
X% opposed increasing military spending |
Issue | Description |
---|---|
Liberators - Awareness | … respected the power of the Liberators |
Liberators - Respect | … of these held the Liberators in high regard |
Guardians - Awareness | … were aware of the Guardians of America |
Guardians - Respect | … of these held the Guardians of America in contempt |
Prisons | … wanted to end prisoner abuse and torture |
AM Radio | … do not like AM radio |
Cable News | … have a negative opinion of cable news programs |
Political Violence | … thought political violence was justified |