summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monspeak.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-20 12:23:38 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-20 12:23:38 +0000
commit5b618acbca35621d699dc4ba3064f2a3228a5131 (patch)
treed5a68990291723d0252b29dd9193bce34929f50b /crawl-ref/source/monspeak.cc
parent7ca7077ed3e60d71c79c22e07fd0d2491b861ca3 (diff)
downloadcrawl-ref-5b618acbca35621d699dc4ba3064f2a3228a5131.tar.gz
crawl-ref-5b618acbca35621d699dc4ba3064f2a3228a5131.zip
Added throwing nets. These still need work, and thus
are not for 0.3. Obviously. Summary: New item type MI_THROWING_NET. The enchantment of a net describes its state, i.e. whether it's brand-new or almost falling apart (happens at -8). New attribute ATTR_CAUGHT (for monsters ENCH_CAUGHT) that means the victim cannot move and instead struggles against the net until it manages to wriggle out of it (takes a while depending on size) or it is destroyed. Monsters can still use items and spells when trapped. New trap type TRAP_NET that currently is the only source of throwing nets, though Gladiators (and some types of hunters maybe?) should start with a few, and David suggested also allowing the creation of nets for shops. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2020 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/monspeak.cc')
-rw-r--r--crawl-ref/source/monspeak.cc83
1 files changed, 82 insertions, 1 deletions
diff --git a/crawl-ref/source/monspeak.cc b/crawl-ref/source/monspeak.cc
index 49fac6d8d1..8fd4e5e108 100644
--- a/crawl-ref/source/monspeak.cc
+++ b/crawl-ref/source/monspeak.cc
@@ -125,7 +125,7 @@ static bool say_specific_dialogue(const monsters *monster,
return (false);
const bool friendly = (monster->attitude == ATT_FRIENDLY);
-
+
if (mons_is_confused(monster))
return (say_dialogue(
monster,
@@ -373,6 +373,87 @@ bool mons_speaks(const monsters *monster)
}
}
+ else if (monster->has_ench(ENCH_CAUGHT))
+ {
+ if (mons_friendly(monster))
+ {
+ switch(random2(8))
+ {
+ case 0:
+ strcat(info, " says, \"Help me, ");
+ strcat(info, you.your_name);
+ strcat(info, ", please!\"");
+ break;
+ case 1:
+ strcat(info, " cries, \"MUMMY!\"");
+ break;
+ case 2:
+ strcat(info, " shouts, \"");
+ strcat(info, you.your_name);
+ strcat(info, "! Can't you see I need your help?\"");
+ break;
+ case 3:
+ strcat(info, " shouts, \"I could do with a little help here, you know.\"");
+ break;
+ case 4:
+ strcat(info, " mumbles something.");
+ break;
+ case 5:
+ strcat(info, " says, \"Umm, ");
+ strcat(info, you.your_name);
+ strcat(info, "? Help?\"");
+ break;
+ case 6:
+ strcat(info, " cries.");
+ break;
+ case 7:
+ strcat(info, " cries, \"Why me?");
+ break;
+ }
+ }
+ else // unfriendly monsters
+ {
+ switch(random2(12))
+ {
+ case 0:
+ strcat(info, " screams, \"HEY! This isn't fair!\"");
+ break;
+ case 1:
+ strcat(info, " screams, \"Help! Get me out of here!\"");
+ break;
+ case 2:
+ strcat(info, " begs, \"Could you help me? I swear I won't hurt you.\"");
+ break;
+ case 3:
+ strcat(info, " yells, \"LEMME GO!\"");
+ break;
+ case 4:
+ strcat(info, " cries, \"Please! I'll never do it again!\"");
+ break;
+ case 5:
+ strcat(info, " mutters, \"Just what did I do to deserve this?\"");
+ break;
+ case 6:
+ strcat(info, " asks, \"Hey, want to switch places?\"");
+ break;
+ case 7:
+ strcat(info, " cries, \"I hate you!\"");
+ break;
+ case 8:
+ strcat(info, " snarls, \"This is all your fault!\"");
+ break;
+ case 9:
+ strcat(info, " says, \"I meant to do this, just so you know.\"");
+ break;
+ case 10:
+ strcat(info, " shouts, \"This is all a huge misunderstanding!");
+ break;
+ case 11:
+ strcat(info, " cries, \"Why me?\"");
+ break;
+ }
+ }
+ }
else if (monster->behaviour == BEH_FLEE)
{
if (mons_holiness( monster ) == MH_DEMONIC