Skip to content

Commit 976ebac

Browse files
committed
implement a big portion of Unit
1 parent 9d90f0a commit 976ebac

File tree

8 files changed

+670
-183
lines changed

8 files changed

+670
-183
lines changed

src/main/java/bwapi/Game.java

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import bwapi.values.*;
1212

1313
import java.util.*;
14+
import java.util.stream.Collectors;
15+
import java.util.stream.IntStream;
1416

1517
public class Game {
1618
final GameData gameData;
@@ -52,7 +54,12 @@ public Collection<Player> getPlayers() {
5254

5355

5456
public Collection<Unit> getAllUnits() {
55-
return units.values();
57+
Set<Unit> units = new HashSet<>();
58+
for (int id=0; id < gameData.getInitialUnitCount(); id++) {
59+
units.add(new Unit(gameData.unit(id), this));
60+
}
61+
return units;
62+
//return units.values();
5663
}
5764

5865
/*
@@ -78,9 +85,13 @@ public Collection<Bullet> getBullets() {
7885
return bullets;
7986
}
8087

81-
/*
82-
public List<Position> getNukeDots();
83-
*/
88+
89+
public Set<Position> getNukeDots() {
90+
return IntStream.range(0, gameData.nukeDotCount())
91+
.mapToObj(id -> new Position(gameData.getNukeDotX(id), gameData.getNukeDotY((id))))
92+
.collect(Collectors.toSet());
93+
}
94+
8495

8596
public Force getForce(final int forceID) {
8697
return forces.get(forceID);
@@ -93,22 +104,26 @@ public Player getPlayer(final int playerID) {
93104
public Unit getUnit(final int unitID) {
94105
return units.get(unitID);
95106
}
96-
/*
97107

98-
public Unit indexToUnit(int unitIndex);
108+
//TODO
109+
//public Unit indexToUnit(int unitIndex);
99110

100-
*/
101111
public Region getRegion(final int regionID) {
102112
return regions.get(regionID);
103113
}
104114

105-
/*
106-
public GameType getGameType() ;
107-
108-
public int getLatency();
115+
public GameType getGameType() {
116+
return GameType.gameTypes.get(gameData.gameType());
117+
}
109118

110-
public int getFrameCount();
119+
public int getLatency() {
120+
return gameData.latency();
121+
}
111122

123+
public int getFrameCount() {
124+
return gameData.frameCount();
125+
}
126+
/*
112127
public int getReplayFrameCount();
113128
114129
public int getFPS();
@@ -141,7 +156,6 @@ public Region getRegion(final int regionID) {
141156
142157
public List<Unit> getUnitsInRectangle(int left, int top, int right, int bottom);
143158
144-
public List<Unit> getUnitsInRectangle(Position topLeft, Position bottomRight);
145159
146160
public List<Unit> getUnitsInRadius(int x, int y, int radius);
147161
@@ -472,8 +486,12 @@ public Player neutral() {
472486
473487
public void setFrameSkip(int frameSkip);
474488
475-
public boolean hasPath(Position source, Position destination);
476-
489+
*/
490+
//TODO
491+
public boolean hasPath(Position source, Position destination) {
492+
return false;
493+
}
494+
/*
477495
public boolean setAlliance(Player player, boolean allied);
478496
479497
public boolean setAlliance(Player player);
@@ -495,11 +513,17 @@ public Collection<Region> getAllRegions() {
495513
return regions.values();
496514
}
497515

498-
/*
499-
public Region getRegionAt(int x, int y);
516+
//TODO
517+
public Region getRegionAt(final int x, final int y) {
518+
return null;
519+
}
500520

501-
public Region getRegionAt(Position position);
521+
//TODO
522+
public Region getRegionAt(final Position position) {
523+
return null;
524+
}
502525

526+
/*
503527
public int getLastEventTime();
504528
505529
public boolean setRevealAll();

src/main/java/bwapi/Region.java

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
import JavaBWAPIBackend.Client.GameData.RegionData;
66

7-
import java.util.List;
8-
97
public class Region {
108
private final RegionData regionData;
119
private final Game game;
@@ -40,9 +38,9 @@ public boolean isAccessible() {
4038
}
4139

4240
//TODO
43-
public List<Region> getNeighbors() {
44-
return null;
45-
}
41+
// public List<Region> getNeighbors() {
42+
// return null;
43+
// }
4644

4745
public int getBoundsLeft() {
4846
return regionData.leftMost();
@@ -61,24 +59,24 @@ public int getBoundsBottom() {
6159
}
6260

6361
//TODO
64-
public Region getClosestAccessibleRegion() {
65-
return null;
66-
}
62+
// public Region getClosestAccessibleRegion() {
63+
// return null;
64+
// }
6765

6866
//TODO
69-
public Region getClosestInaccessibleRegion() {
70-
return null;
71-
}
67+
// public Region getClosestInaccessibleRegion() {
68+
// return null;
69+
// }
7270

7371
//TODO
74-
public int getDistance(Region other) {
75-
return -1;
76-
}
72+
// public int getDistance(Region other) {
73+
// return -1;
74+
// }
7775

7876
//TODO
79-
public List<Unit> getUnits() {
80-
return null;
81-
}
77+
// public List<Unit> getUnits() {
78+
// return null;
79+
// }
8280

8381
public boolean equals(Object that){
8482
if(!(that instanceof Region)){

0 commit comments

Comments
 (0)