Description states that this should work either unarmed OR with weapons that will conduct. From the code, it appears that it will ONLY work with unarmed. Description or (hopefully) functionality needs to be changed.
bool shock_them = (has_bionic(“bio_shock”) && power_level >= 2 &&
unarmed_attack() && (!mon || !z->has_flag(MF_ELECTRIC)) &&
I thought i read somewhere that its description meant “unarmed weapons that conduct” which really only means adamantite claws.
It is only meant to work with unarmed and adamantine claws.
If you want to change it, put a parenthesis before unarmed_attack() followed by || and then a quick function to check if the player’s weapon has the steel flag (or was it metal. I can’t seem to remember. Your compiler will know). Top it all off with a closing parenthesis before the && and it should be to your liking.