Horizon Official Technical Documentation
GridUnitBasicAttackNotifier Struct Reference

#include <GridNotifiers.hpp>

+ Collaboration diagram for GridUnitBasicAttackNotifier:

Public Member Functions

 GridUnitBasicAttackNotifier (const std::shared_ptr< Horizon::Zone::Unit > &unit, s_grid_unit_basic_attack_config config)
 
template<class T >
void notify (GridRefManager< T > &m)
 
void Visit (GridRefManager< unit_ns(Player)> &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefManager< NOT_INTERESTED > &)
 
template<>
void Visit (GridRefManager< NPC > &m)
 
template<>
void Visit (GridRefManager< Elemental > &m)
 
template<>
void Visit (GridRefManager< Homunculus > &m)
 
template<>
void Visit (GridRefManager< Mercenary > &m)
 
template<>
void Visit (GridRefManager< Pet > &m)
 
template<>
void Visit (GridRefManager< Monster > &m)
 
template<>
void Visit (GridRefManager< Skill > &m)
 
template<>
void Visit (GridRefManager< Item > &m)
 

Public Attributes

std::weak_ptr< Horizon::Zone::Unit_unit
 
s_grid_unit_basic_attack_config _config
 

Constructor & Destructor Documentation

◆ GridUnitBasicAttackNotifier()

GridUnitBasicAttackNotifier::GridUnitBasicAttackNotifier ( const std::shared_ptr< Horizon::Zone::Unit > &  unit,
s_grid_unit_basic_attack_config  config 
)
inlineexplicit
403 : _unit(unit), _config(config)
404 { }
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:399
s_grid_unit_basic_attack_config _config
Definition: GridNotifiers.hpp:400

Member Function Documentation

◆ notify()

template<class T >
void GridUnitBasicAttackNotifier::notify ( GridRefManager< T > &  m)
668{
669 using namespace Horizon::Zone::Units;
670
671 if (!m.get_size())
672 return;
673
674 std::shared_ptr<Horizon::Zone::Unit> src_unit = _unit.lock();
675
676 for (typename GridRefManager<T>::iterator iter = m.begin(); iter != typename GridRefManager<T>::iterator(nullptr); ++iter) {
677 if (iter->source() == nullptr)
678 continue;
679
680 std::shared_ptr<Player> tpl = iter->source()->template downcast<Player>();
681
682 if (tpl->get_session() == nullptr || tpl->get_session()->clif() == nullptr)
683 continue;
684
685 tpl->get_session()->clif()->notify_damage(_config.guid, _config.target_guid, _config.start_time, _config.delay_skill,
687 }
688}
Forward declaration of GridRefManager, the class that manages GridReference.
Definition: GridRefManager.hpp:41
iterator begin()
Definition: GridRefManager.hpp:54
uint32_t get_size() const
returns the number of Elements in the list (not including the head and tail Elements or the first and...
Definition: Head.hpp:69
Definition: GameLogicProcess.hpp:43
int is_sp_damaged
Definition: GridNotifiers.hpp:394
int delay_skill
Definition: GridNotifiers.hpp:394
int guid
Definition: GridNotifiers.hpp:394
int damage
Definition: GridNotifiers.hpp:394
int action_type
Definition: GridNotifiers.hpp:394
int number_of_hits
Definition: GridNotifiers.hpp:394
int delay_damage
Definition: GridNotifiers.hpp:394
int left_damage
Definition: GridNotifiers.hpp:394
int start_time
Definition: GridNotifiers.hpp:394
int target_guid
Definition: GridNotifiers.hpp:394

References _config, _unit, s_grid_unit_basic_attack_config::action_type, GridRefManager< OBJECT >::begin(), s_grid_unit_basic_attack_config::damage, s_grid_unit_basic_attack_config::delay_damage, s_grid_unit_basic_attack_config::delay_skill, Horizon::Structures::LinkedList::Head::get_size(), s_grid_unit_basic_attack_config::guid, s_grid_unit_basic_attack_config::is_sp_damaged, s_grid_unit_basic_attack_config::left_damage, s_grid_unit_basic_attack_config::number_of_hits, s_grid_unit_basic_attack_config::start_time, and s_grid_unit_basic_attack_config::target_guid.

+ Here is the call graph for this function:

◆ Visit() [1/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Elemental > &  m)

◆ Visit() [2/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Homunculus > &  m)

◆ Visit() [3/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Item > &  m)

◆ Visit() [4/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Mercenary > &  m)

◆ Visit() [5/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Monster > &  m)

◆ Visit() [6/10]

template<class NOT_INTERESTED >
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
412{ }

◆ Visit() [7/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< NPC > &  m)

◆ Visit() [8/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Pet > &  m)

◆ Visit() [9/10]

template<>
void GridUnitBasicAttackNotifier::Visit ( GridRefManager< Skill > &  m)

◆ Visit() [10/10]

void GridUnitBasicAttackNotifier::Visit ( GridRefManager< unit_ns(Player)> &  m)

Member Data Documentation

◆ _config

s_grid_unit_basic_attack_config GridUnitBasicAttackNotifier::_config

Referenced by notify().

◆ _unit

std::weak_ptr<Horizon::Zone::Unit> GridUnitBasicAttackNotifier::_unit

Referenced by notify().


The documentation for this struct was generated from the following files: