diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-28 15:15:21 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-28 15:15:21 +0000 |
commit | 9357fd185f60e255c8b876b305f3f31e3b279975 (patch) | |
tree | a784e4a29fc68552b65f94a5883a0126848d0190 /crawl-ref/source/player.cc | |
parent | f041f603574aa87804c80067da8dce67d9927b9f (diff) | |
download | crawl-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.cc | 15 |
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); |