Horizon Official Technical Documentation
Horizon::Zone::Units::Item Class Reference

#include <Item.hpp>

+ Inheritance diagram for Horizon::Zone::Units::Item:
+ Collaboration diagram for Horizon::Zone::Units::Item:

Public Member Functions

 Item (int64_t uuid, std::shared_ptr< item_entry_data > entry, int32_t amount, std::shared_ptr< Map > map, MapCoords mcoords)
 
 Item (int64_t uuid, std::shared_ptr< Map > map, MapCoords mcoords, int is_identified, int amount, std::shared_ptr< const item_config_data > item_d)
 
 ~Item ()
 
void initialize ()
 
bool finalize () override
 
std::shared_ptr< item_entry_dataentry ()
 
std::shared_ptr< const item_config_dataconfig () const
 
int is_identified () const
 
int amount () const
 
int x_area () const
 
int y_area () const
 
void set_x_area (int x)
 
void set_y_area (int y)
 
void stop_movement () override
 
void on_pathfinding_failure () override
 
void on_movement_begin (int32_t time) override
 
void on_movement_step () override
 
void on_movement_end () override
 
virtual void on_status_effect_start (std::shared_ptr< status_change_entry > sce) override
 
virtual void on_status_effect_end (std::shared_ptr< status_change_entry > sce) override
 
virtual void on_status_effect_change (std::shared_ptr< status_change_entry > sce) override
 
- Public Member Functions inherited from Horizon::Zone::Unit
 Unit (uint64_t uuid, unit_type type, unit_type_mask type_mask, std::shared_ptr< Map > map, MapCoords map_coords)
 
 Unit (uint64_t uuid, unit_type type, unit_type_mask type_mask)
 
virtual ~Unit ()
 
bool initialize ()
 
virtual bool finalize ()
 
bool is_initialized () const
 
bool is_finalized () const
 
void set_finalized (bool finalized)
 
MapCoords const & dest_coords () const
 Movement. More...
 
virtual bool walk_to_coordinates (int16_t x, int16_t y)
 
virtual bool walk_to_unit (std::shared_ptr< Unit > unit)
 
bool is_walking () const
 
virtual void stop_movement ()=0
 
bool stop_walking (bool cancel=false, bool notify=false)
 
uint64_t uuid () const
 Unit Data. More...
 
unit_uuid s_uuid () const
 
void set_uuid (uint64_t uuid)
 
uint32_t guid ()
 
uint16_t job_id () const
 
void set_job_id (uint16_t job_id)
 
unit_posture_type posture () const
 
void set_posture (unit_posture_type posture)
 
const std::string & name () const
 
void set_name (const std::string &name)
 
directions direction () const
 
void set_direction (directions dir)
 
std::shared_ptr< Horizon::Zone::Traits::Statusstatus ()
 
void set_status (std::shared_ptr< Horizon::Zone::Traits::Status > st)
 
void force_movement_stop_internal (bool stop=false)
 
std::shared_ptr< Mapmap ()
 Map & Map Container. More...
 
void set_map (std::shared_ptr< Map > map)
 
AStar::CoordinateList get_walk_path ()
 
unit_type type () const
 Unit applications. More...
 
unit_type_mask type_mask () const
 
bool is_of_type (int type_mask)
 
template<class T >
std::shared_ptr< T > downcast ()
 
MapCoords const & map_coords () const
 Grid applications. More...
 
void set_map_coords (MapCoords const &coords)
 
GridCoords const & grid_coords () const
 
void set_grid_coords (GridCoords const &coords)
 
bool is_in_range_of (std::shared_ptr< Unit > unit, uint8_t range=MAX_VIEW_RANGE)
 
void notify_nearby_players_of_existence (unit_viewport_notification_type notif_type)
 
void notify_nearby_players_of_spawn ()
 
void notify_nearby_players_of_movement (bool new_entry=false)
 
void notify_nearby_players_of_movement_stop (MapCoords stop_coords)
 
void notify_nearby_players_of_skill_use (grid_unit_skill_use_notification_type notification_type, s_unit_skill_use_notifier_config config)
 
void notify_nearby_players_of_basic_attack (s_grid_unit_basic_attack_config config)
 
void notify_nearby_players_of_item_drop (s_grid_notify_item_drop_entry entry)
 
std::shared_ptr< Unitget_nearby_unit (uint32_t guid)
 
uint64_t get_scheduler_task_id (unit_task_schedule_group group)
 
std::map< int16_t, std::shared_ptr< status_change_entry > > & get_status_effects ()
 
void apply_status_change_in_area (std::shared_ptr< Unit > target, s_grid_sc_apply_in_skill_area_config const &config, s_grid_apply_in_area_config const &aoe_config)
 
void remove_status_change_in_area (std::shared_ptr< Unit > target, int sc_type, s_grid_apply_in_area_config const &aoe_config)
 
void execute_skill_in_area (std::shared_ptr< Unit > target, std::shared_ptr< SkillExecution > skill_execution, s_grid_apply_in_area_config const &aoe_config)
 
void execute_skill_in_cell (std::shared_ptr< Unit > target, MapCoords cell, std::shared_ptr< SkillExecution > skill_execution, s_grid_apply_in_area_config const &aoe_config)
 
void use_skill_on_target (int16_t skill_lv, int16_t skill_id, int target_guid)
 
void use_skill_on_ground (int16_t skill_lv, int16_t skill_id, int16_t pos_x, int16_t pos_y)
 
void use_skill_on_ground (int16_t skill_lv, int16_t skill_id, int16_t pos_x, int16_t pos_y, std::string contents)
 
bool status_effect_start (int type, int total_time, int val1, int val2, int val3, int val4)
 Status Effects. More...
 
bool status_effect_end (int type)
 
virtual void on_status_effect_start (std::shared_ptr< status_change_entry > sce)=0
 
virtual void on_status_effect_end (std::shared_ptr< status_change_entry > sce)=0
 
virtual void on_status_effect_change (std::shared_ptr< status_change_entry > sce)=0
 
std::shared_ptr< AStar::CoordinateListpath_to (std::shared_ptr< Unit > e)
 
int distance_from (std::shared_ptr< Unit > e)
 
virtual bool attack (std::shared_ptr< Unit > target, bool continuous=false)
 
virtual bool stop_attacking ()
 
bool target_is_attackable (std::shared_ptr< Unit > target)
 
void set_attacking (bool attacking)
 
bool is_attacking ()
 
void on_attack_end ()
 
bool is_dead ()
 
virtual void on_damage_received (std::shared_ptr< Unit > damage_dealer, int damage)
 
virtual void on_killed (std::shared_ptr< Unit > killer, bool with_drops=false, bool with_exp=false)
 
std::shared_ptr< Combatcombat ()
 Combat. More...
 
void set_combat (std::shared_ptr< Combat > combat)
 
void update (uint64_t tick)
 Extremely time-sensitive functions. More...
 
std::shared_ptr< CombatRegistrycombat_registry ()
 
bool has_damage_walk_delay ()
 Walk Delay. More...
 
void set_damage_walk_delay (bool delay)
 
void set_lockon_after_walk_completed (uint64_t target_guid, bool continuous=false)
 Lockon after walk completed. More...
 
void clear_lockon_after_walk_completed ()
 
uint64_t lockon_after_walk_completed_target_guid ()
 
- Public Member Functions inherited from Horizon::Zone::GridObject< Item >
virtual ~GridObject ()
 
bool has_valid_grid_reference () const
 
void add_grid_reference (GridRefManager< Item > &m)
 
void remove_grid_reference ()
 
GridReference< Item > & get_reference ()
 

Private Attributes

std::shared_ptr< item_entry_data_entry { nullptr }
 
std::shared_ptr< const item_config_data_config { nullptr }
 
int _is_identified { 0 }
 
int _amount { 0 }
 
int _x_area { 0 }
 
int _y_area { 0 }
 

Additional Inherited Members

- Protected Member Functions inherited from Horizon::Zone::Unit
bool schedule_walk ()
 
void walk ()
 
virtual void on_pathfinding_failure ()=0
 
virtual void on_movement_begin (int32_t time)=0
 
virtual void on_movement_step ()=0
 
virtual void on_movement_end ()=0
 

Constructor & Destructor Documentation

◆ Item() [1/2]

Item::Item ( int64_t  uuid,
std::shared_ptr< item_entry_data entry,
int32_t  amount,
std::shared_ptr< Map map,
MapCoords  mcoords 
)
explicit
38 _is_identified(entry->info.is_identified)
39{
40 _entry->amount = amount;
41}
@ UNIT_ITEM
Definition: UnitDefinitions.hpp:47
@ UNIT_MASK_ITEM
Definition: UnitDefinitions.hpp:62
std::shared_ptr< Map > map()
Map & Map Container.
Definition: Unit.hpp:165
Unit(uint64_t uuid, unit_type type, unit_type_mask type_mask, std::shared_ptr< Map > map, MapCoords map_coords)
Definition: Unit.cpp:45
uint64_t uuid() const
Unit Data.
Definition: Unit.hpp:140
std::shared_ptr< const item_config_data > _config
Definition: Item.hpp:79
std::shared_ptr< item_entry_data > _entry
Definition: Item.hpp:78
int _amount
Definition: Item.hpp:81
int _is_identified
Definition: Item.hpp:80
std::shared_ptr< item_entry_data > entry()
Definition: Item.hpp:55
int amount() const
Definition: Item.hpp:59

References _entry, and amount().

+ Here is the call graph for this function:

◆ Item() [2/2]

Item::Item ( int64_t  uuid,
std::shared_ptr< Map map,
MapCoords  mcoords,
int  is_identified,
int  amount,
std::shared_ptr< const item_config_data item_d 
)
explicit
45{
46}
int is_identified() const
Definition: Item.hpp:58

◆ ~Item()

Item::~Item ( )
49{
50
51}

Member Function Documentation

◆ amount()

int Horizon::Zone::Units::Item::amount ( ) const
inline
59{ return _amount; }

References _amount.

Referenced by Item().

+ Here is the caller graph for this function:

◆ config()

std::shared_ptr< const item_config_data > Horizon::Zone::Units::Item::config ( ) const
inline
56{ return _config; }

References _config.

◆ entry()

std::shared_ptr< item_entry_data > Horizon::Zone::Units::Item::entry ( )
inline
55{ return _entry; }

References _entry.

◆ finalize()

bool Item::finalize ( )
overridevirtual

Reimplemented from Horizon::Zone::Unit.

62{
63 return true;
64}

Referenced by Horizon::Zone::Units::Player::pickup_item().

+ Here is the caller graph for this function:

◆ initialize()

void Item::initialize ( )
54{
55 if (!Unit::initialize())
56 return;
57
58 map()->ensure_grid_for_unit(this, map_coords());
59}
bool initialize()
Definition: Unit.cpp:72
MapCoords const & map_coords() const
Grid applications.
Definition: Unit.hpp:186

References Horizon::Zone::Unit::initialize(), Horizon::Zone::Unit::map(), and Horizon::Zone::Unit::map_coords().

+ Here is the call graph for this function:

◆ is_identified()

int Horizon::Zone::Units::Item::is_identified ( ) const
inline
58{ return _is_identified; }

References _is_identified.

◆ on_movement_begin()

void Item::on_movement_begin ( int32_t  time)
overridevirtual

Implements Horizon::Zone::Unit.

75{
76
77}

◆ on_movement_end()

void Item::on_movement_end ( )
overridevirtual

Implements Horizon::Zone::Unit.

83{
84
85}

◆ on_movement_step()

void Item::on_movement_step ( )
overridevirtual

Implements Horizon::Zone::Unit.

79{
80
81}

◆ on_pathfinding_failure()

void Item::on_pathfinding_failure ( )
overridevirtual

Implements Horizon::Zone::Unit.

71{
72
73}

◆ on_status_effect_change()

void Item::on_status_effect_change ( std::shared_ptr< status_change_entry sce)
overridevirtual

Implements Horizon::Zone::Unit.

96{
97
98}

◆ on_status_effect_end()

void Item::on_status_effect_end ( std::shared_ptr< status_change_entry sce)
overridevirtual

Implements Horizon::Zone::Unit.

92{
93
94}

◆ on_status_effect_start()

void Item::on_status_effect_start ( std::shared_ptr< status_change_entry sce)
overridevirtual

Implements Horizon::Zone::Unit.

88{
89
90}

◆ set_x_area()

void Horizon::Zone::Units::Item::set_x_area ( int  x)
inline
64{ _x_area = x; }
int _x_area
Definition: Item.hpp:82

References _x_area.

◆ set_y_area()

void Horizon::Zone::Units::Item::set_y_area ( int  y)
inline
65{ _y_area = y; }
int _y_area
Definition: Item.hpp:82

References _y_area.

◆ stop_movement()

void Item::stop_movement ( )
overridevirtual

Implements Horizon::Zone::Unit.

67{
68
69}

◆ x_area()

int Horizon::Zone::Units::Item::x_area ( ) const
inline
61{ return _x_area; }

References _x_area.

◆ y_area()

int Horizon::Zone::Units::Item::y_area ( ) const
inline
62{ return _y_area; }

References _y_area.

Member Data Documentation

◆ _amount

int Horizon::Zone::Units::Item::_amount { 0 }
private

Referenced by amount().

◆ _config

std::shared_ptr<const item_config_data> Horizon::Zone::Units::Item::_config { nullptr }
private

Referenced by config().

◆ _entry

std::shared_ptr<item_entry_data> Horizon::Zone::Units::Item::_entry { nullptr }
private

Referenced by entry(), and Item().

◆ _is_identified

int Horizon::Zone::Units::Item::_is_identified { 0 }
private

Referenced by is_identified().

◆ _x_area

int Horizon::Zone::Units::Item::_x_area { 0 }
private

Referenced by set_x_area(), and x_area().

◆ _y_area

int Horizon::Zone::Units::Item::_y_area { 0 }
private

Referenced by set_y_area(), and y_area().


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