コード例 #1
0
ファイル: PlayerShared.cpp プロジェクト: oenayet/bwapi
 //--------------------------------------------- GROUND WEAPON DAMAGE COOLDOWN ------------------------------
 int PlayerImpl::groundWeaponDamageCooldown(UnitType unit) const
 {
   int cooldown = unit.groundWeapon().damageCooldown();
   if (unit == UnitTypes::Zerg_Zergling && getUpgradeLevel(UpgradeTypes::Adrenal_Glands) > 0)
   {
     // Divide cooldown by 2
     cooldown /= 2;
     // Prevent cooldown from going out of bounds
     cooldown = clamp<int>(cooldown, 5, 250);
   }
   return cooldown;
 }
コード例 #2
0
ファイル: PlayerShared.cpp プロジェクト: RadicalZephyr/bwapi
 //--------------------------------------------- TOP SPEED --------------------------------------------------
 double PlayerImpl::topSpeed(UnitType unit) const
 {
   double speed = unit.topSpeed();
   if ((unit == UnitTypes::Terran_Vulture   && getUpgradeLevel(UpgradeTypes::Ion_Thrusters)        > 0) ||
       (unit == UnitTypes::Zerg_Overlord    && getUpgradeLevel(UpgradeTypes::Pneumatized_Carapace) > 0) ||
       (unit == UnitTypes::Zerg_Zergling    && getUpgradeLevel(UpgradeTypes::Metabolic_Boost)      > 0) ||
       (unit == UnitTypes::Zerg_Hydralisk   && getUpgradeLevel(UpgradeTypes::Muscular_Augments)    > 0) ||
       (unit == UnitTypes::Protoss_Zealot   && getUpgradeLevel(UpgradeTypes::Leg_Enhancements)     > 0) ||
       (unit == UnitTypes::Protoss_Shuttle  && getUpgradeLevel(UpgradeTypes::Gravitic_Drive)       > 0) ||
       (unit == UnitTypes::Protoss_Observer && getUpgradeLevel(UpgradeTypes::Gravitic_Boosters)    > 0) ||
       (unit == UnitTypes::Protoss_Scout    && getUpgradeLevel(UpgradeTypes::Gravitic_Thrusters)   > 0) ||
       (unit == UnitTypes::Zerg_Ultralisk   && getUpgradeLevel(UpgradeTypes::Anabolic_Synthesis)   > 0))
   {
     if ( unit == UnitTypes::Protoss_Scout )
       speed += 427/256.0;
     else
       speed = speed * 1.5;
     if ( speed < 853/256.0 )
       speed = 853/256.0;
     //acceleration *= 2;
     //turnRadius *= 2;
   }
   return speed;
 }
コード例 #3
0
ファイル: PlayerShared.cpp プロジェクト: RadicalZephyr/bwapi
 //--------------------------------------------- MAX ENERGY -------------------------------------------------
 int PlayerImpl::maxEnergy(UnitType unit) const
 {
   int energy = unit.maxEnergy();
   if ((unit == UnitTypes::Protoss_Arbiter       && getUpgradeLevel(UpgradeTypes::Khaydarin_Core)    > 0) ||
       (unit == UnitTypes::Protoss_Corsair       && getUpgradeLevel(UpgradeTypes::Argus_Jewel)       > 0) ||
       (unit == UnitTypes::Protoss_Dark_Archon   && getUpgradeLevel(UpgradeTypes::Argus_Talisman)    > 0) ||
       (unit == UnitTypes::Protoss_High_Templar  && getUpgradeLevel(UpgradeTypes::Khaydarin_Amulet)  > 0) ||
       (unit == UnitTypes::Terran_Ghost          && getUpgradeLevel(UpgradeTypes::Moebius_Reactor)   > 0) ||
       (unit == UnitTypes::Terran_Battlecruiser  && getUpgradeLevel(UpgradeTypes::Colossus_Reactor)  > 0) ||
       (unit == UnitTypes::Terran_Science_Vessel && getUpgradeLevel(UpgradeTypes::Titan_Reactor)     > 0) ||
       (unit == UnitTypes::Terran_Wraith         && getUpgradeLevel(UpgradeTypes::Apollo_Reactor)    > 0) ||
       (unit == UnitTypes::Terran_Medic          && getUpgradeLevel(UpgradeTypes::Caduceus_Reactor)  > 0) ||
       (unit == UnitTypes::Zerg_Defiler          && getUpgradeLevel(UpgradeTypes::Metasynaptic_Node) > 0) ||
       (unit == UnitTypes::Zerg_Queen            && getUpgradeLevel(UpgradeTypes::Gamete_Meiosis)    > 0) )
     energy += 50;
   return energy;
 }