30#ifndef HORIZON_ZONE_GAME_MAP_GRIDNOTIFIERS_HPP
31#define HORIZON_ZONE_GAME_MAP_GRIDNOTIFIERS_HPP
39#define unit_ns(class) Horizon::Zone::Units::class
42 std::weak_ptr<Horizon::Zone::Unit>
_unit;
59 template<
class NOT_INTERESTED>
65 std::weak_ptr<Horizon::Zone::Unit>
_unit;
77 template<
class NOT_INTERESTED>
83 std::weak_ptr<Horizon::Zone::Unit>
_unit;
94 template<
class NOT_INTERESTED>
100 std::weak_ptr<Horizon::Zone::Unit>
_unit;
112 template<
class NOT_INTERESTED>
125 [[nodiscard]] std::shared_ptr<Horizon::Zone::Unit>
get_result()
const;
140 template<
class NOT_INTERESTED>
146 std::weak_ptr<Horizon::Zone::Units::Player>
_player;
157 template<
class NOT_INTERESTED>
163 std::weak_ptr<Horizon::Zone::Units::Monster>
_monster;
177 template<
class NOT_INTERESTED>
183 std::weak_ptr<Horizon::Zone::Units::Monster>
_monster;
197 template<
class NOT_INTERESTED>
215 template<
class NOT_INTERESTED>
221 std::weak_ptr<Horizon::Zone::Unit>
_unit;
233 template<
class NOT_INTERESTED>
272 template<
class NOT_INTERESTED>
299 template<
class NOT_INTERESTED>
312 const std::shared_ptr<Horizon::Zone::Unit>& target,
313 std::shared_ptr<Horizon::Zone::SkillExecution> skill_execution,
329 template<
class NOT_INTERESTED>
343 std::shared_ptr<Horizon::Zone::SkillExecution> skill_execution,
359 template<
class NOT_INTERESTED>
375 std::weak_ptr<Horizon::Zone::Unit>
_unit;
388 template<
class NOT_INTERESTED>
399 std::weak_ptr<Horizon::Zone::Unit>
_unit;
411 template<
class NOT_INTERESTED>
429 template<
class NOT_INTERESTED>
452 template<
class NOT_INTERESTED>
Cell cell[MAP_WIDTH][MAP_HEIGHT]
Definition: AStarTest.cpp:52
zc_notify_act_3_action_types
0 = damage [ damage: total damage, div: amount of hits, damage2: assassin dual-wield damage ] 1 = pic...
Definition: ClientDefinitions.hpp:120
grid_notifier_type
Definition: ClientDefinitions.hpp:80
@ GRID_NOTIFY_AREA
Definition: ClientDefinitions.hpp:81
grid_unit_skill_use_notification_type
Definition: GridDefinitions.hpp:88
#define unit_ns(class)
Definition: GridNotifiers.hpp:39
unit_viewport_notification_type
Definition: UnitDefinitions.hpp:836
Definition: ByteBuffer.hpp:78
Definition: GridNotifierPredicates.hpp:37
Definition: ReferenceListTest.cpp:114
Definition: GridNotifierPredicates.hpp:51
Definition: GridNotifiers.hpp:305
std::weak_ptr< Horizon::Zone::Unit > _initial_source
Definition: GridNotifiers.hpp:306
void Visit(GridRefManager< unit_ns(Monster)> &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:330
void Visit(GridRefManager< unit_ns(NPC)> &m)
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
std::shared_ptr< Horizon::Zone::SkillExecution > _skill_execution
Definition: GridNotifiers.hpp:309
void Visit(GridRefManager< unit_ns(Pet)> &m)
std::weak_ptr< Horizon::Zone::Unit > _initial_target
Definition: GridNotifiers.hpp:307
void Visit(GridRefManager< unit_ns(Player)> &m)
void apply(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:524
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:308
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)
Definition: GridNotifiers.hpp:311
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
void Visit(GridRefManager< unit_ns(Elemental)> &m)
Definition: GridNotifiers.hpp:335
std::weak_ptr< Horizon::Zone::Unit > _initial_source
Definition: GridNotifiers.hpp:336
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:360
void Visit(GridRefManager< unit_ns(Player)> &m)
void Visit(GridRefManager< unit_ns(Pet)> &m)
MapCoords _cell
Definition: GridNotifiers.hpp:337
std::shared_ptr< Horizon::Zone::SkillExecution > _skill_execution
Definition: GridNotifiers.hpp:339
void Visit(GridRefManager< unit_ns(NPC)> &m)
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:338
void apply(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:565
GridExecuteSkillInCell(const std::shared_ptr< Horizon::Zone::Unit > &source, MapCoords cell, std::shared_ptr< Horizon::Zone::SkillExecution > skill_execution, s_grid_apply_in_area_config aoe_config)
Definition: GridNotifiers.hpp:341
void Visit(GridRefManager< unit_ns(Monster)> &m)
void Visit(GridRefManager< unit_ns(Elemental)> &m)
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
Definition: GridNotifiers.hpp:162
void Visit(GridRefManager< unit_ns(Elemental)> &m)
GridMonsterAIActiveSearchTarget(const std::shared_ptr< Horizon::Zone::Units::Monster > &monster)
Definition: GridNotifiers.hpp:165
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
std::weak_ptr< Horizon::Zone::Units::Monster > _monster
Definition: GridNotifiers.hpp:163
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:178
void search(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:316
void Visit(GridRefManager< unit_ns(Player)> &m)
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
Definition: GridNotifiers.hpp:182
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:198
void Visit(GridRefManager< unit_ns(Player)> &m)
void search(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:370
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
std::weak_ptr< Horizon::Zone::Units::Monster > _monster
Definition: GridNotifiers.hpp:183
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
GridMonsterAIChangeChaseTarget(const std::shared_ptr< Horizon::Zone::Units::Monster > &monster)
Definition: GridNotifiers.hpp:185
void Visit(GridRefManager< unit_ns(Elemental)> &m)
Definition: GridNotifiers.hpp:145
void perform(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:286
GridMonsterActiveAIExecutor(const std::shared_ptr< Horizon::Zone::Units::Player > &player)
Definition: GridNotifiers.hpp:148
void Visit(GridRefManager< unit_ns(Monster)> &m)
std::weak_ptr< Horizon::Zone::Units::Player > _player
Definition: GridNotifiers.hpp:146
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:158
Definition: GridNotifiers.hpp:202
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:216
RangeCheckPredicate _predicate
Definition: GridNotifiers.hpp:204
void Visit(GridRefManager< unit_ns(NPC)> &m)
GridNPCTrigger(const std::shared_ptr< Horizon::Zone::Unit > &unit)
Definition: GridNotifiers.hpp:206
void check_and_trigger(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:409
std::weak_ptr< Horizon::Zone::Unit > _source
Definition: GridNotifiers.hpp:203
Definition: GridNotifiers.hpp:220
void notify(GridRefManager< unit_ns(Player)> &m)
Definition: GridNotifiers.cpp:50
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:234
ByteBuffer _buf
Definition: GridNotifiers.hpp:222
void Visit(GridRefManager< unit_ns(Player)> &m)
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:221
GridPlayerNotifier(ByteBuffer &buf, const std::shared_ptr< Horizon::Zone::Unit > &unit, grid_notifier_type type=GRID_NOTIFY_AREA)
Definition: GridNotifiers.hpp:225
grid_notifier_type _type
Definition: GridNotifiers.hpp:223
Definition: GridNotifiers.hpp:251
void Visit(GridRefManager< unit_ns(Pet)> &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:273
void Visit(GridRefManager< unit_ns(Monster)> &m)
std::weak_ptr< Horizon::Zone::Unit > _target
Definition: GridNotifiers.hpp:253
void apply(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:443
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
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)
Definition: GridNotifiers.hpp:257
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:255
void Visit(GridRefManager< unit_ns(NPC)> &m)
s_grid_sc_apply_in_skill_area_config _sc_config
Definition: GridNotifiers.hpp:254
void Visit(GridRefManager< unit_ns(Player)> &m)
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
void Visit(GridRefManager< unit_ns(Elemental)> &m)
std::weak_ptr< Horizon::Zone::Unit > _source
Definition: GridNotifiers.hpp:252
Definition: GridNotifiers.hpp:278
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
std::weak_ptr< Horizon::Zone::Unit > _source
Definition: GridNotifiers.hpp:279
void Visit(GridRefManager< unit_ns(Player)> &m)
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:300
GridSCRemoveInSkillArea(const std::shared_ptr< Horizon::Zone::Unit > &source, const std::shared_ptr< Horizon::Zone::Unit > &target, int sc_type, s_grid_apply_in_area_config aoe_config)
Definition: GridNotifiers.hpp:284
void apply(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:483
std::weak_ptr< Horizon::Zone::Unit > _target
Definition: GridNotifiers.hpp:280
void Visit(GridRefManager< unit_ns(Elemental)> &m)
s_grid_apply_in_area_config _aoe_config
Definition: GridNotifiers.hpp:281
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
int _sc_type
Definition: GridNotifiers.hpp:282
void Visit(GridRefManager< unit_ns(Pet)> &m)
void Visit(GridRefManager< unit_ns(NPC)> &m)
void Visit(GridRefManager< unit_ns(Monster)> &m)
Definition: GridNotifiers.hpp:398
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:399
void Visit(GridRefManager< unit_ns(Player)> &m)
GridUnitBasicAttackNotifier(const std::shared_ptr< Horizon::Zone::Unit > &unit, s_grid_unit_basic_attack_config config)
Definition: GridNotifiers.hpp:402
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:667
s_grid_unit_basic_attack_config _config
Definition: GridNotifiers.hpp:400
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:412
Definition: GridNotifiers.hpp:64
GridUnitExistenceNotifier(const std::shared_ptr< Horizon::Zone::Unit > &unit, unit_viewport_notification_type notif_type)
Definition: GridNotifiers.hpp:68
unit_viewport_notification_type _notif_type
Definition: GridNotifiers.hpp:66
void Visit(GridRefManager< unit_ns(Player)> &m)
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:120
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:65
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:78
Definition: GridNotifiers.hpp:440
void Visit(GridRefManager< unit_ns(Player)> &m)
s_grid_notify_item_drop_entry _entry
Definition: GridNotifiers.hpp:441
GridUnitItemDropNotifier(s_grid_notify_item_drop_entry entry)
Definition: GridNotifiers.hpp:443
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:732
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:453
Definition: GridNotifiers.hpp:99
void Visit(GridRefManager< unit_ns(Player)> &m)
bool _new_entry
Definition: GridNotifiers.hpp:101
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:113
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:211
GridUnitMovementNotifier(const std::shared_ptr< Horizon::Zone::Unit > &unit, bool new_entry=false)
Definition: GridNotifiers.hpp:103
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:100
Definition: GridNotifiers.hpp:416
GridUnitMovementStopNotifier(int unit_guid, int pos_x, int pos_y)
Definition: GridNotifiers.hpp:420
int _pos_x
Definition: GridNotifiers.hpp:418
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:701
int _unit_guid
Definition: GridNotifiers.hpp:417
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:430
int _pos_y
Definition: GridNotifiers.hpp:418
void Visit(GridRefManager< unit_ns(Player)> &m)
Definition: GridNotifiers.hpp:117
void Visit(GridRefManager< unit_ns(Skill)> &m)
void Visit(GridRefManager< unit_ns(Player)> &m)
GridUnitSearcher(uint32_t guid)
Definition: GridNotifiers.hpp:121
void Visit(GridRefManager< unit_ns(Item)> &m)
void search(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:254
void Visit(GridRefManager< unit_ns(Mercenary)> &m)
GUIDCheckPredicate _predicate
Definition: GridNotifiers.hpp:119
void Visit(GridRefManager< unit_ns(Elemental)> &m)
std::weak_ptr< Horizon::Zone::Unit > _result
Definition: GridNotifiers.hpp:118
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:141
void Visit(GridRefManager< unit_ns(Pet)> &m)
std::shared_ptr< Horizon::Zone::Unit > get_result() const
Definition: GridNotifiers.cpp:273
void Visit(GridRefManager< unit_ns(Homunculus)> &m)
void Visit(GridRefManager< unit_ns(NPC)> &m)
void Visit(GridRefManager< unit_ns(Monster)> &m)
Definition: GridNotifiers.hpp:374
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:389
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:375
s_unit_skill_use_notifier_config _config
Definition: GridNotifiers.hpp:377
GridUnitSkillUseNotifier(const std::shared_ptr< Horizon::Zone::Unit > &unit, grid_unit_skill_use_notification_type notification_type, s_unit_skill_use_notifier_config config)
Definition: GridNotifiers.hpp:379
void Visit(GridRefManager< unit_ns(Player)> &m)
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:603
grid_unit_skill_use_notification_type _notification_type
Definition: GridNotifiers.hpp:376
Definition: GridNotifiers.hpp:82
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:83
void notify(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:175
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:95
void Visit(GridRefManager< unit_ns(Player)> &m)
GridUnitSpawnNotifier(const std::shared_ptr< Horizon::Zone::Unit > &unit)
Definition: GridNotifiers.hpp:85
Definition: GridNotifiers.hpp:41
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(Item)> &m)
void Visit(GridRefManager< unit_ns(Player)> &m)
void Visit(GridRefManager< unit_ns(NPC)> &m)
void Visit(GridRefManager< unit_ns(Pet)> &m)
void Visit(GridRefManager< unit_ns(Monster)> &m)
GridViewPortUpdater(const std::shared_ptr< Horizon::Zone::Unit > &unit)
Definition: GridNotifiers.hpp:44
void update(GridRefManager< T > &m)
Definition: GridNotifiers.cpp:83
std::weak_ptr< Horizon::Zone::Unit > _unit
Definition: GridNotifiers.hpp:42
void Visit(GridRefManager< NOT_INTERESTED > &)
Definition: GridNotifiers.hpp:60
void Visit(GridRefManager< unit_ns(Skill)> &m)
Definition: GridNotifiers.hpp:243
int aoe_range
Definition: GridNotifiers.hpp:244
int aoe_target_mask
Definition: GridNotifiers.hpp:245
Definition: GridNotifiers.hpp:434
int guid
Definition: GridNotifiers.hpp:435
int show_drop_effect
Definition: GridNotifiers.hpp:436
int item_id
Definition: GridNotifiers.hpp:435
int y
Definition: GridNotifiers.hpp:435
int type
Definition: GridNotifiers.hpp:435
int drop_effect_mode
Definition: GridNotifiers.hpp:436
int x
Definition: GridNotifiers.hpp:435
int amount
Definition: GridNotifiers.hpp:435
int x_area
Definition: GridNotifiers.hpp:435
int is_identified
Definition: GridNotifiers.hpp:435
int y_area
Definition: GridNotifiers.hpp:435
Definition: GridNotifiers.hpp:238
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
Definition: GridNotifiers.hpp:393
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
Definition: GridNotifiers.hpp:364
int target_guid
Definition: GridNotifiers.hpp:365
int damage_value
Definition: GridNotifiers.hpp:365
zc_notify_act_3_action_types action_type
Definition: GridNotifiers.hpp:367
int item_id
Definition: GridNotifiers.hpp:368
int source_guid
Definition: GridNotifiers.hpp:365
int target_x
Definition: GridNotifiers.hpp:369
int element
Definition: GridNotifiers.hpp:370
int cast_time
Definition: GridNotifiers.hpp:370
int attack_motion
Definition: GridNotifiers.hpp:365
int display_value
Definition: GridNotifiers.hpp:365
int skill_lv
Definition: GridNotifiers.hpp:365
int delay_motion
Definition: GridNotifiers.hpp:366
int start_time
Definition: GridNotifiers.hpp:365
int number_of_hits
Definition: GridNotifiers.hpp:366
int skill_id
Definition: GridNotifiers.hpp:365
int target_y
Definition: GridNotifiers.hpp:369