diff --git a/src/character.cpp b/src/character.cpp index e38ec0c09bd2..fdecde00b292 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -7641,6 +7641,12 @@ bool Character::invoke_item( item *used, const std::string &method, const tripoi } else if( used->is_bionic() || used->is_deployable() || method == "place_trap" ) { used->detach(); return true; + } else if( used->count_by_charges() ) { + used->charges -= charges_used; + if( used->charges <= 0 ) { + used->detach(); + } + return true; } return false;