summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/player.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-28 15:15:21 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-28 15:15:21 +0000
commit9357fd185f60e255c8b876b305f3f31e3b279975 (patch)
treea784e4a29fc68552b65f94a5883a0126848d0190 /crawl-ref/source/player.cc
parentf041f603574aa87804c80067da8dce67d9927b9f (diff)
downloadcrawl-ref-9357fd185f60e255c8b876b305f3f31e3b279975.tar.gz
crawl-ref-9357fd185f60e255c8b876b305f3f31e3b279975.zip
Another mutation commit. Sorry, I couldn't resist.
I'm replacing the (stupid, I agree) "extra eyes" mutation with the more Crawlific "shaggy fur" mutation. It currently doesn't count towards the scales counter, but that could be changed. Also, maybe it could replace one of the scales with a similar AC bonus. Oh, and trolls start out with this at level 1 because I think it fits them. Adding the percentage bonus (rarity 1) and penalty (rarity 9) for mana. Maybe the bonus (+10%, +20%, +30%) should be abolished entirely as David suggested; for now I've left it as a mutation pair. As a third change I'm including the experimental sleepiness mutation that makes you randomly fall asleep. Being hit, loud noises and starving will make you wake up. Again, may break mutations of existing save files. --------------------------------- To answer David's question on balancing (or rather, make everything more complicated, I'm afraid) I've counted mutations in 0.3 and as of this commit, to compare them. Rarity influences the chance a mutation, once randomly chosen, will be considered acceptable, with a chance of rarity/10. Each round of trying to find an acceptable mutation there's a 1/1000 chance of just giving up. In brackets I will list the average probability of a good/bad mutation being chosen in a given round. (The difference to 100 is the chance of having to reroll.) in 0.3: 46 good mutations of average rarity 3.2 (23.72%) 12 bad mutations of average rarity 8 (15.47%) 4 in-between mutations of average rarity 7 (4.51%) (56.3% chance of rerolling) new: 48 good mutations of average rarity 3.1 (21.72%) 14 bad mutations of average rarity 7.6 (15.71%) 6 in-between mutations of average rarity 5 (4.41%) (58.16% chance of rerolling) By in-between mutations I mean ones with advantages and drawbacks, namely weak_flexible, strong_stiff, horns, hooves, talons and paws. (The last four are probably seen as mostly negative by a lot of players due to losing an equipment slot.) Because of the lower rarity of the new mutations (including drifting) the overall chance of _not_ receiving a mutation has slightly increased (1/1000 chance per reroll necessary). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2640 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/player.cc')
-rw-r--r--crawl-ref/source/player.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index a56f8e51a5..68a9b48d8d 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -1099,6 +1099,9 @@ int player_res_cold(bool calc_unid)
// mutations:
rc += you.mutation[MUT_COLD_RESISTANCE];
+
+ if (you.mutation[MUT_SHAGGY_FUR] == 3)
+ rc++;
if (you.duration[DUR_FIRE_SHIELD])
rc -= 2;
@@ -1783,6 +1786,7 @@ int player_AC(void)
AC += 100 * you.mutation[MUT_IRIDESCENT_SCALES];
AC += 100 * you.mutation[MUT_PATTERNED_SCALES];
AC += 100 * you.mutation[MUT_BLUE_SCALES];
+ AC += 100 * you.mutation[MUT_SHAGGY_FUR];
// these gives: +1, +3, +5
if (you.mutation[MUT_GREEN_SCALES] > 0)
@@ -3457,9 +3461,12 @@ void display_char_status()
if (you.duration[DUR_BEHELD])
mpr( "You are beheld." );
+ // how exactly did you get to show the status?
if (you.duration[DUR_PARALYSIS])
mpr( "You are paralysed." );
-
+ if (you.duration[DUR_SLEEP])
+ mpr( "You are asleep." );
+
if (you.duration[DUR_EXHAUSTED])
mpr( "You are exhausted." );
@@ -4750,6 +4757,7 @@ bool confuse_player( int amount, bool resistable )
if (you.duration[DUR_CONF] > old_value)
{
// XXX: which message channel for this message?
+ you.check_awaken(500);
mprf("You are %sconfused.", (old_value > 0) ? "more " : "" );
learned_something_new(TUT_YOU_ENCHANTED);
@@ -5481,7 +5489,7 @@ bool player::cannot_speak() const
if (silenced(x_pos, y_pos))
return (true);
- if (you.duration[DUR_PARALYSIS])
+ if (you.duration[DUR_PARALYSIS]) // we allow talking during sleep ;)
return (true);
// No transform that prevents the player from speaking yet.
@@ -6127,7 +6135,7 @@ void player::moveto(const coord_def &c)
bool player::asleep() const
{
- return duration[DUR_SLEEP] > 0;
+ return (duration[DUR_SLEEP] > 0);
}
bool player::cannot_act() const
@@ -6152,6 +6160,7 @@ void player::put_to_sleep(int)
return;
mpr("You fall asleep.");
+ stop_delay();
you.flash_colour = DARKGREY;
viewwindow(true, false);