From 508e46c4ef02687e12a068016b47b14ac5da53b2 Mon Sep 17 00:00:00 2001 From: dolorous Date: Thu, 16 Jul 2009 15:57:22 +0000 Subject: Make the chance of getting an intact enslaved soul from Yred dependent on Invocations skill instead of straight 50%. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10233 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/beam.cc | 4 ++-- crawl-ref/source/religion.cc | 9 ++++++--- crawl-ref/source/religion.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index a8fb1dab6e..831e4cdf88 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -4831,14 +4831,14 @@ mon_resist_type bolt::apply_enchantment_to_monster(monsters* mon) // The monster can be no more than lightly wounded/damaged, // using the formula from monstuff.cc:mons_get_damage_level(). - if (mon->hit_points <= (mon->max_hit_points * 3) / 4) + if (mon->hit_points <= mon->max_hit_points * 3 / 4) { simple_monster_message(mon, "'s soul is too badly injured."); return (MON_OTHER); } obvious_effect = true; - const int duration = (you.skills[SK_INVOCATIONS] * 3) / 4 + 1; + const int duration = you.skills[SK_INVOCATIONS] * 3 / 4 + 1; mon->add_ench(mon_enchant(ENCH_SOUL_RIPE, 0, KC_YOU, duration * 10)); simple_monster_message(mon, "'s soul is now ripe for the taking."); return (MON_AFFECTED); diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 40b9856312..96a7c54f8e 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -5774,9 +5774,9 @@ static bool _tso_holy_revenge() } void yred_make_enslaved_soul(monsters *mon, bool force_hostile, - bool quiet, bool unlimited) + bool quiet, bool unrestricted) { - if (!unlimited) + if (!unrestricted) _yred_souls_disappear(); const int type = mon->type; @@ -5784,7 +5784,10 @@ void yred_make_enslaved_soul(monsters *mon, bool force_hostile, const std::string whose = you.can_see(mon) ? apostrophise(mon->name(DESC_CAP_THE)) : mon->pronoun(PRONOUN_CAP_POSSESSIVE); - const bool twisted = coinflip(); + const bool twisted = + !unrestricted ? x_chance_in_y(you.skills[SK_INVOCATIONS] * 20 / 9 + 20, + 100) + : false; int corps = -1; // If the monster's held in a net, get it out. diff --git a/crawl-ref/source/religion.h b/crawl-ref/source/religion.h index b9d8c297ca..80b26db688 100644 --- a/crawl-ref/source/religion.h +++ b/crawl-ref/source/religion.h @@ -106,7 +106,7 @@ bool beogh_water_walk(); void good_god_holy_attitude_change(monsters *holy); void good_god_holy_fail_attitude_change(monsters *holy); void yred_make_enslaved_soul(monsters *mon, bool force_hostile = false, - bool quiet = false, bool unlimited = false); + bool quiet = false, bool unrestricted = false); void beogh_convert_orc(monsters *orc, bool emergency, bool converted_by_follower = false); bool is_holy_item(const item_def& item); -- cgit v1.2.3-54-g00ecf