From 0ff044a4c4f112721b7ad73b5e7b1087a72664f9 Mon Sep 17 00:00:00 2001 From: Peter Kruse Date: Thu, 7 Nov 2024 19:29:31 +0100 Subject: [PATCH] update timewalking raid itemlevels --- simc_support/game_data/ItemLevel.py | 45 +++++++++++++++++++++++++---- simc_support/game_data/Trinket.py | 16 +++++++++- 2 files changed, 55 insertions(+), 6 deletions(-) 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,