SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
stat_buff_t Struct Reference
Inheritance diagram for stat_buff_t:
buff_t noncopyable azerite::azerite_essences::resolute_courage_t unique_gear::shadowlands::items::singularity_supreme_t

Classes

struct  buff_stat_t
 

Public Member Functions

void bump (int stacks=1, double value=-1.0) override
 
void decrement (int stacks=1, double value=-1.0) override
 
void expire_override (int expiration_stacks, timespan_t remaining_duration) override
 
double value () override
 Get current buff value + benefit tracking.
 
stat_buff_tadd_stat (stat_e s, double a, const std::function< bool(const stat_buff_t &)> &c=std::function< bool(const stat_buff_t &)>())
 
 stat_buff_t (actor_pair_t q, util::string_view name)
 
 stat_buff_t (actor_pair_t q, util::string_view name, const spell_data_t *, const item_t *item=nullptr)
 
- Public Member Functions inherited from buff_t
 buff_t (actor_pair_t q, util::string_view name)
 
 buff_t (actor_pair_t q, util::string_view name, const spell_data_t *, const item_t *item=nullptr)
 
 buff_t (sim_t *sim, util::string_view name)
 
 buff_t (sim_t *sim, util::string_view name, const spell_data_t *, const item_t *item=nullptr)
 
const spell_data_tdata () const
 
const spell_data_tdata_reporting () const
 
int check () const
 Get current number of stacks, no benefit tracking. More...
 
int stack ()
 Get current number of stacks + benefit tracking. More...
 
bool up ()
 Check if buff is up Use check() inside of ready() and cost() methods to prevent skewing of "benefit" calculations. More...
 
double stack_value ()
 Get current buff value multiplied by current stacks + benefit tracking.
 
double check_value () const
 Get current buff value + NO benefit tracking.
 
double check_stack_value () const
 Get current buff value multiplied by current stacks + NO benefit tracking.
 
virtual bool freeze_stacks ()
 Return true if tick should not call bump() or decrement()
 
virtual timespan_t buff_duration () const
 
timespan_t remains () const
 
timespan_t tick_time_remains () const
 
timespan_t elapsed (timespan_t t) const
 
timespan_t last_trigger_time () const
 
timespan_t last_expire_time () const
 
bool remains_gt (timespan_t time) const
 
bool remains_lt (timespan_t time) const
 
bool has_common_school (school_e) const
 
bool at_max_stacks (int mod=0) const
 
int _resolve_stacks (int stacks)
 
bool trigger (action_t *, int stacks=-1, double value=DEFAULT_VALUE(), timespan_t duration=timespan_t::min())
 
bool trigger (timespan_t duration)
 
bool trigger (int stacks, timespan_t duration)
 
virtual bool trigger (int stacks=-1, double value=DEFAULT_VALUE(), double chance=-1.0, timespan_t duration=timespan_t::min())
 
virtual void execute (int stacks=-1, double value=DEFAULT_VALUE(), timespan_t duration=timespan_t::min())
 
virtual void increment (int stacks=1, double value=DEFAULT_VALUE(), timespan_t duration=timespan_t::min())
 
virtual void extend_duration (player_t *p, timespan_t seconds)
 
virtual void extend_duration_or_trigger (timespan_t duration=timespan_t::min(), player_t *p=nullptr)
 
virtual void start (int stacks=1, double value=DEFAULT_VALUE(), timespan_t duration=timespan_t::min())
 
virtual void refresh (int stacks=0, double value=DEFAULT_VALUE(), timespan_t duration=timespan_t::min())
 
virtual void override_buff (int stacks=1, double value=DEFAULT_VALUE())
 
virtual bool may_react (int stacks=1)
 
virtual int stack_react ()
 
virtual void expire (timespan_t delay=timespan_t::zero())
 
void cancel ()
 
virtual void predict ()
 
virtual void reset ()
 
virtual void aura_gain ()
 
virtual void aura_loss ()
 
virtual void merge (const buff_t &other_buff)
 
virtual void analyze ()
 
virtual void datacollection_begin ()
 
virtual void datacollection_end ()
 
virtual timespan_t refresh_duration (timespan_t new_duration) const
 
virtual timespan_t tick_time () const
 
void invalidate_cache ()
 
virtual int total_stack ()
 
std::string to_str () const
 
const char * name () const
 
const char * name_reporting () const
 
util::string_view source_name () const
 
int max_stack () const
 
int initial_stack () const
 
const spell_data_tget_trigger_data () const
 
rng::rng_trng ()
 
buff_tset_chance (double chance)
 
buff_tset_duration (timespan_t duration)
 
buff_tmodify_duration (timespan_t duration)
 
buff_tset_duration_multiplier (double)
 
buff_tset_max_stack (int max_stack)
 
buff_tmodify_max_stack (int max_stack)
 
buff_tset_initial_stack (int initial_stack)
 
buff_tmodify_initial_stack (int initial_stack)
 
buff_tset_expire_at_max_stack (bool)
 
buff_tset_cooldown (timespan_t duration)
 
buff_tmodify_cooldown (timespan_t duration)
 
buff_tset_period (timespan_t)
 
buff_tset_quiet (bool quiet)
 
buff_tadd_invalidate (cache_e)
 
buff_tset_schools (unsigned)
 
buff_tset_schools_from_effect (size_t)
 
buff_tadd_school (school_e)
 
buff_tset_pct_buff_type (stat_pct_buff_type)
 
buff_tset_default_value (double, size_t=0)
 
virtual buff_tset_default_value_from_effect (size_t, double=0.0)
 
virtual buff_tset_default_value_from_effect_type (effect_subtype_t a_type, property_type_t p_type=P_MAX, double multiplier=0.0, effect_type_t e_type=E_APPLY_AURA)
 
buff_tmodify_default_value (double)
 
buff_tset_reverse (bool)
 
buff_tset_activated (bool)
 
buff_tset_can_cancel (bool cc)
 
buff_tset_tick_behavior (buff_tick_behavior)
 
buff_tset_tick_callback (buff_tick_callback_t)
 
buff_tset_tick_time_callback (buff_tick_time_callback_t)
 
buff_tset_affects_regen (bool state)
 
buff_tset_constant_behavior (buff_constant_behavior)
 
buff_tset_refresh_behavior (buff_refresh_behavior)
 
buff_tset_refresh_duration_callback (buff_refresh_duration_callback_t)
 
buff_tset_tick_zero (bool v)
 
buff_tset_tick_on_application (bool v)
 
buff_tset_partial_tick (bool v)
 
buff_tset_tick_time_behavior (buff_tick_time_behavior b)
 
buff_tset_rppm (rppm_scale_e scale=RPPM_NONE, double freq=-1, double mod=-1)
 
buff_tset_trigger_spell (const spell_data_t *s)
 
buff_tset_stack_change_callback (const buff_stack_change_callback_t &cb)
 
buff_tset_reverse_stack_count (int count)
 
buff_tset_stack_behavior (buff_stack_behavior b)
 
buff_tset_allow_precombat (bool b)
 
buff_tset_name_reporting (std::string_view)
 
virtual buff_tapply_affecting_aura (const spell_data_t *spell)
 
virtual buff_tapply_affecting_effect (const spelleffect_data_t &effect)
 
virtual buff_tapply_affecting_conduit (const conduit_data_t &conduit, int effect_num=1)
 
virtual buff_tapply_affecting_conduit_effect (const conduit_data_t &conduit, size_t effect_num)
 

Public Attributes

std::vector< buff_stat_tstats
 
gain_tstat_gain
 
bool manual_stats_added
 
- Public Attributes inherited from buff_t
sim_t *const sim
 
player_t *const player
 
const item_t *const item
 
const std::string name_str
 
std::string name_str_reporting
 
const spell_data_ts_data
 
const spell_data_ts_data_reporting
 
player_t *const source
 
std::vector< event_t * > expiration
 
event_tdelay
 
event_texpiration_delay
 
cooldown_tcooldown
 
sc_timeline_t uptime_array
 
real_ppm_trppm
 
double default_value
 
size_t default_value_effect_idx
 
double default_value_effect_multiplier
 
unsigned schools
 
bool activated
 Is buff manually activated or not (eg. More...
 
bool reactable
 
bool reverse
 
bool constant
 
bool quiet
 
bool overridden
 
bool can_cancel
 
bool requires_invalidation
 
bool expire_at_max_stack
 
int reverse_stack_reduction
 
double current_value
 Number of stacks reduced when reverse = true.
 
int current_stack
 
timespan_t base_buff_duration
 
double buff_duration_multiplier
 
double default_chance
 
double manual_chance
 
std::vector< timespan_tstack_react_time
 
std::vector< event_t * > stack_react_ready_triggers
 
buff_constant_behavior constant_behavior
 
buff_refresh_behavior refresh_behavior
 
buff_refresh_duration_callback_t refresh_duration_callback
 
buff_stack_behavior stack_behavior
 
buff_stack_change_callback_t stack_change_callback
 
bool allow_precombat
 
unsigned current_tick
 
timespan_t buff_period
 
buff_tick_time_behavior tick_time_behavior
 
buff_tick_behavior tick_behavior
 
event_ttick_event
 
buff_tick_callback_t tick_callback
 
buff_tick_time_callback_t tick_time_callback
 
bool tick_zero
 
bool tick_on_application
 
bool partial_tick
 
simple_sample_data_t benefit_pct
 
simple_sample_data_t trigger_pct
 
simple_sample_data_t avg_start
 
simple_sample_data_t avg_refresh
 
simple_sample_data_t avg_expire
 
simple_sample_data_t avg_overflow_count
 
simple_sample_data_t avg_overflow_total
 
simple_sample_data_t uptime_pct
 
simple_sample_data_with_min_max_t start_intervals
 
simple_sample_data_with_min_max_t trigger_intervals
 
simple_sample_data_with_min_max_t duration_lengths
 
std::vector< uptime_simple_tstack_uptime
 
bool change_regen_rate
 

Additional Inherited Members

- Static Public Member Functions inherited from buff_t
static std::unique_ptr< expr_tcreate_expression (util::string_view buff_name, util::string_view type, action_t &action)
 
static std::unique_ptr< expr_tcreate_expression (util::string_view buff_name, util::string_view type, buff_t &static_buff)
 
static double DEFAULT_VALUE ()
 
static buff_tfind (util::span< buff_t *const >, util::string_view name, player_t *source=nullptr)
 
static buff_tfind (sim_t *, util::string_view name)
 
static buff_tfind (player_t *, util::string_view name, player_t *source=nullptr)
 
static buff_tfind_expressable (util::span< buff_t *const >, util::string_view name, player_t *source=nullptr)
 
- Protected Member Functions inherited from buff_t
 buff_t (sim_t *sim, player_t *target, player_t *source, util::string_view name, const spell_data_t *, const item_t *item)
 
void update_stack_uptime_array (timespan_t current_time, int old_stacks)
 
- Protected Attributes inherited from buff_t
timespan_t last_start
 
timespan_t last_trigger
 
timespan_t last_expire
 
timespan_t last_stack_change
 
timespan_t iteration_uptime_sum
 
timespan_t last_benefite_update
 
unsigned int up_count
 
unsigned int down_count
 
unsigned int start_count
 
unsigned int refresh_count
 
unsigned int expire_count
 
unsigned int overflow_count
 
unsigned int overflow_total
 
int trigger_attempts
 
int trigger_successes
 
int simulation_max_stack
 
std::vector< cache_e > invalidate_list
 
gcd_haste_type gcd_type