package it.paspiz85.nanobot.attack; import it.paspiz85.nanobot.game.TroopsInfo; import it.paspiz85.nanobot.util.Point; /** * Attack from 2 side (top-right and top-left) using half units for each side. * * @author paspiz85 * */ public final class Attack2Side extends Attack { Attack2Side() { } @Override protected void doDropUnits(final TroopsInfo troopsInfo) throws InterruptedException { final int[] attackGroup = troopsInfo.getTroopsCount(); for (int unitIdx = 0; unitIdx < attackGroup.length; unitIdx++) { final int unitCount = attackGroup[unitIdx]; // select unit platform.leftClick(getButtonAttackUnit(unitIdx + 1), true); platform.sleepRandom(100); final Point[] topToRightPoints = pointsBetweenFromToInclusive(TOP, RIGHT, unitCount / 2 + unitCount % 2); final Point[] topToLeftPoints = pointsBetweenFromToInclusive(TOP, LEFT, unitCount / 2); // drop units for (final Point[] points : new Point[][] { topToRightPoints, topToLeftPoints }) { for (final Point point : points) { platform.leftClick(point, false); platform.sleepRandom(PAUSE_BETWEEN_UNIT_DROP); } } } } @Override protected String getDescription() { return "Dropping units from 2 sides"; } }