Horizon Official Technical Documentation
GridSCApplyInSkillArea Struct Reference

#include <GridNotifiers.hpp>

+ Collaboration diagram for GridSCApplyInSkillArea:

Public Member Functions

 GridSCApplyInSkillArea (const std::shared_ptr< Horizon::Zone::Unit > &source, const std::shared_ptr< Horizon::Zone::Unit > &target, const s_grid_sc_apply_in_skill_area_config sc_config, 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_source
 
std::weak_ptr< Horizon::Zone::Unit_target
 
s_grid_sc_apply_in_skill_area_config _sc_config
 
s_grid_apply_in_area_config _aoe_config
 

Constructor & Destructor Documentation

◆ GridSCApplyInSkillArea()

GridSCApplyInSkillArea::GridSCApplyInSkillArea ( const std::shared_ptr< Horizon::Zone::Unit > &  source,
const std::shared_ptr< Horizon::Zone::Unit > &  target,
const s_grid_sc_apply_in_skill_area_config  sc_config,
s_grid_apply_in_area_config  aoe_config 
)
inlineexplicit
258 : _source(source), _target(target), _sc_config(sc_config), _aoe_config(aoe_config)
259 { }
std::weak_ptr< Horizon::Zone::Unit > _target
Definition: GridNotifiers.hpp:253
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:255
s_grid_sc_apply_in_skill_area_config _sc_config
Definition: GridNotifiers.hpp:254
std::weak_ptr< Horizon::Zone::Unit > _source
Definition: GridNotifiers.hpp:252

Member Function Documentation

◆ apply()

template<class T >
void GridSCApplyInSkillArea::apply ( GridRefManager< T > &  m)
444{
445 if (_source.expired())
446 return;
447
448 using namespace Horizon::Zone::Units;
449 for (typename GridRefManager<T>::iterator iter = m.begin(); iter != typename GridRefManager<T>::iterator(nullptr); ++iter) {
450 std::shared_ptr<Horizon::Zone::Unit> unit = iter->source()->shared_from_this();
451
452 if (unit == nullptr)
453 continue;
454
455 // AOE Target Type check.
457
458 if (!aoe_predicate(unit))
459 continue;
460
461 RangeCheckPredicate range_predicate(unit);
462
463 // If the unit is not in range of target's splash range,
464 // ignore.
465 if (!range_predicate(_target, _aoe_config.aoe_range))
466 continue;
467
469 }
470}
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
int val2
Definition: GridNotifiers.hpp:239
int val4
Definition: GridNotifiers.hpp:239
int val3
Definition: GridNotifiers.hpp:239
int val1
Definition: GridNotifiers.hpp:239
int type
Definition: GridNotifiers.hpp:239
int total_time
Definition: GridNotifiers.hpp:239

References _aoe_config, _sc_config, _source, _target, s_grid_apply_in_area_config::aoe_range, s_grid_apply_in_area_config::aoe_target_mask, GridRefManager< OBJECT >::begin(), s_grid_sc_apply_in_skill_area_config::total_time, s_grid_sc_apply_in_skill_area_config::type, s_grid_sc_apply_in_skill_area_config::val1, s_grid_sc_apply_in_skill_area_config::val2, s_grid_sc_apply_in_skill_area_config::val3, and s_grid_sc_apply_in_skill_area_config::val4.

+ Here is the call graph for this function:

◆ Visit() [1/10]

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

◆ Visit() [2/10]

template<class NOT_INTERESTED >
void GridSCApplyInSkillArea::Visit ( GridRefManager< NOT_INTERESTED > &  )
inline
273{ }

◆ Visit() [3/10]

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

◆ Visit() [4/10]

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

◆ Visit() [5/10]

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

◆ Visit() [6/10]

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

◆ Visit() [7/10]

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

◆ Visit() [8/10]

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

◆ Visit() [9/10]

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

◆ Visit() [10/10]

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

Member Data Documentation

◆ _aoe_config

s_grid_apply_in_area_config GridSCApplyInSkillArea::_aoe_config

Referenced by apply().

◆ _sc_config

s_grid_sc_apply_in_skill_area_config GridSCApplyInSkillArea::_sc_config

Referenced by apply().

◆ _source

std::weak_ptr<Horizon::Zone::Unit> GridSCApplyInSkillArea::_source

Referenced by apply().

◆ _target

std::weak_ptr<Horizon::Zone::Unit> GridSCApplyInSkillArea::_target

Referenced by apply().


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