private static function GetWeaponForAttack($attackType, $nonBroken, $useable)
 {
     $slot = 0;
     switch ($attackType) {
         case BASE_ATTACK:
             $slot = EQUIPMENT_SLOT_MAINHAND;
             break;
         case OFF_ATTACK:
             $slot = EQUIPMENT_SLOT_OFFHAND;
             break;
         case RANGED_ATTACK:
             $slot = EQUIPMENT_SLOT_RANGED;
             break;
         default:
             return null;
     }
     $item = WoW_Characters::GetItem($slot);
     if (!$item || $item->GetProto()->class != ITEM_CLASS_WEAPON) {
         return null;
     }
     if ($useable && !self::CanUseEquippedWeapon($attackType)) {
         return null;
     }
     if ($nonBroken && $item->IsBroken()) {
         return null;
     }
     return $item;
 }