Skip to content

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;
};