Skip to content

Commit f3e2ce8

Browse files
committed
[Havoc] consume Soul Fragments on Fel Rush
1 parent c75c63d commit f3e2ce8

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

engine/class_modules/sc_demon_hunter.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1667,8 +1667,7 @@ class demon_hunter_action_t : public Base
16671667

16681668
bool ready() override
16691669
{
1670-
if ( ( ab::execute_time() > timespan_t::zero() || ab::channeled ) &&
1671-
( p()->buff.out_of_range->check() || p()->soul_fragment_pick_up ) )
1670+
if ( ( ab::execute_time() > timespan_t::zero() || ab::channeled ) && p()->buff.out_of_range->check() )
16721671
{
16731672
return false;
16741673
}
@@ -4703,6 +4702,15 @@ struct fel_rush_t : public demon_hunter_attack_t
47034702
// Fel Rush and VR shared a 1 second GCD when one or the other is triggered
47044703
p()->cooldown.movement_shared->start( timespan_t::from_seconds( 1.0 ) );
47054704

4705+
// if there is more than 1 Lesser Soul Fragment available, consume all but 1 Lesser Soul Fragment
4706+
const int fragments = p()->get_active_soul_fragments( soul_fragment::LESSER );
4707+
if ( fragments > 1 )
4708+
{
4709+
event_t::cancel( p()->soul_fragment_pick_up );
4710+
// havoc can have max 5 soul fragments out, we want to consume at least 1 and a maximum of 4.
4711+
p()->consume_soul_fragments( soul_fragment::LESSER, true, std::clamp( fragments - 1, 1, 4 ) );
4712+
}
4713+
47064714
if ( !a_cancel )
47074715
{
47084716
p()->buff.fel_rush_move->trigger();

0 commit comments

Comments
 (0)