Skip to content
Snippets Groups Projects
Unit.h 2.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • #pragma once
    
    #include "Common.h"
    #include "UnitType.h"
    
    class IDABot;
    
    class Unit
    {
        mutable IDABot * m_bot;
        CCUnitID    m_unitID;
        UnitType    m_unitType;
    
        const sc2::Unit * m_unit;
    
    public:
    
        Unit();
    
        Unit(const sc2::Unit * unit, IDABot & bot);
        const sc2::Unit * getUnitPtr() const;
        const sc2::UnitTypeID & getAPIUnitType() const;
    
        bool operator < (const Unit & rhs) const;
        bool operator == (const Unit & rhs) const;
    
        const UnitType & getType() const;
    
        CCPosition getPosition() const;
        CCTilePosition getTilePosition() const;
        CCHealth getHitPoints() const;
        CCHealth getShields() const;
        CCHealth getEnergy() const;
        CCPlayer getPlayer() const;
        CCUnitID getID() const;
    
        std::vector< CCBuff > buffs() const;
    
        float getBuildPercentage() const;
        int getWeaponCooldown() const;
        bool isCompleted() const;
        bool isBeingConstructed() const;
        bool isCloaked() const;
        bool isFlying() const;
        bool isAlive() const;
        bool isPowered() const;
        bool isIdle() const;
        bool isBurrowed() const;
        bool isValid() const;
        bool isTraining() const;
        bool isConstructing(const UnitType & type) const;
    
    
        bool isBlip() const;
    
    Sopi (sofab194)'s avatar
    Sopi (sofab194) committed
        bool hasTarget() const;
        Unit getTarget() const;
    
    David Bergström's avatar
    David Bergström committed
        CCHealth getMaxHitPoints() const;
    
    Sopi Abaied's avatar
    Sopi Abaied committed
        float getProgress() const;
    
    Sofia Abaied's avatar
    Sofia Abaied committed
        sc2::AbilityID getCurrentAbilityID() const;
    
    Sopi Abaied's avatar
    Sopi Abaied committed
        void holdPosition() const;
        void patrol(const CCPosition & targetPosition) const;
        void stopDance() const;
        float getFacing() const;
        float getRadius() const;
    
        void stop           () const;
        void attackUnit     (const Unit & target) const;
        void attackMove     (const CCPosition & targetPosition) const;
        void move           (const CCPosition & targetPosition) const;
        void move           (const CCTilePosition & targetTilePosition) const;
        void rightClick     (const Unit & target) const;
        void repair         (const Unit & target) const;
        void build          (const UnitType & buildingType, CCTilePosition pos) const;
        void buildTarget    (const UnitType & buildingType, const Unit & target) const;
        void train          (const UnitType & buildingType) const;
        void morph          (const UnitType & type) const;
    
        void research       (sc2::UpgradeID upgrade) const;
    
        void ability        (sc2::AbilityID ability) const;
        void ability        (sc2::AbilityID ability, const sc2::Point2D & point) const;
        void ability        (sc2::AbilityID ability, const Unit & target) const;