diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-08-20 12:23:38 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-08-20 12:23:38 +0000 |
commit | 5b618acbca35621d699dc4ba3064f2a3228a5131 (patch) | |
tree | d5a68990291723d0252b29dd9193bce34929f50b /crawl-ref/source/monspeak.cc | |
parent | 7ca7077ed3e60d71c79c22e07fd0d2491b861ca3 (diff) | |
download | crawl-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.cc | 83 |
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 |