Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e438ee4
[player] Standardize spell rank table usage
seriallos Oct 19, 2026
24bebf1
Smite base implementation
lgkern Oct 19, 2026
42c1765
Base stats
lgkern Oct 19, 2026
33c964d
[Priest] Shadow Word: Pain
lgkern Oct 19, 2026
7a7d9cf
[Priest] Mind Blast
lgkern Oct 19, 2026
061a11b
[Priest] Devouring Plague
lgkern Oct 19, 2026
f4669bc
[Priest] Mind Flay
lgkern Oct 19, 2026
4b79c59
[Priest] Shadow Word: Death
lgkern Oct 19, 2026
a176bae
[Priest] Holy Fire
lgkern Oct 19, 2026
c15b487
[Priest] Basic APL support
lgkern Oct 19, 2026
358d8ad
[Priest] Shadowform
lgkern Oct 20, 2026
8320d52
[Priest] Shadowform to pre-combat APL
lgkern Oct 20, 2026
bfa66b4
[Action] Added auto-parsing for regen inside 5sr
lgkern Oct 20, 2026
c782611
[Priest] Added support for Meditation
lgkern Oct 20, 2026
8a10ff8
[Action] Parse effect for modify power cost based on school
lgkern Oct 20, 2026
9b1858d
[Priest] Simplify Shadowform implementation
lgkern Oct 20, 2026
ab5fcc0
[Player] Added support for mana regen passive systems
lgkern Oct 20, 2026
b62101a
[Priest] Leave meditation to auto parser
lgkern Oct 20, 2026
c5f4679
[Item] Support for passive enchants that give mp5
lgkern Oct 20, 2026
94b00a6
[Player] Fixing aura 85 parsing
lgkern Oct 20, 2026
39a447b
[Player] Cap 5sr regen to 100% and move spirit regen call to a single…
lgkern Oct 20, 2026
230e0ad
Merge branch 'main' into shadow_beta
lgkern Oct 20, 2026
211ff2c
[Priest] Shadow Weaving
lgkern Oct 20, 2026
4403d92
[Priest] Inner Focus
lgkern Oct 20, 2026
70a6876
[Action] Automagically parse hit (0x16) effects
lgkern Oct 20, 2026
954e934
[Priest] Remove wand specialization damage - TODO extra damage to autos
lgkern Oct 20, 2026
b6cfd1b
[Priest] Early Demise
lgkern Oct 20, 2026
abcd0e7
[Priest] Improved Mind Flay
lgkern Oct 20, 2026
159c2da
[Priest] Dark Inspirtation
lgkern Oct 21, 2026
b20e4e3
[Player] Support for spell power from Spirit from talents
lgkern Oct 21, 2026
1577245
[Priest] Devouring contagion jumps
lgkern Oct 21, 2026
65de9ce
[Priest] Power in the Light
lgkern Oct 21, 2026
a255f02
[Priest] Penance
lgkern Oct 21, 2026
e8f1435
[Priest] Added comment about penance issues with Inner Focus
lgkern Oct 21, 2026
1f88319
[Priest] Holy Nova
lgkern Oct 21, 2026
56a6108
[Priest] Searing Light
lgkern Oct 21, 2026
5386ab0
[Priest] Starshards
lgkern Oct 21, 2026
9528980
[Priest] Add penance and starshards to APL
lgkern Oct 21, 2026
c35b677
[Priest] Dark Sacrifice
lgkern Oct 21, 2026
7f0bcd7
[Priest] Dark Sacrifice APL
lgkern Oct 21, 2026
6c217ba
Merge main
lgkern Oct 24, 2026
c05d97c
[Priest] Adapting to new spell ranks
lgkern Oct 24, 2026
0503e9a
[Priest] Vampiric Embrace, Hex of Weakness, and Touch of Weakness
lgkern Oct 25, 2026
7711489
[Priest] Dark Sacrifice spirit regen spread evenly over ticks
lgkern Oct 25, 2026
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
3 changes: 3 additions & 0 deletions engine/action/action.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -794,6 +794,9 @@ void action_t::parse_spell_data( const spell_data_t& spell_data )
base_crit_bonus += crit_bonus_mod[ 1 ];
crit_bonus_multiplier *= crit_bonus_mod[ 2 ];

auto hit_mod = player->get_passive_value( spell_data, "hit" );
base_hit += hit_mod[ 1 ];

// handle mechanic modifiers (currently only bleed is found in relevant spell data)
// as the effect (subtype 276) is player scoped, we call get_passive_player_value()
// only the spell's mechanic field is checked, the effect's mechanic field is not sufficient for this effect subtype
Expand Down
27 changes: 26 additions & 1 deletion engine/action/parse_effects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1087,6 +1087,16 @@ double parse_player_effects_t::stacking_movement_modifier() const
return m;
}

double parse_player_effects_t::composite_mana_regen_while_casting() const
{
auto m = player_t::composite_mana_regen_while_casting();

for ( const auto& i : mana_regen_while_casting_effects )
m += get_effect_value( i );

return m;
}

void parse_player_effects_t::invalidate_cache( cache_e c )
{
player_t::invalidate_cache( c );
Expand Down Expand Up @@ -1268,6 +1278,10 @@ std::vector<player_effect_t>* parse_player_effects_t::get_effect_vector( const s
str = "absorb received";
return &absorb_received_mult_effects;

case A_MOD_MANA_REGEN_INTERRUPT:
str = "mana regen while casting";
return &mana_regen_while_casting_effects;

case A_MOD_INCREASE_SPEED:
str = "exclusive move speed";
invalidate( CACHE_RUN_SPEED );
Expand Down Expand Up @@ -1415,6 +1429,7 @@ void parse_player_effects_t::print_custom_parsed_effects( report::sc_html_stream
print_parsed_type( os, spell_haste_effects, "Spell Haste" );
print_parsed_type( os, healing_received_effects, "Healing Received" );
print_parsed_type( os, leech_effects, "Leech" );
print_parsed_type( os, mana_regen_while_casting_effects, "Mana Regen While Casting" );
print_parsed_type( os, non_stacking_movement_effects, "Move Speed Modifier - Exclusive" );
print_parsed_type( os, stacking_movement_effects, "Move Speed Modifier - Stacking" );
print_parsed_type( os, parry_effects, "Parry" );
Expand Down Expand Up @@ -1461,7 +1476,8 @@ size_t parse_player_effects_t::total_effects_count() const
target_multiplier_effects.size() +
target_pet_multiplier_effects.size() +
non_stacking_movement_effects.size() +
stacking_movement_effects.size();
stacking_movement_effects.size() +
mana_regen_while_casting_effects.size();
}

void parse_action_base_t::parse_callback_function( pack_t<player_effect_t>& pack, parse_cb_t cb )
Expand Down Expand Up @@ -1556,6 +1572,15 @@ std::vector<player_effect_t>* parse_action_base_t::get_effect_vector( const spel
return &da_multiplier_effects;
}

if ( eff.subtype() == A_MOD_POWER_COST_SCHOOL_PCT )
{
if ( !( dbc::get_school_mask( _action->get_school() ) & eff.affected_schools() ) )
return nullptr;

str = "cost percent";
return &cost_effects;
}

if ( !force )
{
if ( !check_affected_list( pack.affect_lists, eff, force ) )
Expand Down
2 changes: 2 additions & 0 deletions engine/action/parse_effects.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,7 @@ struct parse_player_effects_t : public player_t, public parse_effects_t
std::vector<target_effect_t> target_pet_multiplier_effects;
std::vector<player_effect_t> non_stacking_movement_effects;
std::vector<player_effect_t> stacking_movement_effects;
std::vector<player_effect_t> mana_regen_while_casting_effects;

// Cache Pairing, invalidate first of the pair when the second is invalidated
std::vector<std::pair<cache_e, cache_e>> invalidate_with_parent;
Expand Down Expand Up @@ -743,6 +744,7 @@ struct parse_player_effects_t : public player_t, public parse_effects_t
bool direct ) const override;
double non_stacking_movement_modifier() const override;
double stacking_movement_modifier() const override;
double composite_mana_regen_while_casting() const override;

void invalidate_cache( cache_e c ) override;

Expand Down
20 changes: 20 additions & 0 deletions engine/class_modules/apl/priest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,24 @@ std::string temporary_enchant( const player_t* )
{
return "disabled";
}

//priest_apl_start
void priest( player_t* p )
{
action_priority_list_t* precombat = p->get_action_priority_list( "precombat" );
action_priority_list_t* default_ = p->get_action_priority_list( "default" );

precombat->add_action( "shadowform" );

default_->add_action( "dark_sacrifice,if=mana.pct<50" );
default_->add_action( "shadow_word_pain,if=!ticking" );
default_->add_action( "devouring_plague,if=!ticking" );
default_->add_action( "mind_blast" );
default_->add_action( "shadow_word_death" );
default_->add_action( "penance" );
default_->add_action( "starshards" );
default_->add_action( "mind_flay" );
default_->add_action( "smite" );
}
//priest_apl_end
} // namespace priest_apl
5 changes: 3 additions & 2 deletions engine/class_modules/apl/priest.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@

#include <string>

namespace warlock_apl
namespace priest_apl
{
std::string potion( const player_t* );
std::string flask( const player_t* );
std::string food( const player_t* );
std::string rune( const player_t* );
std::string temporary_enchant( const player_t* );
} // namespace warlock_apl
void priest( player_t* );
} // namespace priest_apl
Loading
Loading