diff --git a/simc_support/game_data/ItemLevel.py b/simc_support/game_data/ItemLevel.py index ed8eca8..2f60bde 100644 --- a/simc_support/game_data/ItemLevel.py +++ b/simc_support/game_data/ItemLevel.py @@ -96,6 +96,11 @@ def _tww_season_1_upgrade_range(upgrade_level: int) -> typing.List[int]: return _upgrade_range(options, upgrade_level) +def _tww_season_1_timewalking_upgrade_range(upgrade_level: int) -> typing.List[int]: + options = [_tww1_veteran, _tww1_champion, _tww1_hero] + return _upgrade_range(options, upgrade_level) + + def _combine_unify(*itemlevels: typing.List[int]) -> typing.List[int]: combined_list = [] for levels in itemlevels: @@ -362,23 +367,53 @@ def _combine_unify(*itemlevels: typing.List[int]) -> typing.List[int]: Source.TIMEWALKING: { Season.DF_SEASON_1: { InstanceType.DUNGEON: [385], - InstanceType.RAID: [385], + InstanceType.RAID: { + RaidTier.LOW: [385], + RaidTier.MID: [385], + RaidTier.HIGH: [385], + RaidTier.HIGHER: [385], + RaidTier.VERY_RARE: [-1], + }, }, Season.DF_SEASON_2: { InstanceType.DUNGEON: [385], - InstanceType.RAID: _df_s2_champion, + InstanceType.RAID: { + RaidTier.LOW: _df_s2_champion, + RaidTier.MID: _df_s2_champion, + RaidTier.HIGH: _df_s2_champion, + RaidTier.HIGHER: _df_s2_champion, + RaidTier.VERY_RARE: [-1], + }, }, Season.DF_SEASON_3: { InstanceType.DUNGEON: _df_s3_adventurer, - InstanceType.RAID: _df_s3_hero, + InstanceType.RAID: { + RaidTier.LOW: _df_s3_hero, + RaidTier.MID: _df_s3_hero, + RaidTier.HIGH: _df_s3_hero, + RaidTier.HIGHER: _df_s3_hero, + RaidTier.VERY_RARE: [-1], + }, }, Season.DF_SEASON_4: { InstanceType.DUNGEON: _df_s4_adventurer, - InstanceType.RAID: _df_s4_hero, + InstanceType.RAID: { + RaidTier.LOW: _df_s4_hero, + RaidTier.MID: _df_s4_hero, + RaidTier.HIGH: _df_s4_hero, + RaidTier.HIGHER: _df_s4_hero, + RaidTier.VERY_RARE: [-1], + }, }, Season.TWW_SEASON_1: { InstanceType.DUNGEON: [-1], - InstanceType.RAID: [-1], + InstanceType.RAID: { + RaidTier.LOW: _tww_season_1_timewalking_upgrade_range(1), + RaidTier.MID: _tww_season_1_timewalking_upgrade_range(2), + RaidTier.HIGH: _tww_season_1_timewalking_upgrade_range(3), + RaidTier.HIGHER: _tww_season_1_timewalking_upgrade_range(4), + RaidTier.VERY_RARE: [-1], + }, }, }, Source.DELVE: { diff --git a/simc_support/game_data/Trinket.py b/simc_support/game_data/Trinket.py index 5b22114..2732c93 100644 --- a/simc_support/game_data/Trinket.py +++ b/simc_support/game_data/Trinket.py @@ -269,6 +269,12 @@ def source(self) -> Source: InstanceType.RAID: Source.RAID, } + if ( + self.expansion == Expansion.CLASSIC + and self.instance_type == InstanceType.RAID + ): + return Source.TIMEWALKING + if self._trinket.id_journal_instance == 1205: return Source.WORLD_BOSS @@ -345,8 +351,16 @@ def itemlevels(self) -> typing.List[int]: ): levels += ItemLevel.ITEM_LEVELS[self.source][season] # type: ignore - elif self.source == Source.TIMEWALKING: + elif ( + self.source == Source.TIMEWALKING + and self.instance_type == InstanceType.DUNGEON + ): levels = ItemLevel.ITEM_LEVELS[self.source][season][self.instance_type] # type: ignore + elif ( + self.source == Source.TIMEWALKING + and self.instance_type == InstanceType.RAID + ): + levels = ItemLevel.ITEM_LEVELS[self.source][season][self.instance_type][self.raid_tier] # type: ignore elif self.source in ( Source.WORLD_QUEST,