You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

195 lines
20 KiB

## Demonology Warlock
## https://github.com/simulationcraft/simc/
## March 16, 2022
## Changes:
## - Spell Lock.
## - Only recommend Demonbolt pre-combat if it is instant (or hardcast for bosses).
## - Power Siphon allowed pre-combat to proc instant Demonbolt.
## - PvP talent interrupt.
## - Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.
## - Try to avoid wasting Demonic Core stacks.
## - Try to make opener priority only work if we can actually open with a Tyrant.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat+=/summon_pet
actions.precombat+=/fleshcraft
actions.precombat+=/use_item,name=tome_of_monstrous_constructions
actions.precombat+=/use_item,name=soleahs_secret_technique
actions.precombat+=/use_item,name=shadowed_orb_of_torment
actions.precombat+=/power_siphon,if=buff.wild_imps.stack>1&buff.demonic_core.stack<=2
actions.precombat+=/demonbolt,if=(boss|action.demonbolt.cast=0)&soul_shards<4
actions.precombat+=/shadow_bolt,if=!(boss|action.demonbolt.cast=0)|soul_shards>3
## actions.precombat+=/variable,name=first_tyrant_time,op=set,value=10
actions.precombat+=/variable,name=time_limit,op=set,value=15
## actions.precombat+=/variable,name=in_opener,op=set,value=1
actions.precombat+=/variable,name=in_setup,op=set,value=1
actions.precombat+=/variable,name=in_buildup,op=set,value=0
actions.precombat+=/variable,name=back_to_five,op=set,value=0
actions.precombat+=/variable,name=first_hog,op=set,value=1
actions.precombat+=/variable,name=not_wilf,op=set,value=!runeforge.wilfreds_sigil_of_superior_summoning
actions.precombat+=/variable,name=use_bolt_timings,op=set,value=runeforge.balespiders_burning_core&runeforge.shard_of_annihilation
# Executed every time the actor is available.
actions=spell_lock
actions+=/call_felhunter
actions+=/axe_toss
actions+=/devour_magic
actions+=/variable,name=next_tyrant_cd,op=set,value=cooldown.summon_demonic_tyrant.remains_expected,if=!soulbind.field_of_blossoms|cooldown.summon_demonic_tyrant.remains_expected>cooldown.soul_rot.remains_expected
actions+=/variable,name=next_tyrant_cd,op=set,value=cooldown.soul_rot.remains_expected,if=soulbind.field_of_blossoms&cooldown.summon_demonic_tyrant.remains_expected<cooldown.soul_rot.remains_expected
actions+=/variable,name=next_tyrant_cd,op=set,value=variable.time_limit-2*gcd.max,if=!variable.use_bolt_timings&in_opener
actions+=/variable,name=in_setup,op=set,value=1,if=!variable.not_wilf&!variable.use_bolt_timings&variable.next_tyrant_cd<16&(cooldown.call_dreadstalkers.up|(cooldown.grimoire_felguard.up&talent.grimoire_felguard.enabled&cooldown.call_dreadstalkers.remains<gcd.max+action.shadow_bolt.execute_time))&!talent.summon_vilefiend.enabled
actions+=/variable,name=in_setup,op=set,value=1,if=!variable.not_wilf&!variable.use_bolt_timings&variable.next_tyrant_cd<16&(cooldown.call_dreadstalkers.remains<action.shadow_bolt.execute_time+action.summon_vilefiend.execute_time|(cooldown.grimoire_felguard.up&talent.grimoire_felguard.enabled&cooldown.call_dreadstalkers.remains<gcd.max+action.summon_vilefiend.execute_time+2*action.shadow_bolt.execute_time))&talent.summon_vilefiend.enabled
actions+=/variable,name=in_setup,op=set,value=1,if=variable.not_wilf&!variable.use_bolt_timings&variable.next_tyrant_cd<12.5&cooldown.grimoire_felguard.up&cooldown.call_dreadstalkers.remains<gcd.max+action.shadow_bolt.execute_time&!talent.summon_vilefiend.enabled&talent.grimoire_felguard.enabled
actions+=/variable,name=in_setup,op=set,value=1,if=variable.not_wilf&!variable.use_bolt_timings&variable.next_tyrant_cd<12.5&cooldown.grimoire_felguard.up&cooldown.call_dreadstalkers.remains<gcd.max+action.summon_vilefiend.execute_time+2*action.shadow_bolt.execute_time&talent.summon_vilefiend.enabled&talent.grimoire_felguard.enabled
actions+=/variable,name=in_setup,op=set,value=1,if=(variable.not_wilf|variable.use_bolt_timings)&variable.next_tyrant_cd<9.5&cooldown.call_dreadstalkers.up
actions+=/variable,name=in_buildup,op=set,value=1,if=variable.next_tyrant_cd<18
actions+=/variable,name=in_buildup,op=set,value=1,if=talent.summon_vilefiend.enabled&variable.next_tyrant_cd<20
actions+=/variable,name=in_buildup,op=set,value=0,if=variable.in_setup
actions+=/variable,name=imp_time_limit,op=set,value=time+(6*action.shadow_bolt.execute_time),if=variable.in_setup&variable.first_hog&prev_gcd.1.hand_of_guldan
actions+=/variable,name=first_hog,op=set,value=0,if=variable.in_setup&prev_gcd.1.hand_of_guldan
actions+=/variable,name=first_hog,op=set,value=1,if=pet.demonic_tyrant.active
## actions+=/variable,name=in_opener,op=set,value=0,if=pet.demonic_tyrant.active
actions+=/variable,name=in_setup,op=set,value=0,if=pet.demonic_tyrant.active
actions+=/variable,name=buff_sync_cd,op=set,value=variable.next_tyrant_cd+2*gcd.max,if=!variable.use_bolt_timings
actions+=/variable,name=buff_sync_cd,op=set,value=first_tyrant_time,if=!variable.use_bolt_timings&in_opener&!pet.dreadstalker.active
actions+=/variable,name=buff_sync_cd,op=set,value=variable.time_limit-2*gcd.max,if=!variable.use_bolt_timings&in_opener
actions+=/variable,name=buff_sync_cd,op=set,value=cooldown.decimating_bolt.remains_expected,if=variable.use_bolt_timings
actions+=/variable,name=back_to_five,op=set,value=0,if=soul_shard>4
actions+=/call_action_list,name=trinkets
actions+=/call_action_list,name=ogcd,strict=1,if=(!variable.use_bolt_timings&pet.demonic_tyrant.active)|(variable.use_bolt_timings&buff.shard_of_annihilation.up&(!talent.power_siphon.enabled|buff.power_siphon.up))
actions+=/call_action_list,name=ramp,strict=1,if=variable.in_setup
actions+=/call_action_list,name=build,strict=1,if=variable.in_buildup
actions+=/doom,if=refreshable
actions+=/implosion,if=target.time_to_die<2*gcd&buff.wild_imps.stack>0
actions+=/call_action_list,name=covenant_ability,strict=1,if=soulbind.grove_invigoration|soulbind.field_of_blossoms|soulbind.combat_meditation|covenant.necrolord
actions+=/power_siphon,if=variable.use_bolt_timings&buff.shard_of_annihilation.up
actions+=/potion,if=variable.use_bolt_timings&buff.shard_of_annihilation.up
actions+=/call_action_list,name=tyrant
actions+=/summon_vilefiend,if=variable.not_wilf&variable.next_tyrant_cd>45
actions+=/call_dreadstalkers,if=(variable.not_wilf|variable.use_bolt_timings)&cooldown.summon_demonic_tyrant.remains_expected>45
actions+=/call_dreadstalkers,if=(variable.not_wilf|variable.use_bolt_timings)&cooldown.summon_demonic_tyrant.remains_expected>28&cooldown.summon_demonic_tyrant.remains_expected<32
actions+=/call_dreadstalkers,if=!variable.not_wilf&!variable.use_bolt_timings&(variable.next_tyrant_cd>20-5*!runeforge.wilfreds_sigil_of_superior_summoning)
actions+=/demonic_strength,if=(!runeforge.wilfreds_sigil_of_superior_summoning&variable.next_tyrant_cd>9)|(pet.demonic_tyrant.active&pet.demonic_tyrant.remains<6*gcd.max)
actions+=/power_siphon,if=!variable.use_bolt_timings&buff.wild_imps.stack>1&buff.demonic_core.stack<3
actions+=/bilescourge_bombers,if=buff.tyrant.down&variable.next_tyrant_cd>5&!in_opener
actions+=/call_action_list,name=aoe,strict=1,if=!variable.in_setup
actions+=/grimoire_felguard,if=time_to_die<30
actions+=/summon_vilefiend,if=time_to_die<28
actions+=/call_dreadstalkers,if=time_to_die<20
actions+=/summon_demonic_tyrant,if=time_to_die<15
actions+=/hand_of_guldan,if=soul_shard=5
actions+=/shadow_bolt,if=soul_shard<5&runeforge.balespiders_burning_core&buff.balespiders_burning_core.remains<5
actions+=/hand_of_guldan,if=soul_shard>=1&variable.in_setup&buff.demonic_core.react&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.hand_of_guldan.execute_time+gcd.max
actions+=/hand_of_guldan,if=soul_shard>=1&variable.in_setup&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.hand_of_guldan.execute_time+action.shadow_bolt.execute_time
actions+=/demonbolt,if=set_bonus.tier28_2pc&buff.demonic_core.stack>1&soul_shard<4&pet.dreadstalker.active&pet.dreadstalker.remains<action.hand_of_guldan.execute_time+2*gcd.max
actions+=/hand_of_guldan,if=soul_shard>=3&(pet.dreadstalker.active|pet.demonic_tyrant.active)
actions+=/hand_of_guldan,if=soul_shard>=1&buff.nether_portal.up&cooldown.call_dreadstalkers.remains>2*gcd.max
actions+=/call_action_list,name=covenant_ability,strict=1,if=!covenant.venthyr
actions+=/soul_strike,if=!talent.sacrificed_souls.enabled
actions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&variable.next_tyrant_cd>20
actions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&variable.in_setup
actions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&(buff.demonic_core.stack>2|talent.sacrificed_souls.enabled)
actions+=/demonbolt,if=set_bonus.tier28_2pc&soul_shard<4&((6-soul_shard)*action.shadow_bolt.execute_time>pet.dreadstalker.remains-action.hand_of_guldan.execute_time-action.demonbolt.execute_time)&buff.demonic_core.stack>=1
actions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&active_enemies>1
actions+=/soul_strike
actions+=/call_action_list,name=covenant_ability
actions+=/hand_of_guldan,if=soul_shard>=3&variable.next_tyrant_cd>25&((talent.demonic_calling.enabled&buff.demonic_calling.up&buff.demonic_calling.remains>cooldown.call_dreadstalkers.remains)|cooldown.call_dreadstalkers.remains>((5-soul_shard)*action.shadow_bolt.execute_time)+action.hand_of_guldan.execute_time)
actions+=/doom,cycle_targets=1,if=refreshable&time>first_tyrant_time
# Use Demonbolt if you're going to lose Demonic Core stacks, even if it'd waste a soul shard.
actions+=/demonbolt,if=buff.demonic_core.react&buff.demonic_core.remains<1+gcd.max*buff.demonic_core.stack
actions+=/shadow_bolt
actions.5y_per_sec_trinkets=use_item,name=soulletting_ruby,cycle_targets=1,if=variable.buff_sync_cd<target.distance%5-(2*gcd.max*variable.use_bolt_timings)
actions.5y_per_sec_trinkets+=/use_item,name=sunblood_amethyst,if=variable.buff_sync_cd<target.distance%5+(2*variable.use_bolt_timings)
actions.5y_per_sec_trinkets+=/use_item,name=empyreal_ordnance,if=variable.buff_sync_cd<(target.distance%5)+12+(2*variable.use_bolt_timings)
actions.aoe=implosion,if=active_enemies>1+(1*talent.sacrificed_souls.enabled)&buff.wild_imps.stack>=6&buff.tyrant.down&variable.next_tyrant_cd>5
actions.aoe+=/implosion,if=active_enemies>2&buff.wild_imps.stack>=6&buff.tyrant.down&variable.next_tyrant_cd>5&!runeforge.implosive_potential&(!talent.from_the_shadows.enabled|debuff.from_the_shadows.up)
actions.aoe+=/implosion,if=active_enemies>2&buff.wild_imps.stack>=6&buff.implosive_potential.remains<2&runeforge.implosive_potential
actions.aoe+=/implosion,if=buff.wild_imps.stack>=12&talent.soul_conduit.enabled&talent.from_the_shadows.enabled&runeforge.implosive_potential&buff.tyrant.down&variable.next_tyrant_cd>5
actions.build=variable,name=current_hog,op=set,value=1,if=soul_shard=1
actions.build+=/variable,name=current_hog,op=set,value=2,if=soul_shard=2
actions.build+=/variable,name=current_hog,op=set,value=3,if=soul_shard>2
actions.build+=/variable,name=allow_db,op=set,value=0
actions.build+=/variable,name=allow_db,op=set,value=1,if=(pet.dreadstalker.active&buff.demonic_core.stack>0)|(!pet.dreadstalker.active&buff.demonic_core.stack>3)
actions.build+=/variable,name=time_to_setup,op=set,value=cooldown.call_dreadstalkers.remains-gcd.max-action.summon_vilefiend.execute_time-2*action.shadow_bolt.execute_time,if=talent.summon_vilefiend.enabled&talent.grimoire_felguard.enabled&cooldown.grimoire_felguard.remains<variable.next_tyrant_cd
actions.build+=/variable,name=time_to_setup,op=set,value=cooldown.call_dreadstalkers.remains-action.summon_vilefiend.execute_time-action.shadow_bolt.execute_time,if=talent.summon_vilefiend.enabled&(!talent.grimoire_felguard.enabled|cooldown.grimoire_felguard.remains>variable.next_tyrant_cd)
actions.build+=/variable,name=time_to_setup,op=set,value=cooldown.call_dreadstalkers.remains-gcd.max-action.shadow_bolt.execute_time,if=!talent.summon_vilefiend.enabled&talent.grimoire_felguard.enabled&cooldown.grimoire_felguard.remains<variable.next_tyrant_cd
actions.build+=/variable,name=time_to_setup,op=set,value=cooldown.call_dreadstalkers.remains,if=!talent.summon_vilefiend.enabled&(!talent.grimoire_felguard.enabled|cooldown.grimoire_felguard.remains>variable.next_tyrant_cd)
actions.build+=/variable,name=time_to_setup,op=set,value=variable.next_tyrant_cd-12.5,if=variable.not_wilf&cooldown.grimoire_felguard.remains<variable.next_tyrant_cd
actions.build+=/variable,name=time_to_setup,op=set,value=variable.next_tyrant_cd-9.5,if=variable.use_bolt_timings|(variable.not_wilf&(!talent.grimoire_felguard.enabled|cooldown.grimoire_felguard.remains>variable.next_tyrant_cd))
actions.build+=/bilescourge_bombers
actions.build+=/call_action_list,name=aoe
actions.build+=/call_action_list,name=covenant_ability,if=covenant.necrolord&soulbind.volatile_solvent&buff.volatile_solvent_humanoid.down
actions.build+=/hand_of_guldan,if=((5-(soul_shard-variable.current_hog))*action.shadow_bolt.execute_time+action.hand_of_guldan.execute_time>variable.time_to_setup|soul_shard>2)&variable.time_to_setup>(5-(soul_shard-variable.current_hog)-1)*action.shadow_bolt.execute_time+action.hand_of_guldan.execute_time
actions.build+=/hand_of_guldan,if=variable.allow_db&((5-(soul_shard-variable.current_hog)-2)*action.shadow_bolt.execute_time+gcd.max+action.hand_of_guldan.execute_time>variable.time_to_setup|soul_shard>2)&variable.time_to_setup>(5-(soul_shard-variable.current_hog)-3)*action.shadow_bolt.execute_time+gcd.max+action.hand_of_guldan.execute_time
actions.build+=/soul_strike,if=!talent.sacrificed_souls.enabled&soul_shard<5
actions.build+=/demonbolt,if=variable.allow_db&soul_shard<4
actions.build+=/shadow_bolt
actions.covenant_ability=soul_rot,if=soulbind.grove_invigoration&(variable.next_tyrant_cd<20|variable.next_tyrant_cd>30)
actions.covenant_ability+=/soul_rot,if=soulbind.field_of_blossoms&pet.demonic_tyrant.active
actions.covenant_ability+=/soul_rot,if=soulbind.wild_hunt_tactics&!pet.demonic_tyrant.active&variable.next_tyrant_cd>18
actions.covenant_ability+=/decimating_bolt,cycle_targets=1,if=!variable.use_bolt_timings&(soulbind.lead_by_example|soulbind.kevins_oozeling)&(pet.demonic_tyrant.active&soul_shard<2|!pet.demonic_tyrant.active&variable.next_tyrant_cd>30)
actions.covenant_ability+=/decimating_bolt,cycle_targets=1,if=!variable.use_bolt_timings&(soulbind.forgeborne_reveries|(soulbind.volatile_solvent&!soulbind.kevins_oozeling))&!pet.demonic_tyrant.active
actions.covenant_ability+=/decimating_bolt,cycle_targets=1,if=variable.use_bolt_timings&(!talent.power_siphon|cooldown.power_siphon.remains<action.decimating_bolt.execute_time)&!cooldown.summon_demonic_tyrant.up&(pet.demonic_tyrant.remains<6|cooldown.summon_demonic_tyrant.remains_expected<30)
actions.covenant_ability+=/fleshcraft,if=soulbind.volatile_solvent&(buff.volatile_solvent_humanoid.down|(variable.in_buildup&buff.volatile_solvent_humanoid.remains<variable.next_tyrant_cd)),interrupt_if=buff.volatile_solvent_humanoid.up
actions.covenant_ability+=/scouring_tithe,if=soulbind.combat_meditation&pet.demonic_tyrant.active
actions.covenant_ability+=/scouring_tithe,if=!soulbind.combat_meditation
actions.covenant_ability+=/impending_catastrophe,if=pet.demonic_tyrant.active&soul_shard=0
actions.hp_trinks=use_item,name=sinful_gladiators_emblem
actions.hp_trinks+=/use_item,name=sinful_aspirants_emblem
actions.ogcd=berserking
actions.ogcd+=/blood_fury
actions.ogcd+=/fireblood
actions.ogcd+=/use_items
actions.pure_damage_trinks=use_item,name=grim_eclipse
actions.pure_damage_trinks+=/use_item,name=resonant_reservoir
actions.pure_damage_trinks+=/use_item,name=architects_ingenuity_core
actions.pure_damage_trinks+=/use_item,name=cosmic_gladiators_resonator
actions.pure_damage_trinks+=/use_item,name=dreadfire_vessel
actions.pure_damage_trinks+=/use_item,name=soul_igniter
actions.pure_damage_trinks+=/use_item,name=glyph_of_assimilation,if=active_enemies=1
actions.pure_damage_trinks+=/use_item,name=darkmoon_deck_putrescence
actions.pure_damage_trinks+=/use_item,name=ebonsoul_vise
actions.pure_damage_trinks+=/use_item,name=unchained_gladiators_shackles
actions.ramp=soul_rot,if=soulbind.grove_invigoration
actions.ramp+=/nether_portal
actions.ramp+=/grimoire_felguard
actions.ramp+=/summon_vilefiend
actions.ramp+=/variable,name=first_hog,op=set,value=1,if=active_enemies>2&buff.wild_imps.stack>=3&buff.implosive_potential.remains<1&runeforge.implosive_potential&variable.time_limit>5*gcd.max
actions.ramp+=/implosion,if=active_enemies>2&buff.wild_imps.stack>=3&buff.implosive_potential.remains<2&runeforge.implosive_potential&variable.time_limit>5*gcd.max
actions.ramp+=/demonbolt,if=soul_shard<4&buff.demonic_core.stack>2&cooldown.call_dreadstalkers.remains<gcd.max&!pet.dreadstalker.active&(pet.vilefiend.active|pet.grimoire_felguard.active)
actions.ramp+=/shadow_bolt,if=soul_shard<5&!pet.dreadstalker.active&(pet.vilefiend.active|pet.grimoire_felguard.active)
actions.ramp+=/shadow_bolt,if=variable.use_bolt_timings&soul_shard<5&buff.balespiders_burning_core.stack<4
actions.ramp+=/variable,name=back_to_five,op=set,value=1,if=!pet.dreadstalker.active&(talent.grimoire_felguard.enabled|talent.summon_vilefiend.enabled|covenant.night_fae|in_opener|variable.use_bolt_timings)
actions.ramp+=/call_dreadstalkers
actions.ramp+=/demonbolt,if=variable.back_to_five&soul_shard<4&buff.demonic_core.stack>2&(talent.grimoire_felguard.enabled|talent.summon_vilefiend.enabled|covenant.night_fae|in_opener|variable.use_bolt_timings)
actions.ramp+=/shadow_bolt,if=variable.back_to_five&(talent.grimoire_felguard.enabled|talent.summon_vilefiend.enabled|covenant.night_fae|in_opener|variable.use_bolt_timings)
actions.trinkets=use_item,name=shadowed_orb_of_torment,if=variable.buff_sync_cd<22
actions.trinkets+=/use_item,name=scars_of_fraternal_strife
actions.trinkets+=/call_action_list,name=hp_trinks,if=talent.demonic_consumption.enabled&variable.next_tyrant_cd<20
actions.trinkets+=/call_action_list,name=5y_per_sec_trinkets
actions.trinkets+=/use_item,name=overflowing_anima_cage,if=(!variable.use_bolt_timings&pet.demonic_tyrant.active)|(variable.use_bolt_timings&buff.shard_of_annihilation.up)
actions.trinkets+=/use_item,slot=trinket1,if=trinket.1.has_use_buff&((!variable.use_bolt_timings&pet.demonic_tyrant.active)|(variable.use_bolt_timings&buff.shard_of_annihilation.up))
actions.trinkets+=/use_item,slot=trinket2,if=trinket.2.has_use_buff&((!variable.use_bolt_timings&pet.demonic_tyrant.active)|(variable.use_bolt_timings&buff.shard_of_annihilation.up))
actions.trinkets+=/call_action_list,name=pure_damage_trinks,if=time>first_tyrant_time&variable.buff_sync_cd>20
actions.tyrant=variable,name=time_limit,op=set,value=20,if=variable.in_setup
actions.tyrant+=/variable,name=time_limit,op=set,value=variable.imp_time_limit-time,if=variable.in_setup&!variable.first_hog
actions.tyrant+=/variable,name=time_limit,op=set,value=buff.grimoire_felguard.remains,if=buff.grimoire_felguard.up&buff.grimoire_felguard.remains<variable.time_limit&variable.in_setup
actions.tyrant+=/variable,name=time_limit,op=set,value=pet.vilefiend.remains,if=pet.vilefiend.active&pet.vilefiend.remains<variable.time_limit&variable.in_setup
actions.tyrant+=/variable,name=time_limit,op=set,value=pet.dreadstalker.remains,if=pet.dreadstalker.active&pet.dreadstalker.remains<variable.time_limit&variable.in_setup
actions.tyrant+=/potion,if=soul_shard=0&buff.demonic_core.stack=0&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time+action.hand_of_guldan.execute_time
actions.tyrant+=/potion,if=soul_shard=0&buff.demonic_core.stack>0&variable.time_limit<action.summon_demonic_tyrant.execute_time+gcd.max+action.hand_of_guldan.execute_time
actions.tyrant+=/potion,if=soul_shard>0&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.hand_of_guldan.execute_time
actions.tyrant+=/summon_demonic_tyrant,if=soul_shard=0&buff.demonic_core.stack=0&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time+action.hand_of_guldan.execute_time
actions.tyrant+=/summon_demonic_tyrant,if=soul_shard=0&buff.demonic_core.stack>0&variable.time_limit<action.summon_demonic_tyrant.execute_time+gcd.max+action.hand_of_guldan.execute_time
actions.tyrant+=/summon_demonic_tyrant,if=soul_shard>0&variable.time_limit<action.summon_demonic_tyrant.execute_time+action.hand_of_guldan.execute_time