add attack function wrap