Skip to content

Commit fdfe190

Browse files
author
Bytekeeper
committed
More Spider mine fixes, and small usability improvements for BTs
1 parent 9fe1a97 commit fdfe190

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

src/main/java/org/bk/ass/bt/Parallel.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@
99
*/
1010
public class Parallel extends CompoundNode {
1111

12-
private Policy policy;
12+
private final Policy policy;
1313

1414
public enum Policy {
1515
SEQUENCE,
1616
SELECTOR
1717
}
1818

19+
public Parallel(TreeNode... children) {
20+
super(children);
21+
policy = Policy.SEQUENCE;
22+
}
23+
1924
public Parallel(Policy policy, TreeNode... children) {
2025
super(children);
2126
this.policy = policy;

src/main/java/org/bk/ass/bt/Repeat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
public class Repeat extends Decorator {
66
private final int initialLimit;
77
private int remaining;
8-
private Policy policy;
8+
private final Policy policy;
99

1010
public enum Policy {
1111
SEQUENCE,

src/main/java/org/bk/ass/sim/SuiciderBehavior.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public boolean simUnit(
3939
return false;
4040
}
4141

42+
// Spider mines are detected once they home in
43+
agent.detected = true;
4244
moveToward(frameSkip, agent, selectedEnemy, (float) Math.sqrt(selectedDistanceSquared));
4345

4446
if (selectedDistanceSquared <= agent.speedSquared) {

src/test/java/org/bk/ass/sim/SimulatorTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,6 +1138,23 @@ void spiderMineShouldDoSplashDamage() {
11381138
assertThat(simulator.getAgentsB()).isEmpty();
11391139
}
11401140

1141+
@Test
1142+
void hydrasShouldTakeCareOfSpiderMines() {
1143+
// GIVEN
1144+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
1145+
simulator.addAgentB(factory.of(UnitType.Zerg_Hydralisk).setX(96).setHealth(1));
1146+
simulator.addAgentB(factory.of(UnitType.Zerg_Hydralisk).setX(96).setHealth(1));
1147+
simulator.addAgentB(factory.of(UnitType.Zerg_Hydralisk).setX(96).setHealth(1));
1148+
simulator.addAgentB(factory.of(UnitType.Zerg_Hydralisk).setX(96).setHealth(1));
1149+
simulator.addAgentB(factory.of(UnitType.Zerg_Hydralisk).setX(96).setHealth(1));
1150+
1151+
// WHEN
1152+
simulator.simulate(20);
1153+
1154+
// THEN
1155+
assertThat(simulator.getAgentsB()).isNotEmpty();
1156+
}
1157+
11411158
@Test
11421159
void spiderMineShouldNotAttackWorker() {
11431160
// GIVEN

0 commit comments

Comments
 (0)