|
BWAPI
|
#include <PlayerTracker.h>
Definition at line 9 of file PlayerTracker.h.
| PlayerTrackerClass::PlayerTrackerClass | ( | ) | [inline] |
Definition at line 12 of file PlayerTracker.h.
{}
| bool PlayerTrackerClass::enemyHasReseached | ( | BWAPI::TechType | tech | ) |
Definition at line 131 of file PlayerTracker.cpp.
References getEnemies(), and playerHasReseached().
{
for each(Player enemy in getEnemies())
{
if(playerHasReseached(enemy, tech))
return true;
}
return false;
}
| int PlayerTrackerClass::enemyUnitCount | ( | BWAPI::UnitType | unit, |
| Player | player = BWAPI::Broodwar->self() |
||
| ) | const |
Definition at line 177 of file PlayerTracker.cpp.
References getEnemies(), and playerUnitCount().
{
int count = 0;
for each(Player enemy in getEnemies(player))
{
count += playerUnitCount(unit, enemy);
}
return count;
}| std::set< Player > PlayerTrackerClass::getAllies | ( | Player | player = BWAPI::Broodwar->self() | ) | const |
Definition at line 157 of file PlayerTracker.cpp.
References BWAPI::Broodwar, BWAPI::Player::isAlly(), and mAllies.
Referenced by update().
{
if(player == BWAPI::Broodwar->self())
return mAllies;
std::set<Player> allies;
for each(Player ally in BWAPI::Broodwar->getPlayers())
{
if(player->isAlly(ally))
allies.insert(ally);
}
return allies;
}
| std::set< Player > PlayerTrackerClass::getEnemies | ( | Player | player = BWAPI::Broodwar->self() | ) | const |
Definition at line 142 of file PlayerTracker.cpp.
References BWAPI::Broodwar, BWAPI::Player::isEnemy(), and mEnemies.
Referenced by enemyHasReseached(), enemyUnitCount(), and update().
{
if(player == BWAPI::Broodwar->self())
return mEnemies;
std::set<Player> enemies;
for each(Player enemy in BWAPI::Broodwar->getPlayers())
{
if(player->isEnemy(enemy))
enemies.insert(enemy);
}
return enemies;
}
| const std::vector<UnitGroup>& PlayerTrackerClass::getEnemyClusters | ( | ) | [inline] |
Definition at line 34 of file PlayerTracker.h.
References mEnemyClusters.
{ return mEnemyClusters; }
| bool PlayerTrackerClass::isEnemyRace | ( | BWAPI::Race | race | ) |
Definition at line 121 of file PlayerTracker.cpp.
References mEnemyRaceInfo.
{
return mEnemyRaceInfo[race];
}
| void PlayerTrackerClass::onBegin | ( | ) |
Definition at line 9 of file PlayerTracker.cpp.
References updatePlayers().
{
updatePlayers();
}
| void PlayerTrackerClass::onDiscover | ( | Unit | unit | ) |
Definition at line 84 of file PlayerTracker.cpp.
References mResearched, BWAPI::TechTypes::Spider_Mines, BWAPI::TechTypes::Tank_Siege_Mode, BWAPI::UnitTypes::Terran_Siege_Tank_Siege_Mode, and BWAPI::UnitTypes::Terran_Vulture_Spider_Mine.
Referenced by onMorphRenegade().
{
if(unit->getType() == BWAPI::UnitTypes::Terran_Siege_Tank_Siege_Mode)
mResearched[unit->getPlayer()].insert(BWAPI::TechTypes::Tank_Siege_Mode);
else if(unit->getType() == BWAPI::UnitTypes::Terran_Vulture_Spider_Mine)
mResearched[unit->getPlayer()].insert(BWAPI::TechTypes::Spider_Mines);
}
| void PlayerTrackerClass::onMorphRenegade | ( | Unit | unit, |
| Player | previousPlayer, | ||
| BWAPI::UnitType | previousType | ||
| ) |
Definition at line 92 of file PlayerTracker.cpp.
References onDiscover().
{
onDiscover(unit);
}
| void PlayerTrackerClass::onPlayerLeft | ( | Player | player | ) |
Definition at line 79 of file PlayerTracker.cpp.
References updatePlayers().
{
updatePlayers();
}
| bool PlayerTrackerClass::playerHasReseached | ( | Player | player, |
| BWAPI::TechType | tech | ||
| ) |
Definition at line 126 of file PlayerTracker.cpp.
References mResearched.
Referenced by enemyHasReseached().
{
return mResearched[player].find(tech) != mResearched[player].end();
}
| int PlayerTrackerClass::playerUnitCount | ( | BWAPI::UnitType | unit, |
| Player | player = BWAPI::Broodwar->self() |
||
| ) | const |
Definition at line 172 of file PlayerTracker.cpp.
References Singleton< T >::Instance().
Referenced by enemyUnitCount().
{
return UnitTracker::Instance().selectAllUnits(unit, player).size();
}
| void PlayerTrackerClass::update | ( | ) |
Definition at line 14 of file PlayerTracker.cpp.
References BWAPI::Broodwar, BWAPI::Game::drawText(), BWAPI::Game::drawTextScreen(), getAllies(), UnitHelper::getClusters(), getEnemies(), BWAPI::Player::getName(), Singleton< T >::Instance(), BWAPI::UnitType::isBuilding(), UnitHelper::isStaticDefense(), BWAPI::UnitType::isWorker(), AccessTypeDef::Lost, mEnemyClusters, mEnemyRaceInfo, mShowDebugInfo, BWAPI::Races::Protoss, BWAPI::CoordinateType::Screen, BWAPI::Races::Terran, BWAPI::UnitTypes::Terran_Vulture_Spider_Mine, updatePlayers(), BWAPI::Races::Zerg, BWAPI::UnitTypes::Zerg_Egg, BWAPI::UnitTypes::Zerg_Larva, and BWAPI::UnitTypes::Zerg_Overlord.
{
if(mShowDebugInfo)
{
std::stringstream ss;
ss << "There are ";
if(mEnemyRaceInfo[BWAPI::Races::Zerg])
ss << "[Zerg]";
if(mEnemyRaceInfo[BWAPI::Races::Terran])
ss << "[Terran]";
if(mEnemyRaceInfo[BWAPI::Races::Protoss])
ss << "[Protoss]";
ss << " Enemy Races";
BWAPI::Broodwar->drawText(BWAPI::CoordinateType::Screen, 15, 5, "%s", ss.str().c_str());
int y = 20;
if(!getEnemies().empty())
{
BWAPI::Broodwar->drawTextScreen(5, y, "Enemies:");
for each(Player player in getEnemies())
{
y += 10;
BWAPI::Broodwar->drawTextScreen(15, y, "%s", player->getName().c_str());
}
}
if(!getAllies().empty())
{
y += 10;
BWAPI::Broodwar->drawTextScreen(5, y, "Allies:");
for each(Player player in getAllies())
{
y+=10;
BWAPI::Broodwar->drawTextScreen(15, y, "%s", player->getName().c_str());
}
}
}
if(BWAPI::Broodwar->getFrameCount() % 240 == 0)
updatePlayers();
UnitGroup allEnemyUnits;
for each(Unit unit in UnitTracker::Instance().selectAllEnemy())
{
if(unit->accessibility() == AccessType::Lost)
continue;
const BWAPI::UnitType &type = unit->getType();
if(type.isBuilding() && !UnitHelper::isStaticDefense(type))
continue;
if(type.isWorker() || type == BWAPI::UnitTypes::Terran_Vulture_Spider_Mine || type == BWAPI::UnitTypes::Zerg_Overlord || type == BWAPI::UnitTypes::Zerg_Larva || type == BWAPI::UnitTypes::Zerg_Egg)
continue;
allEnemyUnits.insert(unit);
}
mEnemyClusters = UnitHelper::getClusters(allEnemyUnits, 384, 1);
}
| void PlayerTrackerClass::updatePlayers | ( | ) |
Definition at line 97 of file PlayerTracker.cpp.
References BWAPI::Broodwar, BWAPI::Player::getRace(), BWAPI::Player::leftGame(), mAllies, mEnemies, and mEnemyRaceInfo.
Referenced by onBegin(), onPlayerLeft(), and update().
{
mEnemies.clear();
mAllies.clear();
mEnemyRaceInfo.clear();
for each(Player player in BWAPI::Broodwar->getPlayers())
{
if(player->leftGame())
continue;
if(player == BWAPI::Broodwar->self())
continue;
if(BWAPI::Broodwar->self()->isEnemy(player))
{
mEnemies.insert(player);
mEnemyRaceInfo[player->getRace()] = true;
}
else if(BWAPI::Broodwar->self()->isAlly(player))
mAllies.insert(player);
}
}
std::set<Player> PlayerTrackerClass::mAllies [private] |
Definition at line 38 of file PlayerTracker.h.
Referenced by getAllies(), and updatePlayers().
std::set<Player> PlayerTrackerClass::mEnemies [private] |
Definition at line 37 of file PlayerTracker.h.
Referenced by getEnemies(), and updatePlayers().
std::vector<UnitGroup> PlayerTrackerClass::mEnemyClusters [private] |
Definition at line 46 of file PlayerTracker.h.
Referenced by getEnemyClusters(), and update().
std::map<BWAPI::Race, bool> PlayerTrackerClass::mEnemyRaceInfo [private] |
Definition at line 40 of file PlayerTracker.h.
Referenced by isEnemyRace(), update(), and updatePlayers().
std::map<Player, bool> PlayerTrackerClass::mPlayerHasOffensiveUnitsNeedDetection [private] |
Definition at line 42 of file PlayerTracker.h.
std::map<Player, std::set<BWAPI::TechType> > PlayerTrackerClass::mResearched [private] |
Definition at line 44 of file PlayerTracker.h.
Referenced by onDiscover(), and playerHasReseached().
bool PlayerTrackerClass::mShowDebugInfo [private] |
Definition at line 48 of file PlayerTracker.h.
Referenced by update().
1.7.6.1