@@ -95,7 +95,7 @@ export class BulkTab extends SimTab {
9595 super ( parentElem , simUI , { identifier : 'bulk-tab' , title : i18n . t ( 'bulk_tab.title' ) } ) ;
9696
9797 this . simUI = simUI ;
98- this . playerCanDualWield = this . simUI . player . getPlayerSpec ( ) . canDualWield && ( this . simUI . player . getClass ( ) !== Class . ClassHunter ) ;
98+ this . playerCanDualWield = this . simUI . player . getPlayerSpec ( ) . canDualWield && this . simUI . player . getClass ( ) !== Class . ClassHunter ;
9999 this . playerIsFuryWarrior = this . simUI . player . getSpec ( ) === Spec . SpecFuryWarrior ;
100100
101101 const setupTabBtnRef = ref < HTMLButtonElement > ( ) ;
@@ -482,7 +482,13 @@ export class BulkTab extends SimTab {
482482
483483 const pickerGroup = this . pickerGroups . get ( bulkItemSlot ) ! ;
484484 const allItemOptions : EquippedItem [ ] = Array . from ( pickerGroup . pickers . values ( ) ) . map ( picker => picker . item ) ;
485- all2HWeapons = all2HWeapons . concat ( allItemOptions . filter ( equippedItem => ! [ RangedWeaponType . RangedWeaponTypeUnknown , RangedWeaponType . RangedWeaponTypeWand ] . includes ( equippedItem . item . rangedWeaponType ) || ( equippedItem . item . handType == HandType . HandTypeTwoHand ) ) ) ;
485+ all2HWeapons = all2HWeapons . concat (
486+ allItemOptions . filter (
487+ equippedItem =>
488+ ! [ RangedWeaponType . RangedWeaponTypeUnknown , RangedWeaponType . RangedWeaponTypeWand ] . includes ( equippedItem . item . rangedWeaponType ) ||
489+ equippedItem . item . handType == HandType . HandTypeTwoHand ,
490+ ) ,
491+ ) ;
486492 }
487493
488494 for ( const twoHandWeapon of all2HWeapons ) {
@@ -517,7 +523,9 @@ export class BulkTab extends SimTab {
517523 const oneHandGroup = this . pickerGroups . get ( BulkSimItemSlot . ItemSlotHandWeapon ) ;
518524
519525 if ( oneHandGroup ?. pickers . size ) {
520- const allOneHandWeapons : EquippedItem [ ] = Array . from ( oneHandGroup . pickers . values ( ) ) . map ( picker => picker . item ) . filter ( item => ! all2HWeapons . includes ( item ) ) ;
526+ const allOneHandWeapons : EquippedItem [ ] = Array . from ( oneHandGroup . pickers . values ( ) )
527+ . map ( picker => picker . item )
528+ . filter ( item => ! all2HWeapons . includes ( item ) ) ;
521529
522530 for ( let i = 0 ; i < allOneHandWeapons . length ; i ++ ) {
523531 for ( let j = i ; j < allOneHandWeapons . length ; j ++ ) {
@@ -555,7 +563,10 @@ export class BulkTab extends SimTab {
555563 }
556564
557565 for ( const [ bulkItemSlot , pickerGroup ] of this . pickerGroups . entries ( ) ) {
558- if ( ( pickerGroup . pickers . size == 0 ) || [ BulkSimItemSlot . ItemSlotMainHand , BulkSimItemSlot . ItemSlotOffHand , BulkSimItemSlot . ItemSlotHandWeapon ] . includes ( bulkItemSlot ) ) {
566+ if (
567+ pickerGroup . pickers . size == 0 ||
568+ [ BulkSimItemSlot . ItemSlotMainHand , BulkSimItemSlot . ItemSlotOffHand , BulkSimItemSlot . ItemSlotHandWeapon ] . includes ( bulkItemSlot )
569+ ) {
559570 continue ;
560571 }
561572
@@ -596,10 +607,7 @@ export class BulkTab extends SimTab {
596607
597608 const numOptions : number = pickerGroup . pickers . size ;
598609
599- if (
600- numOptions > 1 &&
601- [ BulkSimItemSlot . ItemSlotFinger , BulkSimItemSlot . ItemSlotTrinket ] . includes ( bulkItemSlot )
602- ) {
610+ if ( numOptions > 1 && [ BulkSimItemSlot . ItemSlotFinger , BulkSimItemSlot . ItemSlotTrinket ] . includes ( bulkItemSlot ) ) {
603611 numCombinations *= binomialCoefficient ( numOptions , 2 ) ;
604612 } else {
605613 numCombinations *= Math . max ( numOptions , 1 ) ;
@@ -787,8 +795,8 @@ export class BulkTab extends SimTab {
787795 updatedGear = updatedGear . withEquippedItem (
788796 itemSlot ,
789797 equippedItemInSlot
790- ? equippedItemInSlot . withItem ( equippedItem . item )
791- : new EquippedItem ( { item : equippedItem . item , challengeMode : challengeModeEnabled } ) ,
798+ ? equippedItemInSlot . withItem ( equippedItem . item ) . withUpgrade ( equippedItem . _upgrade )
799+ : equippedItem . withChallengeMode ( challengeModeEnabled ) ,
792800 this . playerIsFuryWarrior ,
793801 ) ;
794802
@@ -882,7 +890,6 @@ export class BulkTab extends SimTab {
882890 } finally {
883891 this . simUI . player . setGear ( TypedEvent . nextEventID ( ) , this . originalGear ! ) ;
884892 await this . simUI . sim . updateCharacterStats ( TypedEvent . nextEventID ( ) ) ;
885-
886893 this . isRunning = false ;
887894 if ( ! waitAbort ) this . bulkSimButton . disabled = false ;
888895 if ( isAborted ) {
@@ -891,6 +898,7 @@ export class BulkTab extends SimTab {
891898 body : i18n . t ( 'bulk_tab.notifications.bulk_sim_cancelled' ) ,
892899 } ) ;
893900 }
901+ this . simUI . resultsViewer . hideAll ( ) ;
894902 this . isPending = false ;
895903 }
896904 } ) ;
0 commit comments