summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
authorgammafunk <gammafunk@gmail.com>2014-05-25 10:01:22 -0500
committergammafunk <gammafunk@gmail.com>2014-05-28 12:50:50 -0500
commit4412034ca0e58c61c99658f6d498f3415480dcfa (patch)
tree22ac0e79d4fd247aeda996849a566b2d205a8c96 /crawl-ref/source/beam.cc
parent12a312a68c4aae7d6e8dc669c6b782327fbb9be9 (diff)
downloadcrawl-ref-4412034ca0e58c61c99658f6d498f3415480dcfa.tar.gz
crawl-ref-4412034ca0e58c61c99658f6d498f3415480dcfa.zip
Destroy item destruction
Now that inventory weight and player burden states are gone, item destruction doesn't serve one purpose it clearly accomplished: help prevent the player from being at or next to burden capacity at all times. Outright destruction of strategic consumables encourages more needless inventory management, so we'd like to exclude these from any form of destruction and possibly prevent them from taking up inventory space at all. Denial of tactical consumables, either temporarily or permanently, is something we're going to look into later on, possibly in the release after next, since it can create interesting and generally not frustrating gameplay if done correctly. Needless to say, item destruction wasn't a player favorite and may have a sparsely attended funeral. RIP in peace. For now we aren't adjusting the rate of consumable generation to compensate for no item destruction, but that balancing will happen after play-testing shows how much adjustment is necessary.
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc37
1 files changed, 5 insertions, 32 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 88acaf0fb2..7f44d90121 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1826,7 +1826,7 @@ int mons_adjust_flavoured(monster* mons, bolt &pbolt, int hurted,
const int burn_power = (pbolt.is_explosion) ? 5 :
(pbolt.is_beam) ? 3
: 2;
- mons->expose_to_element(pbolt.flavour, burn_power, true, false);
+ mons->expose_to_element(pbolt.flavour, burn_power, false);
}
return hurted;
@@ -3976,7 +3976,6 @@ void bolt::affect_player()
// FIXME: Lots of duplicated code here (compare handling of
// monsters)
int hurted = 0;
- int burn_power = (is_explosion) ? 5 : (is_beam) ? 3 : 2;
// Roll the damage.
if (name != "flash freeze" || !you.duration[DUR_FROZEN])
@@ -3989,11 +3988,14 @@ void bolt::affect_player()
vector<string> messages;
apply_dmg_funcs(&you, hurted, messages);
+#ifdef DEBUG_DIAGNOSTICS
const int preac = hurted;
+#endif
+
hurted = apply_AC(&you, hurted);
- const int postac = hurted;
#ifdef DEBUG_DIAGNOSTICS
+ const int postac = hurted;
dprf(DIAG_BEAM, "Player damage: rolled=%d; before AC=%d; after AC=%d",
roll, preac, postac);
#endif
@@ -4100,35 +4102,6 @@ void bolt::affect_player()
if (flavour == BEAM_ENSNARE)
was_affected = ensnare(&you) || was_affected;
- // Last resort for characters mainly focusing on AC:
- // Chance of not affecting items if not much damage went through
- if (!x_chance_in_y(postac, random2avg(preac, 2)))
- affects_items = false;
-
- if (affects_items)
- {
- // Simple cases for scroll burns.
- if (flavour == BEAM_LAVA || name.find("hellfire") != string::npos)
- expose_player_to_element(BEAM_LAVA, burn_power);
-
- // More complex (geez..)
- if (flavour == BEAM_FIRE && name != "ball of steam")
- expose_player_to_element(BEAM_FIRE, burn_power);
-
- // Potions exploding.
- if (flavour == BEAM_COLD)
- expose_player_to_element(BEAM_COLD, burn_power, true, false);
-
- if (flavour == BEAM_ELECTRICITY)
- expose_player_to_element(BEAM_ELECTRICITY, burn_power, true, false);
-
- if (flavour == BEAM_MISSILE || flavour == BEAM_FRAG)
- expose_player_to_element(BEAM_FRAG, burn_power, true, false);
-
- // Spore pops.
- if (in_explosion_phase && flavour == BEAM_SPORE)
- expose_player_to_element(BEAM_SPORE, burn_power);
- }
if (origin_spell == SPELL_QUICKSILVER_BOLT)
antimagic();