Skip to content

Commit 9fe1a97

Browse files
author
Bytekeeper
committed
Fixed spider mines not simulating splash.
1 parent 5e76441 commit 9fe1a97

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.bk.ass.bt;
22

3+
/**
4+
* Never fails, but
5+
*/
36
public class Succeeder extends Decorator {
47

58
public Succeeder(TreeNode delegate) {
@@ -8,6 +11,10 @@ public Succeeder(TreeNode delegate) {
811

912
@Override
1013
protected void updateStatusFromDelegate(NodeStatus status) {
11-
success();
14+
if (status != NodeStatus.RUNNING) {
15+
success();
16+
} else {
17+
running();
18+
}
1219
}
1320
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.bk.ass.sim;
22

3-
import static org.bk.ass.sim.AgentUtil.dealDamage;
43
import static org.bk.ass.sim.AgentUtil.distanceSquared;
54
import static org.bk.ass.sim.AgentUtil.moveToward;
65

@@ -43,7 +42,7 @@ public boolean simUnit(
4342
moveToward(frameSkip, agent, selectedEnemy, (float) Math.sqrt(selectedDistanceSquared));
4443

4544
if (selectedDistanceSquared <= agent.speedSquared) {
46-
dealDamage(agent, agent.weaponVs(selectedEnemy), selectedEnemy);
45+
AttackerBehavior.attack(agent, agent.weaponVs(selectedEnemy), selectedEnemy, allies, enemies);
4746
agent.healthShifted = 0;
4847
}
4948
return true;

src/test/java/org/bk/ass/bt/SucceederTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void shouldBeSuccessOnRunning() {
3838
sut.exec();
3939

4040
/// THEN
41-
assertThat(sut.getStatus()).isEqualTo(NodeStatus.SUCCESS);
41+
assertThat(sut.getStatus()).isEqualTo(NodeStatus.RUNNING);
4242
}
4343

4444
}

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

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,7 +1082,7 @@ void shouldDieWhenRunningAwayWithSpeedPenalty() {
10821082
@Test
10831083
void spiderMineShouldNotAttackBuilding() {
10841084
// GIVEN
1085-
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false));
1085+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
10861086
simulator.addAgentB(factory.of(UnitType.Zerg_Sunken_Colony));
10871087

10881088
// WHEN
@@ -1096,7 +1096,7 @@ void spiderMineShouldNotAttackBuilding() {
10961096
@Test
10971097
void spiderMineShouldAttackWithinSeekRange() {
10981098
// GIVEN
1099-
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false));
1099+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
11001100
simulator.addAgentB(factory.of(UnitType.Zerg_Zergling));
11011101

11021102
// WHEN
@@ -1110,7 +1110,7 @@ void spiderMineShouldAttackWithinSeekRange() {
11101110
@Test
11111111
void spiderMineShouldNotAttackOutsideOfSeekRange() {
11121112
// GIVEN
1113-
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false));
1113+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
11141114
simulator.addAgentB(factory.of(UnitType.Zerg_Zergling).setX(128));
11151115

11161116
// WHEN
@@ -1124,10 +1124,24 @@ void spiderMineShouldNotAttackOutsideOfSeekRange() {
11241124
assertThat(simulator.getAgentsB()).isNotEmpty();
11251125
}
11261126

1127+
@Test
1128+
void spiderMineShouldDoSplashDamage() {
1129+
// GIVEN
1130+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
1131+
simulator.addAgentB(factory.of(UnitType.Zerg_Zergling).setX(16));
1132+
simulator.addAgentB(factory.of(UnitType.Zerg_Zergling).setX(16));
1133+
1134+
// WHEN
1135+
simulator.simulate(20);
1136+
1137+
// THEN
1138+
assertThat(simulator.getAgentsB()).isEmpty();
1139+
}
1140+
11271141
@Test
11281142
void spiderMineShouldNotAttackWorker() {
11291143
// GIVEN
1130-
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false));
1144+
simulator.addAgentA(factory.of(UnitType.Terran_Vulture_Spider_Mine).setDetected(false).setBurrowed(true));
11311145
simulator.addAgentB(factory.of(UnitType.Zerg_Drone));
11321146
simulator.addAgentB(factory.of(UnitType.Terran_SCV));
11331147
simulator.addAgentB(factory.of(UnitType.Protoss_Probe));

0 commit comments

Comments
 (0)