Horizon Official Technical Documentation
Elemental.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_ENTITIES_ELEMENTAL_HPP
31#define HORIZON_ZONE_GAME_ENTITIES_ELEMENTAL_HPP
32
35
36namespace Horizon
37{
38namespace Zone
39{
40class Map;
41namespace Units
42{
43class Elemental : public Mob, public GridObject<Elemental>
44{
45public:
46 Elemental(uint64_t uuid, std::shared_ptr<Map> map, MapCoords mcoords);
47 ~Elemental();
48
49 void stop_movement() override;
50 void on_pathfinding_failure() override;
51 void on_movement_begin(int32_t time) override;
52 void on_movement_step() override;
53 void on_movement_end() override;
54
55 void on_status_effect_start(std::shared_ptr<status_change_entry> sce) override;
56 void on_status_effect_end(std::shared_ptr<status_change_entry> sce) override;
57 void on_status_effect_change(std::shared_ptr<status_change_entry> sce) override;
58};
59}
60}
61}
62
63#endif /* HORIZON_ZONE_GAME_ENTITIES_ELEMENTAL_HPP */
Definition: GridObject.hpp:42
std::shared_ptr< Map > map()
Map & Map Container.
Definition: Unit.hpp:165
uint64_t uuid() const
Unit Data.
Definition: Unit.hpp:140
Definition: Elemental.hpp:44
Elemental(uint64_t uuid, std::shared_ptr< Map > map, MapCoords mcoords)
Definition: Elemental.cpp:35
void on_movement_step() override
Definition: Elemental.cpp:49
void on_pathfinding_failure() override
Definition: Elemental.cpp:47
void on_status_effect_end(std::shared_ptr< status_change_entry > sce) override
Definition: Elemental.cpp:53
~Elemental()
Definition: Elemental.cpp:41
void on_movement_end() override
Definition: Elemental.cpp:50
void stop_movement() override
Definition: Elemental.cpp:46
void on_status_effect_start(std::shared_ptr< status_change_entry > sce) override
Definition: Elemental.cpp:52
void on_status_effect_change(std::shared_ptr< status_change_entry > sce) override
Definition: Elemental.cpp:54
void on_movement_begin(int32_t time) override
Definition: Elemental.cpp:48
Definition: Mob.hpp:45
Definition: Element.hpp:7