From 3525d71174ca5fc1aa8ae417087d77006ea5cd2a Mon Sep 17 00:00:00 2001 From: dramsey Date: Mon, 28 Sep 2009 20:57:49 -0500 Subject: Apply trunk r10543, r10544, r10547, r10572, r10756, and r10757 to 0.5, and update the changelog. --- crawl-ref/docs/changelog.txt | 4 ++++ crawl-ref/docs/crawl_manual.txt | 9 +++++++-- crawl-ref/source/beam.cc | 24 ++++++++++++++++++++---- crawl-ref/source/food.cc | 3 +-- crawl-ref/source/monstuff.cc | 10 ++++++++++ 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/crawl-ref/docs/changelog.txt b/crawl-ref/docs/changelog.txt index 79e10dca24..a19c539525 100644 --- a/crawl-ref/docs/changelog.txt +++ b/crawl-ref/docs/changelog.txt @@ -55,6 +55,10 @@ Disclaimer: These are merely the highlights, not an exhaustive list of changes. * Add missing tiles options to the options guide (docs/, '?&' command). * Improve tiles for escape hatches and disturbances in shallow water. * Document tiles lags in tiles_help.txt and in the in-game FAQ ('?Q' command). +* Fixed friendly fire among monsters. +* Fixed insane damage dealt by Pain card. +* Fixed clawed butchering both removing gloves and unwielding weapon. +* Fixed submerged shapeshifters not unsubmerging properly. Stone Soup 0.5.0 (20090612) --------------------------- diff --git a/crawl-ref/docs/crawl_manual.txt b/crawl-ref/docs/crawl_manual.txt index b76f5c56ee..aeaa407330 100644 --- a/crawl-ref/docs/crawl_manual.txt +++ b/crawl-ref/docs/crawl_manual.txt @@ -59,11 +59,12 @@ gameplay and design, to be accessed by pressing '?Q' in the game. While Dungeon Crawl is a strict single player game, you can play on a server together with many others. These are the relevant webpage and -telnet addresses (akrasiac.org is situated in Northern America, while -develz.org is located in Europe): +telnet and ssh addresses (akrasiac.org is situated in Northern America, +while develz.org is located in Europe): http://crawl.akrasiac.org telnet://crawl.akrasiac.org + ssh joshua@crawl.akrasiac.org (password joshua) http://crawl.develz.org telnet://crawl.develz.org:345 @@ -78,6 +79,10 @@ The server carries no guarantees, though it is pretty much always running and no one has lost their save file yet. :) More information is available at the URLs above. +There is also a lively IRC channel dedicated to Crawl at ##crawl on +freenode. You can ask for help and there will always be someone to +supervise your game and give hints if you happen to play on a server. + ------------------------------------------------------------------------ B. STARTING SCREEN diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 567b6c26e9..fd8d0fc2a9 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -3714,12 +3714,28 @@ void bolt::affect_player_enchantment() break; } - mpr("Pain shoots through your body!"); - if (aux_source.empty()) aux_source = "by nerve-wracking pain"; - internal_ouch(damage.roll()); + if (name.find("agony") != std::string::npos) + { + if (you.res_negative_energy()) // Agony has no effect with rN. + { + mpr("You are unaffected."); + break; + } + + mpr("Your body is wracked with pain!"); + + // On the player, Agony acts like single-target torment. + internal_ouch(std::max(0, you.hp / 2 - 1)); + } + else + { + mpr("Pain shoots through your body!"); + + internal_ouch(damage.roll()); + } obvious_effect = true; break; @@ -5056,7 +5072,7 @@ int bolt::range_used_on_hit(const actor* victim) const used = 1; // Assume we didn't hit, after all. - if (is_tracer && used == BEAM_STOP) + if (is_tracer && beam_source == NON_MONSTER && used == BEAM_STOP) return 1; if (in_explosion_phase) diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index f6b33c0e36..caaad7cf26 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -571,8 +571,7 @@ bool butchery(int which_corpse) if (butcher_tool == -1 && gloved_butcher) removed_gloves = true; - - if (you.equip[EQ_WEAPON] != butcher_tool) + else if (you.equip[EQ_WEAPON] != butcher_tool) wpn_switch = true; } diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index f23f6b7c09..6d568b174f 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -2110,6 +2110,7 @@ bool monster_polymorph(monsters *monster, monster_type targetc, mon_enchant neutral = monster->get_ench(ENCH_NEUTRAL); mon_enchant shifter = monster->get_ench(ENCH_GLOWING_SHAPESHIFTER, ENCH_SHAPESHIFTER); + mon_enchant sub = monster->get_ench(ENCH_SUBMERGED); mon_enchant summon = monster->get_ench(ENCH_SUMMON); mon_enchant tp = monster->get_ench(ENCH_TP); @@ -2147,9 +2148,18 @@ bool monster_polymorph(monsters *monster, monster_type targetc, monster->add_ench(charm); monster->add_ench(neutral); monster->add_ench(shifter); + monster->add_ench(sub); monster->add_ench(summon); monster->add_ench(tp); + // Allows for handling of submerged monsters which polymorph into + // monsters that can't submerge on this square. + if (monster->has_ench(ENCH_SUBMERGED) + && !monster_can_submerge(monster, grd(monster->pos()))) + { + monster->del_ench(ENCH_SUBMERGED); + } + monster->ench_countdown = old_ench_countdown; if (mons_class_flag(monster->type, M_INVIS)) -- cgit v1.2.3-54-g00ecf