me parece buena la idea, respecto a eso lo que podria hacerse es, con una funcion similar a lo que io decia, comprara el valor de la funcion con el nivel del que usa el arma, y poner un modificador al thac0 o algo similar, no se si seria asi de 
sencillo, asi sin pensarlo mucho me parece una buena solucion, pero seguramente  tiene sus matices y tal y tal