Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else if (weaponId == WeaponId::MinotaurLaserBattery) {
- std::set<CUnit*> monoceros;
- monoceros.insert(unit->orderTarget.unit);
- scbw::createBullet(weaponId, unit, x, y, unit->playerId, unit->currentDirection1);
- auto old = unit->orderTarget.unit;
- for (int i = 0; i < 5; i++) {
- auto range = hooks::getMaxWeaponRangeHook(unit, WeaponId::MinotaurLaserBattery) + 32;
- auto n = unitRangeCount(unit, CFlags::Enemy | CFlags::FrontalArc, {});
- auto newTarget = scbw::UnitFinder::getNearestTarget(
- unit->getX() - range, unit->getY() - range,
- unit->getX() + range, unit->getY() + range,
- unit, monocerosTargetingMatch(unit, monoceros)
- );
- if (newTarget != NULL
- && n.match(newTarget)) {
- monoceros.insert(newTarget);
- unit->orderTarget.unit = newTarget;
- auto newAngle = scbw::getAngle(unit->getX(), unit->getY(),
- newTarget->getX(), newTarget->getY());
- scbw::createBullet(weaponId, unit, unit->getX(), unit->getY(), unit->playerId, newAngle);
- }
- else {
- break;
- }
- }
- unit->orderTarget.unit = old;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement