Example #1
0
Rect UnitUtil::GetRect(BWAPI::Unit unit)
{
    Rect r;

    r.x = unit->getLeft();
    r.y = unit->getTop();
    r.height = unit->getBottom() - unit->getTop();
    r.width = unit->getLeft() - unit->getRight();

    return r;
}
Example #2
0
void Squad::draw()
{
	if ((int)agents.size() == 0)
		return;

	if( DebugFlags::instance().getFlag(none) )
		return;

	if( !DebugFlags::instance().getFlag(squad_details) )
		return;

	// Draw  a circle around the group
	const Position center = getCenter();
	const int groupRadius = getRadius();
	Broodwar->drawCircleMap(center.x(), center.y(), groupRadius, Colors::Grey);

	// Draw a circle around the leader
	const Unit& leaderUnit = leader->getUnit();
	const int leaderX = leaderUnit.getPosition().x();
	const int leaderY = leaderUnit.getPosition().y();
	const int radius = leaderUnit.getRight() - leaderUnit.getPosition().x();
	Broodwar->drawCircleMap(leaderX, leaderY, radius + 2, Colors::Red);
	Broodwar->drawCircleMap(leaderX, leaderY, radius - 2, Colors::Orange);

	BWAPI::Unit * unitTarget;
	// Draw squad leader enemy target
	if ((unitTarget = leader->getUnitTarget()) != NULL)
	{
		const int enemyX = unitTarget->getPosition().x();
		const int enemyY = unitTarget->getPosition().y();
		const int enemyRadius = unitTarget->getRight() - unitTarget->getPosition().x();
		Broodwar->drawCircleMap(enemyX, enemyY, enemyRadius + 2, Colors::Green);
		Broodwar->drawCircleMap(enemyX, enemyY, enemyRadius - 2, Colors::Yellow);
	}

	// Draw lines from Agents to their leader
	// 	for (AgentSetIter it = agents.begin(); it != agents.end(); it++)
	// 	{
	// 		int agentX = (*it)->getUnit().getPosition().x();
	// 		int agentY = (*it)->getUnit().getPosition().y();
	// 		Broodwar->drawLineMap(agentX, agentY, leaderX, leaderY, Colors::Teal);
	// 	}
}