Esempio n. 1
0
 void doAttackBack() {
   if (!isAttacked() || getAggressionPlaceDistance() > PURSUE_RADIUS) {
     stateMachine.popState();
   } else if (unit.arming.acquiring()) {
     unit.arming.attack();
   } else if (unit.arming.scanning()) {
     unit.getMover().seek(unit.arming.getNearestScanned().getMover());
   } else if (getValidNearest(getAttackers()) != null) {
     unit.getMover().seek(getValidNearest(getAttackers()).getMover());
   } else {
     stateMachine.popState();
   }
 }
Esempio n. 2
0
 void doAutoAttack(ArrayList<Unit> enemies) {
   if (isAttacked()) {
     stateMachine.pushState(ATTACK_BACK);
   } else if (getPostDistance() > PURSUE_RADIUS) {
     stateMachine.popState();
   } else if (unit.arming.acquiring()) {
     unit.arming.attack();
   } else if (unit.arming.scanning()) {
     unit.getMover().seek(unit.arming.getNearestScanned().getMover());
   } else if (getValidNearest(enemies) != null) {
     unit.getMover().seek(getValidNearest(enemies).getMover());
   } else {
     stateMachine.popState();
   }
 }
Esempio n. 3
0
 void doMove() {
   post = unit.getPos();
   if (!unit.getMover().hasDestination()) {
     stateMachine.popState();
   } else {
     unit.getMover().followPath();
   }
 }
Esempio n. 4
0
 void doReturnPost() {
   if (getPostDistance() < POST_TOLERANCE) {
     stateMachine.popState();
   } else if (isAttacked()) {
     stateMachine.pushState(ATTACK_BACK);
   } else {
     unit.getMover().separate();
     unit.getMover().seek(post);
   }
 }
Esempio n. 5
0
  void doWait(double duration) {
    // let allies pass
    unit.getMover().separate();

    if (disturbTime == 0) {
      disturbTime = System.currentTimeMillis();
    } else if (disturbTime + duration < System.currentTimeMillis()) {
      disturbTime = 0;
      stateMachine.popState();
    }
  }
Esempio n. 6
0
 void doMoveAttack() {
   post = unit.getPos();
   if (!unit.getMover().hasDestination()) {
     stateMachine.popState();
   } else {
     if (unit.arming.scanning()) {
       stateMachine.pushState(AUTO_ATTACK, new ArrayList<>());
     } else {
       unit.getMover().followPath();
     }
   }
 }
Esempio n. 7
0
 void doAttack(Unit u) {
   if (u.destroyed()) {
     post = unit.getPos();
     stateMachine.popState();
   } else if (unit.arming.acquiring(u)) {
     unit.arming.attack(u);
     unit.getMover().setDestinationReached();
   } else if (!unit.getMover().hasDestination()) {
     unit.getMover().seek(u.getMover());
   } else {
     unit.getMover().followPath(u.getMover());
   }
 }
Esempio n. 8
0
 void doStop() {
   if (unit.getMover().velocity.equals(Point3D.ORIGIN)) {
     stateMachine.popState();
   }
 }