diff options
author | Raphael Langella <raphael.langella@gmail.com> | 2013-08-16 23:12:28 +0200 |
---|---|---|
committer | Raphael Langella <raphael.langella@gmail.com> | 2013-08-16 23:19:42 +0200 |
commit | c56f7848c24e60f938bec429afc467bfb06599a6 (patch) | |
tree | bb5ac33403f5c584554b7f0dcf61d792e3970fc1 /crawl-ref/source/spl-transloc.cc | |
parent | bdd80194b71b95e59c46d35c8bc371a5d616d8c0 (diff) | |
download | crawl-ref-c56f7848c24e60f938bec429afc467bfb06599a6.tar.gz crawl-ref-c56f7848c24e60f938bec429afc467bfb06599a6.zip |
Use a finer scale for magic contamination.
It's now updated every turn instead of every 20 turns and it's almost
deterministic (only the time scaling use randomized rounding).
The bad effects still happen every 20 turns though (just like hell effects and
other stuff).
It has been scaled by 1000. I tried with 100, but I still had some significant
rounding issues, especially with scaling to time_taken.
It shouldn't be possible anymore to gain yellow glow from a single cast of
invisibility even at max power. Although, in theory, it has a slight chance
of putting you just 1 point short of yellow (4999).
Diffstat (limited to 'crawl-ref/source/spl-transloc.cc')
-rw-r--r-- | crawl-ref/source/spl-transloc.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crawl-ref/source/spl-transloc.cc b/crawl-ref/source/spl-transloc.cc index e8829a94ba..d2ae509ef5 100644 --- a/crawl-ref/source/spl-transloc.cc +++ b/crawl-ref/source/spl-transloc.cc @@ -72,7 +72,7 @@ spret_type cast_disjunction(int pow, bool fail) you.duration[DUR_DISJUNCTION] = min(90 + pow / 12, max(you.duration[DUR_DISJUNCTION] + rand, 30 + rand)); - contaminate_player(1, true); + contaminate_player(1000, true); disjunction(); return SPRET_SUCCESS; } @@ -288,7 +288,7 @@ int blink(int pow, bool high_level_controlled_blink, bool wizard_blink, // Controlling teleport contaminates the player. -- bwr if (!wizard_blink) - contaminate_player(1, true); + contaminate_player(1000, true); } } @@ -533,7 +533,7 @@ static bool _teleport_player(bool allow_control, bool new_abyss_area, mpr("Controlled teleport interrupted by HUP signal, " "cancelling teleport.", MSGCH_ERROR); if (!wizard_tele) - contaminate_player(1, true); + contaminate_player(1000, true); return false; } @@ -550,7 +550,7 @@ static bool _teleport_player(bool allow_control, bool new_abyss_area, } } if (!wizard_tele) - contaminate_player(1, true); + contaminate_player(1000, true); return false; } @@ -630,7 +630,7 @@ static bool _teleport_player(bool allow_control, bool new_abyss_area, // Controlling teleport contaminates the player. - bwr if (!wizard_tele) - contaminate_player(1, true); + contaminate_player(1000, true); } // End teleport control. if (you.duration[DUR_CONTROL_TELEPORT]) @@ -1076,7 +1076,7 @@ spret_type cast_semi_controlled_blink(int pow, bool cheap_cancel, bool end_ctele if (you.attempt_escape(2) && _quadrant_blink(bmove.delta, pow)) { // Controlled blink causes glowing. - contaminate_player(1, true); + contaminate_player(1000, true); // End teleport control if this was a random blink upgraded by cTele. if (end_ctele && you.duration[DUR_CONTROL_TELEPORT]) { |