iff --git a/combat.cc b/combat.cc
index 55c5fff2..89889696 100644
--- a/combat.cc
+++ b/combat.cc
@@ -821,6 +821,15 @@ void Combat_schedule::start_strike(
) {
Game_object *opponent = npc->get_target();
bool check_lof = !no_blocking;
+
+ // don't attack but open unlocked doors and containers
+ const Shape_info &op_info = opponent->get_info();
+ const Shape_info::Shape_class op_cls = op_info.get_shape_class();
+ if ((op_info.is_door() && opponent->get_framenum() % 4 < 2) || // unlocked door
+ (op_cls == Shape_info::container && !op_info.is_container_locked())) { // unlocked container
+ opponent->activate();
+ return;}
+
// Get difference in lift.
const Weapon_info *winf = weapon_shape >= 0 ?
ShapeID::get_info(weapon_shape).get_weapon_info() : nullptr;
Comments
0 B
|👍
/👎
0 B
|👍
/👎