summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-16 15:57:22 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-16 15:57:22 +0000
commit508e46c4ef02687e12a068016b47b14ac5da53b2 (patch)
treec26d7b55f3474a3813fbafa4271b3cb583494e75 /crawl-ref
parenta6e2dbfb706d7fe4c6f384ab1f754f16b53205fb (diff)
downloadcrawl-ref-508e46c4ef02687e12a068016b47b14ac5da53b2.tar.gz
crawl-ref-508e46c4ef02687e12a068016b47b14ac5da53b2.zip
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
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/beam.cc4
-rw-r--r--crawl-ref/source/religion.cc9
-rw-r--r--crawl-ref/source/religion.h2
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);