@@ -714,15 +714,32 @@ void thalassian_phoenix_torque( special_effect_t& effect )
714714// 1252202 Buff
715715void signet_of_azerothian_blessings ( special_effect_t & effect )
716716{
717- auto value = effect.driver ()->effectN ( 1 ).average ( effect );
718- value *= 1.0 + ( effect.driver ()->effectN ( 2 ).percent () * unique_gem_list ( effect.player , gem_colors ).size () );
719- value *= bandolier_mul ( effect.player );
717+ auto base_value = effect.driver ()->effectN ( 1 ).average ( effect ) / 4 ;
718+ std::unordered_map<stat_e, double > values = { { STAT_HASTE_RATING, 1.0 },
719+ { STAT_CRIT_RATING, 1.0 },
720+ { STAT_MASTERY_RATING, 1.0 },
721+ { STAT_VERSATILITY_RATING, 1.0 } };
722+
723+ std::unordered_map<stat_e, gem_color_e> gems = { { STAT_HASTE_RATING, GEM_PERIDOT },
724+ { STAT_CRIT_RATING, GEM_GARNET },
725+ { STAT_MASTERY_RATING, GEM_AMETHYST },
726+ { STAT_VERSATILITY_RATING, GEM_LAPIS } };
720727
721728 auto buff = create_buff<stat_buff_t >( effect.player , " boon_of_azerothian_blessings" ,
722729 effect.driver ()->effectN ( 1 ).trigger () );
723730
724731 for ( auto stat : secondary_ratings )
725- buff->add_stat ( stat, value );
732+ {
733+ int count = 0 ;
734+ for ( auto gem : equipped_gem_list ( effect.player , gem_colors ) )
735+ if ( gem == gems.at ( stat ) )
736+ count++;
737+
738+ values.at ( stat ) =
739+ base_value * ( 1.0 + count * effect.driver ()->effectN ( 2 ).base_value () ) * bandolier_mul ( effect.player );
740+
741+ buff->add_stat ( stat, values.at ( stat ) );
742+ }
726743
727744 effect.custom_buff = buff;
728745
0 commit comments