Horizon Official Technical Documentation
GridExecuteSkillInArea Struct Reference

#include <GridNotifiers.hpp>

+ Collaboration diagram for GridExecuteSkillInArea:

Public Member Functions

 GridExecuteSkillInArea (const std::shared_ptr< Horizon::Zone::Unit > &source, const std::shared_ptr< Horizon::Zone::Unit > &target, std::shared_ptr< Horizon::Zone::SkillExecution > skill_execution, s_grid_apply_in_area_config aoe_config)
 
template<class T >
void apply (GridRefManager< T > &m)
 
void Visit (GridRefManager< unit_ns(Player)> &m)
 
void Visit (GridRefManager< unit_ns(NPC)> &m)
 
void Visit (GridRefManager< unit_ns(Elemental)> &m)
 
void Visit (GridRefManager< unit_ns(Homunculus)> &m)
 
void Visit (GridRefManager< unit_ns(Mercenary)> &m)
 
void Visit (GridRefManager< unit_ns(Pet)> &m)
 
void Visit (GridRefManager< unit_ns(Monster)> &m)
 
template<class NOT_INTERESTED >
void Visit (GridRefManager< NOT_INTERESTED > &)
 
template<>
void Visit (GridRefManager< Skill > &m)
 
template<>
void Visit (GridRefManager< Item > &m)
 

Public Attributes

std::weak_ptr< Horizon::Zone::Unit_initial_source
 
std::weak_ptr< Horizon::Zone::Unit_initial_target
 
s_grid_apply_in_area_config _aoe_config
 
std::shared_ptr< Horizon::Zone::SkillExecution_skill_execution
 

Constructor & Destructor Documentation

◆ GridExecuteSkillInArea()

GridExecuteSkillInArea::GridExecuteSkillInArea ( const std::shared_ptr< Horizon::Zone::Unit > &  source,
const std::shared_ptr< Horizon::Zone::Unit > &  target,
std::shared_ptr< Horizon::Zone::SkillExecution skill_execution,
s_grid_apply_in_area_config  aoe_config 
)
inlineexplicit
315 : _initial_source(source), _initial_target(target), _skill_execution(skill_execution), _aoe_config(aoe_config)
316 { }
std::weak_ptr< Horizon::Zone::Unit > _initial_source
Definition: GridNotifiers.hpp:306
std::shared_ptr< Horizon::Zone::SkillExecution > _skill_execution
Definition: GridNotifiers.hpp:309
std::weak_ptr< Horizon::Zone::Unit > _initial_target
Definition: GridNotifiers.hpp:307
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:308

Member Function Documentation

◆ apply()

template<class T >
void GridExecuteSkillInArea::apply ( GridRefManager< T > &  m)
525{
526 if (_initial_source.expired())
527 return;
528
529 using namespace Horizon::Zone::Units;
530 for (typename GridRefManager<T>::iterator iter = m.begin(); iter != typename GridRefManager<T>::iterator(nullptr); ++iter) {
531 std::shared_ptr<Horizon::Zone::Unit> unit = iter->source()->shared_from_this();
532
533 if (unit == nullptr)
534 continue;
535
536 // AOE Target Type check.
538
539 if (!aoe_predicate(unit))
540 continue;
541
542 // @Todo: check map type PvP, GvG, etc.
543 RangeCheckPredicate range_predicate(unit);
544
545 // If the unit is not in range of target's splash range,
546 // ignore.
547 if (!range_predicate(_initial_source, _aoe_config.aoe_range))
548 continue;
549
550 _skill_execution->execute(unit->guid());
551 }
552}
Definition: GridNotifierPredicates.hpp:66
Forward declaration of GridRefManager, the class that manages GridReference.
Definition: GridRefManager.hpp:41
iterator begin()
Definition: GridRefManager.hpp:54
Definition: GridNotifierPredicates.hpp:51
Definition: GameLogicProcess.hpp:43
int aoe_range
Definition: GridNotifiers.hpp:244
int aoe_target_mask
Definition: GridNotifiers.hpp:245

References _aoe_config, _initial_source, _skill_execution, s_grid_apply_in_area_config::aoe_range, s_grid_apply_in_area_config::aoe_target_mask, and GridRefManager< OBJECT >::begin().

+ Here is the call graph for this function:

◆ Visit() [1/10]

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

◆ Visit() [2/10]

template<class NOT_INTERESTED >
void GridExecuteSkillInArea::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
330{ }

◆ Visit() [3/10]

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

◆ Visit() [4/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(Elemental)> &  m)

◆ Visit() [5/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(Homunculus)> &  m)

◆ Visit() [6/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(Mercenary)> &  m)

◆ Visit() [7/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(Monster)> &  m)

◆ Visit() [8/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(NPC)> &  m)

◆ Visit() [9/10]

void GridExecuteSkillInArea::Visit ( GridRefManager< unit_ns(Pet)> &  m)

◆ Visit() [10/10]

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

Member Data Documentation

◆ _aoe_config

s_grid_apply_in_area_config GridExecuteSkillInArea::_aoe_config

Referenced by apply().

◆ _initial_source

std::weak_ptr<Horizon::Zone::Unit> GridExecuteSkillInArea::_initial_source

Referenced by apply().

◆ _initial_target

std::weak_ptr<Horizon::Zone::Unit> GridExecuteSkillInArea::_initial_target

◆ _skill_execution

std::shared_ptr<Horizon::Zone::SkillExecution> GridExecuteSkillInArea::_skill_execution

Referenced by apply().


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