BWAPI
|
00001 #pragma once 00002 #include "UnitLocationData.h" 00003 00007 class OwnUnit : public UnitLocationData 00008 { 00009 public: 00010 OwnUnit(BWAPI::Unit* unit, PrimitiveLocation* location) 00011 : UnitLocationData(unit, location) 00012 { 00013 assert(unit->getPlayer() == BWAPI::Broodwar->self()); 00014 } 00015 BWAPI::Unit* getUnit() const { return m_unit; } 00016 bool isAccessible() const { return true; } 00017 void markAsAccessible() {} 00018 void markAsInaccessible() {} 00019 00020 BWAPI::UnitType getLastType() const { return m_unit->getType(); } 00021 BWAPI::UnitType getType() const { return m_unit->getType(); } 00022 BWAPI::TilePosition getTilePosition() const { return m_unit->getTilePosition(); } 00023 BWAPI::Position getPosition() const { return m_unit->getPosition(); } 00024 bool isCompleted() const { return m_unit->isCompleted(); } 00025 bool isBeingConstructed() const { return m_unit->isBeingConstructed(); } 00026 00027 friend std::ostream& operator<<(std::ostream& out, const OwnUnit& ownUnit) 00028 { 00029 BWAPI::Unit* unit = ownUnit.getUnit(); 00030 out << "Own unit (0x" << std::nouppercase << std::hex << unit << std::dec << ") " << unit->getType().getName() << ", hit points " << unit->getHitPoints(); 00031 return out; 00032 } 00033 };