0\r
};\r
\r
-char *killname();\r
-\r
/*\r
* death:\r
* Do something really fun when he dies\r
"killed",\r
"quit",\r
"A total loner",\r
- "left for a date",\r
+ "left for a cuddle",\r
"got the amulet and left"\r
};\r
char scoreline[100];\r
strcpy(score_file, md_getroguedir());\r
\r
if (*score_file)\r
- strcat(score_file,"\\");\r
+ strcat(score_file,"/");\r
\r
strcat(score_file, "rogue36.scr");\r
\r
putchar('n');\r
printf(" %s", killer);\r
}\r
+ else if (scp->sc_flags >= 3)\r
+ {\r
+ printf(" with a");\r
+ killer = killname(scp->sc_monster);\r
+ if (*killer == 'a' || *killer == 'e' || *killer == 'i' ||\r
+ *killer == 'o' || *killer == 'u')\r
+ putchar('n');\r
+ printf(" %s", killer);\r
+ }\r
if (prflags == 1)\r
{\r
printf(" (%s)", scp->sc_login);\r
scp--;\r
}\r
}\r
- else if (prflags >= 3)\r
- {\r
- printf(" with a");\r
- killer = killname(scp->sc_monster);\r
- if (*killer == 'a' || *killer == 'e' || *killer == 'i' ||\r
- *killer == 'o' || *killer == 'u')\r
- putchar('n');\r
- printf(" %s", killer);\r
- }\r
else\r
printf(".\n");\r
}\r
char monster;\r
{\r
clear();\r
- standout();\r
addstr(" \n");\r
addstr(" You escaped from the caverns, but alone. \n");\r
- standend();\r
+ addstr(" \n");\r
addstr("\nYou have joined the elite ranks of those who have escaped the\n");\r
addstr("Cavern of Cuties alive, but failed to meet anyone while there.\n");\r
addstr("You journey home and sell all your loot at a great profit and\n");\r
char monster;\r
{\r
clear();\r
- standout();\r
addstr(" \n");\r
addstr(" You got the amulet and a hot date. \n");\r
- standend();\r
+ addstr(" \n");\r
+ addstr(" @ <3 ");\r
+ addch(monster);\r
total_something(4, monster);\r
}\r
\r
char monster;\r
{\r
clear();\r
- standout();\r
addstr(" \n");\r
addstr(" You got a hot date. \n");\r
- standend();\r
+ addstr(" \n");\r
+ addstr(" @ <3 ");\r
+ addch(monster);\r
total_something(3, monster);\r
}\r
\r
#define ISMULT(type) (type == POTION || type == SCROLL || type == FOOD)\r
#define rndchoice(a) (a[rnd(sizeof(a)/sizeof((a)[0]))])\r
#define hash(i) ((unsigned)(i)*2654435761u)\r
+\r
/*\r
* Things that appear on the screens\r
*/\r
int readchar(WINDOW *win);\r
int md_readchar(WINDOW *win);\r
int wait_for(WINDOW *win, register char ch);\r
+char *killname(register char monst);\r
\r
struct room *roomin();\r
\r
"You catch the %s staring at you out of the corner of eir eye.",
"The %s blushes and waves cautiously.",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name);
+ msg(rndchoice(msgs), killname(tp->t_type));
}
else if (attr <= 0)
{
"The %s tells you to stop it.",
"The %s is sick of your crap.",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name);
+ msg(rndchoice(msgs), killname(tp->t_type));
}
else
{
"The %s acts like it can't hear you.",
"The %s doesn't care.",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name);
+ msg(rndchoice(msgs), killname(tp->t_type));
}
}
}
"The %s ignores %s",
"The %s isn't interested in %s",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name,
- inv_name(op, TRUE));
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
return;
}
else if (liking > 0)
"The %s accepts %s.",
"The %s takes %s.",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name,
- inv_name(op, TRUE));
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
tp->t_stats.s_int += liking * 10;
}
else if (liking < 0)
"The %s breaks %s.",
"The %s hates %s.",
};
- msg(rndchoice(msgs), monsters[tp->t_type - 'A'].m_name,
- inv_name(op, TRUE));
+ msg(rndchoice(msgs), killname(tp->t_type), inv_name(op, TRUE));
tp->t_stats.s_int -= liking * 2;
}
embrace()
{
- // Figure out if the player is near something w/ enough interest.
- // Otherwise, hug something random, and make things worse.
+ register struct thing *tp = NULL;
+ register int liking;
+ register int dx, dy;
+
+ for (dx = -1; dx <= 1; ++dx)
+ {
+ for (dy = -1; dy <= 1; ++dy)
+ {
+ register struct linked_list *mob;
+ if ((mob = find_mons(hero.y + dy, hero.x + dx)))
+ {
+ register struct thing *atp = (struct thing *)ldata(mob);
+ if (!tp || atp->t_stats.s_int > tp->t_stats.s_int)
+ tp = atp;
+ }
+ }
+ }
+
+
+ if (tp == NULL)
+ {
+ msg("You wrap your arms around yourself.");
+ return;
+ }
+ else if (tp->t_stats.s_int < INTERESTED)
+ {
+ if (tp->t_stats.s_int > 0)
+ tp->t_stats.s_int /= 2;
+ else
+ tp->t_stats.s_int--;
+ msg("The %s dodges out of the way.", killname(tp->t_type));
+ return;
+ }
+
if (amulet)
{
- total_winner('K');
+ total_winner(tp->t_type);
}
else
{
- mostly_winner('K');
+ mostly_winner(tp->t_type);
}
}