단일딜에도 표창폭풍을 쓰면 딜이 올라간다는 얘기에 이것저것 심크 apl을 만져본걸 공유드립니다.
기만자 단일딜만 상정해서 수정한거라 다른 상황에서는 더 낮게 나올 수 있습니다.

제 캐릭터 기준으로 기본 apl보다 좀더 dps가 높게 나옵니다.

손을본건 네가지 정도인데

1. 표창폭풍
기만자 단일딜에는 표창폭풍을 사용하지 않는걸로 되어있는데
어둠의 춤과 조용한 폭풍 버프가 있을때 그림자 일격 대신 사용하도록 추가했습니다.

2. 피아귀의 이빨
기본 apl은 어춤 후 필러로 넣도록 되어있습니다.
이걸 어둠의 칼날 바로 직전에 사용하도록 어둠의 칼날과 동일조건에 어둠의 칼날보다
우선순위를 높여 먼저사용하도록 해놨습니다.
두번째 어칼은 쿨이 오면 바로 사용하도록 했습니다.

3. 쿨기 사용
기본 apl은 어둠의 춤과 어둠의 칼날을 고대의 기술과 무관하게 사용하도록 되어있습니다.
그래서 기본 심크를 돌리면 딜사이클 샘플에서 어둠의 춤을 필러 기술과 같이 사용해서 
글쿨 하나를 시작부터 낭비하는 케이스가 있습니다.
때문에 고대의 기술이 있을때 사용하는 조건을 추가했습니다.
(어둠의 칼날 내에 두번째 어춤은 바로 사용하지 않으면 dps가 떨어지는걸로 나와 그대로 두었습니다.)

4. 은밀한 기술
기본 apl은 은밀한 기술 사용시 고대의 기술과 무관하게 사용하도록 되어있습니다.
테스트중 은밀한 기술 dps가 높게 나온 케이스를 확인해보니
고대의 기술을 적용한 은밀한 기술 횟수에 따라 은밀한 기술의 그림자 복제 dps차이가 눈에 띄게 컸습니다.
때문에 은밀한 기술은 고대의 기술 버프를 적용해 쓰도록 수정했습니다.

아래는 수정한 APL입니다.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=apply_poison
actions.precombat+=/snapshot_stats
actions.precombat+=/variable,name=priority_rotation,value=priority_rotation
# Check for on-use stat trinkets and which slot has the most powerful effect (ie longest cooldown).
actions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_use_buff&(!trinket.2.has_use_buff|trinket.1.cooldown.duration>=trinket.2.cooldown.duration)
actions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_use_buff&(!trinket.1.has_use_buff|trinket.2.cooldown.duration>trinket.1.cooldown.duration)
actions.precombat+=/stealth

# Executed every time the actor is available.
actions=variable,name=stealth,value=buff.shadow_dance.up|buff.stealth.up|buff.vanish.up
actions+=/variable,name=targets,value=spell_targets.shuriken_storm
actions+=/variable,name=racial_sync,value=(buff.shadow_blades.up&buff.shadow_dance.up)|fight_remains<20
actions+=/variable,name=dance_condition,value=!variable.stealth&energy>=30&buff.slice_and_dice.up&(combo_points<=2&talent.deathstalkers_mark|combo_points>=6)
actions+=/variable,name=build_at_max_for_apex,value=talent.ancient_arts_3&!buff.ancient_arts.up&buff.shadow_techniques.stack>=5
actions+=/stealth
actions+=/call_action_list,name=race
actions+=/call_action_list,name=item
actions+=/call_action_list,name=cds
actions+=/shuriken_storm,if=variable.build_at_max_for_apex&variable.targets>=3&(buff.supercharge_1.up|cooldown.secret_technique.ready)
actions+=/gloomblade,if=variable.build_at_max_for_apex&variable.targets<=2&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready)&buff.lingering_shadow.stack>=35
#표창 투척으로 초자력 충전이 있고 최후의 일격을 쓸수 있을때 혼란을 부르는 일격 버프 낭비를 방지
#actions+=/shuriken_toss,if=variable.build_at_max_for_apex&buff.disorienting_strikes.up&buff.escalating_blade.stack=4&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready)
actions+=/shuriken_storm,if=variable.build_at_max_for_apex&variable.targets<=2&buff.silent_storm.up&buff.shadow_dance.up&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready)
actions+=/shadowstrike,if=variable.build_at_max_for_apex&variable.targets<=2&(buff.darkest_night.up|(talent.unseen_blade&buff.supercharge_1.up)|cooldown.secret_technique.ready)
actions+=/call_action_list,name=finish,if=combo_points>=cp_max_spend-!buff.darkest_night.up
actions+=/call_action_list,name=build,if=variable.stealth|energy>60
actions+=/call_action_list,name=fill,if=!variable.stealth

actions.build=shuriken_storm,if=buff.shadow_dance.up&buff.premeditation.up&(debuff.deathstalkers_mark.up|buff.darkest_night.up|!talent.deathstalkers_mark)
actions.build+=/shadowstrike,if=!debuff.deathstalkers_mark.up&talent.deathstalkers_mark&!buff.darkest_night.up|variable.targets<=2-set_bonus.midnight_season_2_2pc|variable.priority_rotation
actions.build+=/shuriken_storm,if=variable.targets>1
actions.build+=/gloomblade,if=variable.targets<2&!variable.stealth
actions.build+=/backstab,if=variable.targets<2&!variable.stealth

# Cooldowns
#actions.cds=goremaws_bite,if=buff.shadow_dance.up&!buff.ancient_arts.up|fight_remains<=14
actions.cds=goremaws_bite,if=cooldown.secret_technique.ready&variable.dance_condition&cooldown.shadow_dance.charges_fractional>=1+0.8*talent.deathstalkers_mark&(buff.ancient_arts.up|!talent.unseen_blade)|(fight_remains<=20|target.time_to_die.remains<=20)
actions.cds+=/goremaws_bite,if=cooldown.goremaws_bite.ready&!cooldown.shadow_blades.ready
actions.cds+=/shadow_blades,if=buff.ancient_arts.up&buff.shadow_techniques.stack>=5&variable.dance_condition&cooldown.shadow_dance.charges_fractional>=1+0.8*talent.deathstalkers_mark&(buff.ancient_arts.up|!talent.unseen_blade)|(fight_remains<=20|target.time_to_die.remains<=20)
# Deathstalker: Send Shadow Dance when Darkest Night is up on ST and when its not up on AoE.
actions.cds+=/shadow_dance,if=buff.ancient_arts.up&variable.dance_condition&talent.deathstalkers_mark&(variable.targets<=3&(buff.darkest_night.up|cooldown.secret_technique.ready&debuff.deathstalkers_mark.stack<=1)|variable.targets>3&debuff.deathstalkers_mark.stack>=2)&(cooldown.shadow_blades.remains>=35-cooldown.secret_technique.duration)|(fight_remains<=10|target.time_to_die-remains<=9)
# Trickster: Send Shadow Dance whenever Secret Technique is ready
actions.cds+=/shadow_dance,if=buff.ancient_arts.up&variable.dance_condition&talent.unseen_blade&(cooldown.secret_technique.ready&(cooldown.shadow_blades.remains>=25-cooldown.secret_technique.duration))|(fight_remains<=10|target.time_to_die-remains<=9)
# Trickster: Second Shadow Dance later during Shadow Blades for better alignment.
actions.cds+=/shadow_dance,if=buff.shadow_blades.up&(talent.unseen_blade|variable.targets>=3)
# Vanish whenever outside of CDs.
actions.cds+=/vanish,if=!variable.stealth&energy>=50&!buff.subterfuge.up&combo_points<=2
actions.cds+=/shadowmeld,if=energy>=50&!variable.stealth&combo_points.deficit>=2

# This list usually contains Cooldowns with negligible impact that causes global cooldowns
actions.fill=arcane_torrent,if=energy.deficit>=15+energy.regen
actions.fill+=/arcane_pulse
actions.fill+=/lights_judgment
actions.fill+=/bag_of_tricks

actions.finish=eviscerate,if=buff.darkest_night.up|!buff.slice_and_dice.up
actions.finish+=/secret_technique,if=buff.shadow_dance.up&buff.ancient_arts.up
# Cast Secret Technique on cooldown as trickster if Shadow Dance is not ready
actions.finish+=/secret_technique,if=talent.unseen_blade&cooldown.secret_technique.duration<18&!cooldown.shadow_dance.ready&buff.ancient_arts.up
actions.finish+=/coup_de_grace,if=cooldown.secret_technique.remains>=3|buff.shadow_dance.up
# Pool some Shadow Technique Stacks as Trickster before entering Shadow Dance by not finishing right before.
actions.finish+=/black_powder,if=talent.unseen_blade&variable.targets>=(3-talent.potent_powder)&(cooldown.secret_technique.remains>=3|buff.shadow_dance.up|buff.shadow_blades.up)
# As Deathstalker just press BP
actions.finish+=/black_powder,if=talent.deathstalkers_mark&variable.targets>=2
# Pool some Shadow Technique Stacks as Trickster before entering Shadow Dance by not finishing right before.
actions.finish+=/eviscerate,if=cooldown.secret_technique.remains>=3&talent.unseen_blade|buff.shadow_dance.up|buff.shadow_blades.up|debuff.deathstalkers_mark.stack>1|debuff.deathstalkers_mark.stack=1&buff.shadow_techniques.stack>=5

# Trinket and Items
actions.item=potion,if=buff.shadow_blades.up|fight_remains<30
actions.item+=/use_item,name=algethar_puzzle_box,if=cooldown.shadow_blades.ready&cooldown.secret_technique.remains<=2&combo_points>=6
actions.item+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)
actions.item+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)

# Race Cooldowns
actions.race=blood_fury,if=variable.racial_sync
actions.race+=/berserking,if=variable.racial_sync
actions.race+=/fireblood,if=variable.racial_sync
actions.race+=/ancestral_call,if=buff.shadow_blades.up
actions.race+=/invoke_external_buff,name=power_infusion,if=variable.racial_sync

수정한 APL 적용하기

raidbots에서 topgear든 droptimizer든 simulation option 하단에 
custom apl and simc options 이라는 항목이 있습니다.

여기에 위의 스크립트를 붙여넣고 기존처럼 심크를 돌리시면 됩니다.
다른 방법도 공유 부탁드립니다.

apl을 만져보면 심크가 가속을 고평가 하는 이유를 알수 있지 않을까 해서
계속 만져봤는데 딱히 이유는 잘 모르겠습니다.
다만 apl이 스탯 가중치에 영향이 없다고 할 순 없을거같은게
기본 apl로 droptimizer를 실행했을때랑 수정한 apl로 실행했을때 
같은 부위의 아이템도 스탯에 따라 증가하는 dps가 바뀌는거보니
 어느정도 영향이 있는거같습니다.
(기본은 가유 장갑, 수정은 치특 장갑이 높게 나왔습니다.)