SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
dot_t Struct Reference
Inheritance diagram for dot_t:
noncopyable

Classes

struct  dot_end_event_t
 
struct  dot_tick_event_t
 

Public Member Functions

 dot_t (util::string_view n, player_t *target, player_t *source)
 
void adjust_duration (timespan_t extra_seconds, timespan_t max_total_time=timespan_t::min(), uint32_t state_flags=-1, bool count_as_refresh=true)
 
void adjust_duration (timespan_t extra_seconds, uint32_t state_flags)
 
void refresh_duration (uint32_t state_flags=-1)
 
void reset ()
 
void cancel ()
 
void trigger (timespan_t duration)
 
void decrement (int stacks)
 
void increment (int stacks)
 
void copy (player_t *destination, dot_copy_e=DOT_COPY_START) const
 
void adjust (double coefficient)
 
void adjust_full_ticks (double coefficient)
 
timespan_t remains () const
 
timespan_t time_to_next_full_tick () const
 
timespan_t time_to_next_tick () const
 
timespan_t time_to_tick () const
 
timespan_t duration () const
 
int ticks_left () const
 
double ticks_left_fractional () const
 
int num_ticks () const
 
const std::string & name () const
 
bool is_ticking () const
 
timespan_t get_extra_time () const
 
double get_tick_factor () const
 
int current_stack () const
 
bool at_max_stacks (int mod=0) const
 
void tick ()
 
void last_tick ()
 
bool channel_interrupt ()
 Check if channeling action should be interrupted and do so. More...
 
void reschedule_tick ()
 

Static Public Member Functions

static std::unique_ptr< expr_tcreate_expression (dot_t *dot, action_t *action, action_t *source_action, util::string_view name_str, bool dynamic)
 

Public Attributes

event_ttick_event
 
event_tend_event
 
player_t *const target
 
player_t *const source
 
action_tcurrent_action
 
action_state_tstate
 
int current_tick
 
int max_stack
 
std::string name_str
 

Friends

void sc_format_to (const dot_t &, fmt::format_context::iterator)
 

Member Function Documentation

◆ channel_interrupt()

bool dot_t::channel_interrupt ( )

Check if channeling action should be interrupted and do so.

Returns
true if action gets interrupted