diff options
Diffstat (limited to 'crawl-ref/source/food.cc')
-rw-r--r-- | crawl-ref/source/food.cc | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index 81da3e2164..cfef6af4aa 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -167,14 +167,6 @@ static bool find_butchering_implement() { mpr("Switching to a butchering implement."); wield_weapon( true, i, false ); - - // Account for the weapon switch...we're doing this here - // since the above switch may reveal information about the - // weapon (curse status, ego type). So even if the - // character fails to or decides not to butcher past this - // point, they have achieved something and there should be - // a cost. - start_delay( DELAY_UNINTERRUPTIBLE, 1 ); return true; } } @@ -233,7 +225,8 @@ bool butchery(void) // It makes more sense that you first find out if there's anything // to butcher, *then* decide to actually butcher it. // The old code did it the other way. - if ( !can_butcher && you.berserker ) { + if ( !can_butcher && you.berserker ) + { mpr ("You are too berserk to search for a butchering knife!"); return (false); } @@ -310,14 +303,19 @@ bool butchery(void) if (you.duration[DUR_PRAYER] && (you.religion == GOD_OKAWARU || you.religion == GOD_MAKHLEB || - you.religion == GOD_TROG)) + you.religion == GOD_TROG)) { offer_corpse(objl); destroy_item(objl); } else { - int work_req = 4 - (++mitm[objl].plus2); + // If we didn't switch weapons, we get in one turn of butchery; + // otherwise the work has to happen in the delay. + if (!wpn_switch) + ++mitm[objl].plus2; + + int work_req = 4 - mitm[objl].plus2; if (work_req < 0) work_req = 0; @@ -329,8 +327,7 @@ bool butchery(void) if (!new_cursed && wpn_switch) start_delay( DELAY_WEAPON_SWAP, 1, old_weapon ); - you.turn_is_over = true; - + you.turn_is_over = true; return true; } |