diff options
author | gammafunk <gammafunk@gmail.com> | 2014-05-25 10:01:22 -0500 |
---|---|---|
committer | gammafunk <gammafunk@gmail.com> | 2014-05-28 12:50:50 -0500 |
commit | 4412034ca0e58c61c99658f6d498f3415480dcfa (patch) | |
tree | 22ac0e79d4fd247aeda996849a566b2d205a8c96 /crawl-ref/source/beam.cc | |
parent | 12a312a68c4aae7d6e8dc669c6b782327fbb9be9 (diff) | |
download | crawl-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.cc | 37 |
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(); |