//--------------------------------------------- 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; }
//--------------------------------------------- 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; }
//--------------------------------------------- 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; }