1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
if (techniques[TECHNIQUE_KILL]) // Kill the Hostage
{
erase();
set_color(COLOR_WHITE,COLOR_BLACK,1);
move(0,0);
addstr("The Final Education of ", gamelog);
addstr(cr->name, gamelog);
addstr(": Day ", gamelog);
char num[20];
itoa(cr->joindays,num,10);
addstr(num, gamelog);
gamelog.newline();
a=NULL;
for(int i=0;i<temppool.size();++i)
{
if((int)LCSrandom(50)<temppool[i]->juice||
LCSrandom(9)+1>=temppool[i]->get_attribute(ATTRIBUTE_HEART,0))
{
a=temppool[i];
break;
}
}
if(a)
{
//delete interrogation information
delete reinterpret_cast<interrogation*>(cr->activity.arg);
set_color(COLOR_MAGENTA,COLOR_BLACK,0);
cr->die();
stat_kills++;
move(y,0);y++;
addstr(a->name, gamelog);
addstr(" executes ", gamelog);
addstr(cr->name, gamelog);
addstr(" by ", gamelog);
switch(LCSrandom(5))
{
case 0:addstr("strangling it to death.", gamelog);break;
case 1:addstr("beating it to death.", gamelog);break;
case 2:addstr("burning photos of Reagan in front of it.", gamelog);break;
case 3:addstr("telling it that taxes have been increased.", gamelog);break;
case 4:addstr("telling it its parents wanted to abort it.", gamelog);break;
}
//show_interrogation_sidebar(cr,a);
refresh();getch();
if(LCSrandom(a->get_attribute(ATTRIBUTE_HEART,false))>LCSrandom(3))
{
gamelog.newline();
set_color(COLOR_GREEN,COLOR_BLACK,1);
move(y,0);y++;
addstr(a->name, gamelog);
addstr(" feels sick to the stomach afterward and ", gamelog);
a->adjust_attribute(ATTRIBUTE_HEART,-1);
move(y,0);y++;
switch(LCSrandom(4))
{
case 0:addstr("throws up in a trash can.", gamelog);break;
case 1:addstr("gets drunk, eventually falling asleep.", gamelog);break;
case 2:addstr("curls up in a ball, crying softly.", gamelog);break;
case 3:addstr("shoots up and collapses in a heap on the floor.", gamelog);break;
}
}
else if(!LCSrandom(3))
{
gamelog.newline();
set_color(COLOR_CYAN,COLOR_BLACK,1);
move(y,0);y++;
addstr(a->name, gamelog);
addstr(" grows colder.", gamelog);
a->adjust_attribute(ATTRIBUTE_WISDOM,+1);
}
gamelog.nextMessage();
}
else
{
set_color(COLOR_YELLOW,COLOR_BLACK,0);
move(y,0);y++;
addstr("There is no one able to get up the nerve to ", gamelog);
move(y,0);y++;
addstr("execute ", gamelog);
addstr(cr->name, gamelog);
addstr(" in cold blood.", gamelog);
gamelog.nextMessage();
//Interrogation will continue as planned, with
//these restrictions:
techniques[TECHNIQUE_TALK]=0; //don't talk to them today
techniques[TECHNIQUE_BEAT]=0; //don't beat them today
techniques[TECHNIQUE_DRUGS]=0; //don't administer drugs
//Food and restraint settings will be applied as normal
}
//show_interrogation_sidebar(cr,a);
refresh();
getch();
set_color(COLOR_WHITE,COLOR_BLACK,0);
move(24,0);
addstr("Press any key to reflect on this.");
refresh();
getch();
if(cr->alive==0)
{
for(int p=0;p<pool.size();p++)
{
if(!pool[p]->alive)continue;
if(pool[p]->activity.type==ACTIVITY_HOSTAGETENDING)
{
if(pool[p]->activity.arg==cr->id)
{
pool[p]->activity.type=ACTIVITY_NONE;
}
}
}
delete[] _attack;
return;
}
}
|