diff --git a/engine/class_modules/apl/warlock.cpp b/engine/class_modules/apl/warlock.cpp index 9db9a797c1f..49fc95fe85c 100644 --- a/engine/class_modules/apl/warlock.cpp +++ b/engine/class_modules/apl/warlock.cpp @@ -28,7 +28,7 @@ namespace warlock_apl{ switch ( p->specialization() ) { - case WARLOCK_AFFLICTION: lvl90_flask = "flask_of_the_shattered_sun_2"; break; + case WARLOCK_AFFLICTION: lvl90_flask = "flask_of_the_blood_knights_2"; break; case WARLOCK_DEMONOLOGY: lvl90_flask = "flask_of_the_shattered_sun_2"; break; case WARLOCK_DESTRUCTION: lvl90_flask = "flask_of_the_magisters_2"; break; default: break; @@ -75,13 +75,9 @@ void affliction( player_t* p ) action_priority_list_t* variables = p->get_action_priority_list( "variables" ); precombat->add_action( "summon_pet" ); - precombat->add_action( "variable,name=trinket_1_buffs,value=trinket.1.has_use_buff" ); - precombat->add_action( "variable,name=trinket_2_buffs,value=trinket.2.has_use_buff" ); - precombat->add_action( "variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.summon_darkglare.duration=0|cooldown.summon_darkglare.duration%%trinket.1.cooldown.duration=0)" ); - precombat->add_action( "variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.summon_darkglare.duration=0|cooldown.summon_darkglare.duration%%trinket.2.cooldown.duration=0)" ); - precombat->add_action( "variable,name=trinket_1_buff_duration,value=trinket.1.proc.any_dps.duration" ); - precombat->add_action( "variable,name=trinket_2_buff_duration,value=trinket.2.proc.any_dps.duration" ); - precombat->add_action( "variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs|variable.trinket_2_buffs&((trinket.2.cooldown.duration%variable.trinket_2_buff_duration)*(1+0.5*trinket.2.has_buff.intellect)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%variable.trinket_1_buff_duration)*(1+0.5*trinket.1.has_buff.intellect)*(variable.trinket_1_sync))" ); + precombat->add_action( "variable,name=trinket_1_buffs,value=(trinket.1.has_buff.intellect|trinket.1.has_buff.mastery|trinket.1.has_buff.versatility|trinket.1.has_buff.haste|trinket.1.has_buff.crit|trinket.1.is.signet_of_the_priory)&(trinket.1.cooldown.duration>=20)" ); + precombat->add_action( "variable,name=trinket_2_buffs,value=(trinket.2.has_buff.intellect|trinket.2.has_buff.mastery|trinket.2.has_buff.versatility|trinket.2.has_buff.haste|trinket.2.has_buff.crit|trinket.2.is.signet_of_the_priory)&(trinket.2.cooldown.duration>=20)" ); + precombat->add_action( "snapshot_stats" ); precombat->add_action( "grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice" ); precombat->add_action( "seed_of_corruption,if=(hero_tree.soul_harvester&active_enemies>1)|active_enemies>2" ); precombat->add_action( "haunt,if=active_enemies<2|(hero_tree.hellcaller&active_enemies<3)" ); @@ -92,10 +88,6 @@ void affliction( player_t* p ) default_->add_action( "call_action_list,name=items" ); default_->add_action( "call_action_list,name=soul_harvester,if=hero_tree.soul_harvester" ); default_->add_action( "call_action_list,name=hellcaller,if=hero_tree.hellcaller" ); - if ( p->sim->dbc->wowv() < wowv_t( 12, 1, 0 ) ) - { - default_->add_action( "seed_of_corruption,if=talent.nocturnal_yield&active_enemies>1&buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remainsadd_action( "malefic_grasp,chain=1,early_chain_if=buff.nightfall.react,if=pet.darkglare.active" ); default_->add_action( "drain_soul,chain=1,early_chain_if=buff.nightfall.react,interrupt_if=tick_time>0.5" ); default_->add_action( "shadow_bolt" ); @@ -108,10 +100,10 @@ void affliction( player_t* p ) hellcaller->add_action( "call_action_list,name=HC_cleave,if=active_enemies=2" ); hellcaller->add_action( "call_action_list,name=HC_aoe,if=active_enemies>2" ); - items->add_action( "use_item,use_off_gcd=1,slot=trinket1,if=(variable.darkglare_active|!talent.summon_darkglare|variable.trinket_1_will_lose_cast)&(variable.trinket_priority=1|!trinket.2.has_cooldown|(trinket.2.cooldown.remains|variable.trinket_priority=2&cooldown.summon_darkglare.remains>20&!variable.darkglare_active&trinket.2.cooldown.remains=fight_remains)" ); - items->add_action( "use_item,slot=trinket2,if=(variable.darkglare_active|!talent.summon_darkglare|variable.trinket_2_will_lose_cast)&(variable.trinket_priority=2|!trinket.1.has_cooldown|(trinket.1.cooldown.remains|variable.trinket_priority=1&cooldown.summon_darkglare.remains>20&!variable.darkglare_active&trinket.1.cooldown.remains=fight_remains)" ); - items->add_action( "use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains|!variable.trinket_2_buffs)|talent.summon_darkglare&cooldown.summon_darkglare.remains_expected>20&!prev_gcd.1.summon_darkglare|!talent.summon_darkglare)" ); - items->add_action( "use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains|!variable.trinket_1_buffs)|talent.summon_darkglare&cooldown.summon_darkglare.remains_expected>20&!prev_gcd.1.summon_darkglare|!talent.summon_darkglare)" ); + items->add_action( "use_item,name=stormbound_emblem_of_dazar,if=cooldown.summon_darkglare.remains<=2&dot.agony.remains&(dot.corruption.remains|dot.wither.remains)&cooldown.dark_harvest.remains>1" ); + items->add_action( "use_item,name=galactic_gladiators_badge_of_ferocity,if=(buff.malevolence.up|pet.darkglare.active)|fight_remains<20" ); + items->add_action( "use_items,if=(buff.malevolence.up|pet.darkglare.active)|fight_remains<20" ); + items->add_action( "use_item,name=hex_lords_dooming_idol,if=pet.darkglare.active|buff.hex_lords_doom.stack>19|fight_remains<=30" ); items->add_action( "use_item,use_off_gcd=1,slot=main_hand" ); ogcd->add_action( "potion,use_off_gcd=1,if=variable.cds_active|fight_remains<32" ); @@ -120,67 +112,60 @@ void affliction( player_t* p ) ogcd->add_action( "fireblood,use_off_gcd=1,if=variable.cds_active|fight_remains<10" ); ogcd->add_action( "ancestral_call,use_off_gcd=1,if=variable.cds_active|fight_remains<17" ); - SH_st->add_action( "haunt", "Haunt on CD for apex, regardless of Nightfall stacks" ); - SH_st->add_action( "agony,if=remains<3" ); - SH_st->add_action( "corruption,if=remains<3" ); - SH_st->add_action( "dark_harvest,if=soul_shard<3&execute_time<(dot.agony.remainsadd_action( "summon_darkglare,if=cooldown.dark_harvest.remains", "use Dark Harvest only outside Darkglare" ); - SH_st->add_action( "malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); - SH_st->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); - SH_st->add_action( "unstable_affliction,if=soul_shard|buff.shard_instability.react", "SH does not care about saving shards in pure patchwerk. In reality it's good to save 1 shard for cascading calamity" ); + SH_cleave->add_action( "haunt" ); + SH_cleave->add_action( "seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); + SH_cleave->add_action( "dark_harvest" ); + SH_cleave->add_action( "unstable_affliction,cycle_targets=1,if=!ticking&prev.dark_harvest" ); + SH_cleave->add_action( "seed_of_corruption,if=talent.sow_the_seeds" ); + SH_cleave->add_action( "unstable_affliction" ); + SH_cleave->add_action( "agony,target_if=refreshable" ); + SH_cleave->add_action( "summon_darkglare" ); + SH_cleave->add_action( "malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); + SH_cleave->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); SH_aoe->add_action( "haunt" ); SH_aoe->add_action( "seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); - SH_aoe->add_action( "dark_harvest", "Do not care about losing shards in 2+ targets" ); - SH_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agony<5&remains<5", "Maintain ~5 agonies (will be 6 with Shared Agony)" ); + SH_aoe->add_action( "dark_harvest" ); + SH_aoe->add_action( "seed_of_corruption,target_if=!dot.unstable_affliction.ticking&prev.dark_harvest,if=set_bonus.midnight_season_2_4pc&active_enemies<=5" ); + SH_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agony<10&remains<5" ); SH_aoe->add_action( "summon_darkglare" ); - SH_aoe->add_action( "seed_of_corruption,if=talent.sow_the_seeds|(!pet.darkglare.active&active_enemies>9)" ); - SH_aoe->add_action( "unstable_affliction,if=!talent.sow_the_seeds|buff.shard_instability.react" ); + SH_aoe->add_action( "seed_of_corruption" ); SH_aoe->add_action( "agony,target_if=min:remains,if=remainsadd_action( "malefic_grasp,if=pet.darkglare.remainsadd_action( "haunt" ); SH_cleave->add_action( "seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); - SH_cleave->add_action( "unstable_affliction,cycle_targets=1,if=!ticking&cooldown.dark_harvest.remainsadd_action( "dark_harvest", "Do not care about losing shards in 2+ targets" ); + SH_cleave->add_action( "dark_harvest" ); + SH_cleave->add_action( "unstable_affliction,cycle_targets=1,if=!ticking&prev.dark_harvest" ); + SH_cleave->add_action( "seed_of_corruption,if=talent.sow_the_seeds" ); + SH_cleave->add_action( "unstable_affliction" ); SH_cleave->add_action( "agony,target_if=refreshable" ); SH_cleave->add_action( "summon_darkglare" ); SH_cleave->add_action( "malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); SH_cleave->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); - if ( p->sim->dbc->wowv() < wowv_t( 12, 1, 0 ) ) - { - SH_cleave->add_action( "unstable_affliction,if=!talent.patient_zero&!talent.sow_the_seeds&(soul_shard|buff.shard_instability.react)" ); - SH_cleave->add_action( "seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" ); - } - else - { - SH_cleave->add_action( "unstable_affliction,if=!talent.sow_the_seeds&(soul_shard|buff.shard_instability.react)" ); - SH_cleave->add_action( "seed_of_corruption,if=talent.sow_the_seeds" ); - } - HC_st->add_action( "haunt", "Haunt on CD for apex" ); + HC_st->add_action( "haunt" ); HC_st->add_action( "agony,if=refreshable" ); HC_st->add_action( "wither,if=refreshable" ); - HC_st->add_action( "dark_harvest,if=execute_time<(dot.agony.remainsadd_action( "agony,if=dot.agony.remains<20&cooldown.summon_darkglare.remainsadd_action( "summon_darkglare" ); HC_st->add_action( "malevolence" ); HC_st->add_action( "malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); HC_st->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); - HC_st->add_action( "unstable_affliction,if=pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remainsadd_action( "unstable_affliction,if=pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remainsadd_action( "summon_darkglare" ); + HC_st->add_action( "dark_harvest,if=execute_time<(dot.agony.remainsadd_action( "haunt" ); HC_aoe->add_action( "seed_of_corruption,if=(!dot.wither.ticking|dot.wither.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); HC_aoe->add_action( "dark_harvest" ); - HC_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agony<(10+(8*!talent.sow_the_seeds))&remains<5" ); + HC_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agony<(8+(2*talent.sow_the_seeds))&remains<5" ); HC_aoe->add_action( "summon_darkglare" ); HC_aoe->add_action( "malevolence" ); - HC_aoe->add_action( "seed_of_corruption,if=talent.sow_the_seeds|(!pet.darkglare.active&active_enemies>(5+talent.cull_the_weak))" ); - HC_aoe->add_action( "unstable_affliction,if=!talent.sow_the_seeds|buff.shard_instability.react" ); - HC_aoe->add_action( "agony,target_if=min:remains,if=remainsadd_action( "seed_of_corruption,if=talent.sow_the_seeds|active_enemies>5" ); + HC_aoe->add_action( "unstable_affliction" ); + HC_aoe->add_action( "agony,target_if=min:remains,if=remains<5" ); HC_aoe->add_action( "malefic_grasp,if=pet.darkglare.remainsadd_action( "haunt" ); @@ -191,35 +176,16 @@ void affliction( player_t* p ) HC_cleave->add_action( "summon_darkglare" ); HC_cleave->add_action( "malevolence" ); HC_cleave->add_action( "malefic_grasp,if=pet.darkglare.remainssim->dbc->wowv() < wowv_t( 12, 1, 0 ) ) - { - HC_cleave->add_action( "unstable_affliction,if=!talent.sow_the_seeds&!talent.patient_zero&(pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|(talent.cascading_calamity&buff.cascading_calamity.remainsadd_action( "seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" ); - } - else - { - HC_cleave->add_action( "unstable_affliction,if=!talent.sow_the_seeds&(pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|(talent.cascading_calamity&buff.cascading_calamity.remainsadd_action( "seed_of_corruption,if=talent.sow_the_seeds" ); - } + HC_cleave->add_action( "unstable_affliction" ); - if ( p->sim->dbc->wowv() < wowv_t( 12, 1, 0 ) ) - { - end_of_fight->add_action( "unstable_affliction,if=soul_shard&fight_remains<8&(!talent.patient_zero&!talent.sow_the_seeds)" ); - end_of_fight->add_action( "seed_of_corruption,if=soul_shard&fight_remains<8&(talent.patient_zero&talent.sow_the_seeds)" ); - } - else - { - end_of_fight->add_action( "unstable_affliction,if=soul_shard&fight_remains<8&(!talent.sow_the_seeds)" ); - end_of_fight->add_action( "seed_of_corruption,if=soul_shard&fight_remains<8&(talent.sow_the_seeds)" ); - } + end_of_fight->add_action( "unstable_affliction,if=soul_shard&fight_remains<8&active_enemies<3" ); + end_of_fight->add_action( "seed_of_corruption,if=soul_shard&fight_remains<8&active_enemies>2" ); end_of_fight->add_action( "drain_soul,if=buff.nightfall.react&fight_remains<5" ); end_of_fight->add_action( "shadow_bolt,if=buff.nightfall.react&fight_remains<5" ); variables->add_action( "variable,name=cds_active,op=set,value=!talent.summon_darkglare|pet.darkglare.remains" ); variables->add_action( "variable,name=darkglare_active,op=set,value=pet.darkglare.active|(cooldown.summon_darkglare.duration-cooldown.summon_darkglare.remains)<20" ); variables->add_action( "cycling_variable,name=min_agony,op=min,value=dot.agony.remains+(99*!dot.agony.remains)" ); - variables->add_action( "variable,name=trinket_1_will_lose_cast,value=((floor((fight_remains%trinket.1.cooldown.duration)+1)!=floor((fight_remains+(cooldown.summon_darkglare.duration-cooldown.summon_darkglare.remains))%cooldown.summon_darkglare.duration))&(floor((fight_remains%trinket.1.cooldown.duration)+1))!=(floor(((fight_remains-cooldown.summon_darkglare.remains)%trinket.1.cooldown.duration)+1))|((floor((fight_remains%trinket.1.cooldown.duration)+1)=floor((fight_remains+(cooldown.summon_darkglare.duration-cooldown.summon_darkglare.remains))%cooldown.summon_darkglare.duration))&(((fight_remains-cooldown.summon_darkglare.remains%%trinket.1.cooldown.duration)-cooldown.summon_darkglare.remains-variable.trinket_1_buff_duration)>0)))&cooldown.summon_darkglare.remains>20" ); - variables->add_action( "variable,name=trinket_2_will_lose_cast,value=((floor((fight_remains%trinket.2.cooldown.duration)+1)!=floor((fight_remains+(cooldown.summon_darkglare.duration-cooldown.summon_darkglare.remains))%cooldown.summon_darkglare.duration))&(floor((fight_remains%trinket.2.cooldown.duration)+1))!=(floor(((fight_remains-cooldown.summon_darkglare.remains)%trinket.2.cooldown.duration)+1))|((floor((fight_remains%trinket.2.cooldown.duration)+1)=floor((fight_remains+(cooldown.summon_darkglare.duration-cooldown.summon_darkglare.remains))%cooldown.summon_darkglare.duration))&(((fight_remains-cooldown.summon_darkglare.remains%%trinket.2.cooldown.duration)-cooldown.summon_darkglare.remains-variable.trinket_2_buff_duration)>0)))&cooldown.summon_darkglare.remains>20" ); } //affliction_apl_end diff --git a/profiles/generators/MID2/MID2_Generate_Warlock.simc b/profiles/generators/MID2/MID2_Generate_Warlock.simc index 2c2120dc862..54163d149f7 100644 --- a/profiles/generators/MID2/MID2_Generate_Warlock.simc +++ b/profiles/generators/MID2/MID2_Generate_Warlock.simc @@ -1,58 +1,62 @@ -# warlock="MID2_Warlock_Affliction_Soul_Harvester" -# spec=affliction -# level=90 -# race=pandaren -# role=spell -# position=ranged_back -# talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZZ2MzsMzAAjllBGwEMDbBG2GAAAmBAAwMDzMjxwwMmZmxgZmZGAwMwA -# warlock.default_pet=sayaad - -# head=abyssal_immolators_smoldering_flames,id=250042,bonus_id=13575/1808,enchant_id=7961,gem_id=240983,ilevel=289 -# neck=eternal_voidsong_chain,id=249368,bonus_id=12806/13577/13668,gem_id=240916 -# shoulder=echoing_void_mantle,id=249328,bonus_id=12806/13577,enchant_id=8001 -# back=adherents_silken_shroud,id=239656,bonus_id=12214/13622/13667/9627/8960/12384/8795,crafted_stats=36/49 -# chest=abyssal_immolators_dreadrobe,id=250045,bonus_id=13575,enchant_id=7987,ilevel=289 -# wrist=martyrs_bindings,id=239648,bonus_id=12214/13622/13667/12066/9627/1808/8960/12384/8795,gem_id=240916,crafted_stats=32/36 -# hands=abyssal_immolators_grasps,id=250043,bonus_id=13574,ilevel=289 -# waist=clasp_of_compliance,id=251102,bonus_id=12806/13577/1808,gem_id=240916 -# legs=abyssal_immolators_pillars,id=250041,bonus_id=13575,enchant_id=7935,ilevel=289 -# feet=slippers_of_the_midnight_flame,id=249305,bonus_id=4786/4800/12803/12806/1532,enchant_id=7993 -# finger1=eye_of_midnight,id=249920,bonus_id=12806/13577/13668,enchant_id=7967,gem_id=240916/240916 -# finger2=occlusion_of_void,id=251217,bonus_id=12806/13577/13668,enchant_id=7967,gem_id=240916 -# trinket1=emberwing_feather,id=250144,ilevel=289 -# trinket2=gaze_of_the_alnseer,id=249343,ilevel=289 -# main_hand=splitshroud_stinger,id=251111,bonus_id=12806/13577,enchant_id=8039 -# off_hand=grimoire_of_the_eternal_light,id=249276,ilevel=289 - -# save=MID2_Warlock_Affliction.simc - -# warlock=MID2_Warlock_Affliction_Hellcaller -# spec=affliction -# level=90 -# race=pandaren -# role=spell -# position=ranged_back -# talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZZWmZmlxAAWgBmFjGzAysBWGAAAmBAAmZAzMjxwwMjZmZGMzMzAAmBG -# warlock.default_pet=sayaad - -# head=abyssal_immolators_smoldering_flames,id=250042,bonus_id=13575/1808,enchant_id=7961,gem_id=240983,ilevel=289 -# neck=eternal_voidsong_chain,id=249368,bonus_id=12806/13577/13668,gem_id=240916 -# shoulder=echoing_void_mantle,id=249328,bonus_id=12806/13577,enchant_id=8001 -# back=adherents_silken_shroud,id=239656,bonus_id=12214/13622/13667/9627/8960/12384/8795,crafted_stats=36/49 -# chest=abyssal_immolators_dreadrobe,id=250045,bonus_id=13575,enchant_id=7987,ilevel=289 -# wrist=martyrs_bindings,id=239648,bonus_id=12214/13622/13667/12066/9627/1808/8960/12384/8795,gem_id=240916,crafted_stats=32/36 -# hands=abyssal_immolators_grasps,id=250043,bonus_id=13574,ilevel=289 -# waist=clasp_of_compliance,id=251102,bonus_id=12806/13577/1808,gem_id=240916 -# legs=abyssal_immolators_pillars,id=250041,bonus_id=13575,enchant_id=7935,ilevel=289 -# feet=slippers_of_the_midnight_flame,id=249305,bonus_id=4786/4800/12803/12806/1532,enchant_id=7993 -# finger1=eye_of_midnight,id=249920,bonus_id=12806/13577/13668,enchant_id=7967,gem_id=240916/240916 -# finger2=occlusion_of_void,id=251217,bonus_id=12806/13577/13668,enchant_id=7967,gem_id=240916 -# trinket1=emberwing_feather,id=250144,ilevel=289 -# trinket2=gaze_of_the_alnseer,id=249343,ilevel=289 -# main_hand=splitshroud_stinger,id=251111,bonus_id=12806/13577,enchant_id=8039 -# off_hand=grimoire_of_the_eternal_light,id=249276,ilevel=289 - -# save=MID2_Warlock_Affliction_Hellcaller.simc +warlock="MID2_Warlock_Affliction_Soul_Harvester" +spec=affliction +level=90 +race=troll +role=spell +position=ranged_back +talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZZWmZmlxAAjltBGwEMDbBG2GAAAmBAAwMDzMjBzwMzMzMGMzMzAAmBG +omnium_talents=136822:1/136816:1/136817:1/136815:1/136814:1 +warlock.default_pet=sayaad +flask=flask_of_the_blood_knights_2 + +head=venomkeepers_horrific_cowl,id=271874,bonus_id=40/13335/13663/13695/13696/13846/13848,gem_id=240967,enchant_id=7961,content_tuning=883 +neck=aqirbane_reliquary,id=268265,bonus_id=40/13335/13668/13708/13848,gem_id=240914/240898,content_tuning=883 +shoulders=spires_of_the_damned_necrolyte,id=271544,bonus_id=13694/13697,ilevel=334,enchant_id=8001,redirected_base_stats=239031 +back=silken_voodoo_drape,id=268253,ilevel=344 +chest=damned_necrolytes_rattling_robes,id=271549,bonus_id=40/12854/13335/13690/13698,enchant_id=7987,content_tuning=807 +wrists=martyrs_bindings,id=239648,bonus_id=8790/8960/12214/12384/13750,ilevel=331,gem_id=240890 +hands=damned_necrolytes_charred_grasps,id=271547,bonus_id=13691/13697/13848,redirected_base_stats=268243 +waist=martyrs_waistwrap,id=239649,bonus_id=8790/8960/12214/12384/13750/13751/13836/9627,gem_id=240890,crafted_stats=49/36 +legs=damned_necrolytes_leg_bindings,id=271545,bonus_id=40/12854/13335/13693/13698,enchant_id=7935,content_tuning=807 +feet=cackling_soultreads,id=268255,ilevel=344,enchant_id=7993 +finger1=band_of_the_amani_warlord,id=273792,bonus_id=12854/13662/13668,gem_id=240890,enchant_id=7967 +finger2=apex_brutes_claw_ring,id=268252,bonus_id=12854/13662/13668,gem_id=240906,enchant_id=7967 +trinket1=stormbound_emblem_of_dazar,id=273649,ilevel=334 +trinket2=gebbos_bottomless_bag,id=270164,bonus_id=40/12854/13335,content_tuning=883 +main_hand=janthrazet_the_soul_fang,id=271092,bonus_id=40/13335/13848,enchant_id=8039,content_tuning=883 +off_hand=nocuous_focal_fang,id=273779,ilevel=334,content_tuning=1279 + +save=MID2_Warlock_Affliction.simc + +warlock=MID2_Warlock_Affliction_Hellcaller +spec=affliction +level=90 +race=troll +role=spell +position=ranged_back +talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZZWmZmlxAAWgBmFjGzAysBWGAAAmBAAmZAzMjBzwMjZmZGMzMzAAmBG +omnium_talents=136822:1/136816:1/136817:1/136815:1/136814:1 +warlock.default_pet=sayaad +flask=flask_of_the_blood_knights_2 + +head=venomkeepers_horrific_cowl,id=271874,bonus_id=40/13335/13663/13695/13696/13846/13848,gem_id=240967,enchant_id=7961,content_tuning=883 +neck=aqirbane_reliquary,id=268265,bonus_id=40/13335/13668/13708/13848,gem_id=240914/240898,content_tuning=883 +shoulders=spires_of_the_damned_necrolyte,id=271544,bonus_id=13694/13697,ilevel=334,enchant_id=8001,redirected_base_stats=239031 +back=silken_voodoo_drape,id=268253,ilevel=344 +chest=damned_necrolytes_rattling_robes,id=271549,bonus_id=40/12854/13335/13690/13698,enchant_id=7987,content_tuning=807 +wrists=martyrs_bindings,id=239648,bonus_id=8790/8960/12214/12384/13750,ilevel=331,gem_id=240890 +hands=damned_necrolytes_charred_grasps,id=271547,bonus_id=13691/13697/13848,redirected_base_stats=268243 +waist=martyrs_waistwrap,id=239649,bonus_id=8790/8960/12214/12384/13750/13751/13836/9627,gem_id=240890,crafted_stats=49/36 +legs=damned_necrolytes_leg_bindings,id=271545,bonus_id=40/12854/13335/13693/13698,enchant_id=7935,content_tuning=807 +feet=cackling_soultreads,id=268255,ilevel=344,enchant_id=7993 +finger1=band_of_the_amani_warlord,id=273792,bonus_id=12854/13662/13668,gem_id=240890,enchant_id=7967 +finger2=apex_brutes_claw_ring,id=268252,bonus_id=12854/13662/13668,gem_id=240906,enchant_id=7967 +trinket1=stormbound_emblem_of_dazar,id=273649,ilevel=334 +trinket2=gebbos_bottomless_bag,id=270164,bonus_id=40/12854/13335,content_tuning=883 +main_hand=janthrazet_the_soul_fang,id=271092,bonus_id=40/13335/13848,enchant_id=8039,content_tuning=883 +off_hand=nocuous_focal_fang,id=273779,ilevel=334,content_tuning=1279 + +save=MID2_Warlock_Affliction_Hellcaller.simc # # warlock="MID2_Warlock_Demonology_Soul_Harvester"