refacto with get weapon cost