Add Ability and Bonus in Weapon
Refactor MagicWeaponAbility
Code cleanup
Add mock method