some changes to how attack() and toHit() works