Horizon Official Technical Documentation
GridNotifiers.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 * \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 *
11 * Copyright (c) 2019 Sagun K. (sagunxp@gmail.com).
12 * Copyright (c) 2019 Horizon Dev Team.
13 *
14 * Base Author - Sagun K. (sagunxp@gmail.com)
15 *
16 * This library is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this library. If not, see <http://www.gnu.org/licenses/>.
28 **************************************************/
29
30#ifndef HORIZON_ZONE_GAME_MAP_GRIDNOTIFIERS_HPP
31#define HORIZON_ZONE_GAME_MAP_GRIDNOTIFIERS_HPP
32
38
39#define unit_ns(class) Horizon::Zone::Units::class
41{
42 std::weak_ptr<Horizon::Zone::Unit> _unit;
43
44 explicit GridViewPortUpdater(const std::shared_ptr<Horizon::Zone::Unit>& unit) : _unit(unit) { }
45
46 template <class T>
48
51 void Visit(GridRefManager<unit_ns(Elemental)> &m);
52 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
53 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
55 void Visit(GridRefManager<unit_ns(Monster)> &m);
56 void Visit(GridRefManager<unit_ns(Skill)> &m);
57 void Visit(GridRefManager<unit_ns(Item)> &m);
58
59 template<class NOT_INTERESTED>
61};
62
64{
65 std::weak_ptr<Horizon::Zone::Unit> _unit;
67
68 explicit GridUnitExistenceNotifier(const std::shared_ptr<Horizon::Zone::Unit>& unit, unit_viewport_notification_type notif_type)
69 : _unit(unit), _notif_type(notif_type)
70 { }
71
72 template <class T>
74
76
77 template<class NOT_INTERESTED>
79};
80
82{
83 std::weak_ptr<Horizon::Zone::Unit> _unit;
84
85 explicit GridUnitSpawnNotifier(const std::shared_ptr<Horizon::Zone::Unit>& unit)
86 : _unit(unit)
87 { }
88
89 template <class T>
91
93
94 template<class NOT_INTERESTED>
96};
97
99{
100 std::weak_ptr<Horizon::Zone::Unit> _unit;
101 bool _new_entry{ false };
102
103 explicit GridUnitMovementNotifier(const std::shared_ptr<Horizon::Zone::Unit>& unit, bool new_entry = false)
104 : _unit(unit), _new_entry(new_entry)
105 { }
106
107 template <class T>
108 void notify(GridRefManager<T> &m);
109
111
112 template<class NOT_INTERESTED>
114};
115
117{
118 std::weak_ptr<Horizon::Zone::Unit> _result;
120
121 explicit GridUnitSearcher(uint32_t guid)
122 : _predicate(guid)
123 { }
124
125 [[nodiscard]] std::shared_ptr<Horizon::Zone::Unit> get_result() const;
126
127 template <class T>
128 void search(GridRefManager<T> &m);
129
132 void Visit(GridRefManager<unit_ns(Elemental)> &m);
133 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
134 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
136 void Visit(GridRefManager<unit_ns(Monster)> &m);
137 void Visit(GridRefManager<unit_ns(Skill)> &m);
138 void Visit(GridRefManager<unit_ns(Item)> &m);
139
140 template<class NOT_INTERESTED>
142};
143
145{
146 std::weak_ptr<Horizon::Zone::Units::Player> _player;
147
148 explicit GridMonsterActiveAIExecutor(const std::shared_ptr<Horizon::Zone::Units::Player> &player)
149 : _player(player)
150 { }
151
152 template <class T>
153 void perform(GridRefManager<T> &m);
154
155 void Visit(GridRefManager<unit_ns(Monster)> &m);
156
157 template<class NOT_INTERESTED>
159};
160
162{
163 std::weak_ptr<Horizon::Zone::Units::Monster> _monster;
164
165 explicit GridMonsterAIActiveSearchTarget(const std::shared_ptr<Horizon::Zone::Units::Monster> &monster)
166 : _monster(monster)
167 { }
168
169 template <class T>
170 void search(GridRefManager<T> &m);
171
173 void Visit(GridRefManager<unit_ns(Elemental)> &m);
174 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
175 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
176
177 template<class NOT_INTERESTED>
179};
180
182{
183 std::weak_ptr<Horizon::Zone::Units::Monster> _monster;
184
185 explicit GridMonsterAIChangeChaseTarget(const std::shared_ptr<Horizon::Zone::Units::Monster> &monster)
186 : _monster(monster)
187 { }
188
189 template <class T>
190 void search(GridRefManager<T> &m);
191
193 void Visit(GridRefManager<unit_ns(Elemental)> &m);
194 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
195 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
196
197 template<class NOT_INTERESTED>
199};
200
202{
203 std::weak_ptr<Horizon::Zone::Unit> _source;
205
206 explicit GridNPCTrigger(const std::shared_ptr<Horizon::Zone::Unit>& unit)
207 : _source(unit), _predicate(unit)
208 { }
209
210 template <class T>
212
214
215 template<class NOT_INTERESTED>
217};
218
220{
221 std::weak_ptr<Horizon::Zone::Unit> _unit;
224
225 explicit GridPlayerNotifier(ByteBuffer &buf, const std::shared_ptr<Horizon::Zone::Unit>& unit, grid_notifier_type type = GRID_NOTIFY_AREA)
226 : _unit(unit), _buf(buf), _type(type)
227 { }
228
230
232
233 template<class NOT_INTERESTED>
235};
236
238{
239 int type{ 0 }, total_time{ 0 }, val1{ 0 }, val2{ 0 }, val3{ 0 }, val4{ 0 };
240};
241
243{
244 int aoe_range{ 0 };
246};
247
248// Searches a skillarea for an unit that is within the splash range of the target.
249// If found, the status change is applied to the target.
251{
252 std::weak_ptr<Horizon::Zone::Unit> _source;
253 std::weak_ptr<Horizon::Zone::Unit> _target;
256
257 explicit 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)
258 : _source(source), _target(target), _sc_config(sc_config), _aoe_config(aoe_config)
259 { }
260
261 template <class T>
262 void apply(GridRefManager<T> &m);
263
266 void Visit(GridRefManager<unit_ns(Elemental)> &m);
267 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
268 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
270 void Visit(GridRefManager<unit_ns(Monster)> &m);
271
272 template<class NOT_INTERESTED>
274};
275
276// Removes a status change from an unit that is within the splash range of the target and area with target as center.
278{
279 std::weak_ptr<Horizon::Zone::Unit> _source;
280 std::weak_ptr<Horizon::Zone::Unit> _target;
283
284 explicit 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)
285 : _source(source), _target(target), _sc_type(sc_type), _aoe_config(aoe_config)
286 { }
287
288 template <class T>
289 void apply(GridRefManager<T> &m);
290
293 void Visit(GridRefManager<unit_ns(Elemental)> &m);
294 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
295 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
297 void Visit(GridRefManager<unit_ns(Monster)> &m);
298
299 template<class NOT_INTERESTED>
301};
302
303// Executes a skill in an area with the target as the center.
305{
306 std::weak_ptr<Horizon::Zone::Unit> _initial_source;
307 std::weak_ptr<Horizon::Zone::Unit> _initial_target;
309 std::shared_ptr<Horizon::Zone::SkillExecution> _skill_execution;
310
311 explicit GridExecuteSkillInArea(const std::shared_ptr<Horizon::Zone::Unit>& source,
312 const std::shared_ptr<Horizon::Zone::Unit>& target,
313 std::shared_ptr<Horizon::Zone::SkillExecution> skill_execution,
315 : _initial_source(source), _initial_target(target), _skill_execution(skill_execution), _aoe_config(aoe_config)
316 { }
317
318 template <class T>
319 void apply(GridRefManager<T> &m);
320
323 void Visit(GridRefManager<unit_ns(Elemental)> &m);
324 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
325 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
327 void Visit(GridRefManager<unit_ns(Monster)> &m);
328
329 template<class NOT_INTERESTED>
331};
332
333// Executes a skill targeted at all entities in a particular map coordinate.
335{
336 std::weak_ptr<Horizon::Zone::Unit> _initial_source;
339 std::shared_ptr<Horizon::Zone::SkillExecution> _skill_execution;
340
341 explicit GridExecuteSkillInCell(const std::shared_ptr<Horizon::Zone::Unit>& source,
343 std::shared_ptr<Horizon::Zone::SkillExecution> skill_execution,
345 : _initial_source(source), _cell(cell), _skill_execution(skill_execution), _aoe_config(aoe_config)
346 { }
347
348 template <class T>
349 void apply(GridRefManager<T> &m);
350
353 void Visit(GridRefManager<unit_ns(Elemental)> &m);
354 void Visit(GridRefManager<unit_ns(Homunculus)> &m);
355 void Visit(GridRefManager<unit_ns(Mercenary)> &m);
357 void Visit(GridRefManager<unit_ns(Monster)> &m);
358
359 template<class NOT_INTERESTED>
361};
362
364{
371};
372
374{
375 std::weak_ptr<Horizon::Zone::Unit> _unit;
378
379 explicit GridUnitSkillUseNotifier(const std::shared_ptr<Horizon::Zone::Unit>& unit, grid_unit_skill_use_notification_type notification_type, s_unit_skill_use_notifier_config config)
380 : _unit(unit), _notification_type(notification_type), _config(config)
381 { }
382
383 template <class T>
384 void notify(GridRefManager<T> &m);
385
387
388 template<class NOT_INTERESTED>
390};
391
393{
395};
396
398{
399 std::weak_ptr<Horizon::Zone::Unit> _unit;
401
402 explicit GridUnitBasicAttackNotifier(const std::shared_ptr<Horizon::Zone::Unit>& unit, s_grid_unit_basic_attack_config config)
403 : _unit(unit), _config(config)
404 { }
405
406 template <class T>
407 void notify(GridRefManager<T> &m);
408
410
411 template<class NOT_INTERESTED>
413};
414
416{
417 int _unit_guid{ 0 };
418 int _pos_x{ 0 }, _pos_y{ 0 };
419
420 explicit GridUnitMovementStopNotifier(int unit_guid, int pos_x, int pos_y)
421 : _unit_guid(unit_guid), _pos_x(pos_x), _pos_y(pos_y)
422 { }
423
424 template <class T>
425 void notify(GridRefManager<T> &m);
426
428
429 template<class NOT_INTERESTED>
431};
432
434{
435 int guid{ 0 }, item_id{ 0 }, type{ 0 }, is_identified{ 0 }, x{ 0 }, y{ 0 }, x_area{ 0 }, y_area{ 0 }, amount{ 0 };
437};
438
440{
442
444 : _entry(entry)
445 { }
446
447 template <class T>
448 void notify(GridRefManager<T> &m);
449
451
452 template<class NOT_INTERESTED>
454};
455
456#undef unit_ns
457
458#endif /* HORIZON_ZONE_GAME_MAP_GRIDNOTIFIERS_HPP */
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