本文整理汇总了C++中bwapi::UnitType::mineralPrice方法的典型用法代码示例。如果您正苦于以下问题:C++ UnitType::mineralPrice方法的具体用法?C++ UnitType::mineralPrice怎么用?C++ UnitType::mineralPrice使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bwapi::UnitType
的用法示例。
在下文中一共展示了UnitType::mineralPrice方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAttackPriority
// get the attack priority of a type in relation to a zergling
int MeleeManager::getAttackPriority(BWAPI::Unit attacker, BWAPI::Unit unit)
{
BWAPI::UnitType type = unit->getType();
if (attacker->getType() == BWAPI::UnitTypes::Protoss_Dark_Templar
&& unit->getType() == BWAPI::UnitTypes::Terran_Missile_Turret
&& (BWAPI::Broodwar->self()->deadUnitCount(BWAPI::UnitTypes::Protoss_Dark_Templar) == 0))
{
return 13;
}
if (attacker->getType() == BWAPI::UnitTypes::Protoss_Dark_Templar && unit->getType().isWorker())
{
return 12;
}
// highest priority is something that can attack us or aid in combat
if (type == BWAPI::UnitTypes::Terran_Bunker)
{
return 11;
}
else if (type == BWAPI::UnitTypes::Terran_Medic ||
(type.groundWeapon() != BWAPI::WeaponTypes::None && !type.isWorker()) ||
type == BWAPI::UnitTypes::Terran_Bunker ||
type == BWAPI::UnitTypes::Protoss_High_Templar ||
type == BWAPI::UnitTypes::Protoss_Reaver ||
(type.isWorker() && unitNearChokepoint(unit)))
{
return 10;
}
// next priority is worker
else if (type.isWorker())
{
return 9;
}
// next is special buildings
else if (type == BWAPI::UnitTypes::Zerg_Spawning_Pool)
{
return 5;
}
// next is special buildings
else if (type == BWAPI::UnitTypes::Protoss_Pylon)
{
return 5;
}
// next is buildings that cost gas
else if (type.gasPrice() > 0)
{
return 4;
}
else if (type.mineralPrice() > 0)
{
return 3;
}
// then everything else
else
{
return 1;
}
}
示例2: getAttackPriority
// get the attack priority of a type in relation to a zergling
int LurkerManager::getAttackPriority(BWAPI::Unit LurkerUnit, BWAPI::Unit target)
{
BWAPI::UnitType LurkerType = LurkerUnit->getType();
BWAPI::UnitType targetType = target->getType();
bool isThreat = LurkerType.isFlyer() ? targetType.airWeapon() != BWAPI::WeaponTypes::None : targetType.groundWeapon() != BWAPI::WeaponTypes::None;
if (target->getType().isWorker())
{
isThreat = false;
}
if (target->getType() == BWAPI::UnitTypes::Zerg_Larva || target->getType() == BWAPI::UnitTypes::Zerg_Egg)
{
return 0;
}
// if the target is building something near our base something is fishy
BWAPI::Position ourBasePosition = BWAPI::Position(BWAPI::Broodwar->self()->getStartLocation());
if (target->getType().isWorker() && (target->isConstructing() || target->isRepairing()) && target->getDistance(ourBasePosition) < 1200)
{
return 100;
}
if (target->getType().isBuilding() && (target->isCompleted() || target->isBeingConstructed()) && target->getDistance(ourBasePosition) < 1200)
{
return 90;
}
// highest priority is something that can attack us or aid in combat
if (targetType == BWAPI::UnitTypes::Terran_Bunker || isThreat)
{
return 11;
}
// next priority is worker
else if (targetType.isWorker())
{
return 11;
}
// next is special buildings
else if (targetType == BWAPI::UnitTypes::Protoss_Pylon)
{
return 5;
}
// next is buildings that cost gas
else if (targetType.gasPrice() > 0)
{
return 4;
}
else if (targetType.mineralPrice() > 0)
{
return 3;
}
// then everything else
else
{
return 50;
}
}
示例3: hasResources
bool BuildOrderManager::hasResources(BWAPI::UnitType t)
{
if (BWAPI::Broodwar->self()->cumulativeMinerals()-this->usedMinerals<t.mineralPrice())
return false;
if (BWAPI::Broodwar->self()->cumulativeGas()-this->usedGas<t.gasPrice())
return false;
return true;
}
示例4: hasResources
bool BuildOrderManager::hasResources(BWAPI::UnitType t, int time)
{
pair<int, Resources> res;
res.first=time;
res.second.minerals=t.mineralPrice();
res.second.gas=t.gasPrice();
bool ret=hasResources(res);
return ret;
}
示例5: addBuildingTask
// add a new building to be constructed
void BuildingManager::addBuildingTask(BWAPI::UnitType type, BWAPI::TilePosition desiredLocation, bool isGasSteal)
{
_reservedMinerals += type.mineralPrice();
_reservedGas += type.gasPrice();
Building b(type, desiredLocation);
b.isGasSteal = isGasSteal;
b.status = BuildingStatus::Unassigned;
_buildings.push_back(b);
}
示例6: addBuildingTask
// add a new building to be constructed
void BuildingManager::addBuildingTask(BWAPI::UnitType type, BWAPI::TilePosition desiredLocation) {
if (debugMode) { BWAPI::Broodwar->printf("Issuing addBuildingTask: %s", type.getName().c_str()); }
totalBuildTasks++;
// reserve the resources for this building
reservedMinerals += type.mineralPrice();
reservedGas += type.gasPrice();
// set it up to receive a worker
buildingData.addBuilding(ConstructionData::Unassigned, Building(type, desiredLocation));
}
示例7: setShortName
// UnitType constructor
ActionTypeData::ActionTypeData(BWAPI::UnitType t, const ActionID id)
: type (UnitType)
, unit (t)
, raceID (GetRaceID(t.getRace()))
, actionID (id)
, mineralPriceVal (t.mineralPrice() * Constants::RESOURCE_SCALE)
, gasPriceVal (t.gasPrice() * Constants::RESOURCE_SCALE)
, supplyRequiredVal (t.supplyRequired())
, supplyProvidedVal (t.supplyProvided())
, buildTimeVal (t.buildTime())
, numberProduced (1)
, name (t.getName())
, metaName (t.getName())
, building (t.isBuilding())
, worker (t.isWorker())
, refinery (t.isRefinery())
, resourceDepot (t.isResourceDepot())
, supplyProvider (t.supplyProvided() > 0 && !t.isResourceDepot())
, canProduceBool (t.isBuilding() && t.canProduce())
, canAttackBool (t.canAttack())
, whatBuildsUnitType (t.whatBuilds().first)
, addon (t.isAddon())
, morphed (false)
, reqAddon (false)
, reqAddonID (0)
{
if (t == BWAPI::UnitTypes::Zerg_Zergling || t == BWAPI::UnitTypes::Zerg_Scourge)
{
numberProduced = 2;
}
if (t == BWAPI::UnitTypes::Zerg_Lair ||
t == BWAPI::UnitTypes::Zerg_Hive ||
t == BWAPI::UnitTypes::Zerg_Greater_Spire ||
t == BWAPI::UnitTypes::Zerg_Lurker ||
t == BWAPI::UnitTypes::Zerg_Guardian ||
t == BWAPI::UnitTypes::Zerg_Sunken_Colony ||
t == BWAPI::UnitTypes::Zerg_Spore_Colony)
{
morphed = true;
}
setShortName();
}
示例8: spendResources
void BuildOrderManager::spendResources(BWAPI::UnitType t)
{
this->usedMinerals+=t.mineralPrice();
this->usedGas+=t.gasPrice();
}
示例9: getPriorityDefault
int RangedManager::getPriorityDefault(BWAPI::Unit rangedUnit, BWAPI::Unit target)
{
BWAPI::UnitType rangedType = rangedUnit->getType();
BWAPI::UnitType targetType = target->getType();
if (target->getType() == BWAPI::UnitTypes::Zerg_Overlord)
return 1;
if (target->getType() == BWAPI::UnitTypes::Protoss_Photon_Cannon
|| target->getType() == BWAPI::UnitTypes::Zerg_Sunken_Colony)
{
return 8;
}
if (rangedUnit->getType() == BWAPI::UnitTypes::Zerg_Scourge)
{
if (target->getType() == BWAPI::UnitTypes::Protoss_Carrier)
{
return 100;
}
if (target->getType() == BWAPI::UnitTypes::Protoss_Corsair)
{
return 90;
}
}
bool isThreat = rangedType.isFlyer() ? targetType.airWeapon() != BWAPI::WeaponTypes::None : targetType.groundWeapon() != BWAPI::WeaponTypes::None;
if (target->getType().isWorker())
{
isThreat = false;
}
if (target->getType() == BWAPI::UnitTypes::Zerg_Larva || target->getType() == BWAPI::UnitTypes::Zerg_Egg)
{
return 0;
}
if (rangedUnit->isFlying() && target->getType() == BWAPI::UnitTypes::Protoss_Carrier)
{
return 101;
} // if the target is building something near our base something is fishy
// highest priority is something that can attack us or aid in combat
if (targetType == BWAPI::UnitTypes::Terran_Bunker || isThreat)
{
return 11;
}
// next priority is worker
else if (targetType.isWorker())
{
if (order.getType() != SquadOrderTypes::Defend&&BWTA::getRegion(rangedUnit->getPosition()) != BWTA::getRegion(BWAPI::Broodwar->self()->getStartLocation()))
{
return 4;
}
else
return 1;
}
// next is special buildings
else if (targetType == BWAPI::UnitTypes::Zerg_Spawning_Pool)
{
return 5;
}
// next is special buildings
else if (targetType == BWAPI::UnitTypes::Protoss_Pylon)
{
return 5;
}
// next is buildings that cost gas
else if (targetType.gasPrice() > 0)
{
return 4;
}
else if (targetType.mineralPrice() > 0)
{
return 3;
}
// then everything else
else
{
return 1;
}
}
示例10: getPriorityDefault
int InterceptorManager::getPriorityDefault(BWAPI::Unit rangedUnit, BWAPI::Unit target)
{
BWAPI::UnitType rangedType = rangedUnit->getType();
BWAPI::UnitType targetType = target->getType();
if (target->getType() == BWAPI::UnitTypes::Protoss_Photon_Cannon
|| target->getType() == BWAPI::UnitTypes::Zerg_Sunken_Colony)
{
return 8;
}
if (rangedUnit->getType() == BWAPI::UnitTypes::Zerg_Scourge)
{
if (target->getType() == BWAPI::UnitTypes::Protoss_Carrier)
{
return 100;
}
if (target->getType() == BWAPI::UnitTypes::Protoss_Corsair)
{
return 90;
}
}
bool isThreat = rangedType.isFlyer() ? targetType.airWeapon() != BWAPI::WeaponTypes::None : targetType.groundWeapon() != BWAPI::WeaponTypes::None;
if (target->getType().isWorker())
{
isThreat = false;
}
if (target->getType() == BWAPI::UnitTypes::Zerg_Larva || target->getType() == BWAPI::UnitTypes::Zerg_Egg)
{
return 0;
}
if (rangedUnit->isFlying() && target->getType() == BWAPI::UnitTypes::Protoss_Carrier)
{
return 101;
}
// if the target is building something near our base something is fishy
BWAPI::Position ourBasePosition = BWAPI::Position(BWAPI::Broodwar->self()->getStartLocation());
if (target->getType().isWorker() && (target->isConstructing() || target->isRepairing()) && target->getDistance(ourBasePosition) < 1200)
{
return 100;
}
if (target->getType().isBuilding() && (target->isCompleted() || target->isBeingConstructed()) && target->getDistance(ourBasePosition) < 1200)
{
return 90;
}
// highest priority is something that can attack us or aid in combat
if (targetType == BWAPI::UnitTypes::Terran_Bunker || isThreat)
{
return 11;
}
// next priority is worker
else if (targetType.isWorker())
{
if (rangedUnit->getType() == BWAPI::UnitTypes::Terran_Vulture)
{
return 11;
}
return 11;
}
// next is special buildings
else if (targetType == BWAPI::UnitTypes::Zerg_Spawning_Pool)
{
return 5;
}
// next is special buildings
else if (targetType == BWAPI::UnitTypes::Protoss_Pylon)
{
return 5;
}
// next is buildings that cost gas
else if (targetType.gasPrice() > 0)
{
return 4;
}
else if (targetType.mineralPrice() > 0)
{
return 3;
}
// then everything else
else
{
return 1;
}
}
示例11:
Resources::Resources(BWAPI::UnitType type)
{
minerals = type.mineralPrice();
gas = type.gasPrice();
supply = type.supplyRequired();
}