import { ArmorStat } from "./enum/armor-stat" ; import { ModOrAbility } from "./enum/modOrAbility" ; import { EnumDictionary } from "./types/EnumDictionary" ; import { CharacterClass } from "./enum/character-Class" ; import { MAXIMUM_STAT_MOD_AMOUNT } from "./constants" ; import { DestinyEnergyType } from "bungie-api-ts/destiny2" ; import { ArmorSlot } from "./enum/armor-slot" ; export function getDefaultStatDict < T > ( value ) { return { [ ArmorStat . Mobility ] : value , [ ArmorStat . Resilience ] : value , [ ArmorStat . Recovery ] : value , [ ArmorStat . Discipline ] : value , [ ArmorStat . Intellect ] : value , [ ArmorStat . Strength ] : value } ; } export class Configuration { characterClass : CharacterClass = CharacterClass . Titan ; disabledItems : string [ ] = [ ] ; minimumStatTier : EnumDictionary < ArmorStat , number > = { [ ArmorStat . Mobility ] : 1 , [ ArmorStat . Resilience ] : 1 , [ ArmorStat . Recovery ] : 1 , [ ArmorStat . Discipline ] : 1 , [ ArmorStat . Intellect ] : 1 , [ ArmorStat . Strength ] : 1 } ; maximumStatMods : number = 5 ; assumeLegendariesMasterworked = true ; assumeExoticsMasterworked = true ; assumeClassItemMasterworked = true ; onlyUseMasterworkedItems = false ; limitParsedResults = true ; tryLimitWastedStats = false ; onlyShowResultsWithNoWastedStats = false ; showWastedStatsColumn = false ; enabledMods : ModOrAbility [ ] = [ ] ; selectedExoticHash : number = 0 ; fixedArmorAffinities : EnumDictionary < ArmorSlot , DestinyEnergyType > = { [ ArmorSlot . ArmorSlotHelmet ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotGauntlet ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotChest ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotLegs ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotClass ] : DestinyEnergyType . Any , } ; ignoreArmorAffinitiesOnMasterworkedItems : boolean = false ; static buildEmptyConfiguration ( ) { return { enabledMods : [ ] , disabledItems : [ ] , ignoreArmorAffinitiesOnMasterworkedItems : false , maximumStatMods : MAXIMUM_STAT_MOD_AMOUNT , onlyUseMasterworkedItems : false , assumeLegendariesMasterworked : true , assumeExoticsMasterworked : true , assumeClassItemMasterworked : true , limitParsedResults : true , tryLimitWastedStats : true , onlyShowResultsWithNoWastedStats : false , showWastedStatsColumn : false , characterClass : CharacterClass . Titan , selectedExoticHash : 0 , fixedArmorAffinities : { [ ArmorSlot . ArmorSlotHelmet ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotGauntlet ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotChest ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotLegs ] : DestinyEnergyType . Any , [ ArmorSlot . ArmorSlotClass ] : DestinyEnergyType . Any , } , minimumStatTier : { [ ArmorStat . Mobility ] : 1 , [ ArmorStat . Resilience ] : 1 , [ ArmorStat . Recovery ] : 1 , [ ArmorStat . Discipline ] : 1 , [ ArmorStat . Intellect ] : 1 , [ ArmorStat . Strength ] : 1 } } ; } }