Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Monk] Mistweaver implementation #9368

Open
wants to merge 39 commits into
base: thewarwithin
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
b11713d
mistweaver functional
Aug 29, 2024
ae43be7
awakened jadefire tiger palm proc
Aug 30, 2024
517f48e
ancient concordance blackout kick proc
Aug 30, 2024
0054e25
simplify jadefire tiger palm
Aug 30, 2024
d284bae
ancient concordance buff
Aug 30, 2024
a2126d8
clang-format
Aug 30, 2024
5625df1
add a comment to ancient concordance
Aug 30, 2024
e456a79
remove unused member variable
Aug 30, 2024
dffb50b
secret infusion talent + 4 buffs
Aug 31, 2024
f151db3
.percent()
Aug 31, 2024
e0c188e
dance of chi-ji
Aug 31, 2024
865abcf
disable some effects on Heart of the Jade Serpent
Sep 1, 2024
8e34c2c
fix enveloping mist
Sep 1, 2024
bc7ac7b
improve apl
Sep 1, 2024
5ebbc19
apparently jfs does more damage than sck
Sep 2, 2024
2d8d582
Revert "disable some effects on Heart of the Jade Serpent"
Sep 3, 2024
b4093eb
buff_t::set_default_value check if data is ok before setting values
Sep 4, 2024
a5464ab
update mw todo
Sep 4, 2024
af9feb0
sheilun's gift
Sep 4, 2024
a98509b
fix hotjs max stacks with veil of pride
Sep 4, 2024
85ff47c
no jadefire stomp past 10 targets
Sep 4, 2024
b13f5f9
jadefire stomp reset
Sep 5, 2024
9b3f591
fix stomp reset condition
Sep 5, 2024
58a532b
remove zen pulse
Sep 5, 2024
3f1b829
kate cr
Sep 6, 2024
8befc05
remove mistweaver-only healer stuff, and old commented hotfixes
Sep 6, 2024
0a01d29
more cleanup, save the manatee
Sep 6, 2024
1b4d824
[CI] Add Mistweaver to CI, allow experimental specializations to be run.
renanthera Sep 6, 2024
cded6bf
[monk] Restore vivify `parse_options`. Remove `shared.shadowboxing_tr…
renanthera Sep 6, 2024
4747822
fix set_default_value assert
Sep 6, 2024
aea4fc6
Merge remote-tracking branch 'origin/thewarwithin' into mw
Sep 7, 2024
a94153a
vivify consumes august dynasty
Sep 7, 2024
1a9faca
[monk] Swap August Dynasty to `CONSUME_BUFF` instead of manual expira…
renanthera Sep 9, 2024
728969f
bring pack totm buff trigger
Sep 9, 2024
1812269
xuens guidance can proc independently for each stack of totm
Sep 9, 2024
88106c4
[monk] Fix OF for Tiger Palm.
renanthera Sep 11, 2024
790dc4b
Merge remote-tracking branch 'origin/thewarwithin' into mw
Oct 9, 2024
7b80f6c
Merge remote-tracking branch 'origin/thewarwithin' into mw
Oct 26, 2024
b411f9c
remove ancient concordance
Oct 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ jobs:
evoker_devastation, evoker_augmentation,
hunter_beast_mastery, hunter_marksmanship, hunter_survival,
mage_arcane, mage_fire, mage_frost,
monk_brewmaster, monk_windwalker,
monk_brewmaster, monk_windwalker, monk_mistweaver,
paladin_protection, paladin_retribution,
priest_shadow,
rogue_assassination, rogue_outlaw, rogue_subtlety,
Expand All @@ -190,7 +190,7 @@ jobs:

env:
UBSAN_OPTIONS: print_stacktrace=1
SIMC_ARGS: output=/dev/null threads=2 iterations=10 cleanup_threads=1
SIMC_ARGS: output=/dev/null threads=2 iterations=10 cleanup_threads=1 allow_experimental_specializations=1
PLAYER_ARGS: load_default_gear=1

steps:
Expand Down
88 changes: 27 additions & 61 deletions engine/class_modules/apl/apl_monk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -266,77 +266,43 @@ void brewmaster( player_t *p )

void mistweaver( player_t *p )
{
action_priority_list_t *pre = p->get_action_priority_list( "precombat" );
action_priority_list_t *pre = p->get_action_priority_list( "precombat" );
action_priority_list_t *def = p->get_action_priority_list( "default" );
action_priority_list_t *racials = p->get_action_priority_list( "race_actions" );

// Flask
pre->add_action( "flask" );

// Food
pre->add_action( "food" );

// Rune
pre->add_action( "augmentation" );

// Snapshot stats
pre->add_action( "snapshot_stats" );

pre->add_action( "potion" );

pre->add_action( p, "chi_burst" );
pre->add_action( p, "chi_wave" );

std::vector<std::string> racial_actions = p->get_racial_actions();
action_priority_list_t *def = p->get_action_priority_list( "default" );
action_priority_list_t *st = p->get_action_priority_list( "st" );
action_priority_list_t *aoe = p->get_action_priority_list( "aoe" );
for ( const auto &racial_action : p->get_racial_actions() )
racials->add_action( racial_action );

def->add_action( "auto_attack" );
def->add_action( "roll,if=movement.distance>5", "Move to target" );
def->add_action( "chi_torpedo,if=movement.distance>5" );
def->add_action( "spear_hand_strike,if=target.debuff.casting.react" );

if ( p->items[ SLOT_MAIN_HAND ].name_str == "jotungeirr_destinys_call" )
def->add_action( "use_item,name=" + p->items[ SLOT_MAIN_HAND ].name_str );

for ( const auto &item : p->items )
{
std::string name_str;
if ( item.has_special_effect( SPECIAL_EFFECT_SOURCE_ITEM, SPECIAL_EFFECT_USE ) )
{
if ( item.name_str == "scars_of_fraternal_strife" )
def->add_action( "use_item,name=" + item.name_str + ",if=!buff.scars_of_fraternal_strife_4.up&time>1" );
else if ( item.name_str == "jotungeirr_destinys_call" )
continue;
else
def->add_action( "use_item,name=" + item.name_str );
}
}

for ( const auto &racial_action : racial_actions )
{
def->add_action( racial_action + ",if=target.time_to_die<18" );
}

def->add_action( "potion" );

def->add_action( "jadefire_stomp" );
def->add_action( "bonedust_brew" );

def->add_action( "call_action_list,name=aoe,if=active_enemies>=3" );
def->add_action( "call_action_list,name=st,if=active_enemies<3" );

st->add_action( p, "Thunder Focus Tea" );
st->add_action( p, "Rising Sun Kick" );
st->add_action( p, "Blackout Kick",
"if=buff.teachings_of_the_monastery.stack=1&cooldown.rising_sun_kick.remains<12" );
st->add_action( p, "chi_wave" );
st->add_action( p, "chi_burst" );
st->add_action( p, "Tiger Palm",
"if=buff.teachings_of_the_monastery.stack<3|buff.teachings_of_the_monastery.remains<2" );

aoe->add_action( p, "Spinning Crane Kick" );
aoe->add_action( p, "chi_wave" );
aoe->add_action( p, "chi_burst" );
def->add_action( "use_item,slot=trinket1" );
def->add_action( "use_item,slot=trinket2" );
def->add_action( "call_action_list,name=race_actions" );

def->add_action( "touch_of_death" );
def->add_action( "thunder_focus_tea" );
def->add_action( "invoke_chiji,if=talent.invokers_delight" );
def->add_action( "invoke_yulon,if=talent.invokers_delight" );
def->add_action( "celestial_conduit" );
def->add_action( "rising_sun_kick,if=talent.secret_infusion&buff.thunder_focus_tea.up" );
def->add_action( "spinning_crane_kick,if=buff.dance_of_chiji.up" );
def->add_action( "chi_burst,if=active_enemies>=2" );

def->add_action( "jadefire_stomp,if=active_enemies>=4&active_enemies<=10" );
def->add_action( "spinning_crane_kick,if=active_enemies>=4" );

def->add_action( "jadefire_stomp,if=buff.jadefire_stomp.down" );
def->add_action( "rising_sun_kick,if=active_enemies<=2" );
def->add_action(
"blackout_kick,if=buff.teachings_of_the_monastery.stack>=3"
"&(active_enemies>=2|cooldown.rising_sun_kick.remains>gcd)" );
def->add_action( "tiger_palm" );
}

void windwalker( player_t *p )
Expand Down
Loading