-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathLatencyListener.java
More file actions
56 lines (47 loc) · 2.01 KB
/
LatencyListener.java
File metadata and controls
56 lines (47 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import bwapi.*;
import java.util.Random;
public class LatencyListener extends DefaultBWListener {
BWClient client;
Random random;
Game game;
Player self;
Unit[] minerals;
Unit[] workers;
Unit depot;
public void onStart() {
game = client.getGame();
self = game.self();
random = new Random();
game.setLatCom(true);
System.out.println("latcom: " + game.isLatComEnabled());
System.out.println("latcom frames: " + game.getLatencyFrames());
minerals = game.getMinerals().stream().filter(Unit::isVisible).toArray(Unit[]::new);
workers = game.getAllUnits().stream().filter(u -> u.getPlayer().equals(self) && u.getType().isWorker()).toArray(Unit[]::new);
depot = game.getAllUnits().stream().filter(u -> u.getPlayer().equals(self) && u.getType().isResourceDepot()).findFirst().get();
for (Unit worker: workers) {
worker.gather(minerals[random.nextInt(minerals.length)]);
}
System.out.println("mineralsAmout: " + self.minerals());
depot.train(self.getRace().getWorker());
}
public void onFrame() {
if (game.getFrameCount() > 2) System.exit(0);
System.out.println("FRAME: " + game.getFrameCount());
for (Unit worker: workers) {
System.out.println("Worker " + worker.getID());
System.out.println("idle: " + worker.isIdle());
System.out.println("order: " + worker.getOrder());
System.out.println("orderTargetId: " + worker.getOrderTarget());
}
System.out.println("Depot: " + depot.getID());
System.out.println("idle: " + depot.isIdle());
System.out.println("order: " + depot.getOrder());
System.out.println("orderTargetId: " + depot.getOrderTarget());
System.out.println("minerals: " + self.minerals());
}
public static void main(String[] args) {
LatencyListener bot = new LatencyListener();
bot.client = new BWClient(bot);
bot.client.startGame();
}
}