summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordramsey <dramsey@serenity.example.org>2009-09-28 20:57:49 -0500
committerdramsey <dramsey@serenity.example.org>2009-09-28 20:57:49 -0500
commit3525d71174ca5fc1aa8ae417087d77006ea5cd2a (patch)
tree980cb13cb56caf3266d77aa7fb1c8d681d6bcd55
parent42722e92b1d2c4c60e8f9905b61e01eb71b8fcd2 (diff)
downloadcrawl-ref-3525d71174ca5fc1aa8ae417087d77006ea5cd2a.tar.gz
crawl-ref-3525d71174ca5fc1aa8ae417087d77006ea5cd2a.zip
Apply trunk r10543, r10544, r10547, r10572, r10756, and r10757 to 0.5,
and update the changelog.
-rw-r--r--crawl-ref/docs/changelog.txt4
-rw-r--r--crawl-ref/docs/crawl_manual.txt9
-rw-r--r--crawl-ref/source/beam.cc24
-rw-r--r--crawl-ref/source/food.cc3
-rw-r--r--crawl-ref/source/monstuff.cc10
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))