summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/acr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r--crawl-ref/source/acr.cc40
1 files changed, 39 insertions, 1 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 33a5bae395..abb5544e27 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -1228,12 +1228,24 @@ void process_command( command_type cmd )
break;
case CMD_THROW:
+ if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT)
+ {
+ mpr("You can't throw anything in your present form!");
+ flush_input_buffer( FLUSH_ON_FAILURE );
+ break;
+ }
if (Options.tutorial_left)
Options.tut_throw_counter++;
throw_anything();
break;
case CMD_FIRE:
+ if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT)
+ {
+ mpr("You can't fire anything in your present form!");
+ flush_input_buffer( FLUSH_ON_FAILURE );
+ break;
+ }
if (Options.tutorial_left)
Options.tut_throw_counter++;
shoot_thing();
@@ -1253,10 +1265,22 @@ void process_command( command_type cmd )
break;
case CMD_REMOVE_JEWELLERY:
+ if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT)
+ {
+ mpr("You can't do that in your present form!");
+ flush_input_buffer( FLUSH_ON_FAILURE );
+ break;
+ }
remove_ring();
break;
case CMD_WEAR_JEWELLERY:
+ if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT)
+ {
+ mpr("You can't do that in your present form!");
+ flush_input_buffer( FLUSH_ON_FAILURE );
+ break;
+ }
puton_ring(-1, false);
break;
@@ -1333,7 +1357,14 @@ void process_command( command_type cmd )
flush_input_buffer( FLUSH_ON_FAILURE );
break;
}
-
+/*
+ if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT)
+ {
+ mpr("You can't cast spells in your present form!");
+ flush_input_buffer( FLUSH_ON_FAILURE );
+ break;
+ }
+*/
if (Options.tutorial_left)
Options.tut_spell_counter++;
if (!cast_a_spell())
@@ -1756,6 +1787,13 @@ static void decrement_durations()
{
you.duration[DUR_TRANSFORMATION]--;
+ if (you.species == SP_VAMPIRE
+ && you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT
+ && you.duration[DUR_TRANSFORMATION] > 2)
+ {
+ you.duration[DUR_TRANSFORMATION] = 5;
+ }
+
if (you.duration[DUR_TRANSFORMATION] == 10)
{
mpr("Your transformation is almost over.", MSGCH_DURATION);