EntityList
EntityList
class entity_list
{
public:
// AIHeroClient
//
// These lists returns "raw" objects
// To check visiblity you need to call is_visible
// To check target you need to call is_valid_target
//
virtual const std::vector<game_object_script>& get_all_heroes( ) = 0;
virtual const std::vector<game_object_script>& get_ally_heroes( ) = 0; // Ally heroes are all always visible
virtual const std::vector<game_object_script>& get_enemy_heroes( ) = 0;
// AIMinionClient
//
// These lists returns "raw" objects
// To check visiblity you need to call is_visible
// To check target you need to call is_valid_target
// To check minion type you can call is_monster, is_lane_minion etc.
//
virtual const std::vector<game_object_script>& get_all_minions( ) = 0;
virtual const std::vector<game_object_script>& get_ally_minions( ) = 0; // Ally minions are all always visible
// AIMinionClient
//
// These lists returns already prepered objects
//
// They are visible and can be attacked
// You don't need to call is_visible and is_valid_target
//
virtual const std::vector<game_object_script>& get_enemy_minions( ) = 0;
virtual const std::vector<game_object_script>& get_plants_minions( ) = 0;
virtual const std::vector<game_object_script>& get_jugnle_mobs_minions( ) = 0;
virtual const std::vector<game_object_script>& get_barrels_minions( ) = 0;
// AIMinionClient
//
// Minions which are not in any other lists
//
// They are visible and can't be attacked
//
virtual const std::vector<game_object_script>& get_other_minion_objects( ) = 0;
// SpawnPoint
//
// Returns map spawn points
//
virtual const std::vector<game_object_script>& get_all_spawnpoints( ) = 0;
// HQ
//
// Returns map nexuses
//
virtual const std::vector<game_object_script>& get_all_nexus( ) = 0;
// AITurrentClient
//
// These lists returns "raw" objects
// To check visiblity you need to call is_visible
// To check target you need to call is_valid_target
//
virtual const std::vector<game_object_script>& get_all_turrets( ) = 0;
virtual const std::vector<game_object_script>& get_ally_turrets( ) = 0; // Ally turrets are all always visible
virtual const std::vector<game_object_script>& get_enemy_turrets( ) = 0;
// BarracksDampener
//
// These lists returns "raw" objects
// To check visiblity you need to call is_visible
// To check target you need to call is_valid_target
//
virtual const std::vector<game_object_script>& get_all_inhibitors( ) = 0;
virtual const std::vector<game_object_script>& get_ally_inhibitors( ) = 0; // Ally inhibitors are all always visible
virtual const std::vector<game_object_script>& get_enemy_inhibitors( ) = 0;
// Get object by id
//
// If not found returns nullptr
//
virtual game_object_script get_object( uint16_t id ) = 0;
// Returns current maximum capability of object list
//
virtual uint32_t get_max_objects( ) = 0;
// AIMinionClient
//
// Returns enemy wards list
// They are visible and can be attacked
// You don't need to call is_visible and is_valid_target
//
virtual const std::vector<game_object_script>& get_enemy_wards( ) = 0;
// Get object by network id
//
// If not found returns nullptr
//
virtual game_object_script get_object_by_network_id( std::uint32_t network_id ) = 0;
// AttackableUnit
//
// Returns all attackable objects
// They are visible and can be attacked
// You don't need to call is_visible and is_valid_target
//
virtual const std::vector<game_object_script>& get_attackable_objects( ) = 0;
};